import { Quaternion } from "./Quaternion.ts"; import { Vector3 } from "./Vector3.ts"; /** 4x4 matrix for 3D affine and projection transforms. */ export declare class Matrix4 { #private; constructor(elements?: Float32Array); get elements(): Float32Array; clone(): Matrix4; /** Composes this matrix from a position, quaternion rotation, and scale. */ compose(position: Vector3, q: Quaternion, scale: Vector3): this; /** Copies elements from another Matrix4 into this one. */ copy(m: Matrix4): this; /** Decomposes this matrix into position, quaternion rotation, and scale. */ decompose(position: Vector3, q: Quaternion, scale: Vector3): this; /** Computes the determinant of this matrix. */ determinant(): number; /** Extracts the translation component into the given Vector3. */ extractPosition(position: Vector3): this; /** Extracts the rotation component from another Matrix4, normalizing by scale. */ extractRotation(m: Matrix4): this; /** * Extracts the scale component into the given Vector3. * Negates X when the determinant is negative (reflection). */ extractScale(scale: Vector3): this; /** Resets this matrix to the identity. */ identity(): this; /** * Inverts this matrix in place. * @throws When the matrix is non-invertible (det === 0) */ invert(): this; /** Sets this matrix to a look-at view matrix. */ lookAt(eye: Vector3, target: Vector3, up: Vector3): this; /** Sets this to an orthographic projection matrix. */ makeOrthographic(left: number, right: number, top: number, bottom: number, near: number, far: number): this; /** * Sets this to a perspective projection matrix. * @param fov Vertical field of view in radians * @param aspect Viewport aspect ratio (width / height) * @param near Near clipping plane distance * @param far Far clipping plane distance */ makePerspective(fov: number, aspect: number, near: number, far: number): this; /** Sets this to the rotation component of an Euler angle set. */ makeRotationFromEuler(euler: import("./Euler.js").Euler): this; /** Sets this to the rotation represented by the given quaternion. */ makeRotationFromQuaternion(q: Quaternion): this; /** Sets this to a rotation matrix around the X axis. */ makeRotationX(radians: number): this; /** Sets this to a rotation matrix around the Y axis. */ makeRotationY(radians: number): this; /** Sets this to a rotation matrix around the Z axis. */ makeRotationZ(radians: number): this; /** Sets this to a 3D scale matrix. */ makeScale(x: number, y: number, z: number): this; /** Sets this to a 3D translation matrix. */ makeTranslation(x: number, y: number, z: number): this; /** Post-multiplies this matrix by m. */ mul(m: Matrix4): this; /** Sets this matrix to the product a * b. */ mulMatrices(a: Matrix4, b: Matrix4): this; /** * Sets this matrix to the product a * b, assuming both are affine transforms: * last row is [0,0,0,1]. This is the common case for scene graph world-matrix * propagation and is substantially cheaper than full 4x4 multiplication. */ mulMatricesAffine(a: Matrix4, b: Matrix4): this; /** Sets all sixteen elements directly (row-major argument order). */ set(n11: number, n12: number, n13: number, n14: number, n21: number, n22: number, n23: number, n24: number, n31: number, n32: number, n33: number, n34: number, n41: number, n42: number, n43: number, n44: number): this; /** Transposes this matrix in place. */ transpose(): this; /** Iterates over all sixteen elements in column-major order. */ [Symbol.iterator](): Generator; } //# sourceMappingURL=Matrix4.d.ts.map