import { Behavior, ContextManager, Observable } from '@zcomponent/core'; import { Object3D } from '../components/Object3D'; /** * An enum of orbit actions. */ export declare enum OrbitAction { /** * No action. */ None = "None", /** * Pan the camera. */ Pan = "Pan", /** * Rotate the camera. */ Rotate = "Rotate", /** * Dolly the camera. */ Dolly = "Dolly" } /** * A base class for orbit behaviors. */ export declare class Orbit extends Behavior { /** * The acton to perform when the left mouse button is pressed. * @zprop * @zdefault [0, 0, 0] */ initialTarget: Observable; /** * The rotation speed of the orbit. * @zprop * @zdefault 1 * @zgroup Settings * @zgrouppriority 4 */ rotationSpeed: Observable; /** * The pan speed of the orbit. * @zprop * @zdefault 1 * @zgroup Settings * @zgrouppriority 4 */ panSpeed: Observable; /** * The zoom speed of the orbit. * @zprop * @zdefault 1 * @zgroup Settings * @zgrouppriority 4 */ zoomSpeed: Observable; /** * The damping factor of the orbit. * @zprop * @zdefault 0.05 * @zgroup Settings * @zgrouppriority 4 */ dampingFactor: Observable; /** * The minimum polar angle of the orbit. * @zprop * @zdefault 0 * @zgroup Limits * @zgrouppriority 3 */ minPolarAngle: Observable; /** * The maximum polar angle of the orbit. * @zprop * @zdefault 3.141592 * @zgroup Limits * @zgrouppriority 3 */ maxPolarAngle: Observable; private _sphericalDelta; private _panOffset; private _scale; /** * Constructs a new Orbit Behavior. * @param contextManager - The context manager. * @param instance - The Object3D instance. */ constructor(contextManager: ContextManager, instance: Object3D); private _frame; protected _rotate(x: number, y: number): void; protected _pan(x: number, y: number): void; protected _getZoomScale(): number; private _panLeft; private _panUp; protected _dollyOut(n: number): void; protected _dollyIn(n: number): void; }