import * as mat2d from '../glmatrix/mat2d'; import type Vector2 from './Vector2'; declare class Matrix2d { array: mat2d.Mat2dArray; /** * Set components from array * @param arr */ setArray(arr: mat2d.Mat2dArray): this; /** * Clone a new Matrix2d */ clone(): Matrix2d; /** * Copy from b * @param b */ copy(b: Matrix2d): this; /** * Calculate matrix determinant */ determinant(): number; /** * Set to a identity matrix */ identity(): this; /** * Invert self */ invert(): this; /** * Alias for mutiply * @param b */ mul(b: Matrix2d): this; /** * Alias for multiplyLeft * @param a */ mulLeft(b: Matrix2d): this; /** * Multiply self and b * @param b */ multiply(b: Matrix2d): this; /** * Multiply a and self, a is on the left * @param a */ multiplyLeft(b: Matrix2d): this; /** * Rotate self by a given radian * @param {number} rad */ rotate(rad: number): this; /** * Scale self by s * @param {clay.Vector2} s */ scale(s: Vector2): this; /** * Translate self by v * @param {clay.Vector2} v */ translate(v: Vector2): this; toString(): string; toArray(): mat2d.Mat2dArray; /** * @param out * @param a */ static copy(out: Matrix2d, a: Matrix2d): Matrix2d; /** * @param a */ static determinant(a: Matrix2d): number; /** * @param out */ static identity(out: Matrix2d): Matrix2d; /** * @param out * @param a */ static invert(out: Matrix2d, a: Matrix2d): Matrix2d; /** * @param out * @param a * @param b */ static mul(out: Matrix2d, a: Matrix2d, b: Matrix2d): Matrix2d; /** * @function * @param out * @param a * @param b */ static multiply: typeof Matrix2d.mul; /** * @param out * @param a * @param {number} rad */ static rotate(out: Matrix2d, a: Matrix2d, rad: number): Matrix2d; /** * @param out * @param a * @param {clay.Vector2} v */ static scale(out: Matrix2d, a: Matrix2d, v: Vector2): Matrix2d; /** * @param out * @param a * @param {clay.Vector2} v */ static translate(out: Matrix2d, a: Matrix2d, v: Vector2): Matrix2d; } export default Matrix2d;