diff --git a/types/orbit_controls.d.ts b/types/orbit_controls.d.ts new file mode 100644 index 0000000..98c5dea --- /dev/null +++ b/types/orbit_controls.d.ts @@ -0,0 +1,57 @@ +import * as THREE from "three"; +import { SkinViewer } from "./viewer"; + +export class OrbitControls { + + public readonly object: THREE.Camera; + public readonly domElement: HTMLElement | HTMLDocument; + + public enabled: boolean; + public target: THREE.Vector3; + + public minDistance: number; + public maxDistance: number; + + public minZoom: number; + public maxZoom: number; + + public minPolarAngle: number; + public maxPolarAngle: number; + + public minAzimuthAngle: number; + public maxAzimuthAngle: number; + + public enableDamping: boolean; + public dampingFactor: number; + + public enableZoom: boolean; + public zoomSpeed: number; + + public enableRotate: boolean; + public rotateSpeed: number; + + public enablePan: boolean; + public keyPanSpeed: number; + + public autoRotate: boolean; + public autoRotateSpeed: number; + + public enableKeys: boolean; + public keys: { LEFT: number, UP: number, RIGHT: number, BOTTOM: number }; + + public mouseButtons = { ORBIT: THREE.MOUSE, ZOOM: THREE.MOUSE, PAN: THREE.MOUSE }; + + constructor(object: THREE.Camera, domElement: HTMLElement); + + public getPolarAngle(): number; + public getAzimuthalAngle(): number; + + public saveState(): void; + public reset(): void; + + public update(): void; + + public dispose(): void; +} + +export function createOrbitControls(skinViewer: SkinViewer): OrbitControls; diff --git a/types/skinview3d.d.ts b/types/skinview3d.d.ts index 43581bc..befec93 100644 --- a/types/skinview3d.d.ts +++ b/types/skinview3d.d.ts @@ -1,3 +1,4 @@ export * from "./model"; export * from "./animation"; export * from "./viewer"; +export * from "./orbit_controls";