import { Vector2, Vector3 } from "three";

export class Matrix2
{
    private el = [1, 0, 0, 1];
    set(n11: number, n12: number, n21: number, n22: number)
    {
        let te = this.el;

        te[0] = n11; te[1] = n21;
        te[2] = n12; te[3] = n22;
        return this;
    }
    applyVector(vec: Vector2 | Vector3)
    {
        let x = vec.x, y = vec.y;
        let e = this.el;
        vec.x = e[0] * x + e[2] * y;
        vec.y = e[1] * x + e[3] * y;

        return this;
    }

    setRotate(theta: number): Matrix2
    {
        // let el = this.el;
        let c = Math.cos(theta), s = Math.sin(theta);

        this.set(c, -s,
            s, c);
        return this;
    }
}
