Public Types | Public Member Functions | Static Public Member Functions | List of all members
Spline< _Scalar, _Dim, _Degree > Class Template Reference

A class representing multi-dimensional spline curves. More...

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 ControlPointVectorTypectrls () 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 KnotVectorTypeknots () const
 Returns the knots of the underlying spline.
 
PointType operator() (Scalar u) const
 Returns the spline value at a given site $u$. More...
 
DenseIndex span (Scalar u) const
 Returns the span within the knot vector in which u is falling. More...
 
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.
 

Detailed Description

template<typename _Scalar, int _Dim, int _Degree>
class Eigen::Spline< _Scalar, _Dim, _Degree >

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

\begin{align*} C(u) & = \sum_{i=0}^{n}N_{i,p}(u)P_i \end{align*}

Template Parameters
_ScalarThe underlying data type (typically float or double)
_DimThe curve dimension (e.g. 2 or 3)
_DegreePer default set to Dynamic; could be set to the actual desired degree for optimization purposes (would result in stack allocation of several temporary variables).

Member Typedef Documentation

typedef _Scalar Scalar

The spline curve's scalar type.

Member Enumeration Documentation

anonymous enum
Enumerator
Dimension 

The spline curve's dimension.

anonymous enum
Enumerator
Degree 

The spline curve's degree.

Constructor & Destructor Documentation

Spline ( const OtherVectorType &  knots,
const OtherArrayType &  ctrls 
)
inline

Creates a spline from a knot vector and control points.

Parameters
knotsThe spline's knot vector.
ctrlsThe spline's control point vector.
Spline ( const Spline< Scalar, Dimension, OtherDegree > &  spline)
inline

Copy constructor for splines.

Parameters
splineThe input spline.

Member Function Documentation

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

\begin{align*} \frac{d^i}{du^i} N_{i,p}(u), \hdots, \frac{d^i}{du^i} N_{i+p+1,p}(u) \end{align*}

with i ranging from 0 up to the specified order.

Parameters
uParameter $u \in [0;1]$ at which the non-zero basis function derivatives are computed.
orderThe 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

\begin{align*} \frac{d^i}{du^i} N_{i,p}(u), \hdots, \frac{d^i}{du^i} N_{i+p+1,p}(u) \end{align*}

with i ranging from 0 up to the specified order.

Parameters
uParameter $u \in [0;1]$ at which the non-zero basis function derivatives are computed.
orderThe order up to which the basis function derivatives are computes.
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 $p+1$ control points $P_i$ where $p$ is the spline degree.

This function computes the $p+1$ non-zero basis function values for a given parameter value $u$. It returns

\begin{align*} N_{i,p}(u), \hdots, N_{i+p+1,p}(u) \end{align*}

Parameters
uParameter $u \in [0;1]$ at which the non-zero basis functions are computed.

References Spline< _Scalar, _Dim, _Degree >::BasisFunctions().

Spline< _Scalar, _Dim, _Degree >::BasisVectorType BasisFunctions ( Scalar  u,
DenseIndex  degree,
const KnotVectorType knots 
)
static

Returns the spline's non-zero basis functions.

The function computes and returns

\begin{align*} N_{i,p}(u), \hdots, N_{i+p+1,p}(u) \end{align*}

Parameters
uThe site at which the basis functions are computed.
degreeThe degree of the underlying spline.
knotsThe underlying spline's knot vector.

References 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

\begin{align*} \frac{d^i}{du^i}C(u) & = \sum_{i=0}^{n} \frac{d^i}{du^i} N_{i,p}(u)P_i \end{align*}

for i ranging between 0 and order.

Parameters
uParameter $u \in [0;1]$ at which the spline derivative is evaluated.
orderThe 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

\begin{align*} \frac{d^i}{du^i}C(u) & = \sum_{i=0}^{n} \frac{d^i}{du^i} N_{i,p}(u)P_i \end{align*}

for i ranging between 0 and order.

Parameters
uParameter $u \in [0;1]$ at which the spline derivative is evaluated.
orderThe order up to which the derivatives are computed.
Spline< _Scalar, _Dim, _Degree >::PointType operator() ( Scalar  u) const

Returns the spline value at a given site $u$.

The function returns

\begin{align*} C(u) & = \sum_{i=0}^{n}N_{i,p}P_i \end{align*}

Parameters
uParameter $u \in [0;1]$ at which the spline is evaluated.
Returns
The spline value at the given location $u$.
DenseIndex span ( Scalar  u) const

Returns the span within the knot vector in which u is falling.

Parameters
uThe site for which the span is determined.

References Spline< _Scalar, _Dim, _Degree >::Span().


The documentation for this class was generated from the following file: