<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [rc-js-util](./rc-js-util.md) &gt; [Margin2d](./rc-js-util.margin2d.md)

## Margin2d class

2x2 matrix representing margins on a rectangle.

**Signature:**

```typescript
export declare abstract class Margin2d<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.margin2d._0_.md)


</td><td>


</td><td>

number


</td><td>

left


</td></tr>
<tr><td>

["1"](./rc-js-util.margin2d._1_.md)


</td><td>


</td><td>

number


</td><td>

bottom


</td></tr>
<tr><td>

["2"](./rc-js-util.margin2d._2_.md)


</td><td>


</td><td>

number


</td><td>

right


</td></tr>
<tr><td>

["3"](./rc-js-util.margin2d._3_.md)


</td><td>


</td><td>

number


</td><td>

top


</td></tr>
<tr><td>

[constructor](./rc-js-util.margin2d.constructor.md)


</td><td>


</td><td>

[IMargin2dCtor](./rc-js-util.imargin2dctor.md)<!-- -->&lt;TArray&gt;


</td><td>


</td></tr>
<tr><td>

[constructors](./rc-js-util.margin2d.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.margin2d.f32.md)


</td><td>

`static`


</td><td>

[IMargin2dCtor](./rc-js-util.imargin2dctor.md)<!-- -->&lt;Float32Array&gt;


</td><td>


</td></tr>
<tr><td>

[f64](./rc-js-util.margin2d.f64.md)


</td><td>

`static`


</td><td>

[IMargin2dCtor](./rc-js-util.imargin2dctor.md)<!-- -->&lt;Float64Array&gt;


</td><td>


</td></tr>
<tr><td>

[i16](./rc-js-util.margin2d.i16.md)


</td><td>

`static`


</td><td>

[IMargin2dCtor](./rc-js-util.imargin2dctor.md)<!-- -->&lt;Int16Array&gt;


</td><td>


</td></tr>
<tr><td>

[i32](./rc-js-util.margin2d.i32.md)


</td><td>

`static`


</td><td>

[IMargin2dCtor](./rc-js-util.imargin2dctor.md)<!-- -->&lt;Int32Array&gt;


</td><td>


</td></tr>
<tr><td>

[i64](./rc-js-util.margin2d.i64.md)


</td><td>

`static`


</td><td>

null


</td><td>


</td></tr>
<tr><td>

[i8](./rc-js-util.margin2d.i8.md)


</td><td>

`static`


</td><td>

[IMargin2dCtor](./rc-js-util.imargin2dctor.md)<!-- -->&lt;Int8Array&gt;


</td><td>


</td></tr>
<tr><td>

[TTypeGuardAMargin2d](./rc-js-util.margin2d.ttypeguardamargin2d.md)


</td><td>


</td><td>

true


</td><td>


</td></tr>
<tr><td>

[u16](./rc-js-util.margin2d.u16.md)


</td><td>

`static`


</td><td>

[IMargin2dCtor](./rc-js-util.imargin2dctor.md)<!-- -->&lt;Uint16Array&gt;


</td><td>


</td></tr>
<tr><td>

[u32](./rc-js-util.margin2d.u32.md)


</td><td>

`static`


</td><td>

[IMargin2dCtor](./rc-js-util.imargin2dctor.md)<!-- -->&lt;Uint32Array&gt;


</td><td>


</td></tr>
<tr><td>

[u64](./rc-js-util.margin2d.u64.md)


</td><td>

`static`


</td><td>

null


</td><td>


</td></tr>
<tr><td>

[u8](./rc-js-util.margin2d.u8.md)


</td><td>

`static`


</td><td>

[IMargin2dCtor](./rc-js-util.imargin2dctor.md)<!-- -->&lt;Uint8Array&gt;


</td><td>


</td></tr>
<tr><td>

[u8c](./rc-js-util.margin2d.u8c.md)


</td><td>

`static`


</td><td>

[IMargin2dCtor](./rc-js-util.imargin2dctor.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>

[castToBaseType()](./rc-js-util.margin2d.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>

[copyFromBuffer(\_memoryDataView, \_pointer, \_littleEndian)](./rc-js-util.margin2d.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.margin2d.copytobuffer.md)


</td><td>


</td><td>

If endianness is not supplied the platform's endianness will be used.


</td></tr>
<tr><td>

[getBottom()](./rc-js-util.margin2d.getbottom.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getCtor(ctor)](./rc-js-util.margin2d.getctor.md)


</td><td>

`static`


</td><td>


</td></tr>
<tr><td>

[getInnerRange(\_range, \_result)](./rc-js-util.margin2d.getinnerrange.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getLeft()](./rc-js-util.margin2d.getleft.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getRight()](./rc-js-util.margin2d.getright.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getTop()](./rc-js-util.margin2d.gettop.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[mat3TransformLength(\_mat, \_writeTo)](./rc-js-util.margin2d.mat3transformlength.md)


</td><td>


</td><td>

Applies `Mat3.getTransformedXLength` `Mat3.getTransformedYLength` with a minimum of 0 and a maximum of whatever the margin is.


</td></tr>
<tr><td>

[setBottom(\_value)](./rc-js-util.margin2d.setbottom.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setLeft(\_value)](./rc-js-util.margin2d.setleft.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setRight(\_value)](./rc-js-util.margin2d.setright.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setTop(\_value)](./rc-js-util.margin2d.settop.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[sumX()](./rc-js-util.margin2d.sumx.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[sumY()](./rc-js-util.margin2d.sumy.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[update(\_args)](./rc-js-util.margin2d.update.md)


</td><td>


</td><td>


</td></tr>
</tbody></table>
