@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.46 kB
JavaScript
import{isSome as t}from"../../../../../core/maybe.js";import{screenToMapXYForGraphic as i}from"../dragEventPipeline3D.js";import{ManipulatorType as e}from"../ManipulatorType.js";import{Manipulation as r}from"./Manipulation.js";import{createGraphicMoveDragPipeline as a}from"./moveUtils.js";import{createManipulatorDragEventPipeline as o,addMapDelta as s,addScreenDelta as n}from"../../../../interactive/dragEventPipeline.js";import{GraphicManipulator as p}from"../../../../interactive/GraphicManipulator.js";class l extends r{constructor(t){super(),this._view=t.view,this._tool=t.tool,this._graphicState=t.graphicState,this._createManipulator(),this.forEachManipulator((t=>this._tool.manipulators.add(t)))}destroy(){this.forEachManipulator((t=>{this._tool.manipulators.remove(t),t.destroy()})),this._tool=null,this._view=null,this._manipulator=null,this._graphicState=null}forEachManipulator(t){t(this._manipulator,e.TRANSLATE_XY)}createGraphicDragPipeline(t){return a(this._graphicState,t,(t=>this.createDragPipeline(t)),this._view.state.viewingMode)}createDragPipeline(e){const r=this._view,a=this._graphicState.graphic,p=t(a.geometry)?a.geometry.spatialReference:null;return o(this._manipulator,((t,o,l,h,c)=>{const m=o.next(i(c,r,a,p)).next(s()).next(n());e(t,m,l,h,c)}))}_createManipulator(){const t=this._view,i=this._graphicState.graphic;this._manipulator=new p({graphic:i,view:t,selectable:!0,cursor:"move"})}}export{l as MoveXYGraphicManipulation};