/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{i as n,G as s,f as r,e as i,d as u}from"../../../chunks/Geometry.js";import{P as o,a as m,M as l}from"../../../chunks/MultiPathImpl.js";import"../../../chunks/SpatialReference.js";import"../../../chunks/Envelope.js";import"../../../chunks/Point2D.js";function c(e,t){if(n(e.getGeometryType())){const n=t;return e.getImpl().setIsSimple(n.flags,n.tolerance),!0}return!1}class p{getOperatorType(){return 10701}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,n){return new a(e,t,n)}}class a extends t{constructor(e,t,n){super(),this.m_results=[],this.m_index=0,this.m_progressTracker=t,this.m_inputGeoms=e,this.m_descr=n}tock(){return!0}getRank(){return 1}next(){if(this.m_inputGeoms&&(this.combineGeometries(this.m_descr),this.m_descr=null,this.m_inputGeoms=null),this.m_index<this.m_results.length){const e=this.m_results[this.m_index];return this.m_index++,e}return null}getGeometryID(){return this.m_index-1}combineGeometries(e){let t=s.enumUnknown,n=null,p=null,a=null;for(let c=this.m_inputGeoms.next();null!==c;c=this.m_inputGeoms.next()){if(t=c.getGeometryType(),t===s.enumPolygon||t===s.enumEnvelope){if(a||(a=new o({vd:c.getDescription()})),t===s.enumPolygon){a.add(c,!1);continue}if(t===s.enumEnvelope){a.addEnvelope(c,!1);continue}}else if(r(t)||t===s.enumPolyline){if(p||(p=new m({vd:c.getDescription()})),t===s.enumPolyline){p.add(c,!1);continue}if(r(t)){p.addSegment(c,!0);continue}}else if(i(t)){if(n||(n=new l({vd:c.getDescription()})),t===s.enumPoint){n.add(c);continue}if(t===s.enumMultiPoint){n.addPoints(c,0,-1);continue}}u("unsupported type")}null!==e&&(null!==n&&c(n,e),null!==p&&c(p,e),null!==a&&c(a,e)),n&&this.m_results.push(n),p&&this.m_results.push(p),a&&this.m_results.push(a)}}const h=new p;function d(t){const n=h.executeMany(new e(t),null,null);return Array.from(n)}function f(){return h.supportsCurves()}export{d as executeMany,f as supportsCurves};
