import { mat4, vec2, vec3 } from 'gl-matrix'; import { CameraModifier } from './cameramodifier'; /** * Math for camera rotation based on the turntable metaphor. The rotation computed by an initial (@see startRotate) and * subsequent (@see updateRotate) event points and can be applied to a camera via an explicit update (@see update). * In contrast to the trackball, this metaphor is usually less confusing for non-professionals. */ export declare class TurntableModifier extends CameraModifier { protected static readonly DEFAULT_SENSITIVITY = 0.002; /** * Current rotation matrix. */ protected _rotation: mat4; protected _maxAzimuth: number | undefined; protected _minAzimuth: number | undefined; protected _xAxisScreenSpace: vec3; protected _azimuth: number; /** @see {@link sensitivity} */ protected _sensitivity: number; /** * Initiate a new turntable rotation at a specific event position. * @param point - Position of the current event to derive the magnitude for rotation from. */ initiate(point: vec2): void; /** * Update the turntable rotation w.r.t. a specific event position. * @param point - Position of the current event to derive the magnitude for rotation from. */ process(point: vec2): void; /** * Actually applies the trackball rotation to the given camera. */ update(): void; /** * Rotational sensitivity. */ set sensitivity(sensitivity: number); get sensitivity(): number; }