import { BaseController } from './BaseController'; import type { RotateHelperAbstract } from '../Helper/BaseHelper'; import * as THREE from 'three'; export declare class RotateController extends BaseController { protected name: string; private get rotateCenter(); private startInfo?; private removeListener?; private solidGuide; private snapGuideLines; constructor(...params: ConstructorParameters>); setRotateAngle(angle: { x?: number; y?: number; z?: number; }): void; /** * @description 通过改变欧拉角中的某一个值来改变旋转,但保持其他两个轴的旋转不变 * @param axis 要修改的轴 ('x' | 'y' | 'z') * @param angle 新的角度值(度) * @returns 新的四元数值 */ getEulerAngle(axis: 'x' | 'y' | 'z', angle: number): THREE.Quaternion; protected onApplyOriginObjectRotate(params: { quaternion: THREE.Quaternion; origin: THREE.Vector3; }): void; protected onApplyOriginObjectScale(params: { matrix: THREE.Matrix4; origin?: THREE.Vector3; }): void; /** * @description: 拖动开始,找出拖的Direction */ private dragStart; private getMatrix; private getMatrixAngle; private parseAngleByDirection; private dragging; private rotate; private dragEnd; private updateOtherHelpers; private getAngleHelper; private setAngleHelperStart; private setAngleHelperLength; private setTipsAngle; private setTipsPosition; /** * 从 quaternion 提取绕指定轴的旋转角度 * 通过投影分解,不受万向锁影响 */ private extractAxisAngle; /** * 显示吸附辅助线:在旋转平面上显示两条轴线 */ private showSnapGuideLines; /** * 移除吸附辅助线 */ private removeSnapGuideLines; }