W3cubDocs

/Eigen3

Spline and spline fitting module

This module provides a simple multi-dimensional spline class while offering most basic functionality to fit a spline to point sets.

#include <unsupported/Eigen/Splines>
class Eigen::Spline< _Scalar, _Dim, _Degree >
A class representing multi-dimensional spline curves. More...
struct Eigen::SplineFitting< SplineType >
Spline fitting methods. More...
struct Eigen::SplineTraits< Spline< _Scalar, _Dim, _Degree >, _DerivativeOrder >
Compile-time attributes of the Spline class for fixed degree. More...
struct Eigen::SplineTraits< Spline< _Scalar, _Dim, _Degree >, Dynamic >
Compile-time attributes of the Spline class for Dynamic degree. More...
template<typename PointArrayType , typename KnotVectorType >
void Eigen::ChordLengths (const PointArrayType &pts, KnotVectorType &chord_lengths)
Computes chord length parameters which are required for spline interpolation. More...
template<typename KnotVectorType >
void Eigen::KnotAveraging (const KnotVectorType &parameters, DenseIndex degree, KnotVectorType &knots)
Computes knot averages. More...
template<typename KnotVectorType , typename ParameterVectorType , typename IndexArray >
void Eigen::KnotAveragingWithDerivatives (const ParameterVectorType &parameters, const unsigned int degree, const IndexArray &derivativeIndices, KnotVectorType &knots)
Computes knot averages when derivative constraints are present. Note that this is a technical interpretation of the referenced article since the algorithm contained therein is incorrect as written. More...

ChordLengths()

template<typename PointArrayType , typename KnotVectorType >
void Eigen::ChordLengths ( const PointArrayType & pts,
KnotVectorType & chord_lengths
)

Computes chord length parameters which are required for spline interpolation.

Parameters
[in] pts The data points to which a spline should be fit.
[out] chord_lengths The resulting chord length vector.
See also
Les Piegl and Wayne Tiller, The NURBS book (2nd ed.), 1997, 9.2.1 Global Curve Interpolation to Point Data

KnotAveraging()

template<typename KnotVectorType >
void Eigen::KnotAveraging ( const KnotVectorType & parameters,
DenseIndex degree,
KnotVectorType & knots
)

Computes knot averages.

The knots are computed as

\begin{align*} u_0 & = \hdots = u_p = 0 \\ u_{m-p} & = \hdots = u_{m} = 1 \\ u_{j+p} & = \frac{1}{p}\sum_{i=j}^{j+p-1}\bar{u}_i \quad\quad j=1,\hdots,n-p \end{align*}

where \(p\) is the degree and \(m+1\) the number knots of the desired interpolating spline.

Parameters
[in] parameters The input parameters. During interpolation one for each data point.
[in] degree The spline degree which is used during the interpolation.
[out] knots The output knot vector.
See also
Les Piegl and Wayne Tiller, The NURBS book (2nd ed.), 1997, 9.2.1 Global Curve Interpolation to Point Data

KnotAveragingWithDerivatives()

template<typename KnotVectorType , typename ParameterVectorType , typename IndexArray >
void Eigen::KnotAveragingWithDerivatives ( const ParameterVectorType & parameters,
const unsigned int degree,
const IndexArray & derivativeIndices,
KnotVectorType & knots
)

Computes knot averages when derivative constraints are present. Note that this is a technical interpretation of the referenced article since the algorithm contained therein is incorrect as written.

Parameters
[in] parameters The parameters at which the interpolation B-Spline will intersect the given interpolation points. The parameters are assumed to be a non-decreasing sequence.
[in] degree The degree of the interpolating B-Spline. This must be greater than zero.
[in] derivativeIndices The indices corresponding to parameters at which there are derivative constraints. The indices are assumed to be a non-decreasing sequence.
[out] knots The calculated knot vector. These will be returned as a non-decreasing sequence
See also
Les A. Piegl, Khairan Rajab, Volha Smarodzinana. 2008. Curve interpolation with directional constraints for engineering design. Engineering with Computers