/** * 📐 AR Projection Utilities * Common logic for projecting 3D marker-space points to 2D screen CSS pixels. */ /** * Projects a 3D marker-space point (x, y, z) into 2D screen coordinates. * * @param {number} x - Marker X coordinate * @param {number} y - Marker Y coordinate * @param {number} z - Marker Z coordinate (height from surface) * @param {number[][]} mVT - ModelViewTransform matrix (3x4) * @param {number[][]} proj - Projection matrix (3x3) * @param {number} videoW - Internal video width * @param {number} videoH - Internal video height * @param {Object} containerRect - {width, height} of the display container * @param {boolean} needsRotation - Whether the feed needs 90deg rotation (e.g. portrait mobile) * @returns {{sx: number, sy: number}} Screen coordinates [X, Y] */ export function projectToScreen(x: number, y: number, z: number, mVT: number[][], proj: number[][], videoW: number, videoH: number, containerRect: Object, needsRotation?: boolean): { sx: number; sy: number; };