![]() |
Eigen-unsupported
3.2.7
|
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). |
Public Types | |
enum | { Dimension } |
enum | { 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. More... | |
template<int DerivativeOrder> | |
SplineTraits< Spline, DerivativeOrder > ::BasisDerivativeType | basisFunctionDerivatives (Scalar u, DenseIndex order=DerivativeOrder) const |
Computes the non-zero spline basis function derivatives up to given order. More... | |
SplineTraits< Spline > ::BasisVectorType | basisFunctions (Scalar u) const |
Computes the non-zero basis functions at the given site. More... | |
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. More... | |
template<int DerivativeOrder> | |
SplineTraits< Spline, DerivativeOrder > ::DerivativeType | derivatives (Scalar u, DenseIndex order=DerivativeOrder) const |
Evaluation of spline derivatives of up-to given order. More... | |
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. More... | |
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. More... | |
template<int OtherDegree> | |
Spline (const Spline< Scalar, Dimension, OtherDegree > &spline) | |
Copy constructor for splines. More... | |
Static Public Member Functions | |
static BasisVectorType | BasisFunctions (Scalar u, DenseIndex degree, const KnotVectorType &knots) |
Returns the spline's non-zero basis functions. More... | |
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. | |
typedef _Scalar Scalar |
The spline curve's scalar type.
|
inline |
Creates a spline from a knot vector and control points.
knots | The spline's knot vector. |
ctrls | The spline's control point vector. |
Copy constructor for splines.
spline | The input spline. |
SplineTraits< Spline< _Scalar, _Dim, _Degree >, DerivativeOrder >::BasisDerivativeType 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 ![]() |
order | The order up to which the basis function derivatives are computes. |
SplineTraits<Spline,DerivativeOrder>::BasisDerivativeType 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 ![]() |
order | The order up to which the basis function derivatives are computes. Using the template version of this function is more efficieent since temporary objects are allocated on the stack whenever this is possible. |
SplineTraits< Spline< _Scalar, _Dim, _Degree > >::BasisVectorType 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 ![]() |
References Spline< _Scalar, _Dim, _Degree >::BasisFunctions(), Spline< _Scalar, _Dim, _Degree >::degree(), and Spline< _Scalar, _Dim, _Degree >::knots().
Referenced by Spline< _Scalar, _Dim, _Degree >::operator()().
|
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. |
References Spline< _Scalar, _Dim, _Degree >::degree(), Spline< _Scalar, _Dim, _Degree >::knots(), and Spline< _Scalar, _Dim, _Degree >::Span().
Referenced by Spline< _Scalar, _Dim, _Degree >::basisFunctions().
SplineTraits< Spline< _Scalar, _Dim, _Degree >, DerivativeOrder >::DerivativeType derivatives | ( | Scalar | u, |
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<Spline,DerivativeOrder>::DerivativeType 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 ![]() |
order | The order up to which the derivatives are computed. Using the template version of this function is more efficieent since temporary objects are allocated on the stack whenever this is possible. |
Returns the spline value at a given site .
The function returns
u | Parameter ![]() |
References Spline< _Scalar, _Dim, _Degree >::basisFunctions(), Spline< _Scalar, _Dim, _Degree >::ctrls(), Spline< _Scalar, _Dim, _Degree >::degree(), Spline< _Scalar, _Dim, _Degree >::Dimension, and Spline< _Scalar, _Dim, _Degree >::span().
DenseIndex 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. |
References Spline< _Scalar, _Dim, _Degree >::degree(), Spline< _Scalar, _Dim, _Degree >::knots(), and Spline< _Scalar, _Dim, _Degree >::Span().
Referenced by Spline< _Scalar, _Dim, _Degree >::operator()().