@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.45 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{makeHandle as t}from"../../../../../core/handleUtils.js";import{screenToMapXYForManipulatedObject as i}from"../dragEventPipeline3D.js";import{ManipulatorType as e}from"../ManipulatorType.js";import{Manipulation as o}from"./Manipulation.js";import{createManipulatedMoveDragPipeline as r}from"./moveUtils.js";import{createManipulatorDragEventPipeline as a,addMapDelta as s,addScreenDelta as n}from"../../../../interactive/dragEventPipeline.js";class l extends o{constructor(t){super(),this._view=t.view,this._tool=t.tool,this._object=t.object,this._manipulator=this._object.createManipulator?.({selectable:!0,cursor:"move"}),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}forEachManipulator(t){this._manipulator&&t(this._manipulator,e.TRANSLATE_XY)}createManipulatedObjectDragPipeline(t){return r(this._object,t,(t=>this.createDragPipeline(t)))}createDragPipeline(e){if(!this._manipulator)return t();const o=this._view;return a(this._manipulator,((t,r,a,l,p)=>{const h=this._object.operations?.data.spatialReference,u=r.next((t=>h?t:null)).next(i(p,o,this._object,h)).next(s()).next(n());e(t,u,a,l,p)}))}}export{l as MoveXYObjectManipulation};