Skip to content
Shapemetry

NurbsCurve

3D NURBS curves. Wire: NurbsCurve JSON string. fromSubpath takes a plane chain JSON (untagged segment bag at the wasm door; prefer PolyCurve2d / Path2d at TS call sites).

import { NurbsCurve } from '@huukhanhnguyen/geometry'

API reference

NurbsCurve.axesAtParam

NurbsCurve.axesAtParam(curve_json: string, t: number): Float64Array

Wasm: curve_axes_at_param

NurbsCurve.boundingBox

NurbsCurve.boundingBox(curve_json: string): Float64Array

Wasm: curve_bounding_box

NurbsCurve.chamfer

NurbsCurve.chamfer(curve_json: string, distance1: number, distance2: number, use_indices: boolean, vertex_indices: Uint32Array): string

Wasm: curve_chamfer

NurbsCurve.circle

NurbsCurve.circle(cx: number, cy: number, cz: number, radius: number, nx: number, ny: number, nz: number): string

Wasm: curve_circle

NurbsCurve.closestPoint

NurbsCurve.closestPoint(curve_json: string, x: number, y: number, z: number): Float64Array

Wasm: curve_closest_point

NurbsCurve.cubicBezier

NurbsCurve.cubicBezier(p0x: number, p0y: number, p0z: number, p1x: number, p1y: number, p1z: number, p2x: number, p2y: number, p2z: number, p3x: number, p3y: number, p3z: number): string

Wasm: curve_cubic_bezier

NurbsCurve.ellipse

NurbsCurve.ellipse(cx: number, cy: number, cz: number, xx: number, xy: number, xz: number, yx: number, yy: number, yz: number): string

Wasm: curve_ellipse

NurbsCurve.ellipseArc

NurbsCurve.ellipseArc(cx: number, cy: number, cz: number, xx: number, xy: number, xz: number, yx: number, yy: number, yz: number, start_angle: number, end_angle: number): string

Wasm: curve_ellipse_arc

NurbsCurve.endPoint

NurbsCurve.endPoint(curve_json: string): Float64Array

Wasm: curve_end_point

NurbsCurve.fillet

NurbsCurve.fillet(curve_json: string, radius: number, use_indices: boolean, vertex_indices: Uint32Array, degenerate_angle_tol: number): string

Wasm: curve_fillet

NurbsCurve.fromPath

NurbsCurve.fromPath(path_json: string): string

Wasm: curve_from_path

NurbsCurve.fromSubpath

NurbsCurve.fromSubpath(shape_json: string): string

Wasm: curve_from_subpath

NurbsCurve.geometryToNurbs

NurbsCurve.geometryToNurbs(geometry_json: string): string

Wasm: curve_geometry_to_nurbs

NurbsCurve.helix

NurbsCurve.helix(ox: number, oy: number, oz: number, ax: number, ay: number, az: number, radius: number, pitch: number, turns: number, segments_per_turn: number, clockwise: boolean): string

Wasm: curve_helix

NurbsCurve.isClosed

NurbsCurve.isClosed(curve_json: string): boolean

Wasm: curve_is_closed

NurbsCurve.join

NurbsCurve.join(curves_json: string): string

Wasm: curve_join

NurbsCurve.length

NurbsCurve.length(curve_json: string): number

Wasm: curve_length

NurbsCurve.lengthAt

NurbsCurve.lengthAt(curve_json: string, t: number): number

Wasm: curve_length_at

NurbsCurve.line

NurbsCurve.line(sx: number, sy: number, sz: number, ex: number, ey: number, ez: number): string

Wasm: curve_line

NurbsCurve.nurbsToWire

NurbsCurve.nurbsToWire(nurbs_json: string): string

Wasm: curve_nurbs_to_wire

NurbsCurve.offset

NurbsCurve.offset(curve_json: string, distance: number, direction_x: number, direction_y: number, direction_z: number, tolerance: number): string

Wasm: curve_offset

NurbsCurve.overcut

NurbsCurve.overcut(curve_json: string, radius: number, overcut_type: string, reduction: number, use_indices: boolean, vertex_indices: Uint32Array, degenerate_angle_tol: number): string

Wasm: curve_overcut

NurbsCurve.paramAtLength

NurbsCurve.paramAtLength(curve_json: string, length: number): number

Wasm: curve_param_at_length

NurbsCurve.paramToKnot

NurbsCurve.paramToKnot(curve_json: string, t: number): number

Wasm: curve_param_to_knot

NurbsCurve.pointAt

NurbsCurve.pointAt(curve_json: string, t: number): Float64Array

Wasm: curve_point_at

NurbsCurve.polyline

NurbsCurve.polyline(points: Float64Array, closed: boolean): string

Wasm: curve_polyline

NurbsCurve.project

NurbsCurve.project(curve_json: string, plane_point_x: number, plane_point_y: number, plane_point_z: number, plane_normal_x: number, plane_normal_y: number, plane_normal_z: number): string

Wasm: curve_project

NurbsCurve.quadraticBezier

NurbsCurve.quadraticBezier(p0x: number, p0y: number, p0z: number, p1x: number, p1y: number, p1z: number, p2x: number, p2y: number, p2z: number): string

Wasm: curve_quadratic_bezier

NurbsCurve.reverse

NurbsCurve.reverse(curve_json: string): string

Wasm: curve_reverse

NurbsCurve.spline

NurbsCurve.spline(points: Float64Array, degree: number): string

Wasm: curve_spline

NurbsCurve.splitAt

NurbsCurve.splitAt(curve_json: string, t: number): string

Wasm: curve_split_at

NurbsCurve.startPoint

NurbsCurve.startPoint(curve_json: string): Float64Array

Wasm: curve_start_point

NurbsCurve.sweepFrameAt

NurbsCurve.sweepFrameAt(curve_json: string, u: number, smooth_iter: number): Float64Array

Wasm: curve_sweep_frame_at

NurbsCurve.sweepFrameIsDiscrete

NurbsCurve.sweepFrameIsDiscrete(curve_json: string, smooth_iter: number): boolean

Wasm: curve_sweep_frame_is_discrete

NurbsCurve.tangentAt

NurbsCurve.tangentAt(curve_json: string, t: number): Float64Array

Wasm: curve_tangent_at

NurbsCurve.tessellate

NurbsCurve.tessellate(curve_json: string, tolerance: number): Float64Array

Wasm: curve_tessellate

NurbsCurve.toSvgPathData

NurbsCurve.toSvgPathData(curve_json: string): string

Wasm: curve_to_svg_path_data

NurbsCurve.transform

NurbsCurve.transform(curve_json: string, elements: Float64Array): string

Wasm: curve_transform

NurbsCurve.validationError

NurbsCurve.validationError(curve_json: string): string | undefined

Wasm: curve_validation_error

NurbsCurve.wireFromPoints

NurbsCurve.wireFromPoints(points: Float64Array, closed: boolean): string

Wasm: curve_wire_from_points

See GEOMETRY_CATALOG.md for catalog ownership.

Last updated: 📖 1 min readEdit on GitHub