import type { PerspectiveCamera, Mesh, Texture } from 'three'; import type { StereoMode } from '@vizor-vr/shared'; /** * Interface for projection strategies. * Each VzFormat maps to a specific projection that knows * how to create geometry, materials, and meshes for rendering. */ export interface IProjection { /** Create meshes for the scene. Returns [mono] or [left, right] for stereo. */ createMeshes(texture: Texture, stereoMode: StereoMode): Mesh[]; /** Configure camera FOV and constraints for this projection type */ configureCamera(camera: PerspectiveCamera): void; /** Per-frame update (e.g., shader uniforms). Called in animation loop. */ update(camera: PerspectiveCamera, time: number): void; /** Clean up GPU resources */ dispose(): void; } //# sourceMappingURL=projection.d.ts.map