Interface IMutableMatrix44

Interface for mutable 4x4 matrices. Provides modifiable 4x4 matrix operations for complete 3D transformations.

interface IMutableMatrix44 {
    _v: Float32Array;
    className: string;
    isIdentityMatrixClass: boolean;
    m00: number;
    m01: number;
    m02: number;
    m03: number;
    m10: number;
    m11: number;
    m12: number;
    m13: number;
    m20: number;
    m21: number;
    m22: number;
    m23: number;
    m30: number;
    m31: number;
    m32: number;
    m33: number;
    translateX: number;
    translateY: number;
    translateZ: number;
    _swap(l: number, r: number): void;
    addTranslate(vec: IVector3): IMutableMatrix44;
    at(row_i: number, column_i: number): number;
    clone(): IMutableMatrix44;
    copyComponents(mat: IMatrix44): IMutableMatrix44;
    determinant(): number;
    flattenAsArray(): number[];
    fromQuaternion(quat: IQuaternion): IMutableMatrix44;
    getRotate(): IMutableMatrix44;
    getScale(): IVector4;
    getScaleTo(outVec: IMutableVector3): IMutableVector3;
    getTranslate(): IVector3;
    getTranslateTo(outVec: IMutableVector3): IMutableVector3;
    identity(): IMutableMatrix44;
    invert(): IMutableMatrix44;
    isDummy(): boolean;
    isEqual(mat: IMatrix44, delta?: number): boolean;
    isStrictEqual(mat: IMatrix44): boolean;
    isTheSourceSame(arrayBuffer: ArrayBuffer): boolean;
    multiply(mat: IMatrix44): IMutableMatrix44;
    multiplyByLeft(mat: IMatrix44): IMutableMatrix44;
    multiplyScale(vec: IVector3): IMutableMatrix44;
    multiplyVector(vec: IVector4): IVector4;
    multiplyVector3(vec: IVector3): IVector3;
    multiplyVector3To(vec: IVector3, outVec: IMutableVector3): IMutableVector3;
    multiplyVectorTo(vec: IVector4, outVec: IMutableVector4): IMutableVector4;
    multiplyVectorToVec3(vec: IVector4, outVec: IMutableVector3): IMutableVector3;
    putTranslate(vec: IVector3): IMutableMatrix44;
    raw(): TypedArray;
    rotate(vec3: IVector3): IMutableMatrix44;
    rotateX(radian: number): IMutableMatrix44;
    rotateXYZ(x: number, y: number, z: number): IMutableMatrix44;
    rotateY(radian: number): IMutableMatrix44;
    rotateZ(radian: number): IMutableMatrix44;
    scale(vec: IVector3): IMutableMatrix44;
    setAt(row_i: number, column_i: number, value: number): IMutableMatrix44;
    setComponents(m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): IMutableMatrix44;
    toEulerAngles(): IVector3;
    toEulerAnglesTo(outVec3: IMutableVector3): IMutableVector3;
    toString(): string;
    toStringApproximately(): string;
    translate(vec: IVector3): IMutableMatrix44;
    transpose(): IMutableMatrix44;
    v(i: number): number;
    zero(): IMutableMatrix44;
}

Hierarchy (view full)

Implemented by

Properties

_v: Float32Array

Internal typed array storing matrix data in column-major order

className: string

Returns the class name of the matrix implementation

isIdentityMatrixClass: boolean

Indicates if this matrix is an identity matrix class

m00: number

Element at row 0, column 0

m01: number

Element at row 0, column 1

m02: number

Element at row 0, column 2

m03: number

Element at row 0, column 3

m10: number

Element at row 1, column 0

m11: number

Element at row 1, column 1

m12: number

Element at row 1, column 2

m13: number

Element at row 1, column 3

m20: number

Element at row 2, column 0

m21: number

Element at row 2, column 1

m22: number

Element at row 2, column 2

m23: number

Element at row 2, column 3

m30: number

Element at row 3, column 0

m31: number

Element at row 3, column 1

m32: number

Element at row 3, column 2

m33: number

Element at row 3, column 3

translateX: number

Translation component along X-axis (same as m03)

translateY: number

Translation component along Y-axis (same as m13)

translateZ: number

Translation component along Z-axis (same as m23)

Methods

  • Swaps two elements in the internal array.

    Parameters

    • l: number

      Left index

    • r: number

      Right index

    Returns void

  • Gets the value at the specified row and column.

    Parameters

    • row_i: number

      Row index (0-based)

    • column_i: number

      Column index (0-based)

    Returns number

    Value at the specified position

  • Checks if this matrix is approximately equal to another matrix.

    Parameters

    • mat: IMatrix44

      Matrix to compare against

    • Optionaldelta: number

      Optional tolerance for comparison (default: small epsilon)

    Returns boolean

    True if matrices are approximately equal

  • Checks if this matrix is strictly equal to another matrix.

    Parameters

    Returns boolean

    True if matrices are exactly equal

  • Checks if the internal array buffer is the same as the provided one.

    Parameters

    • arrayBuffer: ArrayBuffer

      Array buffer to compare against

    Returns boolean

    True if the source is the same

  • Applies rotations around X, Y, and Z axes in that order.

    Parameters

    • x: number

      Rotation around X-axis in radians

    • y: number

      Rotation around Y-axis in radians

    • z: number

      Rotation around Z-axis in radians

    Returns IMutableMatrix44

    This matrix for method chaining

  • Sets all matrix components from individual values.

    Parameters

    • m00: number

      Element at row 0, column 0

    • m01: number

      Element at row 0, column 1

    • m02: number

      Element at row 0, column 2

    • m03: number

      Element at row 0, column 3

    • m10: number

      Element at row 1, column 0

    • m11: number

      Element at row 1, column 1

    • m12: number

      Element at row 1, column 2

    • m13: number

      Element at row 1, column 3

    • m20: number

      Element at row 2, column 0

    • m21: number

      Element at row 2, column 1

    • m22: number

      Element at row 2, column 2

    • m23: number

      Element at row 2, column 3

    • m30: number

      Element at row 3, column 0

    • m31: number

      Element at row 3, column 1

    • m32: number

      Element at row 3, column 2

    • m33: number

      Element at row 3, column 3

    Returns IMutableMatrix44

    This matrix for method chaining

  • Gets the value at the specified linear index.

    Parameters

    • i: number

      Linear index in the internal array

    Returns number

    Value at the specified index