UNPKG

@turbox3d/event-manager

Version:

Large-scale productivity application event management library

82 lines (81 loc) 2.73 kB
import { SceneEvent } from './sceneEvent'; export declare enum CoordinateType { /** 屏幕到画布 */ ScreenToCanvas = 1, /** 屏幕到场景 */ ScreenToScene = 2, /** 画布到场景 */ CanvasToScene = 3, /** 画布到屏幕 */ CanvasToScreen = 4, /** 场景到屏幕 */ SceneToScreen = 5, /** 场景到画布 */ SceneToCanvas = 6 } export interface ViewEntity { id: string; type: symbol; [propKey: string]: any; } export interface InteractiveConfig { isClickable: boolean; isDraggable: boolean; isHoverable: boolean; isPinchable: boolean; isRotatable: boolean; isPressable: boolean; onClick: (event: SceneEvent) => void; onDBClick: (event: SceneEvent) => void; onRightClick: (event: SceneEvent) => void; onDragStart: (event: SceneEvent) => void; onDragMove: (event: SceneEvent) => void; onDragEnd: (event: SceneEvent) => void; onPinchStart: (event: SceneEvent) => void; onPinch: (event: SceneEvent) => void; onPinchEnd: (event: SceneEvent) => void; onRotateStart: (event: SceneEvent) => void; onRotate: (event: SceneEvent) => void; onRotateEnd: (event: SceneEvent) => void; onPress: (event: SceneEvent) => void; onPressUp: (event: SceneEvent) => void; onHoverIn: (event: SceneEvent) => void; onHoverOut: (event: SceneEvent) => void; getViewEntity: () => Partial<ViewEntity>; } export interface CanvasHandlers { /** 没点击到任何目标时的回调 */ onClick: (event: SceneEvent) => void; onDBClick: (event: SceneEvent) => void; onRightClick: (event: SceneEvent) => void; onDragStart: (event: SceneEvent) => void; onDragMove: (event: SceneEvent) => void; onDragEnd: (event: SceneEvent) => void; onPinchStart: (event: SceneEvent) => void; onPinch: (event: SceneEvent) => void; onPinchEnd: (event: SceneEvent) => void; onRotateStart: (event: SceneEvent) => void; onRotate: (event: SceneEvent) => void; onRotateEnd: (event: SceneEvent) => void; onPress: (event: SceneEvent) => void; onPressUp: (event: SceneEvent) => void; onPointerMove: (event: SceneEvent) => void; onPointerUp: (event: SceneEvent) => void; onWheel: (event: SceneEvent) => void; } export type InteractiveType = 'isClickable' | 'isDraggable' | 'isHoverable' | 'isPinchable' | 'isRotatable' | 'isPressable'; export interface ViewportInfo { x: number; y: number; width: number; height: number; visible: boolean; resolution?: number; } interface ICustomEvent { clientX: number; clientY: number; [key: string]: any; } export type NativeEventSet = PointerEvent | WheelEvent | Touch | ICustomEvent; export {};