create MethodStatic

Create a weighted bspline surface, with control points and weights each organized as flattened arrays continuing from one U row to the next.

  • Use createGrid if the control points are in a deeper grid array structure.
  • knotArrayU and knotArrayV are optional -- uniform knots are implied if they are omitted (undefined).
  • When knots are given, two knot count conditions are recognized:
    • If poleArray.length + order == knotArray.length, the first and last are assumed to be the extraneous knots of classic clamping.
    • If poleArray.length + order == knotArray.length + 2, the knots are in modern form that does not have the classic unused first and last knot.

create(controlPointArray: Float64Array | Point3d[], weightArray: Float64Array | number[], numPolesU: number, orderU: number, knotArrayU: Float64Array | number[], numPolesV: number, orderV: number, knotArrayV: Float64Array | number[]): undefined | BSplineSurface3dH

Parameter Type Description
controlPointArray Float64Array | Point3d[] Array of [wx,wy,wz] points, ordered along the U direction.
weightArray Float64Array | number[] array of weights, ordered along the U direction. If undefined, unit weights are installed.
numPolesU number number of poles in each row in the U direction.
orderU number order for the U direction polynomial (order is one more than the degree. "cubic" polynomial is order 4.)
knotArrayU Float64Array | number[] optional knots for the V direction. See note above about knot counts.
numPolesV number number of poles in each column in the V direction (the number of rows).
orderV number order for the V direction polynomial (order is one more than the degree. "cubic" polynomial is order 4.)
knotArrayV Float64Array | number[] optional knots for the V direction. See note above about knot counts.

Returns - undefined | BSplineSurface3dH

Defined in

Last Updated: 14 November, 2024