HEX
Server: LiteSpeed
System: Linux server240.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User: creaqbdc (8964)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /home/creaqbdc/public_html/wp-content/uploads/ac_assets/morph_slider/vendor/ogl/src/math/Mat3.js
import * as Mat3Func from './functions/Mat3Func.js';

export class Mat3 extends Array {
    constructor(m00 = 1, m01 = 0, m02 = 0, m10 = 0, m11 = 1, m12 = 0, m20 = 0, m21 = 0, m22 = 1) {
        super(m00, m01, m02, m10, m11, m12, m20, m21, m22);
        return this;
    }

    set(m00, m01, m02, m10, m11, m12, m20, m21, m22) {
        if (m00.length) return this.copy(m00);
        Mat3Func.set(this, m00, m01, m02, m10, m11, m12, m20, m21, m22);
        return this;
    }

    translate(v, m = this) {
        Mat3Func.translate(this, m, v);
        return this;
    }

    rotate(v, m = this) {
        Mat3Func.rotate(this, m, v);
        return this;
    }

    scale(v, m = this) {
        Mat3Func.scale(this, m, v);
        return this;
    }

    multiply(ma, mb) {
        if (mb) {
            Mat3Func.multiply(this, ma, mb);
        } else {
            Mat3Func.multiply(this, this, ma);
        }
        return this;
    }

    identity() {
        Mat3Func.identity(this);
        return this;
    }

    copy(m) {
        Mat3Func.copy(this, m);
        return this;
    }

    fromMatrix4(m) {
        Mat3Func.fromMat4(this, m);
        return this;
    }

    fromQuaternion(q) {
        Mat3Func.fromQuat(this, q);
        return this;
    }

    fromBasis(vec3a, vec3b, vec3c) {
        this.set(vec3a[0], vec3a[1], vec3a[2], vec3b[0], vec3b[1], vec3b[2], vec3c[0], vec3c[1], vec3c[2]);
        return this;
    }

    inverse(m = this) {
        Mat3Func.invert(this, m);
        return this;
    }

    getNormalMatrix(m) {
        Mat3Func.normalFromMat4(this, m);
        return this;
    }
}