Skip to content

Shapemetry API


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

Point


end

Get Signature

get end(): Point

Defined in: curve3d/NurbsCurve.ts:88

Returns

Point

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

Point


tangentAt()

tangentAt(t): Vector

Defined in: curve3d/NurbsCurve.ts:91

Parameters

t

number

Returns

Vector


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

Point

Returns

Point


axesAtParam()

axesAtParam(t): Axes

Defined in: curve3d/NurbsCurve.ts:98

Parameters

t

number

Returns

Axes


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

Transformation

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

BoundingBox


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

Vector

tolerance

number

Returns

NurbsCurve


project()

project(planePoint, planeNormal): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:255

Parameters

planePoint

Point

planeNormal

Vector

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

NurbsCurveJSON


fromJSON()

static fromJSON(d): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:277

Parameters

d

NurbsCurveJSON

Returns

NurbsCurve


line()

static line(s, e): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:283

Parameters

s

Point

e

Point

Returns

NurbsCurve


polyline()

static polyline(points, closed): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:287

Parameters

points

Point[]

closed

boolean

Returns

NurbsCurve


cubicBezier()

static cubicBezier(p0, p1, p2, p3): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:296

Parameters

p0

Point

p1

Point

p2

Point

p3

Point

Returns

NurbsCurve


quadraticBezier()

static quadraticBezier(p0, p1, p2): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:300

Parameters

p0

Point

p1

Point

p2

Point

Returns

NurbsCurve


ellipseArc()

static ellipseArc(center, xAxis, yAxis, startAngle, endAngle): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:304

Parameters

center

Point

xAxis

Vector

yAxis

Vector

startAngle

number

endAngle

number

Returns

NurbsCurve


circle()

static circle(center, radius, normal): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:308

Parameters

center

Point

radius

number

normal

Vector

Returns

NurbsCurve


ellipse()

static ellipse(center, xAxis, yAxis): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:316

Parameters

center

Point

xAxis

Vector

yAxis

Vector

Returns

NurbsCurve


arcCenterStartEnd()

static arcCenterStartEnd(center, start, end, normalHint?): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:320

Parameters

center

Point

start

Point

end

Point

normalHint?

Vector

Returns

NurbsCurve


arcThreePoints()

static arcThreePoints(start, middle, end): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:335

Parameters

start

Point

middle

Point

end

Point

Returns

NurbsCurve


arcStartTangentEnd()

static arcStartTangentEnd(start, tangent, end): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:347

Parameters

start

Point

tangent

Vector

end

Point

Returns

NurbsCurve


spline()

static spline(points, degree): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:360

Parameters

points

Point[]

degree

number

Returns

NurbsCurve


join()

static join(curves): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:373

Parameters

curves

NurbsCurve[]

Returns

NurbsCurve


fromSubpath()

static fromSubpath(sp): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:384

Parameters

sp

Shape2dJSON

Returns

NurbsCurve


fromPath()

static fromPath(path): NurbsCurve[]

Defined in: curve3d/NurbsCurve.ts:391

Parameters

path

Shape2dJSON[]

Returns

NurbsCurve[]


_ellipseArcToCurve()

static _ellipseArcToCurve(seg): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:397

Parameters

seg

Ellipse2dJSON

Returns

NurbsCurve


_segToCurve()

static _segToCurve(seg): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:414

Parameters

seg

Segment2dJSON

Returns

NurbsCurve


_concatBezierSpans()

static _concatBezierSpans(curves): NurbsCurve

Defined in: curve3d/NurbsCurve.ts:422

Parameters

curves

NurbsCurve[]

Returns

NurbsCurve


helix()

static helix(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

Point

axisDirection

Vector

radius

number

pitch

number

turns

number

segmentsPerTurn?

number = 8

Returns

NurbsCurve