@mlightcad/libredwg-web
Version:
A DWG/DXF JavaScript parser based on libredwg
24 lines • 831 B
JavaScript
export const toPiecewiseBezier = (k, controlPoints, knots) => {
const piecewise = { knots: [], controlPoints: [] };
let controlPointIndex = 0;
let knotIndex = k;
while (knotIndex < knots.length - k + 1) {
const m = multiplicity(knots, knotIndex);
const cp = controlPoints.slice(controlPointIndex, controlPointIndex + k);
piecewise.knots.push(...knots.slice(knotIndex, knotIndex + m));
piecewise.controlPoints.push(...cp);
controlPointIndex += m;
knotIndex += m;
}
return piecewise;
};
export const multiplicity = (knots, index) => {
let count = 0;
const knotValue = knots[index];
while (index < knots.length && knots[index] === knotValue) {
count++;
index++;
}
return count;
};
//# sourceMappingURL=toPiecewiseBezier.js.map