#include <ndcurves/cubic_hermite_spline.h>
Public Member Functions | |
cubic_hermite_spline () | |
Empty constructor. Curve obtained this way can not perform other class functions. | |
template<typename In > | |
cubic_hermite_spline (In PairsBegin, In PairsEnd, const vector_time_t &time_control_points) | |
Constructor. | |
cubic_hermite_spline (const cubic_hermite_spline &other) | |
virtual | ~cubic_hermite_spline () |
Destructor. | |
virtual Point | operator() (const time_t t) const |
Evaluation of the cubic hermite spline at time t. | |
bool | isApprox (const cubic_hermite_spline_t &other, const Numeric prec=Eigen::NumTraits< Numeric >::dummy_precision()) const |
isApprox check if other and *this are approximately equals. Only two curves of the same class can be approximately equals, for comparison between different type of curves see isEquivalent | |
virtual bool | isApprox (const curve_abc_t *other, const Numeric prec=Eigen::NumTraits< Numeric >::dummy_precision()) const |
virtual bool | operator== (const cubic_hermite_spline_t &other) const |
virtual bool | operator!= (const cubic_hermite_spline_t &other) const |
virtual Point | derivate (const time_t t, const std::size_t order) const |
Evaluate the derivative of order N of spline at time t. | |
piecewise_bezier_t | compute_derivate (const std::size_t order) const |
piecewise_bezier_t * | compute_derivate_ptr (const std::size_t order) const |
Compute the derived curve at order N. | |
void | setTime (const vector_time_t &time_control_points) |
Set time of each control point of cubic hermite spline. Set duration of each spline, Exemple : \(( 0., 0.5, 0.9, ..., 4.5 )\) with values corresponding to times for \(P_0, P_1, P_2, ..., P_N\) respectively. | |
t_pair_point_tangent_t | getControlPoints () |
Get vector of pair (positition, derivative) corresponding to control points. | |
vector_time_t | getTime () |
Get vector of Time corresponding to Time for each control point. | |
std::size_t | size () const |
Get number of control points contained in the trajectory. | |
std::size_t | numIntervals () const |
Get number of intervals (subsplines) contained in the trajectory. | |
virtual std::size_t | dim () const |
Get dimension of curve. | |
virtual Time | min () const |
Get the minimum time for which the curve is defined. | |
virtual Time | max () const |
Get the maximum time for which the curve is defined. | |
virtual std::size_t | degree () const |
Get the degree of the curve. | |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
![]() | |
curve_abc () | |
Constructor. | |
virtual | ~curve_abc () |
Destructor. | |
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 threshold. This test is done by discretizing both curves and evaluating them and their derivatives. | |
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 threshold Only two curves of the same class can be approximately equal, for comparison between different type of curves see isEquivalent. | |
std::pair< time_t, time_t > | timeRange () |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
![]() | |
template<class Derived > | |
void | loadFromText (const std::string &filename) |
Loads a Derived object from a text file. | |
template<class Derived > | |
void | saveAsText (const std::string &filename) const |
Saved a Derived object as a text file. | |
template<class Derived > | |
void | loadFromXML (const std::string &filename, const std::string &tag_name) |
Loads a Derived object from an XML file. | |
template<class Derived > | |
void | saveAsXML (const std::string &filename, const std::string &tag_name) const |
Saved a Derived object as an XML file. | |
template<class Derived > | |
void | loadFromBinary (const std::string &filename) |
Loads a Derived object from an binary file. | |
template<class Derived > | |
void | saveAsBinary (const std::string &filename) const |
Saved a Derived object as an binary file. | |
Public Attributes | |
std::size_t | dim_ |
Dim of curve. | |
t_pair_point_tangent_t | control_points_ |
Vector of pair < Point, Tangent >. | |
vector_time_t | time_control_points_ |
vector_time_t | duration_splines_ |
Time | T_min_ |
Time | T_max_ |
std::size_t | size_ |
Number of control points (pairs). | |
std::size_t | degree_ |
Degree (Cubic so degree 3) | |
Friends | |
class | boost::serialization::access |
typedef bezier_curve<Time, Numeric, Safe, point_t> ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::bezier_t |
typedef cubic_hermite_spline<Time, Numeric, Safe, point_t> ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::cubic_hermite_spline_t |
typedef curve_abc<Time, Numeric, Safe, point_t> ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::curve_abc_t |
typedef Numeric ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::num_t |
typedef std::pair<Point, Point> ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::pair_point_tangent_t |
typedef piecewise_curve<Time, Numeric, Safe, point_t, point_t, bezier_t> ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::piecewise_bezier_t |
typedef Point ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::point_t |
typedef std::vector<pair_point_tangent_t, Eigen::aligned_allocator<pair_point_tangent_t> > ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::t_pair_point_tangent_t |
typedef bezier_t::t_point_t ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::t_point_t |
typedef Time ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::time_t |
typedef std::vector<Time> ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::vector_time_t |
|
inline |
Empty constructor. Curve obtained this way can not perform other class functions.
|
inline |
Constructor.
PairsBegin | : an iterator pointing to the first element of a pair(position, derivative) container. |
PairsEnd | : an iterator pointing to the last element of a pair(position, derivative) container. |
time_control_points | : vector containing time for each waypoint. |
|
inline |
|
inlinevirtual |
Destructor.
|
inline |
|
inlinevirtual |
Compute the derived curve at order N.
order | : order of derivative. |
Implements ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >.
|
inlinevirtual |
Get the degree of the curve.
Implements ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >.
|
inlinevirtual |
Evaluate the derivative of order N of spline at time t.
t | : time when to evaluate the spline. |
order | : order of derivative. |
Implements ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >.
|
inlinevirtual |
Get dimension of curve.
Implements ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >.
|
inline |
Get vector of pair (positition, derivative) corresponding to control points.
|
inline |
Get vector of Time corresponding to Time for each control point.
|
inline |
isApprox check if other and *this are approximately equals. Only two curves of the same class can be approximately equals, for comparison between different type of curves see isEquivalent
other | the other curve to check |
prec | the precision threshold, default Eigen::NumTraits<Numeric>::dummy_precision() |
|
inlinevirtual |
|
inlinevirtual |
Get the maximum time for which the curve is defined.
Implements ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >.
|
inlinevirtual |
Get the minimum time for which the curve is defined.
Implements ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >.
|
inline |
Get number of intervals (subsplines) contained in the trajectory.
|
inlinevirtual |
|
inlinevirtual |
Evaluation of the cubic hermite spline at time t.
t | : time when to evaluate the spline. |
Implements ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >.
|
inlinevirtual |
|
inline |
|
inline |
Set time of each control point of cubic hermite spline. Set duration of each spline, Exemple : \(( 0., 0.5, 0.9, ..., 4.5 )\) with values corresponding to times for \(P_0, P_1, P_2, ..., P_N\) respectively.
time_control_points | : Vector containing time for each control point. |
|
inline |
Get number of control points contained in the trajectory.
|
friend |
t_pair_point_tangent_t ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::control_points_ |
Vector of pair < Point, Tangent >.
std::size_t ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::degree_ |
Degree (Cubic so degree 3)
std::size_t ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::dim_ |
Dim of curve.
vector_time_t ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::duration_splines_ |
Vector of Time corresponding to time duration of each subspline.
For N control points with time \(T_{P_0}, T_{P_1}, T_{P_2}, ...,
T_{P_N}\) respectively, duration of each subspline is : ( T_{P_1}-T_{P_0}, T_{P_2}-T_{P_1}, ..., T_{P_N}-T_{P_{N-1} )
It contains \(N-1\) durations.
std::size_t ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::size_ |
Number of control points (pairs).
Time ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::T_max_ |
Ending time of cubic hermite spline : T_max_ is equal to last time of control points.
Time ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::T_min_ |
Starting time of cubic hermite spline : T_min_ is equal to first time of control points.
vector_time_t ndcurves::cubic_hermite_spline< Time, Numeric, Safe, Point >::time_control_points_ |
Vector of Time corresponding to time of each N control points : time at \(P_0, P_1, P_2, ..., P_N\). Exemple : \(( 0., 0.5, 0.9, ..., 4.5 )\) with values corresponding to times for \(P_0, P_1, P_2, ..., P_N\) respectively.