import type { Five } from '@realsee/five'; import { BasePlugin } from '../BasePlugin'; import * as THREE from 'three'; import type { Object3DHelperEventMap, Object3DHelperState, ObjectHelperControllers, PositionFrom } from './typing'; import type { HelperConfig, HelperOffset, Object3DHelperPluginEventMap, Object3DHelperPluginState } from './typing'; import { Subscribe } from '@realsee/five'; export declare const PLUGIN = "Object3DHelperPlugin"; export type AddObject3DHelperConfig = { positionFrom?: PositionFrom; offset?: HelperOffset; /** Helpers 的世界坐标偏移量 */ helperOffset?: THREE.Vector3; yAxis?: THREE.Vector3 | (() => THREE.Vector3); xAxis?: THREE.Vector3 | (() => THREE.Vector3); zAxis?: THREE.Vector3 | (() => THREE.Vector3); moveHelper?: HelperConfig<{ xArrowEnable?: boolean; yArrowEnable?: boolean; zArrowEnable?: boolean; }>; /** 是否展示 MoveHelper 拖拽时的坐标提示,默认 false */ moveHelperTips?: boolean; rotateHelper?: HelperConfig<{ yzCircleEnable?: boolean; xzCircleEnable?: boolean; xyCircleEnable?: boolean; angleTipsEnable?: boolean; }>; boundingBoxHelper?: HelperConfig; }; export declare class Object3DHelper { controllers: ObjectHelperControllers; state: Object3DHelperState; hooks: Subscribe; constructor(controllers?: ObjectHelperControllers); show(options?: { userAction?: boolean; }): void; hide(options?: { userAction?: boolean; }): void; enable(options?: { userAction?: boolean; }): void; disable(options?: { userAction?: boolean; }): void; dispose(): void; setState(state: Partial, _options?: { userAction?: boolean; }): void; addControllers(controllers: ObjectHelperControllers): void; initialHelperMatrix(): void; private handleEnable; private handleVisible; private handleDispose; private everyControllerDo; } export declare class Controller extends BasePlugin.Controller, any, any> { name: string; data?: any; state: Object3DHelperState; objectHelperMap: Map any)[]; helperGroup: THREE.Group; }>; constructor(five: Five); show(options?: { userAction?: boolean; }): Promise; hide(options?: { userAction?: boolean; }): Promise; enable(options?: { userAction?: boolean; }): void; disable(options?: { userAction?: boolean; }): void; dispose(): void; load(_data: any): Promise; setState(state: Partial, options?: { userAction?: boolean; } & Record): void; getObject3DHelper(object3D: THREE.Object3D): { helper: Object3DHelper; disposers: (() => any)[]; helperGroup: THREE.Group; } | undefined; addObject3DHelper(object3D: THREE.Object3D, paramsConfig?: AddObject3DHelperConfig): ObjectHelperControllers | undefined; removeObject3DHelper(object3D: THREE.Object3D): void; private handleEnable; private handleVisible; private handleDispose; private everyHelperDo; private actionIfStateIsEnabled; private getConfig; }