Grail (C++)  1.1.1
A multi-platform, modular, universal engine for embedding advanced AI in games.
Goal.hh
1 #ifndef GRAIL_GOAL_H
2 #define GRAIL_GOAL_H
3 
4 #include "ObjectIndexBinding.hh"
5 #include "Planner/Planner.hh"
6 
7 namespace grail
8 {
9  class AIEntity;
10 
11  namespace planning
12  {
14  class Goal
15  {
16  public:
17  Goal();
18  Goal(const Goal&) = default;
19  Goal(Goal&&) = default;
20 
21  virtual ~Goal() = default;
22 
23  Goal& operator =(const Goal&) = default;
24  Goal& operator =(Goal&&) = default;
25 
28  virtual void OnChosen(const AIEntity& goalPursuer);
29 
32  virtual void OnReached(const AIEntity& goalPursuer) const;
33 
36  virtual void OnReapplied(const AIEntity& goalPursuer);
37 
38  virtual bool IsReached(const AIEntity& entity) const = 0;
39 
42  virtual void SetPlanSpaceConditions(class Planner& planner,
43  const ObjectIndexBinding& objectIndexBinding) const = 0;
44  virtual PlannerHeuristic GetHeuristic() const;
45  };
46  }
47 }
48 #endif //GRAIL_GOAL_H
grail::AIEntity
The AIEntity class - Defines a basic object which can execute behaviors.
Definition: AIEntity.hh:39
grail::planning::Planner
The main class responsible for finding paths in plan space.
Definition: Planner.hh:27
grail::planning::Goal::OnChosen
virtual void OnChosen(const AIEntity &goalPursuer)
Definition: Goal.cpp:14
grail::planning::Goal::OnReached
virtual void OnReached(const AIEntity &goalPursuer) const
Definition: Goal.cpp:18
grail::planning::Goal
Represents a planner goal, used by PlannerReasoner.
Definition: Goal.hh:14
grail::planning::Goal::SetPlanSpaceConditions
virtual void SetPlanSpaceConditions(class Planner &planner, const ObjectIndexBinding &objectIndexBinding) const =0
grail::planning::ObjectIndexBinding
Definition: ObjectIndexBinding.hh:12
grail::planning::Goal::OnReapplied
virtual void OnReapplied(const AIEntity &goalPursuer)
Definition: Goal.cpp:22