|
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_t > | t_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, T_Point, SplineBase > | exact_cubic_t |
|
typedef curve_abc< Time, Numeric, Safe, point_t > | curve_abc_t |
|
typedef piecewise_curve< Time, Numeric, Safe, point_t > | piecewise_curve_t |
|
typedef polynomial< Time, Numeric, Safe, point_t > | polynomial_t |
|
typedef piecewise_curve_t::t_curve_ptr_t | t_curve_ptr_t |
|
typedef Eigen::Matrix< double, Eigen::Dynamic, 1 > | point_t |
|
typedef Eigen::Matrix< double, Eigen::Dynamic, 1 > | point_derivate_t |
|
typedef std::vector< point_t, Eigen::aligned_allocator< point_t > > | t_point_t |
|
typedef std::vector< point_derivate_t, Eigen::aligned_allocator< point_derivate_t > > | t_point_derivate_t |
|
typedef double | time_t |
|
typedef double | num_t |
|
typedef curve_abc< double, double, Safe, point_t, point_derivate_t > | base_curve_t |
|
typedef curve_abc< double, double, Safe, Eigen::Matrix< double, Eigen::Dynamic, 1 >, Eigen::Matrix< double, Eigen::Dynamic, 1 > > | curve_t |
|
typedef boost::shared_ptr< curve_t > | curve_ptr_t |
|
typedef std::vector< curve_ptr_t > | t_curve_ptr_t |
|
typedef std::vector< double > | t_time_t |
|
typedef piecewise_curve< double, double, Safe, Eigen::Matrix< double, Eigen::Dynamic, 1 >, Eigen::Matrix< double, Eigen::Dynamic, 1 >, curve_abc< double, double, Safe, Eigen::Matrix< double, Eigen::Dynamic, 1 >, Eigen::Matrix< double, Eigen::Dynamic, 1 > > > | piecewise_curve_t |
|
typedef piecewise_curve< double, double, Safe, Eigen::Matrix< double, Eigen::Dynamic, 1 >, Eigen::Matrix< double, Eigen::Dynamic, 1 >, typename curve_abc< double, double, Safe, Eigen::Matrix< double, Eigen::Dynamic, 1 >, Eigen::Matrix< double, Eigen::Dynamic, 1 > > ::curve_derivate_t > | piecewise_curve_derivate_t |
|
typedef boost::shared_ptr< typename piecewise_curve_derivate_t::curve_t > | curve_derivate_ptr_t |
|
|
| exact_cubic () |
| Empty constructor. Add at least one curve to call other class functions. 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 t_curve_ptr_t &subSplines) |
|
| exact_cubic (const exact_cubic &other) |
| Copy Constructor. More...
|
|
virtual | ~exact_cubic () |
| Destructor. More...
|
|
bool | isApprox (const exact_cubic_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 More...
|
|
std::size_t | getNumberSplines () |
|
spline_t | getSplineAt (std::size_t index) |
|
template<class Archive > |
void | serialize (Archive &ar, const unsigned int version) |
|
| piecewise_curve () |
| Empty constructor. Add at least one curve to call other class functions. More...
|
|
| piecewise_curve (const curve_ptr_t &cf) |
| Constructor. Initialize a piecewise curve by giving the first curve. More...
|
|
| piecewise_curve (const t_curve_ptr_t &curves_list) |
|
| piecewise_curve (const piecewise_curve &other) |
|
virtual | ~piecewise_curve () |
|
virtual point_t | operator() (const double t) const |
|
bool | isApprox (const piecewise_curve_t &other, const double prec=Eigen::NumTraits< double >::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 More...
|
|
virtual bool | isApprox (const base_curve_t *other, const double prec=Eigen::NumTraits< double >::dummy_precision()) const |
|
virtual bool | operator== (const piecewise_curve_t &other) const |
|
virtual bool | operator!= (const piecewise_curve_t &other) const |
|
virtual point_derivate_t | derivate (const double t, const std::size_t order) const |
| Evaluate the derivative of order N of curve at time t. More...
|
|
piecewise_curve_derivate_t * | compute_derivate_ptr (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 &curve) |
|
void | add_curve_ptr (const curve_ptr_t &cf) |
| Add a new curve to piecewise curve, which should be defined in where is equal to of the actual piecewise curve. The curve added should be of type Curve as defined in the template. More...
|
|
bool | is_continuous (const std::size_t order) |
| Check if the curve is continuous of order given. More...
|
|
std::size_t | num_curves () const |
| Get number of curves in piecewise curve. More...
|
|
curve_ptr_t | curve_at_time (const time_t t) const |
| Get curve corresponding to time t in piecewise curve. Example : A piecewise curve PC made of two curves : c1 for t in [0,1] and c2 for t in ]1,2]. PC.curve_at_time(0.5) will return c1. More...
|
|
curve_ptr_t | curve_at_index (const std::size_t idx) const |
| Get curve at specified index in piecewise curve. More...
|
|
piecewise_curve_t | convert_piecewise_curve_to_bezier () |
| Convert all curves in piecewise curve into bezier curves. More...
|
|
piecewise_curve_t | convert_piecewise_curve_to_cubic_hermite () |
| Convert all curves in piecewise curve into cubic hermite curves. Curves need to be of degree inferior or equal to three. More...
|
|
piecewise_curve_t | convert_piecewise_curve_to_polynomial () |
| Convert all curves in piecewise curve into polynomial curves. More...
|
|
virtual std::size_t | dim () const |
| Get dimension of curve. More...
|
|
virtual double | min () const |
| Get the minimum time for which the curve is defined. More...
|
|
virtual double | max () const |
| Get the maximum time for which the curve is defined. More...
|
|
virtual std::size_t | degree () const |
| Get the degree of the curve. More...
|
|
std::size_t | getNumberCurves () |
|
void | serialize (Archive &ar, const unsigned int version) |
|
|
static piecewise_curve_t | convert_discrete_points_to_polynomial (t_point_t points, t_time_t time_points) |
| Convert discrete points into piecewise polynomial curve with C0 continuity. More...
|
|
static piecewise_curve_t | convert_discrete_points_to_polynomial (t_point_t points, t_point_derivate_t points_derivative, t_time_t time_points) |
| Convert discrete points into piecewise polynomial curve with C1 continuity. More...
|
|
static piecewise_curve_t | convert_discrete_points_to_polynomial (t_point_t points, t_point_derivate_t points_derivative, t_point_derivate_t points_second_derivative, t_time_t time_points) |
| Convert discrete points into piecewise polynomial curve with C2 continuity. More...
|
|
static piecewise_curve_t | load_piecewise_from_text_file (const std::string &filename, const time_t dt, const size_t dim) |
| load_piecewise_from_text_file build a piecewise polynomial from a list of discrete points read from a file. The file should contains one points per line, optionally with it's derivative and second derivatives. Each lines should then contains dim, 2*dim or 3*dim values More...
|
|
static const double | MARGIN |
|
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 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 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, T_Point, SplineBase> curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::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>>
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 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 |
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 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 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 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 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 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 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 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 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 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 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>>
Empty constructor. Add at least one curve to call other class functions.
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 >
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. |
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 >
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. |
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>>
Constructor.
- Parameters
-
subSplines | vector of subSplines. |
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 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 |
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 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 |
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 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>>
bool curves::exact_cubic< Time, Numeric, Safe, Point, T_Point, SplineBase >::isApprox |
( |
const exact_cubic_t & |
other, |
|
|
const Numeric |
prec = Eigen::NumTraits<Numeric>::dummy_precision() |
|
) |
| const |
|
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
- Parameters
-
other | the other curve to check |
prec | the precision treshold, default Eigen::NumTraits<Numeric>::dummy_precision() |
- Returns
- true is the two curves are approximately equals
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 |
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 |
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>>