import type { Vec3 } from "./Vec3"; import { Vec4 } from "./Vec4"; export declare class Mat4 { readonly data: Array; constructor(data: Array); static identity(): Mat4; static scale(x: number, y: number, z: number): Mat4; static translate(x: number, y: number, z: number): Mat4; static xRotation(angle: number): Mat4; static yRotation(angle: number): Mat4; static zRotation(angle: number): Mat4; static rotate(x: number, y: number, z: number): Mat4; /** * @param q rotation quaternion * @param v translation vector * @returns a matrix combining rotation and translation */ static getRotationAndTranslationFromQuatAndVec(q: Vec4, v: Vec4): Mat4; /** * Generates orthogonal projection matrix with near/far clip planes corresponding to a normalized * NDC z-range of [0, 1]. */ static orthographic(left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4; /** * `fov` is in radians. Assumes WebGPU NDC z-range of [0, 1]. */ static perspective(fov: number, aspect: number, near: number, far: number): Mat4; static lookAt(position: Vec3, target: Vec3, up: Vec3): Mat4; translate(offset: Vec3): Mat4; rotate(angle: Vec3): Mat4; scale(scale: Vec3): Mat4; transpose(): Mat4; multiplyVec4(vec: Vec4): Vec4; multiply(other: Mat4): Mat4; invert(): Mat4; }