@realsee/five
Version:
Realsee Renderer SDK
83 lines (82 loc) • 2.67 kB
TypeScript
import { Five, Camera } from '@realsee/five';
import { BasePlugin } from '../BasePlugin';
import type * as PluginType from './typing';
import * as THREE from "three";
import { OrbitControls } from '../thirdParty/OrbitControls.js';
import { CSS3DRenderer } from '../thirdParty/CSS3DRenderer.js';
import { RoundedBoxGeometry } from './RoundedBoxGeometry';
export declare class Controller extends BasePlugin.Controller<PluginType.State, PluginType.EventMap, PluginType.ServerData, PluginType.PluginData> {
/** 当前使用的数据 */
data?: PluginType.PluginData;
/** 插件当前状态 */
state: PluginType.State;
/** config 的原始值 */
private _config;
camera: Camera;
scene: THREE.Scene;
renderer: THREE.WebGLRenderer;
css3drenderer: CSS3DRenderer;
ambientLight: THREE.AmbientLight;
wrapper: HTMLDivElement;
private arrows;
private arrowLeft;
private arrowRight;
private arrowFront;
private arrowBack;
private arrowTop;
private arrowBottom;
private mc?;
private cameraAnimation?;
private cylinder;
private spherical;
private dragging;
private style;
directionalLight: THREE.DirectionalLight;
box: THREE.Mesh<RoundedBoxGeometry, THREE.MeshPhongMaterial>;
faces: THREE.Group;
controls?: OrbitControls;
get config(): {
orthoView: boolean;
fixedLongitude: number;
};
private updateState;
constructor(five: Five, params?: PluginType.Params);
appendTo(container: HTMLElement): void;
init(): void;
initDom(): void;
bindEvents(): void;
unbindEvents(): void;
orient: ({ longitude, latitude }: {
longitude?: number;
latitude?: number;
}) => void;
private updateByCamera;
private updateArrows;
private handleArrowsVisible;
private onRenderFrame;
private onTapGesture;
private onFiveWantsGesture;
private onFiveModeChange;
private onCameraUpdate;
private onPanStart;
private onMouseMove;
private onPanEnd;
/** 更改插件 State */
setState(state: Partial<PluginType.State>, options?: BasePlugin.BaseOptions): void;
private initLights;
private initFaces;
private initControls;
load(data: PluginType.ServerData): Promise<void>;
private _enable;
private _disable;
/**
* 启用插件,让插件能够响应交互
*/
enable(options?: BasePlugin.BaseOptions): void;
/**
* 禁用插件,让插件停止响应交互
*/
disable(options?: BasePlugin.BaseOptions): void;
/** 销毁插件,移除所有副作用,销毁后将不响应任何 API */
dispose: () => void;
}