Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Planner.h
Go to the documentation of this file.
1
9#pragma once
10
11#include "Action.h"
12#include "Node.h"
13#include "WorldState.h"
14
15namespace Divide {
16namespace goap {
17 class Planner {
18 private:
21
22 vector<Node> open_; // The A* open list
23 vector<Node> closed_; // The A* closed list
24
31 bool memberOfClosed(const WorldState& ws) const;
32
40
48
53 void addToOpenList(Node&& node);
54
62 int calculateHeuristic(const WorldState& now, const WorldState& goal) const;
63
64 public:
65 Planner() noexcept = default;
66
70 void printOpenList(Divide::string& output) const;
71
75 void printClosedList(Divide::string& output) const;
76
86 vector<const Action*> plan(const WorldState& start, const WorldState& goal, const vector<const Action*>& actions);
87 };
88
89} //namespace goap
90} //namespace Divide
Planner() noexcept=default
vector< Node > closed_
Definition: Planner.h:23
void printOpenList(Divide::string &output) const
Definition: Planner.cpp:39
void printClosedList(Divide::string &output) const
Definition: Planner.cpp:48
bool memberOfClosed(const WorldState &ws) const
Definition: Planner.cpp:28
void addToOpenList(Node &&node)
Definition: Planner.cpp:12
int calculateHeuristic(const WorldState &now, const WorldState &goal) const
Definition: Planner.cpp:8
vector< const Action * > plan(const WorldState &start, const WorldState &goal, const vector< const Action * > &actions)
Definition: Planner.cpp:57
Node & popAndClose()
Definition: Planner.cpp:20
hashMap< I32, Node > known_nodes_
A master lookup table of ID-to-Node; useful during the action replay.
Definition: Planner.h:20
vector< Node > open_
Definition: Planner.h:22
vector< goap::Node >::iterator memberOfOpen(const WorldState &ws)
Definition: Planner.cpp:35
Handle console commands that start with a forward slash.
Definition: AIProcessor.cpp:7
eastl::vector< Type > vector
Definition: Vector.h:42
hashAlg::unordered_map< K, V, HashFun, Predicate > hashMap
Definition: HashMap.h:55