curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate > Struct Template Referenceabstract

Represents a curve of dimension Dim. If value of parameter Safe is false, no verification is made on the evaluation of the curve. More...

#include <curves/curve_abc.h>

Inheritance diagram for curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >:
Collaboration diagram for curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >:

Public Types

typedef Point point_t
 
typedef Point_derivate point_derivate_t
 
typedef Time time_t
 
typedef Numeric num_t
 
typedef curve_abc< Time, Numeric, Safe, point_t, point_derivate_tcurve_t
 
typedef curve_abc< Time, Numeric, Safe, point_derivate_tcurve_derivate_t
 
typedef boost::shared_ptr< curve_tcurve_ptr_t
 

Public Member Functions

 curve_abc ()
 Constructor. More...
 
virtual ~curve_abc ()
 Destructor. More...
 
virtual point_t operator() (const time_t t) const =0
 Evaluation of the cubic spline at time t. More...
 
virtual curve_derivate_tcompute_derivate_ptr (const std::size_t order) const =0
 Compute the derived curve at order N. More...
 
virtual point_derivate_t derivate (const time_t t, const std::size_t order) const =0
 Evaluate the derivative of order N of curve at time t. More...
 
bool isEquivalent (const curve_t *other, const Numeric prec=Eigen::NumTraits< Numeric >::dummy_precision(), const size_t order=5) const
 isEquivalent check if other and *this are approximately equal by values, given a precision treshold. This test is done by discretizing both curves and evaluating them and their derivatives. More...
 
virtual bool isApprox (const curve_t *other, const Numeric prec=Eigen::NumTraits< Numeric >::dummy_precision()) const =0
 isApprox check if other and *this are approximately equal given a precision treshold Only two curves of the same class can be approximately equal, for comparison between different type of curves see isEquivalent. More...
 
virtual std::size_t dim () const =0
 Get dimension of curve. More...
 
virtual time_t min () const =0
 Get the minimum time for which the curve is defined. More...
 
virtual time_t max () const =0
 Get the maximum time for which the curve is defined. More...
 
virtual std::size_t degree () const =0
 Get the degree of the curve. More...
 
std::pair< time_t, time_ttimeRange ()
 
template<class Archive >
void serialize (Archive &, const unsigned int version)
 

Friends

class boost::serialization::access
 

Detailed Description

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
struct curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >

Represents a curve of dimension Dim. If value of parameter Safe is false, no verification is made on the evaluation of the curve.

Member Typedef Documentation

◆ curve_derivate_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
typedef curve_abc<Time, Numeric, Safe, point_derivate_t> curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::curve_derivate_t

◆ curve_ptr_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
typedef boost::shared_ptr<curve_t> curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::curve_ptr_t

◆ curve_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
typedef curve_abc<Time, Numeric, Safe, point_t, point_derivate_t> curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::curve_t

◆ num_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
typedef Numeric curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::num_t

◆ point_derivate_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
typedef Point_derivate curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::point_derivate_t

◆ point_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
typedef Point curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::point_t

◆ time_t

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
typedef Time curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::time_t

Constructor & Destructor Documentation

◆ curve_abc()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::curve_abc ( )
inline

Constructor.

◆ ~curve_abc()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
virtual curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::~curve_abc ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ compute_derivate_ptr()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
virtual curve_derivate_t* curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::compute_derivate_ptr ( const std::size_t  order) const
pure virtual

◆ degree()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
virtual std::size_t curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::degree ( ) const
pure virtual

◆ derivate()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
virtual point_derivate_t curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::derivate ( const time_t  t,
const std::size_t  order 
) const
pure virtual

◆ dim()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
virtual std::size_t curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::dim ( ) const
pure virtual

◆ isApprox()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
virtual bool curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::isApprox ( const curve_t other,
const Numeric  prec = Eigen::NumTraits< Numeric >::dummy_precision() 
) const
pure virtual

isApprox check if other and *this are approximately equal given a precision treshold Only two curves of the same class can be approximately equal, for comparison between different type of curves see isEquivalent.

Parameters
otherthe other curve to check
precthe precision treshold, default Eigen::NumTraits<Numeric>::dummy_precision()
Returns
true if the two curves are approximately equal

Implemented in curves::SE3Curve< Time, Numeric, Safe >, curves::SO3Linear< Time, Numeric, Safe >, curves::piecewise_curve< Time, Numeric, Safe, Point, Point_derivate, CurveType >, and curves::piecewise_curve< Time, Numeric, Safe, Point >.

◆ isEquivalent()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
bool curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::isEquivalent ( const curve_t other,
const Numeric  prec = Eigen::NumTraits<Numeric>::dummy_precision(),
const size_t  order = 5 
) const
inline

isEquivalent check if other and *this are approximately equal by values, given a precision treshold. This test is done by discretizing both curves and evaluating them and their derivatives.

Parameters
otherthe other curve to check
orderthe order up to which the derivatives of the curves are checked for equality
precthe precision treshold, default Eigen::NumTraits<Numeric>::dummy_precision()
Returns
true if the two curves are approximately equal

◆ max()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
virtual time_t curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::max ( ) const
pure virtual

◆ min()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
virtual time_t curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::min ( ) const
pure virtual

◆ operator()()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
virtual point_t curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::operator() ( const time_t  t) const
pure virtual

◆ serialize()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
template<class Archive >
void curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::serialize ( Archive &  ,
const unsigned int  version 
)
inline

◆ timeRange()

template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>, typename Point_derivate = Point>
std::pair<time_t, time_t> curves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >::timeRange ( )
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 Point_derivate = Point>
friend class boost::serialization::access
friend

The documentation for this struct was generated from the following file: