Skip to content
Shapemetry

PolyCurve

Ordered chain of 3D curve segments ({ segments: Curve[] }). Curve-entity geometry. Arc-length domain [0,1]; add auto-reverses for G0 join (tol 1e-7). Factories: polyline/line/fromPoints/fromNurbs/fromCurveJson. Kind predicates (isLine/isArc/isEllipse/isNurbs/isPolyline/isSingleSegment) are pure segment-tag queries — type: "segment" window arms never match pure kinds. Not Wire (no branching).

import { PolyCurve } from '@huukhanhnguyen/geometry'

API reference

PolyCurve.add

PolyCurve.add(composite_json: string, segment_json: string): string

Wasm: poly_curve_add

PolyCurve.domain

PolyCurve.domain(_composite_json: string): Float64Array

Wasm: poly_curve_domain

PolyCurve.empty

PolyCurve.empty(): string

Wasm: poly_curve_empty

PolyCurve.endPoint

PolyCurve.endPoint(composite_json: string): Float64Array

Wasm: poly_curve_end_point

PolyCurve.expand

PolyCurve.expand(composite_json: string, tolerance?: number | null): string

Wasm: poly_curve_expand

PolyCurve.fromPoints

PolyCurve.fromPoints(points: Float64Array, closed: boolean): string

Wasm: poly_curve_from_points

PolyCurve.fromSegments

PolyCurve.fromSegments(segments_json: string): string

Wasm: poly_curve_from_segments

PolyCurve.gather

PolyCurve.gather(segments_json: string, tolerance?: number | null): string

Wasm: poly_curve_gather

PolyCurve.isArc

PolyCurve.isArc(composite_json: string): boolean

Wasm: poly_curve_is_arc

PolyCurve.isClosed

PolyCurve.isClosed(composite_json: string): boolean

Wasm: poly_curve_is_closed

PolyCurve.isEllipse

PolyCurve.isEllipse(composite_json: string): boolean

Wasm: poly_curve_is_ellipse

PolyCurve.isLine

PolyCurve.isLine(composite_json: string): boolean

Wasm: poly_curve_is_line

PolyCurve.isNurbs

PolyCurve.isNurbs(composite_json: string): boolean

Wasm: poly_curve_is_nurbs

PolyCurve.isPolyline

PolyCurve.isPolyline(composite_json: string): boolean

Wasm: poly_curve_is_polyline

PolyCurve.isSingleSegment

PolyCurve.isSingleSegment(composite_json: string): boolean

Wasm: poly_curve_is_single_segment

PolyCurve.length

PolyCurve.length(composite_json: string): number

Wasm: poly_curve_length

PolyCurve.lengthAt

PolyCurve.lengthAt(composite_json: string, t: number): number

Wasm: poly_curve_length_at

PolyCurve.paramAtLength

PolyCurve.paramAtLength(composite_json: string, s: number): number

Wasm: poly_curve_param_at_length

PolyCurve.pointAt

PolyCurve.pointAt(composite_json: string, t: number): Float64Array

Wasm: poly_curve_point_at

PolyCurve.reverse

PolyCurve.reverse(composite_json: string): string

Wasm: poly_curve_reverse

PolyCurve.segmentCount

PolyCurve.segmentCount(composite_json: string): number

Wasm: poly_curve_segment_count

PolyCurve.segments

PolyCurve.segments(composite_json: string): string

Wasm: poly_curve_segments

PolyCurve.startPoint

PolyCurve.startPoint(composite_json: string): Float64Array

Wasm: poly_curve_start_point

PolyCurve.tangentAt

PolyCurve.tangentAt(composite_json: string, t: number): Float64Array

Wasm: poly_curve_tangent_at

PolyCurve.tessellate

PolyCurve.tessellate(composite_json: string, tolerance: number): Float64Array

Wasm: poly_curve_tessellate

PolyCurve.transform

PolyCurve.transform(composite_json: string, elements: Float64Array): string

Wasm: poly_curve_transform

See GEOMETRY_CATALOG.md for catalog ownership.

Last updated: 📖 1 min readEdit on GitHub