import { Camera } from "./Camera.js"; import { PerspectiveCamera } from "./PerspectiveCamera.js"; /** * Dual {@link PerspectiveCamera | PerspectiveCamera}s used for effects such as * {@link https://en.wikipedia.org/wiki/Anaglyph_3D | 3D Anaglyph} or * {@link https://en.wikipedia.org/wiki/parallax_barrier | Parallax Barrier}. * @see Example: {@link https://threejs.org/examples/#webgl_effects_anaglyph | effects / anaglyph } * @see Example: {@link https://threejs.org/examples/#webgl_effects_parallaxbarrier | effects / parallaxbarrier } * @see Example: {@link https://threejs.org/examples/#webgl_effects_stereo | effects / stereo } * @see {@link https://threejs.org/docs/index.html#api/en/cameras/StereoCamera | Official Documentation} * @see {@link https://github.com/mrdoob/three.js/blob/master/src/cameras/StereoCamera.js | Source} */ export class StereoCamera extends Camera { constructor(); type: "StereoCamera"; /** * @remarks Expects a `Float` * @defaultValue `1` */ aspect: number; /** * @remarks Expects a `Float` * @defaultValue `0.064` */ eyeSep: number; /** * The Left camera. * A {@link PerspectiveCamera } added to {@link THREE.PerspectiveCamera.layers | layer 1} * @remarks Objects to be rendered by the **left** camera must also be added to this layer. */ cameraL: PerspectiveCamera; /** * The Right camera. * A {@link PerspectiveCamera } added to {@link THREE.PerspectiveCamera.layers | layer 2} * @remarks Objects to be rendered by the **right** camera must also be added to this layer. */ cameraR: PerspectiveCamera; /** * Update the stereo cameras based on the camera passed in. * @param camera */ update(camera: PerspectiveCamera): void; }