claygl/typescript/plugin/OrbitControl.d.ts
2019-03-14 14:02:38 +08:00

87 lines
1.8 KiB
TypeScript

import { Node } from '../Node';
import { Vector3 } from '../math/Vector3';
import { Timeline } from '../Timeline';
import { Base } from '../core/Base';
interface IOrbitControlOption {
target?: Node;
domElement?: HTMLElement;
timeline?: Timeline;
minDistance?: number;
maxDistance?: number;
minAlpha?: number;
maxAlpha?: number;
minBeta?: number;
maxBeta?: number;
autoRotate?: boolean;
autoRotateAfterStill?: number;
autoRotateDirection?: 'cw'|'ccw';
autoRotateSpeed?: number;
damping?: number;
rotateSensitivity?: number;
zoomSensitivity?: number;
panSensitivity?: number;
}
export class OrbitControl extends Base {
constructor(option?: IOrbitControlOption);
target?: Node;
domElement?: HTMLElement;
timeline?: Timeline;
minDistance?: number;
maxDistance?: number;
minAlpha?: number;
maxAlpha?: number;
minBeta?: number;
maxBeta?: number;
autoRotateAfterStill?: number;
autoRotateDirection?: 'cw'|'ccw';
autoRotateSpeed?: number;
damping?: number;
rotateSensitivity?: number;
zoomSensitivity?: number;
panSensitivity?: number
init(): void;
dispose(): void;
getDistance(): number;
setDistance(distance: number): void;
getAlpha(): number;
setAlpha(alpha: number): void;
getBeta(): number;
setBeta(beta: number): void;
getCenter(): [number, number, number];
setCenter(center: [number, number, number]): void;
animateTo(opts: {
distance?: number;
alpha?: number;
beta?: number;
center?: [number, number, number];
duration?: number;
easing?: string|Function;
done?: () => void;
}): any;
stopAllAnimation(): void;
update(deltaTime: number): void;
}