9 /*! \brief Use Dijkstra algorithm to find the shorter path.
11 class RRTExt3 : public virtual RRTS {
13 std::vector<RRTNode *> orig_path_;
14 double orig_path_cost_;
16 std::vector<RRTNode *> path();
19 std::vector<RRTNode *> &orig_path()
21 return this->orig_path_;
23 double &orig_path_cost() { return this->orig_path_cost_; }
24 void orig_path_cost(double c) { this->orig_path_cost_ = c; }
27 /*! \brief Use cute_c2 for collision detection.
29 \see https://github.com/RandyGaul/cute_headers/blob/master/cute_c2.h
31 class RRTExt2 : public virtual RRTS {
35 std::vector<c2Poly> c2_obstacles_;
40 // Collide RRT procedures
41 std::tuple<bool, unsigned int, unsigned int>
42 collide_steered_from(RRTNode &f);
44 std::tuple<bool, unsigned int, unsigned int>
45 collide_two_nodes(RRTNode &f, RRTNode &t);
48 c2Poly &c2_bc() { return this->c2_bc_; }
49 c2x &c2x_bc() { return this->c2x_bc_; }
50 std::vector<c2Poly> &c2_obstacles() {
51 return this->c2_obstacles_;
55 /*! \brief Different costs extension.
57 Use different cost for bulding tree data structure and searching in the
60 class RRTExt1 : public virtual RRTS {
62 /*! \brief Reeds and Shepp path length.
64 double cost_build(RRTNode &f, RRTNode &t);
65 /*! \brief Matej's heuristics.
67 double cost_search(RRTNode &f, RRTNode &t);