2024-09-04 14:08:50 +10:00
|
|
|
#ifndef _THOUGHT_H
|
|
|
|
|
#define _THOUGHT_H
|
|
|
|
|
|
2024-09-05 18:20:33 +10:00
|
|
|
#include <iostream>
|
2024-09-04 14:08:50 +10:00
|
|
|
#include <scene.h>
|
2024-09-08 01:04:41 +10:00
|
|
|
#include <attentionGrabber.h>
|
2024-11-21 02:31:37 +11:00
|
|
|
#include <goal.h>
|
2024-09-04 14:08:50 +10:00
|
|
|
|
|
|
|
|
class Thought
|
|
|
|
|
{
|
2024-09-05 18:20:33 +10:00
|
|
|
public:
|
2024-09-08 01:04:41 +10:00
|
|
|
Thought(void)
|
|
|
|
|
{
|
2024-11-21 02:31:37 +11:00
|
|
|
setGoal(thought::Goal::DRIFT);
|
2024-09-08 01:04:41 +10:00
|
|
|
}
|
2024-09-05 18:20:33 +10:00
|
|
|
|
2024-09-08 01:04:41 +10:00
|
|
|
public:
|
2024-09-05 18:20:33 +10:00
|
|
|
void walk(void)
|
|
|
|
|
{
|
|
|
|
|
for (;;)
|
|
|
|
|
{
|
|
|
|
|
step();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void step(void) { std::cout <<"Step\n"; }
|
2024-11-21 02:31:37 +11:00
|
|
|
void setGoal(thought::Goal g)
|
2024-09-08 01:04:41 +10:00
|
|
|
{ goal = g; }
|
2024-09-05 18:20:33 +10:00
|
|
|
|
2024-09-04 14:08:50 +10:00
|
|
|
public:
|
2024-09-08 01:04:41 +10:00
|
|
|
Scene scene;
|
2024-11-21 02:31:37 +11:00
|
|
|
thought::Goal goal;
|
2024-09-08 01:04:41 +10:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class ActiveThought
|
|
|
|
|
: public Thought
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
ActiveThought(AttentionGrabber ag)
|
|
|
|
|
: currFocus(ag)
|
|
|
|
|
{
|
2024-11-21 02:31:37 +11:00
|
|
|
setGoal(thought::Goal
|
|
|
|
|
::ASSOCIATE_CAUSAL_QUALE_WITH_INTRINSIC_MOTIVATORS);
|
2024-09-08 01:04:41 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
AttentionGrabber currFocus;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class IdleThought
|
|
|
|
|
: public Thought
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
IdleThought(void)
|
|
|
|
|
{}
|
2024-09-04 14:08:50 +10:00
|
|
|
};
|
|
|
|
|
|
2024-11-21 02:31:37 +11:00
|
|
|
|
|
|
|
|
|
2024-09-04 14:08:50 +10:00
|
|
|
#endif
|