Range1d Class

Range on a 1d axis

  • low and high members are always non-null objects
  • having low > high indicates an empty range.
  • the range contains x values for which low <= x <= high

Extends

Methods

Name Description
clipLinearMapToInterval(a: number, u: number, limitA: number, limitB: number): boolean clip this range to a linear half space condition  
clone(result?: Range1d): Range1d return a new Range1d with contents of this.  
cloneTranslated(delta: number, result?: Range1d): Range1d create a range with delta added to low and high  
containsRange(other: Range1d): boolean Test of other range is within this range  
containsX(x: number): boolean Test if a number is within the range.  
distanceToRange(other: Range1d): number returns 0 if the ranges have any overlap, otherwise the shortest absolute distance from one to the other.  
distanceToX(x: number): number Return 0 if the point is within the range, otherwise the (unsigned) distance to the closest face or corner  
expandInPlace(delta: number): void move all limits by a fixed amount.  
extendArray(values: number[] | Float64Array): void extend to include an array of values  
extendArraySubset(values: number[] | Float64Array, beginIndex: number, numValue: number): void extend to include values at indices beginIndex <= i < endIndex]  
extendHigh(x: number): boolean Extend only the high limit to x.  
extendLow(x: number): boolean Extend only the low limit to x.  
extendRange(other: Range1d): void Expand this range to include a range.  
extendX(x: number): void Expand this range by a single coordinate  
fractionToPoint(fraction: number): number return a point given by fractional positions within the range.  
intersect(other: Range1d, result?: Range1d): Range1d Return the intersection of ranges.  
intersectRangeXXInPlace(x0: number, x1: number): void Intersect this range with a range defined by parameters x0 and x1  
intersectsRange(other: Range1d): boolean Test if there is any intersection with other range  
isAlmostEqual(other: Readonly<Range1d>): boolean Returns true if this and other have equal low and high parts, or both are null ranges.  
length(): number Return the length of the range in the x direction  
maxAbs(): number Return the largest absolute value among the box limits.  
scaleAboutCenterInPlace(scaleFactor: number): void move low and high points by scaleFactor around the center point.  
setFrom(other: Range1d): void copy contents from other Range1d.  
setFromJSON(json: Range1dProps): void Convert from a JSON object of one of these forms:  
setNull(): void reset the low and high to null range state.  
setX(x: number): void Set this range to be a single value.  
setXXUnordered(x0: number, x1: number): void Set this range to (min(x0,x1), max(x0,x1))  
toJSON(): Range1dProps Convert to a JSON object of form  
union(other: Range1d, result?: Range1d): Range1d Return the union of ranges.  
createArray<T extends Range1d<T>>(values: number[] | Float64Array, result?: T): T Static Create a range containing all the values in an array.  
createFrom<T extends Range1d<T>>(other: T, result?: T): T Static return a new Range1d with contents of this.  
createNull<T extends Range1d<T>>(result?: T): T Static Create a range with no content.  
createX<T extends Range1d<T>>(x: number, result?: T): T Static Create a single point box  
createXX<T extends Range1d<T>>(xA: number, xB: number, result?: T): T Static Create a box from two values.  
createXXOrCorrectToNull<T extends Range1d<T>>(xA: number, xB: number, result?: T): T Static Create a box from two values, but null range if the values are reversed  
fromJSON<T extends Range1d<T>>(json?: Range1dProps): T Static Use setFromJSON to parse json into a new Range1d instance.  

Inherited methods

Name Inherited from Description
coordinateToRangeAbsoluteDistance(x: number, low: number, high: number): number Static RangeBase Given a coordinate and pair of range limits, return the smallest distance to the range.
isExtremePoint2d(xy: Point2d): boolean Static RangeBase Return true if either of x,y is outside the range `[_EXTREME_NEGATIVE, _EXTREME_POSITIVE]'
isExtremePoint3d(xyz: Point3d): boolean Static RangeBase Return true if any x or y or z is outside the range `[_EXTREME_NEGATIVE, _EXTREME_POSITIVE]'
isExtremeValue(x: number): boolean Static RangeBase Return true if x is outside the range `[_EXTREME_NEGATIVE, _EXTREME_POSITIVE]'
multiplyIfPositive(q: number, factor: number, defaultValue: number = 0.0): number Static RangeBase if a > 0, return (extrapolationFactor * a); otherwise return defaultValue
npcScaleFactor(low: number, high: number): number ProtectedStatic RangeBase Return 0 if high<= low, otherwise 1/(high-low) for use in fractionalizing
rangeToRangeAbsoluteDistance(lowA: number, highA: number, lowB: number, highB: number): number Static RangeBase Return the min absolute distance from any point of [lowA,highA]' to any point of [lowB,highB]'.

Properties

Name Type Description
high number high point coordinates.  
isAlmostZeroLength Accessor ReadOnly boolean Test if the x direction size is nearly zero  
isExact01 Accessor ReadOnly boolean    
isNull Accessor ReadOnly boolean Test if the box has high<low Note that a range around a single point is NOT null.  
isSinglePoint Accessor ReadOnly boolean Test of the range contains a single point.  
low number low point coordinates.  

Inherited properties

Name Type Inherited from Description
_EXTREME_NEGATIVE ProtectedStaticReadonly number RangeBase Number considered to be impossibly negative for a coordinate in a range.
_EXTREME_POSITIVE ProtectedStaticReadonly number RangeBase Number considered impossibly large possibly for a coordinate in a range.

Defined in

Last Updated: 30 November, 2023