import { ControllerExtensionBase } from '../ControllerExtensionBase'; import { MOUSE, Raycaster, TOUCH, Vector3 } from 'three'; /** * Orbit extension options for initial extension state. */ export declare class OrbitExtensionOptions { /**How far you can dolly in. (PerspectiveCamera only) */ minDistance: number; /**How far you can dolly out (PerspectiveCamera only). */ maxDistance: number; /**How far you can zoom in (OrthographicCamera only). */ minZoom: number; /**How far you can zoom out (OrthographicCamera only). */ maxZoom: number; /**How near you can orbit vertically, upper and lower in radians(range is 0 to Math.PI radians). */ minPolarAngle: number; /**How far you can orbit vertically, upper and lower in radians(range is 0 to Math.PI radians). */ maxPolarAngle: number; /** * How near you can orbit horizontally, upper and lower in radians. * If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI ) * */ minAzimuthAngle: number; /** * How far you can orbit horizontally, upper and lower in radians. * If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI ) * */ maxAzimuthAngle: number; /**Zoom spped for mouse wheel. */ zoomSpeed: number; /**Zoom speed for touch dolly action. */ zoomDollySpeed: number; /**Left mouse button binding. */ leftMouseButton: MOUSE | undefined; /**Right mouse button binding. */ rightMouseButton: MOUSE | undefined; /**Middle mouse button binding. */ middleMouseButton: MOUSE | undefined; /**Middle + Alt mouse button binding. */ middleAltMouseButton: MOUSE | undefined; /**Single finger touch tap binding. */ oneTap: TOUCH; /**Two finger touch tap binding. */ twoTaps: TOUCH; /** Automatic rotation around the target. */ autoRotate: boolean; /** Automatic rotation speed. */ autoRotateSpeed: number; } /** * Orbit controller extension for camera. Provides basic rotation and movement actions. */ export declare class OrbitControllerExtension extends ControllerExtensionBase { static getName: () => string; options: OrbitExtensionOptions; private enableDamping; private dampingFactor; private rotateSpeed; private panSpeed; private screenSpacePanning; private keyPanSpeed; private spherical; private sphericalT; private sphericalDelta; scale: number; private panOffset; private dollyOffset; private zoomChanged; private rotateStart; private rotateEnd; private rotateDelta; private panStart; private panEnd; private panDelta; private dollyStart; private dollyEnd; private dollyDelta; private pointerState; private pointers; private pointerPositions; private target; pivot: Vector3 | undefined; pivotAssigned: boolean; raycaster: Raycaster; /** * @param viewerName - Owner viewer name for extension. * @param options - extension options. */ constructor(viewerName: string, options: OrbitExtensionOptions); /** * Sets mouse button bindings for controller actions. * @param left - Left button binding. * @param right - Right button binding. * @param middle - Middle button binding. * @param middleAlt - Middle + Alt button binding. */ setMouseButtonsActions(left: MOUSE | undefined, right: MOUSE | undefined, middle: MOUSE | undefined, middleAlt: MOUSE | undefined): void; /** * Sets touch button bindings for controller actions. * @param one - Single finger tap binding. * @param two - Two fingers tap binding. */ setTouchActions(one?: TOUCH, two?: TOUCH): void; /** * Sets dolly limits relative scene bounds. Coefficient == 1 equals scene boundary sphere diameter. * @param minSceneSizeCoef - Minimum dolly coefficient. * @param maxSceneSizeCoef - Maximum dolly coefficient. */ setDollyLimitsFromSceneBounds(minSceneSizeCoef?: number, maxSceneSizeCoef?: number): void; /** * Gets current zoom factor relative {@link minZoom}, {@link maxZoom} and scene bounds. */ getZoomRelationToSceneBounds(): number; /** * Gets polar camera angle (Phi). */ getPolarAngle(): number; /** * Gets azimuth camera angle (Theta). */ getAzimuthalAngle(): number; private getAutoRotationAngle; private getZoomScale; private rotateLeft; private rotateUp; private panLeft; private panUp; private pan; private dollyOut; private dollyIn; private onPointerDown; private onPointerMove; private onPointerCancel; private onPointerUp; private onMouseDown; private onMouseMove2; private onMouseUp; private onMouseWheel2; private trackPointer; private getSecondPointerPosition; private addPointer; private removePointer; private onTouchStart; private onTouchMove; private onContextMenu; private onSelected; private handleTouchStartRotate; private handleTouchStartPan; private handleTouchStartDolly; private handleTouchStartDollyPan; private handleTouchStartDollyRotate; private handleTouchMoveRotate; private handleTouchMovePan; private handleTouchMoveDolly; private handleTouchMoveDollyPan; private handleTouchMoveDollyRotate; private handleMouseDownRotate; private handleMouseDownDolly; private handleMouseDownPan; private handleMouseMoveRotate; private handleMouseMoveDolly; private handleMouseMovePan; private handleMouseUp; private handleMouseWheel; private handleTouchEnd; added(): void; selected(): void; unselected(): void; updated(delta: number, force?: boolean): void; getTargetClone(): Vector3; deleted(): void; cameraModeChanged(perspective: boolean): boolean; }