UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.13 kB
import{clone as t}from"../../../core/lang.js";import{isExtent as s,isPolygon as e,isPolyline as i,isMultipoint as o,isPoint as f}from"../../../geometry/support/jsonUtils.js";class n{static local(){return null===n.instance&&(n.instance=new n),n.instance}execute(t,s,e,i,o){return new r(t,s,e)}}n.instance=null;class r{constructor(t,s,e){this._inputGeometries=t,this._offsetX=void 0!==s.offsetX?s.offsetX*e:0,this._offsetY=void 0!==s.offsetY?-s.offsetY*e:0}next(){let n=this._inputGeometries.next();for(;n;){if(s(n))return{xmin:n.xmin+this._offsetX,xmax:n.xmax+this._offsetX,ymin:n.ymin+this._offsetY,ymax:n.ymax+this._offsetY};if(e(n)){const s=t(n);return this._moveMultipath(s.rings,this._offsetX,this._offsetY),s}if(i(n)){const s=t(n);return this._moveMultipath(s.paths,this._offsetX,this._offsetY),s}if(o(n)){const s=t(n);return this._movePath(s.points,this._offsetX,this._offsetY),s}if(f(n))return{x:n.x+this._offsetX,y:n.y+this._offsetY};n=this._inputGeometries.next()}return null}_moveMultipath(t,s,e){if(t)for(const i of t)this._movePath(i,s,e)}_movePath(t,s,e){if(t)for(const i of t)i[0]+=s,i[1]+=e}}export{n as EffectMove};