import { BaseController } from './BaseController'; import * as THREE from 'three'; import type { MoveHelperAbstract } from '../Helper/BaseHelper'; export declare function rayOnLine(params: { raycaster: THREE.Raycaster; line: THREE.Line3; clampToLine?: boolean; }): THREE.Vector3; export type UseFaceNormalInterface = { /** * 是否使用面的法线,默认为true */ enable?: boolean; /** * 期望对齐的方向,默认为Y轴对齐Face的法向向量,即 `{ x: 0, y: 1, z: 0 }` */ alignmentVector?: { x?: number; y?: number; z?: number; }; /** * 修正后的face normal */ fixedFaceNormal?: (face: THREE.Vector3) => THREE.Vector3; } | boolean; export declare class MoveController extends BaseController { get moveByMouseEnable(): boolean; protected name: string; private startInfo?; /** 拖拽时用于显示方向参考的直线(与 ScaleController 一致:Line + LineBasicMaterial) */ private dragGuideLine?; private solidGuide; private _moveByMouse; private mouseInfo?; private mousedownEventListenerDisposer?; constructor(...params: ConstructorParameters>); dispose(): void; /** * @description: 跟随鼠标移动 */ moveByMouse(params?: { /** 是否使用面的法线,默认为false */ useFaceNormal: UseFaceNormalInterface; }): void; /** * @description: 禁用跟随鼠标移动 */ disableMoveByMouse(): void; onIntersectionOnModelUpdate(intersection: THREE.Intersection): void; private handleMouseDown; private handleMouseUp; /** * @description: 拖动开始,找出拖的Direction */ private dragStart; private dragging; /** * 更新直线缩放,保持视觉上的恒定大小(与 ScaleController 保持一致) */ private updateDragGuideLineScale; private move; private dragEnd; private setTipsText; private setTipsPosition; }