/** * Math utilities for 3D transformations */ import type { Vec3, Mat4 } from './types.js'; export declare class MathUtils { /** * Create identity matrix */ static identity(): Mat4; /** * Create perspective projection matrix */ static perspective(fov: number, aspect: number, near: number, far: number): Mat4; /** * Create orthographic projection matrix (reverse-Z) * Uses same reverse-Z convention as perspective for consistent depth buffer behavior. * Depth range: near=1.0, far=0.0 (inverted) */ static orthographicReverseZ(left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4; /** * Create reverse-Z perspective projection matrix * Reverse-Z distributes depth precision more evenly, eliminating Z-fighting * at far distances. Depth range: near=1.0, far=0.0 (inverted) */ static perspectiveReverseZ(fov: number, aspect: number, near: number, far: number): Mat4; /** * Create look-at view matrix */ static lookAt(eye: Vec3, target: Vec3, up: Vec3): Mat4; /** * Multiply matrices */ static multiply(a: Mat4, b: Mat4): Mat4; /** * Invert a 4x4 matrix */ static invert(a: Mat4): Mat4 | null; /** * Transform vec3 by matrix (as point, w=1) */ static transformPoint(m: Mat4, p: Vec3): Vec3; /** * Subtract vectors */ static subtract(a: Vec3, b: Vec3): Vec3; /** * Normalize vector */ static normalize(v: Vec3): Vec3; /** * Dot product */ static dot(a: Vec3, b: Vec3): number; /** * Cross product */ static cross(a: Vec3, b: Vec3): Vec3; } //# sourceMappingURL=math.d.ts.map