@shopware-ag/dive
Version:
Shopware Spatial Framework
196 lines (195 loc) • 5.57 kB
TypeScript
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 {};