@numericelements/knot-sequence
Version:
A library for generating and manipulating knot sequences for b-spline curves and surfaces
23 lines (20 loc) • 1.1 kB
JavaScript
import { IncreasingOpenKnotSequenceOpenCurve } from '../IncreasingOpenKnotSequenceOpenCurve.js';
import { INCREASINGOPENKNOTSEQUENCE_UPTOC0DISCONTINUITY, INCREASINGOPENKNOTSEQUENCE } from '../KnotSequenceConstructorInterface.js';
function fromStrictlyIncreasingtToIncreasingKnotSequenceOC(strictIncSeq) {
const knotAbscissae = [];
const maxMultOrder = strictIncSeq.maxMultiplicityOrder;
const abscissae = strictIncSeq.distinctAbscissae();
const multiplicities = strictIncSeq.multiplicities();
for (let j = 0; j < abscissae.length; j++) {
for (let i = 0; i < multiplicities[j]; i++) {
knotAbscissae.push(abscissae[j]);
}
}
if (strictIncSeq.isSequenceUpToC0Discontinuity) {
return new IncreasingOpenKnotSequenceOpenCurve(maxMultOrder, { type: INCREASINGOPENKNOTSEQUENCE_UPTOC0DISCONTINUITY, knots: knotAbscissae });
}
else {
return new IncreasingOpenKnotSequenceOpenCurve(maxMultOrder, { type: INCREASINGOPENKNOTSEQUENCE, knots: knotAbscissae });
}
}
export { fromStrictlyIncreasingtToIncreasingKnotSequenceOC };