|
ndcurves 2.1.0
create and manipulate spline and bezier curves.
|
Represents a sinusoidal curve, evaluating the following equation: p0 + amplitude * (sin(2pi/T + phi) More...
#include <ndcurves/sinusoidal.h>


Public Types | |
| typedef Point | point_t |
| typedef Point | point_derivate_t |
| typedef Time | time_t |
| typedef Numeric | num_t |
| typedef sinusoidal< Time, Numeric, Safe, Point > | sinusoidal_t |
| typedef curve_abc< Time, Numeric, Safe, Point > | curve_abc_t |
Public Types inherited from ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate > | |
| 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_t > | curve_t |
| typedef curve_abc< Time, Numeric, Safe, point_derivate_t > | curve_derivate_t |
| typedef std::shared_ptr< curve_t > | curve_ptr_t |
Public Member Functions | |
| sinusoidal () | |
| Empty constructor. Curve obtained this way can not perform other class functions. | |
| sinusoidal (const Point &p0, const Point &litude, const time_t T, const time_t phi, const time_t T_min=0., const time_t T_max=std::numeric_limits< time_t >::max()) | |
| Constructor. | |
| sinusoidal (const time_t traj_time, const Point &p_init, const Point &p_final, const time_t T_min=0., const time_t T_max=std::numeric_limits< time_t >::max()) | |
| Constructor from stationary points. | |
| sinusoidal (const sinusoidal_t &other) | |
| Copy constructor. | |
| virtual | ~sinusoidal () |
| Destructor. | |
| virtual point_t | operator() (const time_t t) const |
| Evaluation of the cubic spline at time t. | |
| virtual point_derivate_t | derivate (const time_t t, const std::size_t order) const |
| Evaluate the derivative of order N of curve at time t. | |
| sinusoidal_t | compute_derivate (const std::size_t order) const |
Compute the derived curve at order N. Computes the derivative order N, ![]() | |
| virtual sinusoidal_t * | compute_derivate_ptr (const std::size_t order) const |
| Compute the derived curve at orderN. | |
| virtual bool | isApprox (const sinusoidal_t &other, const Numeric prec=Eigen::NumTraits< Numeric >::dummy_precision()) const |
| isApprox check if other and *this are approximately equals given a precision threshold 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 sinusoidal_t &other) const |
| virtual bool | operator!= (const sinusoidal_t &other) const |
| virtual std::size_t | dim () const |
| Get dimension of curve. | |
| virtual num_t | min () const |
| Get the minimum time for which the curve is defined. | |
| virtual num_t | 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) |
Public Member Functions inherited from ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate > | |
| 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) |
Public Member Functions inherited from ndcurves::serialization::Serializable | |
| 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 | |
| Point | p0_ |
| Point | amplitude_ |
| time_t | T_ |
| time_t | phi_ |
| time_t | T_min_ |
| time_t | T_max_ |
| std::size_t | dim_ |
Friends | |
| class | boost::serialization::access |
Represents a sinusoidal curve, evaluating the following equation: p0 + amplitude * (sin(2pi/T + phi)
| typedef curve_abc<Time, Numeric, Safe, Point> ndcurves::sinusoidal< Time, Numeric, Safe, Point >::curve_abc_t |
| typedef Numeric ndcurves::sinusoidal< Time, Numeric, Safe, Point >::num_t |
| typedef Point ndcurves::sinusoidal< Time, Numeric, Safe, Point >::point_derivate_t |
| typedef Point ndcurves::sinusoidal< Time, Numeric, Safe, Point >::point_t |
| typedef sinusoidal<Time, Numeric, Safe, Point> ndcurves::sinusoidal< Time, Numeric, Safe, Point >::sinusoidal_t |
| typedef Time ndcurves::sinusoidal< Time, Numeric, Safe, Point >::time_t |
|
inline |
Empty constructor. Curve obtained this way can not perform other class functions.
|
inline |
Constructor.
| p0 | : Offset of the sinusoidal |
| amplitude | Amplitude |
| T | : The period |
| phi | : the phase |
| T_min | : lower bound of the time interval (default to 0) |
| T_max | : upper bound of the time interval (default to +inf) |
|
inline |
Constructor from stationary points.
| traj_time | duration to go from p_init to p_final (half a period) |
| p_init | : first stationary point, either minimum or maximum |
| p_final | : second stationary point, either minimum or maximum |
| T_min | : lower bound of the time interval (default to 0) |
| T_max | : upper bound of the time interval (default to +inf) |
|
inline |
Copy constructor.
| other |
|
inlinevirtual |
Destructor.
|
inline |
Compute the derived curve at order N. Computes the derivative order N, 
| order | : order of derivative. |

|
inlinevirtual |
Compute the derived curve at orderN.
| 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 curve 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 >.
|
inlinevirtual |
|
inlinevirtual |
isApprox check if other and *this are approximately equals given a precision threshold 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 |
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 >.
|
inlinevirtual |
|
inlinevirtual |
Evaluation of the cubic spline at time t.
| t | : time when to evaluate the spine |

Implements ndcurves::curve_abc< Time, Numeric, Safe, Point, Point_derivate >.
|
inlinevirtual |
|
inline |
|
friend |
| Point ndcurves::sinusoidal< Time, Numeric, Safe, Point >::amplitude_ |
| std::size_t ndcurves::sinusoidal< Time, Numeric, Safe, Point >::dim_ |
| Point ndcurves::sinusoidal< Time, Numeric, Safe, Point >::p0_ |
| time_t ndcurves::sinusoidal< Time, Numeric, Safe, Point >::phi_ |
| time_t ndcurves::sinusoidal< Time, Numeric, Safe, Point >::T_ |
| time_t ndcurves::sinusoidal< Time, Numeric, Safe, Point >::T_max_ |
| time_t ndcurves::sinusoidal< Time, Numeric, Safe, Point >::T_min_ |