trillion-viewer
Version:
Trillion 3D Viewer
27 lines (26 loc) • 1.22 kB
TypeScript
import { Object3D, PerspectiveCamera, Vector3 } from 'three';
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
import { ModelControls } from './utils/ModelControls';
import IPointOfView from './interfaces/point-of-view.interface';
import { CameraConstraints } from '../../../trillion-common/src/objects/camera-constraints.object';
export type IControls = {
minDistance: number;
maxDistance: number;
maxAzimuthAngle: number;
minAzimuthAngle: number;
maxPolarAngle: number;
minPolarAngle: number;
};
export interface ICameraController {
setPointOfView: (pointOfView: IPointOfView, defaultCameraConstraints: CameraConstraints, isFreeMoveCameraModeEnabled: boolean, noAnimation?: boolean) => void;
getDistance: () => number;
fitToScreen: (model: Object3D) => void;
getFitToScreenPosition: (model: Object3D, curPos: Vector3) => Vector3;
addOnStart: (callback: () => void) => void;
removeOnStart: (callback: () => void) => void;
destroy: () => void;
start: () => void;
stop: () => void;
update: () => void;
}
export declare function CameraController(camera: PerspectiveCamera, controls: ModelControls | OrbitControls): ICameraController;