|
template<typename In > |
| bezier_curve (In PointsBegin, In PointsEnd) |
| Constructor. More...
|
|
template<typename In > |
| bezier_curve (In PointsBegin, In PointsEnd, const time_t T) |
| Constructor. More...
|
|
template<typename In > |
| bezier_curve (In PointsBegin, In PointsEnd, const time_t T, const time_t mult_T) |
| Constructor. More...
|
|
template<typename In > |
| bezier_curve (In PointsBegin, In PointsEnd, const curve_constraints_t &constraints, const time_t T=1.) |
| Constructor This constructor will add 4 points (2 after the first one, 2 before the last one) to ensure that velocity and acceleration constraints are respected. More...
|
|
| ~bezier_curve () |
| Destructor. More...
|
|
virtual point_t | operator() (const time_t t) const |
| Evaluation of the cubic spline at time t. More...
|
|
bezier_curve_t | compute_derivate (const std::size_t order) const |
| Computes the derivative curve at order N. More...
|
|
bezier_curve_t | compute_primitive (const std::size_t order) const |
| Computes the primitive of the curve at order N. More...
|
|
virtual point_t | derivate (const time_t t, const std::size_t order) const |
| Evaluates the derivative at order N of the curve. More...
|
|
point_t | evalBernstein (const Numeric t) const |
| Evaluates all Bernstein polynomes for a certain degree Warning: the horner scheme is about 100 times faster than this method. More...
|
|
point_t | evalHorner (const Numeric t) const |
| Evaluates all Bernstein polynomes for a certain degree using horner's scheme. More...
|
|
const t_point_t & | waypoints () const |
|
point_t | evalDeCasteljau (const Numeric t) const |
| evalDeCasteljau evaluate the curve value at time t using deCasteljau algorithm More...
|
|
t_point_t | deCasteljauReduction (const Numeric t) const |
|
t_point_t | deCasteljauReduction (const t_point_t &pts, const Numeric u) const |
| deCasteljauReduction compute the de Casteljau's reduction of the given list of points at time t More...
|
|
std::pair< bezier_curve_t, bezier_curve_t > | split (const Numeric t) |
| split split the curve in 2 at time t More...
|
|
bezier_curve_t | extract (const Numeric t1, const Numeric t2) |
|
virtual time_t | min () const |
|
virtual time_t | max () const |
|
| 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 point_t | derivate (const time_t t, const std::size_t order) const=0 |
| Evaluation of the derivative spline at time t. More...
|
|
virtual time_t | min () const=0 |
| Returns the minimum time for wich curve is defined. More...
|
|
virtual time_t | max () const=0 |
| Returns the maximum time for wich curve is defined. More...
|
|
std::pair< time_t, time_t > | timeRange () |
|
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
template<typename In >
Constructor.
- Parameters
-
PointsBegin,PointsEnd | : the points parametering the Bezier curve |
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::bernstein_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::size_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_.
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
template<typename In >
Constructor.
- Parameters
-
PointsBegin,PointsEnd | : the points parametering the Bezier curve |
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::bernstein_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::size_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_.
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
template<typename In >
Constructor.
- Parameters
-
PointsBegin,PointsEnd | : the points parametering the Bezier curve |
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::bernstein_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::size_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_.
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
template<typename In >
Constructor This constructor will add 4 points (2 after the first one, 2 before the last one) to ensure that velocity and acceleration constraints are respected.
- Parameters
-
PointsBegin,PointsEnd | : the points parametering the Bezier curve |
constraints | : constraints applying on start / end velocities and acceleration |
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::size_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_.
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
Computes the derivative curve at order N.
- Parameters
-
order | : order of the derivative |
return | : the value x(t) |
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::compute_derivate(), spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::degree_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::mult_T_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_.
Referenced by spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::compute_derivate(), and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::derivate().
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
Computes the primitive of the curve at order N.
- Parameters
-
constant | : value of the primitive at t = 0 |
return | : the curve x_1(t) such that d/dt(x_1(t)) = x_1(t) |
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::compute_primitive(), spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::degree_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::mult_T_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_.
Referenced by spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::compute_primitive().
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::deCasteljauReduction(), spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::waypoints().
Referenced by spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::deCasteljauReduction(), spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::evalDeCasteljau(), and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::split().
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
deCasteljauReduction compute the de Casteljau's reduction of the given list of points at time t
- Parameters
-
pts | the original list of points |
u | the NORMALIZED time |
- Returns
- the reduced list of point (size of pts - 1)
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
Evaluates all Bernstein polynomes for a certain degree Warning: the horner scheme is about 100 times faster than this method.
This method will probably be removed in the future
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::bernstein_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::mult_T_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_.
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
evalDeCasteljau evaluate the curve value at time t using deCasteljau algorithm
- Parameters
-
- Returns
- the point at time t
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::deCasteljauReduction(), spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::mult_T_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::waypoints().
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
Evaluates all Bernstein polynomes for a certain degree using horner's scheme.
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::degree_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::mult_T_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_.
Referenced by spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::operator()().
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::mult_T_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::split(), spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::waypoints().
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
Evaluation of the cubic spline at time t.
- Parameters
-
t | : the time when to evaluate the spine |
return | : the value x(t) |
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::evalHorner(), spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::mult_T_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::size_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_.
template<typename Time = double, typename Numeric = Time, std::size_t Dim = 3, bool Safe = false, typename Point = Eigen::Matrix<Numeric, Dim, 1>>
split split the curve in 2 at time t
- Parameters
-
- Returns
References spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::deCasteljauReduction(), spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::degree_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::mult_T_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::size_, spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::T_, and spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::waypoints().
Referenced by spline::bezier_curve< Time, Numeric, Dim, Safe, Point >::extract().