@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.2 kB
JavaScript
import{createScreenPointArray as r}from"../../../../core/screenUtils.js";import{ZoomController as t}from"../../state/controllers/global/ZoomController.js";import{ZoomController as e}from"../../state/controllers/local/ZoomController.js";import{InputHandler as o}from"../../../input/InputHandler.js";import{eventMatchesMousePointerAction as a}from"../../../input/handlers/support.js";class s extends o{constructor(r,t,e){super(!0),this._view=r,this.pointerAction=t,this.registerIncoming("drag",e,(r=>this._handleDrag(r)))}_handleDrag(o){const s=o.data;if(s.pointers.size>1)return;if(!a(o.data,this.pointerAction))return;const i=r(s.center.x,s.center.y);switch(s.action){case"start":this._cameraController&&(this._cameraController.end(),this._cameraController=null),this._view.state.isGlobal?this._cameraController=new t({view:this._view}):this._cameraController=new e({view:this._view}),this._view.state.switchCameraController(this._cameraController),this._cameraController.begin(i);break;case"update":this._cameraController&&this._cameraController.update(i);break;case"end":this._cameraController&&(this._cameraController.end(),this._cameraController=null)}o.stopPropagation()}}export{s as DragZoom};