<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [rc-js-util](./rc-js-util.md) &gt; [Range2d](./rc-js-util.range2d.md)

## Range2d class

2x2 matrix representing a 2d range.

**Signature:**

```typescript
export declare abstract class Range2d<TArray extends TTypedArray> extends Mat2<TArray> 
```
**Extends:** [Mat2](./rc-js-util.mat2.md)<!-- -->&lt;TArray&gt;

## Remarks

See static properties for constructors. Instances are not an extension of this class, but of the static members.

## Properties

<table><thead><tr><th>

Property


</th><th>

Modifiers


</th><th>

Type


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

["0"](./rc-js-util.range2d._0_.md)


</td><td>


</td><td>

number


</td><td>

xMin


</td></tr>
<tr><td>

["1"](./rc-js-util.range2d._1_.md)


</td><td>


</td><td>

number


</td><td>

yMin


</td></tr>
<tr><td>

["2"](./rc-js-util.range2d._2_.md)


</td><td>


</td><td>

number


</td><td>

xMax


</td></tr>
<tr><td>

["3"](./rc-js-util.range2d._3_.md)


</td><td>


</td><td>

number


</td><td>

yMax


</td></tr>
<tr><td>

[constructor](./rc-js-util.range2d.constructor.md)


</td><td>


</td><td>

[IRange2dCtor](./rc-js-util.irange2dctor.md)<!-- -->&lt;TArray&gt;


</td><td>


</td></tr>
<tr><td>

[constructors](./rc-js-util.range2d.constructors.md)


</td><td>

`protected`

`static`


</td><td>

Map&lt;import("../../t-typed-array-ctor.js").[TFullSetTypedArrayCtor](./rc-js-util.tfullsettypedarrayctor.md)<!-- -->, Function&gt;


</td><td>


</td></tr>
<tr><td>

[f32](./rc-js-util.range2d.f32.md)


</td><td>

`static`


</td><td>

[IRange2dCtor](./rc-js-util.irange2dctor.md)<!-- -->&lt;Float32Array&gt;


</td><td>


</td></tr>
<tr><td>

[f64](./rc-js-util.range2d.f64.md)


</td><td>

`static`


</td><td>

[IRange2dCtor](./rc-js-util.irange2dctor.md)<!-- -->&lt;Float64Array&gt;


</td><td>


</td></tr>
<tr><td>

[i16](./rc-js-util.range2d.i16.md)


</td><td>

`static`


</td><td>

[IRange2dCtor](./rc-js-util.irange2dctor.md)<!-- -->&lt;Int16Array&gt;


</td><td>


</td></tr>
<tr><td>

[i32](./rc-js-util.range2d.i32.md)


</td><td>

`static`


</td><td>

[IRange2dCtor](./rc-js-util.irange2dctor.md)<!-- -->&lt;Int32Array&gt;


</td><td>


</td></tr>
<tr><td>

[i8](./rc-js-util.range2d.i8.md)


</td><td>

`static`


</td><td>

[IRange2dCtor](./rc-js-util.irange2dctor.md)<!-- -->&lt;Int8Array&gt;


</td><td>


</td></tr>
<tr><td>

[TTypeGuardRange2d](./rc-js-util.range2d.ttypeguardrange2d.md)


</td><td>


</td><td>

true


</td><td>


</td></tr>
<tr><td>

[u16](./rc-js-util.range2d.u16.md)


</td><td>

`static`


</td><td>

[IRange2dCtor](./rc-js-util.irange2dctor.md)<!-- -->&lt;Uint16Array&gt;


</td><td>


</td></tr>
<tr><td>

[u32](./rc-js-util.range2d.u32.md)


</td><td>

`static`


</td><td>

[IRange2dCtor](./rc-js-util.irange2dctor.md)<!-- -->&lt;Uint32Array&gt;


</td><td>


</td></tr>
<tr><td>

[u8](./rc-js-util.range2d.u8.md)


</td><td>

`static`


</td><td>

[IRange2dCtor](./rc-js-util.irange2dctor.md)<!-- -->&lt;Uint8Array&gt;


</td><td>


</td></tr>
<tr><td>

[u8c](./rc-js-util.range2d.u8c.md)


</td><td>

`static`


</td><td>

[IRange2dCtor](./rc-js-util.irange2dctor.md)<!-- -->&lt;Uint8ClampedArray&gt;


</td><td>


</td></tr>
</tbody></table>

## Methods

<table><thead><tr><th>

Method


</th><th>

Modifiers


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

[bound(\_boundTo)](./rc-js-util.range2d.bound.md)


</td><td>


</td><td>

Bound this range to the argument.


</td></tr>
<tr><td>

[castToBaseType()](./rc-js-util.range2d.casttobasetype.md)


</td><td>


</td><td>

Although the typed array tuples extend a typed array, they are not structurally compatible. This function returns the argument passed without modification but cast as the underlying storage type, e.g. Float32Array.


</td></tr>
<tr><td>

[containsRange(\_range)](./rc-js-util.range2d.containsrange.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[copyFromBuffer(\_memoryDataView, \_pointer, \_littleEndian)](./rc-js-util.range2d.copyfrombuffer.md)


</td><td>


</td><td>

If endianness is not supplied the platform's endianness will be used.


</td></tr>
<tr><td>

[copyToBuffer(\_memoryDataView, \_pointer, \_littleEndian)](./rc-js-util.range2d.copytobuffer.md)


</td><td>


</td><td>

If endianness is not supplied the platform's endianness will be used.


</td></tr>
<tr><td>

[doesRangeIntersect(\_range)](./rc-js-util.range2d.doesrangeintersect.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[ensureAABB()](./rc-js-util.range2d.ensureaabb.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[ensureMinRange(\_xMinRange, \_yMinRange)](./rc-js-util.range2d.ensureminrange.md)


</td><td>


</td><td>

Bound this range to be at least as large as the argument.


</td></tr>
<tr><td>

[extendRange(\_x, \_y, \_writeTo)](./rc-js-util.range2d.extendrange.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getCenter(\_result)](./rc-js-util.range2d.getcenter.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getCtor(ctor)](./rc-js-util.range2d.getctor.md)


</td><td>

`static`


</td><td>


</td></tr>
<tr><td>

[getRange(\_result)](./rc-js-util.range2d.getrange.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getRangeTransform(\_toRange, \_result)](./rc-js-util.range2d.getrangetransform.md)


</td><td>


</td><td>

Creates a transform matrix that maps values in this range onto `_toRange`<!-- -->.


</td></tr>
<tr><td>

[getXCenter()](./rc-js-util.range2d.getxcenter.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getXMax()](./rc-js-util.range2d.getxmax.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getXMaxAbs()](./rc-js-util.range2d.getxmaxabs.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getXMin()](./rc-js-util.range2d.getxmin.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getXRange()](./rc-js-util.range2d.getxrange.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getYCenter()](./rc-js-util.range2d.getycenter.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getYMax()](./rc-js-util.range2d.getymax.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getYMaxAbs()](./rc-js-util.range2d.getymaxabs.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getYMin()](./rc-js-util.range2d.getymin.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getYRange()](./rc-js-util.range2d.getyrange.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[isPointInRange(\_point)](./rc-js-util.range2d.ispointinrange.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[mat3Multiply(\_mat, \_writeTo)](./rc-js-util.range2d.mat3multiply.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[scaleRelativeTo(\_scalingFactor, \_relativeTo, \_result)](./rc-js-util.range2d.scalerelativeto.md)


</td><td>


</td><td>

Scales the range relative to a point (may not be outside of the range).


</td></tr>
<tr><td>

[setXMax(\_value)](./rc-js-util.range2d.setxmax.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setXMin(\_value)](./rc-js-util.range2d.setxmin.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setYMax(\_value)](./rc-js-util.range2d.setymax.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setYMin(\_value)](./rc-js-util.range2d.setymin.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[translateBy(\_dx, \_dy)](./rc-js-util.range2d.translateby.md)


</td><td>


</td><td>

Shifts the range by (dx, dy).


</td></tr>
<tr><td>

[unionRange(\_range, \_writeTo)](./rc-js-util.range2d.unionrange.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[update(\_args)](./rc-js-util.range2d.update.md)


</td><td>


</td><td>


</td></tr>
</tbody></table>
