import type { Five } from '@realsee/five'; import { BasePlugin } from '../BasePlugin'; import * as THREE from 'three'; import { CSS3DRenderer, CSS3DObject } from '../thirdParty/CSS3DRenderer.js'; import type * as PluginType from './typing'; export declare class Controller extends BasePlugin.Controller { /** 当前使用的数据 */ data?: PluginType.PluginData; /** 插件当前状态 */ state: PluginType.State; /** CSS3D 渲染器实例 */ renderer: CSS3DRenderer; scene: THREE.Scene; styleSheet: CSSStyleSheet; camera: THREE.PerspectiveCamera; cacheMap: WeakMap; private resizeObserver?; private updateState; constructor(five: Five, params?: PluginType.Params); load(data: PluginType.ServerData): Promise; createCSS3DObject: ({ id, name, innerHTML, sprite, normal, position, scalar, visible, timeout, }: PluginType.CreateCSS3DObjectType) => CSS3DObject; render: () => void; /** * 强制标脏并重新渲染所有 objects */ forceRender: () => void; private _addEventListener; private _removeEventListener; /** * 将插件 DOM 挂载到指定容器 */ appendToFiveContainer(): void; add(...object: THREE.Object3D[]): void; remove(object: THREE.Object3D): void; removeAll(): void; /** * 淡入指定的 CSS3DObject,设置 object.userData.visible = true */ fadeInObjects(...objects: THREE.Object3D[]): void; /** * 淡出指定的 CSS3DObject,设置 object.userData.visible = false */ fadeOutObjects(...objects: THREE.Object3D[]): void; private _enable; private _disable; /** * 启用插件,让插件能够响应交互 */ enable(options?: BasePlugin.BaseOptions): void; /** * 禁用插件,让插件停止响应交互 */ disable(options?: BasePlugin.BaseOptions): void; /** * 显示场景,设置 scene.visible = true */ show(options?: BasePlugin.BaseOptions): void; /** * 隐藏场景,设置 scene.visible = false */ hide(options?: BasePlugin.BaseOptions): void; /** 销毁插件,移除所有副作用 */ dispose: () => void; }