UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 968 B
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{GeometryCursor as t}from"../../geometry/GeometryCursor.js";import{GeometryType as e,TileClipper as o}from"../../geometry/support/TileClipper.js";const r=512;let n;class s{constructor(t){this._geometry=t}next(){const t=this._geometry;return this._geometry=null,t}}function i(s,i){n||(n=new o(0,0,0,1));const y="esriGeometryPolygon"===s.geometryType,m=y?e.Polygon:e.LineString,l=y?3:2;let c,p;for(n.reset(m),n.setPixelMargin(i+1),n.setExtent(r);s.nextPath();)if(!(s.pathSize<l)){for(s.nextPoint(),c=s.x,p=-s.y,n.moveTo(c,p);s.nextPoint();)c=s.x,p=-s.y,n.lineTo(c,p);y&&n.close()}const f=n.result(!1);if(f){const e=t.createEmptyOptimizedCIM(s.geometryType);for(const t of f){e.startPath();for(const o of t)e.pushXY(o.x,-o.y)}return e.reset(),e}return null}export{s as SimpleEffectCursor,i as clipCursorToTileExtent};