UNPKG

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

37 lines (36 loc) 1.46 kB
/** * B-spline basis function algorithms. * Implements Algorithms A2.1, A2.2, A2.3 from "The NURBS Book" (Piegl & Tiller). */ /** * Find the knot span index (Algorithm A2.1). * Returns i such that knots[i] <= u < knots[i+1], with special handling for the upper boundary. * * @param n - Number of control points minus 1 (= controlPoints.length - 1) * @param degree - Polynomial degree * @param u - Parameter value * @param knots - Knot vector */ export declare function findSpan(n: number, degree: number, u: number, knots: number[]): number; /** * Compute non-vanishing basis functions (Algorithm A2.2). * Returns an array N of length (degree+1) where N[j] = N_{span-degree+j, degree}(u). * * @param span - Knot span index (from findSpan) * @param u - Parameter value * @param degree - Polynomial degree * @param knots - Knot vector */ export declare function basisFunctions(span: number, u: number, degree: number, knots: number[]): number[]; /** * Compute basis function derivatives (Algorithm A2.3). * Returns a 2D array ders[k][j] where ders[k][j] is the kth derivative * of the jth non-vanishing basis function at u. * * @param span - Knot span index * @param u - Parameter value * @param degree - Polynomial degree * @param n - Maximum derivative order to compute * @param knots - Knot vector */ export declare function derivBasisFunctions(span: number, u: number, degree: number, n: number, knots: number[]): number[][];