import { Mesh } from 'three'; import type { PerspectiveCamera, Texture } from 'three'; import type { StereoMode } from '@vizor-vr/shared'; import type { IProjection } from './projection.js'; /** * Cubemap projection for standard 3x2 atlas cubemap content. * Creates an inverted box with each face's UVs remapped to the * corresponding tile in the atlas texture. * For stereo content, creates two boxes on different Three.js layers * with UV remapping for side-by-side or top-bottom layouts. */ export declare class CubemapProjection implements IProjection { private meshes; createMeshes(texture: Texture, stereoMode: StereoMode): Mesh[]; configureCamera(camera: PerspectiveCamera): void; update(_camera: PerspectiveCamera, _time: number): void; dispose(): void; private createBox; /** * Remap UV coordinates for cubemap atlas layout, with optional stereo offset. * * BoxGeometry has 6 faces, each with 4 vertices (indices faceIndex*4 .. faceIndex*4+3). * Default UVs for each face span [0,1] in both U and V. * We remap each face to its tile in the 3x2 atlas, then apply stereo compression * if needed. * * For TB stereo the entire atlas occupies either the top or bottom half of the * texture, so V coordinates are compressed to half and offset accordingly. * For SBS stereo the atlas occupies either the left or right half, so U * coordinates are compressed to half and offset accordingly. */ private remapFaceUVs; } //# sourceMappingURL=cubemap-projection.d.ts.map