5 #include "GraphInterface.h"
31 virtual bool haveLowerTrueCostClones() =0;
35 virtual double f() =0;
36 virtual double g() =0;
37 virtual void g(
double g) =0;
38 virtual double h() =0;
39 virtual void h(
double h) =0;
43 virtual bool isTrueCost() =0;
44 virtual void setTrueCost(
bool t) =0;
46 virtual bool isOpen() =0;
47 virtual bool isClosed() =0;
48 virtual void open() =0;
49 virtual void close() =0;
50 virtual void resetStatus() =0;
53 virtual std::vector<LWANodeInterface*> sons() =0;
63 virtual void onFail(){}
64 virtual void onAbort(){}
65 virtual void onEnd(std::vector<std::pair<unsigned int,double> > times){}
83 bool haveLowerTrueCostClones();
85 virtual std::vector<LWANodeInterface*> sons(){
return std::vector<LWANodeInterface*>(0);}
91 virtual double f(){
return g()+h();}
92 virtual double g(){
return _g;}
93 virtual void g(
double g){_g=g;}
94 virtual double h(){
return _h;}
95 virtual void h(
double h){_h=h;}
99 bool isTrueCost(){
return _is_true_cost;}
100 void setTrueCost(
bool t){_is_true_cost=t;}
102 bool isOpen(){
return _open;}
103 bool isClosed(){
return _closed;}
104 void open(){_open=
true;}
105 void close(){_closed=
true;}
106 void resetStatus(){_open=_closed=
false;}
116 std::vector<LWANodeInterface*> _clones;
138 MOVE3D_STATIC_LOGGER;
141 _epsilon(epsilon),_start(start),_goal(goal),_interface(0),
142 _time_limit(time_limit_ms),_no_lazy(no_lazy)
144 setInterface(interface);
147 _epsilon(epsilon), _start(0),_goal(0), _interface(0), _time_limit(-1),_no_lazy(0)
149 setInterface(interface);
156 std::deque<LWANodeInterface *> getPath();
158 void resetInterface(){setInterface(0);}
160 double getTimeLimit(){
return _time_limit;}
161 void setTimeLimit(
double ms){_time_limit=ms;}
168 return n1->f() > n2->f();
176 bool _owns_interface;
177 std::priority_queue<LWANodeInterface*,std::vector<LWANodeInterface*>, f_value_comp > open;
178 std::vector<LWANodeInterface*> closed;
187 #endif // LAZYWASTAR_H
Definition: LazyWAstar.h:136
Definition: LazyWAstar.h:69
This file implements macros to help with the logging, in a way similar to ROS, using log4cxx...
Definition: LazyWAstar.h:56
Definition: LazyWAstar.h:25