BSpline1dNd Class
Bspline knots and poles for 1d-to-Nd.
- The "pole" (aka control point) of this class is a block of
poleLengthnumbers. - Derived classes (not this class) assign meaning such as x,y,z,w.
- for instance, an instance of this class with
poleLength===3does 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