ClothoidList Class Reference

Clothoids: G2lib::ClothoidList Class Reference
Clothoids
G2lib::ClothoidList Class Reference

#include <ClothoidList.hxx>

Inheritance diagram for G2lib::ClothoidList:
G2lib::BaseCurve

Public Member Functions

 ClothoidList ()=delete
 
 ClothoidList (string const &name)
 
void setup (GenericContainer const &gc) override
 
 ClothoidList (ClothoidList const &s)
 
CurveType type () const override
 
void init ()
 
void reserve (integer n)
 
void copy (ClothoidList const &L)
 
ClothoidList const & operator= (ClothoidList const &s)
 
 ClothoidList (LineSegment const &LS)
 
 ClothoidList (CircleArc const &C)
 
 ClothoidList (Biarc const &B)
 
 ClothoidList (BiarcList const &BL)
 
 ClothoidList (ClothoidCurve const &CL)
 
 ClothoidList (PolyLine const &PL)
 
 ClothoidList (G2solve2arc const &C, string const &name)
 
 ClothoidList (G2solve3arc const &C, string const &name)
 
 ClothoidList (G2solveCLC const &C, string const &name)
 
 ClothoidList (BaseCurve const *pC)
 
void build (LineSegment const &)
 
void build (CircleArc const &)
 
void build (ClothoidCurve const &)
 
void build (Biarc const &)
 
void build (PolyLine const &)
 
void build (BiarcList const &)
 
void build (ClothoidList const &)
 
void build (G2solve2arc const &)
 
void build (G2solve3arc const &)
 
void build (G2solveCLC const &)
 
void build (Dubins const &)
 
void build (Dubins3p const &)
 
void push_back (LineSegment const &c)
 
void push_back (CircleArc const &c)
 
void push_back (Biarc const &c)
 
void push_back (BiarcList const &c)
 
void push_back (ClothoidCurve const &c)
 
void push_back (ClothoidList const &c)
 
void push_back (Dubins const &c)
 
void push_back (Dubins3p const &c)
 
void push_back (G2solve2arc const &c)
 
void push_back (G2solve3arc const &c)
 
void push_back (G2solveCLC const &c)
 
void push_back (PolyLine const &c)
 
void push_back (real_type kappa0, real_type dkappa, real_type L)
 
void push_back (real_type x0, real_type y0, real_type theta0, real_type kappa0, real_type dkappa, real_type L)
 
void push_back_G1 (real_type x1, real_type y1, real_type theta1)
 
void push_back_G1 (real_type x0, real_type y0, real_type theta0, real_type x1, real_type y1, real_type theta1)
 
bool is_closed () const
 
void make_closed ()
 
void make_open ()
 
real_type closure_gap_x () const
 
real_type closure_gap_y () const
 
real_type closure_gap_tx () const
 
real_type closure_gap_ty () const
 
bool closure_check (real_type tol_xy=1e-6, real_type tol_tg=1e-6) const
 
bool build_G1 (integer n, real_type const x[], real_type const y[])
 
bool build_G1 (integer n, real_type const x[], real_type const y[], real_type const theta[])
 
bool build (real_type x0, real_type y0, real_type theta0, integer n, real_type const s[], real_type const kappa[])
 
bool build (real_type x0, real_type y0, real_type theta0, vector< real_type > const &s, vector< real_type > const &kappa)
 
bool build_raw (integer n, real_type const x[], real_type const y[], real_type const abscissa[], real_type const theta[], real_type const kappa[])
 
bool build_raw (vector< real_type > const &x, vector< real_type > const &y, vector< real_type > const &abscissa, vector< real_type > const &theta, vector< real_type > const &kappa)
 
ClothoidCurve const & get (integer idx) const
 
ClothoidCurve const & get_at_s (real_type s) const
 
integer num_segments () const
 
void wrap_in_range (real_type &s) const
 
integer find_at_s (real_type &s) const
 
real_type length () const override
 
real_type length_ISO (real_type offs) const override
 
real_type segment_length (integer nseg) const
 
real_type segment_length_ISO (integer nseg, real_type offs) const
 
real_type segment_length_SAE (integer nseg, real_type offs) const
 
void bb_triangles (vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100, integer icurve=0) const override
 
void bb_triangles_ISO (real_type offs, vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100, integer icurve=0) const override
 
void bb_triangles_SAE (real_type offs, vector< Triangle2D > &tvec, real_type max_angle=Utils::m_pi/6, real_type max_size=1e100, integer icurve=0) const override
 
void bbox (real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const override
 
void bbox_ISO (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const override
 
real_type theta_begin () const override
 
real_type theta_end () const override
 
real_type x_begin () const override
 
real_type y_begin () const override
 
real_type x_end () const override
 
real_type y_end () const override
 
real_type x_begin_ISO (real_type offs) const override
 
real_type y_begin_ISO (real_type offs) const override
 
real_type x_end_ISO (real_type offs) const override
 
real_type y_end_ISO (real_type offs) const override
 
real_type tx_begin () const override
 
real_type ty_begin () const override
 
real_type tx_end () const override
 
real_type ty_end () const override
 
real_type nx_begin_ISO () const override
 
real_type ny_begin_ISO () const override
 
real_type nx_end_ISO () const override
 
real_type ny_end_ISO () const override
 
real_type theta (real_type s) const override
 
real_type theta_D (real_type s) const override
 
real_type theta_DD (real_type s) const override
 
real_type theta_DDD (real_type s) const override
 
real_type tx (real_type s) const override
 
real_type ty (real_type s) const override
 
real_type tx_D (real_type s) const override
 
real_type ty_D (real_type s) const override
 
real_type tx_DD (real_type s) const override
 
real_type ty_DD (real_type s) const override
 
real_type tx_DDD (real_type s) const override
 
real_type ty_DDD (real_type s) const override
 
void tg (real_type s, real_type &tg_x, real_type &tg_y) const override
 
void tg_D (real_type s, real_type &tg_x_D, real_type &tg_y_D) const override
 
void tg_DD (real_type s, real_type &tg_x_DD, real_type &tg_y_DD) const override
 
void tg_DDD (real_type s, real_type &tg_x_DDD, real_type &tg_y_DDD) const override
 
void evaluate (real_type s, real_type &th, real_type &k, real_type &x, real_type &y) const override
 
void evaluate_ISO (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const override
 
real_type X (real_type s) const override
 
real_type Y (real_type s) const override
 
real_type X_D (real_type s) const override
 
real_type Y_D (real_type s) const override
 
real_type X_DD (real_type s) const override
 
real_type Y_DD (real_type s) const override
 
real_type X_DDD (real_type s) const override
 
real_type Y_DDD (real_type s) const override
 
void eval (real_type s, real_type &x, real_type &y) const override
 
void eval_D (real_type s, real_type &x_D, real_type &y_D) const override
 
void eval_DD (real_type s, real_type &x_DD, real_type &y_DD) const override
 
void eval_DDD (real_type s, real_type &x_DDD, real_type &y_DDD) const override
 
real_type X_ISO (real_type s, real_type offs) const override
 
real_type Y_ISO (real_type s, real_type offs) const override
 
real_type X_ISO_D (real_type s, real_type offs) const override
 
real_type Y_ISO_D (real_type s, real_type offs) const override
 
real_type X_ISO_DD (real_type s, real_type offs) const override
 
real_type Y_ISO_DD (real_type s, real_type offs) const override
 
real_type X_ISO_DDD (real_type s, real_type offs) const override
 
real_type Y_ISO_DDD (real_type s, real_type offs) const override
 
void eval_ISO (real_type s, real_type offs, real_type &x, real_type &y) const override
 
void eval_ISO_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const override
 
void eval_ISO_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const override
 
void eval_ISO_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const override
 
void translate (real_type tx, real_type ty) override
 translate curve by \((t_x,t_y)\)
 
void rotate (real_type angle, real_type cx, real_type cy) override
 
void scale (real_type sc) override
 
void reverse () override
 
void change_origin (real_type newx0, real_type newy0) override
 
void trim (real_type s_begin, real_type s_end) override
 
void trim (real_type s_begin, real_type s_end, ClothoidList &newCL) const
 
integer closest_point_ISO (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const override
 
integer closest_point_ISO (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const override
 
real_type closest_point_by_sample (real_type ds, real_type qx, real_type qy, real_type &X, real_type &Y, real_type &S) const
 
integer closest_segment (real_type qx, real_type qy) const
 
integer closest_point_in_range_ISO (real_type qx, real_type qy, integer icurve_begin, integer icurve_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, integer &icurve) const
 
integer closest_point_in_range_SAE (real_type qx, real_type qy, integer icurve_begin, integer icurve_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, integer &icurve) const
 
integer closest_point_in_s_range_ISO (real_type qx, real_type qy, real_type s_begin, real_type s_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, integer &icurve) const
 
integer closest_point_in_s_range_SAE (real_type qx, real_type qy, real_type s_begin, real_type s_end, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst, integer &icurve) const
 
string info () const
 
void info (ostream_type &stream) const override
 
void get_SK (real_type s[], real_type kappa[]) const
 
void get_SK (vector< real_type > &s, vector< real_type > &kappa) const
 
void get_STK (real_type s[], real_type theta[], real_type kappa[]) const
 
void get_STK (vector< real_type > &s, vector< real_type > &theta, vector< real_type > &kappa) const
 
void get_XY (real_type x[], real_type y[]) const
 
void get_delta_theta (real_type delta_theta[]) const
 
void get_delta_kappa (real_type deltaKappa[]) const
 
integer findST1 (real_type x, real_type y, real_type &s, real_type &t) const
 
integer findST1 (integer ibegin, integer iend, real_type x, real_type y, real_type &s, real_type &t) const
 
bool collision (ClothoidList const &CL) const
 
bool collision_ISO (real_type offs, ClothoidList const &CL, real_type offs_C) const
 
bool collision (BaseCurve const *pC) const override
 
bool collision_ISO (real_type offs, BaseCurve const *pC, real_type offs_C) const override
 
void intersect (ClothoidList const &CL, IntersectList &ilist) const
 
void intersect_ISO (real_type offs, ClothoidList const &CL, real_type offs_obj, IntersectList &ilist) const
 
void intersect (BaseCurve const *pC, IntersectList &ilist) const override
 
void intersect_ISO (real_type offs, BaseCurve const *pC, real_type offs_LS, IntersectList &ilist) const override
 
void export_table (ostream_type &stream) const
 
void export_ruby (ostream_type &stream) const
 
void save (ostream_type &stream) const
 
void load (istream_type &stream, real_type epsi=1e-8)
 
real_type x_begin_SAE (real_type offs) const
 
real_type y_begin_SAE (real_type offs) const
 
real_type x_end_SAE (real_type offs) const
 
real_type y_end_SAE (real_type offs) const
 
real_type nx_begin_SAE () const
 
real_type ny_begin_SAE () const
 
real_type nx_end_SAE () const
 
real_type ny_end_SAE () const
 
real_type X_SAE (real_type s, real_type offs) const
 
real_type X_SAE_D (real_type s, real_type offs) const
 
real_type X_SAE_DD (real_type s, real_type offs) const
 
real_type X_SAE_DDD (real_type s, real_type offs) const
 
real_type Y_SAE (real_type s, real_type offs) const
 
real_type Y_SAE_D (real_type s, real_type offs) const
 
real_type Y_SAE_DD (real_type s, real_type offs) const
 
real_type Y_SAE_DDD (real_type s, real_type offs) const
 
virtual void evaluate_SAE (real_type s, real_type offs, real_type &th, real_type &k, real_type &x, real_type &y) const
 
void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
void eval_SAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
integer closest_point_SAE (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
integer closest_point_SAE (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
real_type distance_ISO (real_type qx, real_type qy, real_type offs) const
 
real_type distance_SAE (real_type qx, real_type qy, real_type offs) const
 
- Public Member Functions inherited from G2lib::BaseCurve
 BaseCurve (BaseCurve const &)=delete
 
BaseCurve const & operator= (BaseCurve const &)=delete
 
 BaseCurve (string const &name)
 
void build (GenericContainer const &gc)
 
string name () const
 
string type_name () const
 
real_type length_SAE (real_type offs) const
 
void bbox_SAE (real_type offs, real_type &xmin, real_type &ymin, real_type &xmax, real_type &ymax) const
 
virtual real_type kappa_begin () const
 
virtual real_type kappa_end () const
 
real_type x_begin_SAE (real_type offs) const
 
real_type y_begin_SAE (real_type offs) const
 
real_type x_end_SAE (real_type offs) const
 
real_type y_end_SAE (real_type offs) const
 
real_type nx_begin_SAE () const
 
real_type ny_begin_SAE () const
 
real_type nx_end_SAE () const
 
real_type ny_end_SAE () const
 
real_type kappa (real_type s) const
 
real_type kappa_D (real_type s) const
 
real_type kappa_DD (real_type s) const
 
real_type nx_ISO (real_type s) const
 
real_type nx_ISO_D (real_type s) const
 
real_type nx_ISO_DD (real_type s) const
 
real_type nx_ISO_DDD (real_type s) const
 
real_type ny_ISO (real_type s) const
 
real_type ny_ISO_D (real_type s) const
 
real_type ny_ISO_DD (real_type s) const
 
real_type ny_ISO_DDD (real_type s) const
 
real_type nx_SAE (real_type s) const
 
real_type nx_SAE_D (real_type s) const
 
real_type nx_SAE_DD (real_type s) const
 
real_type nx_SAE_DDD (real_type s) const
 
real_type ny_SAE (real_type s) const
 
real_type ny_SAE_D (real_type s) const
 
real_type ny_SAE_DD (real_type s) const
 
real_type ny_SAE_DDD (real_type s) const
 
void nor_ISO (real_type s, real_type &nx, real_type &ny) const
 
void nor_ISO_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
void nor_ISO_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
void nor_ISO_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
void nor_SAE (real_type s, real_type &nx, real_type &ny) const
 
void nor_SAE_D (real_type s, real_type &nx_D, real_type &ny_D) const
 
void nor_SAE_DD (real_type s, real_type &nx_DD, real_type &ny_DD) const
 
void nor_SAE_DDD (real_type s, real_type &nx_DDD, real_type &ny_DDD) const
 
real_type X_SAE (real_type s, real_type offs) const
 
real_type Y_SAE (real_type s, real_type offs) const
 
real_type X_SAE_D (real_type s, real_type offs) const
 
real_type Y_SAE_D (real_type s, real_type offs) const
 
real_type X_SAE_DD (real_type s, real_type offs) const
 
real_type Y_SAE_DD (real_type s, real_type offs) const
 
real_type X_SAE_DDD (real_type s, real_type offs) const
 
real_type Y_SAE_DDD (real_type s, real_type offs) const
 
void eval_SAE (real_type s, real_type offs, real_type &x, real_type &y) const
 
void eval_SAE_D (real_type s, real_type offs, real_type &x_D, real_type &y_D) const
 
void eval_SAE_DD (real_type s, real_type offs, real_type &x_DD, real_type &y_DD) const
 
void eval_SAE_DDD (real_type s, real_type offs, real_type &x_DDD, real_type &y_DDD) const
 
bool collision_SAE (real_type offs, BaseCurve const *pC, real_type offs_C) const
 
void intersect_SAE (real_type offs, BaseCurve const *pC, real_type offs_C, IntersectList &ilist) const
 
integer closest_point_SAE (real_type qx, real_type qy, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
integer closest_point_SAE (real_type qx, real_type qy, real_type offs, real_type &x, real_type &y, real_type &s, real_type &t, real_type &dst) const
 
virtual real_type distance (real_type qx, real_type qy) const
 
real_type distance_ISO (real_type qx, real_type qy, real_type offs) const
 
real_type distance_SAE (real_type qx, real_type qy, real_type offs) const
 
bool findST_ISO (real_type x, real_type y, real_type &s, real_type &t) const
 
bool findST_SAE (real_type x, real_type y, real_type &s, real_type &t) const
 

Friends

ostream_typeoperator<< (ostream_type &stream, ClothoidList const &CL)
 

Detailed Description

Manage a piecewise clothoids \( G(s) \) composed by \( n \) clothoids (not necessarily \( G^2 \) or \( G^1 \) connected)

'

Constructor & Destructor Documentation

◆ ClothoidList() [1/13]

G2lib::ClothoidList::ClothoidList ( )
delete

◆ ClothoidList() [2/13]

G2lib::ClothoidList::ClothoidList ( string const & name)
inline

Build an empty clothoid list

◆ ClothoidList() [3/13]

G2lib::ClothoidList::ClothoidList ( ClothoidList const & s)
inline

Build a copy of an existing clothoid list

◆ ClothoidList() [4/13]

G2lib::ClothoidList::ClothoidList ( LineSegment const & LS)
explicit

Build a clothoid from a line segment

◆ ClothoidList() [5/13]

G2lib::ClothoidList::ClothoidList ( CircleArc const & C)
explicit

Build a clothoid from a circle arc

◆ ClothoidList() [6/13]

G2lib::ClothoidList::ClothoidList ( Biarc const & B)
explicit

Build a clothoid from a biarc

◆ ClothoidList() [7/13]

G2lib::ClothoidList::ClothoidList ( BiarcList const & BL)
explicit

Build a clothoid from a list of biarc

◆ ClothoidList() [8/13]

G2lib::ClothoidList::ClothoidList ( ClothoidCurve const & CL)
explicit

Build a clothoid from a clothoid curve

◆ ClothoidList() [9/13]

G2lib::ClothoidList::ClothoidList ( PolyLine const & PL)
explicit

Build a clothoid from a list line segment

◆ ClothoidList() [10/13]

G2lib::ClothoidList::ClothoidList ( G2solve2arc const & C,
string const & name )
explicit

Build a clothoid from G2solve2arc

◆ ClothoidList() [11/13]

G2lib::ClothoidList::ClothoidList ( G2solve3arc const & C,
string const & name )
explicit

Build a clothoid from G2solve3arc

◆ ClothoidList() [12/13]

G2lib::ClothoidList::ClothoidList ( G2solveCLC const & C,
string const & name )
explicit

Build a clothoid from G2solveCLC

◆ ClothoidList() [13/13]

G2lib::ClothoidList::ClothoidList ( BaseCurve const * pC)
explicit

Build a clothoid from a curve

Member Function Documentation

◆ bb_triangles()

void G2lib::ClothoidList::bb_triangles ( vector< Triangle2D > & tvec,
real_type max_angle = Utils::m_pi/6,
real_type max_size = 1e100,
integer icurve = 0 ) const
overridevirtual

Build a cover with triangles of the curve.

Parameters
[out]tveclist of covering triangles
[out]max_anglemaximum angle variation of the curve covered by a triangle
[out]max_sizemaximum admissible size of the covering tirnagles
[out]icurveindex of the covering triangles
'

Implements G2lib::BaseCurve.

◆ bb_triangles_ISO()

void G2lib::ClothoidList::bb_triangles_ISO ( real_type offs,
vector< Triangle2D > & tvec,
real_type max_angle = Utils::m_pi/6,
real_type max_size = 1e100,
integer icurve = 0 ) const
overridevirtual

Build a cover with triangles of the curve with offset (ISO).

Parameters
[out]offscurve offset
[out]tveclist of covering triangles
[out]max_anglemaximum angle variation of the curve covered by a triangle
[out]max_sizemaximum admissible size of the covering tirnagles
[out]icurveindex of the covering triangles

Implements G2lib::BaseCurve.

◆ bb_triangles_SAE()

void G2lib::ClothoidList::bb_triangles_SAE ( real_type offs,
vector< Triangle2D > & tvec,
real_type max_angle = Utils::m_pi/6,
real_type max_size = 1e100,
integer icurve = 0 ) const
inlineoverridevirtual

Build a cover with triangles of the curve with offset (SAE).

Parameters
[out]offscurve offset
[out]tveclist of covering triangles
[out]max_anglemaximum angle variation of the arc covered by a triangle
[out]max_sizemaximum admissible size of the covering tirnagles
[out]icurveindex of the covering triangles

Implements G2lib::BaseCurve.

◆ bbox()

void G2lib::ClothoidList::bbox ( real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax ) const
inlineoverridevirtual

Compute the bounding box of the curve.

Parameters
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top

Implements G2lib::BaseCurve.

◆ bbox_ISO()

void G2lib::ClothoidList::bbox_ISO ( real_type offs,
real_type & xmin,
real_type & ymin,
real_type & xmax,
real_type & ymax ) const
overridevirtual

Compute the bounding box of the curve with offset (ISO).

Parameters
[in]offscurve offset
[out]xminleft bottom
[out]yminleft bottom
[out]xmaxright top
[out]ymaxright top

Implements G2lib::BaseCurve.

◆ build() [1/2]

bool G2lib::ClothoidList::build ( real_type x0,
real_type y0,
real_type theta0,
integer n,
real_type const s[],
real_type const kappa[] )

Build clothoid list with \( G^2 \) continuity. The vector s contains the breakpoints of the curve. Between two breakpoint the curvature change linearly (is a clothoid)

Parameters
[in]x0initial x
[in]y0initial y
[in]theta0initial angle
[in]nnumber of segments
[in]sbreak point of the piecewise curve
[in]kappacurvature at the break point
Returns
true if curve is closed

◆ build() [2/2]

bool G2lib::ClothoidList::build ( real_type x0,
real_type y0,
real_type theta0,
vector< real_type > const & s,
vector< real_type > const & kappa )
inline

Build clothoid list with \( G^2 \) continuity. The vector s contains the breakpoints of the curve. Between two breakpoint the curvature change linearly (is a clothoid)

Parameters
[in]x0initial x
[in]y0initial y
[in]theta0initial angle
[in]sbreak point of the piecewise curve
[in]kappacurvature at the break point
Returns
true if curve is closed

◆ build_G1() [1/2]

bool G2lib::ClothoidList::build_G1 ( integer n,
real_type const x[],
real_type const y[] )

Build clothoid list passing to a list of points solving a series of \( G^1 \) fitting problems. The angle at points are estimated using the routine xy_to_guess_angle

Parameters
[in]nnumber of points
[in]x\(x\)-coordinates
[in]y\(y\)-coordinates
Returns
false if routine fails

◆ build_G1() [2/2]

bool G2lib::ClothoidList::build_G1 ( integer n,
real_type const x[],
real_type const y[],
real_type const theta[] )

Build clothoid list passing to a list of points solving a series of \( G^1 \) fitting problems.

Parameters
[in]nnumber of points
[in]x\(x\)-coordinates
[in]y\(y\)-coordinates
[in]thetaangles at the points
Returns
false if routine fails

◆ build_raw() [1/2]

bool G2lib::ClothoidList::build_raw ( integer n,
real_type const x[],
real_type const y[],
real_type const abscissa[],
real_type const theta[],
real_type const kappa[] )

Build clothoid listy using raw data.

Parameters
[in]nnumber of points
[in]x\(x\)-coordinates
[in]y\(y\)-coordinates
[in]abscissabreak point of the piecewise curve
[in]thetaangles at breakpoints
[in]kappacurvature at the break point
Returns
false if fails

◆ build_raw() [2/2]

bool G2lib::ClothoidList::build_raw ( vector< real_type > const & x,
vector< real_type > const & y,
vector< real_type > const & abscissa,
vector< real_type > const & theta,
vector< real_type > const & kappa )
inline

Build clothoid listy using raw data.

Parameters
[in]x\(x\)-coordinates
[in]y\(y\)-coordinates
[in]abscissabreak point of the piecewise curve
[in]thetaangles at breakpoints
[in]kappacurvature at the break point
Returns
false if fails

◆ change_origin()

void G2lib::ClothoidList::change_origin ( real_type newx0,
real_type newy0 )
overridevirtual

Translate curve so that origin will be (newx0, newy0).

Implements G2lib::BaseCurve.

◆ closest_point_by_sample()

real_type G2lib::ClothoidList::closest_point_by_sample ( real_type ds,
real_type qx,
real_type qy,
real_type & X,
real_type & Y,
real_type & S ) const

Compute the point on clothoid at minimal distance from a given point using the optimized algorithm described in the publication:

Parameters
dssampling step
qx\(x\)-coordinate of the given point
qy\(y\)-coordinate of the given point
X\(x\)-coordinate of the point on clothoid at minimal distance
Y\(y\)-coordinate of the point on clothoid at minimal distance
Scurvilinear coordinate of the point (X,Y) on the clothoid
Returns
the distance of the point from the clothoid

◆ closest_point_in_range_ISO()

integer G2lib::ClothoidList::closest_point_in_range_ISO ( real_type qx,
real_type qy,
integer icurve_begin,
integer icurve_end,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst,
integer & icurve ) const
Parameters
qx\(x\)-coordinate of the point
qy\(y\)-coordinate of the point
icurve_beginindex of the initial segment
icurve_endindex of the past to the last segment
x\(x\)-coordinate of the projected point on the curve
y\(y\)-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
icurvenumber of the segment with the projected point
Returns
1 point is projected orthogonal
0 = more than one projection (first returned)
-1 = minimum point is not othogonal projection to curve

◆ closest_point_in_range_SAE()

integer G2lib::ClothoidList::closest_point_in_range_SAE ( real_type qx,
real_type qy,
integer icurve_begin,
integer icurve_end,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst,
integer & icurve ) const
inline
Parameters
qx\(x\)-coordinate of the point
qy\(y\)-coordinate of the point
icurve_beginindex of the initial segment
icurve_endindex of the past to the last segment
x\(x\)-coordinate of the projected point on the curve
y\(y\)-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
icurvenumber of the segment with the projected point
Returns
1 point is projected orthogonal
0 = more than one projection (first returned)
-1 = minimum point is not othogonal projection to curve

◆ closest_point_in_s_range_ISO()

integer G2lib::ClothoidList::closest_point_in_s_range_ISO ( real_type qx,
real_type qy,
real_type s_begin,
real_type s_end,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst,
integer & icurve ) const
Parameters
qx\(x\)-coordinate of the point
qy\(y\)-coordinate of the point
s_begininitial curvilinear coordinate of the search range
s_endfinal curvilinear coordinate of the search range
x\(x\)-coordinate of the projected point on the curve
y\(y\)-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
icurvenumber of the segment with the projected point
Returns
1 ok -1 projection failed

◆ closest_point_in_s_range_SAE()

integer G2lib::ClothoidList::closest_point_in_s_range_SAE ( real_type qx,
real_type qy,
real_type s_begin,
real_type s_end,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst,
integer & icurve ) const
inline
Parameters
qx\(x\)-coordinate of the point
qy\(y\)-coordinate of the point
s_begininitial curvilinear coordinate of the search range
s_endfinal curvilinear coordinate of the search range
x\(x\)-coordinate of the projected point on the curve
y\(y\)-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
icurvenumber of the segment with the projected point
Returns
1 ok -1 projection failed

◆ closest_point_ISO() [1/2]

integer G2lib::ClothoidList::closest_point_ISO ( real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst ) const
overridevirtual
Parameters
qx\(x\)-coordinate of the point
qy\(y\)-coordinate of the point
x\(x\)-coordinate of the projected point on the curve
y\(y\)-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
Returns
n >= 0 point is projected orthogonal, n is the number of the segment at minimum distance
-(n+1) minimum point is not othogonal projection to curve

Implements G2lib::BaseCurve.

◆ closest_point_ISO() [2/2]

integer G2lib::ClothoidList::closest_point_ISO ( real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst ) const
overridevirtual
Parameters
qx\(x\)-coordinate of the point
qy\(y\)-coordinate of the point
offsoffset of the curve
x\(x\)-coordinate of the projected point on the curve
y\(y\)-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
Returns
n > 0 point is projected orthogonal, n-1 is the number of the segment at minimum distance
-(n+1) minimum point is not othogonal projection to curve

Implements G2lib::BaseCurve.

◆ closest_point_SAE() [1/2]

integer G2lib::BaseCurve::closest_point_SAE ( real_type qx,
real_type qy,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst ) const
inline

Given a point find closest point on the curve.

Parameters
qx\(x\)-coordinate of the point
qy\(y\)-coordinate of the point
x\(x\)-coordinate of the projected point on the curve
y\(y\)-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve

◆ closest_point_SAE() [2/2]

integer G2lib::BaseCurve::closest_point_SAE ( real_type qx,
real_type qy,
real_type offs,
real_type & x,
real_type & y,
real_type & s,
real_type & t,
real_type & dst ) const
inline

Given a point find closest point on the curve.

Parameters
qx\(x\)-coordinate of the point
qy\(y\)-coordinate of the point
offsoffset of the curve
x\(x\)-coordinate of the projected point on the curve
y\(y\)-coordinate of the projected point on the curve
sparameter on the curve of the projection
tcurvilinear coordinate of the point x,y (if orthogonal projection)
dstdistance point projected point
Returns
1 = point is projected orthogonal 0 = more than one projection (first returned) -1 = minimum point is not othogonal projection to curve

◆ closest_segment()

integer G2lib::ClothoidList::closest_segment ( real_type qx,
real_type qy ) const
Parameters
qx\(x\)-coordinate of the point
qy\(y\)-coordinate of the point
Returns
the segment at minimal distance from point (qx,qy)

◆ closure_check()

bool G2lib::ClothoidList::closure_check ( real_type tol_xy = 1e-6,
real_type tol_tg = 1e-6 ) const
inline

check if clothoid list is closed

Parameters
[in]tol_xyposition tolerance
[in]tol_tgangle (tangent) tolerance
Returns
true if curve is closed

◆ closure_gap_tx()

real_type G2lib::ClothoidList::closure_gap_tx ( ) const
inline

Difference initial final tangent x component

◆ closure_gap_ty()

real_type G2lib::ClothoidList::closure_gap_ty ( ) const
inline

Difference initial final tangent y component

◆ closure_gap_x()

real_type G2lib::ClothoidList::closure_gap_x ( ) const
inline

Difference initial final point x component

◆ closure_gap_y()

real_type G2lib::ClothoidList::closure_gap_y ( ) const
inline

Difference initial final point y component

◆ collision() [1/2]

bool G2lib::ClothoidList::collision ( BaseCurve const * pC) const
overridevirtual

Check collision with another curve.

Implements G2lib::BaseCurve.

◆ collision() [2/2]

bool G2lib::ClothoidList::collision ( ClothoidList const & CL) const
inline

Detect a collision with another clothoid list

◆ collision_ISO() [1/2]

bool G2lib::ClothoidList::collision_ISO ( real_type offs,
BaseCurve const * pC,
real_type offs_C ) const
overridevirtual

Check collision with another curve with offset (ISO).

Parameters
[in]offscurve offset
[in]pCsecond curve to check collision
[in]offs_Ccurve offset of the second curve
Returns
true if collision is detected

Implements G2lib::BaseCurve.

◆ collision_ISO() [2/2]

bool G2lib::ClothoidList::collision_ISO ( real_type offs,
ClothoidList const & CL,
real_type offs_C ) const

Detect a collision with another clothoid list with offset

Parameters
[in]offsoffset of first clothoid list
[in]CLsecond clothoid list
[in]offs_Coffset of second clothoid list

◆ copy()

void G2lib::ClothoidList::copy ( ClothoidList const & L)

Build a clothoid list copying an existing one

◆ distance_ISO()

real_type G2lib::BaseCurve::distance_ISO ( real_type qx,
real_type qy,
real_type offs ) const
inline

Compute the distance between a point \(q=(q_x,q_y)\) and the curve with offset (ISO).

Parameters
[in]qxcomponent \(q_x\)
[in]qycomponent \(q_y\)
[in]offsoffset of the curve
Returns
the computed distance

◆ distance_SAE()

real_type G2lib::BaseCurve::distance_SAE ( real_type qx,
real_type qy,
real_type offs ) const
inline

Compute the distance between a point \(q=(q_x,q_y)\) and the curve with offset (SAE).

Parameters
[in]qxcomponent \(q_x\)
[in]qycomponent \(q_y\)
[in]offsoffset of the curve
Returns
the computed distance

◆ eval()

void G2lib::ClothoidList::eval ( real_type s,
real_type & x,
real_type & y ) const
overridevirtual

x and \(y\)-coordinate at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ eval_D()

void G2lib::ClothoidList::eval_D ( real_type s,
real_type & x_D,
real_type & y_D ) const
overridevirtual

x and \(y\)-coordinate derivative at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ eval_DD()

void G2lib::ClothoidList::eval_DD ( real_type s,
real_type & x_DD,
real_type & y_DD ) const
overridevirtual

x and \(y\)-coordinate second derivative at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ eval_DDD()

void G2lib::ClothoidList::eval_DDD ( real_type s,
real_type & x_DDD,
real_type & y_DDD ) const
overridevirtual

x and \(y\)-coordinate third derivative at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ eval_ISO()

void G2lib::ClothoidList::eval_ISO ( real_type s,
real_type offs,
real_type & x,
real_type & y ) const
overridevirtual

Compute curve at position s with offset offs (ISO).

Parameters
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate

Reimplemented from G2lib::BaseCurve.

◆ eval_ISO_D()

void G2lib::ClothoidList::eval_ISO_D ( real_type s,
real_type offs,
real_type & x_D,
real_type & y_D ) const
overridevirtual

Compute derivative curve at position s with offset offs (ISO).

Parameters
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_D\(x\)-coordinate
[out]y_D\(y\)-coordinate

Reimplemented from G2lib::BaseCurve.

◆ eval_ISO_DD()

void G2lib::ClothoidList::eval_ISO_DD ( real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD ) const
overridevirtual

Compute second derivative curve at position s with offset offs (ISO).

Parameters
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DD\(x\)-coordinate second derivative
[out]y_DD\(y\)-coordinate second derivative

Reimplemented from G2lib::BaseCurve.

◆ eval_ISO_DDD()

void G2lib::ClothoidList::eval_ISO_DDD ( real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD ) const
overridevirtual

Compute third derivative curve at position s with offset offs (ISO).

Parameters
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDD\(x\)-coordinate third derivative
[out]y_DDD\(y\)-coordinate third derivative

Reimplemented from G2lib::BaseCurve.

◆ eval_SAE()

void G2lib::BaseCurve::eval_SAE ( real_type s,
real_type offs,
real_type & x,
real_type & y ) const
inline

Compute curve at position s with offset offs (SAE).

Parameters
[in]sparameter on the curve
[in]offsoffset of the curve
[out]xcoordinate
[out]ycoordinate

◆ eval_SAE_D()

void G2lib::BaseCurve::eval_SAE_D ( real_type s,
real_type offs,
real_type & x_D,
real_type & y_D ) const
inline

Compute derivative curve at position s with offset offs (SAE).

Parameters
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_D\(x\)-coordinate first derivative
[out]y_D\(y\)-coordinate first derivative

◆ eval_SAE_DD()

void G2lib::BaseCurve::eval_SAE_DD ( real_type s,
real_type offs,
real_type & x_DD,
real_type & y_DD ) const
inline

Compute second derivative curve at position s with offset offs (SAE).

Parameters
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DD\(x\)-coordinate second derivative
[out]y_DD\(y\)-coordinate second derivative

◆ eval_SAE_DDD()

void G2lib::BaseCurve::eval_SAE_DDD ( real_type s,
real_type offs,
real_type & x_DDD,
real_type & y_DDD ) const
inline

Compute third derivative curve at position s with offset offs (SAE).

Parameters
[in]sparameter on the curve
[in]offsoffset of the curve
[out]x_DDD\(x\)-coordinate third derivative
[out]y_DDD\(y\)-coordinate third derivative

◆ evaluate()

void G2lib::ClothoidList::evaluate ( real_type s,
real_type & th,
real_type & k,
real_type & x,
real_type & y ) const
overridevirtual

Evaluate curve at curvilinear coordinate \(s\).

Parameters
[in]scurvilinear coordinate
[out]thangle
[out]kcurvature
[out]x\(x\)-coordinate
[out]y\(y\)-coordinate

Reimplemented from G2lib::BaseCurve.

◆ evaluate_ISO()

void G2lib::ClothoidList::evaluate_ISO ( real_type s,
real_type offs,
real_type & th,
real_type & k,
real_type & x,
real_type & y ) const
overridevirtual

Evaluate curve with offset at curvilinear coordinate \(s\) (ISO).

Parameters
[in]scurvilinear coordinate
[in]offsoffset
[out]thangle
[out]kcurvature
[out]x\(x\)-coordinate
[out]y\(y\)-coordinate

Reimplemented from G2lib::BaseCurve.

◆ evaluate_SAE()

virtual void G2lib::BaseCurve::evaluate_SAE ( real_type s,
real_type offs,
real_type & th,
real_type & k,
real_type & x,
real_type & y ) const
inlinevirtual

Evaluate curve with offset at curvilinear coordinate \(s\) (SAE).

Parameters
[in]scurvilinear coordinate
[in]offsoffset
[out]thangle
[out]kcurvature
[out]x\(x\)-coordinate
[out]y\(y\)-coordinate

Reimplemented from G2lib::BaseCurve.

◆ export_ruby()

void G2lib::ClothoidList::export_ruby ( ostream_type & stream) const

Save Clothoid list to a stream

Parameters
streamstreamstream to save

◆ export_table()

void G2lib::ClothoidList::export_table ( ostream_type & stream) const

Save Clothoid list to a stream

Parameters
streamstream to save

◆ find_at_s()

integer G2lib::ClothoidList::find_at_s ( real_type & s) const

Find the clothoid segment whose definiton range contains s

◆ findST1() [1/2]

integer G2lib::ClothoidList::findST1 ( integer ibegin,
integer iend,
real_type x,
real_type y,
real_type & s,
real_type & t ) const

Find parametric coordinate.

Parameters
ibegininitial segment to compute the distance
iendfinal segment to compute the distance
x\(x\)-coordinate point
y\(y\)-coordinate point
svalue \( s \)
tvalue \( t \)
Returns
idx the segment with point at minimal distance, otherwise -(idx+1) if \( (x,y) \) cannot be projected orthogonally on the segment

◆ findST1() [2/2]

integer G2lib::ClothoidList::findST1 ( real_type x,
real_type y,
real_type & s,
real_type & t ) const

Find parametric coordinate.

Parameters
x\(x\)-coordinate point
y\(y\)-coordinate point
svalue \( s \)
tvalue \( t \)
Returns
idx the segment with point at minimal distance, otherwise -(idx+1) if \( (x,y) \) cannot be projected orthogonally on the segment

◆ get()

ClothoidCurve const & G2lib::ClothoidList::get ( integer idx) const

Get the idx-th clothoid of the list

◆ get_at_s()

ClothoidCurve const & G2lib::ClothoidList::get_at_s ( real_type s) const

Get the idx-th clothoid of the list where idx is the clothoid at parameter s

◆ get_SK() [1/2]

void G2lib::ClothoidList::get_SK ( real_type s[],
real_type kappa[] ) const

Return the clothoid list as a list of nodes and curvatures

Parameters
[out]snodes
[out]kappacurvature

◆ get_SK() [2/2]

void G2lib::ClothoidList::get_SK ( vector< real_type > & s,
vector< real_type > & kappa ) const
inline

Return the clothoid list as a list of nodes and curvatures

Parameters
[out]snodes
[out]kappacurvature

◆ get_STK() [1/2]

void G2lib::ClothoidList::get_STK ( real_type s[],
real_type theta[],
real_type kappa[] ) const

Return the clothoid list as a list of nodes angles and curvatures

Parameters
[out]snodes
[out]thetaangles
[out]kappacurvature

◆ get_STK() [2/2]

void G2lib::ClothoidList::get_STK ( vector< real_type > & s,
vector< real_type > & theta,
vector< real_type > & kappa ) const
inline

Return the clothoid list as a list of nodes angles and curvatures

Parameters
[out]snodes
[out]thetaangles
[out]kappacurvature

◆ get_XY()

void G2lib::ClothoidList::get_XY ( real_type x[],
real_type y[] ) const

Return the points of the clothoid list at breakpoints

Parameters
[out]x\(x\)-coordinates
[out]y\(y\)-coordinates

◆ info()

void G2lib::ClothoidList::info ( ostream_type & stream) const
inlineoverridevirtual

Pretty print of the curve data.

Implements G2lib::BaseCurve.

◆ init()

void G2lib::ClothoidList::init ( )

Initialize the clothoid list

◆ intersect() [1/2]

void G2lib::ClothoidList::intersect ( BaseCurve const * pC,
IntersectList & ilist ) const
overridevirtual

Intersect the curve with another curve.

Parameters
[in]pCsecond curve intersect
[out]ilistlist of the intersection (as parameter on the curves)

Implements G2lib::BaseCurve.

◆ intersect() [2/2]

void G2lib::ClothoidList::intersect ( ClothoidList const & CL,
IntersectList & ilist ) const
inline

Intersect a clothoid list with another clothoid list

Parameters
[in]CLsecond clothoid list
[out]ilistlist of the intersection (as parameter on the curves)

◆ intersect_ISO() [1/2]

void G2lib::ClothoidList::intersect_ISO ( real_type offs,
BaseCurve const * pC,
real_type offs_C,
IntersectList & ilist ) const
overridevirtual

Intersect the curve with another curve with offset (ISO)

Parameters
[in]offsoffset first curve
[in]pCsecond curve intersect
[in]offs_Coffset second curve
[out]ilistlist of the intersection (as parameter on the curves)

Implements G2lib::BaseCurve.

◆ intersect_ISO() [2/2]

void G2lib::ClothoidList::intersect_ISO ( real_type offs,
ClothoidList const & CL,
real_type offs_obj,
IntersectList & ilist ) const

Intersect a clothoid list with another clothoid list with offset (ISO)

Parameters
[in]offsoffset of first clothoid list
[in]CLsecond clothoid list
[in]offs_objoffset of second clothoid list
[out]ilistlist of the intersection (as parameter on the curves)

◆ is_closed()

bool G2lib::ClothoidList::is_closed ( ) const
inline

True if curve is closed

◆ length()

real_type G2lib::ClothoidList::length ( ) const
overridevirtual

The length of the curve

Implements G2lib::BaseCurve.

◆ length_ISO()

real_type G2lib::ClothoidList::length_ISO ( real_type offs) const
overridevirtual

The length of the curve with offset (ISO)

Implements G2lib::BaseCurve.

◆ load()

void G2lib::ClothoidList::load ( istream_type & stream,
real_type epsi = 1e-8 )

Read the clothoid list from a stream. The data is assumed to be saved as follows

  # x y theta kappa
  x0 y0 theta0 kappa0
  x1 y1 theta1 kappa1
  ...
  xn yn thetan kappan

◆ make_closed()

void G2lib::ClothoidList::make_closed ( )
inline

Set clousure flag to true

◆ make_open()

void G2lib::ClothoidList::make_open ( )
inline

Set clousure flag to false

◆ num_segments()

integer G2lib::ClothoidList::num_segments ( ) const
inline

Return the numbber of clothoid of the list

◆ nx_begin_ISO()

real_type G2lib::ClothoidList::nx_begin_ISO ( ) const
inlineoverridevirtual

Intial normal \(x\)-coordinate (ISO).

Reimplemented from G2lib::BaseCurve.

◆ nx_begin_SAE()

real_type G2lib::BaseCurve::nx_begin_SAE ( ) const
inline

Intial normal \(x\)-coordinate (SAE).

◆ nx_end_ISO()

real_type G2lib::ClothoidList::nx_end_ISO ( ) const
inlineoverridevirtual

Final normal \(x\)-coordinate (ISO).

Reimplemented from G2lib::BaseCurve.

◆ nx_end_SAE()

real_type G2lib::BaseCurve::nx_end_SAE ( ) const
inline

Final normal \(x\)-coordinate (SAE).

◆ ny_begin_ISO()

real_type G2lib::ClothoidList::ny_begin_ISO ( ) const
inlineoverridevirtual

Intial normal \(y\)-coordinate (ISO).

Reimplemented from G2lib::BaseCurve.

◆ ny_begin_SAE()

real_type G2lib::BaseCurve::ny_begin_SAE ( ) const
inline

Intial normal \(y\)-coordinate (SAE).

◆ ny_end_ISO()

real_type G2lib::ClothoidList::ny_end_ISO ( ) const
inlineoverridevirtual

Final normal \(y\)-coordinate (ISO).

Reimplemented from G2lib::BaseCurve.

◆ ny_end_SAE()

real_type G2lib::BaseCurve::ny_end_SAE ( ) const
inline

Intial normal \(y\)-coordinate (SAE).

◆ operator=()

ClothoidList const & G2lib::ClothoidList::operator= ( ClothoidList const & s)
inline

Copy an existing clothoid list

◆ push_back() [1/14]

void G2lib::ClothoidList::push_back ( Biarc const & c)

Add a biarc to the tail of clothoid list

◆ push_back() [2/14]

void G2lib::ClothoidList::push_back ( BiarcList const & c)

Add a biarc list to the tail of clothoid list

◆ push_back() [3/14]

void G2lib::ClothoidList::push_back ( CircleArc const & c)

Add a circle arc to the tail of clothoid list

◆ push_back() [4/14]

void G2lib::ClothoidList::push_back ( ClothoidCurve const & c)

Add a clothoid curve to the tail of clothoid list

◆ push_back() [5/14]

void G2lib::ClothoidList::push_back ( ClothoidList const & c)

Add a clothoid list to the tail of clothoid list

◆ push_back() [6/14]

void G2lib::ClothoidList::push_back ( Dubins const & c)

Add a dubins 3 arc curve to the tail of clothoid list

◆ push_back() [7/14]

void G2lib::ClothoidList::push_back ( Dubins3p const & c)

Add a dubins 6 arc curve to the tail of clothoid list

◆ push_back() [8/14]

void G2lib::ClothoidList::push_back ( G2solve2arc const & c)

Add a G2solve2arc to the tail of clothoid list

◆ push_back() [9/14]

void G2lib::ClothoidList::push_back ( G2solve3arc const & c)

Add a G2solve3arc list to the tail of clothoid list

◆ push_back() [10/14]

void G2lib::ClothoidList::push_back ( G2solveCLC const & c)

Add a clothoid list to the tail of clothoid list

◆ push_back() [11/14]

void G2lib::ClothoidList::push_back ( LineSegment const & c)

Add a line segment to the tail of clothoid list

◆ push_back() [12/14]

void G2lib::ClothoidList::push_back ( PolyLine const & c)

Add a list of line segment to the tail of clothoid list

◆ push_back() [13/14]

void G2lib::ClothoidList::push_back ( real_type kappa0,
real_type dkappa,
real_type L )

Add a clothoid to the tail of the clothoid list.

Parameters
kappa0initial curvature
dkappaderivative of the curvature
Llength of the segment

◆ push_back() [14/14]

void G2lib::ClothoidList::push_back ( real_type x0,
real_type y0,
real_type theta0,
real_type kappa0,
real_type dkappa,
real_type L )

Add a clothoid to the tail of the clothoid list. The builded clothoid is translated to the tail of the clothioid list.

Parameters
x0initial x
y0initial y
theta0initial angle
kappa0initial curvature
dkappaderivative of the curvature
Llength of the segment

◆ push_back_G1() [1/2]

void G2lib::ClothoidList::push_back_G1 ( real_type x0,
real_type y0,
real_type theta0,
real_type x1,
real_type y1,
real_type theta1 )

Add a clothoid to the tail of the clothoid list solving the \( G^1 \) problem. The initial point and angle are taken from the tail of the clothoid list. The builded clothoid is translated to the tail of the clothioid list.

Parameters
x0initial x
y0initial y
theta0initial angle
x1final x
y1final y
theta1final angle

◆ push_back_G1() [2/2]

void G2lib::ClothoidList::push_back_G1 ( real_type x1,
real_type y1,
real_type theta1 )

Add a clothoid to the tail of the clothoid list solving the \( G^1 \) problem. The initial point and angle are taken from the tail of the clothoid list.

Parameters
x1final x
y1final y
theta1final angle

◆ reserve()

void G2lib::ClothoidList::reserve ( integer n)

Reserve memory for n clothoid

◆ reverse()

void G2lib::ClothoidList::reverse ( )
overridevirtual

Reverse curve parameterization.

Implements G2lib::BaseCurve.

◆ rotate()

void G2lib::ClothoidList::rotate ( real_type angle,
real_type cx,
real_type cy )
overridevirtual

Rotate curve by angle \(\theta\) centered at point \((c_x,c_y)\).

Parameters
[in]angleangle \(\theta\)
[in]cx\(c_x\)
[in]cy\(c_y\)

Implements G2lib::BaseCurve.

◆ save()

void G2lib::ClothoidList::save ( ostream_type & stream) const

Save the clothoid list on a stream. The data is saved as follows

  # x y theta kappa
  x0 y0 theta0 kappa0
  x1 y1 theta1 kappa1
  ...
  xn yn thetan kappan

◆ scale()

void G2lib::ClothoidList::scale ( real_type sc)
overridevirtual

Scale curve by factor sc.

Implements G2lib::BaseCurve.

◆ segment_length()

real_type G2lib::ClothoidList::segment_length ( integer nseg) const

Return the length of the nseg-th clothoid of the list

◆ segment_length_ISO()

real_type G2lib::ClothoidList::segment_length_ISO ( integer nseg,
real_type offs ) const

Return the length of the nseg-th clothoid of the list with offset

◆ segment_length_SAE()

real_type G2lib::ClothoidList::segment_length_SAE ( integer nseg,
real_type offs ) const
inline

Return the length of the nseg-th clothoid of the list with offset

◆ setup()

void G2lib::ClothoidList::setup ( GenericContainer const & gc)
overridevirtual

Implements G2lib::BaseCurve.

◆ tg()

void G2lib::ClothoidList::tg ( real_type s,
real_type & tg_x,
real_type & tg_y ) const
overridevirtual

Tangent at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ tg_D()

void G2lib::ClothoidList::tg_D ( real_type s,
real_type & tg_x_D,
real_type & tg_y_D ) const
overridevirtual

Tangent derivative at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ tg_DD()

void G2lib::ClothoidList::tg_DD ( real_type s,
real_type & tg_x_DD,
real_type & tg_y_DD ) const
overridevirtual

Tangent second derivative at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ tg_DDD()

void G2lib::ClothoidList::tg_DDD ( real_type s,
real_type & tg_x_DDD,
real_type & tg_y_DDD ) const
overridevirtual

Tangent third derivative at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ theta()

real_type G2lib::ClothoidList::theta ( real_type s) const
overridevirtual

Angle at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ theta_begin()

real_type G2lib::ClothoidList::theta_begin ( ) const
inlineoverridevirtual

Initial angle of the curve.

Reimplemented from G2lib::BaseCurve.

◆ theta_D()

real_type G2lib::ClothoidList::theta_D ( real_type s) const
overridevirtual

Angle derivative (curvature) at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ theta_DD()

real_type G2lib::ClothoidList::theta_DD ( real_type s) const
overridevirtual

Angle second derivative (devitive of curvature) at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ theta_DDD()

real_type G2lib::ClothoidList::theta_DDD ( real_type s) const
overridevirtual

Angle third derivative at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ theta_end()

real_type G2lib::ClothoidList::theta_end ( ) const
inlineoverridevirtual

Final angle of the curve.

Reimplemented from G2lib::BaseCurve.

◆ translate()

void G2lib::ClothoidList::translate ( real_type tx,
real_type ty )
overridevirtual

translate curve by \((t_x,t_y)\)

Implements G2lib::BaseCurve.

◆ trim()

void G2lib::ClothoidList::trim ( real_type s_begin,
real_type s_end )
overridevirtual

Cut curve at parametric coordinate s_begin and s_end.

Implements G2lib::BaseCurve.

◆ tx()

real_type G2lib::ClothoidList::tx ( real_type s) const
overridevirtual

Tangent \(x\)-coordinate at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ tx_begin()

real_type G2lib::ClothoidList::tx_begin ( ) const
inlineoverridevirtual

Initial tangent \(x\)-coordinate.

Reimplemented from G2lib::BaseCurve.

◆ tx_D()

real_type G2lib::ClothoidList::tx_D ( real_type s) const
overridevirtual

Tangent derivative \(x\)-coordinate at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ tx_DD()

real_type G2lib::ClothoidList::tx_DD ( real_type s) const
overridevirtual

Tangent second derivative \(x\)-coordinate at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ tx_DDD()

real_type G2lib::ClothoidList::tx_DDD ( real_type s) const
overridevirtual

Tangent third derivative \(x\)-coordinate at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ tx_end()

real_type G2lib::ClothoidList::tx_end ( ) const
inlineoverridevirtual

Final tangent \(x\)-coordinate.

Reimplemented from G2lib::BaseCurve.

◆ ty()

real_type G2lib::ClothoidList::ty ( real_type s) const
overridevirtual

Tangent \(y\)-coordinate at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ ty_begin()

real_type G2lib::ClothoidList::ty_begin ( ) const
inlineoverridevirtual

Initial tangent \(y\)-coordinate.

Reimplemented from G2lib::BaseCurve.

◆ ty_D()

real_type G2lib::ClothoidList::ty_D ( real_type s) const
overridevirtual

Tangent derivative \(y\)-coordinate at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ ty_DD()

real_type G2lib::ClothoidList::ty_DD ( real_type s) const
overridevirtual

Tangent second derivative \(y\)-coordinate at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ ty_DDD()

real_type G2lib::ClothoidList::ty_DDD ( real_type s) const
overridevirtual

Tangent third derivative \(y\)-coordinate at curvilinear coordinate \(s\).

Reimplemented from G2lib::BaseCurve.

◆ ty_end()

real_type G2lib::ClothoidList::ty_end ( ) const
inlineoverridevirtual

Final tangent \(y\)-coordinate.

Reimplemented from G2lib::BaseCurve.

◆ type()

CurveType G2lib::ClothoidList::type ( ) const
inlineoverridevirtual

The name of the curve type

Implements G2lib::BaseCurve.

◆ wrap_in_range()

void G2lib::ClothoidList::wrap_in_range ( real_type & s) const

The list of clothoid has total length \( L \) the parameter \( s \) us recomputed as \( s+kL \) in such a way \( s+kL\in[0,L) \) with \( k\in\mathbb{Z} \).

◆ X()

real_type G2lib::ClothoidList::X ( real_type s) const
overridevirtual

\(x\)-coordinate at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ x_begin()

real_type G2lib::ClothoidList::x_begin ( ) const
inlineoverridevirtual

Initial \(x\)-coordinate.

Reimplemented from G2lib::BaseCurve.

◆ x_begin_ISO()

real_type G2lib::ClothoidList::x_begin_ISO ( real_type offs) const
inlineoverridevirtual

Initial \(x\)-coordinate with offset (ISO standard).

Reimplemented from G2lib::BaseCurve.

◆ x_begin_SAE()

real_type G2lib::BaseCurve::x_begin_SAE ( real_type offs) const
inline

Initial \(x\)-coordinate with offset (SAE standard).

◆ X_D()

real_type G2lib::ClothoidList::X_D ( real_type s) const
overridevirtual

\(x\)-coordinate derivative at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ X_DD()

real_type G2lib::ClothoidList::X_DD ( real_type s) const
overridevirtual

\(x\)-coordinate second derivative at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ X_DDD()

real_type G2lib::ClothoidList::X_DDD ( real_type s) const
overridevirtual

\(x\)-coordinate third derivative at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ x_end()

real_type G2lib::ClothoidList::x_end ( ) const
inlineoverridevirtual

Final \(x\)-coordinate.

Reimplemented from G2lib::BaseCurve.

◆ x_end_ISO()

real_type G2lib::ClothoidList::x_end_ISO ( real_type offs) const
inlineoverridevirtual

Final \(x\)-coordinate with offset (ISO standard).

Reimplemented from G2lib::BaseCurve.

◆ x_end_SAE()

real_type G2lib::BaseCurve::x_end_SAE ( real_type offs) const
inline

Final \(y\)-coordinate with offset (SAE standard).

◆ X_ISO()

real_type G2lib::ClothoidList::X_ISO ( real_type s,
real_type offs ) const
overridevirtual

\(x\)-coordinate at curvilinear coordinate \(s\) with offset offs (ISO).

Reimplemented from G2lib::BaseCurve.

◆ X_ISO_D()

real_type G2lib::ClothoidList::X_ISO_D ( real_type s,
real_type offs ) const
overridevirtual

\(x\)-coordinate derivative at curvilinear coordinate \(s\) with offset offs (ISO).

Reimplemented from G2lib::BaseCurve.

◆ X_ISO_DD()

real_type G2lib::ClothoidList::X_ISO_DD ( real_type s,
real_type offs ) const
overridevirtual

\(x\)-coordinate second derivative at curvilinear coordinate \(s\) with offset offs (ISO).

Reimplemented from G2lib::BaseCurve.

◆ X_ISO_DDD()

real_type G2lib::ClothoidList::X_ISO_DDD ( real_type s,
real_type offs ) const
overridevirtual

\(x\)-coordinate third derivative at curvilinear coordinate \(s\) with offset offs (ISO).

Reimplemented from G2lib::BaseCurve.

◆ X_SAE()

real_type G2lib::BaseCurve::X_SAE ( real_type s,
real_type offs ) const
inline

\(x\)-coordinate at curvilinear coordinate \(s\) with offset offs (SAE).

◆ X_SAE_D()

real_type G2lib::BaseCurve::X_SAE_D ( real_type s,
real_type offs ) const
inline

\(x\)-coordinate derivative at curvilinear coordinate \(s\) with offset offs (SAE).

◆ X_SAE_DD()

real_type G2lib::BaseCurve::X_SAE_DD ( real_type s,
real_type offs ) const
inline

\(x\)-coordinate second derivative at curvilinear coordinate \(s\) with offset offs (SAE).

◆ X_SAE_DDD()

real_type G2lib::BaseCurve::X_SAE_DDD ( real_type s,
real_type offs ) const
inline

\(x\)-coordinate third derivative at curvilinear coordinate \(s\) with offset offs (SAE).

◆ Y()

real_type G2lib::ClothoidList::Y ( real_type s) const
overridevirtual

\(y\)-coordinate at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ y_begin()

real_type G2lib::ClothoidList::y_begin ( ) const
inlineoverridevirtual

Initial \(y\)-coordinate.

Reimplemented from G2lib::BaseCurve.

◆ y_begin_ISO()

real_type G2lib::ClothoidList::y_begin_ISO ( real_type offs) const
inlineoverridevirtual

Initial \(y\)-coordinate with offset (ISO standard).

Reimplemented from G2lib::BaseCurve.

◆ y_begin_SAE()

real_type G2lib::BaseCurve::y_begin_SAE ( real_type offs) const
inline

Initial \(y\)-coordinate with offset (SAE standard).

◆ Y_D()

real_type G2lib::ClothoidList::Y_D ( real_type s) const
overridevirtual

\(y\)-coordinate derivative at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ Y_DD()

real_type G2lib::ClothoidList::Y_DD ( real_type s) const
overridevirtual

\(y\)-coordinate second derivative at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ Y_DDD()

real_type G2lib::ClothoidList::Y_DDD ( real_type s) const
overridevirtual

\(y\)-coordinate third derivative at curvilinear coordinate \(s\).

Implements G2lib::BaseCurve.

◆ y_end()

real_type G2lib::ClothoidList::y_end ( ) const
inlineoverridevirtual

Final \(y\)-coordinate.

Reimplemented from G2lib::BaseCurve.

◆ y_end_ISO()

real_type G2lib::ClothoidList::y_end_ISO ( real_type offs) const
inlineoverridevirtual

Final \(y\)-coordinate with offset (ISO standard).

Reimplemented from G2lib::BaseCurve.

◆ y_end_SAE()

real_type G2lib::BaseCurve::y_end_SAE ( real_type offs) const
inline

Final \(y\)-coordinate with offset (ISO standard).

◆ Y_ISO()

real_type G2lib::ClothoidList::Y_ISO ( real_type s,
real_type offs ) const
overridevirtual

\(y\)-coordinate at curvilinear coordinate \(s\) with offset offs (ISO).

Reimplemented from G2lib::BaseCurve.

◆ Y_ISO_D()

real_type G2lib::ClothoidList::Y_ISO_D ( real_type s,
real_type offs ) const
overridevirtual

\(y\)-coordinate derivative at curvilinear coordinate \(s\) with offset offs (ISO).

Reimplemented from G2lib::BaseCurve.

◆ Y_ISO_DD()

real_type G2lib::ClothoidList::Y_ISO_DD ( real_type s,
real_type offs ) const
overridevirtual

\(y\)-coordinate second derivative at curvilinear coordinate \(s\) with offset offs (ISO).

Reimplemented from G2lib::BaseCurve.

◆ Y_ISO_DDD()

real_type G2lib::ClothoidList::Y_ISO_DDD ( real_type s,
real_type offs ) const
overridevirtual

\(y\)-coordinate third derivative at curvilinear coordinate \(s\) with offset offs (ISO).

Reimplemented from G2lib::BaseCurve.

◆ Y_SAE()

real_type G2lib::BaseCurve::Y_SAE ( real_type s,
real_type offs ) const
inline

\(y\)-coordinate at curvilinear coordinate \(s\) with offset offs (SAE).

◆ Y_SAE_D()

real_type G2lib::BaseCurve::Y_SAE_D ( real_type s,
real_type offs ) const
inline

\(y\)-coordinate derivative at curvilinear coordinate \(s\) with offset offs (SAE).

◆ Y_SAE_DD()

real_type G2lib::BaseCurve::Y_SAE_DD ( real_type s,
real_type offs ) const
inline

\(y\)-coordinate second derivative at curvilinear coordinate \(s\) with offset offs (SAE).

◆ Y_SAE_DDD()

real_type G2lib::BaseCurve::Y_SAE_DDD ( real_type s,
real_type offs ) const
inline

\(y\)-coordinate third derivative at curvilinear coordinate \(s\) with offset offs (SAE).

Friends And Related Symbol Documentation

◆ operator<<

ostream_type & operator<< ( ostream_type & stream,
ClothoidList const & CL )
friend

Print on strem the ClothoidList object

Parameters
streamthe output stream
CLan instance of ClothoidList object
Returns
the output stream

The documentation for this class was generated from the following files:
  • /Users/enrico/Ricerca/develop/PINS/pins-mechatronix/LibSources/submodules/Clothoids/src/Clothoids/ClothoidList.hxx
  • /Users/enrico/Ricerca/develop/PINS/pins-mechatronix/LibSources/submodules/Clothoids/src/ClothoidList.cc