@turbox3d/command-manager
Version:
Large-scale productivity application command management library
152 lines (130 loc) • 3.83 kB
text/typescript
import { ViewEntity, SceneEvent, EventType } from '@turbox3d/event-manager';
import { SceneTool } from './type';
class Interaction {
protected onClick(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onDBClick(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onRightClick(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onDragStart(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onDragMove(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onDragEnd(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onPinchStart(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onPinch(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onPinchEnd(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onRotateStart(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onRotate(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onRotateEnd(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onPress(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onPressUp(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onHoverIn(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onHoverOut(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onCarriageMove(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
protected onCarriageEnd(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
/**
* 画布的缩放事件
*/
protected onWheel(entity: ViewEntity, event: SceneEvent, tools: SceneTool) {
//
}
/**
* 将交互事件分发给自身的回调函数处理
*/
protected distributeToSelf(eventType: EventType, ev: ViewEntity, event: SceneEvent, tools: SceneTool) {
switch (eventType) {
case EventType.onClick:
this.onClick(ev, event, tools);
break;
case EventType.onDBClick:
this.onDBClick(ev, event, tools);
break;
case EventType.onRightClick:
this.onRightClick(ev, event, tools);
break;
case EventType.onDragStart:
this.onDragStart(ev, event, tools);
break;
case EventType.onDragMove:
this.onDragMove(ev, event, tools);
break;
case EventType.onDragEnd:
this.onDragEnd(ev, event, tools);
break;
case EventType.onPinchStart:
this.onPinchStart(ev, event, tools);
break;
case EventType.onPinch:
this.onPinch(ev, event, tools);
break;
case EventType.onPinchEnd:
this.onPinchEnd(ev, event, tools);
break;
case EventType.onRotateStart:
this.onRotateStart(ev, event, tools);
break;
case EventType.onRotate:
this.onRotate(ev, event, tools);
break;
case EventType.onRotateEnd:
this.onRotateEnd(ev, event, tools);
break;
case EventType.onPress:
this.onPress(ev, event, tools);
break;
case EventType.onPressUp:
this.onPressUp(ev, event, tools);
break;
case EventType.onHoverIn:
this.onHoverIn(ev, event, tools);
break;
case EventType.onHoverOut:
this.onHoverOut(ev, event, tools);
break;
case EventType.onCarriageMove:
this.onCarriageMove(ev, event, tools);
break;
case EventType.onCarriageEnd:
this.onCarriageEnd(ev, event, tools);
break;
case EventType.onWheel:
this.onWheel(ev, event, tools);
break;
default: break;
}
}
}
export { Interaction };