This module provides a simple multidimensional spline class while offering most basic functionality to fit a spline to point sets.
#include <unsupported/Eigen/Splines>

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 ¶meters, DenseIndex degree, KnotVectorType &knots) 
 Computes knot averages. More...


template<typename KnotVectorType , typename ParameterVectorType , typename IndexArray > 
void  Eigen::KnotAveragingWithDerivatives (const ParameterVectorType ¶meters, 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_{mp} & = \hdots = u_{m} = 1 \\ u_{j+p} & = \frac{1}{p}\sum_{i=j}^{j+p1}\bar{u}_i \quad\quad j=1,\hdots,np \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 BSpline will intersect the given interpolation points. The parameters are assumed to be a nondecreasing sequence. 
[in]  degree  The degree of the interpolating BSpline. 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 nondecreasing sequence. 
[out]  knots  The calculated knot vector. These will be returned as a nondecreasing sequence 
 See also
 Les A. Piegl, Khairan Rajab, Volha Smarodzinana. 2008. Curve interpolation with directional constraints for engineering design. Engineering with Computers