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; } }