UNPKG

@shopware-ag/dive

Version:

Shopware Spatial Framework

196 lines (195 loc) 5.57 kB
import { EventDispatcher, MOUSE, Object3D, OrthographicCamera, TOUCH, Vector3, Vector3Like } from 'three/webgpu'; import { DIVEPerspectiveCamera, DIVETicker, BoundingBox } from '../../../index.ts'; import { OrbitControllerState } from '../types/index.ts'; export type OrbitControllerSettings = { enableDamping?: boolean; dampingFactor?: number; enabled?: boolean; target?: Vector3; minDistance?: number; maxDistance?: number; minZoom?: number; maxZoom?: number; minPolarAngle?: number; maxPolarAngle?: number; minAzimuthAngle?: number; maxAzimuthAngle?: number; enableZoom?: boolean; zoomSpeed?: number; enableRotate?: boolean; rotateSpeed?: number; enablePan?: boolean; panSpeed?: number; screenSpacePanning?: boolean; keyPanSpeed?: number; autoRotate?: boolean; autoRotateSpeed?: number; keys?: { LEFT: string; UP: string; RIGHT: string; BOTTOM: string; }; mouseButtons?: { LEFT: MOUSE; MIDDLE: MOUSE; RIGHT: MOUSE; }; touches?: { ONE: TOUCH; TWO: TOUCH; }; }; export declare const OrbitControllerDefaultSettings: Required<OrbitControllerSettings>; type EventMap = { dispose: { type: 'dispose'; }; change: { type: 'change'; }; start: { type: 'start'; }; end: { type: 'end'; }; }; export declare class OrbitController extends EventDispatcher<EventMap> implements DIVETicker { static readonly DEFAULT_ZOOM_FACTOR = 1; object: DIVEPerspectiveCamera | OrthographicCamera; get domElement(): HTMLCanvasElement; domElements: HTMLCanvasElement[]; enabled: boolean; target: Vector3; minDistance: number; maxDistance: number; minZoom: number; maxZoom: number; minPolarAngle: number; maxPolarAngle: number; minAzimuthAngle: number; maxAzimuthAngle: number; enableDamping: boolean; dampingFactor: number; enableZoom: boolean; zoomSpeed: number; enableRotate: boolean; rotateSpeed: number; enablePan: boolean; panSpeed: number; screenSpacePanning: boolean; keyPanSpeed: number; autoRotate: boolean; autoRotateSpeed: number; keys: { LEFT: string; UP: string; RIGHT: string; BOTTOM: string; }; mouseButtons: { LEFT: MOUSE; MIDDLE: MOUSE; RIGHT: MOUSE; }; touches: { ONE: TOUCH; TWO: TOUCH; }; target0: Vector3; position0: Vector3; zoom0: number; uuid: string; private state; private readonly EPS; private readonly spherical; private readonly sphericalDelta; private scale; private readonly panOffset; private zoomChanged; private readonly rotateStart; private readonly rotateEnd; private readonly rotateDelta; private readonly panStart; private readonly panEnd; private readonly panDelta; private readonly dollyStart; private readonly dollyEnd; private readonly dollyDelta; private readonly pointers; private readonly pointerPositions; private readonly offset; private readonly quat; private readonly quatInverse; private readonly lastPosition; private readonly lastQuaternion; private readonly lastTarget; constructor(camera: DIVEPerspectiveCamera | OrthographicCamera, domElements: HTMLCanvasElement | HTMLCanvasElement[], settings?: OrbitControllerSettings); tick(): void; getPolarAngle(): number; getAzimuthalAngle(): number; getDistance(): number; saveState(): void; reset(): void; update(): boolean; dispose(): void; addDomElements(...domElements: HTMLCanvasElement[]): void; removeDomElements(...domElements: HTMLCanvasElement[]): void; setDomElements(...domElements: HTMLCanvasElement[]): void; computeEncompassingView(bb: BoundingBox, padding?: number): { position: Vector3Like; target: Vector3Like; }; focusObject(object: Object3D, padding?: number): void; zoomIn(by?: number): void; zoomOut(by?: number): void; getState(): OrbitControllerState; setState(state: OrbitControllerState): void; private addEventListeners; private removeEventListeners; private getAutoRotationAngle; private getZoomScale; private rotateLeft; private rotateUp; private panLeft; private panUp; private pan; private dollyIn; private dollyOut; private handleMouseDownRotate; private handleMouseDownDolly; private handleMouseDownPan; private handleMouseMoveRotate; private handleMouseMoveDolly; private handleMouseMovePan; private handleMouseWheel; private handleKeyDown; private handleTouchStartRotate; private handleTouchStartPan; private handleTouchStartDolly; private handleTouchStartDollyPan; private handleTouchStartDollyRotate; private handleTouchMoveRotate; private handleTouchMovePan; private handleTouchMoveDolly; private handleTouchMoveDollyPan; private handleTouchMoveDollyRotate; private onMouseDown; private onMouseMove; private onMouseWheel; private onKeyDown; private onTouchStart; private onTouchMove; private onPointerDown; private onPointerMove; private onPointerUp; private onPointerCancel; private onContextMenu; private addPointer; private removePointer; private trackPointer; private getSecondPointer; private isTrackingPointer; } export {};