UNPKG

@realsee/dnalogel

Version:
154 lines (153 loc) 4.79 kB
import type { Five } from '@realsee/five'; import * as BasePlugin from '../base/BasePlugin'; import type * as THREE from 'three'; import { Object3DHelper } from '../shared-utils/Object3DHelper/index'; import type { Object3DHelperState, ObjectHelperControllers, PositionFrom, ScaleCallback, ScalePosition } from '../shared-utils/Object3DHelper/typings'; import type { HelperConfig, HelperOffset, Object3DHelperPluginEventMap, Object3DHelperPluginState } from './typings'; export declare const PLUGIN = "Object3DHelperPlugin"; export type AddObject3DHelperConfig = { /** * @description 辅助坐标轴的位置,基于 object local 坐标系。 * ```markdown * 'boundingBox': 物体 boundingBox 的中心 * 'boundingSphere': 物体 boundingSphere 的中心 * `THREE.Vector3`: 指定 Vector3 * `(object3D) => THREE.Vector3`: 指定 Vector3 * ``` * @default 'objectPosition' */ positionFrom?: PositionFrom; /** * @description 辅助坐标轴的位置偏移量 */ offset?: HelperOffset; /** * @description 辅助坐标轴的y轴方向(绿色) */ yAxis?: THREE.Vector3 | (() => THREE.Vector3); /** * @description 辅助坐标轴的x轴方向(红色) */ xAxis?: THREE.Vector3 | (() => THREE.Vector3); /** * @description 辅助坐标轴的z轴方向(蓝色) */ zAxis?: THREE.Vector3 | (() => THREE.Vector3); /** * @description 位移的配置 */ moveHelper?: HelperConfig<{ /** * @description 是否开启X轴位移功能(红色) */ xArrowEnable?: boolean; /** * @description 是否开启Y轴位移功能(绿色) */ yArrowEnable?: boolean; /** * @description 是否开启Z轴位移功能(蓝色) */ zArrowEnable?: boolean; }>; /** * @description 旋转的配置 */ rotateHelper?: HelperConfig<{ /** * @description 是否开启X轴旋转功能(红色) */ yzCircleEnable?: boolean; /** * @description 是否开启Y轴旋转功能(绿色) */ xzCircleEnable?: boolean; /** * @description 是否开启Z轴旋转功能(蓝色) */ xyCircleEnable?: boolean; /** * @description 旋转时的角度提示 */ angleTipsEnable?: boolean; }>; /** * @description 缩放的配置 */ scaleHelper?: HelperConfig<{ /** * @description 缩放 handlers 的位置 */ positions?: Array<ScalePosition> | (() => Array<ScalePosition>); /** * @description 缩放 handler 被拖动后的回调 */ scaleCallback?: ScaleCallback; }>; /** * @description 物体包围盒 */ boundingBoxHelper?: HelperConfig; }; export declare class Object3DHelperController extends BasePlugin.Controller<Object3DHelperPluginState, Object3DHelperPluginEventMap> { name: string; state: Object3DHelperState; objectHelperMap: Map<THREE.Object3D, { helper: Object3DHelper; disposers: (() => any)[]; }>; private css3DObjectParentMap; private css3DObjectModeMap; private css3DRender; constructor(five: Five); /** * @description Show guide line */ show(options?: { userAction?: boolean; }): Promise<void>; /** * @description Hide guide line */ hide(options?: { userAction?: boolean; }): Promise<void>; /** * @description Enable */ enable(options?: { userAction?: boolean; }): void; /** * @description Disable */ disable(options?: { userAction?: boolean; }): void; /** * @description Dispose */ dispose(): void; setState(state: Partial<Object3DHelperState>, options?: { userAction?: boolean; } & Record<string, any>): void; getObject3DHelper(object3D: THREE.Object3D): { helper: Object3DHelper; disposers: (() => any)[]; }; /** * @description 添加 helper * @param { THREE.Object3D } object3D 要添加helper的物体 * @param { boolean } config.moveHelper 位移helper * @param { boolean } config.rotateHelper 旋转helper * @param { boolean } config.scaleHelper 缩放helper */ 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; }