UNPKG

@turbox3d/math

Version:

Large-scale graphics application math library

145 lines (144 loc) 4.19 kB
export declare class Interval { static invalid(): Interval; /** * interval mul by number * @param alpha * @returns */ static mul(interval: Interval, alpha: number): Interval; /** * Get the intersect intervals of two list of intervals. * @param intervals1 * @param intervals2 * @returns List<Interval> */ static intersect(intervals1: Interval[], intervals2: Interval[]): Interval[]; /** * Combine the intervals.Return the list of intervals after unioned * @param intervals * @returns {Interval[]} */ static union(intervals: Interval[]): Interval[]; private _start; private _end; /** * constructor * @param start * @param end */ constructor(start: number, end: number); /** * Get interval's start */ get start(): number; /** * Get interval's end */ get end(): number; /** * Returns true if this interval is equal to another within specified tolerance. * @param other * @param numericTolerance * @return */ isEqual(other: Interval, numTol?: number): boolean; /** * Get the middle number * @return */ get middle(): number; /** * Get the cloned object of this Interval. */ clone(): Interval; /** * Get interval's length * @return */ get length(): number; /** * interval string * @return */ toString(): string; /** * Indicates whether the Interval is Valid * @return */ isValid(): boolean; /** * interval mul by number * @param alpha * @returns */ mul(alpha: number): Interval; /** * interval add by number * @param alpha * @returns */ add(interval: Interval): Interval; addByNumber(alpha: number): Interval; /** * interval sub by Interval * @param interval * @returns */ sub(interval: Interval): Interval; /** * Interval interpolate * @param alpha * @returns */ interpolate(alpha: number): number; /** * Interval expand * @param length * @returns */ expand(length: number): Interval; /** * Indicates whether the given value is included in this interval. * @param {number} point * @param {boolean} includeEnds - Indicates whether to check the ends. * @param {number} [tolerance] - Tolerance to check on the ends. * @returns {boolean} */ contains(point: number, includeEnds: boolean, tolerance?: number): boolean; /** * Indicates whether the given interval is included in this interval. * @param {Interval} interval * @param {boolean} includeEnds - Indicates whether to check the ends. * @param {number} [tolerance] - Tolerance to check on the ends. * @returns {boolean} */ containsInterval(interval: Interval, includeEnds: boolean, tolerance?: number): boolean; /** * Indicates whether the given interval is intersected with this interval. * @param {Interval} interval * @param {boolean} includeEnds - Indicates whether to check the ends. * @param {number} [tolerance] - Intersection tolerance. * @returns {boolean} */ intersects(interval: Interval, includeEnds: boolean, tolerance?: number): boolean; /** * Indicates whether the given interval is intersected with this interval. * @param {Interval} interval * @param {boolean} includeEnds - Indicates whether to check the ends. * @param {number} [tolerance] - Intersection tolerance. * @returns {boolean} */ intersected(interval: Interval, includeEnds: boolean, tolerance?: number): boolean; /** * Get the intersect part with interval. If the intervals are not intersectant, we will return an invalid interval * @param interval * @returns {Interval} | null */ intersection(interval: Interval): Interval; /** * Combine with interval. If the intervals are not intersectant, we will return an invalid interval * @param interval * @returns */ includeInterval(interval: Interval): Interval; }