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: 10 September, 2019