import * as mat3 from '../glmatrix/mat3'; import type Matrix2d from './Matrix2d'; import type Matrix4 from './Matrix4'; import type Quaternion from './Quaternion'; import type Vector2 from './Vector2'; declare class Matrix3 { /** * Storage of Matrix3 */ array: mat3.Mat3Array; constructor(); /** * Set components from array */ setArray(arr: mat3.Mat3Array): this; /** * Calculate the adjugate of self, in-place */ adjoint(): this; /** * Clone a new Matrix3 */ clone(): Matrix3; /** * Copy from b * @param b */ copy(b: Matrix3): this; /** * Calculate matrix determinant */ determinant(): number; /** * Copy the values from Matrix2d a * @param a */ fromMat2d(a: Matrix2d): this; /** * Copies the upper-left 3x3 values of Matrix4 * @param a */ fromMat4(a: Matrix4): this; /** * Calculates a rotation matrix from the given quaternion * @param q */ fromQuat(q: Quaternion): this; /** * Set to a identity matrix */ identity(): this; /** * Invert self */ invert(): this; /** * Alias for mutiply * @param b */ mul(b: Matrix3): this; /** * Alias for multiplyLeft * @param a */ mulLeft(a: Matrix3): this; /** * Multiply self and b * @param b */ multiply(b: Matrix3): this; /** * Multiply a and self, a is on the left * @param a */ multiplyLeft(a: Matrix3): this; /** * Rotate self by a given radian * @param rad */ rotate(rad: number): this; /** * Scale self by s * @param v */ scale(v: Vector2): this; /** * Translate self by v * @param v */ translate(v: Vector2): this; /** * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix * @param a */ normalFromMat4(a: Matrix4): this; /** * Transpose self, in-place. */ transpose(): this; toString(): string; toArray(): mat3.Mat3Array; /** * @param out * @param a */ static adjoint(out: Matrix3, a: Matrix3): Matrix3; /** * @param out * @param a */ static copy(out: Matrix3, a: Matrix3): Matrix3; /** * @param a */ static determinant(a: Matrix3): number; /** * @param out */ static identity(out: Matrix3): Matrix3; /** * @param out * @param a */ static invert(out: Matrix3, a: Matrix3): Matrix3; /** * @param out * @param a * @param b */ static mul(out: Matrix3, a: Matrix3, b: Matrix3): Matrix3; /** * @function * @param out * @param a * @param b */ static multiply: typeof Matrix3.mul; /** * @param out * @param a */ static fromMat2d(out: Matrix3, a: Matrix2d): Matrix3; /** * @param out * @param a */ static fromMat4(out: Matrix3, a: Matrix4): Matrix3; /** * @param out * @param a */ static fromQuat(out: Matrix3, q: Quaternion): Matrix3; /** * @param out * @param a */ static normalFromMat4(out: Matrix3, a: Matrix4): Matrix3; /** * @param out * @param a * @param rad */ static rotate(out: Matrix3, a: Matrix3, rad: number): Matrix3; /** * @param out * @param a * @param v */ static scale(out: Matrix3, a: Matrix3, v: Vector2): Matrix3; /** * @param out * @param a */ static transpose(out: Matrix3, a: Matrix3): Matrix3; /** * @param out * @param a * @param v */ static translate(out: Matrix3, a: Matrix3, v: Vector2): Matrix3; } export default Matrix3;