8 #ifndef FIELDS2COVER_OBJECTIVES_COMPLETE_TURN_PATH_OBJ_H_
9 #define FIELDS2COVER_OBJECTIVES_COMPLETE_TURN_PATH_OBJ_H_
25 template <
class T,
class R = PPObjective>
27 static_assert(std::is_base_of<pp::TurningBase, T>::value,
28 "T must derive from f2c::pp::TurningBase");
29 static_assert(std::is_base_of<PPObjective, R>::value,
30 "R must derive from f2c::obj::PPObjective");
33 using RPObjective::RPObjective;
57 template <
class T,
class R>
59 this->setRobot(
robot);
62 template <
class T,
class R>
64 const F2CRobot& _robot,
const T& _turner) :
65 turn_planner(_turner),
robot(_robot) {}
67 template <
class T,
class R>
72 template <
class T,
class R>
74 this->turn_planner = turner;
78 template <
class T,
class R>
82 return pp_objective.computeCost(
83 this->turn_planner.createTurn(this->robot,
p1, ang1,
p2, ang2));
89 #endif // FIELDS2COVER_OBJECTIVES_COMPLETE_TURN_PATH_OBJ_H_