@achirita/blox
Version:
A CAD library for building 3D models in the browser.
20 lines (19 loc) • 1.02 kB
TypeScript
import { Plane, Vector } from '../math';
import { Edge } from '../modeling';
/**
* Creates a BSpline curve passing through a set of points.
* @param {Object} parameters - The parameters for the BSpline curve.
* @param {Plane} [parameters.plane=Plane.XY] - The plane in which the curve is constructed.
* @param {Vector[]} parameters.points - The points through which the curve passes.
* @param {number} [parameters.minDegree=1] - The minimum degree of the BSpline curve.
* @param {number} [parameters.maxDegree=6] - The maximum degree of the BSpline curve.
* @param {('c0'|'c1'|'c2'|'c3'|'cn'|'g1'|'g2')} [parameters.continuityType="c2"] - The continuity type of the curve.
* @returns {Edge} An `Edge` object representing the constructed `BSpline` curve.
*/
export function BSplineCurve({ plane, points, minDegree, maxDegree, continuityType }: {
plane?: Plane;
points: Vector[];
minDegree?: number;
maxDegree?: number;
continuityType?: ("c0" | "c1" | "c2" | "c3" | "cn" | "g1" | "g2");
}): Edge;