@numericelements/knot-sequence
Version:
A library for generating and manipulating knot sequences for b-spline curves and surfaces
25 lines (21 loc) • 1.26 kB
JavaScript
;
var IncreasingOpenKnotSequenceOpenCurve = require('../IncreasingOpenKnotSequenceOpenCurve.cjs');
var KnotSequenceConstructorInterface = require('../KnotSequenceConstructorInterface.cjs');
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.IncreasingOpenKnotSequenceOpenCurve(maxMultOrder, { type: KnotSequenceConstructorInterface.INCREASINGOPENKNOTSEQUENCE_UPTOC0DISCONTINUITY, knots: knotAbscissae });
}
else {
return new IncreasingOpenKnotSequenceOpenCurve.IncreasingOpenKnotSequenceOpenCurve(maxMultOrder, { type: KnotSequenceConstructorInterface.INCREASINGOPENKNOTSEQUENCE, knots: knotAbscissae });
}
}
exports.fromStrictlyIncreasingtToIncreasingKnotSequenceOC = fromStrictlyIncreasingtToIncreasingKnotSequenceOC;