@numericelements/knot-sequence
Version:
A library for generating and manipulating knot sequences for b-spline curves and surfaces
55 lines • 2.73 kB
TypeScript
/**
* Constants used for knot sequence operations and validations.
*/
/**
* @description
* Default origin abscissa for all knot sequences. The origin of the knot sequence coincides with the left bound of the normalized basis interval
*
* @constant {number}
*/
export declare const KNOT_SEQUENCE_ORIGIN = 0;
/**
* @description
* Initialization value of the upper bound of the last knot abscissa of a knot sequence: Infinity
*
* @constant {number}
*/
export declare const UPPER_BOUND_NORMALIZED_BASIS_DEFAULT_ABSCISSA: number;
/**
* @description
* Tolerance value for determining whether two knot abscissae coincide or not.
* Used in equality comparisons for knot positions.
*
* @constant {number}
*/
export declare const KNOT_COINCIDENCE_TOLERANCE = 1e-9;
/**
* @description
* Characterizes the distribution of basis functions located at open knot sequence ends.
* This distribution, which is influenced by the multiplicity order of each knot originating a basis function, enables the characterization of the existence of a knot abscissa where the normalized basis starts.
*
* Used to determine how basis functions are consistent with the knot sequence origin, i.e., the normalized basis starts at
* KNOT_SEQUENCE_ORIGIN.
*
* @enum {NotNormalized, StrictlyNormalized, OverDefined}
* @example
* For a knot sequence [0,0,0,1,2,3,3,3] with maxMultiplicityOrder = 3, the normalized basis starts at 0 (it is StrictlyNormalized) and coincides with curve origin and ends at 3 (it is StrictlyNormalized).
* For a knot sequence [-2,-1,0,1,2,3,4,5] with maxMultiplicityOrder = 3, the normalized basis starts at 0 (it is StrictlyNormalized) and coincides with curve origin and ends at 3 (it is StrictlyNormalized).
* For a knot sequence [-2,-1,0,1] with maxMultiplicityOrder = 3, there is no knot abscissa where the normalized basis starts (it is NotNormalized).
* For a knot sequence [-1,0,0,0,1,2,3,3,3] with maxMultiplicityOrder = 3, the normalized basis starts at 0 and coincides with curve origin but it is OverDefined because the basis function defined with [-1,0,0,0] is unecessary. The normalized basis ends at 3 (it is StrictlyNormalized).
*/
export declare enum NormalizedBasisAtSequenceExtremity {
/**
* There is no knot abscissa where the normalized basis starts or ends.
*/
NotNormalized = "NotNormalized",
/**
* The normalized basis is exactly defined and starts or ends at some knot abscissa.
*/
StrictlyNormalized = "StrictlyNormalized",
/**
* A normalized basis can be defined that starts or ends at some knot abscissa but some basis functions are unecessary.
*/
OverDefined = "OverDefined"
}
//# sourceMappingURL=KnotSequences.d.ts.map