/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
import{Placement as t}from"./CIMPlacements.js";function e(t,e){t[4]=e}class i{constructor(e,i=!0,r=!0,s=0){this.isClosed=!1,this.geometryCursor=null,this.geometryCursor=!i&&"esriGeometryPolygon"===e.geometryType||!r&&"esriGeometryPolyline"===e.geometryType?null:e,this.geomUnitsPerPoint=s,this.iterateMultiPath=!1,this.iteratePath=!1,this.internalPlacement=new t}next(){if(!this.geometryCursor)return null;const t=this.processMultiPath(this.geometryCursor);return this.iterateMultiPath&&t||(this.geometryCursor=null),t}processMultiPath(t){for(;this.iteratePath||t.pathIndex<t.totalSize-1;){this.iteratePath||t.nextPath(),this.iterateMultiPath=!0;const e=this.processPath(t);if(e)return e}return this.iterateMultiPath=!1,null}}class r{constructor(t,e,i,r=0){this.isClosed=!1,this.inputGeometries=t,this.acceptPolygon=e,this.acceptPolyline=i,this.geomUnitsPerPoint=r,this.iteratePath=!1,this.multiPathCursor=null}next(){for(;;){if(!this.multiPathCursor){let t=this.inputGeometries.next();for(;t&&(this.isClosed=this.acceptPolygon&&"esriGeometryPolygon"===t.geometryType||"esriGeometryEnvelope"===t.geometryType,this.multiPathCursor=t,!this.multiPathCursor);)t=this.inputGeometries.next();if(!this.multiPathCursor)return null}for(;this.iteratePath||this.multiPathCursor.nextPath();){this.multiPathCursor.seekPathStart();const t=this.processPath(this.multiPathCursor);if(t)return t}this.multiPathCursor=null}}}export{r as PathEffectCursor,i as PathTransformationCursor,e as setId};
