<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [rc-js-util](./rc-js-util.md) &gt; [Mat3](./rc-js-util.mat3.md)

## Mat3 class

Row major 3x3 matrix.

**Signature:**

```typescript
export declare abstract class Mat3<TArray extends TTypedArray> extends ATypedArrayTuple<9, TArray> 
```
**Extends:** [ATypedArrayTuple](./rc-js-util.atypedarraytuple.md)<!-- -->&lt;9, 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.mat3._0_.md)


</td><td>


</td><td>

number


</td><td>

c1r1


</td></tr>
<tr><td>

["1"](./rc-js-util.mat3._1_.md)


</td><td>


</td><td>

number


</td><td>

c2r1


</td></tr>
<tr><td>

["2"](./rc-js-util.mat3._2_.md)


</td><td>


</td><td>

number


</td><td>

c3r1


</td></tr>
<tr><td>

["3"](./rc-js-util.mat3._3_.md)


</td><td>


</td><td>

number


</td><td>

c1r2


</td></tr>
<tr><td>

["4"](./rc-js-util.mat3._4_.md)


</td><td>


</td><td>

number


</td><td>

c2r2


</td></tr>
<tr><td>

["5"](./rc-js-util.mat3._5_.md)


</td><td>


</td><td>

number


</td><td>

c3r2


</td></tr>
<tr><td>

["6"](./rc-js-util.mat3._6_.md)


</td><td>


</td><td>

number


</td><td>

c1r3


</td></tr>
<tr><td>

["7"](./rc-js-util.mat3._7_.md)


</td><td>


</td><td>

number


</td><td>

c2r3


</td></tr>
<tr><td>

["8"](./rc-js-util.mat3._8_.md)


</td><td>


</td><td>

number


</td><td>

c3r3


</td></tr>
<tr><td>

[constructor](./rc-js-util.mat3.constructor.md)


</td><td>


</td><td>

[IMat3Ctor](./rc-js-util.imat3ctor.md)<!-- -->&lt;TArray&gt;


</td><td>


</td></tr>
<tr><td>

[constructors](./rc-js-util.mat3.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.mat3.f32.md)


</td><td>

`static`


</td><td>

[IMat3Ctor](./rc-js-util.imat3ctor.md)<!-- -->&lt;Float32Array&gt;


</td><td>


</td></tr>
<tr><td>

[f64](./rc-js-util.mat3.f64.md)


</td><td>

`static`


</td><td>

[IMat3Ctor](./rc-js-util.imat3ctor.md)<!-- -->&lt;Float64Array&gt;


</td><td>


</td></tr>
<tr><td>

[i16](./rc-js-util.mat3.i16.md)


</td><td>

`static`


</td><td>

[IMat3Ctor](./rc-js-util.imat3ctor.md)<!-- -->&lt;Int16Array&gt;


</td><td>


</td></tr>
<tr><td>

[i32](./rc-js-util.mat3.i32.md)


</td><td>

`static`


</td><td>

[IMat3Ctor](./rc-js-util.imat3ctor.md)<!-- -->&lt;Int32Array&gt;


</td><td>


</td></tr>
<tr><td>

[i64](./rc-js-util.mat3.i64.md)


</td><td>

`static`


</td><td>

null


</td><td>


</td></tr>
<tr><td>

[i8](./rc-js-util.mat3.i8.md)


</td><td>

`static`


</td><td>

[IMat3Ctor](./rc-js-util.imat3ctor.md)<!-- -->&lt;Int8Array&gt;


</td><td>


</td></tr>
<tr><td>

[TTypeGuardMat3](./rc-js-util.mat3.ttypeguardmat3.md)


</td><td>

`protected`


</td><td>

true


</td><td>


</td></tr>
<tr><td>

[u16](./rc-js-util.mat3.u16.md)


</td><td>

`static`


</td><td>

[IMat3Ctor](./rc-js-util.imat3ctor.md)<!-- -->&lt;Uint16Array&gt;


</td><td>


</td></tr>
<tr><td>

[u32](./rc-js-util.mat3.u32.md)


</td><td>

`static`


</td><td>

[IMat3Ctor](./rc-js-util.imat3ctor.md)<!-- -->&lt;Uint32Array&gt;


</td><td>


</td></tr>
<tr><td>

[u64](./rc-js-util.mat3.u64.md)


</td><td>

`static`


</td><td>

null


</td><td>


</td></tr>
<tr><td>

[u8](./rc-js-util.mat3.u8.md)


</td><td>

`static`


</td><td>

[IMat3Ctor](./rc-js-util.imat3ctor.md)<!-- -->&lt;Uint8Array&gt;


</td><td>


</td></tr>
<tr><td>

[u8c](./rc-js-util.mat3.u8c.md)


</td><td>

`static`


</td><td>

[IMat3Ctor](./rc-js-util.imat3ctor.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.mat3.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.mat3.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.mat3.copytobuffer.md)


</td><td>


</td><td>

If endianness is not supplied the platform's endianness will be used.


</td></tr>
<tr><td>

[getCtor(ctor)](./rc-js-util.mat3.getctor.md)


</td><td>

`static`


</td><td>


</td></tr>
<tr><td>

[getLoggableValue()](./rc-js-util.mat3.getloggablevalue.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getRow(\_row, \_writeTo)](./rc-js-util.mat3.getrow.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getTransformedXLength(\_min, \_max)](./rc-js-util.mat3.gettransformedxlength.md)


</td><td>


</td><td>

Apply this transform as if it were x in a vec3 to both min and max, return the difference.


</td></tr>
<tr><td>

[getTransformedYLength(\_min, \_max)](./rc-js-util.mat3.gettransformedylength.md)


</td><td>


</td><td>

Apply this transform as if it were y in a vec3 to both min and max, return the difference.


</td></tr>
<tr><td>

[getValueAt(\_column, \_row)](./rc-js-util.mat3.getvalueat.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getVec3MultiplyX(\_x)](./rc-js-util.mat3.getvec3multiplyx.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[getVec3MultiplyY(\_y)](./rc-js-util.mat3.getvec3multiplyy.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[isEqualTo(\_other)](./rc-js-util.mat3.isequalto.md)


</td><td>


</td><td>

Component-wise equals.


</td></tr>
<tr><td>

[multiplyMat3(\_mat, \_result)](./rc-js-util.mat3.multiplymat3.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[scalarAdd(\_value, \_result)](./rc-js-util.mat3.scalaradd.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[scalarMultiply(\_value, \_result)](./rc-js-util.mat3.scalarmultiply.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setIdentityMatrix()](./rc-js-util.mat3.setidentitymatrix.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setRotationMatrix(\_angle)](./rc-js-util.mat3.setrotationmatrix.md)


</td><td>


</td><td>

counter clockwise, in radians


</td></tr>
<tr><td>

[setRow(\_row, \_writeFrom)](./rc-js-util.mat3.setrow.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setScalingMatrix(\_scalingFactorX, \_scalingFactorY)](./rc-js-util.mat3.setscalingmatrix.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setTranslationMatrix(\_translationX, \_translationY)](./rc-js-util.mat3.settranslationmatrix.md)


</td><td>


</td><td>


</td></tr>
<tr><td>

[setValueAt(\_column, \_row, \_value)](./rc-js-util.mat3.setvalueat.md)


</td><td>


</td><td>


</td></tr>
</tbody></table>
