import { List } from "../longan/gs.collections"; import { DWcs } from "../longan/gs.math"; import { ViewerEvent } from "../viewer"; import { CameraOperateState, MoveButtonType, ViewerOperator } from "./viewerOperator"; export declare enum LButtonState { select = 0, translation = 1, rotation = 2, scale = 3, zoom = 4 } export declare enum ViewType { near = 0, normal = 1 } export declare class CameraMouse extends ViewerOperator { typeName: string; lButtonDown: List<(...params: any[]) => void>; lButtonUp: List<(...params: any[]) => void>; mouseWheel: List<(...params: any[]) => void>; protected state: CameraOperateState; protected radius: number; protected _moveButtonType: MoveButtonType; protected _rotationDisabled: boolean; protected rotating: boolean; protected mButtonDowned: boolean; protected lButtonDowned: boolean; protected rButtonDowned: boolean; protected shiftKeyDowned: boolean; protected downWorldPos: Float32Array; protected downWinPos: Float32Array; protected downPixelPos: Float32Array; protected centerPos: Float64Array; protected downSpherePos: Float32Array; protected moveSpherePos: Float32Array; protected downWcs: DWcs; protected downSelectedDist: number; protected downCameraLength: any; protected downUnitLength: number; protected cullingThreshold: number; protected radiusDist: number; private scaleEnd; protected zoomTimeout: any; private zoomStepRatio; private preZoomStepRatio; private initialDistance; protected _lButtonSate: LButtonState; winPos: any; downPos: Float64Array; cameraTarget: Float64Array; viewType: ViewType; setCetnerByHover: boolean; lbuttonDownWinPos: any; lbuttonDownPixelPos: any; lbuttonMoveFlag: boolean; minScaleValue: number; mButtonPerspectiveAsyn: boolean; rButtonPerspectiveAsyn: boolean; /** * 滚轮缩放方向 * true = 滚轮往前放大,往后缩小 * false = 滚轮往后放大,往前缩小 */ mouseWheelDirection: boolean; /** * 正在滚轮(指还没松开滚轮.) */ protected onMouseWheeling: boolean; /** * 鼠标控制镜头的灵敏度,用于右键旋转和滚轮缩放(0 - 100) */ moveSensitivity: number; private moveSensitivityRangeMax; private moveSensitivityFactor; protected _lastSelPos: any; _visualTarget: any; static drawRotatePointSVG: List<(point: Float64Array) => void>; static clearRotatePointSVG: List<() => void>; static lButtonDown: List<(cm: CameraMouse, e: ViewerEvent) => void>; static lButtonUp: List<(cm: CameraMouse, e: ViewerEvent) => void>; static lButtonDownAndMove: List<(cm: CameraMouse, e: ViewerEvent) => void>; static rButtonDown: List<(cm: CameraMouse, e: ViewerEvent) => void>; static rButtonUp: List<(cm: CameraMouse, e: ViewerEvent) => void>; static rButtonDownAndMove: List<(cm: CameraMouse, e: ViewerEvent) => void>; static mButtonDown: List<(cm: CameraMouse, e: ViewerEvent) => void>; static mButtonUp: List<(cm: CameraMouse, e: ViewerEvent) => void>; static mButtonDownAndMove: List<(cm: CameraMouse, e: ViewerEvent) => void>; static mouseWheel: List<(cm: CameraMouse, e: ViewerEvent) => void>; static mouseWheelStop: List<(cm: CameraMouse, e: ViewerEvent) => void>; get lButtonSate(): LButtonState; set lButtonSate(value: LButtonState); constructor(); init(): void; fina(): void; moveButtonType(type?: MoveButtonType): MoveButtonType; rotationDisabled(disable?: boolean): boolean; onLButtonDown(e: ViewerEvent): void; onLButtonUp(e: ViewerEvent): void; onRButtonDown(e: ViewerEvent): void; onRButtonUp(e: ViewerEvent): void; onMButtonDown(e: ViewerEvent): void; onMButtonUp(e: ViewerEvent): void; onWindowKeyDown(e: ViewerEvent): void; onWindowKeyUp(e: ViewerEvent): void; setLightModelExtent(pixel: any): void; computeDistance(): void; setCameraWheelSpeed(factor: number, target: Float64Array, min: Float64Array, max: Float64Array): number; onMouseWheel(e: ViewerEvent): void; onMouseWheel2(e: ViewerEvent): void; onMouseWheelByLButton(e: ViewerEvent): void; onLButtonDownAndMove(e: ViewerEvent): void; onMButtonDownAndMove(e: ViewerEvent): void; onRButtonDownAndMove(e: ViewerEvent): void; getSpherePoint(e: ViewerEvent): Float32Array; setCameraCenter(e: ViewerEvent, pixelPos: any): void; /** * 0-100 映射到 1 / sensitivityFactor 和 1 * sensitivityFactor区间 * @returns */ getMoveSensity(): number; }