Grail (C++)  1.4.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
PlannerReasonerSnapshotGenerator.h
1 // Copyright QED Software 2023.
2 
3 #ifndef GRAIL_PLANNER_REASONER_SNAPSHOT_GENERATOR_H
4 #define GRAIL_PLANNER_REASONER_SNAPSHOT_GENERATOR_H
5 
6 #include "../../GrailCore/DebugUtilities/SnapshotGenerator.h"
7 #include "../../GrailData/DebugInfo/PlannerSnapshots.h"
8 #include "../Reasoners/PlannerReasoner.hh"
9 
10 namespace grail
11 {
12 namespace planner
13 {
14  class PlannerReasonerSnapshotGenerator : public SnapshotGenerator<data::PlannerReasonerSnapshot>
15  {
16  public:
17  PlannerReasonerSnapshotGenerator(PlannerReasoner* observedReasoner, size_t entityId);
18  virtual ~PlannerReasonerSnapshotGenerator() override = default;
19 
20  virtual bool TryProduceSnapshot(data::PlannerReasonerSnapshot& outSnapshot) override;
21  virtual void
22  PassSnapshotToReceiver(IDebugSnapshotReceiver& receiver, data::PlannerReasonerSnapshot& snapshot) override;
23  virtual void Release() override;
24 
25  private:
26  PlannerReasoner* observedReasoner = nullptr;
27  size_t entityId = 0;
28  };
29 }
30 }
31 
32 #endif
grail::planner::PlannerReasoner
A reasoner which uses planners to find optimal sequences of behaviors based on goals.
Definition: PlannerReasoner.hh:20
grail::SnapshotGenerator
Definition: SnapshotGenerator.h:16
grail::data::PlannerReasonerSnapshot
Definition: PlannerSnapshots.h:92
grail::IDebugSnapshotReceiver
Definition: IDebugSnapshotReceiver.h:16
grail::planner::PlannerReasonerSnapshotGenerator
Definition: PlannerReasonerSnapshotGenerator.h:14