double _c = 0.0;
double _cc = 0.0;
RRTNode* _p = nullptr;
- unsigned int _cusp = 0;
+ unsigned int _cusp_cnt = 0;
int _segment_type = 0; // 0 ~ straight, 1 ~ left, -1 right
+ bool _p_is_cusp = false;
public:
/*! Get cost to parent. */
double c() const;
void p(RRTNode& p);
/*! Get number of backward-forward direction changes. */
- unsigned int cusp() const;
+ unsigned int cusp_cnt() const;
/*! Set number of backward-forward direction changes. */
- void cusp(RRTNode const& p);
+ void cusp_cnt(RRTNode const& p);
/*! \brief Get Reeds & Shepp segment type.
*
/*! Set Reeds & Shepp segment type. */
void st(int st);
+ /*! Return true if the parent is cusp node and false otherwise. */
+ bool p_is_cusp(void) const;
+
+ /*! Set if the parent node is cusp (direction changed from parent). */
+ void p_is_cusp(bool isit);
+
bool operator==(RRTNode const& n);
};
virtual void find_nv(RRTNode const& t);
virtual void compute_path();
protected:
+ /*! \brief Return nodes from f to t inclusive.
+ *
+ * The "inclusive" means that f is at the same pose (x, y, h) as
+ * this->_steered.front() and t is at the same pose (x, y, h) as
+ * this->_steered.back().
+ */
virtual void steer(RRTNode const& f, RRTNode const& t) = 0;
virtual bool collide_steered() = 0;
virtual RRTNode sample() = 0;