@egjs/view3d
Version:
Fast & Customizable glTF 3D model viewer, packed with full of features!
62 lines (61 loc) • 2.04 kB
TypeScript
import * as THREE from "three";
import View3D from "../View3D";
export interface AnnotationOptions {
element: HTMLElement | null;
focus: number[];
focusDuration: number;
focusOffset: number[];
baseFov: number;
baseDistance: number | null;
}
declare abstract class Annotation {
abstract position: THREE.Vector3;
protected _view3D: View3D;
protected _element: HTMLElement | null;
protected _focus: number[];
protected _focusDuration: number;
protected _focusOffset: number[];
protected _baseFov: number;
protected _baseDistance: number | null;
protected _enabled: boolean;
protected _hidden: boolean;
protected _focusing: boolean;
protected _tooltipSize: THREE.Vector2;
get element(): HTMLElement;
get renderable(): boolean;
get focusing(): boolean;
get focusPose(): number[];
get focusDuration(): number;
get focusOffset(): number[];
get baseFov(): number;
get baseDistance(): number | null;
get hidden(): boolean;
set focusDuration(val: number);
set baseFov(val: number);
set baseDistance(val: number | null);
constructor(view3D: View3D, { element, focus, focusDuration, focusOffset, baseFov, baseDistance }?: Partial<AnnotationOptions>);
abstract focus(): Promise<void>;
abstract unfocus(): void;
abstract toJSON(): Record<string, any>;
destroy(): void;
resize(): void;
render({ screenPos, screenSize, renderOrder }: {
position: THREE.Vector3;
screenPos: THREE.Vector2;
screenSize: THREE.Vector2;
renderOrder: number;
}): void;
show(): void;
hide(): void;
setOpacity(opacity: number): void;
enableEvents(): void;
disableEvents(): void;
handleUserInput(): void;
protected _getFocus(): THREE.Vector3;
protected _getPivotOffset(): THREE.Vector3;
protected _onClick: () => void;
protected _onWheel: (evt: WheelEvent) => void;
protected _onFocus(): void;
protected _onUnfocus(): void;
}
export default Annotation;