react-three-nurbs
Version:
A React component library for NURBS (Non-Uniform Rational B-Spline) curves, surfaces, and solids in Three.js. Built with React Three Fiber, zero external NURBS dependencies — all math implemented from scratch. Boolean operations powered by OpenCASCADE WAS
28 lines (27 loc) • 743 B
TypeScript
/** Raw NURBS curve data (no methods, just numbers) */
export interface CurveData {
degree: number;
knots: number[];
controlPoints: number[][];
weights: number[];
}
/** Raw NURBS surface data (no methods, just numbers) */
export interface SurfaceData {
degreeU: number;
degreeV: number;
knotsU: number[];
knotsV: number[];
controlPoints: number[][][];
weights: number[][];
}
/** A face is a surface bounded by trim curves with an orientation */
export interface FaceData {
surface: SurfaceData;
outerWire?: CurveData[];
holes?: CurveData[][];
orientation: "forward" | "reversed";
}
/** A solid is a closed shell of oriented faces */
export interface SolidData {
faces: FaceData[];
}