Grail (C++)  1.3.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
IPlannerObject.hh
1 // Copyright QED Software 2023.
2 
3 #ifndef GRAIL_IPLANNER_OBJECT_H
4 #define GRAIL_IPLANNER_OBJECT_H
5 
6 #include "Planner/Domain.hh"
7 #include "Planner/Planner.hh"
8 
9 #include <map>
10 
11 namespace grail
12 {
13 namespace planner
14 {
17  {
18  public:
19  IPlannerObject() = default;
20  IPlannerObject(const IPlannerObject&) = default;
21  IPlannerObject(IPlannerObject&&) = default;
22 
23  virtual ~IPlannerObject() = default;
24 
25  IPlannerObject& operator =(const IPlannerObject&) = default;
26  IPlannerObject& operator =(IPlannerObject&&) = default;
27 
31  virtual WorldObject ToWorldObject(Domain& domain, const class ObjectIndexBinding& objectBinding) const = 0;
32  };
33 }
34 }
35 
36 #endif //GRAIL_IPLANNER_OBJECT_H
grail::planner::WorldObject
Definition: WorldObject.hh:15
grail::planner::IPlannerObject
The interface to be implemented by classes that should be converted and bound to plan-space WorldObje...
Definition: IPlannerObject.hh:16
grail::planner::ObjectIndexBinding
Definition: ObjectIndexBinding.hh:14
grail::planner::Domain
Definition: Domain.hh:18
grail::planner::IPlannerObject::ToWorldObject
virtual WorldObject ToWorldObject(Domain &domain, const class ObjectIndexBinding &objectBinding) const =0