libmove3d-planners
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Groups Pages
planNode.hpp
1 #ifndef PLANNODE_H
2 #define PLANNODE_H
3 
4 #include "gtpPlan.hpp"
5 #include "structTools.hpp"
6 #include "solutiondata.h"
7 
8 
9 class PlanTree;
10 class Task;
11 
12 class PlanNode
13 {
14  MOVE3D_STATIC_LOGGER;
15 public:
16  PlanNode();
17  ~PlanNode();
18 
19  PlanNode(PlanTree* PT, TaskSolution* TS);
20 
21  double getDuration();
22  bool isInNexts(PlanNode* PN);
23  bool setPrevious(PlanNode* PN);
24  std::pair<int,int> getId();
25  bool addToNexts(PlanNode* PN);
26 
27  TaskSolution* getTaskSolution() {return _TS;}
28  PlanNode* getPrevious() {return _previous;}
29  std::vector<PlanNode*> getNexts() {return _nexts;}
30 
31  double getInitTime() {return _initTime;}
32  void setInitTime(double initTime) {_initTime = initTime;}
33 
34  PlanTree* getPlanTree() {return _PT;}
35 
36  bool hasSucceeded() {return _suceeded;}
37 
38  Task* getTask() {return _task;}
39  void setTask(Task* t) { _task = t; }
40 
41  std::string getFormatedNumbers();
42  double computePriority();
43 
44  Graph* getGraph() {return _explorationGraph;}
45  void setGraph(Graph* g) { _explorationGraph = g;}
46 
47  bool operator==(PlanNode* p);
48 
49 
50  std::map<std::string,double> backtrackingData;
51 
52  SolutionData* SD;
53 
54 private:
55  TaskSolution* _TS;
56  PlanNode* _previous;
57  std::vector<PlanNode*> _nexts;
58 
59  double _initTime;
60  PlanTree* _PT;
61 
62  bool _suceeded;
63  Task* _task;
64 
65  Graph* _explorationGraph;
66 };
67 
68 #endif // PLANNODE_H
Definition: taskSolution.hpp:9
Definition: planNode.hpp:12
Definition: graph.hpp:28
Definition: gtpPlan.hpp:14
Definition: task.hpp:44
Info storage class.
Definition: solutiondata.h:19