Shapemetry API / NurbsCurve
Class: NurbsCurve
Defined in: curve3d/NurbsCurve.ts:17
A 3D NURBS curve. Implements the shared curve interface; the parameter t passed to pointAt/tangentAt/splitAt is normalized to [0, 1]. Satisfies endpoint interpolation, convex-hull, and partition-of-unity invariants.
Implements
Constructors
Constructor
new NurbsCurve(
degree,knots,controlPoints,weights):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:23
Parameters
degree
number
knots
number[]
controlPoints
Point[]
weights
number[]
Returns
NurbsCurve
Properties
degree
degree:
number
Defined in: curve3d/NurbsCurve.ts:18
Implementation of
NurbsCurveJSON.degree
knots
knots:
number[]
Defined in: curve3d/NurbsCurve.ts:19
Implementation of
NurbsCurveJSON.knots
controlPoints
controlPoints:
Point[]
Defined in: curve3d/NurbsCurve.ts:20
Implementation of
NurbsCurveJSON.controlPoints
weights
weights:
number[]
Defined in: curve3d/NurbsCurve.ts:21
Implementation of
NurbsCurveJSON.weights
Accessors
isClosed
Get Signature
get isClosed():
boolean
Defined in: curve3d/NurbsCurve.ts:75
Returns
boolean
start
Get Signature
get start():
Point
Defined in: curve3d/NurbsCurve.ts:87
Returns
end
Get Signature
get end():
Point
Defined in: curve3d/NurbsCurve.ts:88
Returns
Methods
clone()
clone():
NurbsCurve
Defined in: curve3d/NurbsCurve.ts:66
Returns
NurbsCurve
paramToKnot()
paramToKnot(
t):number
Defined in: curve3d/NurbsCurve.ts:81
Parameters
t
number
Returns
number
pointAt()
pointAt(
t):Point
Defined in: curve3d/NurbsCurve.ts:90
Parameters
t
number
Returns
tangentAt()
tangentAt(
t):Vector
Defined in: curve3d/NurbsCurve.ts:91
Parameters
t
number
Returns
length()
length():
number
Defined in: curve3d/NurbsCurve.ts:93
Returns
number
lengthAt()
lengthAt(
t):number
Defined in: curve3d/NurbsCurve.ts:94
Parameters
t
number
Returns
number
paramAtLength()
paramAtLength(
length):number
Defined in: curve3d/NurbsCurve.ts:95
Parameters
length
number
Returns
number
closestPoint()
closestPoint(
p):Point
Defined in: curve3d/NurbsCurve.ts:96
Parameters
p
Returns
axesAtParam()
axesAtParam(
t):Axes
Defined in: curve3d/NurbsCurve.ts:98
Parameters
t
number
Returns
splitAt()
splitAt(
t): [NurbsCurve,NurbsCurve]
Defined in: curve3d/NurbsCurve.ts:100
Parameters
t
number
Returns
[NurbsCurve, NurbsCurve]
transform()
transform(
tr):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:109
Parameters
tr
Returns
NurbsCurve
reverse()
reverse():
NurbsCurve
Defined in: curve3d/NurbsCurve.ts:119
Returns
NurbsCurve
toPolyline()
toPolyline(
tolerance):Point[]
Defined in: curve3d/NurbsCurve.ts:129
Parameters
tolerance
number
Returns
Point[]
boundingBox()
boundingBox():
BoundingBox
Defined in: curve3d/NurbsCurve.ts:131
Returns
fillet()
fillet(
radius,vertexIndices,degenerateAngleTol?):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:144
Parameters
radius
number
vertexIndices
number[] | null | undefined
degenerateAngleTol?
number = 1e-6
Returns
NurbsCurve
chamfer()
chamfer(
distance,vertexIndices):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:187
Parameters
distance
number
vertexIndices
number[] | null | undefined
Returns
NurbsCurve
offset()
offset(
distance,direction,tolerance):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:203
Parameters
distance
number
direction
tolerance
number
Returns
NurbsCurve
project()
project(
planePoint,planeNormal):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:255
Parameters
planePoint
planeNormal
Returns
NurbsCurve
sweepFrame()
sweepFrame(
options?): (u) =>Axes
Defined in: curve3d/NurbsCurve.ts:267
Build a sweep-frame evaluator (CorrectedFrenet with DiscreteTrihedron fallback).
Parameters
options?
SweepFrameOptions
Returns
(u) => Axes
toJSON()
toJSON():
NurbsCurveJSON
Defined in: curve3d/NurbsCurve.ts:273
Returns
fromJSON()
staticfromJSON(d):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:277
Parameters
d
Returns
NurbsCurve
line()
staticline(s,e):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:283
Parameters
s
e
Returns
NurbsCurve
polyline()
staticpolyline(points,closed):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:287
Parameters
points
Point[]
closed
boolean
Returns
NurbsCurve
cubicBezier()
staticcubicBezier(p0,p1,p2,p3):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:296
Parameters
p0
p1
p2
p3
Returns
NurbsCurve
quadraticBezier()
staticquadraticBezier(p0,p1,p2):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:300
Parameters
p0
p1
p2
Returns
NurbsCurve
ellipseArc()
staticellipseArc(center,xAxis,yAxis,startAngle,endAngle):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:304
Parameters
center
xAxis
yAxis
startAngle
number
endAngle
number
Returns
NurbsCurve
circle()
staticcircle(center,radius,normal):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:308
Parameters
center
radius
number
normal
Returns
NurbsCurve
ellipse()
staticellipse(center,xAxis,yAxis):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:316
Parameters
center
xAxis
yAxis
Returns
NurbsCurve
arcCenterStartEnd()
staticarcCenterStartEnd(center,start,end,normalHint?):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:320
Parameters
center
start
end
normalHint?
Returns
NurbsCurve
arcThreePoints()
staticarcThreePoints(start,middle,end):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:335
Parameters
start
middle
end
Returns
NurbsCurve
arcStartTangentEnd()
staticarcStartTangentEnd(start,tangent,end):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:347
Parameters
start
tangent
end
Returns
NurbsCurve
spline()
staticspline(points,degree):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:360
Parameters
points
Point[]
degree
number
Returns
NurbsCurve
join()
staticjoin(curves):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:373
Parameters
curves
NurbsCurve[]
Returns
NurbsCurve
fromSubpath()
staticfromSubpath(sp):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:384
Parameters
sp
Returns
NurbsCurve
fromPath()
staticfromPath(path):NurbsCurve[]
Defined in: curve3d/NurbsCurve.ts:391
Parameters
path
Returns
NurbsCurve[]
_ellipseArcToCurve()
static_ellipseArcToCurve(seg):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:397
Parameters
seg
Returns
NurbsCurve
_segToCurve()
static_segToCurve(seg):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:414
Parameters
seg
Returns
NurbsCurve
_concatBezierSpans()
static_concatBezierSpans(curves):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:422
Parameters
curves
NurbsCurve[]
Returns
NurbsCurve
helix()
statichelix(origin,axisDirection,radius,pitch,turns,segmentsPerTurn?):NurbsCurve
Defined in: curve3d/NurbsCurve.ts:447
Build a NURBS curve approximating a helix. Uses rational quadratic Bézier segments (degree-2 rational) — the exact-circle technique — stacked with a linear pitch component along the axis.
Parameters
origin
axisDirection
radius
number
pitch
number
turns
number
segmentsPerTurn?
number = 8
Returns
NurbsCurve