Aikido
|
#include <aikido/common/BSpline.hpp>
Public Types | |
enum | { Dimension = _Dim } |
enum | { Degree = _Degree } |
typedef _Scalar | Scalar |
typedef SplineTraits< BSpline >::PointType | PointType |
The point type the spline is representing. More... | |
typedef SplineTraits< BSpline >::KnotVectorType | KnotVectorType |
The data type used to store knot vectors. More... | |
typedef SplineTraits< BSpline >::ParameterVectorType | ParameterVectorType |
The data type used to store parameter vectors. More... | |
typedef SplineTraits< BSpline >::BasisVectorType | BasisVectorType |
The data type used to store non-zero basis functions. More... | |
typedef SplineTraits< BSpline >::BasisDerivativeType | BasisDerivativeType |
The data type used to store the values of the basis function derivatives. More... | |
typedef SplineTraits< BSpline >::ControlPointVectorType | ControlPointVectorType |
The data type representing the spline's control points. More... | |
Public Member Functions | |
BSpline () | |
Creates a (constant) zero spline. More... | |
template<typename OtherVectorType , typename OtherArrayType > | |
BSpline (const OtherVectorType &knots, const OtherArrayType &ctrls) | |
Creates a spline from a knot vector and control points. More... | |
template<int OtherDegree> | |
BSpline (const BSpline< Scalar, Dimension, OtherDegree > &spline) | |
Copy constructor for splines. More... | |
const KnotVectorType & | knots () const |
Returns the knots of the underlying spline. More... | |
ControlPointVectorType & | ctrls () |
Returns the ctrls of the underlying spline. More... | |
const ControlPointVectorType & | ctrls () const |
Returns the ctrls of the underlying spline. More... | |
PointType | operator() (Scalar u) const |
Returns the spline value at a given site ![]() | |
SplineTraits< BSpline >::DerivativeType | derivatives (Scalar u, Eigen::DenseIndex order) const |
Evaluation of spline derivatives of up-to given order. More... | |
template<int DerivativeOrder> | |
SplineTraits< BSpline, DerivativeOrder >::DerivativeType | derivatives (Scalar u, Eigen::DenseIndex order=DerivativeOrder) const |
SplineTraits< BSpline >::BasisVectorType | basisFunctions (Scalar u) const |
Computes the non-zero basis functions at the given site. More... | |
SplineTraits< BSpline >::BasisDerivativeType | basisFunctionDerivatives (Scalar u, Eigen::DenseIndex order) const |
Computes the non-zero spline basis function derivatives up to given order. More... | |
template<int DerivativeOrder> | |
SplineTraits< BSpline, DerivativeOrder >::BasisDerivativeType | basisFunctionDerivatives (Scalar u, Eigen::DenseIndex order=DerivativeOrder) const |
Eigen::DenseIndex | degree () const |
Returns the spline degree. More... | |
Eigen::DenseIndex | span (Scalar u) const |
Returns the span within the knot vector in which u is falling. More... | |
Static Public Member Functions | |
static Eigen::DenseIndex | Span (typename SplineTraits< BSpline >::Scalar u, Eigen::DenseIndex degree, const typename SplineTraits< BSpline >::KnotVectorType &knots) |
Computes the spang within the provided knot vector in which u is falling. More... | |
static BasisVectorType | BasisFunctions (Scalar u, Eigen::DenseIndex degree, const KnotVectorType &knots) |
Returns the spline's non-zero basis functions. More... | |
static BasisDerivativeType | BasisFunctionDerivatives (const Scalar u, const Eigen::DenseIndex order, const Eigen::DenseIndex degree, const KnotVectorType &knots) |
Static Private Member Functions | |
template<typename DerivativeType > | |
static void | BasisFunctionDerivativesImpl (const typename BSpline< _Scalar, _Dim, _Degree >::Scalar u, const Eigen::DenseIndex order, const Eigen::DenseIndex p, const typename BSpline< _Scalar, _Dim, _Degree >::KnotVectorType &U, DerivativeType &N_) |
Private Attributes | |
KnotVectorType | m_knots |
ControlPointVectorType | m_ctrls |
typedef SplineTraits<BSpline>::BasisDerivativeType aikido::common::BSpline< _Scalar, _Dim, _Degree >::BasisDerivativeType |
The data type used to store the values of the basis function derivatives.
typedef SplineTraits<BSpline>::BasisVectorType aikido::common::BSpline< _Scalar, _Dim, _Degree >::BasisVectorType |
The data type used to store non-zero basis functions.
typedef SplineTraits<BSpline>::ControlPointVectorType aikido::common::BSpline< _Scalar, _Dim, _Degree >::ControlPointVectorType |
The data type representing the spline's control points.
typedef SplineTraits<BSpline>::KnotVectorType aikido::common::BSpline< _Scalar, _Dim, _Degree >::KnotVectorType |
The data type used to store knot vectors.
typedef SplineTraits<BSpline>::ParameterVectorType aikido::common::BSpline< _Scalar, _Dim, _Degree >::ParameterVectorType |
The data type used to store parameter vectors.
typedef SplineTraits<BSpline>::PointType aikido::common::BSpline< _Scalar, _Dim, _Degree >::PointType |
The point type the spline is representing.
typedef _Scalar aikido::common::BSpline< _Scalar, _Dim, _Degree >::Scalar |
The spline curve's scalar type.
anonymous enum |
anonymous enum |
|
inline |
Creates a (constant) zero spline.
For Splines with dynamic degree, the resulting degree will be 0.
|
inline |
Creates a spline from a knot vector and control points.
knots | The spline's knot vector. |
ctrls | The spline's control point vector. |
|
inline |
Copy constructor for splines.
spline | The input spline. |
|
static |
degree | The degree of the underlying spline |
knots | The underlying spline's knot vector. |
SplineTraits< BSpline< _Scalar, _Dim, _Degree >, DerivativeOrder >::BasisDerivativeType aikido::common::BSpline< _Scalar, _Dim, _Degree >::basisFunctionDerivatives | ( | Scalar | u, |
Eigen::DenseIndex | order | ||
) | const |
Computes the non-zero spline basis function derivatives up to given order.
The function computes
with i ranging from 0 up to the specified order.
u | Parameter ![]() |
order | The order up to which the basis function derivatives are computes. |
SplineTraits<BSpline, DerivativeOrder>::BasisDerivativeType aikido::common::BSpline< _Scalar, _Dim, _Degree >::basisFunctionDerivatives | ( | Scalar | u, |
Eigen::DenseIndex | order = DerivativeOrder |
||
) | const |
Using the template version of this function is more efficieent since temporary objects are allocated on the stack whenever this is possible.
|
staticprivate |
SplineTraits< BSpline< _Scalar, _Dim, _Degree > >::BasisVectorType aikido::common::BSpline< _Scalar, _Dim, _Degree >::basisFunctions | ( | Scalar | u | ) | const |
Computes the non-zero basis functions at the given site.
Splines have local support and a point from their image is defined by exactly control points
where
is the spline degree.
This function computes the non-zero basis function values for a given parameter value
. It returns
u | Parameter ![]() |
|
static |
Returns the spline's non-zero basis functions.
The function computes and returns
u | The site at which the basis functions are computed. |
degree | The degree of the underlying spline. |
knots | The underlying spline's knot vector. |
|
inline |
Returns the ctrls of the underlying spline.
|
inline |
Returns the ctrls of the underlying spline.
Eigen::DenseIndex aikido::common::BSpline< _Scalar, _Dim, _Degree >::degree |
Returns the spline degree.
SplineTraits< BSpline< _Scalar, _Dim, _Degree >, DerivativeOrder >::DerivativeType aikido::common::BSpline< _Scalar, _Dim, _Degree >::derivatives | ( | Scalar | u, |
Eigen::DenseIndex | order | ||
) | const |
Evaluation of spline derivatives of up-to given order.
The function returns
for i ranging between 0 and order.
u | Parameter ![]() |
order | The order up to which the derivatives are computed. |
SplineTraits<BSpline, DerivativeOrder>::DerivativeType aikido::common::BSpline< _Scalar, _Dim, _Degree >::derivatives | ( | Scalar | u, |
Eigen::DenseIndex | order = DerivativeOrder |
||
) | const |
Using the template version of this function is more efficieent since temporary objects are allocated on the stack whenever this is possible.
|
inline |
Returns the knots of the underlying spline.
BSpline< _Scalar, _Dim, _Degree >::PointType aikido::common::BSpline< _Scalar, _Dim, _Degree >::operator() | ( | Scalar | u | ) | const |
Returns the spline value at a given site .
The function returns
u | Parameter ![]() |
Eigen::DenseIndex aikido::common::BSpline< _Scalar, _Dim, _Degree >::span | ( | Scalar | u | ) | const |
Returns the span within the knot vector in which u is falling.
u | The site for which the span is determined. |
|
static |
Computes the spang within the provided knot vector in which u is falling.
|
private |
Control points.
|
private |
Knot vector.