UNPKG

@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
'use strict'; 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;