Represents a sinusoidal curve, evaluating the following equation: p0 + amplitude * (sin(2pi/T + phi)
More...
|
| 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, \(\frac{d^Nx(t)}{dt^N}\) of bezier curve of parametric equation x(t).
|
|
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) |
|
| 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.
|
|
template<
typename Time = double,
typename Numeric = Time,
bool Safe = false,
typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
class ndcurves::sinusoidal< Time, Numeric, Safe, Point >
Represents a sinusoidal curve, evaluating the following equation: p0 + amplitude * (sin(2pi/T + phi)
template<typename Time = double, typename Numeric = Time, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Eigen::Dynamic, 1>>
virtual bool ndcurves::sinusoidal< Time, Numeric, Safe, Point >::isApprox |
( |
const sinusoidal_t & |
other, |
|
|
const Numeric |
prec = Eigen::NumTraits<Numeric>::dummy_precision() |
|
) |
| const |
|
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.
- Parameters
-
other | the other curve to check |
prec | the precision threshold, default Eigen::NumTraits<Numeric>::dummy_precision() |
- Returns
- true is the two curves are approximately equals