24 #include "model/DomainFact.h"
25 #include "model/DomainObject.h"
26 #include "model/DomainOperator.h"
27 #include "model/DomainPreconditionAtom.h"
28 #include "model/DomainPreconditionCompound.h"
29 #include "model/DomainPredicate.h"
30 #include "model/Goal.h"
31 #include "model/Plan.h"
33 #include <aspect/logging.h>
34 #include <aspect/webview.h>
35 #include <clipsmm/fact.h>
36 #include <core/threading/thread.h>
37 #include <core/utils/lockptr.h>
38 #include <plugins/clips/aspect/clips_manager.h>
39 #include <webview/rest_api.h>
40 #include <webview/rest_array.h>
60 typedef std::pair<std::string, std::string> PlanKey;
61 typedef std::tuple<std::string, std::string, int64_t> PlanActionKey;
62 typedef std::list<CLIPS::Fact::pointer> ClipsFactList;
63 typedef std::map<PlanActionKey, ClipsFactList> PreCompoundMap;
64 typedef std::map<PlanActionKey, ClipsFactList> PreAtomMap;
65 typedef std::map<PlanKey, CLIPS::Fact::pointer> PlanMap;
66 typedef std::map<PlanKey, ClipsFactList> PlanActionMap;
79 Goal generate_goal(CLIPS::Fact::pointer fact);
80 void gen_plan_precompute(std::map<PlanKey, CLIPS::Fact::pointer> &plans,
81 std::map<PlanKey, ClipsFactList> & plan_actions,
82 PreCompoundMap & prec,
84 std::shared_ptr<DomainPreconditionAtom>
85 gen_domain_precondition_atom(
const CLIPS::Fact::pointer fact);
87 std::shared_ptr<DomainPreconditionCompound>
88 gen_domain_precondition_compound(
const CLIPS::Fact::pointer fact,
89 const PlanActionKey & plan_action_key,
90 PreCompoundMap & prec,
93 Plan gen_plan(
const PlanKey & plan_key,
94 const CLIPS::Fact::pointer fact,
95 PlanActionMap & plan_actions,
96 PreCompoundMap & prec,