UNPKG

@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
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 };