molstar
Version:
A comprehensive macromolecular library.
62 lines (61 loc) • 1.98 kB
TypeScript
/**
* Copyright (c) 2020-2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*
* Adapted from three.js, The MIT License, Copyright © 2010-2020 three.js authors
*/
import { Ray3D } from '../../mol-math/geometry/primitives/ray3d.js';
import { Mat4 } from '../../mol-math/linear-algebra.js';
import { ParamDefinition as PD } from '../../mol-util/param-definition.js';
import { Camera, ICamera } from '../camera.js';
import { Viewport } from './util.js';
export declare const StereoCameraParams: {
eyeSeparation: PD.Numeric;
focus: PD.Numeric;
};
export declare const DefaultStereoCameraProps: PD.Values<{
eyeSeparation: PD.Numeric;
focus: PD.Numeric;
}>;
export type StereoCameraProps = PD.Values<typeof StereoCameraParams>;
export { StereoCamera };
declare class StereoCamera {
private parent;
readonly left: EyeCamera;
readonly right: EyeCamera;
get viewport(): Viewport;
get viewOffset(): Camera.ViewOffset;
private props;
constructor(parent: Camera, props?: Partial<StereoCameraProps>);
setProps(props: Partial<StereoCameraProps>): void;
update(xr?: {
pose: XRViewerPose;
layer: XRWebGLLayer;
}): void;
}
declare namespace StereoCamera {
function is(camera: Camera | StereoCamera): camera is StereoCamera;
}
declare class EyeCamera implements ICamera {
viewport: Viewport;
view: Mat4;
projection: Mat4;
projectionView: Mat4;
inverseProjectionView: Mat4;
headRotation: Mat4;
viewEye: Mat4;
isAsymmetricProjection: boolean;
state: Readonly<Camera.Snapshot>;
viewOffset: Readonly<Camera.ViewOffset>;
far: number;
near: number;
fogFar: number;
fogNear: number;
forceFull: boolean;
scale: number;
minTargetDistance: number;
disabled: boolean;
getRay(out: Ray3D, x: number, y: number): Ray3D;
}