BSpline1dNd Class
Bspline knots and poles for 1d-to-Nd.
- The "pole" (aka control point) of this class is a block of
poleLength
numbers. - Derived classes (not this class) assign meaning such as x,y,z,w.
- for instance, an instance of this class with
poleLength===3
does not know if its poles are x,y,z or weighed 2D x,y,w
Methods
Name | Description | |
---|---|---|
constructor(numPoles: number, poleLength: number, order: number, knots: KnotVector): BSpline1dNd Protected | initialize arrays for given spline dimensions. | |
evaluateBasisFunctionsInSpan(spanIndex: number, spanFraction: number, f: Float64Array, df?: Float64Array, ddf?: Float64Array): void | Evaluate the order basis functions (and optionally one or two derivatives) at a given fractional position within indexed span. |
|
evaluateBuffersAtKnot(u: number, numDerivative: number = 0): void | Evaluate the function values and 1 or 2 derivatives into this.poleBuffer , this.poleBuffer1 and this.poleBuffer2 |
|
evaluateBuffersInSpan(spanIndex: number, spanFraction: number): void | * Evaluate the basis functions at spanIndex and fraction. | |
evaluateBuffersInSpan1(spanIndex: number, spanFraction: number): void | * Evaluate the basis functions and one derivative at spanIndex and fraction. | |
getPoint3dPole(i: number, result?: Point3d): Point3d | undefined | copy 3 values of pole i into a point. |
|
reverseInPlace(): void | Reverse the (blocked) poles (in this.packedData in place. |
|
spanFractionToKnot(span: number, localFraction: number): number | Map a span index and local fraction to knot value. | |
sumPoleBuffer1ForSpan(spanIndex: number): void | sum poles at span spanIndex by the weights in the poleBuffer1 , i.e. |
|
sumPoleBuffer2ForSpan(spanIndex: number): void | sum poles at span spanIndex by the weights in the poleBuffer2 , i.e. |
|
sumPoleBufferForSpan(spanIndex: number): void | sum poles at span spanIndex by the weights in the poleBuffer |
|
testCloseablePolygon(mode?: BSplineWrapMode): boolean | Test if the leading and trailing polygon coordinates are replicated in the manner of a "closed" bspline polygon which has been expanded to act as a normal bspline. |
|
create(numPoles: number, poleLength: number, order: number, knots: KnotVector): BSpline1dNd | undefined Static | create a 1Bspline1dNd` |
Properties
Name | Type | Description | |
---|---|---|---|
basisBuffer | Float64Array | preallocated array (length === order ) used as temporary in evaluations |
|
basisBuffer1 | Float64Array | preallocated array (length === order ) used as temporary in evaluations |
|
basisBuffer2 | Float64Array | preallocated array (length === order ) used as temporary in evaluations |
|
degree Accessor ReadOnly | number | (property accessor) Return the degree of the polynomials. | |
knots | KnotVector | knots of the bspline | |
numPoles Accessor ReadOnly | number | (property accessor) Return the number of poles | |
numSpan Accessor ReadOnly | number | (property accessor) Return the number of bezier spans (including null spans at multiple knots) | |
order Accessor ReadOnly | number | (property accessor) Return the number of order (one more than degree) of the polynomials | |
packedData | Float64Array | poles, packed in blocks of poleLength doubles. |
|
poleBuffer | Float64Array | preallocated array (length === poleLength ) used as temporary in evaluations |
|
poleBuffer1 | Float64Array | preallocated array (length === poleLength ) used as temporary in evaluations |
|
poleBuffer2 | Float64Array | preallocated array (length === poleLength ) used as temporary in evaluations |
|
poleLength | number | (property accessor) Return the number of numeric values per pole. |
Defined in
Last Updated: 08 January, 2020