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>
|
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_{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