DG Kernel Documentation


Skip Navigation Links.
Skip Navigation LinksHome Page > API Reference > General Geometry > Curves > IBSplineCurveInterpolator_DG Search Documentation


IBSplineCurveInterpolator_DG Interface

Init
Init1
InitEx
InitEx1
Build

Creates a bspline curve interpolating an array of points


void Init(IPointArray_DG points, bool periodic, double tolerance)

Defines input point set for interpolation. Tangential vectors can be specified after this call using InitEx() method below.
The resulting BSpline curve will be "C2" continuous, except where a tangency constraint is defined using InitEx*(). In this case, it will be only "C1" continuous.
Once all the constraints are defined, use the Build() to create the curve.

points must contain at least two points at distance at least tolerance from each other.


void Init1(IPointArray_DG points, IArrayDouble_DG parameters, bool periodic, double tolerance)

Defines input point set and specifies the correspondent parameter values for interpolation. Tangential vectors can be specified after this call using InitEx() method below.

points must contain at least two points at distance at least tolerance from each other.
If periodic is false, points.GetCount() must be equal to parameters.GetCount().
If periodic is true, points.GetCount() must be equal to parameters.GetCount() + 1.


void InitEx(Vect_DG initialTangent, Vect_DG finalTangent, bool scale)

Init() or Init1() must be called prior this call. Specifies the required tangents at the first and the last ends. The lengthes must not be smaller than the tolerance specified in the Init*() call

if scale is true, only direction of tangents is important. The tangents will be scaled internally during a Build() call so that they have the length of the size of the derivative of the Lagrange interpolation used in the algorithm.


void InitEx1(IPointArray_DG tangents, IArrayInt_DG tangentFlags, bool scale)

Specifies the required tangents at some points of the array. tangents[k] is considered specified at point k if tangentFlags[k] is true.

if scale is true, only direction of tangents is important. The tangents will be scaled internally during a Build() call so that they have the length of the size of the derivative of the Lagrange interpolation used in the algorithm

IBSplineCurve_DG Build()

Call to create the curve. One of Init*() and possibly InitEx*() methods above must be called prior to this call