A class representing multi-dimensional spline curves. More...
#include <Spline.h>
Public Types | |
enum | { Dimension = _Dim } |
enum | { Degree = _Degree } |
typedef SplineTraits< Spline > ::BasisVectorType | BasisVectorType |
The data type used to store non-zero basis functions. | |
typedef SplineTraits< Spline > ::ControlPointVectorType | ControlPointVectorType |
The data type representing the spline's control points. | |
typedef SplineTraits< Spline > ::KnotVectorType | KnotVectorType |
The data type used to store knot vectors. | |
typedef SplineTraits< Spline > ::PointType | PointType |
The point type the spline is representing. | |
typedef _Scalar | Scalar |
Public Member Functions | |
SplineTraits< Spline > ::BasisDerivativeType | basisFunctionDerivatives (Scalar u, DenseIndex order) const |
Computes the non-zero spline basis function derivatives up to given order. | |
template<int DerivativeOrder> | |
SplineTraits< Spline, DerivativeOrder > ::BasisDerivativeType | basisFunctionDerivatives (Scalar u, DenseIndex order=DerivativeOrder) const |
SplineTraits< Spline > ::BasisVectorType | basisFunctions (Scalar u) const |
Computes the non-zero basis functions at the given site. | |
const ControlPointVectorType & | ctrls () const |
Returns the knots of the underlying spline. | |
DenseIndex | degree () const |
Returns the spline degree. | |
SplineTraits< Spline > ::DerivativeType | derivatives (Scalar u, DenseIndex order) const |
Evaluation of spline derivatives of up-to given order. | |
template<int DerivativeOrder> | |
SplineTraits< Spline, DerivativeOrder > ::DerivativeType | derivatives (Scalar u, DenseIndex order=DerivativeOrder) const |
const KnotVectorType & | knots () const |
Returns the knots of the underlying spline. | |
PointType | operator() (Scalar u) const |
Returns the spline value at a given site . | |
DenseIndex | span (Scalar u) const |
Returns the span within the knot vector in which u is falling. | |
Spline () | |
Creates a (constant) zero spline. For Splines with dynamic degree, the resulting degree will be 0. | |
template<typename OtherVectorType , typename OtherArrayType > | |
Spline (const OtherVectorType &knots, const OtherArrayType &ctrls) | |
Creates a spline from a knot vector and control points. | |
template<int OtherDegree> | |
Spline (const Spline< Scalar, Dimension, OtherDegree > &spline) | |
Copy constructor for splines. | |
Static Public Member Functions | |
static BasisVectorType | BasisFunctions (Scalar u, DenseIndex degree, const KnotVectorType &knots) |
Returns the spline's non-zero basis functions. | |
static DenseIndex | Span (typename SplineTraits< Spline >::Scalar u, DenseIndex degree, const typename SplineTraits< Spline >::KnotVectorType &knots) |
Computes the spang within the provided knot vector in which u is falling. | |
Private Attributes | |
ControlPointVectorType | m_ctrls |
KnotVectorType | m_knots |
A class representing multi-dimensional spline curves.
The class represents B-splines with non-uniform knot vectors. Each control point of the B-spline is associated with a basis function
_Scalar | The underlying data type (typically float or double) |
_Dim | The curve dimension (e.g. 2 or 3) |
_Degree | Per default set to Dynamic; could be set to the actual desired degree for optimization purposes (would result in stack allocation of several temporary variables). |
typedef SplineTraits<Spline>::BasisVectorType Eigen::Spline< _Scalar, _Dim, _Degree >::BasisVectorType |
typedef SplineTraits<Spline>::ControlPointVectorType Eigen::Spline< _Scalar, _Dim, _Degree >::ControlPointVectorType |
typedef SplineTraits<Spline>::KnotVectorType Eigen::Spline< _Scalar, _Dim, _Degree >::KnotVectorType |
typedef SplineTraits<Spline>::PointType Eigen::Spline< _Scalar, _Dim, _Degree >::PointType |
typedef _Scalar Eigen::Spline< _Scalar, _Dim, _Degree >::Scalar |
anonymous enum |
anonymous enum |
Eigen::Spline< _Scalar, _Dim, _Degree >::Spline | ( | ) | [inline] |
Eigen::Spline< _Scalar, _Dim, _Degree >::Spline | ( | const OtherVectorType & | knots, |
const OtherArrayType & | ctrls | ||
) | [inline] |
Eigen::Spline< _Scalar, _Dim, _Degree >::Spline | ( | const Spline< Scalar, Dimension, OtherDegree > & | spline | ) | [inline] |
SplineTraits< Spline< _Scalar, _Dim, _Degree >, DerivativeOrder >::BasisDerivativeType Eigen::Spline< _Scalar, _Dim, _Degree >::basisFunctionDerivatives | ( | Scalar | u, |
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 at which the non-zero basis function derivatives are computed. |
order | The order up to which the basis function derivatives are computes. |
SplineTraits<Spline,DerivativeOrder>::BasisDerivativeType Eigen::Spline< _Scalar, _Dim, _Degree >::basisFunctionDerivatives | ( | Scalar | u, |
DenseIndex | order = DerivativeOrder |
||
) | 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 at which the non-zero basis function derivatives are computed. |
order | The order up to which the basis function derivatives are computes. |
SplineTraits< Spline< _Scalar, _Dim, _Degree > >::BasisVectorType Eigen::Spline< _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 at which the non-zero basis functions are computed. |
Spline< _Scalar, _Dim, _Degree >::BasisVectorType Eigen::Spline< _Scalar, _Dim, _Degree >::BasisFunctions | ( | Scalar | u, |
DenseIndex | degree, | ||
const KnotVectorType & | knots | ||
) | [static] |
const ControlPointVectorType& Eigen::Spline< _Scalar, _Dim, _Degree >::ctrls | ( | ) | const [inline] |
DenseIndex Eigen::Spline< _Scalar, _Dim, _Degree >::degree | ( | ) | const |
SplineTraits< Spline< _Scalar, _Dim, _Degree >, DerivativeOrder >::DerivativeType Eigen::Spline< _Scalar, _Dim, _Degree >::derivatives | ( | Scalar | u, |
DenseIndex | order | ||
) | const |
SplineTraits<Spline,DerivativeOrder>::DerivativeType Eigen::Spline< _Scalar, _Dim, _Degree >::derivatives | ( | Scalar | u, |
DenseIndex | order = DerivativeOrder |
||
) | const |
Evaluation of spline derivatives of up-to given order.
The function returns
for i ranging between 0 and order.
u | Parameter at which the spline derivative is evaluated. |
order | The order up to which the derivatives are computed. |
const KnotVectorType& Eigen::Spline< _Scalar, _Dim, _Degree >::knots | ( | ) | const [inline] |
Spline< _Scalar, _Dim, _Degree >::PointType Eigen::Spline< _Scalar, _Dim, _Degree >::operator() | ( | Scalar | u | ) | const |
DenseIndex Eigen::Spline< _Scalar, _Dim, _Degree >::span | ( | Scalar | u | ) | const |
DenseIndex Eigen::Spline< _Scalar, _Dim, _Degree >::Span | ( | typename SplineTraits< Spline< _Scalar, _Dim, _Degree > >::Scalar | u, |
DenseIndex | degree, | ||
const typename SplineTraits< Spline< _Scalar, _Dim, _Degree > >::KnotVectorType & | knots | ||
) | [static] |
ControlPointVectorType Eigen::Spline< _Scalar, _Dim, _Degree >::m_ctrls [private] |
KnotVectorType Eigen::Spline< _Scalar, _Dim, _Degree >::m_knots [private] |