soonspacejs
Version:
soonspacejs 2.x
95 lines (94 loc) • 2.74 kB
TypeScript
import { Object3D, Vector3 } from 'three';
export type FreeControlsType = 'free';
export type OrbitControlsType = 'orbit';
export type ControlsType = FreeControlsType | OrbitControlsType;
export interface FreeControlsOptions {
type: FreeControlsType;
enabled?: boolean;
enabledMousePointInteractive?: boolean;
fallbackInteractivePosition?: Vector3 | null;
enableZoom?: boolean;
zoomSpeed?: number;
zoomMinDistance?: number;
zoomMaxDistance?: number;
zoomMinStepDistance?: number;
zoomMaxStepDistance?: number;
enableRotate?: boolean;
enableRotateX?: boolean;
enableRotateY?: boolean;
rotateSpeed?: number;
rotateTiltRange?: {
max: number;
min: number;
};
enableAutoRotate?: boolean;
autoRotateSpeed?: number;
autoRotateClockwise?: boolean;
enableOutOfScene?: boolean;
unOffsetOfScene?: number;
enablePan?: boolean;
enablePanX?: boolean;
enablePanY?: boolean;
enablePanAxisX?: boolean;
enablePanAxisY?: boolean;
enablePanAxisZ?: boolean;
panSpeed?: number;
}
export type FreeControlsProperties = Required<Omit<FreeControlsOptions, 'type'>>;
export interface OrbitControlsOptions {
type: OrbitControlsType;
enableAutoRotate?: boolean;
autoRotateSpeed?: number;
dampingFactor?: number;
enabled?: boolean;
enableDamping?: boolean;
enablePan?: boolean;
enableRotate?: boolean;
enableZoom?: boolean;
maxAzimuthAngle?: number;
maxDistance?: number;
maxPolarAngle?: number;
maxZoom?: number;
minAzimuthAngle?: number;
minDistance?: number;
minPolarAngle?: number;
minZoom?: number;
panSpeed?: number;
rotateSpeed?: number;
screenSpacePanning?: boolean;
target?: Vector3;
zoomSpeed?: number;
}
export type OrbitControlsProperties = Required<Omit<OrbitControlsOptions, 'type'>>;
export interface ControlsOptions {
enabled?: boolean;
minDistance?: number;
maxDistance?: number;
minZoom?: number;
maxZoom?: number;
minPolarAngle?: number;
maxPolarAngle?: number;
minAzimuthAngle?: number;
maxAzimuthAngle?: number;
boundaryFriction?: number;
boundaryEnclosesCamera?: boolean;
smoothTime?: number;
draggingSmoothTime?: number;
azimuthRotateSpeed?: number;
polarRotateSpeed?: number;
dollySpeed?: number;
truckSpeed?: number;
maxSpeed?: number;
verticalDragToForward?: boolean;
dollyToCursor?: boolean;
dollyDragInverted?: boolean;
interactiveArea?: DOMRect | {
x: number;
y: number;
width: number;
height: number;
};
colliderMeshes?: Object3D[];
infinityDolly?: boolean;
restThreshold?: number;
}