@realsee/five
Version:
Realsee Renderer SDK
67 lines (66 loc) • 2.1 kB
TypeScript
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<T extends MoveHelperAbstract = MoveHelperAbstract> extends BaseController<T> {
get moveByMouseEnable(): boolean;
protected name: string;
private startInfo?;
/** 拖拽时用于显示方向参考的直线(与 ScaleController 一致:Line + LineBasicMaterial) */
private dragGuideLine?;
private solidGuide;
private _moveByMouse;
private mouseInfo?;
private mousedownEventListenerDisposer?;
constructor(...params: ConstructorParameters<typeof BaseController<T>>);
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;
}