Shapemetry API / NurbsSurface
Class: NurbsSurface
Defined in: surfaces/NurbsSurface.ts:26
A NURBS surface evaluated over (u, v) ∈ [0, 1]² (Z-up). pointAt(u, v) / normalAt(u, v).
Implements
Constructors
Constructor
new NurbsSurface(
degreeU,degreeV,knotsU,knotsV,controlPoints,weights,trim?,plate?):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:36
Parameters
degreeU
number
degreeV
number
knotsU
number[]
knotsV
number[]
controlPoints
Point[][]
weights
number[][]
trim?
Point[][] = []
plate?
object
Returns
NurbsSurface
Properties
degreeU
degreeU:
number
Defined in: surfaces/NurbsSurface.ts:27
Implementation of
NurbsSurfaceJSON.degreeU
degreeV
degreeV:
number
Defined in: surfaces/NurbsSurface.ts:28
Implementation of
NurbsSurfaceJSON.degreeV
knotsU
knotsU:
number[]
Defined in: surfaces/NurbsSurface.ts:29
Implementation of
NurbsSurfaceJSON.knotsU
knotsV
knotsV:
number[]
Defined in: surfaces/NurbsSurface.ts:30
Implementation of
NurbsSurfaceJSON.knotsV
controlPoints
controlPoints:
Point[][]
Defined in: surfaces/NurbsSurface.ts:31
Implementation of
NurbsSurfaceJSON.controlPoints
weights
weights:
number[][]
Defined in: surfaces/NurbsSurface.ts:32
Implementation of
NurbsSurfaceJSON.weights
trim
trim:
Point[][]
Defined in: surfaces/NurbsSurface.ts:33
plate?
optionalplate?:object
Defined in: surfaces/NurbsSurface.ts:34
Methods
clone()
clone():
NurbsSurface
Defined in: surfaces/NurbsSurface.ts:106
Returns
NurbsSurface
pointAt()
pointAt(
u,v):Point
Defined in: surfaces/NurbsSurface.ts:117
Parameters
u
number
v
number
Returns
partialU()
partialU(
u,v):Vector
Defined in: surfaces/NurbsSurface.ts:119
Parameters
u
number
v
number
Returns
partialV()
partialV(
u,v):Vector
Defined in: surfaces/NurbsSurface.ts:121
Parameters
u
number
v
number
Returns
normalAt()
normalAt(
u,v):Vector
Defined in: surfaces/NurbsSurface.ts:123
Parameters
u
number
v
number
Returns
closestParam()
closestParam(
p,seed?): [number,number]
Defined in: surfaces/NurbsSurface.ts:135
Parameters
p
seed?
[number, number]
Returns
[number, number]
isocurve()
isocurve(
t,dir):NurbsCurve
Defined in: surfaces/NurbsSurface.ts:137
Parameters
t
number
dir
Returns
curvature()
curvature(
u,v):SurfaceCurvature
Defined in: surfaces/NurbsSurface.ts:141
Parameters
u
number
v
number
Returns
splitAt()
splitAt(
t,dir): [NurbsSurface,NurbsSurface]
Defined in: surfaces/NurbsSurface.ts:143
Parameters
t
number
dir
Returns
[NurbsSurface, NurbsSurface]
transform()
transform(
tr):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:151
Parameters
tr
Returns
NurbsSurface
toTriangleMesh()
toTriangleMesh(
normTol?):TriangleMeshJSON
Defined in: surfaces/NurbsSurface.ts:161
Parameters
normTol?
number
Returns
boundingBox()
boundingBox():
BoundingBox
Defined in: surfaces/NurbsSurface.ts:167
Returns
surfaceArea()
surfaceArea():
number
Defined in: surfaces/NurbsSurface.ts:178
Returns
number
extendWith()
extendWith(
newPoints,gridN,samples):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:190
Parameters
newPoints
Point[]
gridN
number
samples
number
Returns
NurbsSurface
boundary()
boundary():
NurbsCurve[]
Defined in: surfaces/NurbsSurface.ts:210
Returns
section()
section(
planePoint,planeNormal):NurbsCurve[]
Defined in: surfaces/NurbsSurface.ts:220
Parameters
planePoint
planeNormal
Returns
offset()
offset(
distance):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:240
Parameters
distance
number
Returns
NurbsSurface
thicken()
thicken(
thickness,wallSamples?,normTol?):TriangleMesh
Defined in: surfaces/NurbsSurface.ts:294
Build a closed shell triangle mesh (top + bottom + side walls) by offsetting -thickness.
Parameters
thickness
number
wallSamples?
number = 20
normTol?
number = 0.5
Returns
trimBy()
trimBy(
curves,keepInside):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:328
Parameters
curves
keepInside
boolean
Returns
NurbsSurface
splitByPlane()
splitByPlane(
planePoint,planeNormal):NurbsSurface[]
Defined in: surfaces/NurbsSurface.ts:348
Parameters
planePoint
planeNormal
Returns
NurbsSurface[]
blend()
blend(
other):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:382
Parameters
other
NurbsSurface
Returns
NurbsSurface
divide()
divide(
nU,nV,includeNormals):DivideOut
Defined in: surfaces/NurbsSurface.ts:403
Parameters
nU
number
nV
number
includeNormals
boolean
Returns
evalPlate()
evalPlate(
u,v):Point
Defined in: surfaces/NurbsSurface.ts:414
Parameters
u
number
v
number
Returns
toJSON()
toJSON():
NurbsSurfaceJSON
Defined in: surfaces/NurbsSurface.ts:420
Returns
fromJSON()
staticfromJSON(d):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:424
Parameters
d
Returns
NurbsSurface
fromCorners()
staticfromCorners(p00,p10,p01,p11):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:430
Parameters
p00
p10
p01
p11
Returns
NurbsSurface
uniformGrid()
staticuniformGrid(degreeU,degreeV,controlPoints,weights):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:434
Parameters
degreeU
number
degreeV
number
controlPoints
Point[][]
weights
number[][]
Returns
NurbsSurface
cylinder()
staticcylinder(center,axis,radius,height):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:438
Parameters
center
axis
radius
number
height
number
Returns
NurbsSurface
cone()
staticcone(center,axis,r0,r1,height):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:442
Parameters
center
axis
r0
number
r1
number
height
number
Returns
NurbsSurface
torus()
statictorus(center,axis,rMajor,rMinor):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:446
Parameters
center
axis
rMajor
number
rMinor
number
Returns
NurbsSurface
sphere()
staticsphere(center,xAxis,yAxis,radius):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:450
Parameters
center
xAxis
yAxis
radius
number
Returns
NurbsSurface
loft()
staticloft(curves,degreeV):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:454
Parameters
curves
degreeV
number
Returns
NurbsSurface
revolve()
staticrevolve(curves,center,axis,angle):NurbsSurface[]
Defined in: surfaces/NurbsSurface.ts:458
Parameters
curves
center
axis
angle
number
Returns
NurbsSurface[]
extrude()
staticextrude(curves,direction,distance):NurbsSurface[]
Defined in: surfaces/NurbsSurface.ts:462
Parameters
curves
direction
distance
number
Returns
NurbsSurface[]
patch()
staticpatch(curves,gridN,samples):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:477
Parameters
curves
gridN
number
samples
number
Returns
NurbsSurface
patchWithEdges()
staticpatchWithEdges(edges,gridN,samples):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:493
Parameters
edges
EdgeSpec[]
gridN
number
samples
number
Returns
NurbsSurface
fromPlatePatch()
staticfromPlatePatch(constraints,options?):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:549
Thin-plate spline surface fitted through constraint points in UV space. Point constraints (G0) are always interpolated exactly. Tangent and curvature constraints are applied via penalty weights.
Parameters
constraints
Point constraints: { u, v, target: Point } where u,v ∈ [0,1].
options?
tanConstraints?
Tangent constraints (G1 penalty).
curvConstraints?
Curvature constraints (G2 penalty).
gridN?
number
Grid resolution for NURBS approximation (default 16, min 4).
order?
number
TPS order (2=thin plate, 3=biharmonic). Default 3.
muTan?
number
Tangent penalty weight (default 100).
muCurv?
number
Curvature penalty weight (default 100).
Returns
NurbsSurface
fromPlatePatchG1()
staticfromPlatePatchG1(g0Constraints,g1Constraints,options?):NurbsSurface
Defined in: surfaces/NurbsSurface.ts:580
Thin-plate spline surface with hard G1 (tangent) constraints enforced exactly via a saddle-point augmented system (no penalty weighting — constraints are satisfied to machine precision rather than minimized).
Parameters
g0Constraints
Point constraints { u, v, target }.
g1Constraints
Tangent constraints { u, v, dirU, dirV, tangent }.
options?
gridN?
number
Grid resolution for NURBS approximation (default 16).
order?
number
TPS order (default 3).
Returns
NurbsSurface
pipe()
staticpipe(profiles,path,samples):NurbsSurface[]
Defined in: surfaces/NurbsSurface.ts:604
Parameters
profiles
path
samples
number
Returns
NurbsSurface[]