Skip to content
Shapemetry

@huukhanhnguyen/model / nodeMethods/curve

nodeMethods/curve

curveOffset

const curveOffset: (curves, distance) => CurveData[] & { wholeArray: true; }


curveThicken

const curveThicken: (curves, distance, joinType, endType) => CurveData[] & { wholeArray: true; }


arcCenterStartEnd()

arcCenterStartEnd(center, start, end): CurveData

Parameters

center

number[]

start

number[]

end

number[]

Returns

CurveData


arcTangentEnd()

arcTangentEnd(axis, end): CurveData

Parameters

axis

Axis

end

number[]

Returns

CurveData


arcThreePoints()

arcThreePoints(start, middle, end): CurveData

Parameters

start

number[]

middle

number[]

end

number[]

Returns

CurveData


circle()

circle(center, radius): CurveData

Parameters

center

number[]

radius

number

Returns

CurveData


closestPoint()

closestPoint(curve, point): Point

Parameters

curve

PolyCurve

point

Point

Returns

Point


cubicBezier()

cubicBezier(start, control1, control2, end): CurveData

Parameters

start

number[]

control1

number[]

control2

number[]

end

number[]

Returns

CurveData


curveChamfer()

curveChamfer(curve, distance, vertexFilter?): CurveData

Parameters

curve

CurveData

distance

number

vertexFilter?

(p, i) => boolean

Returns

CurveData


curveFillet()

curveFillet(curve, radius, vertexFilter?): CurveData

Parameters

curve

CurveData

radius

number

vertexFilter?

(p, i) => boolean

Returns

CurveData


curveFromFace()

curveFromFace(source): CurveData

Closed curves from a referenced node's face boundary loops — one curve per ring, outer ring and hole rings alike. The source arg coercion already flattens nested blocks into face atoms; anything that is not a face is ignored. Each curve carries its face's material/layer.

Parameters

source

unknown

Returns

CurveData


curveFunction()

curveFunction(point, samples?, degree?, closed?): CurveData

Sample a parametric callback t ∈ [0,1] into an interpolated curve — the FORMULA producer for shapes no fixed primitive covers (helix, spiral, sine profile, involute). degree 1 = exact polyline through the samples; higher = smooth spline interpolation. closed samples the open range and joins back to the start — author the callback with matching endpoints (seam smoothness is the formula's own job, C0 is guaranteed).

Parameters

point

(t) => number[]

samples?

number = 64

degree?

number = 3

closed?

number | boolean

Returns

CurveData


curveIntersect()

curveIntersect(self, curve): CurveData[]

Parameters

self

unknown

curve

unknown

Returns

CurveData[]


curveOvercut()

curveOvercut(curve, radius, type?, reduction?, vertexFilter?): CurveData

Parameters

curve

CurveData

radius

number

type?

"dogbone" | "longTbone" | "shortTbone"

reduction?

number = 0

vertexFilter?

(p, i) => boolean

Returns

CurveData


curveProject()

curveProject(curve, target, direction?): CurveData[]

Parameters

curve

unknown

target

unknown

direction?

number[] = ...

Returns

CurveData[]


curveSelfUnionImpl()

curveSelfUnionImpl(curves): CurveData[]

Parameters

curves

unknown

Returns

CurveData[]


curveSimplify()

curveSimplify(curve, tolerance?): CurveData

Parameters

curve

unknown

tolerance?

number = 1

Returns

CurveData


curveSmooth()

curveSmooth(curve, iterations?): CurveData

Parameters

curve

unknown

iterations?

number = 2

Returns

CurveData


curveSplit()

curveSplit(curve, parameter): CurveData[]

Parameters

curve

CurveData

parameter

number

Returns

CurveData[]


curveSubtract()

curveSubtract(self, curve): CurveData[]

Parameters

self

unknown

curve

unknown

Returns

CurveData[]


curveUnion()

curveUnion(self, curve): CurveData[]

Parameters

self

unknown

curve

unknown

Returns

CurveData[]


curveVertexDelete()

curveVertexDelete(curve, filter): CurveData

Parameters

curve

unknown

filter

unknown

Returns

CurveData


curveVertexMove()

curveVertexMove(curve, filter, vector): CurveData

Parameters

curve

unknown

filter

unknown

vector

number[]

Returns

CurveData


curveVertexRotate()

curveVertexRotate(curve, filter, axis, angle): CurveData

Parameters

curve

unknown

filter

unknown

axis

Axis

angle

number

Returns

CurveData


curveVertexScale()

curveVertexScale(curve, filter, center, factor): CurveData

Parameters

curve

unknown

filter

unknown

center

number[]

factor

number

Returns

CurveData


divide()

divide(curve, count): Point[]

Parameters

curve

PolyCurve

count

number

Returns

Point[]


ellipseArc()

ellipseArc(center, xAxis, yAxis, angle?): CurveData

Parameters

center

number[]

xAxis

number | number[]

yAxis

number | number[]

angle?

number = 360

Returns

CurveData


endPoint()

endPoint(curve): Point

Parameters

curve

PolyCurve

Returns

Point


length()

length(curve): number

Parameters

curve

PolyCurve

Returns

number


nurbsCurve()

nurbsCurve(points, degree?, knots?, weights?): CurveData

Parameters

points

number[][]

degree?

number = 3

knots?

number[] = []

weights?

number[] = []

Returns

CurveData


placeGlyphsAlongPath()

placeGlyphsAlongPath(glyphs, path): CurveData[]

Parameters

glyphs

CurveData[]

path

PolyCurve | NurbsCurve

Returns

CurveData[]


pointAt()

pointAt(curve, parameter): Point

Parameters

curve

PolyCurve

parameter

number

Returns

Point


pointAtLength()

pointAtLength(curve, distance): Point

Parameters

curve

PolyCurve

distance

number

Returns

Point


polygon()

polygon(center, radius, sides): CurveData

Parameters

center

number[]

radius

number

sides

number

Returns

CurveData


polyline()

polyline(points, closed?): CurveData

[x, y, z, ...] — the flat run every kernel point list crosses as.

Parameters

points

number[][]

closed?

boolean = false

Returns

CurveData


quadraticBezier()

quadraticBezier(start, control, end): CurveData

Parameters

start

number[]

control

number[]

end

number[]

Returns

CurveData


rectangle()

rectangle(point1, point2): CurveData

Parameters

point1

number[]

point2

number[]

Returns

CurveData


revisionCloud()

revisionCloud(boundary, bumpRadius?, bumpSpacing?): CurveData

Parameters

boundary

number[][]

bumpRadius?

number = 15

bumpSpacing?

number = 40

Returns

CurveData


spline()

spline(points, degree?): CurveData

Parameters

points

number[][]

degree?

number = 3

Returns

CurveData


startPoint()

startPoint(curve): Point

Parameters

curve

PolyCurve

Returns

Point


tangentAt()

tangentAt(curve, parameter): Vector

Parameters

curve

PolyCurve

parameter

number

Returns

Vector


textCurve()

textCurve(content, font, fontSize, width?): CurveData[]

Parameters

content

string

font

FontData | null | undefined

fontSize

number

width?

number = 0

Returns

CurveData[]


textOnPath()

textOnPath(path, content, font, fontSize?): CurveData[]

Parameters

path

unknown

content

string

font

FontData | null | undefined

fontSize?

number = 20

Returns

CurveData[]


toPoints()

toPoints(curve, tolerance?): Point[]

Adaptive tessellation vertices (every segment break, refined by chord-deviation tolerance in mm) — a polyline's own vertices come back exactly, a curved arc gets subdivided to the tolerance ASKED FOR. Used for snap-point collection.

Parameters

curve

PolyCurve

tolerance?

number = DEFAULT_CURVE_TOLERANCE

Returns

Point[]


voronoi

Re-exports voronoi

Last updated: 📖 8 min readEdit on GitHub