curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase > Struct Template Reference

#include <curves/exact_cubic.h>

Inheritance diagram for curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >:
[legend]
Collaboration diagram for curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >:
[legend]

Public Types

typedef Point point_t
 
typedef T_Point t_point_t
 
typedef Eigen::Matrix< Numeric, Eigen::Dynamic, Eigen::Dynamic > MatrixX
 
typedef Eigen::Matrix< Numeric, 3, 3 > Matrix3
 
typedef Time time_t
 
typedef Numeric num_t
 
typedef SplineBase spline_t
 
typedef std::vector< spline_tt_spline_t
 
typedef t_spline_t::iterator it_spline_t
 
typedef t_spline_t::const_iterator cit_spline_t
 
typedef curve_constraints< Point > spline_constraints
 
typedef exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase > exact_cubic_t
 
typedef piecewise_curve< Time, Numeric, Safe, Point, T_Point, SplineBase > piecewise_curve_t
 
- Public Types inherited from curves::piecewise_curve< Time, Numeric, Safe, Point, T_Point, SplineBase >
typedef Point point_t
 
typedef T_Point t_point_t
 
typedef Time time_t
 
typedef Numeric num_t
 
typedef SplineBase curve_t
 
typedef std::vector< curve_tt_curve_t
 
typedef std::vector< Time > t_time_t
 
- Public Types inherited from curves::curve_abc< Time, Numeric, Safe, Point >
typedef Point point_t
 
typedef Time time_t
 

Public Member Functions

 exact_cubic ()
 Empty constructor. More...
 
template<typename In >
 exact_cubic (In wayPointsBegin, In wayPointsEnd)
 Constructor. More...
 
template<typename In >
 exact_cubic (In wayPointsBegin, In wayPointsEnd, const spline_constraints &constraints)
 Constructor. More...
 
 exact_cubic (const t_spline_t &subSplines)
 Constructor. More...
 
 exact_cubic (const exact_cubic &other)
 Copy Constructor. More...
 
virtual ~exact_cubic ()
 Destructor. More...
 
std::size_t getNumberSplines ()
 
spline_t getSplineAt (std::size_t index)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 
- Public Member Functions inherited from curves::piecewise_curve< Time, Numeric, Safe, Point, T_Point, SplineBase >
 piecewise_curve ()
 Empty constructor. More...
 
 piecewise_curve (const curve_t &cf)
 Constructor. More...
 
 piecewise_curve (const t_curve_t list_curves)
 
 piecewise_curve (const piecewise_curve &other)
 
virtual ~piecewise_curve ()
 
virtual Point operator() (const Time t) const
 Evaluation of the cubic spline at time t. More...
 
virtual Point derivate (const Time t, const std::size_t order) const
 Evaluate the derivative of order N of curve at time t. More...
 
piecewise_curve< Time, Numeric, Safe, Point, T_Point, SplineBase > compute_derivate (const std::size_t order) const
 compute_derivate return a piecewise_curve which is the derivative of this at given order More...
 
void add_curve (const curve_t &cf)
 Add a new curve to piecewise curve, which should be defined in $[T_{min},T_{max}]$ where $T_{min}$ is equal to $T_{max}$ of the actual piecewise curve. More...
 
bool is_continuous (const std::size_t order)
 Check if the curve is continuous of order given. More...
 
piecewise_curve< Time, Numeric, Safe, Point, T_Point, Bezier > convert_piecewise_curve_to_bezier ()
 
piecewise_curve< Time, Numeric, Safe, Point, T_Point, Hermite > convert_piecewise_curve_to_cubic_hermite ()
 
piecewise_curve< Time, Numeric, Safe, Point, T_Point, Polynomial > convert_piecewise_curve_to_polynomial ()
 
virtual std::size_t dim () const
 Get dimension of curve. More...
 
virtual Time min () const
 Get the minimum time for which the curve is defined. More...
 
virtual Time max () const
 Get the maximum time for which the curve is defined. More...
 
std::size_t getNumberCurves ()
 
void serialize (Archive &ar, const unsigned int version)
 
- Public Member Functions inherited from curves::curve_abc< Time, Numeric, Safe, Point >
 curve_abc ()
 Constructor. More...
 
virtual ~curve_abc ()
 Destructor. More...
 
std::pair< time_t, time_ttimeRange ()
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Static Public Member Functions inherited from curves::piecewise_curve< Time, Numeric, Safe, Point, T_Point, SplineBase >
static piecewise_curve< Time, Numeric, Safe, Point, T_Point, Polynomial > convert_discrete_points_to_polynomial (T_Point points, t_time_t time_points)
 
static piecewise_curve< Time, Numeric, Safe, Point, T_Point, Polynomial > convert_discrete_points_to_polynomial (T_Point points, T_Point points_derivative, t_time_t time_points)
 
static piecewise_curve< Time, Numeric, Safe, Point, T_Point, Polynomial > convert_discrete_points_to_polynomial (T_Point points, T_Point points_derivative, T_Point points_second_derivative, t_time_t time_points)
 
- Public Attributes inherited from curves::piecewise_curve< Time, Numeric, Safe, Point, T_Point, SplineBase >
std::size_t dim_
 
t_curve_t curves_
 
t_time_t time_curves_
 
std::size_t size_
 
Time T_min_
 
Time T_max_
 
- Static Public Attributes inherited from curves::piecewise_curve< Time, Numeric, Safe, Point, T_Point, SplineBase >
static const double MARGIN
 

Member Typedef Documentation

◆ cit_spline_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef t_spline_t::const_iterator curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::cit_spline_t

◆ exact_cubic_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef exact_cubic<Time, Numeric, Safe, Point, T_Point, SplineBase> curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::exact_cubic_t

◆ it_spline_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef t_spline_t::iterator curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::it_spline_t

◆ Matrix3

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef Eigen::Matrix<Numeric, 3, 3> curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::Matrix3

◆ MatrixX

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef Eigen::Matrix<Numeric, Eigen::Dynamic, Eigen::Dynamic> curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::MatrixX

◆ num_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef Numeric curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::num_t

◆ piecewise_curve_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef piecewise_curve<Time, Numeric, Safe, Point, T_Point, SplineBase> curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::piecewise_curve_t

◆ point_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef Point curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::point_t

◆ spline_constraints

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef curve_constraints<Point> curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::spline_constraints

◆ spline_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef SplineBase curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::spline_t

◆ t_point_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef T_Point curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::t_point_t

◆ t_spline_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef std::vector<spline_t> curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::t_spline_t

◆ time_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
typedef Time curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::time_t

Constructor & Destructor Documentation

◆ exact_cubic() [1/5]

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::exact_cubic ( )
inline

Empty constructor.

Add at least one curve to call other class functions.

◆ exact_cubic() [2/5]

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
template<typename In >
curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::exact_cubic ( In  wayPointsBegin,
In  wayPointsEnd 
)
inline

Constructor.

Parameters
wayPointsBegin: an iterator pointing to the first element of a waypoint container.
wayPointsEns: an iterator pointing to the last element of a waypoint container.

◆ exact_cubic() [3/5]

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
template<typename In >
curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::exact_cubic ( In  wayPointsBegin,
In  wayPointsEnd,
const spline_constraints constraints 
)
inline

Constructor.

Parameters
wayPointsBegin: an iterator pointing to the first element of a waypoint container.
wayPointsEns: an iterator pointing to the last element of a waypoint container.
constraints: constraints on the init and end velocity / accelerations of the spline.

◆ exact_cubic() [4/5]

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::exact_cubic ( const t_spline_t subSplines)
inline

Constructor.

Parameters
subSplinesvector of subSplines.

◆ exact_cubic() [5/5]

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::exact_cubic ( const exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase > &  other)
inline

Copy Constructor.

◆ ~exact_cubic()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
virtual curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::~exact_cubic ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ getNumberSplines()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
std::size_t curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::getNumberSplines ( )
inline

◆ getSplineAt()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
spline_t curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::getSplineAt ( std::size_t  index)
inline

◆ serialize()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
template<class Archive >
void curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::serialize ( Archive &  ar,
const unsigned int  version 
)
inline

Friends And Related Function Documentation

◆ boost::serialization::access

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename T_Point = std::vector<Point, Eigen::aligned_allocator<Point> >, typename SplineBase = polynomial<Time, Numeric, Safe, Point, T_Point>>
friend class boost::serialization::access
friend