@arcgis/core 6.0.0-next.15 → 6.0.0-next.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/analysis/LineOfSightAnalysis.d.ts +49 -32
  2. package/analysis/LineOfSightAnalysisObserver.d.ts +19 -3
  3. package/analysis/LineOfSightAnalysisTarget.d.ts +19 -3
  4. package/analysis/Viewshed.d.ts +23 -3
  5. package/analysis/ViewshedAnalysis.d.ts +33 -13
  6. package/arcade/geometry/operatorsWorkerConnection.js +1 -1
  7. package/assets/esri/core/workers/RemoteClient.js +1 -1
  8. package/assets/esri/core/workers/chunks/00d66e3fba5ab4d2aa3c.js +1 -0
  9. package/assets/esri/core/workers/chunks/{d994bcf0a65d1c07160f.js → 0320cbd825f9a4222042.js} +1 -1
  10. package/assets/esri/core/workers/chunks/14d5d219e7fe017f23f0.js +1 -0
  11. package/assets/esri/core/workers/chunks/164c8eeefa8232b2b191.js +2 -0
  12. package/assets/esri/core/workers/chunks/164e74d586297946a717.js +1 -0
  13. package/assets/esri/core/workers/chunks/1967b9c96045a5802d08.js +1 -0
  14. package/assets/esri/core/workers/chunks/{1bca39e0e651426bdbb5.js → 1b1d3f6916d2cb751435.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{ed6e9d7f71bfd2691717.js → 1c77de1e79860f8d2228.js} +1 -1
  16. package/assets/esri/core/workers/chunks/1e40a26dcce4d1dadc28.js +1 -0
  17. package/assets/esri/core/workers/chunks/{261fea092ee7d27608a0.js → 20a2124cbe43e5527c40.js} +1 -1
  18. package/assets/esri/core/workers/chunks/237a1f68a0efbfe5b77c.js +1 -0
  19. package/assets/esri/core/workers/chunks/{3418877328f4f0830300.js → 24dac4970526a4e0ae63.js} +1 -1
  20. package/assets/esri/core/workers/chunks/26ceb0ff8d93dbb9b84f.js +1 -0
  21. package/assets/esri/core/workers/chunks/2853606099602f73d379.js +1 -0
  22. package/assets/esri/core/workers/chunks/2981e904ab62f3ed80d0.js +2 -0
  23. package/assets/esri/core/workers/chunks/2acf2952cef69e382a35.js +1 -0
  24. package/assets/esri/core/workers/chunks/32cc59e126df8c96a0cf.js +2 -0
  25. package/assets/esri/core/workers/chunks/{4df6cb1bee5d0720a43e.js → 34e0a8a3a2beea50f4f5.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{481589c3eddad6e026ad.js → 369780276b2755361f7d.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{1e0d2715d603f48a7e0b.js → 370aad23df597db80d65.js} +1 -1
  28. package/assets/esri/core/workers/chunks/3e30b96a8c75bd5b9ae2.js +1 -0
  29. package/assets/esri/core/workers/chunks/{25f19fc929f25ddd628c.js → 42753cf4965a94bc91ca.js} +1 -1
  30. package/assets/esri/core/workers/chunks/42d44c7d532df5ee70e9.js +1 -0
  31. package/assets/esri/core/workers/chunks/42e985a576d7aaeed0cf.js +1 -0
  32. package/assets/esri/core/workers/chunks/{6400446b7615b97c3521.js → 45f826554499c38968c6.js} +1 -1
  33. package/assets/esri/core/workers/chunks/48cc58890fddbcf69cef.js +1 -0
  34. package/assets/esri/core/workers/chunks/494bd434fee9032e1d02.js +1 -0
  35. package/assets/esri/core/workers/chunks/{33e4ff228a8c81b99022.js → 4abd3753cd9b80e4d937.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{b564ec4e03478f5659db.js → 4c240ca50f70bf30813f.js} +1 -1
  37. package/assets/esri/core/workers/chunks/4c389472b8cdb0c55154.js +1 -0
  38. package/assets/esri/core/workers/chunks/4e4f747de424941a0bfa.js +1 -0
  39. package/assets/esri/core/workers/chunks/{70d3055f15d8b0cf4074.js → 532e9cda8ac3601d8892.js} +1 -1
  40. package/assets/esri/core/workers/chunks/5529831dd891382c79df.js +1 -0
  41. package/assets/esri/core/workers/chunks/{953ba13299e7aa92c1a0.js → 564565246dae080f5e6c.js} +1 -1
  42. package/assets/esri/core/workers/chunks/576248e9ae2654569420.js +1 -0
  43. package/assets/esri/core/workers/chunks/{2145a512d269d64036b0.js → 58c3ae6030def2ed5f31.js} +1 -1
  44. package/assets/esri/core/workers/chunks/5a19a9c3e01d3d415188.js +1 -0
  45. package/assets/esri/core/workers/chunks/5a830bc35adbedd33783.js +1 -0
  46. package/assets/esri/core/workers/chunks/{eb04e1717a1002cda3ab.js → 5b91e2dffdc84c006539.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{aeaaff7a4b1a99540f52.js → 5cb26bbaa08114aec5ce.js} +1 -1
  48. package/assets/esri/core/workers/chunks/603fdbbe9534c614928f.js +1 -0
  49. package/assets/esri/core/workers/chunks/{4e6f40cbdb8c508e6df1.js → 60f92eb03c6e17ab4747.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{67ebc5a3d46b254b725c.js → 612345f17f5eeb99ea8f.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{1b077c92345ffb5916c2.js → 65c98f3449044fa4fd79.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{2bd4ee083ca4ad221f8b.js → 65cb5e39c467a35621ca.js} +1 -1
  53. package/assets/esri/core/workers/chunks/661c6324529dd17b297e.js +1 -0
  54. package/assets/esri/core/workers/chunks/67a35155b8b4d36f171e.js +1 -0
  55. package/assets/esri/core/workers/chunks/68dd1fd2025c7125ead1.js +1 -0
  56. package/assets/esri/core/workers/chunks/{89e76de5ae3328d821a4.js → 69f6d5997b8ff1326e39.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{ae31fd416bbb41a81392.js → 6ad309154fe84210d23c.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{a40b6d8b5c73e06e14d4.js → 6c255c029d67423e4dac.js} +1 -1
  59. package/assets/esri/core/workers/chunks/7446d0dfebf93e86c098.js +1 -0
  60. package/assets/esri/core/workers/chunks/{688f2dbf784e66082308.js → 74c866e0b66e61751861.js} +1 -1
  61. package/assets/esri/core/workers/chunks/784d6c6949284ed6e10b.js +1 -0
  62. package/assets/esri/core/workers/chunks/{3ffda5bf0b91700dc308.js → 78643f116677950ea29a.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{916b363c342b61ba5461.js → 787c1a8bda7d745633f2.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{e2190361247f35b02b32.js → 7b5cd150a4d0139850be.js} +1 -1
  65. package/assets/esri/core/workers/chunks/7bbfe9ff352afc566367.js +1 -0
  66. package/assets/esri/core/workers/chunks/7d2cbc767c336d15e4d5.js +1 -0
  67. package/assets/esri/core/workers/chunks/{ac5a6603f7fa78d3e4c8.js → 7e8611cb709f105946f5.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{05cd33d41d91f8d09633.js → 7fb7493f483cd9878bfa.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{590e6c70206122e4cc3c.js → 844eedda8f749972f707.js} +2 -2
  70. package/assets/esri/core/workers/chunks/{acfa03c65ba3ca6c5685.js → 8715661a838361d4211a.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{601e1d020b8115497944.js → 8a485130781b49dbf608.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{0ccab50877b24f862d6e.js → 8ac2098ecdc40ad41055.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{a655ebdb4bf0660615a2.js → 8b4e9fd88c0c313416d4.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{4e544de61f07ca660236.js → 8c12269d26f5a4c753cb.js} +1 -1
  75. package/assets/esri/core/workers/chunks/{46b4fb6a7fe4877b0efc.js → 94baa354e50c03b82b25.js} +2 -2
  76. package/assets/esri/core/workers/chunks/9503eedfdda55fc5adab.js +1 -0
  77. package/assets/esri/core/workers/chunks/950d4578dc450467404c.js +1 -0
  78. package/assets/esri/core/workers/chunks/{68be3fb88ca61f82fb90.js → 95dbbddac6581b9d671f.js} +1 -1
  79. package/assets/esri/core/workers/chunks/98be2f621801e230aa01.js +1 -0
  80. package/assets/esri/core/workers/chunks/999c23da883eb11cb29e.js +1 -0
  81. package/assets/esri/core/workers/chunks/9b6929faf649e81265fb.js +1 -0
  82. package/assets/esri/core/workers/chunks/9d61740ef8bdcc162be1.js +1 -0
  83. package/assets/esri/core/workers/chunks/{fafb92ca2c5e4b0b2c23.js → a09d2e1e2540921e4717.js} +1 -1
  84. package/assets/esri/core/workers/chunks/a35c69a4751d28c39907.js +1 -0
  85. package/assets/esri/core/workers/chunks/{3b3e519f15ed52c83f0c.js → a49fe94933b65b4b64f8.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{1819c45655c836b9a8d7.js → a4d3944700f1cc240176.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{ec8b7476eac4718eb0ac.js → a504a5e06cb89a620799.js} +1 -1
  88. package/assets/esri/core/workers/chunks/a596779eaeec7310671d.js +1 -0
  89. package/assets/esri/core/workers/chunks/{d5d0fe8e198ff5a902ee.js → a5c8f9f5be4ef5063b42.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{900181f68449d8f82eeb.js → aa1ac7954e4f0fefe15b.js} +1 -1
  91. package/assets/esri/core/workers/chunks/{90bdf86f553e2742d67c.js → ab1660f5f8a5268c2fac.js} +1 -1
  92. package/assets/esri/core/workers/chunks/ac24b4370dc7194a3107.js +1 -0
  93. package/assets/esri/core/workers/chunks/{b8337492e2b753aefac4.js → ace41659a5ca0e5abfc3.js} +1 -1
  94. package/assets/esri/core/workers/chunks/ae0563d573baf91e01f7.js +1 -0
  95. package/assets/esri/core/workers/chunks/{3c0ed15b544df6fb0903.js → b48952e1fb4cb7360dd0.js} +1 -1
  96. package/assets/esri/core/workers/chunks/b5e7475cc5fbf31289d3.js +1 -0
  97. package/assets/esri/core/workers/chunks/b686cd74975da09b9c91.js +2 -0
  98. package/assets/esri/core/workers/chunks/{aa36c3a9bbaa086e3757.js → b8fd7c3b36981261378b.js} +1 -1
  99. package/assets/esri/core/workers/chunks/bd046399e05e759e0bc2.js +1 -0
  100. package/assets/esri/core/workers/chunks/bd46a04a9ee4ea9e6ef1.js +2 -0
  101. package/assets/esri/core/workers/chunks/{f3da30d7300b92bd8bb0.js → befa32b9e7b3fbdd431e.js} +1 -1
  102. package/assets/esri/core/workers/chunks/bfb39590c548188f5052.js +1 -0
  103. package/assets/esri/core/workers/chunks/c4ddac23bd649d24f3f2.js +1 -0
  104. package/assets/esri/core/workers/chunks/cddc3e285f763ccf33c2.js +1 -0
  105. package/assets/esri/core/workers/chunks/d08ff41e2a9bcd58b64a.js +1 -0
  106. package/assets/esri/core/workers/chunks/d62afb71f4ece4283994.js +1 -0
  107. package/assets/esri/core/workers/chunks/dc1761cba0454fda3cf9.js +1 -0
  108. package/assets/esri/core/workers/chunks/{0f617980c7dd9ad0444f.js → dd0310184fe4832755a8.js} +1 -1
  109. package/assets/esri/core/workers/chunks/dfa5f1311806473e473f.js +1 -0
  110. package/assets/esri/core/workers/chunks/{4ac1d3e49e242e373a92.js → e0650b1408197d3ac862.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{3ff6d1ed3c0f1285f3e7.js → e0d9dc97985561320bd4.js} +1 -1
  112. package/assets/esri/core/workers/chunks/eaddffcc7004101fc230.js +1 -0
  113. package/assets/esri/core/workers/chunks/eb2652ec48faa78de3c5.js +1 -0
  114. package/assets/esri/core/workers/chunks/eca44e53bcee9b08d70a.js +1 -0
  115. package/assets/esri/core/workers/chunks/f00458654c7c34c369ef.js +1 -0
  116. package/assets/esri/core/workers/chunks/f3cd610084e3f4d8656b.js +1 -0
  117. package/assets/esri/core/workers/chunks/f47fe4433b05fca5c3ad.js +1 -0
  118. package/assets/esri/core/workers/chunks/f7bfa3d33b05b250ce33.js +1 -0
  119. package/assets/esri/core/workers/chunks/f91bc1cb1014e05be763.js +1 -0
  120. package/assets/esri/core/workers/chunks/{19676b2c5f8b0a5ee680.js → facd1ff23203fed67686.js} +1 -1
  121. package/assets/esri/core/workers/chunks/{634523cc7757da9020e4.js → fb70ab267a08e24b710f.js} +1 -1
  122. package/assets/esri/core/workers/chunks/fc139f251dc0523074e7.js +1 -0
  123. package/assets/esri/core/workers/chunks/{40a584cb952e94326e9e.js → fcb86d24fc7e0666b564.js} +1 -1
  124. package/assets/esri/themes/base/widgets/_Weather.scss +1 -0
  125. package/assets/esri/themes/dark/main.css +1 -1
  126. package/assets/esri/themes/light/main.css +1 -1
  127. package/assets/esri/themes/light/view.css +1 -1
  128. package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
  129. package/chunks/Envelope.js +1 -1
  130. package/chunks/MultiPathImpl.js +1 -1
  131. package/chunks/OperatorGeodeticArea.js +1 -1
  132. package/chunks/OperatorShapePreservingLength.js +1 -1
  133. package/chunks/OperatorShapePreservingProject.js +1 -1
  134. package/chunks/UnitFactory.js +1 -1
  135. package/chunks/basis_encoder.js +1 -1
  136. package/chunks/basis_transcoder.js +1 -1
  137. package/chunks/index.js +1 -1
  138. package/chunks/lclayout.js +1 -1
  139. package/chunks/lerc-wasm.js +1 -1
  140. package/config.d.ts +2 -0
  141. package/config.js +1 -1
  142. package/core/accessorSupport/DefaultsStore.js +1 -1
  143. package/core/accessorSupport/MultiOriginStore.js +1 -1
  144. package/core/accessorSupport/Store.js +1 -1
  145. package/core/accessorSupport/decorators/reader.js +1 -1
  146. package/core/accessorSupport/decorators/writer.js +1 -1
  147. package/core/sql/WhereGrammar.js +2 -2
  148. package/core/workers/WorkerOwner.js +1 -1
  149. package/core/workers/workerFactory.js +1 -1
  150. package/core/workers/workers.js +2 -2
  151. package/core/workers.d.ts +9 -0
  152. package/editing/sharedTemplates/executor/builders/equallySpaced.js +1 -1
  153. package/form/elements/inputs/DynamicChoiceInput.d.ts +4 -2
  154. package/geometry/Mesh.js +1 -1
  155. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  156. package/geometry/operators/gx/operatorOffset.js +1 -1
  157. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  158. package/geometry/operators/support/jsonConverter.js +1 -1
  159. package/geometry/support/curves/bezierCurveUtils.js +1 -1
  160. package/geometry/support/curves/ellipticArc7Utils.js +1 -1
  161. package/geometry/support/meshUtils/merge.js +1 -1
  162. package/geometry/support/meshUtils/rotate.js +1 -1
  163. package/geometry/support/polygonExtentClipping.js +1 -1
  164. package/identity/Credential.js +1 -1
  165. package/kernel.js +1 -1
  166. package/layers/AnnotationFeatureLayer.d.ts +2 -2
  167. package/layers/AnnotationFeatureLayer.js +1 -1
  168. package/layers/CatalogLayer.d.ts +2 -2
  169. package/layers/CatalogLayer.js +1 -1
  170. package/layers/DimensionFeatureLayer.d.ts +2 -2
  171. package/layers/DimensionFeatureLayer.js +1 -1
  172. package/layers/ElevationLayer.js +1 -1
  173. package/layers/FeatureLayer.d.ts +4 -4
  174. package/layers/FeatureLayer.js +1 -1
  175. package/layers/GeoJSONLayer.d.ts +1 -1
  176. package/layers/ImageryTileLayer.js +1 -1
  177. package/layers/LineOfSightLayer.d.ts +10 -8
  178. package/layers/SceneLayer.js +1 -1
  179. package/layers/SubtypeGroupLayer.d.ts +2 -2
  180. package/layers/SubtypeGroupLayer.js +1 -1
  181. package/layers/ViewshedLayer.d.ts +1 -1
  182. package/layers/VoxelLayer.js +1 -1
  183. package/layers/WMSLayer.js +1 -1
  184. package/layers/effects/parser.js +3 -3
  185. package/layers/geospatialPDF/GeospatialPDFFrame.js +1 -1
  186. package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +9 -9
  187. package/layers/geospatialPDF/GeospatialPDFWorkerClient.js +1 -1
  188. package/layers/geospatialPDF/LGIDictMapFrame.js +1 -1
  189. package/layers/geospatialPDF/ViewportMeasureFrame.js +1 -1
  190. package/layers/geospatialPDF/geospatialPDFParserUtils.js +1 -1
  191. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  192. package/layers/graphics/data/QueryEngineResult.js +1 -1
  193. package/layers/graphics/sources/connections/WebSocketConnection.js +1 -1
  194. package/layers/graphics/sources/parquet/FileProvider.js +1 -1
  195. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  196. package/layers/mixins/{FeatureLayerReload.d.ts → ReloadableLayer.d.ts} +5 -3
  197. package/layers/mixins/ReloadableLayer.js +2 -0
  198. package/layers/raster/datasets/BaseRaster.js +1 -1
  199. package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
  200. package/layers/raster/datasets/ImageAuxRaster.js +2 -2
  201. package/layers/raster/datasets/ImageServerRaster.js +1 -1
  202. package/layers/raster/datasets/InMemoryRaster.js +1 -1
  203. package/layers/raster/datasets/MRFRaster.js +1 -1
  204. package/layers/raster/datasets/TIFFRaster.js +1 -1
  205. package/layers/raster/datasets/WCSRaster.js +1 -1
  206. package/layers/raster/formats/ElevationCodec.js +2 -0
  207. package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
  208. package/layers/raster/formats/Lerc.js +1 -1
  209. package/layers/raster/formats/RasterCodec.js +1 -1
  210. package/layers/raster/formats/TiffDecoder.js +1 -1
  211. package/layers/raster/formats/Zlib.js +1 -1
  212. package/layers/raster/functions/stretchUtils.js +1 -1
  213. package/layers/raster/functions/vectorFieldUtils.js +1 -1
  214. package/layers/support/FieldsIndex.js +1 -1
  215. package/layers/support/LercWorker.js +1 -1
  216. package/layers/support/RasterWorker.js +1 -1
  217. package/layers/support/TileInfo.d.ts +1 -1
  218. package/layers/support/TileInfo.js +1 -1
  219. package/layers/support/featureReductionProperties.js +1 -1
  220. package/layers/support/kmlUtils.js +1 -1
  221. package/layers/support/layerOriginUtils.js +1 -1
  222. package/layers/video/VideoController.js +10 -10
  223. package/libs/maquette/projection.js +1 -1
  224. package/networks/UtilityNetworkTraceAnalysis.js +1 -1
  225. package/package.json +6 -6
  226. package/popup/FeatureModel.js +1 -1
  227. package/popup/FeaturesModel.js +1 -1
  228. package/portal/Portal.js +1 -1
  229. package/request/process.js +1 -1
  230. package/request/types.d.ts +7 -0
  231. package/rest/knowledgeGraphService.js +1 -1
  232. package/rest/networks/trace.js +1 -1
  233. package/rest/query/executeQuery.js +1 -1
  234. package/smartMapping/raster/renderers/shadedRelief.js +1 -1
  235. package/smartMapping/renderers/univariateColorSize.js +1 -1
  236. package/smartMapping/statistics/support/statsWorker.js +1 -1
  237. package/smartMapping/statistics/support/utils.js +1 -1
  238. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  239. package/smartMapping/support/adapters/FeatureLayerBinningAdapter.js +1 -1
  240. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  241. package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
  242. package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
  243. package/smartMapping/support/adapters/support/utils.js +1 -1
  244. package/smartMapping/support/clusterUtils.js +1 -1
  245. package/statistics/utils.js +1 -1
  246. package/symbols/cim/CIMCursor.js +1 -1
  247. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  248. package/symbols/cim/cimAnalyzer.js +1 -1
  249. package/symbols/support/ElevationInfo.d.ts +4 -3
  250. package/time/TimeExtent.d.ts +1 -1
  251. package/undoredo/support/Services.js +1 -1
  252. package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +2 -2
  253. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  254. package/views/2d/grid/GridView2D.js +1 -1
  255. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  256. package/views/2d/layers/features/sources/strategies/FeatureHybridTileLoadStrategy.js +1 -1
  257. package/views/2d/layers/features/sources/strategies/FeaturePagedTileLoadStrategy.js +1 -1
  258. package/views/2d/layers/features/sources/strategies/FeatureSnapshotLoadStrategy.js +1 -1
  259. package/views/2d/viewpointUtils.js +1 -1
  260. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  261. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  262. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  263. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  264. package/views/3d/analysis/LineOfSight/types.d.ts +14 -3
  265. package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +39 -13
  266. package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
  267. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  268. package/views/3d/analysis/Viewshed/types.d.ts +7 -0
  269. package/views/3d/analysis/ViewshedAnalysisView3D.d.ts +43 -15
  270. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  271. package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
  272. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  273. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  274. package/views/3d/interactive/editingTools/transform/ExtentTransformTool.js +1 -1
  275. package/views/3d/interactive/editingTools/transform/ScaleRotateTransform.js +1 -1
  276. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  277. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  278. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  279. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  280. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  281. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  282. package/views/3d/layers/graphics/Graphics3DElevationAlignment.js +1 -1
  283. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  284. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  285. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  286. package/views/3d/layers/graphics/SpatialIndex2D.js +1 -1
  287. package/views/3d/layers/i3s/I3SNode.js +1 -1
  288. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  289. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  290. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  291. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  292. package/views/3d/layers/support/FeatureTileFetcher3DDebugger.js +1 -1
  293. package/views/3d/layers/support/ImageHighlightHelper3D.js +1 -1
  294. package/views/3d/layers/support/MediaLayerInteraction.js +1 -1
  295. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  296. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  297. package/views/3d/state/utils/navigationUtils.js +1 -1
  298. package/views/3d/support/elevationUpdateExtentUtils.js +1 -1
  299. package/views/3d/support/elevationUpdateUtils.js +1 -1
  300. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  301. package/views/3d/support/sphereExtentUtils.js +2 -0
  302. package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
  303. package/views/3d/terrain/OverlayRenderer.js +1 -1
  304. package/views/3d/terrain/PatchRenderData.js +1 -1
  305. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  306. package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
  307. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  308. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  309. package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
  310. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  311. package/views/3d/webgl-engine/materials/renderers/PerBufferData.js +1 -1
  312. package/views/SceneView.js +1 -1
  313. package/views/ToolViewManager.js +1 -1
  314. package/views/View.js +1 -1
  315. package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
  316. package/views/draw/DrawOperation.js +1 -1
  317. package/views/draw/support/InteractiveHandle.js +1 -1
  318. package/views/draw/support/Reshape.js +1 -1
  319. package/views/draw/support/createUtils.js +1 -1
  320. package/views/draw/support/editingSessionUtils.js +1 -1
  321. package/views/draw/support/managers/InteractiveHandleManager.js +1 -1
  322. package/views/interactive/SegmentLabels.js +1 -1
  323. package/views/interactive/editGeometry/EditGeometry.js +1 -1
  324. package/views/interactive/editGeometry/EditGeometryOperations.js +1 -1
  325. package/views/interactive/editGeometry/operations/SetAllVertexPositions.js +1 -1
  326. package/views/interactive/editGeometry/operations/UndoGroup.js +1 -1
  327. package/views/interactive/options/TooltipOptions.d.ts +2 -0
  328. package/views/interactive/sketch/SketchTooltipOptions.d.ts +2 -0
  329. package/views/interactive/sketch/constraintUtils.js +1 -1
  330. package/views/interactive/snapping/SnappingDragPipelineStep.js +1 -1
  331. package/views/interactive/snapping/SnappingManagerPool.js +1 -1
  332. package/views/interactive/snapping/allLayerSnapping.js +1 -1
  333. package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
  334. package/views/layers/LayerView.js +1 -1
  335. package/views/layers/LineOfSightLayerView.d.ts +35 -13
  336. package/views/layers/SketchLayerView.d.ts +1 -0
  337. package/views/layers/ViewshedLayerView.d.ts +36 -12
  338. package/views/webgl/Program.js +1 -1
  339. package/views/webgl/Texture.js +1 -1
  340. package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.d.ts +2 -1
  341. package/widgets/BasemapToggle/BasemapToggleViewModel.d.ts +2 -0
  342. package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
  343. package/widgets/Directions.js +1 -1
  344. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.d.ts +2 -1
  345. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  346. package/widgets/Editor/legacy/CreateFeaturesWorkflow.js +1 -1
  347. package/widgets/ElevationProfile/components/Statistics.js +1 -1
  348. package/widgets/ElevationProfile/support/chartUtils.js +1 -1
  349. package/widgets/Expand/ExpandViewModel.d.ts +2 -0
  350. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  351. package/widgets/FeatureTable/support/GroupColumnTemplate.js +1 -1
  352. package/widgets/FeatureTable/support/TableTemplate.js +1 -1
  353. package/widgets/Fullscreen/FullscreenViewModel.d.ts +3 -1
  354. package/widgets/Home/HomeViewModel.d.ts +2 -0
  355. package/widgets/OrientedImageryViewer.js +1 -1
  356. package/widgets/Print.js +1 -1
  357. package/widgets/Sketch/SketchViewModel.js +1 -1
  358. package/widgets/Slice.js +1 -1
  359. package/widgets/Swipe/SwipeViewModel.d.ts +2 -0
  360. package/widgets/Swipe/types.d.ts +9 -2
  361. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +9 -5
  362. package/widgets/TimeSlider/types.d.ts +7 -0
  363. package/widgets/TimeSlider.d.ts +2 -3
  364. package/widgets/TimeSlider.js +1 -1
  365. package/widgets/Track/TrackViewModel.d.ts +4 -0
  366. package/widgets/Track/types.d.ts +1 -0
  367. package/widgets/UtilityNetworkTraceAnalysis/UtilityNetworkTraceAnalysisViewModel.js +1 -1
  368. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  369. package/widgets/support/SelectionList.js +1 -1
  370. package/widgets/support/Selector3D/selectorUtils.js +1 -1
  371. package/widgets/support/componentsUtils.js +1 -1
  372. package/assets/esri/core/workers/chunks/0050916e462e3c9e0627.js +0 -1
  373. package/assets/esri/core/workers/chunks/024b44c0c8876627f904.js +0 -1
  374. package/assets/esri/core/workers/chunks/02c5d027bdaee67869cf.js +0 -1
  375. package/assets/esri/core/workers/chunks/03261b9451e293a0fac8.js +0 -1
  376. package/assets/esri/core/workers/chunks/0c8c01097847617261b9.js +0 -1
  377. package/assets/esri/core/workers/chunks/0d931c7579b6409a696d.js +0 -1
  378. package/assets/esri/core/workers/chunks/12c154342fff876f2f1e.js +0 -1
  379. package/assets/esri/core/workers/chunks/1e11d2e97d17685b878a.js +0 -1
  380. package/assets/esri/core/workers/chunks/1f339247b68b061ab0a4.js +0 -1
  381. package/assets/esri/core/workers/chunks/21ddb26526bcb2b122c3.js +0 -1
  382. package/assets/esri/core/workers/chunks/2eae542fe7f0f6576ac1.js +0 -1
  383. package/assets/esri/core/workers/chunks/34cbaf844730ac2d92c2.js +0 -2
  384. package/assets/esri/core/workers/chunks/3c301a689c7853c9fa67.js +0 -2
  385. package/assets/esri/core/workers/chunks/3f946c13ad97fbed867b.js +0 -1
  386. package/assets/esri/core/workers/chunks/444e5f214abce3d607cd.js +0 -1
  387. package/assets/esri/core/workers/chunks/46a7da93a63663878583.js +0 -1
  388. package/assets/esri/core/workers/chunks/4a1e23e021bac37a88ab.js +0 -1
  389. package/assets/esri/core/workers/chunks/4c4117e28ea358a32088.js +0 -1
  390. package/assets/esri/core/workers/chunks/54b18559280a7d2a8d93.js +0 -1
  391. package/assets/esri/core/workers/chunks/59b216b60464611742d4.js +0 -1
  392. package/assets/esri/core/workers/chunks/604f0f4150fb79ee54c8.js +0 -1
  393. package/assets/esri/core/workers/chunks/6299be5e7e26bf3c6859.js +0 -1
  394. package/assets/esri/core/workers/chunks/62ac588f7dd1d24d0c9d.js +0 -1
  395. package/assets/esri/core/workers/chunks/62c8c9ad09e0166207fd.js +0 -1
  396. package/assets/esri/core/workers/chunks/62d6e101e9bd9557a410.js +0 -1
  397. package/assets/esri/core/workers/chunks/6558488ea96620439f34.js +0 -1
  398. package/assets/esri/core/workers/chunks/665e31c494d2af505acc.js +0 -1
  399. package/assets/esri/core/workers/chunks/6f4e6022a52de0c54aab.js +0 -1
  400. package/assets/esri/core/workers/chunks/7267b17de212207142c9.js +0 -1
  401. package/assets/esri/core/workers/chunks/745a153d0cd34faa124e.js +0 -1
  402. package/assets/esri/core/workers/chunks/7572c2bc5062e66f6330.js +0 -1
  403. package/assets/esri/core/workers/chunks/76ab353d80d786777161.js +0 -2
  404. package/assets/esri/core/workers/chunks/7ef182e24cad50815b4e.js +0 -1
  405. package/assets/esri/core/workers/chunks/8293600f94553afc8c38.js +0 -1
  406. package/assets/esri/core/workers/chunks/8431ca60ad33d594e323.js +0 -1
  407. package/assets/esri/core/workers/chunks/8483c50ed8f280fd74bb.js +0 -1
  408. package/assets/esri/core/workers/chunks/876f7633c15f1e31078d.js +0 -1
  409. package/assets/esri/core/workers/chunks/8ca9648eacb894283513.js +0 -1
  410. package/assets/esri/core/workers/chunks/8cb716f110d164030309.js +0 -1
  411. package/assets/esri/core/workers/chunks/91ebb2ccab1889eb7e81.js +0 -1
  412. package/assets/esri/core/workers/chunks/94e427040edb469d58ad.js +0 -1
  413. package/assets/esri/core/workers/chunks/9ce91a909eccc4dfe388.js +0 -1
  414. package/assets/esri/core/workers/chunks/9e1a3b6a08c96dcefdde.js +0 -1
  415. package/assets/esri/core/workers/chunks/9e3e442a9874ed23a043.js +0 -1
  416. package/assets/esri/core/workers/chunks/ad76f7ab2f3e6d5a5b3c.js +0 -1
  417. package/assets/esri/core/workers/chunks/aff32980d91dab07dfb7.js +0 -1
  418. package/assets/esri/core/workers/chunks/b49df4ebd4be1181b0f9.js +0 -2
  419. package/assets/esri/core/workers/chunks/b557824bc1fa163d72a3.js +0 -2
  420. package/assets/esri/core/workers/chunks/bbf993dba74850bbf9d7.js +0 -1
  421. package/assets/esri/core/workers/chunks/d8f1cefcad02d7353d4b.js +0 -1
  422. package/assets/esri/core/workers/chunks/d938987344bce83cc660.js +0 -1
  423. package/assets/esri/core/workers/chunks/ddf0671976648f621269.js +0 -1
  424. package/assets/esri/core/workers/chunks/de02f60258e6985ef676.js +0 -1
  425. package/assets/esri/core/workers/chunks/e10b57aefcc89671116e.js +0 -1
  426. package/assets/esri/core/workers/chunks/e65dfa19f030ec298437.js +0 -1
  427. package/assets/esri/core/workers/chunks/ed8786fed345718ed684.js +0 -1
  428. package/assets/esri/core/workers/chunks/f122c18af10e56f9ec2b.js +0 -1
  429. package/assets/esri/core/workers/chunks/f92364afaefbac7e8f77.js +0 -1
  430. package/assets/esri/core/workers/chunks/fc44227c1756f65b95df.js +0 -1
  431. package/assets/esri/core/workers/chunks/fd9663952d5a94f3a83f.js +0 -1
  432. package/assets/esri/core/workers/chunks/fe9879ecd69ac4329291.js +0 -1
  433. package/layers/mixins/FeatureLayerReload.js +0 -2
  434. /package/assets/esri/core/workers/chunks/{b557824bc1fa163d72a3.js.LICENSE.txt → 164c8eeefa8232b2b191.js.LICENSE.txt} +0 -0
  435. /package/assets/esri/core/workers/chunks/{b49df4ebd4be1181b0f9.js.LICENSE.txt → 2981e904ab62f3ed80d0.js.LICENSE.txt} +0 -0
  436. /package/assets/esri/core/workers/chunks/{34cbaf844730ac2d92c2.js.LICENSE.txt → 32cc59e126df8c96a0cf.js.LICENSE.txt} +0 -0
  437. /package/assets/esri/core/workers/chunks/{590e6c70206122e4cc3c.js.LICENSE.txt → 844eedda8f749972f707.js.LICENSE.txt} +0 -0
  438. /package/assets/esri/core/workers/chunks/{3c301a689c7853c9fa67.js.LICENSE.txt → b686cd74975da09b9c91.js.LICENSE.txt} +0 -0
  439. /package/assets/esri/core/workers/chunks/{76ab353d80d786777161.js.LICENSE.txt → bd46a04a9ee4ea9e6ef1.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{g as n,b as r,p as i,t as a,i as o,G as s}from"../../../chunks/Geometry.js";import{v as c,P as l,d as u,o as d,s as f,w as p,i as m,c as h}from"../../../chunks/Point2D.js";import{r as g,h as _,P as v,M as y}from"../../../chunks/MultiPathImpl.js";function b(e,t,n,r,i,a){let o=r-t;if(o<=a)return _(e,t,n,r,i),n;let s=S(e,t,r,i,Math.min(Math.max(o>>1,3),100)),c=e[s];e[t]=f(e[s],e[s]=e[t]);let l=t+1,u=!1;for(let n=t+1;n!==r;++n)i(e[n],c)&&(e[l]=f(e[n],e[n]=e[l]),++l,u=!0);if(!u)for(let r=t+1;r<n;++r)i(c,e[r])||(r!==l&&(e[l]=f(e[r],e[r]=e[l])),++l);return--l,e[l]=f(e[t],e[t]=e[l]),l}function x(e,t,n){let r=Math.trunc(t/2),i=BigInt(r),a=BigInt(t);for(let t=0;t<n;++t)e.push(Number(i%a)),i=6364136223846793005n*i+1442695040888963407n&9223372036854775807n,i=BigInt.asUintN(64,i);p(e),e.length=c(e,(e,t)=>e===t)}function S(e,t,n,r,i){let a=[];x(a,n-t,i);let o=[];for(let n=0,r=a.length;n<r;n++){let r=a[n];o.push(d(e[t+r],r))}let s=Math.trunc(o.length/2);return o.sort((e,t)=>r(e.first,t.first)?-1:1),t+o[s].second}function C(){return{p:new l,userData:NaN,edge:null}}class w{info=0;mask=!1;p=null;a=[null,null];twin=null;nextFreeEdge(){return this.twin}setIndex(e){this.info=e,this.mask=!1}getIndex(){return this.info}setMask(){this.mask=!0}getMask(){return this.mask}}function T(e,t){return{first:e,second:t}}function E(e,t){e.first=t.first,e.second=t.second}function D(){return this.i1-this.i0}function O(){return{i0:NaN,i1:NaN,nextFreeEdgeIndex:[-1],box:[T(null,null),T(null,null)],size:D}}function k(){return{k:0,pTask:null,pTask0:null,pTask1:null}}function A(){return{p:[new l,new l],points:[null,null]}}function j(){return{p:[null,null,null]}}class M{m_nextFreePairEdge=T(null,null);m_points=[];m_pointZero=null;m_edges=[];m_voronoiToEdge=[];m_nextFreeEdge=0;clear(){this.m_nextFreePairEdge=T(null,null),this.m_points.length=0,this.m_pointZero=null,this.m_edges.length=0,this.m_voronoiToEdge.length=0,this.m_nextFreeEdge=0}reservePoints(e){n(e>1)}prepare(e){{let t=C();t.p.x=1/0,t.p.y=1/0,t.userData=e,this.m_points.push(t)}}addVertex(e,t){let n=C();n.p.assign(e),n.userData=t,n.edge=null,this.m_points.push(n)}removeDuplicates(){let e=this.m_points.shift();this.m_points.sort((e,t)=>e.p.compareX(t.p));let t=c(this.m_points,(e,t)=>e.p.equals(t.p)),n=t!==this.m_points.length;return this.m_points.length=t,this.m_points.unshift(e),n}boundVoronoiCells(e,t){let n=this.m_points.length;if(n<2)return!1;let r=[this.m_points[1].p.clone(),this.m_points[1].p.clone()];for(let e=2;e<n;e++){let t=this.m_points[e].p;t.x<r[0].x&&(r[0].x=t.x),r[1].x<t.x&&(r[1].x=t.x),t.y<r[0].y&&(r[0].y=t.y),r[1].y<t.y&&(r[1].y=t.y)}let i=new l;i.x=.5*(r[0].x+r[1].x),i.y=.5*(r[0].y+r[1].y);let a=0;for(let e=1;e<n;e++){let t=this.m_points[e].p,n=l.sqrDistanceCoords(t.x,t.y,i.x,i.y);a<n&&(a=n)}let o=Math.sqrt(a),s=Math.max(o+2*e,1.5*o);{let e=.8660254037844386,n=.5,r=1,a=0;for(let o=0;o<12;o++){let o=new l;o.x=i.x+s*r,o.y=i.y+s*a,this.addVertex(o,t);let c=r*e-a*n,u=r*n+a*e;r=c,a=u}}return!0}construct(){let e=O();return this.constructTask(e)?(this.solveTask(e),!0):!1}constructTask(e){if(this.m_pointZero=this.createZeroHandle(),n(this.m_pointZero!==void 0),this.m_points.length<3)return!1;let t=6*(this.m_points.length-2);this.m_edges=u(w,t);for(let e=0;e<t;e++)this.m_edges[e].setIndex(e);return e.i0=1,e.i1=this.m_points.length,e.nextFreeEdgeIndex[0]=0,!0}splitTask(e,t,n,r){let i=e,a=t,o=n,s=r;i.k=this.findMaxSide(s.i0,s.i1);let c=s.i0+s.i1>>1,l=1250;c=i.k===0?b(this.m_points,s.i0,c,s.i1,(e,t)=>e.p[0]===t.p[0]?e.p[1]<t.p[1]:e.p[0]<t.p[0],l):b(this.m_points,s.i0,c,s.i1,(e,t)=>e.p[1]===t.p[1]?e.p[0]<t.p[0]:e.p[1]<t.p[1],l),a.i0=s.i0,a.i1=c,a.nextFreeEdgeIndex[0]=s.nextFreeEdgeIndex[0],s.nextFreeEdgeIndex[0]+=6*(a.i1-a.i0-1)+2,o.i0=c,o.i1=s.i1,o.nextFreeEdgeIndex[0]=s.nextFreeEdgeIndex[0],s.nextFreeEdgeIndex[0]+=6*(o.i1-o.i0-1)+2,i.pTask=s,i.pTask0=a,i.pTask1=o}solveMergeTask(e){let t=this.newPairEdgeEx(e.pTask.nextFreeEdgeIndex,!1);if(e.pTask.box[e.k]=T(e.pTask0.box[e.k].first,e.pTask1.box[e.k].second),e.pTask.box[1-e.k]=T(P(this.getPointXYFromEdge(e.pTask0.box[1-e.k].first),this.getPointXYFromEdge(e.pTask1.box[1-e.k].first),1-e.k)?e.pTask0.box[1-e.k].first:e.pTask1.box[1-e.k].first,P(this.getPointXYFromEdge(e.pTask0.box[1-e.k].second),this.getPointXYFromEdge(e.pTask1.box[1-e.k].second),1-e.k)?e.pTask1.box[1-e.k].second:e.pTask0.box[1-e.k].second),e.pTask.i0+2===e.pTask.i1){let n=e.pTask0.box[e.k].second,r=n.twin,i=e.pTask1.box[e.k].first,a=i.twin;this.joinEdges2(r,a),this.joinEdges2(a,r),this.join(n,i,0,1,t);return}let n=[[,,],[,,]];n[0][0]=n[1][0]=T(e.pTask0.box[e.k].second,e.pTask0.box[e.k].second.twin),n[0][1]=n[1][1]=T(e.pTask1.box[e.k].first,e.pTask1.box[e.k].first.twin);let r=[!1,!1];if(e.pTask0.i0+1===e.pTask0.i1?(this.findEdgeSide(n[0],r,1,0),this.findEdgeSide(n[1],r,1,1)):(this.findEdge(n[0],r,0),this.findEdge(n[1],r,1)),!r[0]&&!r[1])this.getNextDEdge(n[0][0].first,0)!==n[0][0].first&&(n[1][0]=this.newPairEdgeEx(e.pTask0.nextFreeEdgeIndex,!1),this.insertEdge(n[0][0].first,n[1][0].first,0),this.insertEdge(n[0][0].second,n[1][0].second,1)),this.getNextDEdge(n[0][1].first,0)!==n[0][1].first&&(n[1][1]=this.newPairEdgeEx(e.pTask1.nextFreeEdgeIndex,!1),this.insertEdge(n[0][1].first,n[1][1].first,1),this.insertEdge(n[0][1].second,n[1][1].second,0));else{if(r[0]){let t=this.newPairEdgeEx(e.pTask0.nextFreeEdgeIndex,!1);this.insertEdge(n[0][0].first,t.first,0),this.insertEdge(n[0][0].second,t.second,1)}if(r[1]){let t=this.newPairEdgeEx(e.pTask1.nextFreeEdgeIndex,!1);this.insertEdge(n[0][1].first,t.first,1),this.insertEdge(n[0][1].second,t.second,0)}}this.merge(n[1][0],n[0][0],n[0][1],n[1][1],t)}static c_aTableDelaunayTriangulationSolution=Uint8Array.from([41,74,0,0,0,0,0,0,0,206,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,33,33,65,0,0,0,0,0,0,0,193,0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,86,54,86,0,0,0,0,0,0,0,214,173,0,0,0,0,0,0,0,107,239,0,0,0,0,0,0,0,0,0,181,0,0,0,0,0,0,0,181,0,0,0,0,0,0,117,117,245,0,0,0,0,0,0,0,0,0,103,0,0,0,0,0,0,0,167,0,0,0,0,0,0,231,103,231,0,0,0,0,0,0,50,0,0,0,0,0,0,0,0,198,0,0,41,0,0,74,0,0,49,0,0,49,0,0,50,0,0,194,0,0,193,0,0,194,0,0,0,0,0,206,0,0,0,0,0,0,0,0,54,0,0,0,0,0,0,0,0,198,0,0,0,0,0,82,50,82,0,0,0,0,0,0,0,198,0,66,0,0,65,0,0,66,49,66,33,57,65,82,50,90,0,194,0,0,193,0,0,194,0,0,0,0,0,0,0,214,0,0,0,0,0,86,54,86,0,0,0,0,0,0,0,222,0,0,0,0,0,0,178,0,0,0,0,0,0,230,102,230,177,0,0,177,0,0,178,0,177,0,0,177,0,0,178,0,113,226,113,113,249,226,122,226,0,0,0,0,0,0,102,0,0,0,0,0,0,0,190,0,0,0,0,0,0,230,102,230,0,0,0,165,0,0,0,0,0,0,0,0,243,0,0,0,0,0,173,0,0,0,0,0,0,0,0,165,0,0,0,0,0,0,0,0,245,0,0,0,0,0,107,0,0,239,0,0,163,0,0,163,0,0,167,0,0,247,0,0,243,0,0,247,0,0,37,37,69,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,69,0,0,0,0,0,37,37,69,0,0,0,0,0,0,0,221,0,0,0,0,215,0,0,211,0,0,215,35,87,35,35,91,87,63,87,0,215,0,0,211,0,0,215,0,0,0,165,0,0,0,0,0,0,115,115,243,0,0,0,0,0,0,181,0,0,0,0,0,0,0,189,0,0,0,0,0,0,117,117,245,0,0,0,99,0,0,99,0,0,103,0,163,0,0,163,0,0,167,0,99,247,115,123,243,231,103,255]);solveTask(e){let t=e;switch(t.i1-t.i0){case 1:{this.insertPoint(t.i0,t.nextFreeEdgeIndex);let e=this.m_points[t.i0].edge;t.box[0]=t.box[1]=d(e,e)}break;case 2:{let e=t.i0,n=e+1;this.insertPoint(e,t.nextFreeEdgeIndex),this.insertPoint(n,t.nextFreeEdgeIndex);let r=this.m_points[e],i=this.m_points[n],a=r.edge,o=i.edge,s=a.twin,c=o.twin;this.joinEdges2(s,c),this.joinEdges2(c,s);let l=this.newPairEdgeEx(t.nextFreeEdgeIndex,!1);this.join(a,o,0,1,l);for(let e=0;e<2;e++)t.box[e]=P(this.getPointXY(r),this.getPointXY(i),e)?T(a,o):T(o,a)}break;case 3:{let e=[t.i0,t.i0+1,t.i0+2];this.insertPoint(e[0],t.nextFreeEdgeIndex),this.insertPoint(e[1],t.nextFreeEdgeIndex),this.insertPoint(e[2],t.nextFreeEdgeIndex);let n=[this.m_points[e[0]],this.m_points[e[1]],this.m_points[e[2]]],r=this.caseFromCompare(n[0].p,n[1].p,n[2].p),i=[n[0].edge,n[1].edge,n[2].edge],a=M.c_aTableDelaunayTriangulationSolution[r],o=F(19*F((a&7)+1)),s=F(19*F((a>>5)+1)),c=F(a<<3)>>6,l=o&3,u=o>>6,d=s&3,p=s>>6;t.box[0]=T(i[l],i[u]),t.box[1]=T(i[d],i[p]);let m=[i[0].twin,i[1].twin,i[2].twin],h=[this.newPairEdgeEx(t.nextFreeEdgeIndex,!1),this.newPairEdgeEx(t.nextFreeEdgeIndex,!1),this.newPairEdgeEx(t.nextFreeEdgeIndex,!1)];switch(c===3&&(c=this.orientation(n[0].p,n[1].p,n[2].p)+1),c){case 0:this.joinEdges2(m[0],m[2]),this.joinEdges2(m[2],m[1]),this.joinEdges2(m[1],m[0]),this.join(i[0],i[2],0,1,h[0]),this.join(i[2],i[1],0,1,h[1]),this.join(i[1],i[0],0,1,h[2]);break;case 1:{let e=[0,1,2];e[3-(l+u)]=f(e[1],e[1]=e[3-(l+u)]),this.joinEdges2(m[e[0]],m[e[1]]),this.joinEdges2(m[e[1]],m[e[2]]),this.joinEdges2(m[e[2]],m[e[0]]),this.join(i[e[0]],i[e[1]],0,1,h[0]),this.join(i[e[1]],i[e[2]],0,1,h[1]),this.join(h[1].first,m[e[2]],0,1,h[2])}break;case 2:this.joinEdges2(m[0],m[1]),this.joinEdges2(m[1],m[2]),this.joinEdges2(m[2],m[0]),this.join(i[0],i[1],0,1,h[0]),this.join(i[1],i[2],0,1,h[1]),this.join(i[2],i[0],0,1,h[2])}}break;default:{let t=k(),n=O(),r=O();this.splitTask(t,n,r,e),this.solveTask(n),this.solveTask(r),this.solveMergeTask(t)}}}getOutsideHull(){let e=[],t=this.m_points[0].edge,n=t;do e.push(this.getPointFromEdge(this.getTwinEdge(n))),n=this.getNextDEdge(n,0);while(n!==t);return e}getConvexHull(){let e=[],t=this.m_points[0].edge,n=t;do{let t=this.getPointFromEdge(this.getTwinEdge(n));e.length<2||!this.insideLine(this.getPointXY(e.at(-2)),this.getPointXY(e.at(-1)),this.getPointXY(t))?e.push(t):e[e.length-1]=t,n=this.getNextDEdge(n,0)}while(n!==t);return 2<e.length&&this.insideLine(this.getPointXY(e[0]),this.getPointXY(e.at(-1)),this.getPointXY(e.at(-2)))&&e.pop(),2<e.length&&this.insideLine(this.getPointXY(e[1]),this.getPointXY(e[0]),this.getPointXY(e.at(-1)))&&(e[0]=e.at(-1),e.pop()),e}getVoronoiPolygon(e,t){e.length=0;let n=this.getEdgeFromPoint(t),r=n;for(;;){let t=this.calculateCircleCenter(r);e.push(t);let i=this.getNextDEdge(r,1);if(i===n)break;r=i}}getNearestPoint(e){this.isInfinitePointFromPoint(e)&&r(`Not supported for the infinite point`);let t=this.getPointXY(e),n=this.m_pointZero,i=Number.MAX_VALUE,a=this.getEdgeFromPoint(e),o=a;do{let e=this.getPointFromEdge(this.getTwinEdge(o));if(!this.isInfinitePointFromPoint(e)){let r=l.sqrDistance(t,this.getPointXY(e));r<i&&(n=e,i=r)}o=this.getCounterClockwiseEdge(o)}while(o!==a);return n}addConstraint(e,t){let n=[null],i=[null];if(!this.constraintFindFirstEdge(n,i,e,t))return T(i[0],n[0]);n[0]=this.getTwinEdge(n[0]);let a=this.getPointXY(e),o=this.getPointXY(t),s=[[],[]],c=n[0];for(;;){let e=this.getClockwiseEdge(i[0]);e.getMask()&&r(`add_constraint`);let c=T(e,this.getTwinEdge(e));this.deleteTwinEdges(c,!0);let l=this.getCounterClockwiseEdge(this.getTwinEdge(n[0])),u=this.getTwinEdge(this.getClockwiseEdge(i[0])),d=this.getPointFromEdge(u);if(d===t){s[0].push(n[0]),n[0]=l,s[1].push(i[0]),i[0]=u;break}let f=this.orientation(a,o,this.getPointXY(d));f===0&&r(`add_constraint - point on constraint`),0<f?(s[0].push(n[0]),n[0]=l):(s[1].push(i[0]),i[0]=u)}s[0].push(n[0]),s[1].push(i[0]);let l=this.newPairEdge();l.first.setMask(),l.second.setMask(),this.join(i[0],c,1,1,l),this.triangulateConstraint(s[0],1,s[0].length-1,l),s[1].reverse();let u=T(l.second,l.first);return this.triangulateConstraint(s[1],1,s[1].length-1,u),u}verify(){for(let e=0,t=this.m_edges.length;e<t;e++){let t=this.m_edges[e];if(!t.getMask()&&!this.testEdge(t))return!1}return!0}getDelaunayTriangleCount(){return this.m_points.length-2<<1}getVoronoiSegments(e=Number.MAX_VALUE){let t=[];for(let n=0,r=this.m_edges.length;n<r;n+=2){let r=T(null,null);if(r.first=this.m_edges[n],r.second=r.first.twin,this.isInfinitePointFromEdge(r.first)&&(r.second=f(r.first,r.first=r.second)),this.isInfinitePointFromEdge(r.second)){let n=u(l,3);n[0]=this.calculateCircleCenter(this.getNextDEdge(r.first,0).twin,1),n[2]=this.calculateCircleCenter(this.getNextDEdge(r.first,1),1);let i=u(l,2);i[0].assign(n[0]),i[1].assign(n[2]),i[0].rightPerpendicularThis(),i[1].leftPerpendicularThis(),n[1]=n[0].add(i[0]).add(n[2].add(i[1])),n[1].normalize();for(let t of n)t.mulThis(e);let a=A();a.points[0]=r.first.p,a.points[1]=r.second.p;for(let e=0;e<n.length-1;e++){for(let t=0;t<2;t++)a.p[t]=n[e+t];a.p[0].equals(a.p[1])||t.push(a)}}else if(this.isInfinitePointFromEdge(this.getNextDEdge(r.first,0).twin)&&this.isInfinitePointFromEdge(this.getNextDEdge(r.first,1).twin)){let e=u(l,3);e[0]=this.calculateCircleCenter(r.first),e[1]=this.getPointXY(this.getPointFromEdge(r.first)).add(this.getPointXY(this.getPointFromEdge(r.second))).mul(.5),e[2]=this.calculateCircleCenter(r.second);let n=A();n.points[0]=r.first.p,n.points[1]=r.second.p;for(let r=0;r<e.length-1;r++){for(let t=0;t<2;t++)n.p[t]=e[r+t];n.p[0].equals(n.p[1])||t.push(n)}}else{let e=A();e.p[0]=this.calculateCircleCenter(r.first),e.p[1]=this.calculateCircleCenter(r.second),e.points[0]=r.first.p,e.points[1]=r.second.p,e.p[0].equals(e.p[1])||t.push(e)}}return t}startDelaunayTriangles(){return-1}nextDelaunayTriangle(e,t){for(;;){if(++t[0],t[0]===this.m_edges.length)return!1;let n=this.m_edges[t[0]];if(e.p[0]=this.getPointFromEdge(n),this.isInfinitePointFromPoint(e.p[0]))continue;let r=this.getTwinEdge(n);if(e.p[1]=this.getPointFromEdge(r),this.isInfinitePointFromPoint(e.p[1])||this.getPointXY(e.p[1]).lt(this.getPointXY(e.p[0])))continue;let i=this.getTwinEdge(this.getNextDEdge(n,1));if(e.p[2]=this.getPointFromEdge(i),!this.isInfinitePointFromPoint(e.p[2])&&!this.getPointXY(e.p[2]).lt(this.getPointXY(e.p[0])))return!0}}getPointCount(){return this.m_points.length-1}getPoint(e){return this.m_points[e+1]}getInfinitePoint(){return this.m_pointZero}isInfinitePointFromPoint(e){return e===this.m_pointZero}getPointXY(e){return e.p}getPointIndex(e){return e.userData}setPointIndex(e,t){e.userData=t}getEdgeFromPoint(e){return e.edge}isInfinitePointFromEdge(e){return e.p===this.m_pointZero}getEdgeCount(){return this.m_edges.length}getEdge(e){return this.m_edges[e]}getEdgeIndex(e){return e.getIndex()}getPointFromEdge(e){return e.p}getPointXYFromEdge(e){return e.p.p}getCounterClockwiseEdge(e){return e.a[0]}getClockwiseEdge(e){return e.a[1]}getTwinEdge(e){return e.twin}getPreviousEdge(e){return this.getTwinEdge(this.getCounterClockwiseEdge(e))}getNextEdge(e){return this.getClockwiseEdge(this.getTwinEdge(e))}getNextDEdge(e,t=1){return e.a[t]}newPairEdge(){let e=T(this.m_nextFreePairEdge.first,this.m_nextFreePairEdge.second);return this.m_nextFreePairEdge.first=this.m_nextFreePairEdge.first.nextFreeEdge(),this.m_nextFreePairEdge.second=this.m_nextFreePairEdge.second.nextFreeEdge(),e.first.twin=e.second,e.second.twin=e.first,e}newPairEdgeEx(e,t){let n;if(t&&this.m_nextFreePairEdge.first!==null)n=T(this.m_nextFreePairEdge.first,this.m_nextFreePairEdge.second),this.m_nextFreePairEdge.first=this.m_nextFreePairEdge.first.nextFreeEdge(),this.m_nextFreePairEdge.second=this.m_nextFreePairEdge.second.nextFreeEdge();else{let t=e[0]++,r=e[0]++;n=T(this.m_edges[t],this.m_edges[r])}return n.first.twin=n.second,n.second.twin=n.first,n}insertEdge(e,t,n){t.p=e.p;let r=e.a[n],i=t.a;i[n]=r,i[1-n]=e,e.a[n]=t,r.a[1-n]=t}insertPoint(e,t){let n=this.m_points[e],r=this.newPairEdgeEx(t,!1),i=r.first,a=r.second;n.edge=r.first,i.p=this.m_points[e],i.a[0]=r.first,i.a[1]=r.first,a.p=this.m_pointZero,a.a[0]=r.second,a.a[1]=r.second,this.m_points[0].edge===null&&(this.m_points[0].edge=r.second)}deleteTwinEdges(e,t){this.deleteEdge(e.first),this.deleteEdge(e.second),t&&(e.first.twin=this.m_nextFreePairEdge.first,e.second.twin=this.m_nextFreePairEdge.second,this.m_nextFreePairEdge=e)}join(e,t,n,r,i){this.insertEdge(e,i.first,n),this.insertEdge(t,i.second,r)}joinEdges2(e,t){e.a[1]=t,t.a[0]=e}checkEdge(e,t,n,r,i){for(;;){let a=T(null,null);if(a.first=this.getNextDEdge(e.first,r),a.second=a.first.twin,this.isInfinitePointFromEdge(a.second))return e;let o=this.getPointXYFromEdge(e.second),s=this.getPointXYFromEdge(a.second);if(this.inCircle(t,n,o,s)<=0)return e;if(this.deleteTwinEdges(e,i),!i){let t=this.getNextDEdge(e.second,r).twin;this.join(a.second,t,r,r,e)}e=a}}calculateCircleCenter(e,t=Number.MAX_VALUE){let n=this.getPointXYFromEdge(e),r=this.getPointXYFromEdge(e.twin),i=this.getNextDEdge(e,0);if(this.isInfinitePointFromEdge(i.twin)){let e=new l;if(Number.isNaN(t))e.setNAN();else{let i=r.sub(n);i.leftPerpendicularThis(),e.assign(i),e.divThis(Math.max(Math.abs(e.x),Math.abs(e.y))),e.normalize(),e.mulThis(t)}return e}let a=this.getPointXYFromEdge(i.twin);return this.calculateCircleCenterFromThreePoints(n,r,a)}createZeroHandle(){return this.m_points[0]}deleteEdge(e){let t=e,n=t.p;n.edge===e&&(n.edge=t.a[0]),t.a[0].a[1]=t.a[1],t.a[1].a[0]=t.a[0]}testEdge(e){if(this.isInfinitePointFromEdge(e))return!0;let t=e.twin;if(this.isInfinitePointFromEdge(t))return!0;let n=this.getNextDEdge(e,0).twin,r=this.getNextDEdge(t,0).twin;if(this.isInfinitePointFromEdge(n)||this.isInfinitePointFromEdge(r))return!0;let i=this.getPointXYFromEdge(e),a=this.getPointXYFromEdge(t),o=this.getPointXYFromEdge(n),s=this.getPointXYFromEdge(r);return this.orientation(i,a,o)<=0||0<=this.orientation(i,a,s)?!1:this.inCircle(i,a,o,s)<=0}findMaxSide(e,t){let n=[this.m_points[e].p.clone(),this.m_points[e].p.clone()];for(e++;e!==t;e++){let t=this.m_points[e].p;t.x<n[0].x&&(n[0].x=t.x),n[1].x<t.x&&(n[1].x=t.x),t.y<n[0].y&&(n[0].y=t.y),n[1].y<t.y&&(n[1].y=t.y)}return+(n[1].x-n[0].x<n[1].y-n[0].y)}findEdge(e,t,n){let r=!1,i=0;for(;;){let a=T(null,null);if(a.second=this.getNextDEdge(e[i].second,n^i),a.first=a.second.twin,n===0&&this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(a.first))<0||n===1&&0<this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(a.first)))e[i]=a,t[i]=!0,r=!1;else{if(r)return;i^=1,r=!0}}}findEdgeSide(e,t,n,r){for(;;){let i=T(null,null);if(i.second=this.getNextDEdge(e[n].second,r^n),i.first=i.second.twin,!(r===0&&this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(i.first))<0||r===1&&0<this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(i.first))))return;e[n]=i,t[n]=!0}}merge(e,t,n,r,i){let a={...e},o={...r},s={...i},c={...t},l={...n},u=c.second,d=l.second;for(;;){if(this.join(c.first,l.first,0,1,s),c.first=this.getNextDEdge(s.first,0),l.first=this.getNextDEdge(s.second,1),c.first===a.first&&l.first===o.first){this.joinEdges2(u,d),this.joinEdges2(o.second,a.second);break}c.second=c.first.twin,l.second=l.first.twin;let e=this.getPointXYFromEdge(s.first),t=this.getPointXYFromEdge(s.second);if(c.first===a.first){let n=T(null,null);n.first=this.getNextDEdge(l.first,1),n.second=n.first.twin,n=this.checkEdge(n,e,t,1,!1),E(c,s),E(s,l),l=T(n.second,n.first)}else if(l.first===o.first){let n=T(null,null);n.first=this.getNextDEdge(c.first,0),n.second=n.first.twin,n=this.checkEdge(n,e,t,0,!1),l=T(s.second,s.first),E(s,c),c=T(n.second,n.first)}else{let n=T(null,null);n.first=this.getNextDEdge(c.first,0),n.second=n.first.twin,n=this.checkEdge(n,e,t,0,!1);let r=T(null,null);r.first=this.getNextDEdge(l.first,1),r.second=r.first.twin,r=this.checkEdge(r,e,t,1,!1);let i=this.getPointXYFromEdge(n.second),a=this.getPointXYFromEdge(r.second),o=this.inCircle(e,t,i,a);o===0&&(o=this.orientation(e,t,a)),0<o?(E(c,s),E(s,l),l=T(r.second,r.first)):(l=T(s.second,s.first),E(s,c),c=T(n.second,n.first))}this.deleteTwinEdges(s,!1)}}findEdgeClockwise(e,t,n,r,i,a){for(e[0]=r;;){t[0]=e[0],++t[0]===n.length&&(t[0]=0);let r=this.orientation(i,a,this.getPointXYFromEdge(n[t[0]]));if(r<=0)return r<0;e[0]=t[0]}}findEdgeCounterClockwise(e,t,n,r,i,a){for(t[0]=r;;){e[0]=t[0]===0?n.length:t[0],e[0]--;let r=this.orientation(i,a,this.getPointXYFromEdge(n[e[0]]));if(0<=r)return 0<r;t[0]=e[0]}}constraintFindFirstEdge(e,t,n,i){let a=[];{let r=this.getEdgeFromPoint(n),o=r;do{let n=this.getTwinEdge(o);if(this.getPointFromEdge(n)===i)return e[0]=n,t[0]=o,e[0].setMask(),t[0].setMask(),!1;a.push(n),o=this.getClockwiseEdge(o)}while(o!==r)}a.length<3&&r(`add_constraint`);let o=-1;for(let e=0,t=a.length;e<t;e++)this.isInfinitePointFromEdge(a[e])&&(o!==-1&&r(`add_constraint`),o=e);let s=this.getPointXY(n),c=this.getPointXY(i),l,u;if(o!==-1)for(g(a,0,o+1,a.length),a.pop(),this.orientation(s,c,this.getPointXYFromEdge(a[0]))===0&&r(`add_constraint - point on constraint`),this.orientation(s,c,this.getPointXYFromEdge(a.at(-1)))===0&&r(`add_constraint - point on constraint`),l=0,u=a.length-1;l+1!==u;){let e=l+u>>1,t=this.orientation(s,c,this.getPointXYFromEdge(a[e]));t===0&&r(`add_constraint - point on constraint`),0<t?l=e:u=e}else{let e=0,t=this.orientation(s,c,this.getPointXYFromEdge(a[e]));if(t!==0){if(0<t){let t=[0],n=[0];this.findEdgeClockwise(t,n,a,e,s,c)||r(`add_constraint`),l=t[0],u=n[0]}else{let t=[0],n=[0];this.findEdgeCounterClockwise(t,n,a,e,s,c)||r(`add_constraint`),l=t[0],u=n[0]}}else{e++,t=this.orientation(s,c,this.getPointXYFromEdge(a[e])),t<=0&&r(`add_constraint`);let n=[0],i=[0];this.findEdgeClockwise(n,i,a,e,s,c)||r(`add_constraint`),l=n[0],u=i[0]}}return e[0]=a[l],t[0]=a[u],!0}triangulateConstraint(e,t,n,r){if(t===n)return;let i=n;for(let a=t;a!==n;++a)this.inCircle(this.getPointXYFromEdge(r.first),this.getPointXYFromEdge(r.second),this.getPointXYFromEdge(e[i]),this.getPointXYFromEdge(e[a]))<0&&(i=a);if(i!==n){let t=this.newPairEdge();this.join(r.first,e[i],1,1,t),e[i]=t.second,this.triangulateConstraint(e,i+1,n,t)}if(i!==t){let n=this.newPairEdge();this.join(e[i],r.second,1,0,n),this.triangulateConstraint(e,t,i-1,n)}}insideLine(e,t,n){return this.orientation(e,t,n)===0?t.x<e.x!=t.x<n.x||t.y<e.y!=t.y<n.y:!1}orientation(e,t,n){return l.orientationRobust(e,t,n)}inCircle(e,t,n,r){return l.inCircleRobust(e,t,n,r)}calculateCircleCenterFromThreePoints(e,t,n){return t.lt(e)&&(t=f(e,e=t)),n.lt(t)&&(n=f(t,t=n)),t.lt(e)&&(t=f(e,e=t)),l.calculateCircleCenterFromThreePoints(e,t,n)}compare(e,t){return 3*((N(e[0]<t[0])<<1)+N(e[0]>t[0]))+(N(e[1]<t[1])<<1)+N(e[1]>t[1])-1}caseFromCompare(e,t,n){return(this.compare(e,t)<<6)+(this.compare(e,n)<<3)+this.compare(t,n)}}function N(e){return+!!e}function P(e,t,n){return e[n]===t[n]?e[1-n]<t[1-n]:e[n]<t[n]}function F(e){return e&255}class I{m_numberOfSets;m_elements;m_sizes;constructor(e){this.m_numberOfSets=e,this.m_elements=Array.from({length:e},(e,t)=>t),this.m_sizes=h(e,1)}getNumberOfSets(){return this.m_numberOfSets}connected(e,t){return this.findRoot(e)===this.findRoot(t)}connect(e,t){let n=this.findRoot(e),r=this.findRoot(t);return n!==r&&(this.m_sizes[n]<this.m_sizes[r]?(this.m_sizes[r]+=this.m_sizes[n],this.m_elements[n]=r):(this.m_sizes[n]+=this.m_sizes[r],this.m_elements[r]=n),--this.m_numberOfSets,!0)}connectRange(e,t,n){if(t!==n)for(let r=t;r<n;++r)this.connect(e[t],e[r])}size(){return this.m_elements.length}size1(e){return n(0),0}findRoot(e){let t=e;if(this.m_elements[t]!==t)do this.m_elements[t]=this.m_elements[this.m_elements[t]],t=this.m_elements[t];while(this.m_elements[t]!==t);return t}}function L(){return d(NaN,d([0,0,0],[0,0,0]))}function R(e,t){if(e.first!==t.first)return e.first-t.first;let n=e.second.first,r=t.second.first;for(let e=0;e<3;++e)if(n[e]!==r[e])return n[e]-r[e];n=e.second.second,r=t.second.second;for(let e=0;e<3;++e)if(n[e]!==r[e])return n[e]-r[e];return 0}class z{getOperatorType(){return 10112}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!1}executeMany(e,t,n,r){return new B(e,t,n,r)}execute(e,t,n,r=null){let i=new B(null,t,!1,n);return i.addGeometry(e),i.buildAlphaShape(r)}}class B extends t{m_progressTracker;m_bMerge;m_alpha;m_bDone;m_multiPointForAttributes=null;m_inputGeometryCursor=null;m_index=-1;m_nDelaunayPoints=0;m_cDelaunay=new M;m_vertexDescription=null;alphaShapeConstruct(e,t){let n=e.getEdgeCount(),r=new v({vd:this.m_vertexDescription});if(!r)throw Error(`alphaShapeConstruct`);for(let i=0;i<n;++i){if(t[i]!==2)continue;let n=T(null,null);if(n.first=e.getEdge(i),n.second=e.getTwinEdge(n.first),t[e.getEdgeIndex(n.second)]!==1)continue;e.getPointXYFromEdge(n.first),r.startPath(e.getPointXYFromEdge(n.first));let a=i,o=n.second;for(;;){for(t[a]=3,o=e.getCounterClockwiseEdge(o);t[e.getEdgeIndex(o)]===1;)o=e.getCounterClockwiseEdge(o);if(o===n.first)break;r.lineTo(e.getPointXYFromEdge(o)),a=e.getEdgeIndex(o),o=e.getTwinEdge(o)}}return r}alphaShape(e,t){let n=e.getEdgeCount(),r=new Uint8Array(n);for(let i=0;i<n;++i){if(r[i]!==0)continue;let n=j(),a=e.getEdge(i);n.p[0]=e.getPointFromEdge(a);let o=e.getClockwiseEdge(e.getTwinEdge(a));n.p[1]=e.getPointFromEdge(o);let s=e.getEdgeIndex(o),c=e.getClockwiseEdge(e.getTwinEdge(o));n.p[2]=e.getPointFromEdge(c);let d=e.getEdgeIndex(c),f=1;for(let t=0;t<3;++t)if(e.isInfinitePointFromPoint(n.p[t])){f=2;break}if(f===1){let r=u(l,3);for(let t=0;t<3;++t)r[t]=e.getPointXY(n.p[t]);let i=l.sqrDistance(r[0],r[1]),a=l.sqrDistance(r[1],r[2]),o=l.sqrDistance(r[2],r[0]),s=2*r[1].sub(r[0]).crossProduct(r[2].sub(r[0]));t<i*a*o/(s*s)&&(f=2)}r[i]=r[s]=r[d]=f}return this.alphaShapeConstruct(e,r)}alphaShapeAlphaOut(e,t){let n=e.getEdgeCount(),r=new Uint8Array(n),i=[],a=new I(e.getPointCount());for(let t=0;t<n;++t){if(r[t]!==0)continue;let n=j(),a=e.getEdge(t);n.p[0]=e.getPointFromEdge(a);let o=e.getClockwiseEdge(e.getTwinEdge(a));n.p[1]=e.getPointFromEdge(o);let s=e.getEdgeIndex(o),c=e.getClockwiseEdge(e.getTwinEdge(o));n.p[2]=e.getPointFromEdge(c);let u=e.getEdgeIndex(c),d=1;for(let t=0;t<3;++t)if(e.isInfinitePointFromPoint(n.p[t])){d=2;break}if(d===1){let r=[,,,];for(let t=0;t<3;++t)r[t]=e.getPointXY(n.p[t]);let a=l.sqrDistance(r[0],r[1]),o=l.sqrDistance(r[1],r[2]),c=l.sqrDistance(r[2],r[0]),f=r[1].sub(r[0]).crossProduct(r[2].sub(r[0])),p=L();p.first=a*o*c/(f*f),p.second.first[0]=t,p.second.first[1]=s,p.second.first[2]=u,p.second.second[0]=e.getPointIndex(n.p[0]),p.second.second[1]=e.getPointIndex(n.p[1]),p.second.second[2]=e.getPointIndex(n.p[2]),i.push(p),d=2}r[t]=r[s]=r[u]=d}i.sort((e,t)=>R(e,t));let o=0;for(let e of i){if(a.getNumberOfSets()===1&&e.first!==o)break;r[e.second.first[0]]=r[e.second.first[1]]=r[e.second.first[2]]=1;let t=[e.second.second[0],e.second.second[1],e.second.second[2]];a.connectRange(t,0,3),o=e.first}return t&&(t[0]=.25*o),this.alphaShapeConstruct(e,r)}constructor(e,t,n,r){super(),this.m_progressTracker=r,this.m_alpha=Number.isNaN(t)||!Number.isFinite(t)||t<0?-1:t<Number.MIN_VALUE?0:t,this.m_bMerge=n,this.m_bDone=!1,this.m_inputGeometryCursor=e,this.prepareDelaunay()}prepareDelaunay(){this.m_nDelaunayPoints=0,this.m_cDelaunay.clear(),this.m_alpha!==0&&this.m_cDelaunay.prepare(m())}next(){if(this.m_bMerge){if(!this.m_bDone){let e=this.calculateAlphaShapeMerging(this.m_inputGeometryCursor,this.m_progressTracker);return this.m_bDone=!0,e}return null}if(!this.m_bDone){let e=this.m_inputGeometryCursor.next();if(e!==null)return i(e),a(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),this.calculateAlphaShape(e,this.m_progressTracker);this.m_bDone=!0}return null}tock(){return!0}getRank(){return 1}getGeometryID(){return this.m_index}calculateAlphaShapeMerging(e,t){let n;for(;n=e.next();)i(n),a(n),this.addGeometry(n);return this.buildAlphaShape()}calculateAlphaShape(e,t){return e.isEmpty()?new v({vd:e.getDescription()}):(this.prepareDelaunay(),this.addGeometry(e),this.buildAlphaShape())}buildAlphaShape(e=null){if(e&&(e[0]=this.m_alpha),this.m_alpha===0)return this.m_vertexDescription?new v({vd:this.m_vertexDescription}):new v;if(this.m_cDelaunay.removeDuplicates())for(let e=0,t=this.m_cDelaunay.getPointCount();e<t;++e)this.m_cDelaunay.setPointIndex(this.m_cDelaunay.getPoint(e),e);return this.m_cDelaunay.construct()?this.m_alpha<0?this.alphaShapeAlphaOut(this.m_cDelaunay,e):this.alphaShape(this.m_cDelaunay,this.m_alpha):this.m_vertexDescription?new v({vd:this.m_vertexDescription}):new v}addGeometry(e){if(i(e),a(e),this.m_alpha===0||((!this.m_vertexDescription||!this.m_bMerge)&&(this.m_vertexDescription=e.getDescription(),this.m_multiPointForAttributes=this.m_vertexDescription.getAttributeCount()>1?new y({vd:this.m_vertexDescription}):null),e.isEmpty()))return;let t=e.getGeometryType();if(o(t)){let t=e,n=new l;for(let e=0,r=t.getPointCount();e<r;e++)t.queryXY(e,n),this.m_cDelaunay.addVertex(n,this.m_nDelaunayPoints++);this.m_multiPointForAttributes&&this.m_multiPointForAttributes.addPoints(t,0,-1)}else if(t===s.enumPoint){let t=e,n=t.getXY();this.m_cDelaunay.addVertex(n,this.m_nDelaunayPoints++),this.m_multiPointForAttributes&&this.m_multiPointForAttributes.add(t)}else r(`bad geometry type`)}}const V=new z;function H(e,t,n){return V.execute(e,t,null,n)}function U(t,n,r){let i=V.executeMany(new e(t),n,r,null);return Array.from(i)}function W(){return V.supportsCurves()}export{H as execute,U as executeMany,W as supportsCurves};
2
+ import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{g as n,b as r,p as i,t as a,i as o,G as s}from"../../../chunks/Geometry.js";import{v as c,P as l,d as u,o as d,s as f,w as p,i as m,c as h}from"../../../chunks/Point2D.js";import{r as g,h as _,P as v,M as y}from"../../../chunks/MultiPathImpl.js";function b(e,t,n,r,i,a){let o=r-t;if(o<=a)return _(e,t,n,r,i),n;let s=S(e,t,r,i,Math.min(Math.max(o>>1,3),100)),c=e[s];e[t]=f(e[s],e[s]=e[t]);let l=t+1,u=!1;for(let n=t+1;n!==r;++n)i(e[n],c)&&(e[l]=f(e[n],e[n]=e[l]),++l,u=!0);if(!u)for(let r=t+1;r<n;++r)i(c,e[r])||(r!==l&&(e[l]=f(e[r],e[r]=e[l])),++l);return--l,e[l]=f(e[t],e[t]=e[l]),l}function x(e,t,n){let r=Math.trunc(t/2),i=BigInt(r),a=BigInt(t);for(let t=0;t<n;++t)e.push(Number(i%a)),i=6364136223846793005n*i+1442695040888963407n&9223372036854775807n,i=BigInt.asUintN(64,i);p(e),e.length=c(e,(e,t)=>e===t)}function S(e,t,n,r,i){let a=[];x(a,n-t,i);let o=[];for(let n=0,r=a.length;n<r;n++){let r=a[n];o.push(d(e[t+r],r))}let s=Math.trunc(o.length/2);return o.sort((e,t)=>r(e.first,t.first)?-1:1),t+o[s].second}function C(){return{p:new l,userData:NaN,edge:null}}class w{info=0;mask=!1;p=null;a=[null,null];twin=null;nextFreeEdge(){return this.twin}setIndex(e){this.info=e,this.mask=!1}getIndex(){return this.info}setMask(){this.mask=!0}getMask(){return this.mask}}function T(e,t){return{first:e,second:t}}function E(e,t){e.first=t.first,e.second=t.second}function D(){return this.i1-this.i0}function O(){return{i0:NaN,i1:NaN,nextFreeEdgeIndex:[-1],box:[T(null,null),T(null,null)],size:D}}function k(){return{k:0,pTask:null,pTask0:null,pTask1:null}}function A(){return{p:[new l,new l],points:[null,null]}}function j(){return{p:[null,null,null]}}class M{m_nextFreePairEdge=T(null,null);m_points=[];m_pointZero=null;m_edges=[];m_voronoiToEdge=[];m_nextFreeEdge=0;clear(){this.m_nextFreePairEdge=T(null,null),this.m_points.length=0,this.m_pointZero=null,this.m_edges.length=0,this.m_voronoiToEdge.length=0,this.m_nextFreeEdge=0}reservePoints(e){n(e>1)}prepare(e){{let t=C();t.p.x=1/0,t.p.y=1/0,t.userData=e,this.m_points.push(t)}}addVertex(e,t){let n=C();n.p.assign(e),n.userData=t,n.edge=null,this.m_points.push(n)}removeDuplicates(){let e=this.m_points.shift();this.m_points.sort((e,t)=>e.p.compareX(t.p));let t=c(this.m_points,(e,t)=>e.p.equals(t.p)),n=t!==this.m_points.length;return this.m_points.length=t,this.m_points.unshift(e),n}boundVoronoiCells(e,t){let n=this.m_points.length;if(n<2)return!1;let r=[this.m_points[1].p.clone(),this.m_points[1].p.clone()];for(let e=2;e<n;e++){let t=this.m_points[e].p;t.x<r[0].x&&(r[0].x=t.x),r[1].x<t.x&&(r[1].x=t.x),t.y<r[0].y&&(r[0].y=t.y),r[1].y<t.y&&(r[1].y=t.y)}let i=new l;i.x=.5*(r[0].x+r[1].x),i.y=.5*(r[0].y+r[1].y);let a=0;for(let e=1;e<n;e++){let t=this.m_points[e].p,n=l.sqrDistanceCoords(t.x,t.y,i.x,i.y);a<n&&(a=n)}let o=Math.sqrt(a),s=Math.max(o+2*e,1.5*o);{let e=.8660254037844386,n=.5,r=1,a=0;for(let o=0;o<12;o++){let o=new l;o.x=i.x+s*r,o.y=i.y+s*a,this.addVertex(o,t);let c=r*e-a*n,u=r*n+a*e;r=c,a=u}}return!0}construct(){let e=O();return this.constructTask(e)?(this.solveTask(e),!0):!1}constructTask(e){if(this.m_pointZero=this.createZeroHandle(),n(this.m_pointZero!==void 0),this.m_points.length<3)return!1;let t=6*(this.m_points.length-2);this.m_edges=u(w,t);for(let e=0;e<t;e++)this.m_edges[e].setIndex(e);return e.i0=1,e.i1=this.m_points.length,e.nextFreeEdgeIndex[0]=0,!0}splitTask(e,t,n,r){let i=e,a=t,o=n,s=r;i.k=this.findMaxSide(s.i0,s.i1);let c=s.i0+s.i1>>1,l=1250;c=i.k===0?b(this.m_points,s.i0,c,s.i1,(e,t)=>e.p[0]===t.p[0]?e.p[1]<t.p[1]:e.p[0]<t.p[0],l):b(this.m_points,s.i0,c,s.i1,(e,t)=>e.p[1]===t.p[1]?e.p[0]<t.p[0]:e.p[1]<t.p[1],l),a.i0=s.i0,a.i1=c,a.nextFreeEdgeIndex[0]=s.nextFreeEdgeIndex[0],s.nextFreeEdgeIndex[0]+=6*(a.i1-a.i0-1)+2,o.i0=c,o.i1=s.i1,o.nextFreeEdgeIndex[0]=s.nextFreeEdgeIndex[0],s.nextFreeEdgeIndex[0]+=6*(o.i1-o.i0-1)+2,i.pTask=s,i.pTask0=a,i.pTask1=o}solveMergeTask(e){let t=this.newPairEdgeEx(e.pTask.nextFreeEdgeIndex,!1);if(e.pTask.box[e.k]=T(e.pTask0.box[e.k].first,e.pTask1.box[e.k].second),e.pTask.box[1-e.k]=T(P(this.getPointXYFromEdge(e.pTask0.box[1-e.k].first),this.getPointXYFromEdge(e.pTask1.box[1-e.k].first),1-e.k)?e.pTask0.box[1-e.k].first:e.pTask1.box[1-e.k].first,P(this.getPointXYFromEdge(e.pTask0.box[1-e.k].second),this.getPointXYFromEdge(e.pTask1.box[1-e.k].second),1-e.k)?e.pTask1.box[1-e.k].second:e.pTask0.box[1-e.k].second),e.pTask.i0+2===e.pTask.i1){let n=e.pTask0.box[e.k].second,r=n.twin,i=e.pTask1.box[e.k].first,a=i.twin;this.joinEdges2(r,a),this.joinEdges2(a,r),this.join(n,i,0,1,t);return}let n=[[,,],[,,]];n[0][0]=n[1][0]=T(e.pTask0.box[e.k].second,e.pTask0.box[e.k].second.twin),n[0][1]=n[1][1]=T(e.pTask1.box[e.k].first,e.pTask1.box[e.k].first.twin);let r=[!1,!1];if(e.pTask0.i0+1===e.pTask0.i1?(this.findEdgeSide(n[0],r,1,0),this.findEdgeSide(n[1],r,1,1)):(this.findEdge(n[0],r,0),this.findEdge(n[1],r,1)),!r[0]&&!r[1])this.getNextDEdge(n[0][0].first,0)!==n[0][0].first&&(n[1][0]=this.newPairEdgeEx(e.pTask0.nextFreeEdgeIndex,!1),this.insertEdge(n[0][0].first,n[1][0].first,0),this.insertEdge(n[0][0].second,n[1][0].second,1)),this.getNextDEdge(n[0][1].first,0)!==n[0][1].first&&(n[1][1]=this.newPairEdgeEx(e.pTask1.nextFreeEdgeIndex,!1),this.insertEdge(n[0][1].first,n[1][1].first,1),this.insertEdge(n[0][1].second,n[1][1].second,0));else{if(r[0]){let t=this.newPairEdgeEx(e.pTask0.nextFreeEdgeIndex,!1);this.insertEdge(n[0][0].first,t.first,0),this.insertEdge(n[0][0].second,t.second,1)}if(r[1]){let t=this.newPairEdgeEx(e.pTask1.nextFreeEdgeIndex,!1);this.insertEdge(n[0][1].first,t.first,1),this.insertEdge(n[0][1].second,t.second,0)}}this.merge(n[1][0],n[0][0],n[0][1],n[1][1],t)}static c_aTableDelaunayTriangulationSolution=Uint8Array.from([41,74,0,0,0,0,0,0,0,206,0,0,0,0,0,0,0,0,0,0,65,0,0,0,0,0,33,33,65,0,0,0,0,0,0,0,193,0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,86,54,86,0,0,0,0,0,0,0,214,173,0,0,0,0,0,0,0,107,239,0,0,0,0,0,0,0,0,0,181,0,0,0,0,0,0,0,181,0,0,0,0,0,0,117,117,245,0,0,0,0,0,0,0,0,0,103,0,0,0,0,0,0,0,167,0,0,0,0,0,0,231,103,231,0,0,0,0,0,0,50,0,0,0,0,0,0,0,0,198,0,0,41,0,0,74,0,0,49,0,0,49,0,0,50,0,0,194,0,0,193,0,0,194,0,0,0,0,0,206,0,0,0,0,0,0,0,0,54,0,0,0,0,0,0,0,0,198,0,0,0,0,0,82,50,82,0,0,0,0,0,0,0,198,0,66,0,0,65,0,0,66,49,66,33,57,65,82,50,90,0,194,0,0,193,0,0,194,0,0,0,0,0,0,0,214,0,0,0,0,0,86,54,86,0,0,0,0,0,0,0,222,0,0,0,0,0,0,178,0,0,0,0,0,0,230,102,230,177,0,0,177,0,0,178,0,177,0,0,177,0,0,178,0,113,226,113,113,249,226,122,226,0,0,0,0,0,0,102,0,0,0,0,0,0,0,190,0,0,0,0,0,0,230,102,230,0,0,0,165,0,0,0,0,0,0,0,0,243,0,0,0,0,0,173,0,0,0,0,0,0,0,0,165,0,0,0,0,0,0,0,0,245,0,0,0,0,0,107,0,0,239,0,0,163,0,0,163,0,0,167,0,0,247,0,0,243,0,0,247,0,0,37,37,69,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,69,0,0,0,0,0,37,37,69,0,0,0,0,0,0,0,221,0,0,0,0,215,0,0,211,0,0,215,35,87,35,35,91,87,63,87,0,215,0,0,211,0,0,215,0,0,0,165,0,0,0,0,0,0,115,115,243,0,0,0,0,0,0,181,0,0,0,0,0,0,0,189,0,0,0,0,0,0,117,117,245,0,0,0,99,0,0,99,0,0,103,0,163,0,0,163,0,0,167,0,99,247,115,123,243,231,103,255]);solveTask(e){let t=e;switch(t.i1-t.i0){case 1:{this.insertPoint(t.i0,t.nextFreeEdgeIndex);let e=this.m_points[t.i0].edge;t.box[0]=t.box[1]=d(e,e)}break;case 2:{let e=t.i0,n=e+1;this.insertPoint(e,t.nextFreeEdgeIndex),this.insertPoint(n,t.nextFreeEdgeIndex);let r=this.m_points[e],i=this.m_points[n],a=r.edge,o=i.edge,s=a.twin,c=o.twin;this.joinEdges2(s,c),this.joinEdges2(c,s);let l=this.newPairEdgeEx(t.nextFreeEdgeIndex,!1);this.join(a,o,0,1,l);for(let e=0;e<2;e++)t.box[e]=P(this.getPointXY(r),this.getPointXY(i),e)?T(a,o):T(o,a)}break;case 3:{let e=[t.i0,t.i0+1,t.i0+2];this.insertPoint(e[0],t.nextFreeEdgeIndex),this.insertPoint(e[1],t.nextFreeEdgeIndex),this.insertPoint(e[2],t.nextFreeEdgeIndex);let n=[this.m_points[e[0]],this.m_points[e[1]],this.m_points[e[2]]],r=this.caseFromCompare(n[0].p,n[1].p,n[2].p),i=[n[0].edge,n[1].edge,n[2].edge],a=M.c_aTableDelaunayTriangulationSolution[r],o=F(19*F((a&7)+1)),s=F(19*F((a>>5)+1)),c=F(a<<3)>>6,l=o&3,u=o>>6,d=s&3,p=s>>6;t.box[0]=T(i[l],i[u]),t.box[1]=T(i[d],i[p]);let m=[i[0].twin,i[1].twin,i[2].twin],h=[this.newPairEdgeEx(t.nextFreeEdgeIndex,!1),this.newPairEdgeEx(t.nextFreeEdgeIndex,!1),this.newPairEdgeEx(t.nextFreeEdgeIndex,!1)];switch(c===3&&(c=this.orientation(n[0].p,n[1].p,n[2].p)+1),c){case 0:this.joinEdges2(m[0],m[2]),this.joinEdges2(m[2],m[1]),this.joinEdges2(m[1],m[0]),this.join(i[0],i[2],0,1,h[0]),this.join(i[2],i[1],0,1,h[1]),this.join(i[1],i[0],0,1,h[2]);break;case 1:{let e=[0,1,2];e[3-(l+u)]=f(e[1],e[1]=e[3-(l+u)]),this.joinEdges2(m[e[0]],m[e[1]]),this.joinEdges2(m[e[1]],m[e[2]]),this.joinEdges2(m[e[2]],m[e[0]]),this.join(i[e[0]],i[e[1]],0,1,h[0]),this.join(i[e[1]],i[e[2]],0,1,h[1]),this.join(h[1].first,m[e[2]],0,1,h[2])}break;case 2:this.joinEdges2(m[0],m[1]),this.joinEdges2(m[1],m[2]),this.joinEdges2(m[2],m[0]),this.join(i[0],i[1],0,1,h[0]),this.join(i[1],i[2],0,1,h[1]),this.join(i[2],i[0],0,1,h[2])}}break;default:{let t=k(),n=O(),r=O();this.splitTask(t,n,r,e),this.solveTask(n),this.solveTask(r),this.solveMergeTask(t)}}}getOutsideHull(){let e=[],t=this.m_points[0].edge,n=t;do e.push(this.getPointFromEdge(this.getTwinEdge(n))),n=this.getNextDEdge(n,0);while(n!==t);return e}getConvexHull(){let e=[],t=this.m_points[0].edge,n=t;do{let t=this.getPointFromEdge(this.getTwinEdge(n));e.length<2||!this.insideLine(this.getPointXY(e.at(-2)),this.getPointXY(e.at(-1)),this.getPointXY(t))?e.push(t):e[e.length-1]=t,n=this.getNextDEdge(n,0)}while(n!==t);return 2<e.length&&this.insideLine(this.getPointXY(e[0]),this.getPointXY(e.at(-1)),this.getPointXY(e.at(-2)))&&e.pop(),2<e.length&&this.insideLine(this.getPointXY(e[1]),this.getPointXY(e[0]),this.getPointXY(e.at(-1)))&&(e[0]=e.at(-1),e.pop()),e}getVoronoiPolygon(e,t){e.length=0;let n=this.getEdgeFromPoint(t),r=n;for(;;){let t=this.calculateCircleCenter(r);e.push(t);let i=this.getNextDEdge(r,1);if(i===n)break;r=i}}getNearestPoint(e){this.isInfinitePointFromPoint(e)&&r(`Not supported for the infinite point`);let t=this.getPointXY(e),n=this.m_pointZero,i=Number.MAX_VALUE,a=this.getEdgeFromPoint(e),o=a;do{let e=this.getPointFromEdge(this.getTwinEdge(o));if(!this.isInfinitePointFromPoint(e)){let r=l.sqrDistance(t,this.getPointXY(e));r<i&&(n=e,i=r)}o=this.getCounterClockwiseEdge(o)}while(o!==a);return n}addConstraint(e,t){let n=[null],i=[null];if(!this.constraintFindFirstEdge(n,i,e,t))return T(i[0],n[0]);n[0]=this.getTwinEdge(n[0]);let a=this.getPointXY(e),o=this.getPointXY(t),s=[[],[]],c=n[0];for(;;){let e=this.getClockwiseEdge(i[0]);e.getMask()&&r(`add_constraint`);let c=T(e,this.getTwinEdge(e));this.deleteTwinEdges(c,!0);let l=this.getCounterClockwiseEdge(this.getTwinEdge(n[0])),u=this.getTwinEdge(this.getClockwiseEdge(i[0])),d=this.getPointFromEdge(u);if(d===t){s[0].push(n[0]),n[0]=l,s[1].push(i[0]),i[0]=u;break}let f=this.orientation(a,o,this.getPointXY(d));f===0&&r(`add_constraint - point on constraint`),0<f?(s[0].push(n[0]),n[0]=l):(s[1].push(i[0]),i[0]=u)}s[0].push(n[0]),s[1].push(i[0]);let l=this.newPairEdge();l.first.setMask(),l.second.setMask(),this.join(i[0],c,1,1,l),this.triangulateConstraint(s[0],1,s[0].length-1,l),s[1].reverse();let u=T(l.second,l.first);return this.triangulateConstraint(s[1],1,s[1].length-1,u),u}verify(){for(let e=0,t=this.m_edges.length;e<t;e++){let t=this.m_edges[e];if(!t.getMask()&&!this.testEdge(t))return!1}return!0}getDelaunayTriangleCount(){return this.m_points.length-2<<1}getVoronoiSegments(e=Number.MAX_VALUE){let t=[];for(let n=0,r=this.m_edges.length;n<r;n+=2){let r=T(null,null);if(r.first=this.m_edges[n],r.second=r.first.twin,this.isInfinitePointFromEdge(r.first)&&(r.second=f(r.first,r.first=r.second)),this.isInfinitePointFromEdge(r.second)){let n=u(l,3);n[0]=this.calculateCircleCenter(this.getNextDEdge(r.first,0).twin,1),n[2]=this.calculateCircleCenter(this.getNextDEdge(r.first,1),1);let i=u(l,2);i[0].assign(n[0]),i[1].assign(n[2]),i[0].rightPerpendicularThis(),i[1].leftPerpendicularThis(),n[1]=n[0].add(i[0]).add(n[2].add(i[1])),n[1].normalize();for(let t of n)t.mulThis(e);let a=A();a.points[0]=r.first.p,a.points[1]=r.second.p;for(let e=0;e<n.length-1;e++){for(let t=0;t<2;t++)a.p[t]=n[e+t];a.p[0].equals(a.p[1])||t.push(a)}}else if(this.isInfinitePointFromEdge(this.getNextDEdge(r.first,0).twin)&&this.isInfinitePointFromEdge(this.getNextDEdge(r.first,1).twin)){let e=u(l,3);e[0]=this.calculateCircleCenter(r.first),e[1]=this.getPointXY(this.getPointFromEdge(r.first)).add(this.getPointXY(this.getPointFromEdge(r.second))).mul(.5),e[2]=this.calculateCircleCenter(r.second);let n=A();n.points[0]=r.first.p,n.points[1]=r.second.p;for(let r=0;r<e.length-1;r++){for(let t=0;t<2;t++)n.p[t]=e[r+t];n.p[0].equals(n.p[1])||t.push(n)}}else{let e=A();e.p[0]=this.calculateCircleCenter(r.first),e.p[1]=this.calculateCircleCenter(r.second),e.points[0]=r.first.p,e.points[1]=r.second.p,e.p[0].equals(e.p[1])||t.push(e)}}return t}startDelaunayTriangles(){return-1}nextDelaunayTriangle(e,t){for(;;){if(++t[0],t[0]===this.m_edges.length)return!1;let n=this.m_edges[t[0]];if(e.p[0]=this.getPointFromEdge(n),this.isInfinitePointFromPoint(e.p[0]))continue;let r=this.getTwinEdge(n);if(e.p[1]=this.getPointFromEdge(r),this.isInfinitePointFromPoint(e.p[1])||this.getPointXY(e.p[1]).lt(this.getPointXY(e.p[0])))continue;let i=this.getTwinEdge(this.getNextDEdge(n,1));if(e.p[2]=this.getPointFromEdge(i),!this.isInfinitePointFromPoint(e.p[2])&&!this.getPointXY(e.p[2]).lt(this.getPointXY(e.p[0])))return!0}}getPointCount(){return this.m_points.length-1}getPoint(e){return this.m_points[e+1]}getInfinitePoint(){return this.m_pointZero}isInfinitePointFromPoint(e){return e===this.m_pointZero}getPointXY(e){return e.p}getPointIndex(e){return e.userData}setPointIndex(e,t){e.userData=t}getEdgeFromPoint(e){return e.edge}isInfinitePointFromEdge(e){return e.p===this.m_pointZero}getEdgeCount(){return this.m_edges.length}getEdge(e){return this.m_edges[e]}getEdgeIndex(e){return e.getIndex()}getPointFromEdge(e){return e.p}getPointXYFromEdge(e){return e.p.p}getCounterClockwiseEdge(e){return e.a[0]}getClockwiseEdge(e){return e.a[1]}getTwinEdge(e){return e.twin}getPreviousEdge(e){return this.getTwinEdge(this.getCounterClockwiseEdge(e))}getNextEdge(e){return this.getClockwiseEdge(this.getTwinEdge(e))}getNextDEdge(e,t=1){return e.a[t]}newPairEdge(){let e=T(this.m_nextFreePairEdge.first,this.m_nextFreePairEdge.second);return this.m_nextFreePairEdge.first=this.m_nextFreePairEdge.first.nextFreeEdge(),this.m_nextFreePairEdge.second=this.m_nextFreePairEdge.second.nextFreeEdge(),e.first.twin=e.second,e.second.twin=e.first,e}newPairEdgeEx(e,t){let n;if(t&&this.m_nextFreePairEdge.first!==null)n=T(this.m_nextFreePairEdge.first,this.m_nextFreePairEdge.second),this.m_nextFreePairEdge.first=this.m_nextFreePairEdge.first.nextFreeEdge(),this.m_nextFreePairEdge.second=this.m_nextFreePairEdge.second.nextFreeEdge();else{let t=e[0]++,r=e[0]++;n=T(this.m_edges[t],this.m_edges[r])}return n.first.twin=n.second,n.second.twin=n.first,n}insertEdge(e,t,n){t.p=e.p;let r=e.a[n],i=t.a;i[n]=r,i[1-n]=e,e.a[n]=t,r.a[1-n]=t}insertPoint(e,t){let n=this.m_points[e],r=this.newPairEdgeEx(t,!1),i=r.first,a=r.second;n.edge=r.first,i.p=this.m_points[e],i.a[0]=r.first,i.a[1]=r.first,a.p=this.m_pointZero,a.a[0]=r.second,a.a[1]=r.second,this.m_points[0].edge===null&&(this.m_points[0].edge=r.second)}deleteTwinEdges(e,t){this.deleteEdge(e.first),this.deleteEdge(e.second),t&&(e.first.twin=this.m_nextFreePairEdge.first,e.second.twin=this.m_nextFreePairEdge.second,this.m_nextFreePairEdge=e)}join(e,t,n,r,i){this.insertEdge(e,i.first,n),this.insertEdge(t,i.second,r)}joinEdges2(e,t){e.a[1]=t,t.a[0]=e}checkEdge(e,t,n,r,i){for(;;){let a=T(null,null);if(a.first=this.getNextDEdge(e.first,r),a.second=a.first.twin,this.isInfinitePointFromEdge(a.second))return e;let o=this.getPointXYFromEdge(e.second),s=this.getPointXYFromEdge(a.second);if(this.inCircle(t,n,o,s)<=0)return e;if(this.deleteTwinEdges(e,i),!i){let t=this.getNextDEdge(e.second,r).twin;this.join(a.second,t,r,r,e)}e=a}}calculateCircleCenter(e,t=Number.MAX_VALUE){let n=this.getPointXYFromEdge(e),r=this.getPointXYFromEdge(e.twin),i=this.getNextDEdge(e,0);if(this.isInfinitePointFromEdge(i.twin)){let e=new l;if(Number.isNaN(t))e.setNAN();else{let i=r.sub(n);i.leftPerpendicularThis(),e.assign(i),e.divThis(Math.max(Math.abs(e.x),Math.abs(e.y))),e.normalize(),e.mulThis(t)}return e}let a=this.getPointXYFromEdge(i.twin);return this.calculateCircleCenterFromThreePoints(n,r,a)}createZeroHandle(){return this.m_points[0]}deleteEdge(e){let t=e,n=t.p;n.edge===e&&(n.edge=t.a[0]),t.a[0].a[1]=t.a[1],t.a[1].a[0]=t.a[0]}testEdge(e){if(this.isInfinitePointFromEdge(e))return!0;let t=e.twin;if(this.isInfinitePointFromEdge(t))return!0;let n=this.getNextDEdge(e,0).twin,r=this.getNextDEdge(t,0).twin;if(this.isInfinitePointFromEdge(n)||this.isInfinitePointFromEdge(r))return!0;let i=this.getPointXYFromEdge(e),a=this.getPointXYFromEdge(t),o=this.getPointXYFromEdge(n),s=this.getPointXYFromEdge(r);return this.orientation(i,a,o)<=0||0<=this.orientation(i,a,s)?!1:this.inCircle(i,a,o,s)<=0}findMaxSide(e,t){let n=[this.m_points[e].p.clone(),this.m_points[e].p.clone()];for(e++;e!==t;e++){let t=this.m_points[e].p;t.x<n[0].x&&(n[0].x=t.x),n[1].x<t.x&&(n[1].x=t.x),t.y<n[0].y&&(n[0].y=t.y),n[1].y<t.y&&(n[1].y=t.y)}return+(n[1].x-n[0].x<n[1].y-n[0].y)}findEdge(e,t,n){let r=!1,i=0;for(;;){let a=T(null,null);if(a.second=this.getNextDEdge(e[i].second,n^i),a.first=a.second.twin,n===0&&this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(a.first))<0||n===1&&0<this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(a.first)))e[i]=a,t[i]=!0,r=!1;else{if(r)return;i^=1,r=!0}}}findEdgeSide(e,t,n,r){for(;;){let i=T(null,null);if(i.second=this.getNextDEdge(e[n].second,r^n),i.first=i.second.twin,!(r===0&&this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(i.first))<0||r===1&&0<this.orientation(this.getPointXYFromEdge(e[0].first),this.getPointXYFromEdge(e[1].first),this.getPointXYFromEdge(i.first))))return;e[n]=i,t[n]=!0}}merge(e,t,n,r,i){let a={...e},o={...r},s={...i},c={...t},l={...n},u=c.second,d=l.second;for(;;){if(this.join(c.first,l.first,0,1,s),c.first=this.getNextDEdge(s.first,0),l.first=this.getNextDEdge(s.second,1),c.first===a.first&&l.first===o.first){this.joinEdges2(u,d),this.joinEdges2(o.second,a.second);break}c.second=c.first.twin,l.second=l.first.twin;let e=this.getPointXYFromEdge(s.first),t=this.getPointXYFromEdge(s.second);if(c.first===a.first){let n=T(null,null);n.first=this.getNextDEdge(l.first,1),n.second=n.first.twin,n=this.checkEdge(n,e,t,1,!1),E(c,s),E(s,l),l=T(n.second,n.first)}else if(l.first===o.first){let n=T(null,null);n.first=this.getNextDEdge(c.first,0),n.second=n.first.twin,n=this.checkEdge(n,e,t,0,!1),l=T(s.second,s.first),E(s,c),c=T(n.second,n.first)}else{let n=T(null,null);n.first=this.getNextDEdge(c.first,0),n.second=n.first.twin,n=this.checkEdge(n,e,t,0,!1);let r=T(null,null);r.first=this.getNextDEdge(l.first,1),r.second=r.first.twin,r=this.checkEdge(r,e,t,1,!1);let i=this.getPointXYFromEdge(n.second),a=this.getPointXYFromEdge(r.second),o=this.inCircle(e,t,i,a);o===0&&(o=this.orientation(e,t,a)),0<o?(E(c,s),E(s,l),l=T(r.second,r.first)):(l=T(s.second,s.first),E(s,c),c=T(n.second,n.first))}this.deleteTwinEdges(s,!1)}}findEdgeClockwise(e,t,n,r,i,a){for(e[0]=r;;){t[0]=e[0],++t[0]===n.length&&(t[0]=0);let r=this.orientation(i,a,this.getPointXYFromEdge(n[t[0]]));if(r<=0)return r<0;e[0]=t[0]}}findEdgeCounterClockwise(e,t,n,r,i,a){for(t[0]=r;;){e[0]=t[0]===0?n.length:t[0],e[0]--;let r=this.orientation(i,a,this.getPointXYFromEdge(n[e[0]]));if(0<=r)return 0<r;t[0]=e[0]}}constraintFindFirstEdge(e,t,n,i){let a=[];{let r=this.getEdgeFromPoint(n),o=r;do{let n=this.getTwinEdge(o);if(this.getPointFromEdge(n)===i)return e[0]=n,t[0]=o,e[0].setMask(),t[0].setMask(),!1;a.push(n),o=this.getClockwiseEdge(o)}while(o!==r)}a.length<3&&r(`add_constraint`);let o=-1;for(let e=0,t=a.length;e<t;e++)this.isInfinitePointFromEdge(a[e])&&(o!==-1&&r(`add_constraint`),o=e);let s=this.getPointXY(n),c=this.getPointXY(i),l,u;if(o!==-1)for(g(a,0,o+1,a.length),a.pop(),this.orientation(s,c,this.getPointXYFromEdge(a[0]))===0&&r(`add_constraint - point on constraint`),this.orientation(s,c,this.getPointXYFromEdge(a.at(-1)))===0&&r(`add_constraint - point on constraint`),l=0,u=a.length-1;l+1!==u;){let e=l+u>>1,t=this.orientation(s,c,this.getPointXYFromEdge(a[e]));t===0&&r(`add_constraint - point on constraint`),0<t?l=e:u=e}else{let e=0,t=this.orientation(s,c,this.getPointXYFromEdge(a[e]));if(t!==0){if(0<t){let t=[0],n=[0];this.findEdgeClockwise(t,n,a,e,s,c)||r(`add_constraint`),l=t[0],u=n[0]}else{let t=[0],n=[0];this.findEdgeCounterClockwise(t,n,a,e,s,c)||r(`add_constraint`),l=t[0],u=n[0]}}else{e++,t=this.orientation(s,c,this.getPointXYFromEdge(a[e])),t<=0&&r(`add_constraint`);let n=[0],i=[0];this.findEdgeClockwise(n,i,a,e,s,c)||r(`add_constraint`),l=n[0],u=i[0]}}return e[0]=a[l],t[0]=a[u],!0}triangulateConstraint(e,t,n,r){if(t===n)return;let i=n;for(let a=t;a!==n;++a)this.inCircle(this.getPointXYFromEdge(r.first),this.getPointXYFromEdge(r.second),this.getPointXYFromEdge(e[i]),this.getPointXYFromEdge(e[a]))<0&&(i=a);if(i!==n){let t=this.newPairEdge();this.join(r.first,e[i],1,1,t),e[i]=t.second,this.triangulateConstraint(e,i+1,n,t)}if(i!==t){let n=this.newPairEdge();this.join(e[i],r.second,1,0,n),this.triangulateConstraint(e,t,i-1,n)}}insideLine(e,t,n){return this.orientation(e,t,n)===0?t.x<e.x!=t.x<n.x||t.y<e.y!=t.y<n.y:!1}orientation(e,t,n){return l.orientationRobust(e,t,n)}inCircle(e,t,n,r){return l.inCircleRobust(e,t,n,r)}calculateCircleCenterFromThreePoints(e,t,n){return t.lt(e)&&(t=f(e,e=t)),n.lt(t)&&(n=f(t,t=n)),t.lt(e)&&(t=f(e,e=t)),l.calculateCircleCenterFromThreePoints(e,t,n)}compare(e,t){return 3*((N(e[0]<t[0])<<1)+N(e[0]>t[0]))+(N(e[1]<t[1])<<1)+N(e[1]>t[1])-1}caseFromCompare(e,t,n){return(this.compare(e,t)<<6)+(this.compare(e,n)<<3)+this.compare(t,n)}}function N(e){return+!!e}function P(e,t,n){return e[n]===t[n]?e[1-n]<t[1-n]:e[n]<t[n]}function F(e){return e&255}class I{m_numberOfSets;m_elements;m_sizes;constructor(e){this.m_numberOfSets=e,this.m_elements=Array.from({length:e},(e,t)=>t),this.m_sizes=h(e,1)}getNumberOfSets(){return this.m_numberOfSets}connected(e,t){return this.findRoot(e)===this.findRoot(t)}connect(e,t){let n=this.findRoot(e),r=this.findRoot(t);return n!==r&&(this.m_sizes[n]<this.m_sizes[r]?(this.m_sizes[r]+=this.m_sizes[n],this.m_elements[n]=r):(this.m_sizes[n]+=this.m_sizes[r],this.m_elements[r]=n),--this.m_numberOfSets,!0)}connectRange(e,t,n){if(t!==n)for(let r=t;r<n;++r)this.connect(e[t],e[r])}size(){return this.m_elements.length}size1(e){return n(0),0}findRoot(e){let t=e;if(this.m_elements[t]!==t)do this.m_elements[t]=this.m_elements[this.m_elements[t]],t=this.m_elements[t];while(this.m_elements[t]!==t);return t}}function L(){return d(NaN,d([0,0,0],[0,0,0]))}function R(e,t){if(e.first!==t.first)return e.first-t.first;let n=e.second.first,r=t.second.first;for(let e=0;e<3;++e)if(n[e]!==r[e])return n[e]-r[e];n=e.second.second,r=t.second.second;for(let e=0;e<3;++e)if(n[e]!==r[e])return n[e]-r[e];return 0}class z{getOperatorType(){return 10112}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!1}executeMany(e,t,n,r){return new B(e,t,n,r)}execute(e,t,n,r=null){let i=new B(null,t,!1,n);return i.addGeometry(e),i.buildAlphaShape(r)}}class B extends t{m_progressTracker;m_bMerge;m_alpha;m_bDone;m_multiPointForAttributes=null;m_inputGeometryCursor=null;m_index=-1;m_nDelaunayPoints=0;m_cDelaunay=new M;m_vertexDescription=null;alphaShapeConstruct(e,t){let n=e.getEdgeCount(),r=new v({vd:this.m_vertexDescription});if(!r)throw Error(`alphaShapeConstruct`);for(let i=0;i<n;++i){if(t[i]!==2)continue;let n=T(null,null);if(n.first=e.getEdge(i),n.second=e.getTwinEdge(n.first),t[e.getEdgeIndex(n.second)]!==1)continue;e.getPointXYFromEdge(n.first),r.startPath(e.getPointXYFromEdge(n.first));let a=i,o=n.second;for(;;){for(t[a]=3,o=e.getCounterClockwiseEdge(o);t[e.getEdgeIndex(o)]===1;)o=e.getCounterClockwiseEdge(o);if(o===n.first)break;r.lineTo(e.getPointXYFromEdge(o)),a=e.getEdgeIndex(o),o=e.getTwinEdge(o)}}return r}alphaShape(e,t){let n=e.getEdgeCount(),r=new Uint8Array(n);for(let i=0;i<n;++i){if(r[i]!==0)continue;let n=j(),a=e.getEdge(i);n.p[0]=e.getPointFromEdge(a);let o=e.getClockwiseEdge(e.getTwinEdge(a));n.p[1]=e.getPointFromEdge(o);let s=e.getEdgeIndex(o),c=e.getClockwiseEdge(e.getTwinEdge(o));n.p[2]=e.getPointFromEdge(c);let d=e.getEdgeIndex(c),f=1;for(let t=0;t<3;++t)if(e.isInfinitePointFromPoint(n.p[t])){f=2;break}if(f===1){let r=u(l,3);for(let t=0;t<3;++t)r[t]=e.getPointXY(n.p[t]);let i=l.sqrDistance(r[0],r[1]),a=l.sqrDistance(r[1],r[2]),o=l.sqrDistance(r[2],r[0]),s=2*r[1].sub(r[0]).crossProduct(r[2].sub(r[0]));t<i*a*o/(s*s)&&(f=2)}r[i]=r[s]=r[d]=f}return this.alphaShapeConstruct(e,r)}alphaShapeAlphaOut(e,t){let n=e.getEdgeCount(),r=new Uint8Array(n),i=[],a=new I(e.getPointCount());for(let t=0;t<n;++t){if(r[t]!==0)continue;let n=j(),a=e.getEdge(t);n.p[0]=e.getPointFromEdge(a);let o=e.getClockwiseEdge(e.getTwinEdge(a));n.p[1]=e.getPointFromEdge(o);let s=e.getEdgeIndex(o),c=e.getClockwiseEdge(e.getTwinEdge(o));n.p[2]=e.getPointFromEdge(c);let u=e.getEdgeIndex(c),d=1;for(let t=0;t<3;++t)if(e.isInfinitePointFromPoint(n.p[t])){d=2;break}if(d===1){let r=[,,,];for(let t=0;t<3;++t)r[t]=e.getPointXY(n.p[t]);let a=l.sqrDistance(r[0],r[1]),o=l.sqrDistance(r[1],r[2]),c=l.sqrDistance(r[2],r[0]),f=r[1].sub(r[0]).crossProduct(r[2].sub(r[0])),p=L();p.first=a*o*c/(f*f),p.second.first[0]=t,p.second.first[1]=s,p.second.first[2]=u,p.second.second[0]=e.getPointIndex(n.p[0]),p.second.second[1]=e.getPointIndex(n.p[1]),p.second.second[2]=e.getPointIndex(n.p[2]),i.push(p),d=2}r[t]=r[s]=r[u]=d}i.sort((e,t)=>R(e,t));let o=0;for(let e of i){if(a.getNumberOfSets()===1&&e.first!==o)break;r[e.second.first[0]]=r[e.second.first[1]]=r[e.second.first[2]]=1;let t=[e.second.second[0],e.second.second[1],e.second.second[2]];a.connectRange(t,0,3),o=e.first}return t&&(t[0]=.25*o),this.alphaShapeConstruct(e,r)}constructor(e,t,n,r){super(),this.m_progressTracker=r,this.m_alpha=Number.isNaN(t)||!Number.isFinite(t)||t<0?-1:t<Number.MIN_VALUE?0:t,this.m_bMerge=n,this.m_bDone=!1,this.m_inputGeometryCursor=e,this.prepareDelaunay()}prepareDelaunay(){this.m_nDelaunayPoints=0,this.m_cDelaunay.clear(),this.m_alpha!==0&&this.m_cDelaunay.prepare(m())}next(){if(this.m_bMerge){if(!this.m_bDone){let e=this.calculateAlphaShapeMerging(this.m_inputGeometryCursor,this.m_progressTracker);return this.m_bDone=!0,e}return null}if(!this.m_bDone){let e=this.m_inputGeometryCursor.next();if(e!==null)return i(e),a(e),this.m_index=this.m_inputGeometryCursor.getGeometryID(),this.calculateAlphaShape(e,this.m_progressTracker);this.m_bDone=!0}return null}tock(){return!0}getRank(){return 1}getGeometryID(){return this.m_index}calculateAlphaShapeMerging(e,t){let n;for(;n=e.next();)i(n),a(n),this.addGeometry(n);return this.buildAlphaShape()}calculateAlphaShape(e,t){return e.isEmpty()?new v({vd:e.getDescription()}):(this.prepareDelaunay(),this.addGeometry(e),this.buildAlphaShape())}buildAlphaShape(e=null){if(e&&(e[0]=this.m_alpha),this.m_alpha===0)return this.m_vertexDescription?new v({vd:this.m_vertexDescription}):new v;if(this.m_cDelaunay.removeDuplicates())for(let e=0,t=this.m_cDelaunay.getPointCount();e<t;++e)this.m_cDelaunay.setPointIndex(this.m_cDelaunay.getPoint(e),e);return this.m_cDelaunay.construct()?this.m_alpha<0?this.alphaShapeAlphaOut(this.m_cDelaunay,e):this.alphaShape(this.m_cDelaunay,this.m_alpha):this.m_vertexDescription?new v({vd:this.m_vertexDescription}):new v}addGeometry(e){if(i(e),a(e),this.m_alpha===0||(this.m_vertexDescription&&this.m_bMerge||(this.m_vertexDescription=e.getDescription(),this.m_multiPointForAttributes=this.m_vertexDescription.getAttributeCount()>1?new y({vd:this.m_vertexDescription}):null),e.isEmpty()))return;let t=e.getGeometryType();if(o(t)){let t=e,n=new l;for(let e=0,r=t.getPointCount();e<r;e++)t.queryXY(e,n),this.m_cDelaunay.addVertex(n,this.m_nDelaunayPoints++);this.m_multiPointForAttributes&&this.m_multiPointForAttributes.addPoints(t,0,-1)}else if(t===s.enumPoint){let t=e,n=t.getXY();this.m_cDelaunay.addVertex(n,this.m_nDelaunayPoints++),this.m_multiPointForAttributes&&this.m_multiPointForAttributes.add(t)}else r(`bad geometry type`)}}const V=new z;function H(e,t,n){return V.execute(e,t,null,n)}function U(t,n,r){let i=V.executeMany(new e(t),n,r,null);return Array.from(i)}function W(){return V.supportsCurves()}export{H as execute,U as executeMany,W as supportsCurves};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{e as n}from"../../../chunks/Envelope.js";import{t as r,b as i,G as a,h as o,g as s,a as c}from"../../../chunks/Geometry.js";import{a as l,P as u,L as d,d as f}from"../../../chunks/MultiPathImpl.js";import{P as p,l as m,n as h,r as g,u as _,h as v}from"../../../chunks/Point2D.js";import{s as y}from"../../../chunks/Bufferer-CclWhXVb.js";import{O as b}from"../../../chunks/OperatorGraphicBuffer.js";function x(e,t,n,a,o,s,c){if(e===null&&i(``),e.getDimension()<1&&i(``),o>0||i(``),r(e),t===0||e.isEmpty())return e;let l=new D(c);return l.m_bUseZ=e.hasAttribute(1),l.m_bUseM=e.hasAttribute(2),l.m_inputGeometry=e,l.m_distance=t,l.m_tolerance=o,l.m_joins=n,l.m_miterLimit=a>1?a:1,l.m_miterLimit=y(l.m_miterLimit),l.m_progressCounter=0,l.m_options=s,l.constructOffset()}const S=1.4142135623730951,C=.017453292519943295,w=1024;class T{x;y;m_next;m_prev;z;m;type;static construct(e,t,n){let r=new T;return r.x=e.x,r.y=e.y,r.m_next=-1,r.m_prev=-1,r.z=t,r.m=n,r.type=0,r}clone(){let e=new T;return e.x=this.x,e.y=this.y,e.m_next=this.m_next,e.m_prev=this.m_prev,e.z=this.z,e.m=this.m,e.type=this.type,e}asPoint2D(){return new p(this.x,this.y)}}function E(){return{pt:new T,bAtExistingPt:!1}}class D{m_progressTracker;m_inputGeometry;m_distance=-1;m_tolerance=-1;m_miterLimit=10;m_joins=0;m_progressCounter=0;m_options=0;m_bUseZ=!1;m_bUseM=!1;m_srcPts=[];m_srcPtCount=0;m_offsetPts=[];m_offsetPtCount=0;m_resultPath;m_a1=0;m_a2=0;constructor(e){this.m_progressTracker=e}constructOffset(){let t=this.m_inputGeometry.getGeometryType();if(t===a.enumLine)return this.offsetLine();if(t===a.enumEnvelope)return this.offsetEnvelope();if(o(t)){let e=new l;return e.addSegment(this.m_inputGeometry,!0),this.m_inputGeometry=e,this.constructOffset()}if(t===a.enumPolyline){let e=new l;return this.offsetMultiPath(e),e}if(t===a.enumPolygon){if(this.m_options===1){let t;switch(this.m_joins){case 1:t=2;break;case 2:t=1;break;case 0:t=0;break;case 3:t=2;break;default:s(!1,`Invalid join type`)}return new b().executeMany(new e([this.m_inputGeometry]),null,[-1],t,1,this.m_miterLimit,this.m_tolerance,360,!1,0,null).next()}let t=new u;return this.offsetMultiPath(t),t}c(``)}offsetLine(){let e=this.m_inputGeometry,t=e.getStartXY(),n=e.getEndXY(),r=new p;r.setSub(n,t),r.normalize(),r.leftPerpendicularThis(),r.scale(this.m_distance),t.addThis(r),n.addThis(r);let i=e.clone();return i.setStartXY(t),i.setEndXY(n),i}offsetEnvelope(){let e=this.m_inputGeometry;if(this.m_distance>0&&this.m_joins!==2){let t=new u;return t.addEnvelope(e,!1),this.m_inputGeometry=t,this.constructOffset()}let t=e.clone();return t.inflateCoords(this.m_distance,this.m_distance),t}progress(){}static buildPoint(e,t,n,r){r.x=e.x+t*Math.cos(n),r.y=e.y+t*Math.sin(n),r.type=e.type,r.z=e.z,r.m=e.m,r.m_next=-1,r.m_prev=-1}addPoint(e){this.m_offsetPts.push(e.clone()),this.m_offsetPtCount++}addPointEx(e,t){if(this.m_offsetPtCount===0){this.addPoint(e);return}let n=this.m_srcPtCount,r=this.m_srcPts[t===0?n-1:t-1],i=this.m_srcPts[t],a=D.dotSign(r,i,this.m_offsetPts[this.m_offsetPtCount-1],e);if(a>0)this.addPoint(e);else if(a<0){if(D.dotSign(r,i,i,this.m_offsetPts[this.m_offsetPtCount-1])>0){let i=new T,a;a=t===0?n-2:t===1?n-1:t-2;let o=this.m_srcPts[a],s=Math.atan2(r.y-o.y,r.x-o.x);if(D.buildPoint(r,this.m_distance,s-m,i),this.m_offsetPts[this.m_offsetPtCount-1]=i.clone(),this.m_joins===1||this.m_joins===2){i.x=(i.x+r.x)*.5,i.y=(i.y+r.y)*.5,this.addPoint(i),D.buildPoint(r,this.m_distance,this.m_a1+m,i);let e=i.clone();e.x=(e.x+r.x)*.5,e.y=(e.y+r.y)*.5,e.type|=256,this.addPoint(e),this.addPoint(i)}else D.buildPoint(r,this.m_distance,this.m_a1+m,i),i.type|=256,this.addPoint(i);this.addPointEx(e,t)}else{let e=new T;if(D.buildPoint(i,this.m_distance,this.m_a1+m,e),this.addPoint(e),this.m_joins===1||this.m_joins===2){e.x=(e.x+i.x)*.5,e.y=(e.y+i.y)*.5,this.addPoint(e),D.buildPoint(i,this.m_distance,this.m_a2-m,e);let t=e.clone();t.x=(t.x+i.x)*.5,t.y=(t.y+i.y)*.5,t.type|=256,this.addPoint(t),this.addPoint(e)}else D.buildPoint(i,this.m_distance,this.m_a2-m,e),e.type|=256,this.addPoint(e)}}}buildOffset(){let e=new T,t=this.m_srcPtCount;this.m_offsetPtCount=0;let n=this.m_tolerance*.5,r=0,i=0;for(let a=0;a<t;a++){let o=this.m_srcPts[a],s=a===0?this.m_srcPts[t-1]:this.m_srcPts[a-1],c=a===t-1?this.m_srcPts[0]:this.m_srcPts[a+1],l=0,u,d;{let e=s.x-o.x,t=s.y-o.y,n=c.x-o.x,f=c.y-o.y;u=Math.atan2(t,e),d=Math.atan2(f,n),this.m_a1=u,this.m_a2=d,a===0&&(r=u,i=d),l=p.orientationRobust(o.asPoint2D(),s.asPoint2D(),c.asPoint2D())}let f=d;d<u&&(d+=h);let g=Math.abs(Math.abs(u-d)-Math.PI)<1e-8;if(g||l*this.m_distance>0){if(!g&&(this.m_joins===1||this.m_joins===2)){D.buildPoint(o,this.m_distance,u+m,e),this.addPoint(e);let t=.001;e.x=o.x+(e.x-o.x)*t,e.y=o.y+(e.y-o.y)*t,this.addPoint(e),D.buildPoint(o,this.m_distance,d-m,e);let n=e.clone();n.x=o.x+(n.x-o.x)*t,n.y=o.y+(n.y-o.y)*t,n.type|=256,this.addPoint(n),this.addPoint(e)}else{let t=(d-u)*.5,n=t===0?this.m_distance:this.m_distance/Math.abs(Math.sin(t));D.buildPoint(o,n,(u+d)*.5,e),this.addPointEx(e,a)}}else if(o.type&512){let t=1-n/Math.abs(this.m_distance),r=1,i=this.m_distance<0?-Math.PI:Math.PI;if(t>-1&&t<1){let e=Math.acos(t)*2;e<C&&(e=C),r=Math.trunc(Math.PI/e+1.5),r>1&&(i/=r)}r<=1&&(r=2,i/=2);let s=u+m;D.buildPoint(o,this.m_distance,s,e),a===0&&(e.type|=w),this.addPointEx(e,a);let c=this.m_distance/Math.cos(i/2);for(s+=i/2,D.buildPoint(o,c,s,e),e.type|=w,this.addPoint(e);--r>0;)s+=i,D.buildPoint(o,c,s,e),e.type|=w,this.addPoint(e);D.buildPoint(o,this.m_distance,d-m,e),e.type|=w,this.addPoint(e)}else if(this.m_joins===1)D.buildPoint(o,this.m_distance,u+m,e),this.addPointEx(e,a),D.buildPoint(o,this.m_distance,d-m,e),this.addPoint(e);else if(this.m_joins===0){let t=1-n/Math.abs(this.m_distance),r=1,i=d-m-(u+m);if(t>-1&&t<1){let e=Math.acos(t)*2;e<C&&(e=C),r=Math.trunc(Math.abs(i)/e+1.5),r>1&&(i/=r)}let s=this.m_distance/Math.cos(i*.5),c=u+m+i*.5;for(D.buildPoint(o,s,c,e),this.addPointEx(e,a);--r>0;)c+=i,D.buildPoint(o,s,c,e),this.addPoint(e)}else if(this.m_joins===2){let t=s.x-o.x,n=s.y-o.y,r=c.x-o.x,i=c.y-o.y,l=Math.sqrt(t*t+n*n),f=Math.sqrt(r*r+i*i),m=(t*r+n*i)/l/f;if(m=Math.max(m,-1),m>1-1e-8){D.buildPoint(o,S*this.m_distance,d-Math.PI*.25,e),this.addPointEx(e,a),D.buildPoint(o,S*this.m_distance,d+Math.PI*.25,e),this.addPoint(e);continue}let h=Math.abs(this.m_distance/Math.sin(Math.acos(m)*.5)),g=Math.abs(this.m_miterLimit*this.m_distance);if(h>g){let t=(d-u)*.5,n=this.m_distance/Math.abs(Math.sin(t));D.buildPoint(o,n,(u+d)*.5,e);let r=p.construct(e.x,e.y),i=p.construct(o.x,o.y),s=new p;s.setSub(r,i);let c=new p;c.setScaleAdd(g/s.length(),s,i);let l=Math.sqrt(h*h-this.m_distance*this.m_distance),f=(h-g)*Math.abs(this.m_distance)/l;this.m_distance>0?s.rightPerpendicularThis():s.leftPerpendicularThis(),s.scale(f/s.length());let m=new p;m.setAdd(c,s);let _=new p;_.setSub(c,s),e.x=m.x,e.y=m.y,this.addPointEx(e,a),e.x=_.x,e.y=_.y,this.addPoint(e);continue}let _=(d-u)*.5,v=this.m_distance/Math.abs(Math.sin(_));D.buildPoint(o,v,(u+d)*.5,e),this.addPointEx(e,a)}else{d=f;let t;if(this.m_distance>0?(d>u&&(d-=h),t=u-d<m):(d<u&&(d+=h),t=d-u<m),t){let t=this.m_distance*S,n;n=t<0?u+Math.PI*.25:u+3*Math.PI*.25,D.buildPoint(o,t,n,e),this.addPointEx(e,a),n=t<0?d-Math.PI*.25:d-3*Math.PI*.25,D.buildPoint(o,t,n,e),this.addPoint(e)}else{let t=(d-u)*.5,n=this.m_distance/Math.abs(Math.sin(t));d<u&&(d+=h),D.buildPoint(o,n,(u+d)/2,e),this.addPointEx(e,a)}}}return this.m_a1=r,this.m_a2=i,this.addPointEx(this.m_offsetPts[0],0),this.m_offsetPts[0]=this.m_offsetPts[this.m_offsetPtCount-1].clone(),this.removeBadSegsFast()}removeBadSegsFast(){for(let e=0;e<this.m_offsetPtCount;e++){let t=this.m_offsetPts[e];t.m_next=e+1,t.m_prev=e-1}this.m_offsetPts[0].m_prev=this.m_offsetPtCount-2,this.m_offsetPts[this.m_offsetPtCount-2].m_next=0;let e=this.m_offsetPtCount,t=0;for(let n=0;n<e;n++)if(this.m_offsetPts[t].type&256){let n=this.m_offsetPts[t].m_next,r=this.deleteClosedSeg(t);if(r!==-1){if(t>r){t=r,e=0;do e++,t=this.m_offsetPts[t].m_next;while(t!==r)}t=r}else{s(this.m_offsetPts[t].m_next===n);break}}else t=this.m_offsetPts[t].m_next;return this.compressOffsetArray(t),!0}deleteClosedSeg(e){let t=this.m_offsetPtCount-1,n=e;for(let r=1;r<=t-2&&(n=this.m_offsetPts[n].m_next,e!==n);r++){let t=n,i=e;for(let a=1;a<=r&&(i=this.m_offsetPts[i].m_prev,i!==e);a++){if(!(this.m_offsetPts[i].type&256)&&!(this.m_offsetPts[t].type&256)){let e=this.handleClosedIntersection(i,t);if(e!==-1)return e}if(t=this.m_offsetPts[t].m_prev,t===n)break}}return-1}handleClosedIntersection(e,t){let n=this.m_offsetPts[this.m_offsetPts[e].m_prev],r=this.m_offsetPts[e],i=this.m_offsetPts[this.m_offsetPts[t].m_prev],a=this.m_offsetPts[t];if(!this.sectGraphicRect(n,r,i,a))return-1;if(p.orientationRobustEx(n.asPoint2D(),r.asPoint2D(),i.asPoint2D(),a.asPoint2D())*this.m_distance<0){let o=this.findIntersection(n,r,i,a),s=!1;if(o[0]>=0){let c=E();if(o[0]>=0&&o[0]<=1&&(c.pt.x=g(n.x,r.x,o[0]),c.pt.y=g(n.y,r.y,o[0]),this.m_bUseZ&&(c.pt.z=g(i.z,a.z,o[1])),this.m_bUseM&&(c.pt.m=g(i.m,a.m,o[1])),(o[1]===0||o[1]===1)&&(o[0]===0||o[0]===1)&&(c.bAtExistingPt=!0),s=!((o[1]===0||o[1]===1)&&o[0]>0&&o[0]<1||(o[0]===0||o[0]===1)&&o[1]>0&&o[1]<1)),s&&!c.bAtExistingPt){let n=!1,a=c.pt.asPoint2D(),o=i.asPoint2D(),s=c.pt.asPoint2D(),l=this.m_offsetPts[e].m_prev;for(;;){if(p.getClosestCoordinate(o,s,a,!1)<1e-8){n=!1;break}if((s.y>a.y&&o.y<=a.y||s.y<a.y&&s.y<=a.y)&&p.orientationRobustEx(s,a,s,o)<0&&(n=!n),o.x=s.x,o.y=s.y,l=this.m_offsetPts[l].m_next,l===t)break;s.x=this.m_offsetPts[l].x,s.y=this.m_offsetPts[l].y}if(n)return-1;let u=this.m_offsetPts[e].m_prev;return c.pt.type=r.type,c.pt.m_next=t,c.pt.m_prev=u,this.m_offsetPts[e]=c.pt,this.m_offsetPts[t].m_prev=e,t}}}return-1}sectGraphicRect(e,t,n,r){return Math.max(e.x,t.x)>=Math.min(n.x,r.x)&&Math.max(n.x,r.x)>=Math.min(e.x,t.x)&&Math.max(e.y,t.y)>=Math.min(n.y,r.y)&&Math.max(n.y,r.y)>=Math.min(e.y,t.y)}findIntersection(e,t,n,r){let[i,a,o,s]=[e,t,n,r].map(e=>e.asPoint2D());if(i.equals(o))return[0,0];if(i.equals(s))return[0,1];if(a.equals(o))return[1,0];if(a.equals(s))return[1,1];let c=[];return d.segmentIntersectRobust(i,a,o,s,1e-15,c)===1?c:[-1,-1]}compressOffsetArray(e){for(;this.m_offsetPts[e].m_prev<e;)e=this.m_offsetPts[e].m_prev;let t=0,n=e;do{let e=this.m_offsetPts[n].clone();this.m_offsetPts[t]=e,n=e.m_next,t++}while(n!==e);this.m_offsetPts[t]=this.m_offsetPts[0].clone(),this.m_offsetPtCount=t+1}addPart(e,t,n){if(!(t<2)){for(let n=0;n<t;n++){let t=this.m_offsetPts[e+n];if(n?this.m_bUseZ?this.m_resultPath.lineTo3DCoords(t.x,t.y,t.z):this.m_resultPath.lineToCoords(t.x,t.y):this.m_bUseZ?this.m_resultPath.startPath3DCoords(t.x,t.y,t.z):this.m_resultPath.startPathCoords(t.x,t.y),this.m_bUseM){let e=this.m_resultPath.getPointCount()-1;this.m_resultPath.setAttribute(2,e,0,t.m)}}n&&this.m_resultPath.closePathWithLine()}}offsetMultiPath(e){let t=f(this.m_inputGeometry,0,this.m_tolerance,0,this.m_progressTracker,12e3),n=t.querySegmentIterator();n.resetToFirstPath();let r=-1;for(;n.nextPath();)r++,this.offsetPath(t,r,e)}offsetPath(e,t,n){let r=e.getPathStart(t),i=e.getPathEnd(t);if(this.m_resultPath=n,e.isClosedPath(t)){let t=e.getXY(r);for(;i>r&&e.getXY(i-1).equals(t);)i--;if(i-r>=2){this.m_srcPtCount=i-r,this.m_srcPts.length=this.m_srcPtCount;for(let t=r;t<i;t++)this.progress(),this.m_srcPts[t-r]=T.construct(e.getXY(t),this.m_bUseZ?e.getAttributeAsDbl(1,t,0):0,this.m_bUseM?e.getAttributeAsDbl(2,t,0):0);this.buildOffset()&&this.addPart(0,this.m_offsetPtCount-1,!0)}}else{let t=e.getXY(r);for(;r<i-1&&e.getXY(r+1).equals(t);)r++;let n=e.getXY(i-1);for(;r<i-1&&e.getXY(i-2).equals(n);)i--;if(i-r>=2){this.m_srcPtCount=(i-r)*2-2,this.m_srcPts.length=this.m_srcPtCount;let n=T.construct(t,this.m_bUseZ?e.getAttributeAsDbl(1,r,0):0,this.m_bUseM?e.getAttributeAsDbl(2,r,0):0);n.type|=1536,this.m_srcPts[0]=n;let a=1,o=this.m_srcPtCount-1;for(let t=r+1;t<i-1;t++,a++,o--)this.progress(),n=T.construct(e.getXY(t),this.m_bUseZ?e.getAttributeAsDbl(1,t,0):0,this.m_bUseM?e.getAttributeAsDbl(2,t,0):0),this.m_srcPts[a]=n.clone(),n.type|=w,this.m_srcPts[o]=n.clone();if(n=T.construct(e.getXY(i-1),this.m_bUseZ?e.getAttributeAsDbl(1,i-1,0):0,this.m_bUseM?e.getAttributeAsDbl(2,i-1,0):0),n.type|=512,this.m_srcPts[a]=n.clone(),this.buildOffset()){if(this.m_offsetPts.length>=2){let e=-1,t=-1,n=!!(this.m_offsetPts[this.m_offsetPtCount-1].type&w);n||(e=0);for(let r=1;r<this.m_offsetPtCount;r++){this.progress();let i=!!(this.m_offsetPts[r].type&w);i?n||(t=r-1,t-e+1>1&&this.addPart(e,t-e+1,!1)):n&&(e=r-1),n=i}n||(t=this.m_offsetPtCount-1,t-e+1>1&&this.addPart(e,t-e+1,!1))}else{let e=this.m_offsetPtCount-1;e-0>=1&&this.addPart(0,e-0+1,!1)}}}}this.m_srcPts.length=0,this.m_srcPtCount=0,this.m_offsetPts.length=0,this.m_offsetPtCount=0}static dotSign(e,t,n,r){let i=t.x-e.x,a=t.y-e.y,o=r.x-n.x,s=r.y-n.y,c=_(i,a,o,s);return v(c)}}class O{getOperatorType(){return 10108}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,n,r,i,a,o,s=0){return new k(e,t,n,r,i,a,o,s)}execute(e,t,n,r,i,a,o,s=0){return new k(null,t,n,r,i,a,o,s).offset(e)}}class k extends t{m_inputGeoms;m_spatialReference;m_progressTracker;m_distance;m_miterLimit;m_joins;m_flattenError;m_index;m_options;constructor(e,t,n,r,i,a,o,s){super(),this.m_progressTracker=o,this.m_index=-1,this.m_inputGeoms=e,this.m_spatialReference=t,this.m_distance=n,this.m_joins=r,this.m_miterLimit=i,this.m_flattenError=a,this.m_options=s}tock(){return!0}getRank(){return 1}next(){if(!this.m_inputGeoms)return null;let e;for(;e=this.m_inputGeoms.next();)return this.m_index=this.m_inputGeoms.getGeometryID(),this.offset(e);return null}getGeometryID(){return this.m_index}offset(e){r(e);let t;return t=this.m_flattenError<=0?n(this.m_spatialReference,e,!0).total():this.m_flattenError,x(e,this.m_distance,this.m_joins,this.m_miterLimit,t,this.m_options,this.m_progressTracker)}}const A=new O;function j(e,t,n,r,i,a){return A.execute(e,t,n,r,i,a,null)}function M(t,n,r,i,a,o){let s=A.executeMany(new e(t),n,r,i,a,o,null);return Array.from(s)}function N(){return A.supportsCurves()}export{j as execute,M as executeMany,N as supportsCurves};
2
+ import{S as e}from"../../../chunks/SimpleGeometryCursor.js";import{G as t}from"../../../chunks/GeometryCursor.js";import{e as n}from"../../../chunks/Envelope.js";import{t as r,b as i,G as a,h as o,g as s,a as c}from"../../../chunks/Geometry.js";import{a as l,P as u,L as d,d as f}from"../../../chunks/MultiPathImpl.js";import{P as p,l as m,n as h,r as g,u as _,h as v}from"../../../chunks/Point2D.js";import{s as y}from"../../../chunks/Bufferer-CclWhXVb.js";import{O as b}from"../../../chunks/OperatorGraphicBuffer.js";function x(e,t,n,a,o,s,c){if(e===null&&i(``),e.getDimension()<1&&i(``),o>0||i(``),r(e),t===0||e.isEmpty())return e;let l=new D(c);return l.m_bUseZ=e.hasAttribute(1),l.m_bUseM=e.hasAttribute(2),l.m_inputGeometry=e,l.m_distance=t,l.m_tolerance=o,l.m_joins=n,l.m_miterLimit=a>1?a:1,l.m_miterLimit=y(l.m_miterLimit),l.m_progressCounter=0,l.m_options=s,l.constructOffset()}const S=1.4142135623730951,C=.017453292519943295,w=1024;class T{x;y;m_next;m_prev;z;m;type;static construct(e,t,n){let r=new T;return r.x=e.x,r.y=e.y,r.m_next=-1,r.m_prev=-1,r.z=t,r.m=n,r.type=0,r}clone(){let e=new T;return e.x=this.x,e.y=this.y,e.m_next=this.m_next,e.m_prev=this.m_prev,e.z=this.z,e.m=this.m,e.type=this.type,e}asPoint2D(){return new p(this.x,this.y)}}function E(){return{pt:new T,bAtExistingPt:!1}}class D{m_progressTracker;m_inputGeometry;m_distance=-1;m_tolerance=-1;m_miterLimit=10;m_joins=0;m_progressCounter=0;m_options=0;m_bUseZ=!1;m_bUseM=!1;m_srcPts=[];m_srcPtCount=0;m_offsetPts=[];m_offsetPtCount=0;m_resultPath;m_a1=0;m_a2=0;constructor(e){this.m_progressTracker=e}constructOffset(){let t=this.m_inputGeometry.getGeometryType();if(t===a.enumLine)return this.offsetLine();if(t===a.enumEnvelope)return this.offsetEnvelope();if(o(t)){let e=new l;return e.addSegment(this.m_inputGeometry,!0),this.m_inputGeometry=e,this.constructOffset()}if(t===a.enumPolyline){let e=new l;return this.offsetMultiPath(e),e}if(t===a.enumPolygon){if(this.m_options===1){let t;switch(this.m_joins){case 1:t=2;break;case 2:t=1;break;case 0:t=0;break;case 3:t=2;break;default:s(!1,`Invalid join type`)}return new b().executeMany(new e([this.m_inputGeometry]),null,[-1],t,1,this.m_miterLimit,this.m_tolerance,360,!1,0,null).next()}let t=new u;return this.offsetMultiPath(t),t}c(``)}offsetLine(){let e=this.m_inputGeometry,t=e.getStartXY(),n=e.getEndXY(),r=new p;r.setSub(n,t),r.normalize(),r.leftPerpendicularThis(),r.scale(this.m_distance),t.addThis(r),n.addThis(r);let i=e.clone();return i.setStartXY(t),i.setEndXY(n),i}offsetEnvelope(){let e=this.m_inputGeometry;if(this.m_distance>0&&this.m_joins!==2){let t=new u;return t.addEnvelope(e,!1),this.m_inputGeometry=t,this.constructOffset()}let t=e.clone();return t.inflateCoords(this.m_distance,this.m_distance),t}progress(){}static buildPoint(e,t,n,r){r.x=e.x+t*Math.cos(n),r.y=e.y+t*Math.sin(n),r.type=e.type,r.z=e.z,r.m=e.m,r.m_next=-1,r.m_prev=-1}addPoint(e){this.m_offsetPts.push(e.clone()),this.m_offsetPtCount++}addPointEx(e,t){if(this.m_offsetPtCount===0){this.addPoint(e);return}let n=this.m_srcPtCount,r=this.m_srcPts[t===0?n-1:t-1],i=this.m_srcPts[t],a=D.dotSign(r,i,this.m_offsetPts[this.m_offsetPtCount-1],e);if(a>0)this.addPoint(e);else if(a<0){if(D.dotSign(r,i,i,this.m_offsetPts[this.m_offsetPtCount-1])>0){let i=new T,a;a=t===0?n-2:t===1?n-1:t-2;let o=this.m_srcPts[a],s=Math.atan2(r.y-o.y,r.x-o.x);if(D.buildPoint(r,this.m_distance,s-m,i),this.m_offsetPts[this.m_offsetPtCount-1]=i.clone(),this.m_joins===1||this.m_joins===2){i.x=(i.x+r.x)*.5,i.y=(i.y+r.y)*.5,this.addPoint(i),D.buildPoint(r,this.m_distance,this.m_a1+m,i);let e=i.clone();e.x=(e.x+r.x)*.5,e.y=(e.y+r.y)*.5,e.type|=256,this.addPoint(e),this.addPoint(i)}else D.buildPoint(r,this.m_distance,this.m_a1+m,i),i.type|=256,this.addPoint(i);this.addPointEx(e,t)}else{let e=new T;if(D.buildPoint(i,this.m_distance,this.m_a1+m,e),this.addPoint(e),this.m_joins===1||this.m_joins===2){e.x=(e.x+i.x)*.5,e.y=(e.y+i.y)*.5,this.addPoint(e),D.buildPoint(i,this.m_distance,this.m_a2-m,e);let t=e.clone();t.x=(t.x+i.x)*.5,t.y=(t.y+i.y)*.5,t.type|=256,this.addPoint(t),this.addPoint(e)}else D.buildPoint(i,this.m_distance,this.m_a2-m,e),e.type|=256,this.addPoint(e)}}}buildOffset(){let e=new T,t=this.m_srcPtCount;this.m_offsetPtCount=0;let n=this.m_tolerance*.5,r=0,i=0;for(let a=0;a<t;a++){let o=this.m_srcPts[a],s=a===0?this.m_srcPts[t-1]:this.m_srcPts[a-1],c=a===t-1?this.m_srcPts[0]:this.m_srcPts[a+1],l=0,u,d;{let e=s.x-o.x,t=s.y-o.y,n=c.x-o.x,f=c.y-o.y;u=Math.atan2(t,e),d=Math.atan2(f,n),this.m_a1=u,this.m_a2=d,a===0&&(r=u,i=d),l=p.orientationRobust(o.asPoint2D(),s.asPoint2D(),c.asPoint2D())}let f=d;d<u&&(d+=h);let g=Math.abs(Math.abs(u-d)-Math.PI)<1e-8;if(g||l*this.m_distance>0){if(!g&&(this.m_joins===1||this.m_joins===2)){D.buildPoint(o,this.m_distance,u+m,e),this.addPoint(e);let t=.001;e.x=o.x+(e.x-o.x)*t,e.y=o.y+(e.y-o.y)*t,this.addPoint(e),D.buildPoint(o,this.m_distance,d-m,e);let n=e.clone();n.x=o.x+(n.x-o.x)*t,n.y=o.y+(n.y-o.y)*t,n.type|=256,this.addPoint(n),this.addPoint(e)}else{let t=(d-u)*.5,n=t===0?this.m_distance:this.m_distance/Math.abs(Math.sin(t));D.buildPoint(o,n,(u+d)*.5,e),this.addPointEx(e,a)}}else if(o.type&512){let t=1-n/Math.abs(this.m_distance),r=1,i=this.m_distance<0?-Math.PI:Math.PI;if(t>-1&&t<1){let e=Math.acos(t)*2;e<C&&(e=C),r=Math.trunc(Math.PI/e+1.5),r>1&&(i/=r)}r<=1&&(r=2,i/=2);let s=u+m;D.buildPoint(o,this.m_distance,s,e),a===0&&(e.type|=w),this.addPointEx(e,a);let c=this.m_distance/Math.cos(i/2);for(s+=i/2,D.buildPoint(o,c,s,e),e.type|=w,this.addPoint(e);--r>0;)s+=i,D.buildPoint(o,c,s,e),e.type|=w,this.addPoint(e);D.buildPoint(o,this.m_distance,d-m,e),e.type|=w,this.addPoint(e)}else if(this.m_joins===1)D.buildPoint(o,this.m_distance,u+m,e),this.addPointEx(e,a),D.buildPoint(o,this.m_distance,d-m,e),this.addPoint(e);else if(this.m_joins===0){let t=1-n/Math.abs(this.m_distance),r=1,i=d-m-(u+m);if(t>-1&&t<1){let e=Math.acos(t)*2;e<C&&(e=C),r=Math.trunc(Math.abs(i)/e+1.5),r>1&&(i/=r)}let s=this.m_distance/Math.cos(i*.5),c=u+m+i*.5;for(D.buildPoint(o,s,c,e),this.addPointEx(e,a);--r>0;)c+=i,D.buildPoint(o,s,c,e),this.addPoint(e)}else if(this.m_joins===2){let t=s.x-o.x,n=s.y-o.y,r=c.x-o.x,i=c.y-o.y,l=Math.sqrt(t*t+n*n),f=Math.sqrt(r*r+i*i),m=(t*r+n*i)/l/f;if(m=Math.max(m,-1),m>1-1e-8){D.buildPoint(o,S*this.m_distance,d-Math.PI*.25,e),this.addPointEx(e,a),D.buildPoint(o,S*this.m_distance,d+Math.PI*.25,e),this.addPoint(e);continue}let h=Math.abs(this.m_distance/Math.sin(Math.acos(m)*.5)),g=Math.abs(this.m_miterLimit*this.m_distance);if(h>g){let t=(d-u)*.5,n=this.m_distance/Math.abs(Math.sin(t));D.buildPoint(o,n,(u+d)*.5,e);let r=p.construct(e.x,e.y),i=p.construct(o.x,o.y),s=new p;s.setSub(r,i);let c=new p;c.setScaleAdd(g/s.length(),s,i);let l=Math.sqrt(h*h-this.m_distance*this.m_distance),f=(h-g)*Math.abs(this.m_distance)/l;this.m_distance>0?s.rightPerpendicularThis():s.leftPerpendicularThis(),s.scale(f/s.length());let m=new p;m.setAdd(c,s);let _=new p;_.setSub(c,s),e.x=m.x,e.y=m.y,this.addPointEx(e,a),e.x=_.x,e.y=_.y,this.addPoint(e);continue}let _=(d-u)*.5,v=this.m_distance/Math.abs(Math.sin(_));D.buildPoint(o,v,(u+d)*.5,e),this.addPointEx(e,a)}else{d=f;let t;if(this.m_distance>0?(d>u&&(d-=h),t=u-d<m):(d<u&&(d+=h),t=d-u<m),t){let t=this.m_distance*S,n;n=t<0?u+Math.PI*.25:u+3*Math.PI*.25,D.buildPoint(o,t,n,e),this.addPointEx(e,a),n=t<0?d-Math.PI*.25:d-3*Math.PI*.25,D.buildPoint(o,t,n,e),this.addPoint(e)}else{let t=(d-u)*.5,n=this.m_distance/Math.abs(Math.sin(t));d<u&&(d+=h),D.buildPoint(o,n,(u+d)/2,e),this.addPointEx(e,a)}}}return this.m_a1=r,this.m_a2=i,this.addPointEx(this.m_offsetPts[0],0),this.m_offsetPts[0]=this.m_offsetPts[this.m_offsetPtCount-1].clone(),this.removeBadSegsFast()}removeBadSegsFast(){for(let e=0;e<this.m_offsetPtCount;e++){let t=this.m_offsetPts[e];t.m_next=e+1,t.m_prev=e-1}this.m_offsetPts[0].m_prev=this.m_offsetPtCount-2,this.m_offsetPts[this.m_offsetPtCount-2].m_next=0;let e=this.m_offsetPtCount,t=0;for(let n=0;n<e;n++)if(this.m_offsetPts[t].type&256){let n=this.m_offsetPts[t].m_next,r=this.deleteClosedSeg(t);if(r!==-1){if(t>r){t=r,e=0;do e++,t=this.m_offsetPts[t].m_next;while(t!==r)}t=r}else{s(this.m_offsetPts[t].m_next===n);break}}else t=this.m_offsetPts[t].m_next;return this.compressOffsetArray(t),!0}deleteClosedSeg(e){let t=this.m_offsetPtCount-1,n=e;for(let r=1;r<=t-2&&(n=this.m_offsetPts[n].m_next,e!==n);r++){let t=n,i=e;for(let a=1;a<=r&&(i=this.m_offsetPts[i].m_prev,i!==e);a++){if(!(this.m_offsetPts[i].type&256)&&!(this.m_offsetPts[t].type&256)){let e=this.handleClosedIntersection(i,t);if(e!==-1)return e}if(t=this.m_offsetPts[t].m_prev,t===n)break}}return-1}handleClosedIntersection(e,t){let n=this.m_offsetPts[this.m_offsetPts[e].m_prev],r=this.m_offsetPts[e],i=this.m_offsetPts[this.m_offsetPts[t].m_prev],a=this.m_offsetPts[t];if(!this.sectGraphicRect(n,r,i,a))return-1;if(p.orientationRobustEx(n.asPoint2D(),r.asPoint2D(),i.asPoint2D(),a.asPoint2D())*this.m_distance<0){let o=this.findIntersection(n,r,i,a),s=!1;if(o[0]>=0){let c=E();if(o[0]>=0&&o[0]<=1&&(c.pt.x=g(n.x,r.x,o[0]),c.pt.y=g(n.y,r.y,o[0]),this.m_bUseZ&&(c.pt.z=g(i.z,a.z,o[1])),this.m_bUseM&&(c.pt.m=g(i.m,a.m,o[1])),o[1]!==0&&o[1]!==1||o[0]!==0&&o[0]!==1||(c.bAtExistingPt=!0),s=!((o[1]===0||o[1]===1)&&o[0]>0&&o[0]<1||(o[0]===0||o[0]===1)&&o[1]>0&&o[1]<1)),s&&!c.bAtExistingPt){let n=!1,a=c.pt.asPoint2D(),o=i.asPoint2D(),s=c.pt.asPoint2D(),l=this.m_offsetPts[e].m_prev;for(;;){if(p.getClosestCoordinate(o,s,a,!1)<1e-8){n=!1;break}if((s.y>a.y&&o.y<=a.y||s.y<a.y&&s.y<=a.y)&&p.orientationRobustEx(s,a,s,o)<0&&(n=!n),o.x=s.x,o.y=s.y,l=this.m_offsetPts[l].m_next,l===t)break;s.x=this.m_offsetPts[l].x,s.y=this.m_offsetPts[l].y}if(n)return-1;let u=this.m_offsetPts[e].m_prev;return c.pt.type=r.type,c.pt.m_next=t,c.pt.m_prev=u,this.m_offsetPts[e]=c.pt,this.m_offsetPts[t].m_prev=e,t}}}return-1}sectGraphicRect(e,t,n,r){return Math.max(e.x,t.x)>=Math.min(n.x,r.x)&&Math.max(n.x,r.x)>=Math.min(e.x,t.x)&&Math.max(e.y,t.y)>=Math.min(n.y,r.y)&&Math.max(n.y,r.y)>=Math.min(e.y,t.y)}findIntersection(e,t,n,r){let[i,a,o,s]=[e,t,n,r].map(e=>e.asPoint2D());if(i.equals(o))return[0,0];if(i.equals(s))return[0,1];if(a.equals(o))return[1,0];if(a.equals(s))return[1,1];let c=[];return d.segmentIntersectRobust(i,a,o,s,1e-15,c)===1?c:[-1,-1]}compressOffsetArray(e){for(;this.m_offsetPts[e].m_prev<e;)e=this.m_offsetPts[e].m_prev;let t=0,n=e;do{let e=this.m_offsetPts[n].clone();this.m_offsetPts[t]=e,n=e.m_next,t++}while(n!==e);this.m_offsetPts[t]=this.m_offsetPts[0].clone(),this.m_offsetPtCount=t+1}addPart(e,t,n){if(!(t<2)){for(let n=0;n<t;n++){let t=this.m_offsetPts[e+n];if(n?this.m_bUseZ?this.m_resultPath.lineTo3DCoords(t.x,t.y,t.z):this.m_resultPath.lineToCoords(t.x,t.y):this.m_bUseZ?this.m_resultPath.startPath3DCoords(t.x,t.y,t.z):this.m_resultPath.startPathCoords(t.x,t.y),this.m_bUseM){let e=this.m_resultPath.getPointCount()-1;this.m_resultPath.setAttribute(2,e,0,t.m)}}n&&this.m_resultPath.closePathWithLine()}}offsetMultiPath(e){let t=f(this.m_inputGeometry,0,this.m_tolerance,0,this.m_progressTracker,12e3),n=t.querySegmentIterator();n.resetToFirstPath();let r=-1;for(;n.nextPath();)r++,this.offsetPath(t,r,e)}offsetPath(e,t,n){let r=e.getPathStart(t),i=e.getPathEnd(t);if(this.m_resultPath=n,e.isClosedPath(t)){let t=e.getXY(r);for(;i>r&&e.getXY(i-1).equals(t);)i--;if(i-r>=2){this.m_srcPtCount=i-r,this.m_srcPts.length=this.m_srcPtCount;for(let t=r;t<i;t++)this.progress(),this.m_srcPts[t-r]=T.construct(e.getXY(t),this.m_bUseZ?e.getAttributeAsDbl(1,t,0):0,this.m_bUseM?e.getAttributeAsDbl(2,t,0):0);this.buildOffset()&&this.addPart(0,this.m_offsetPtCount-1,!0)}}else{let t=e.getXY(r);for(;r<i-1&&e.getXY(r+1).equals(t);)r++;let n=e.getXY(i-1);for(;r<i-1&&e.getXY(i-2).equals(n);)i--;if(i-r>=2){this.m_srcPtCount=(i-r)*2-2,this.m_srcPts.length=this.m_srcPtCount;let n=T.construct(t,this.m_bUseZ?e.getAttributeAsDbl(1,r,0):0,this.m_bUseM?e.getAttributeAsDbl(2,r,0):0);n.type|=1536,this.m_srcPts[0]=n;let a=1,o=this.m_srcPtCount-1;for(let t=r+1;t<i-1;t++,a++,o--)this.progress(),n=T.construct(e.getXY(t),this.m_bUseZ?e.getAttributeAsDbl(1,t,0):0,this.m_bUseM?e.getAttributeAsDbl(2,t,0):0),this.m_srcPts[a]=n.clone(),n.type|=w,this.m_srcPts[o]=n.clone();if(n=T.construct(e.getXY(i-1),this.m_bUseZ?e.getAttributeAsDbl(1,i-1,0):0,this.m_bUseM?e.getAttributeAsDbl(2,i-1,0):0),n.type|=512,this.m_srcPts[a]=n.clone(),this.buildOffset()){if(this.m_offsetPts.length>=2){let e=-1,t=-1,n=!!(this.m_offsetPts[this.m_offsetPtCount-1].type&w);n||(e=0);for(let r=1;r<this.m_offsetPtCount;r++){this.progress();let i=!!(this.m_offsetPts[r].type&w);i?n||(t=r-1,t-e+1>1&&this.addPart(e,t-e+1,!1)):n&&(e=r-1),n=i}n||(t=this.m_offsetPtCount-1,t-e+1>1&&this.addPart(e,t-e+1,!1))}else{let e=this.m_offsetPtCount-1;e-0>=1&&this.addPart(0,e-0+1,!1)}}}}this.m_srcPts.length=0,this.m_srcPtCount=0,this.m_offsetPts.length=0,this.m_offsetPtCount=0}static dotSign(e,t,n,r){let i=t.x-e.x,a=t.y-e.y,o=r.x-n.x,s=r.y-n.y,c=_(i,a,o,s);return v(c)}}class O{getOperatorType(){return 10108}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}executeMany(e,t,n,r,i,a,o,s=0){return new k(e,t,n,r,i,a,o,s)}execute(e,t,n,r,i,a,o,s=0){return new k(null,t,n,r,i,a,o,s).offset(e)}}class k extends t{m_inputGeoms;m_spatialReference;m_progressTracker;m_distance;m_miterLimit;m_joins;m_flattenError;m_index;m_options;constructor(e,t,n,r,i,a,o,s){super(),this.m_progressTracker=o,this.m_index=-1,this.m_inputGeoms=e,this.m_spatialReference=t,this.m_distance=n,this.m_joins=r,this.m_miterLimit=i,this.m_flattenError=a,this.m_options=s}tock(){return!0}getRank(){return 1}next(){if(!this.m_inputGeoms)return null;let e;for(;e=this.m_inputGeoms.next();)return this.m_index=this.m_inputGeoms.getGeometryID(),this.offset(e);return null}getGeometryID(){return this.m_index}offset(e){r(e);let t;return t=this.m_flattenError<=0?n(this.m_spatialReference,e,!0).total():this.m_flattenError,x(e,this.m_distance,this.m_joins,this.m_miterLimit,t,this.m_options,this.m_progressTracker)}}const A=new O;function j(e,t,n,r,i,a){return A.execute(e,t,n,r,i,a,null)}function M(t,n,r,i,a,o){let s=A.executeMany(new e(t),n,r,i,a,o,null);return Array.from(s)}function N(){return A.supportsCurves()}export{j as execute,M as executeMany,N as supportsCurves};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{G as e}from"../../../chunks/GeometryCursor.js";import{b as t,g as n}from"../../../chunks/Geometry.js";import{S as r}from"../../../chunks/SimpleGeometryCursor.js";import{Envelope2D as i}from"../../../chunks/Envelope2D.js";import{T as a}from"../../../chunks/Transformation2D.js";import{p as o,q as s,t as c,u as l,a as u,v as d,E as f,n as p,P as m,w as h}from"../../../chunks/MultiPathImpl.js";import{K as g,o as _,E as v,d as y,P as b,s as x,r as S}from"../../../chunks/Point2D.js";import{P as C,e as w}from"../../../chunks/Envelope.js";import{O as T}from"../../../chunks/OperatorClip.js";import{O as E}from"../../../chunks/OperatorMultiPartToSinglePart.js";import{O as D}from"../../../chunks/OperatorCut.js";function O(e,t,n,r,i){return new U(i).findSlicesByArea(e,t,n,r)}function k(e,t,n,r,i){return new U(i).sliceIntoStrips(e,t,n,r)}function A(e,t,n,r){return new U(r).recursiveSliceEqualArea(e,t,n)}function j(e){this.currentX=this.calcX(e)}function M(e){if(this.curve===null){let t=(e-this.y0)/(this.y1-this.y0);return S(this.x0,this.x1,t)}return this.curve.intersectionOfYMonotonicWithAxisX(e,this.x0)}function N(){return{x0:NaN,y0:NaN,x1:NaN,y1:NaN,currentX:NaN,nextAET:null,prevAET:null,startNodeNext:null,nextInChain:null,curve:null,advance:j,calcX:M}}function P(e,t){let n=N();return n.x0=e.getStartX(),n.y0=e.getStartY(),n.x1=e.getEndX(),n.y1=e.getEndY(),t&&(n.y0=x(n.x0,n.x0=n.y0),n.y1=x(n.x1,n.x1=n.y1)),n.y1<n.y0&&(n.y1=x(n.y0,n.y0=n.y1),n.x1=x(n.x0,n.x0=n.x1)),n.currentX=NaN,n.nextAET=null,n.prevAET=null,n.startNodeNext=null,n.nextInChain=null,n.curve=null,n}function F(e){let t=N();return t.x0=e.getStartX(),t.y0=e.getStartY(),t.x1=e.getEndX(),t.y1=e.getEndY(),t.curve=e,t.y1<t.y0&&(t.y1=x(t.y0,t.y0=t.y1),t.x1=x(t.x0,t.x0=t.x1)),t.currentX=NaN,t.nextAET=null,t.prevAET=null,t.startNodeNext=null,t.nextInChain=null,t}function I(e){if(this.x===e.x&&this.y===e.y){let t=this.endEdge!==null,n=e.startEdge!==null;return t&&n?-1:1}return this.y===e.y?this.x-e.x:this.y-e.y}function L(){return{x:NaN,y:NaN,startEdge:null,endEdge:null,compare:I}}function R(e,t){return{y:e,startingEdges:t}}class z{m_parent;m_y0;m_y1;m_t0;m_area;constructor(e,t,n,r,i,a){this.m_parent=e,this.m_y0=t,this.m_y1=n,this.m_t0=r,this.m_area=a}getMaxDerivative(){return 1}getValue(e,t){return e===1?0:this.getArea(t)-this.m_area}getError(e){return n(0),0}getArea(e){let t=.5*(this.m_parent.m_sumBase-this.m_parent.m_sumA),n=this.m_y1-this.m_y0,r=(this.m_parent.m_sumBase-t*(e+this.m_t0))*n*(e-this.m_t0),i=!1;for(let t=this.m_parent.m_AETHead;t!==null;t=t.nextAET)if(i=!i,i&&(t.curve!==null||t.nextAET.curve!==null)){let i=this.m_y0+n*this.m_t0,a=this.m_y0+n*e;t.curve&&(r+=V(t.curve,this.m_y0+n*this.m_t0,this.m_y0+n*e)),t.nextAET.curve&&(r-=V(t.nextAET.curve,this.m_y0+n*this.m_t0,this.m_y0+n*e));let o=a-i,s=t.nextAET.calcX(i)-t.calcX(i),c=t.nextAET.calcX(a)-t.calcX(a);r+=o*(s+c)*.5}return r}}function B(e,t,n){return{polygon:e,from:t,to:n}}function V(e,t,r){let i=[0,0],a=e.intersectionWithAxis2D(!0,t,null,i);n(a===1);let o=i[0],s=e.intersectionWithAxis2D(!0,r,null,i);n(s===1);let c=i[0],l=y(b,4);h(e,l,!0);let u=l[3],d=l[2],f=l[1],p=e.getCoordX(o)-e.getStartX(),m=e.getCoordY(o)-e.getStartY(),g=e=>{let t=e*e;return t*e*(10*(d.x*f.y-d.y*f.x)-15*e*(u.y*f.x-u.x*f.y)+6*t*(d.y*u.x-u.y*d.x))/60},_=e=>(-e*(f.y+e*(d.y+u.y*e))*p+e*(f.x+e*(d.x+u.x*e))*m)/2;return g(c)-g(o)-(_(c)-_(o))}class H extends e{m_geoms=[];m_index=-1;m_id=-1;constructor(e){super(),this.m_geoms=e}tock(){return!0}getRank(){return 1}next(){return this.m_index++,this.m_index>=this.m_geoms.length?null:(this.m_id=this.m_geoms[this.m_index].second,this.m_geoms[this.m_index].first)}getGeometryID(){return this.m_id}}class U{m_progressTracker;m_edges=[];m_curves=[];m_sortedNodes=[];m_sortHelper=[];m_cuts=[];m_cutAreas=[];m_totalAreaOfTraps=new g(0);m_areaTracking=0;m_splitArea=0;m_sumBase=0;m_sumA=0;m_numberOfCuts=0;m_currentScan=0;m_progressCounter=0;m_AETHead=null;m_bHorizontalSweep=!1;m_bPolygonHasCurves=!1;constructor(e){this.m_progressTracker=e}findSlicesByArea(e,n,r,i){i<0&&t(`remainingArea`);let a=e,s=null;a.hasNonLinearSegments()&&(this.m_bPolygonHasCurves=!0,s=o(e,1e-16,!0),W(s),a=s);let c=Math.abs(a.calculateArea2D());return c===0||r===0||i>=c||r===1&&i===0?[]:(this.m_splitArea=(c-i)/r,this.m_numberOfCuts=r-1,i>0&&this.m_numberOfCuts++,this.m_edges.length=0,this.m_sortedNodes.length=0,this.m_cuts.length=0,this.m_areaTracking=0,this.m_totalAreaOfTraps.reset(),this.m_curves.length=0,this.buildEdges(a),this.buildScanNodes(),this.trapezoidation(),this.m_cuts)}sliceIntoStrips(e,t,n,a){if(a===0)return new r([e]);let o=new i;e.queryLooseEnvelope(o);let s=o.width()+o.height();return new H(this.splitPolygon(e,t,o.xmin-s-1+1,o.xmax+s+1,n,a))}recursiveSliceEqualArea(e,t,o){if(o<=1||e.isEmpty())return new r([e]);{let r=[],s=[];s.push(_(e.clone(),o));let c=0,l=0;for(;s.length>0;){n(l++<2*o);let e=s.at(-1);if(s.pop(),e.second===1){r.push(_(e.first,c++));continue}let u=new i;e.first.queryEnvelope(u);let d=u.width()+u.height(),f=new a;f.setIdentity(),u.width()>u.height()&&(f.setRotateCcw90(),e.first.applyTransformation(f),f.transformEnvInPlace(u));let p=e.first.calculateArea2D(),m=p/e.second,h=p-Math.trunc(e.second/2)*m,g=new U(this.m_progressTracker).findSlicesByArea(e.first,t,1,h),v=new U(this.m_progressTracker).splitPolygon(e.first,t,u.xmin-d-1+1,u.xmax+d+1,g,1),y=v.length;if(n(y>0&&y<=2),!f.isIdentity()){let e=new a;e.setRotateCw90(),v[0].first.applyTransformation(e),y===2&&v[1].first.applyTransformation(e)}y===2?(s.push(_(v[1].first,e.second-Math.trunc(e.second/2))),s.push(_(v[0].first,Math.trunc(e.second/2)))):s.push(_(v[0].first,e.second))}return new H(r)}}recursiveSliceEqualAreaImpl(e,t,r,i){return n(0),{}}processTraps(e,t,n){n?this.processTrapsCurves(e,t):this.processTrapsLinear(e,t)}processTrapsLinear(e,t){let n=0,r=1,i=.5*(this.m_sumBase-this.m_sumA),a=t-e,o=(this.m_sumBase-i*(r+n))*a*(r-n);if(o+this.m_areaTracking<this.m_splitArea){this.m_totalAreaOfTraps.pe(o),this.m_areaTracking+=o;return}let c=new g(o),l=new v(0,1),u=!1;for(;n<1;){let t=this.m_splitArea-this.m_areaTracking,d=[NaN,NaN];if(s(-i*a,this.m_sumBase*a,(i*n-this.m_sumBase)*a*n-t,l,!1,d)>0){u=!0,r=d[0],this.m_areaTracking=0,n=r,c.me(t);let i=r*a+e;if(this.m_cuts.push(i),this.m_cutAreas.push(this.m_totalAreaOfTraps.getResult()+o-c.getResult()),this.m_cuts.length===this.m_numberOfCuts){this.m_totalAreaOfTraps.pe(o-c.getResult());return}}else{u?this.m_areaTracking=c.getResult():this.m_areaTracking+=o;break}}this.m_totalAreaOfTraps.pe(o)}processTrapsCurves(e,t){let n=0,r=1,i=new z(this,e,t,0,1,0).getArea(1);if(i+this.m_areaTracking<this.m_splitArea){this.m_totalAreaOfTraps.pe(i),this.m_areaTracking+=i;return}let a=t-e,o=new g(i),s=!1;for(;n<1;){let l=this.m_splitArea-this.m_areaTracking,u=new z(this,e,t,n,1,l),d=[0],f=new v(n,1);if(c(u,f,1,d)>0){s=!0,r=d[0],this.m_areaTracking=0,n=r,o.me(l);let t=r*a+e;if(this.m_cuts.push(t),this.m_cutAreas.push(this.m_totalAreaOfTraps.getResult()+i-o.getResult()),this.m_cuts.length===this.m_numberOfCuts){this.m_totalAreaOfTraps.pe(i-o.getResult());return}}else{s?this.m_areaTracking=o.getResult():this.m_areaTracking+=i;break}}this.m_totalAreaOfTraps.pe(i)}advanceAET(){let e=this.m_sortedNodes[this.m_currentScan-1].y,t=this.m_sortedNodes[this.m_currentScan],n=!1,r=!1,i=new g(0);for(let e=this.m_AETHead;e!==null;e=e.nextAET){let a=e.prevAET;n=!n,e.nextAET!==null&&n&&(!this.m_bPolygonHasCurves||!e.curve&&!e.nextAET.curve)&&i.pe(e.nextAET.currentX-e.currentX),e.advance(t.y),a!==null&&e.currentX<a.currentX&&(r=!0)}this.m_sumBase=i.getResult(),r&&this.sortAET();let a=new g(0);n=!1;let o=!1;for(let e=this.m_AETHead;e!==null;e=e.nextAET){o||=e.curve!==null;let t=e.prevAET;n=!n,t!==null&&(n||(!this.m_bPolygonHasCurves||!e.curve&&!e.prevAET.curve)&&a.pe(e.currentX-e.prevAET.currentX))}this.m_sumA=a.getResult(),this.processTraps(e,t.y,o);for(let e=this.m_AETHead;e!=null;){let n=e.prevAET,r=e.nextAET;if(t.y===e.y1){if(e.prevAET=null,e.nextAET=null,e.nextInChain!==null){let t=e.currentX;e=e.nextInChain,e.currentX=t,e.prevAET=n,n?n.nextAET=e:this.m_AETHead=e,e.nextAET=r,r&&(r.prevAET=e)}else n?n.nextAET=r:this.m_AETHead=r,r&&(r.prevAET=n)}e=r}}mergeNewEdgesToAET(){for(let e=this.m_sortedNodes[this.m_currentScan].startingEdges;e!==null;e=e.startNodeNext)Number.isNaN(e.currentX)&&(this.m_sortHelper.push(e),e.currentX=e.x0);if(!this.m_sortHelper.length)return;this.sortHelper();let e=this.m_AETHead,t=0,n=e;for(;e!==null&&t<this.m_sortHelper.length;)e.currentX>this.m_sortHelper[t].currentX?(this.m_sortHelper[t].prevAET=e.prevAET,e.prevAET?e.prevAET.nextAET=this.m_sortHelper[t]:this.m_AETHead=this.m_sortHelper[t],this.m_sortHelper[t].nextAET=e,e.prevAET=this.m_sortHelper[t],t++):(n=e,e=e.nextAET);for(;t<this.m_sortHelper.length;)this.m_sortHelper[t].prevAET=n,n===null?this.m_AETHead=this.m_sortHelper[t]:n.nextAET=this.m_sortHelper[t],this.m_sortHelper[t].nextAET=null,n=this.m_sortHelper[t],t++;this.m_sortHelper.length=0}sortAET(){for(let e=this.m_AETHead;e!==null;e=e.nextAET)this.m_sortHelper.push(e);this.sortHelper(),this.m_AETHead=null;let e=null;for(let t of this.m_sortHelper)t.prevAET=e,e?e.nextAET=t:this.m_AETHead=t,t.nextAET=null,e=t;this.m_sortHelper.length=0}sortHelper(){this.m_sortHelper.sort((e,t)=>e.currentX-t.currentX)}trapezoidation(){for(this.m_currentScan=0,this.mergeNewEdgesToAET(),this.m_currentScan++;this.m_currentScan<this.m_sortedNodes.length&&(this.progress(),this.advanceAET(),this.m_cuts.length!==this.m_numberOfCuts);)this.mergeNewEdgesToAET(),this.m_currentScan++}buildEdges(e){let t=e.querySegmentIterator();for(t.stripAttributes();t.nextPath();)for(;t.hasNextSegment();){let e=t.nextSegment();if(e.isCurve()){let t=e;if(l(t),this.m_bHorizontalSweep){let e=y(b,4);t.queryControlPoints(e);for(let t of e)t.y=x(t.x,t.x=t.y);t.constructPoints(e)}let n=t.getStartY(),r=t.getEndY();if(r===n)continue;r<n&&t.reverse(),this.m_curves.push(t.clone()),this.m_edges.push(F(this.m_curves.at(-1)))}else{let t=this.m_bHorizontalSweep?e.getStartX():e.getStartY();if((this.m_bHorizontalSweep?e.getEndX():e.getEndY())===t)continue;this.m_edges.push(P(e,this.m_bHorizontalSweep))}}this.m_edges.sort((e,t)=>e.y0===t.y0?e.x0-t.x0:e.y0-t.y0)}buildScanNodes(){let e=[];for(let t of this.m_edges){let n=L();n.x=t.x0,n.y=t.y0,n.startEdge=t,n.endEdge=null,e.push(n);let r=L();r.x=t.x1,r.y=t.y1,r.startEdge=null,r.endEdge=t,e.push(r)}e.sort((e,t)=>e.compare(t));let t=0,n=e[t].y;this.m_sortedNodes.push(R(n,e[t].startEdge));let r=t;for(t++;t!==e.length;++t){e[t].y!==n&&(this.m_sortedNodes.push(R(e[t].y,null)),n=e[t].y);let i=e[t].startEdge;if(i){let e=this.m_sortedNodes.at(-1);i.startNodeNext=e.startingEdges,e.startingEdges=i}if(e[r].x!==e[t].x||e[r].y!==e[t].y){if(t-r===2){let t=r;t++,e[r].endEdge!==null&&e[t].startEdge!==null&&(e[r].endEdge.nextInChain=e[t].startEdge)}r=t}}}progress(){}splitPolygonLinear(e,t,a,o,s,c){let l=[];l.push([e,0,c]);let d=[],f=new u;for(f.startPathCoords(a,0),f.lineToCoords(o,0);l.length>0;){let u=l.at(-1);l.pop();let p=u[0],m=u[1],h=u[2],g=new E().executeMany(new r([p]),t,this.m_progressTracker);for(let r=g.next();r!==null;r=g.next()){let u=r,p=new i;u.queryLooseEnvelope(p);let g=m,v=h;for(let e=m,t=h-1;e<h;++e,--t)p.ymin>=s[e]&&(g=e+1),p.ymax<=s[t]&&(v=t);if(g===h)d.push(_(r,h-1));else if(v===m)d.push(_(r,m-1));else if(g===v)d.push(_(r,g-1));else if(this.isYMonotone(u))this.splitYMonotone(d,u,t,s,g,v);else{let r=Math.trunc((g+v)/2);f.setXYCoords(0,a,s[r]),f.setXYCoords(1,o,s[r]);let m=new D().execute(!1,u,f,null,this.m_progressTracker),h=m.next(),y=m.next(),b=m.next();if(h!==null){if(h.isEmpty()||(r===v-1?(d.push(_(h,r)),n(G(d.at(-1).first,t,e,d.at(-1).second,s,c))):l.push([h,r+1,v])),y.isEmpty()||(r===g?(d.push(_(y,r-1)),n(G(d.at(-1).first,t,e,d.at(-1).second,s,c))):l.push([y,g,r])),b!==null&&!b.isEmpty()){let e=new i;b.queryLooseEnvelope(e),e.ymin>=s[r]?l.push([b,r+1,v]):e.ymax<=s[r]?l.push([b,g,r]):l.push([b,g,v])}}else r+1===v?(s[r]-p.ymin<p.ymax-s[r]?d.push(_(u,r)):d.push(_(u,r+1)),n(G(d.at(-1).first,t,e,d.at(-1).second,s,c))):l.push([u,r+1,v])}}}return d}splitPolygon(e,t,n,r,a,o){let s=new i;e.queryLooseEnvelope(s),s.inflateCoords(0,Math.max(s.width(),s.height()));let c=[],l=[];for(l.push(B(e,0,o));l.length;){let o={...l.at(-1)};if(l.pop(),o.polygon.hasNonLinearSegments()){let e=Math.trunc((o.to+o.from)/2),u=a[e],d=new i(n,s.ymin,r,u),f=new T().execute(o.polygon,d,t,this.m_progressTracker);f.isEmpty()||(e-o.from===0?c.push(_(f,e-1)):l.push(B(f,o.from,e)));let p=new i(n,u,r,s.ymax),m=new T().execute(o.polygon,p,t,this.m_progressTracker);m.isEmpty()||(o.to-e===1?c.push(_(m,e)):l.push(B(m,e+1,o.to)))}else{let i=this.splitPolygonLinear(e,t,n,r,a.slice(o.from),o.to-o.from);c.push(...i)}}c.sort((e,t)=>e.second-t.second);let u=[];return d(c,(e,t)=>e.second===t.second,(e,t)=>{let n=new m;for(let r=e;r!==t;++r)n.add(c[r].first,!1);u.push(_(n,c[e].second))}),u}isYMonotone(e){if(e.getPathCount()!==1)return!1;let t=e.getXY(0),n=0,r=0,i=new b;for(let a=1,o=e.getPointCount();a<=o;a++){e.queryXY(a===o?0:a,i);let s=i.y>t.y?1:i.y<t.y?-1:0;if(t.setCoordsPoint2D(i),n!==s&&s!==0){if(n!==0&&(r++,r>2))return!1;n=s}}return!0}splitYMonotone(e,t,r,i,a,o){let s=new f;s.addGeometry(t);let c=s.getFirstPath(s.getFirstGeometry()),l=s.getFirstVertex(c),u=new b,d=new b,m=l,h=l;{let e=s.getXY(l);u.setCoordsPoint2D(e),d.setCoordsPoint2D(e)}let g=s.getNextVertex(l),v=new b;for(let e=0,t=s.getPathSize(c);e<t;e++,g=s.getNextVertex(g))s.queryXY(g,v),v.compare(u)<0?(m=g,u.setCoordsPoint2D(v)):v.compare(d)>0&&(h=g,d.setCoordsPoint2D(v));let y=m,x=m,S=y,C=x,w=!1,T=!1,E=a,D=u.y,O=u.y,k=!1;for(;E<o;)if(i[E]<=u.y)E++;else{if(i[E]>=d.y)break;if(!w){let e=s.getNextVertex(y),t=s.getY(e);if(t<D)break;let n=i[E];D<=n&&t>=n?w=!0:(D=t,y=e)}if(!T){let e=s.getPrevVertex(x),t=s.getY(e);if(t<O)break;let n=i[E];O<=n&&t>=n?T=!0:(O=t,x=e)}if(w&&T){k=!0;let t=s.getXY(y),r=s.getNextVertex(y),a=s.getXY(r),o=p;if(a.y===t.y)o=a.x<t.x?y:r;else{let e=(i[E]-t.y)/(a.y-t.y);if(e===0)o=y;else if(e===1)o=r;else{let t=s.splitSegmentAxisAware(y,[e],1,null,-1);n(t===1),o=s.getNextVertex(y),s.getY(o)!==i[E]&&s.setXYCoords(o,s.getX(o),i[E])}}let c=s.getPrevVertex(x);t=s.getXY(c),a=s.getXY(x);let l=p;if(a.y===t.y)l=a.x<t.x?x:c;else{let e=(i[E]-t.y)/(a.y-t.y);if(e===0)l=c;else if(e===1)l=x;else{let t=s.splitSegmentAxisAware(c,[e],1,null,-1);n(t===1),l=s.getNextVertex(c),s.getY(l)!==i[E]&&s.setXYCoords(l,s.getX(l),i[E])}}e.push(_(this.extractTrapezoid(s,S,o,C,l),E-1)),S=o,C=l,y=o,x=l,D=O=i[E],w=!1,T=!1,E++}}k?e.push(_(this.extractTrapezoid(s,S,h,C,h),E-1)):e.push(_(t,E))}extractTrapezoid(e,t,n,r,i){let a=new m({vd:e.getVertexDescription()}),o=new C,s=!0;for(let r=t;;r=e.getNextVertex(r)){let t=e.getSegment(r);if(t?a.addSegment(t,s):(e.queryPoint(r,o),s?a.startPathPoint(o):a.lineToPoint(o)),s=!1,r===n)break}n!==i&&(e.queryPoint(i,o),a.lineToPoint(o)),s=!0;for(let n=i;;n=e.getNextVertex(n)){let i=e.getSegment(n);if(i?a.addSegment(i,s):!s&&n!==t&&(e.queryPoint(n,o),a.lineToPoint(o)),s=!1,n===r)break}return a}}function W(e){return e.getImpl().ensureXYMonotoneSegments()}function G(e,t,n,r,a,o){let s=new i;e.queryEnvelope(s);let c=w(t,n,!0).total()*4;return!(r>=0&&!(s.ymin+c>=a[r])||r+1<o&&s.ymax>a[r+1]+c)}class K{getOperatorType(){return 10011}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}sliceIntoStrips(e,t,n,r,i,a){return new q(0,e,t,n,i,0,a)}findSlicesByArea(e,t,n,r,i,a){if(!i||i.isIdentity())return O(e,t,n,r,a);{let o=e.clone();return o.applyTransformation(i),O(o,t,n,r,a)}}recursiveSliceEqualArea(e,t,n,r,i){return new q(1,e,t,null,r,n,i)}}class q extends e{m_ySplits;m_polygon;m_sr;m_transform;m_inverseTransform;m_tracker;m_partCount;m_method;m_bReversePaths;m_resultCursor=null;constructor(e,t,n,r,i,a,o){super(),this.m_method=e,this.m_polygon=t,this.m_sr=n,this.m_ySplits=r?.slice()??null,this.m_transform=i,this.m_bReversePaths=i?.isReflective()??!1,this.m_inverseTransform=i?i.clone().invertThis():null,this.m_partCount=a,this.m_tracker=o}tock(){return!0}getRank(){return 1}next(){this.m_resultCursor||(this.m_method?this.recursiveSliceEqualArea():this.sliceIntoStrips());let e=this.m_resultCursor.next();return e&&(this.m_inverseTransform&&!this.m_inverseTransform.isIdentity()&&(e.applyTransformation(this.m_inverseTransform),this.m_bReversePaths&&e.reverseAllPaths()),e)}getGeometryID(){return this.m_resultCursor?this.m_resultCursor.getGeometryID():-1}sliceIntoStrips(){if(!this.m_transform||this.m_transform.isIdentity())this.m_resultCursor=k(this.m_polygon,this.m_sr,this.m_ySplits,this.m_ySplits.length,this.m_tracker);else{let e=this.m_polygon.clone();e.applyTransformation(this.m_transform),this.m_bReversePaths&&e.reverseAllPaths(),this.m_resultCursor=k(e,this.m_sr,this.m_ySplits,this.m_ySplits.length,this.m_tracker)}}recursiveSliceEqualArea(){if(!this.m_transform||this.m_transform.isIdentity())this.m_resultCursor=A(this.m_polygon,this.m_sr,this.m_partCount,this.m_tracker);else{let e=this.m_polygon.clone();e.applyTransformation(this.m_transform),this.m_bReversePaths&&e.reverseAllPaths(),this.m_resultCursor=A(e,this.m_sr,this.m_partCount,this.m_tracker)}}}const J=new K;function Y(e,t,n,r,i){return J.findSlicesByArea(e,t,n,r,i,null)}function X(e,t,n,r){let i=J.recursiveSliceEqualArea(e,t,n,r,null);return Array.from(i)}function Z(e,t,n,r){let i=J.sliceIntoStrips(e,t,n,0,r,null);return Array.from(i)}function Q(){return J.supportsCurves()}export{Y as findSlicesByArea,X as recursiveSliceEqualArea,Z as sliceIntoStrips,Q as supportsCurves};
2
+ import{G as e}from"../../../chunks/GeometryCursor.js";import{b as t,g as n}from"../../../chunks/Geometry.js";import{S as r}from"../../../chunks/SimpleGeometryCursor.js";import{Envelope2D as i}from"../../../chunks/Envelope2D.js";import{T as a}from"../../../chunks/Transformation2D.js";import{p as o,q as s,t as c,u as l,a as u,v as d,E as f,n as p,P as m,w as h}from"../../../chunks/MultiPathImpl.js";import{K as g,o as _,E as v,d as y,P as b,s as x,r as S}from"../../../chunks/Point2D.js";import{P as C,e as w}from"../../../chunks/Envelope.js";import{O as T}from"../../../chunks/OperatorClip.js";import{O as E}from"../../../chunks/OperatorMultiPartToSinglePart.js";import{O as D}from"../../../chunks/OperatorCut.js";function O(e,t,n,r,i){return new U(i).findSlicesByArea(e,t,n,r)}function k(e,t,n,r,i){return new U(i).sliceIntoStrips(e,t,n,r)}function A(e,t,n,r){return new U(r).recursiveSliceEqualArea(e,t,n)}function j(e){this.currentX=this.calcX(e)}function M(e){if(this.curve===null){let t=(e-this.y0)/(this.y1-this.y0);return S(this.x0,this.x1,t)}return this.curve.intersectionOfYMonotonicWithAxisX(e,this.x0)}function N(){return{x0:NaN,y0:NaN,x1:NaN,y1:NaN,currentX:NaN,nextAET:null,prevAET:null,startNodeNext:null,nextInChain:null,curve:null,advance:j,calcX:M}}function P(e,t){let n=N();return n.x0=e.getStartX(),n.y0=e.getStartY(),n.x1=e.getEndX(),n.y1=e.getEndY(),t&&(n.y0=x(n.x0,n.x0=n.y0),n.y1=x(n.x1,n.x1=n.y1)),n.y1<n.y0&&(n.y1=x(n.y0,n.y0=n.y1),n.x1=x(n.x0,n.x0=n.x1)),n.currentX=NaN,n.nextAET=null,n.prevAET=null,n.startNodeNext=null,n.nextInChain=null,n.curve=null,n}function F(e){let t=N();return t.x0=e.getStartX(),t.y0=e.getStartY(),t.x1=e.getEndX(),t.y1=e.getEndY(),t.curve=e,t.y1<t.y0&&(t.y1=x(t.y0,t.y0=t.y1),t.x1=x(t.x0,t.x0=t.x1)),t.currentX=NaN,t.nextAET=null,t.prevAET=null,t.startNodeNext=null,t.nextInChain=null,t}function I(e){if(this.x===e.x&&this.y===e.y){let t=this.endEdge!==null,n=e.startEdge!==null;return t&&n?-1:1}return this.y===e.y?this.x-e.x:this.y-e.y}function L(){return{x:NaN,y:NaN,startEdge:null,endEdge:null,compare:I}}function R(e,t){return{y:e,startingEdges:t}}class z{m_parent;m_y0;m_y1;m_t0;m_area;constructor(e,t,n,r,i,a){this.m_parent=e,this.m_y0=t,this.m_y1=n,this.m_t0=r,this.m_area=a}getMaxDerivative(){return 1}getValue(e,t){return e===1?0:this.getArea(t)-this.m_area}getError(e){return n(0),0}getArea(e){let t=.5*(this.m_parent.m_sumBase-this.m_parent.m_sumA),n=this.m_y1-this.m_y0,r=(this.m_parent.m_sumBase-t*(e+this.m_t0))*n*(e-this.m_t0),i=!1;for(let t=this.m_parent.m_AETHead;t!==null;t=t.nextAET)if(i=!i,i&&(t.curve!==null||t.nextAET.curve!==null)){let i=this.m_y0+n*this.m_t0,a=this.m_y0+n*e;t.curve&&(r+=V(t.curve,this.m_y0+n*this.m_t0,this.m_y0+n*e)),t.nextAET.curve&&(r-=V(t.nextAET.curve,this.m_y0+n*this.m_t0,this.m_y0+n*e));let o=a-i,s=t.nextAET.calcX(i)-t.calcX(i),c=t.nextAET.calcX(a)-t.calcX(a);r+=o*(s+c)*.5}return r}}function B(e,t,n){return{polygon:e,from:t,to:n}}function V(e,t,r){let i=[0,0],a=e.intersectionWithAxis2D(!0,t,null,i);n(a===1);let o=i[0],s=e.intersectionWithAxis2D(!0,r,null,i);n(s===1);let c=i[0],l=y(b,4);h(e,l,!0);let u=l[3],d=l[2],f=l[1],p=e.getCoordX(o)-e.getStartX(),m=e.getCoordY(o)-e.getStartY(),g=e=>{let t=e*e;return t*e*(10*(d.x*f.y-d.y*f.x)-15*e*(u.y*f.x-u.x*f.y)+6*t*(d.y*u.x-u.y*d.x))/60},_=e=>(-e*(f.y+e*(d.y+u.y*e))*p+e*(f.x+e*(d.x+u.x*e))*m)/2;return g(c)-g(o)-(_(c)-_(o))}class H extends e{m_geoms=[];m_index=-1;m_id=-1;constructor(e){super(),this.m_geoms=e}tock(){return!0}getRank(){return 1}next(){return this.m_index++,this.m_index>=this.m_geoms.length?null:(this.m_id=this.m_geoms[this.m_index].second,this.m_geoms[this.m_index].first)}getGeometryID(){return this.m_id}}class U{m_progressTracker;m_edges=[];m_curves=[];m_sortedNodes=[];m_sortHelper=[];m_cuts=[];m_cutAreas=[];m_totalAreaOfTraps=new g(0);m_areaTracking=0;m_splitArea=0;m_sumBase=0;m_sumA=0;m_numberOfCuts=0;m_currentScan=0;m_progressCounter=0;m_AETHead=null;m_bHorizontalSweep=!1;m_bPolygonHasCurves=!1;constructor(e){this.m_progressTracker=e}findSlicesByArea(e,n,r,i){i<0&&t(`remainingArea`);let a=e,s=null;a.hasNonLinearSegments()&&(this.m_bPolygonHasCurves=!0,s=o(e,1e-16,!0),W(s),a=s);let c=Math.abs(a.calculateArea2D());return c===0||r===0||i>=c||r===1&&i===0?[]:(this.m_splitArea=(c-i)/r,this.m_numberOfCuts=r-1,i>0&&this.m_numberOfCuts++,this.m_edges.length=0,this.m_sortedNodes.length=0,this.m_cuts.length=0,this.m_areaTracking=0,this.m_totalAreaOfTraps.reset(),this.m_curves.length=0,this.buildEdges(a),this.buildScanNodes(),this.trapezoidation(),this.m_cuts)}sliceIntoStrips(e,t,n,a){if(a===0)return new r([e]);let o=new i;e.queryLooseEnvelope(o);let s=o.width()+o.height();return new H(this.splitPolygon(e,t,o.xmin-s-1+1,o.xmax+s+1,n,a))}recursiveSliceEqualArea(e,t,o){if(o<=1||e.isEmpty())return new r([e]);{let r=[],s=[];s.push(_(e.clone(),o));let c=0,l=0;for(;s.length>0;){n(l++<2*o);let e=s.at(-1);if(s.pop(),e.second===1){r.push(_(e.first,c++));continue}let u=new i;e.first.queryEnvelope(u);let d=u.width()+u.height(),f=new a;f.setIdentity(),u.width()>u.height()&&(f.setRotateCcw90(),e.first.applyTransformation(f),f.transformEnvInPlace(u));let p=e.first.calculateArea2D(),m=p/e.second,h=p-Math.trunc(e.second/2)*m,g=new U(this.m_progressTracker).findSlicesByArea(e.first,t,1,h),v=new U(this.m_progressTracker).splitPolygon(e.first,t,u.xmin-d-1+1,u.xmax+d+1,g,1),y=v.length;if(n(y>0&&y<=2),!f.isIdentity()){let e=new a;e.setRotateCw90(),v[0].first.applyTransformation(e),y===2&&v[1].first.applyTransformation(e)}y===2?(s.push(_(v[1].first,e.second-Math.trunc(e.second/2))),s.push(_(v[0].first,Math.trunc(e.second/2)))):s.push(_(v[0].first,e.second))}return new H(r)}}recursiveSliceEqualAreaImpl(e,t,r,i){return n(0),{}}processTraps(e,t,n){n?this.processTrapsCurves(e,t):this.processTrapsLinear(e,t)}processTrapsLinear(e,t){let n=0,r=1,i=.5*(this.m_sumBase-this.m_sumA),a=t-e,o=(this.m_sumBase-i*(r+n))*a*(r-n);if(o+this.m_areaTracking<this.m_splitArea){this.m_totalAreaOfTraps.pe(o),this.m_areaTracking+=o;return}let c=new g(o),l=new v(0,1),u=!1;for(;n<1;){let t=this.m_splitArea-this.m_areaTracking,d=[NaN,NaN];if(s(-i*a,this.m_sumBase*a,(i*n-this.m_sumBase)*a*n-t,l,!1,d)>0){u=!0,r=d[0],this.m_areaTracking=0,n=r,c.me(t);let i=r*a+e;if(this.m_cuts.push(i),this.m_cutAreas.push(this.m_totalAreaOfTraps.getResult()+o-c.getResult()),this.m_cuts.length===this.m_numberOfCuts){this.m_totalAreaOfTraps.pe(o-c.getResult());return}}else{u?this.m_areaTracking=c.getResult():this.m_areaTracking+=o;break}}this.m_totalAreaOfTraps.pe(o)}processTrapsCurves(e,t){let n=0,r=1,i=new z(this,e,t,0,1,0).getArea(1);if(i+this.m_areaTracking<this.m_splitArea){this.m_totalAreaOfTraps.pe(i),this.m_areaTracking+=i;return}let a=t-e,o=new g(i),s=!1;for(;n<1;){let l=this.m_splitArea-this.m_areaTracking,u=new z(this,e,t,n,1,l),d=[0],f=new v(n,1);if(c(u,f,1,d)>0){s=!0,r=d[0],this.m_areaTracking=0,n=r,o.me(l);let t=r*a+e;if(this.m_cuts.push(t),this.m_cutAreas.push(this.m_totalAreaOfTraps.getResult()+i-o.getResult()),this.m_cuts.length===this.m_numberOfCuts){this.m_totalAreaOfTraps.pe(i-o.getResult());return}}else{s?this.m_areaTracking=o.getResult():this.m_areaTracking+=i;break}}this.m_totalAreaOfTraps.pe(i)}advanceAET(){let e=this.m_sortedNodes[this.m_currentScan-1].y,t=this.m_sortedNodes[this.m_currentScan],n=!1,r=!1,i=new g(0);for(let e=this.m_AETHead;e!==null;e=e.nextAET){let a=e.prevAET;n=!n,e.nextAET!==null&&n&&(this.m_bPolygonHasCurves&&(e.curve||e.nextAET.curve)||i.pe(e.nextAET.currentX-e.currentX)),e.advance(t.y),a!==null&&e.currentX<a.currentX&&(r=!0)}this.m_sumBase=i.getResult(),r&&this.sortAET();let a=new g(0);n=!1;let o=!1;for(let e=this.m_AETHead;e!==null;e=e.nextAET){o||=e.curve!==null;let t=e.prevAET;n=!n,t!==null&&(n||this.m_bPolygonHasCurves&&(e.curve||e.prevAET.curve)||a.pe(e.currentX-e.prevAET.currentX))}this.m_sumA=a.getResult(),this.processTraps(e,t.y,o);for(let e=this.m_AETHead;e!=null;){let n=e.prevAET,r=e.nextAET;if(t.y===e.y1){if(e.prevAET=null,e.nextAET=null,e.nextInChain!==null){let t=e.currentX;e=e.nextInChain,e.currentX=t,e.prevAET=n,n?n.nextAET=e:this.m_AETHead=e,e.nextAET=r,r&&(r.prevAET=e)}else n?n.nextAET=r:this.m_AETHead=r,r&&(r.prevAET=n)}e=r}}mergeNewEdgesToAET(){for(let e=this.m_sortedNodes[this.m_currentScan].startingEdges;e!==null;e=e.startNodeNext)Number.isNaN(e.currentX)&&(this.m_sortHelper.push(e),e.currentX=e.x0);if(!this.m_sortHelper.length)return;this.sortHelper();let e=this.m_AETHead,t=0,n=e;for(;e!==null&&t<this.m_sortHelper.length;)e.currentX>this.m_sortHelper[t].currentX?(this.m_sortHelper[t].prevAET=e.prevAET,e.prevAET?e.prevAET.nextAET=this.m_sortHelper[t]:this.m_AETHead=this.m_sortHelper[t],this.m_sortHelper[t].nextAET=e,e.prevAET=this.m_sortHelper[t],t++):(n=e,e=e.nextAET);for(;t<this.m_sortHelper.length;)this.m_sortHelper[t].prevAET=n,n===null?this.m_AETHead=this.m_sortHelper[t]:n.nextAET=this.m_sortHelper[t],this.m_sortHelper[t].nextAET=null,n=this.m_sortHelper[t],t++;this.m_sortHelper.length=0}sortAET(){for(let e=this.m_AETHead;e!==null;e=e.nextAET)this.m_sortHelper.push(e);this.sortHelper(),this.m_AETHead=null;let e=null;for(let t of this.m_sortHelper)t.prevAET=e,e?e.nextAET=t:this.m_AETHead=t,t.nextAET=null,e=t;this.m_sortHelper.length=0}sortHelper(){this.m_sortHelper.sort((e,t)=>e.currentX-t.currentX)}trapezoidation(){for(this.m_currentScan=0,this.mergeNewEdgesToAET(),this.m_currentScan++;this.m_currentScan<this.m_sortedNodes.length&&(this.progress(),this.advanceAET(),this.m_cuts.length!==this.m_numberOfCuts);)this.mergeNewEdgesToAET(),this.m_currentScan++}buildEdges(e){let t=e.querySegmentIterator();for(t.stripAttributes();t.nextPath();)for(;t.hasNextSegment();){let e=t.nextSegment();if(e.isCurve()){let t=e;if(l(t),this.m_bHorizontalSweep){let e=y(b,4);t.queryControlPoints(e);for(let t of e)t.y=x(t.x,t.x=t.y);t.constructPoints(e)}let n=t.getStartY(),r=t.getEndY();if(r===n)continue;r<n&&t.reverse(),this.m_curves.push(t.clone()),this.m_edges.push(F(this.m_curves.at(-1)))}else{let t=this.m_bHorizontalSweep?e.getStartX():e.getStartY();if((this.m_bHorizontalSweep?e.getEndX():e.getEndY())===t)continue;this.m_edges.push(P(e,this.m_bHorizontalSweep))}}this.m_edges.sort((e,t)=>e.y0===t.y0?e.x0-t.x0:e.y0-t.y0)}buildScanNodes(){let e=[];for(let t of this.m_edges){let n=L();n.x=t.x0,n.y=t.y0,n.startEdge=t,n.endEdge=null,e.push(n);let r=L();r.x=t.x1,r.y=t.y1,r.startEdge=null,r.endEdge=t,e.push(r)}e.sort((e,t)=>e.compare(t));let t=0,n=e[t].y;this.m_sortedNodes.push(R(n,e[t].startEdge));let r=t;for(t++;t!==e.length;++t){e[t].y!==n&&(this.m_sortedNodes.push(R(e[t].y,null)),n=e[t].y);let i=e[t].startEdge;if(i){let e=this.m_sortedNodes.at(-1);i.startNodeNext=e.startingEdges,e.startingEdges=i}if(e[r].x!==e[t].x||e[r].y!==e[t].y){if(t-r===2){let t=r;t++,e[r].endEdge!==null&&e[t].startEdge!==null&&(e[r].endEdge.nextInChain=e[t].startEdge)}r=t}}}progress(){}splitPolygonLinear(e,t,a,o,s,c){let l=[];l.push([e,0,c]);let d=[],f=new u;for(f.startPathCoords(a,0),f.lineToCoords(o,0);l.length>0;){let u=l.at(-1);l.pop();let p=u[0],m=u[1],h=u[2],g=new E().executeMany(new r([p]),t,this.m_progressTracker);for(let r=g.next();r!==null;r=g.next()){let u=r,p=new i;u.queryLooseEnvelope(p);let g=m,v=h;for(let e=m,t=h-1;e<h;++e,--t)p.ymin>=s[e]&&(g=e+1),p.ymax<=s[t]&&(v=t);if(g===h)d.push(_(r,h-1));else if(v===m)d.push(_(r,m-1));else if(g===v)d.push(_(r,g-1));else if(this.isYMonotone(u))this.splitYMonotone(d,u,t,s,g,v);else{let r=Math.trunc((g+v)/2);f.setXYCoords(0,a,s[r]),f.setXYCoords(1,o,s[r]);let m=new D().execute(!1,u,f,null,this.m_progressTracker),h=m.next(),y=m.next(),b=m.next();if(h!==null){if(h.isEmpty()||(r===v-1?(d.push(_(h,r)),n(G(d.at(-1).first,t,e,d.at(-1).second,s,c))):l.push([h,r+1,v])),y.isEmpty()||(r===g?(d.push(_(y,r-1)),n(G(d.at(-1).first,t,e,d.at(-1).second,s,c))):l.push([y,g,r])),b!==null&&!b.isEmpty()){let e=new i;b.queryLooseEnvelope(e),e.ymin>=s[r]?l.push([b,r+1,v]):e.ymax<=s[r]?l.push([b,g,r]):l.push([b,g,v])}}else r+1===v?(s[r]-p.ymin<p.ymax-s[r]?d.push(_(u,r)):d.push(_(u,r+1)),n(G(d.at(-1).first,t,e,d.at(-1).second,s,c))):l.push([u,r+1,v])}}}return d}splitPolygon(e,t,n,r,a,o){let s=new i;e.queryLooseEnvelope(s),s.inflateCoords(0,Math.max(s.width(),s.height()));let c=[],l=[];for(l.push(B(e,0,o));l.length;){let o={...l.at(-1)};if(l.pop(),o.polygon.hasNonLinearSegments()){let e=Math.trunc((o.to+o.from)/2),u=a[e],d=new i(n,s.ymin,r,u),f=new T().execute(o.polygon,d,t,this.m_progressTracker);f.isEmpty()||(e-o.from===0?c.push(_(f,e-1)):l.push(B(f,o.from,e)));let p=new i(n,u,r,s.ymax),m=new T().execute(o.polygon,p,t,this.m_progressTracker);m.isEmpty()||(o.to-e===1?c.push(_(m,e)):l.push(B(m,e+1,o.to)))}else{let i=this.splitPolygonLinear(e,t,n,r,a.slice(o.from),o.to-o.from);c.push(...i)}}c.sort((e,t)=>e.second-t.second);let u=[];return d(c,(e,t)=>e.second===t.second,(e,t)=>{let n=new m;for(let r=e;r!==t;++r)n.add(c[r].first,!1);u.push(_(n,c[e].second))}),u}isYMonotone(e){if(e.getPathCount()!==1)return!1;let t=e.getXY(0),n=0,r=0,i=new b;for(let a=1,o=e.getPointCount();a<=o;a++){e.queryXY(a===o?0:a,i);let s=i.y>t.y?1:i.y<t.y?-1:0;if(t.setCoordsPoint2D(i),n!==s&&s!==0){if(n!==0&&(r++,r>2))return!1;n=s}}return!0}splitYMonotone(e,t,r,i,a,o){let s=new f;s.addGeometry(t);let c=s.getFirstPath(s.getFirstGeometry()),l=s.getFirstVertex(c),u=new b,d=new b,m=l,h=l;{let e=s.getXY(l);u.setCoordsPoint2D(e),d.setCoordsPoint2D(e)}let g=s.getNextVertex(l),v=new b;for(let e=0,t=s.getPathSize(c);e<t;e++,g=s.getNextVertex(g))s.queryXY(g,v),v.compare(u)<0?(m=g,u.setCoordsPoint2D(v)):v.compare(d)>0&&(h=g,d.setCoordsPoint2D(v));let y=m,x=m,S=y,C=x,w=!1,T=!1,E=a,D=u.y,O=u.y,k=!1;for(;E<o;)if(i[E]<=u.y)E++;else{if(i[E]>=d.y)break;if(!w){let e=s.getNextVertex(y),t=s.getY(e);if(t<D)break;let n=i[E];D<=n&&t>=n?w=!0:(D=t,y=e)}if(!T){let e=s.getPrevVertex(x),t=s.getY(e);if(t<O)break;let n=i[E];O<=n&&t>=n?T=!0:(O=t,x=e)}if(w&&T){k=!0;let t=s.getXY(y),r=s.getNextVertex(y),a=s.getXY(r),o=p;if(a.y===t.y)o=a.x<t.x?y:r;else{let e=(i[E]-t.y)/(a.y-t.y);if(e===0)o=y;else if(e===1)o=r;else{let t=s.splitSegmentAxisAware(y,[e],1,null,-1);n(t===1),o=s.getNextVertex(y),s.getY(o)!==i[E]&&s.setXYCoords(o,s.getX(o),i[E])}}let c=s.getPrevVertex(x);t=s.getXY(c),a=s.getXY(x);let l=p;if(a.y===t.y)l=a.x<t.x?x:c;else{let e=(i[E]-t.y)/(a.y-t.y);if(e===0)l=c;else if(e===1)l=x;else{let t=s.splitSegmentAxisAware(c,[e],1,null,-1);n(t===1),l=s.getNextVertex(c),s.getY(l)!==i[E]&&s.setXYCoords(l,s.getX(l),i[E])}}e.push(_(this.extractTrapezoid(s,S,o,C,l),E-1)),S=o,C=l,y=o,x=l,D=O=i[E],w=!1,T=!1,E++}}k?e.push(_(this.extractTrapezoid(s,S,h,C,h),E-1)):e.push(_(t,E))}extractTrapezoid(e,t,n,r,i){let a=new m({vd:e.getVertexDescription()}),o=new C,s=!0;for(let r=t;;r=e.getNextVertex(r)){let t=e.getSegment(r);if(t?a.addSegment(t,s):(e.queryPoint(r,o),s?a.startPathPoint(o):a.lineToPoint(o)),s=!1,r===n)break}n!==i&&(e.queryPoint(i,o),a.lineToPoint(o)),s=!0;for(let n=i;;n=e.getNextVertex(n)){let i=e.getSegment(n);if(i?a.addSegment(i,s):!s&&n!==t&&(e.queryPoint(n,o),a.lineToPoint(o)),s=!1,n===r)break}return a}}function W(e){return e.getImpl().ensureXYMonotoneSegments()}function G(e,t,n,r,a,o){let s=new i;e.queryEnvelope(s);let c=w(t,n,!0).total()*4;return!(r>=0&&!(s.ymin+c>=a[r])||r+1<o&&s.ymax>a[r+1]+c)}class K{getOperatorType(){return 10011}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}sliceIntoStrips(e,t,n,r,i,a){return new q(0,e,t,n,i,0,a)}findSlicesByArea(e,t,n,r,i,a){if(!i||i.isIdentity())return O(e,t,n,r,a);{let o=e.clone();return o.applyTransformation(i),O(o,t,n,r,a)}}recursiveSliceEqualArea(e,t,n,r,i){return new q(1,e,t,null,r,n,i)}}class q extends e{m_ySplits;m_polygon;m_sr;m_transform;m_inverseTransform;m_tracker;m_partCount;m_method;m_bReversePaths;m_resultCursor=null;constructor(e,t,n,r,i,a,o){super(),this.m_method=e,this.m_polygon=t,this.m_sr=n,this.m_ySplits=r?.slice()??null,this.m_transform=i,this.m_bReversePaths=i?.isReflective()??!1,this.m_inverseTransform=i?i.clone().invertThis():null,this.m_partCount=a,this.m_tracker=o}tock(){return!0}getRank(){return 1}next(){this.m_resultCursor||(this.m_method?this.recursiveSliceEqualArea():this.sliceIntoStrips());let e=this.m_resultCursor.next();return e&&(this.m_inverseTransform&&!this.m_inverseTransform.isIdentity()&&(e.applyTransformation(this.m_inverseTransform),this.m_bReversePaths&&e.reverseAllPaths()),e)}getGeometryID(){return this.m_resultCursor?this.m_resultCursor.getGeometryID():-1}sliceIntoStrips(){if(!this.m_transform||this.m_transform.isIdentity())this.m_resultCursor=k(this.m_polygon,this.m_sr,this.m_ySplits,this.m_ySplits.length,this.m_tracker);else{let e=this.m_polygon.clone();e.applyTransformation(this.m_transform),this.m_bReversePaths&&e.reverseAllPaths(),this.m_resultCursor=k(e,this.m_sr,this.m_ySplits,this.m_ySplits.length,this.m_tracker)}}recursiveSliceEqualArea(){if(!this.m_transform||this.m_transform.isIdentity())this.m_resultCursor=A(this.m_polygon,this.m_sr,this.m_partCount,this.m_tracker);else{let e=this.m_polygon.clone();e.applyTransformation(this.m_transform),this.m_bReversePaths&&e.reverseAllPaths(),this.m_resultCursor=A(e,this.m_sr,this.m_partCount,this.m_tracker)}}}const J=new K;function Y(e,t,n,r,i){return J.findSlicesByArea(e,t,n,r,i,null)}function X(e,t,n,r){let i=J.recursiveSliceEqualArea(e,t,n,r,null);return Array.from(i)}function Z(e,t,n,r){let i=J.sliceIntoStrips(e,t,n,0,r,null);return Array.from(i)}function Q(){return J.supportsCurves()}export{Y as findSlicesByArea,X as recursiveSliceEqualArea,Z as sliceIntoStrips,Q as supportsCurves};
@@ -1,3 +1,3 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{constructFromFlatGeometry as e}from"../../../chunks/FlatGeometry.js";import{d as t,b as n,g as r,r as i,q as a,G as o,a as s}from"../../../chunks/Geometry.js";import{aL as c,i as l,c as u,f as d,aM as f,P as p,d as m}from"../../../chunks/Point2D.js";import{q as h,b as g,p as _,a_ as v,c as y,e as b,a as x,f as S,a$ as C}from"../../../chunks/UnitFactory.js";import{a2 as w,a5 as T,P as E,E as D,a0 as O,a1 as k,a6 as A,a7 as j,X as M}from"../../../chunks/Envelope.js";import{P as N,a as P,S as F,M as I,I as L,a5 as R,a6 as z,a7 as B,a8 as V,a9 as H}from"../../../chunks/MultiPathImpl.js";import{convertGeometryxToFlat as U,convertFlatToGeometryJSON as W,convertGeometryToFlat as ee}from"../../FlatGeometry.js";import te from"../../SpatialReference.js";import"./initNoPeFactory.js";import{isPoint as ne,isMultipoint as re,isPolyline as ie,isPolygon as ae}from"../../support/jsonTypeUtils.js";function oe(){if(this.m_i===-1)return this.m_i=0,{value:{m_token:1,m_value:null},done:!1};if(this.m_i<this.m_keys.length){let e=this.m_bReturnKey,t=Math.trunc(this.m_i);return this.m_bReturnKey=!this.m_bReturnKey,this.m_i+=.5,e?{value:{m_token:5,m_value:this.m_keys[t]},done:!1}:{value:{m_token:6,m_value:this.m_o[this.m_keys[t]]},done:!1}}return{value:{m_token:3,m_value:null},done:!0}}function se(){if(this.m_i===-1)return this.m_i=0,{value:{m_token:2,m_value:null},done:!1};if(this.m_i<this.m_a.length){let e={value:{m_token:6,m_value:this.m_a[this.m_i++]},done:!1};return this.m_strict||e.value.m_value===void 0&&(e.value.m_value=NaN),e}return{value:{m_token:4,m_value:null},done:!0}}class ce{m_iteratorStack;m_nextFlatToken;m_currentToken=0;m_currentValue;m_options;createJSONObjectIterator(e){return{m_iteratorType:`object`,m_o:e,m_keys:this.m_options.strict?Object.keys(e):Object.keys(e).filter(t=>e[t]!==void 0),m_i:-1,m_bReturnKey:!0,next:oe}}createJSONArrayIterator(e){return{m_iteratorType:`array`,m_strict:this.m_options.strict,m_i:-1,m_a:e,next:se}}constructor(e,t){this.m_options=t?{...t}:{strict:!0};let n=e;this.m_iteratorStack=[n instanceof Array?this.createJSONArrayIterator(n):this.createJSONObjectIterator(n)],this.m_nextFlatToken={m_value:null,m_token:0}}nextToken(){if(this.m_iteratorStack.length===0)return this.m_currentToken=0;switch(this.m_nextFlatToken=this.m_iteratorStack.at(-1).next().value,this.m_currentValue=void 0,this.m_nextFlatToken.m_token){case 1:return this.m_currentToken=1;case 3:return this.m_iteratorStack.pop(),this.m_currentToken=3;case 2:return this.m_currentToken=2;case 4:return this.m_iteratorStack.pop(),this.m_currentToken=4;case 5:return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=5;case 6:if(this.m_nextFlatToken.m_value instanceof Array)return this.m_iteratorStack.push(this.createJSONArrayIterator(this.m_nextFlatToken.m_value)),this.nextToken();if(this.m_nextFlatToken.m_value instanceof Object)return this.m_iteratorStack.push(this.createJSONObjectIterator(this.m_nextFlatToken.m_value)),this.nextToken();if(typeof this.m_nextFlatToken.m_value==`number`)return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=Number.isSafeInteger(this.m_currentValue)&&this.m_currentValue>=c()&&this.m_currentValue<=l()?8:7;if(typeof this.m_nextFlatToken.m_value==`string`)return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=6;if(typeof this.m_nextFlatToken.m_value==`boolean`)return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=this.m_nextFlatToken.m_value?11:12;if(typeof this.m_nextFlatToken.m_value==`object`)return this.m_currentValue=null,this.m_currentToken=10;t(`unrecognized json element type`)}t(`unrecognized json element type`)}currentToken(){return this.m_currentToken}skipChildren(){if(this.m_iteratorStack.length!==0)switch(this.m_currentValue=void 0,this.m_nextFlatToken.m_token){case 1:this.m_iteratorStack.pop(),this.m_nextFlatToken.m_token=3,this.m_currentToken=3;return;case 2:this.m_iteratorStack.pop(),this.m_nextFlatToken.m_token=4,this.m_currentToken=4;return}}currentString(){return this.m_currentToken!==6&&this.m_currentToken!==5&&n(`invalid token`),this.m_currentValue}currentDoubleValue(){return this.m_currentToken!==7&&this.m_currentToken!==8&&n(`invalid token`),this.m_currentValue}currentInt32Value(){return this.m_currentToken!==8&&n(`invalid token`),this.m_currentValue}currentInt64Value(){return r(0),0n}currentBoolValue(){return this.m_currentToken!==12&&this.m_currentToken!==11&&n(`invalid token`),this.m_currentValue}isError(){return 0}}class G{m_pendingKey=null;m_acceptedObject=null;m_currentObject=[];reset(){this.m_pendingKey=null,this.m_acceptedObject=null,this.m_currentObject.length=0}startObject(){let e={};this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):Array.isArray(this.m_currentObject.at(-1))&&this.m_currentObject.at(-1).push(e),this.m_currentObject.push(e)}startArray(){let e=[];this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):Array.isArray(this.m_currentObject.at(-1))&&this.m_currentObject.at(-1).push(e),this.m_currentObject.push(e)}endObject(){this.m_acceptedObject=this.m_currentObject.at(-1),this.m_currentObject.pop()}endArray(){this.m_currentObject.pop()}addFieldName(e){this.m_pendingKey=e}addValue_(e){this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):this.m_currentObject.at(-1).push(e)}addString(e){this.addValue_(e)}addDouble(e,t){this.addValue_(e)}addInt64(e){r(0)}addInt32(e){this.addValue_(e)}addBool(e){this.addValue_(e)}addNull(){this.addValue_(null)}getObject(){return this.m_acceptedObject}}class K{m_buffer=null;m_view=null;m_sz=0;m_offset=0;m_bOwnsBuffer=!0;m_bLittleEndian=!0;m_element;m_elementBytes;m_elementView;m_elementDouble;m_elementFloat;m_elementInt64;m_elementInt32;m_elementInt16;constructor(e){if(this.m_element=new ArrayBuffer(8),this.m_elementBytes=new Uint8Array(this.m_element),this.m_elementView=new DataView(this.m_element),this.m_elementDouble=new Float64Array(this.m_element),this.m_elementFloat=new Float32Array(this.m_element),this.m_elementInt64=new BigInt64Array(this.m_element),this.m_elementInt32=new Int32Array(this.m_element),this.m_elementInt16=new Int16Array(this.m_element),e.sz!==void 0){if(this.m_sz=e.sz,e.buffer){this.m_sz<0&&i(`size out of range`),this.m_buffer=e.buffer,this.m_offset=e.offset===void 0?0:e.offset,this.m_view=e.offset===void 0?new DataView(this.m_buffer):new DataView(e.buffer,e.offset,e.sz),this.m_bOwnsBuffer=!1,this.m_bLittleEndian=!0;return}this.m_sz<0&&i(`size out of range`),this.m_sz>0&&(this.m_buffer=new ArrayBuffer(this.m_sz),this.m_view=new DataView(this.m_buffer))}else e.move?(this.m_sz=e.move.m_sz,this.m_buffer=e.move.m_buffer,this.m_view=e.move.m_view,this.m_bOwnsBuffer=e.move.m_bOwnsBuffer,this.m_bLittleEndian=e.move.m_bLittleEndian,e.move.m_buffer=null,e.move.m_view=null,e.move.m_sz=0,e.move.m_bOwnsBuffer=!0):t(`unrecognized constructor options`)}swapBytesDouble(){this.doSwap()&&(this.m_elementDouble[0]=this.m_elementBytes[0]<<56|this.m_elementBytes[1]<<48|this.m_elementBytes[2]<<40|this.m_elementBytes[3]<<32|this.m_elementBytes[4]<<24|this.m_elementBytes[5]<<16|this.m_elementBytes[6]<<8|this.m_elementBytes[7])}swapBytesInt32(){this.doSwap()&&(this.m_elementInt32[0]=this.m_elementBytes[0]<<24|this.m_elementBytes[1]<<16|this.m_elementBytes[2]<<8|this.m_elementBytes[3])}getOffset(){return this.m_offset}assignMove(e){return this===e||(this.clear(),this.m_sz=e.m_sz,this.m_buffer=e.m_buffer,this.m_view=e.m_view,this.m_bOwnsBuffer=e.m_bOwnsBuffer,this.m_bLittleEndian=e.m_bLittleEndian,e.m_buffer=null,e.m_sz=0,e.m_bOwnsBuffer=!0),this}doSwap(){return this.m_bLittleEndian!==(K.getNativeByteOrder()===1)}setNativeByteOrder(){this.m_bLittleEndian=K.getNativeByteOrder()===1}setOrder(e){this.m_bLittleEndian=e===1}getOrder(){return+!!this.m_bLittleEndian}getView(){return this.m_view||a(`buffer not defined`),this.m_view}static getNativeByteOrder(){return 1}clear(){this.m_buffer=null,this.m_sz=0,this.m_bOwnsBuffer=!0}size(){return this.m_sz}readDouble(e){return this.doSwap()?(this.m_elementDouble[0]=this.m_view.getFloat64(e,this.m_bLittleEndian),this.swapBytesDouble(),this.m_elementDouble[0]):this.m_view.getFloat64(e,this.m_bLittleEndian)}writeDouble(e,t){this.m_elementDouble[0]=t,this.swapBytesDouble(),this.m_view.setFloat64(e,this.m_elementDouble[0],this.m_bLittleEndian)}readInt32(e){return this.doSwap()?(this.m_elementInt32[0]=this.m_view.getInt32(e,this.m_bLittleEndian),this.swapBytesInt32(),this.m_elementInt32[0]):this.m_view.getInt32(e,this.m_bLittleEndian)}writeInt32(e,t){this.m_elementInt32[0]=t,this.swapBytesInt32(),this.m_view.setInt32(e,this.m_elementInt32[0],this.m_bLittleEndian)}getPtr(){return this.m_buffer}setSizeNoRealloc(e){r(e>=0&&e<=this.m_sz),this.m_sz=e}}function le(e,t,i,a,s,c){let l=!1,u=!1,d=!1,f=!1,p=!1,m=!1,h=!1,g=!1,_=!1,v=!1,y=!1,b=!1,x=!1,S=!1,C=!1,O=!1,k=!1,A=!1,j=!1,M=!1,N=!1,P=!1,F=!1,I=!1,L=NaN,R=NaN,z=NaN,B=NaN,V=0,H=NaN,U=NaN,W=NaN,ee=NaN,te=NaN,ne=NaN,re=NaN,ie=NaN,ae=0,oe=0,se=!1,ce=!1,G=null,K=null,le=null,ue=null,J=null;for(;i.nextToken()!==3;){let c=i.currentString();if(i.nextToken(),c===`spatialReference`){if(s&&!l){l=!0,i.currentToken()===1?ue=de(i):i.currentToken()!==10&&n(`failed to parse spatial reference: object or null is expected`);continue}}else if(a){if(c===`hasZ`){if(!u){u=!0,se=i.currentToken()===11;continue}}else if(c===`hasM`){if(!d){d=!0,ce=i.currentToken()===11;continue}}else if(c===`rings`){if(!p&&!m&&(e===o.enumUnknown||e===o.enumPolygon)){p=!0,{geometry:J,as:G,bs:K}=fe(!0,!1,t,i);continue}}else if(c===`curveRings`){if(!m&&(e===o.enumUnknown||e===o.enumPolygon)){m=!0,{geometry:J,as:G,bs:K}=fe(!0,!0,t,i);continue}}else if(c===`paths`){if(!h&&!g&&(e===o.enumUnknown||e===o.enumPolyline)){h=!0,{geometry:J,as:G,bs:K}=fe(!1,!1,t,i);continue}}else if(c===`curvePaths`){if(!g&&(e===o.enumUnknown||e===o.enumPolyline)){g=!0,{geometry:J,as:G,bs:K}=fe(!1,!0,t,i);continue}}else if(c===`points`){if(!_&&(e===o.enumUnknown||e===o.enumMultiPoint)){_=!0,{geometry:J,as:G,bs:K}=pe(t,i);continue}}else if(c===`ids`){if(!f){f=!0,le=me(t,i);continue}}else if(c===`x`){if(!v&&(e===o.enumUnknown||e===o.enumPoint)){v=!0,L=q(i);continue}}else if(c===`y`){if(!y&&(e===o.enumUnknown||e===o.enumPoint)){y=!0,R=q(i);continue}}else if(c===`z`){if(!b&&(e===o.enumUnknown||e===o.enumPoint)){b=!0,z=q(i);continue}}else if(c===`m`){if(!x&&(e===o.enumUnknown||e===o.enumPoint)){x=!0,B=q(i);continue}}else if(c===`id`){if(!S&&(e===o.enumUnknown||e===o.enumPoint)){S=!0,V=he(i);continue}}else if(c===`xmin`){if(!C&&(e===o.enumUnknown||e===o.enumEnvelope)){C=!0,H=q(i);continue}}else if(c===`ymin`){if(!O&&(e===o.enumUnknown||e===o.enumEnvelope)){O=!0,U=q(i);continue}}else if(c===`mmin`){if(!N&&(e===o.enumUnknown||e===o.enumEnvelope)){N=!0,re=q(i);continue}}else if(c===`zmin`){if(!j&&(e===o.enumUnknown||e===o.enumEnvelope)){j=!0,te=q(i);continue}}else if(c===`idmin`){if(!F&&(e===o.enumUnknown||e===o.enumEnvelope)){F=!0,ae=he(i);continue}}else if(c===`xmax`){if(!k&&(e===o.enumUnknown||e===o.enumEnvelope)){k=!0,W=q(i);continue}}else if(c===`ymax`){if(!A&&(e===o.enumUnknown||e===o.enumEnvelope)){A=!0,ee=q(i);continue}}else if(c===`mmax`){if(!P&&(e===o.enumUnknown||e===o.enumEnvelope)){P=!0,ie=q(i);continue}}else if(c===`zmax`){if(!M&&(e===o.enumUnknown||e===o.enumEnvelope)){M=!0,ne=q(i);continue}}else if(c===`idmax`){if(!I&&(e===o.enumUnknown||e===o.enumEnvelope)){I=!0,oe=he(i);continue}}else c===`materials`&&r(0)}i.skipChildren()}if(p||m||h||g||_){let e=null,t=null,n=J;se&&(J.addAttribute(1),e=G,e||=w(n.getPointCount(),NaN)),ce&&(J.addAttribute(2),t=se?K:G),le!=null&&J.addAttribute(3),se&&e!=null&&n.setAttributeStreamRef(1,e),ce&&t!=null&&n.setAttributeStreamRef(2,t),le!=null&&ge(n,le)}else if(v||y||x||b||S){T(L,R)||n(`failed to parse point: x and y must be finite or nan`),(Number.isNaN(R)||Number.isNaN(L))&&(L=NaN,R=NaN);let e=new E({x:L,y:R});b&&e.setZ(z),x&&e.setM(B),S&&e.setID(V),J=e}else if(C||O||k||A||j||M||N||P||F||I){(Number.isNaN(U)||Number.isNaN(W)||Number.isNaN(ee))&&(H=NaN);let e=new D({xmin:H,ymin:U,xmax:W,ymax:ee});j&&M&&e.setInterval(1,0,te,ne),N&&P&&e.setInterval(2,0,re,ie),F&&I&&e.setInterval(3,0,ae,oe),J=e}return{...J?{geom:J}:{},...ue?{sr:ue}:{}}}function ue(e){let t=!1;for(;e.nextToken()!==3;){let n=e.currentString();e.nextToken(),n===`uwkid`?t||(t=!0,e.currentToken()===8&&e.currentInt32Value()):e.skipChildren()}return null}function de(e){let t=!1,n=!1,r=!1,i=!1,a=!1,o=!1,s=!1,c=!1,l=!1,u=!1,d=!1,f=!1,p=!1,m=!1,C=!1,w=!1,T=!1,E=-1,D=-1,O=-1,k=-1,A=0,j=0,M=0,N=0,P=0,F=0,I=0,L=0,R=0,z=0,B=``,V=``,H=null;for(;e.nextToken()!==3;){let h=e.currentString();e.nextToken(),h===`wkid`?t||(t=!0,e.currentToken()===8&&(E=e.currentInt32Value())):h===`latestWkid`?n||(n=!0,e.currentToken()===8&&(D=e.currentInt32Value())):h===`wkt`?a||(a=!0,e.currentToken()===6&&(B=e.currentString())):h===`wkt2`?a||e.currentToken()===6&&(V=e.currentString()):h===`vcsWkid`?r||(r=!0,e.currentToken()===8&&(O=e.currentInt32Value())):h===`latestVcsWkid`?i||(i=!0,e.currentToken()===8&&(k=e.currentInt32Value())):h===`xyTolerance`?s||(s=!0,o=!0,A=e.currentDoubleValue()):h===`zTolerance`?c||(c=!0,o=!0,j=e.currentDoubleValue()):h===`mTolerance`?l||(l=!0,o=!0,M=e.currentDoubleValue()):h===`falseX`?u||(u=!0,o=!0,I=e.currentDoubleValue()):h===`falseY`?d||(d=!0,o=!0,L=e.currentDoubleValue()):h===`falseZ`?f||(f=!0,o=!0,R=e.currentDoubleValue()):h===`falseM`?p||(p=!0,o=!0,z=e.currentDoubleValue()):h===`xyUnits`?m||(m=!0,o=!0,N=e.currentDoubleValue()):h===`zUnits`?C||(C=!0,o=!0,P=e.currentDoubleValue()):h===`mUnits`?w||(w=!0,o=!0,F=e.currentDoubleValue()):h===`unit`?T||(T=!0,H=ue(e)):e.skipChildren()}k<=0&&O>0&&(k=O),O<=0&&k>0&&(O=k);let U=null,W=!0;if(B.length!==0&&(W=!1,h(B)&&(U=g(B))),!U&&V.length!==0&&(W=!1,h(V)&&(U=g(V))),!U&&D>0&&(W=!1,_(D)&&(k<=0||v())&&(U=y(D,k))),!U&&E>0&&(W=!1,_(E)&&(O<=0||v())&&(U=y(E,O))),W&&(U=b(H)),o&&U){let e=new x;U.queryPrecisionDescriptorWithoutFalseXY(e),s&&e.setTolerance(0,A),c&&e.setTolerance(1,j),l&&e.setTolerance(2,M),m&&u&&d&&e.setGridParams(I,L,N),C&&f&&e.setZParams(R,P),w&&p&&e.setMParams(z,F),U=S(U,e)}return U}function fe(e,t,r,i){i.currentToken()!==2&&n(`failed to parse multipath: array of array of vertices is expected`);let a=e?new N:new P,o=a,s=O(0),c=w(2,0),l=k(0),m=null,h=null,g=null,_=null,v=null,y=0,b=0,x=0,S=new F,C=p.getNAN(),T=0,E=0,D=+!!e;for(;i.nextToken()!==4;){i.currentToken()!==2&&n(`failed to parse multipath: ring/path array is expected`);let r=2,a=0,j=!0,M=0,N=0,P=p.getNAN(),F=u(4,NaN),I=u(4,NaN),L=!1;for(i.nextToken();i.currentToken()!==4;){if(t&&i.currentToken()===1)j&&n(`failed to parse multipath: starting vertex array is expected`),g||(g=k(T-1,1),_=O(T-1,-1),v=w(0)),L=!0,r=1,{segFlag:x,toPointSz:M}=xe(S,F,C,i);else{for(L=!1,i.currentToken()!==2&&n(`failed to parse multipath: array is expected, rings/paths vertices consist of arrays of coordinates`),M=0;i.nextToken()!==4;)M===4&&n(`failed to parse multipath: each vertex array has to have at most 4 elements`),F[M++]=q(i);M<2&&n(`failed to parse multipath: each vertex array has to have at least 2 elements`),A(F[0],F[1])||n(`failed to parse multipath: x and y must be finite`)}i.nextToken();do{if(c.size()===T*2&&c.resize(J(T)),c.writePoint2D(2*T,P.setCoords(F[0],F[1])),m&&m.size()===T&&m.resize(Y(T)),M>2?(m||=w(T+1,NaN),m.write(T,F[2])):m&&m.write(T,NaN),h&&h.size()===T&&h.resize(Y(T)),M>3?(h||=w(T+1,NaN),h.write(T,F[3])):h&&h.write(T,NaN),j)E++,s.add(T),l.add(D),j=!1,N=M,d(I,F,0,0,N);else if(g!==null){if(!L)g.add(1),_.add(-1);else{let e=H(x),t=v.size();v.resize(t+e),g.add(x),_.add(y),S.get().writeInBufferStream(v,y),y+=e,o.incCurveType(x,1),b++}}T++,a++,C.setCoords(F[0],F[1])}while(a<r&&i.currentToken()===4)}a!==0&&(e&&a>r&&M===N&&f(F,I,M)===0?(T--,a--):g!==null&&(g.add(1),_.add(-1)))}return T&&(s.resize(E),l.resize(E),T>0&&(s.add(T),l.add(0)),o.setAttributeStreamRef(0,c),o.setPathFlagsStreamRef(l),o.setPathStreamRef(s),g!==null&&(o.updateCurveCounter(b),o.setSegmentData(_,v,g,y)),o.notifyModifiedFlags(65535)),{geometry:a,as:m,bs:h}}function pe(e,t){t.currentToken()!==2&&n(`failed to parse multipoint: array of vertices is expected`);let r=0,i=new I,a=w(2,0),o=0,s=u(4,NaN),c=new p,l=null,d=null;for(;t.nextToken()!==4;){for(t.currentToken()!==2&&n(`failed to parse multipoint: array is expected, multipoint vertices consist of arrays of cooridinates`),o=0;t.nextToken()!==4;)o===4&&n(`failed to parse multipoint: each vertex array has to have at most 4 elements`),s[o++]=q(t);o<2&&n(`failed to parse multipoint: each vertex array has to have at least 2 elements`),A(s[0],s[1])||n(`failed to parse multipoint: x and y must be finite`),a.size()===r*2&&a.resize(J(r)),a.writePoint2D(2*r,c.setCoords(s[0],s[1])),l&&l.size()===r&&l.resize(Y(r)),o>2?(l||=w(r+1,NaN),l.write(r,s[2])):l&&l.write(r,NaN),d&&d.size()===r&&d.resize(Y(r)),o>3?(d||=w(r+1,NaN),d.write(r,s[3])):d&&d.write(r,NaN),r++}if(r){let e=i.getImpl();e.setAttributeStreamRef(0,a),e.resizeNoInit(r),e.notifyModifiedFlags(65535)}return{geometry:i,as:l,bs:d}}function me(e,t){t.currentToken()!==2&&n(`failed to parse array of IDs: array of array of integers is expected`);let r=j(2,0),i=0,a=-1;for(;t.nextToken()!==4;){let e=i;r.size()===i&&r.resize(Y(i)),i++;let o=0;for(a===-1?a=+(t.currentToken()===2):a===1&&t.currentToken()!==2&&n(`failed to parse array of IDs: array of array of integers is expected`),a===0&&(r.size()===i&&r.resize(Y(i)),r.write(i,he(t)),o++,i++);t.nextToken()!==4;)r.size()===i&&r.resize(Y(i)),r.write(i,he(t)),o++,i++;if(r.write(e,o),a===0)break}return r.resize(i),r}function q(e){let t=e.currentToken();if(t===10||t===6&&e.currentString()===`NaN`)return NaN;{let t=e.currentDoubleValue();return Number.isNaN(t)?NaN:t}}function he(e){return e.currentInt32Value()}function ge(e,n){if(e.isEmpty())return;let r=j(2,0),i=e.getGeometryType(),a=0;i===I.type?a=1:i===P.type||i===N.type?a=e.getPathCount():t(`not implemented`),r.resize(e.getPointCount(),0);let o=0;for(let s=0;s<a;++s){let a=n.read(o);o++;let c=o+a,l=0,u=0;i===I.type?l=e.getPointCount():i===P.type||i===N.type?(l=e.getPathSize(s),u=e.getPathStart(s)):t(`not implemented`);for(let e=0,t=Math.min(a,l);e<t;++e)r.write(u,n.read(o)),o++,u++;o=c}e.getImpl().setAttributeStreamRef(3,r)}function J(e){let t=Math.trunc((e+1)*3/2)*2;return t<8?t=8:t<32&&(t=32),t}function Y(e){let t=Math.trunc((e+1)*3/2);return t<4?t=4:t<16&&(t=16),t}function _e(e,t,n,r,a){a>=r.size()&&i(`Byte_buffer out of range access`),e.m_bits=0,e.m_rotation=0,e.m_cosr=1,e.m_sinr=0,e.setStartXY(t),e.setEndXY(n);let o=p.getNAN();o.x=r.readDouble(a),o.y=r.readDouble(a+8);let s=r.readInt32(a+16);if(s&1)return e.m_semiMajorAxis=0,e.m_minorMajorRatio=1,e.m_interior.assign(o),e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,z(e),!1;let c=!!(s&64),l=!!(s&128),u=!!(s&32),d=!!(s&8),f=!!(s&16),m=t.equals(n);return c&&!m&&(c=!1,u=!0),u&&m&&(c=!0,u=!1,o.setCoords(0,0)),c||(l?u?(e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_interior.assign(o),e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0):(e.constructCircularArcThreePoint(t,n,o),m&&d===e.isClockwise()&&e.reverse()):u?(e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,z(e),e.queryCoord2D(.5,e.m_interior)):B(e,t,n,o,d,f)),c&&(e.m_center.assign(t),e.m_startAngle=o.x,e.m_sweepAngle=o.y,V(e,NaN,d,f),e.m_semiMajorAxis=0,e.m_minorMajorRatio=1,e.m_interior.setCoordsPoint2D(t)),e.setProjectionBehavior(0),z(e),!0}function ve(e,t,n,r,i){e.m_bits=0,e.m_center.x=r.readDouble(i),e.m_center.y=r.readDouble(i+8),e.m_rotation=r.readDouble(i+16),e.m_semiMajorAxis=r.readDouble(i+24),e.m_minorMajorRatio=r.readDouble(i+32),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y;let a=r.readInt32(i+40);if(a&1)return!1;let o=!!(a&64),s=!!(a&128),c=!!(a&512),l=!!(a&1024),u=!!(a&2048),d=!!(a&4096);return(c||l)&&!s&&(o=!0),s&&!t.equals(n)?(s=!1,o=!0):o&&t.equals(n)&&(s=!0,o=!1),s?(e.m_center.assign(t),e.m_startAngle=e.m_center.x,e.m_sweepAngle=e.m_center.y,V(e,NaN,u,d),e.m_semiMajorAxis=0,e.m_interior.setCoordsPoint2D(t)):o?(e.m_center.setNAN(),e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,z(e),e.queryCoord2D(.5,e.m_interior)):e.constructEllipticArcEndPointsCenter(t,n,e.m_semiMajorAxis,e.m_minorMajorRatio,e.m_rotation,!d,u,e.m_center),e.setProjectionBehavior(1),z(e),!0}function ye(e,t,n,i,a){return r(a+32<=i.size()),e.m_cp=m(p,2),e.m_cp[0].x=i.readDouble(a),e.m_cp[0].y=i.readDouble(a+8),e.m_cp[1].x=i.readDouble(a+16),e.m_cp[1].y=i.readDouble(a+24),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y,!0}function be(e,t,n,r,i){return e.m_cp.x=r.readDouble(i),e.m_cp.y=r.readDouble(i+8),e.m_weights[0]=r.readDouble(i+16),e.m_weights[1]=r.readDouble(i+24),e.m_weights[2]=r.readDouble(i+32),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y,!0}function xe(e,t,r,i,a){let o={segFlag:0,toPointSz:0},s=i.currentToken();s=i.nextToken();let c=i.currentString(),l=c[0];for((c.length!==1||l!==`a`&&l!==`b`&&l!==`c`&&l!==`n`&&l!==`q`)&&n(`failed to parse curve: expecting "a", "b", "n", "q", or "c"`),s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for curve parameters`),s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for to point`),o.toPointSz=0;i.nextToken()!==4;)o.toPointSz===4&&n(`failed to parse curve: vertex array cannot have more than 4 elements`),t[o.toPointSz++]=q(i);o.toPointSz<2&&n(`failed to parse curve: vertex array must have at least 2 elements`);let u=p.construct(t[0],t[1]),d=p.getNAN(),f=-1,m=-1,h=!1,g=NaN,_=NaN,v=NaN,y=[p.getNAN(),p.getNAN(),p.getNAN()],b=p.getNAN();if(l===`a`){s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for center point`),s=i.nextToken();let e=q(i);s=i.nextToken();let t=q(i);s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for center point`),d.setCoords(e,t),s=i.nextToken(),f=i.currentInt32Value(),s=i.nextToken(),m=i.currentInt32Value(),s=i.nextToken(),s===4?h=!0:(h=!1,g=q(i),s=i.nextToken(),_=q(i),s=i.nextToken(),v=q(i),s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for curve parameters`)),o.segFlag=4}else if(l===`b`){for(let e=0;e<2;e++){s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for control point`),s=i.nextToken();let t=q(i);s=i.nextToken();let r=q(i);s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for control point`),y[e].setCoords(t,r)}s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for curve parameters`),o.segFlag=2}else if(l===`n`){{s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for control point`),s=i.nextToken();let e=q(i);s=i.nextToken();let t=q(i);s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for control point`),y[0].setCoords(e,t)}s=i.nextToken();let e=q(i);s=i.nextToken();let t=q(i);s=i.nextToken();let r=q(i);y[1].setCoords(e,t),y[2].setCoords(r,r),s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for curve parameters`),o.segFlag=8}else if(l===`q`){for(let e=0;e<1;e++){s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for control point`),s=i.nextToken();let t=q(i);s=i.nextToken();let r=q(i);s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for control point`),y[e].setCoords(t,r)}s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for curve parameters`),o.segFlag=16}else{s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for interior point`),s=i.nextToken();let e=q(i);s=i.nextToken();let t=q(i);s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for interior point`),b.setCoords(e,t),s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for curve parameters`),o.segFlag=4}return s=i.nextToken(),s!==3&&n(`failed to parse curve: end object is expected for curve`),l===`a`?(e.createEllipticArc(),h?Se(e.get(),r,u,d,!0,f,m):Ce(e.get(),r,u,d,f,m,g,_,v)):l===`b`?(e.createCubicBezier(),we(e.get(),r,u,y)):l===`n`?(e.createQuadraticRationalBezier(),Te(e.get(),r,u,y[0],y[1].x,y[1].y,y[2].x)):l===`q`?(e.createQuadraticBezier(),e.get().construct(r,y[0],u)):(e.createEllipticArc(),Se(e.get(),r,u,b,!1,-1,-1)),o}function Se(e,t,n,r,i,a,o){e.dropAllAttributes();let s=new K({sz:20,buffer:new ArrayBuffer(20)}),c=0;s.writeDouble(c,r.x),c+=8,s.writeDouble(c,r.y),c+=8;let l=0;i?(o||(l|=8),a&&(l|=16)):l|=128,s.writeInt32(c,l),c+=4,_e(e,t,n,s,0)}function Ce(e,t,n,r,i,a,o,s,c){e.dropAllAttributes();let l=new K({sz:44,buffer:new ArrayBuffer(44)}),u=0;l.writeDouble(u,r.x),u+=8,l.writeDouble(u,r.y),u+=8,l.writeDouble(u,o),u+=8,l.writeDouble(u,s),u+=8,l.writeDouble(u,c),u+=8;let d=0;a||(d|=2048),i&&(d|=4096),l.writeInt32(u,d),u+=4,ve(e,t,n,l,0)}function we(e,t,n,r){e.dropAllAttributes();let i=new K({sz:32,buffer:new ArrayBuffer(32)}),a=0;i.writeDouble(a,r[0].x),a+=8,i.writeDouble(a,r[0].y),a+=8,i.writeDouble(a,r[1].x),a+=8,i.writeDouble(a,r[1].y),a+=8,ye(e,t,n,i,0)}function Te(e,t,n,r,i,a,o){e.dropAllAttributes();let s=new K({sz:40,buffer:new ArrayBuffer(40)}),c=0;s.writeDouble(c,r.x),c+=8,s.writeDouble(c,r.y),c+=8,s.writeDouble(c,i),c+=8,s.writeDouble(c,a),c+=8,s.writeDouble(c,o),c+=8,be(e,t,n,s,0)}function Ee(e,t,n,r,i){let a=e.getGeometryType();if(a===o.enumEllipticArc)return De(e,t,n,r,i);if(a===o.enumBezier)return Oe(e,t,n,r,i);if(a===o.enumRationalBezier2)return ke(e,t,n,r,i);if(a===o.enumBezier2){let a=new L;return a.constructFromQuadraticSegment(e),Oe(a,t,n,r,i)}s(``)}function De(e,t,n,i,a){r(!R(e));let o=e.getEndXY(),s=e.hasAttribute(1)&&!t,c=e.hasAttribute(2)&&!n,l=NaN,u=NaN;if(s&&(l=e.getEndAttributeAsDbl(1,0)),c&&(u=e.getEndAttributeAsDbl(2,0)),e.isDegenerateToLine()||e.isDegenerate(0))return X(s,c,o.x,o.y,l,u,i,a),!0;let d=e.projectionBehavior()===0,f=d?e.isClosed():!1;if(d&&!f)a.startObject(),a.addFieldName(`c`),a.startArray(),X(s,c,o.x,o.y,l,u,i,a),Z(e.m_interior.x,e.m_interior.y,17,a),a.endArray(),a.endObject();else if(d){a.startObject(),a.addFieldName(`a`),a.startArray(),X(s,c,o.x,o.y,l,u,i,a),Z(e.m_center.x+0,e.m_center.y+0,17,a);let t=!e.isMajor();a.addInt32(+!!t);let n=e.isClockwise();a.addInt32(+!!n),a.endArray(),a.endObject()}else{a.startObject(),a.addFieldName(`a`),a.startArray(),X(s,c,o.x,o.y,l,u,i,a);let t=e;Z(t.m_center.x,t.m_center.y,17,a);let n=!t.isMajor();a.addInt32(+!!n);let r=t.isClockwise();a.addInt32(+!!r),a.addDouble(t.m_rotation,17),a.addDouble(t.m_semiMajorAxis,17),a.addDouble(t.m_minorMajorRatio,17),a.endArray(),a.endObject()}return!1}function Oe(e,t,n,r,i){let a=e.getEndXY(),o=e.hasAttribute(1)&&!t,s=e.hasAttribute(2)&&!n,c=NaN,l=NaN;return o&&(c=e.getEndAttributeAsDbl(1,0)),s&&(l=e.getEndAttributeAsDbl(2,0)),i.startObject(),i.addFieldName(`b`),i.startArray(),X(o,s,a.x,a.y,c,l,r,i),Z(e.m_cp[0].x,e.m_cp[0].y,r,i),Z(e.m_cp[1].x,e.m_cp[1].y,r,i),i.endArray(),i.endObject(),!1}function ke(e,t,n,r,i){let a=e.getEndXY(),o=e.hasAttribute(1)&&!t,s=e.hasAttribute(2)&&!n,c=NaN,l=NaN;o&&(c=e.getEndAttributeAsDbl(1,0)),s&&(l=e.getEndAttributeAsDbl(2,0)),i.startObject(),i.addFieldName(`n`),i.startArray(),X(o,s,a.x,a.y,c,l,r,i),Z(e.m_cp.x,e.m_cp.y,r,i);let u=r;return i.addDouble(e.m_weights[0],u),i.addDouble(e.m_weights[1],u),i.addDouble(e.m_weights[2],u),i.endArray(),i.endObject(),!1}function X(e,t,n,r,i,a,o,s){s.startArray(),s.addDouble(n,o),s.addDouble(r,o),e&&s.addDouble(i,o),t&&s.addDouble(a,o),s.endArray()}function Z(e,t,n,r){r.startArray(),r.addDouble(e,n),r.addDouble(t,n),r.endArray()}class Ae{getOperatorType(){return 10405}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}execute(e,t,n,r,i,a){je(e,t,n,r)}exportSpatialReference(e,t,n,i){r(0)}exportProjectionTransformation(e,t,n,i){r(0)}exportDatumTransformation(e,t,n,i){r(0)}static geometryTypeToString(e){return r(0),``}}function je(e,n,i,a,s){if(n||i){if(a.startObject(),n!==null)switch(n.getGeometryType()){case o.enumPolygon:Me(!0,e,n,a);break;case o.enumPolyline:Me(!1,e,n,a);break;case o.enumMultiPoint:Ne(e,n,a);break;case o.enumPoint:Pe(e,n,a);break;case o.enumEnvelope:Fe(e,n,a);break;case o.enumMultipatch:r(0);break;default:t(`exportToJSON`)}i!==null&&(a.addFieldName(`spatialReference`),Le(e,i,a)),a.endObject()}}function Me(e,t,n,i){let a=n.getImpl(),o=!!(t&2),c=!!(t&4),l=!!(t&8),u=a.hasAttribute(1)&&!o,d=a.hasAttribute(2)&&!c,f=a.hasAttribute(3)&&!l,p=a.hasNonLinearSegments();u&&(i.addFieldName(`hasZ`),i.addBool(!0)),d&&(i.addFieldName(`hasM`),i.addBool(!0)),e?p?i.addFieldName(`curveRings`):i.addFieldName(`rings`):p?i.addFieldName(`curvePaths`):i.addFieldName(`paths`);let m=null,h=[];if(n.isEmpty())i.startArray(),i.endArray();else{let e=17-(31&t>>13);i.startArray();let r=n.getPathCount(),l=0,g=a.getAttributeStreamRef(0),_=null,v=null,y=null,b=new F,x=null,S=null,C=null;p&&(x=a.getSegmentFlagsStreamRef(),S=a.getSegmentIndexStreamRef(),C=a.getSegmentDataStreamRef()),u&&(_=a.getAttributeStreamRef(1)),d&&(v=a.getAttributeStreamRef(2)),f&&(y=a.getAttributeStreamRef(3),m=M(3,0));for(let t=0;t<r;t++){i.startArray(),f&&h.push(0);let r=n.getPathEnd(t);if(l===r){i.endArray();continue}let a=n.isClosedPath(t),p=g.read(2*l),w=g.read(2*l+1),T=u?_.read(l):NaN,E=d?v.read(l):NaN,D=f?y.read(l):0;Re(u,d,p,w,T,E,e,i);let O=1;f&&(m.add(D),h[h.length-1]++);let k=p,A=w,j=T,M=E,N=D,P=!1,F=0,I=NaN,L=NaN,R=0;for(let t=l+1,n=l,z=a?r+1:r;t<z;t++,n++){let a=x===null?1:x.read(n)&31,l,z;if(t<r?(l=g.read(2*t),z=g.read(2*t+1),u&&(I=_.read(t)),d&&(L=v.read(t)),f&&(R=y.read(t))):(l=k,z=A,I=j,L=M,R=N),a!==1){P=!0,a===4?b.createEllipticArc():a===2?b.createCubicBezier():a===16?b.createQuadraticBezier():a===8?b.createQuadraticRationalBezier():s(`JSON export.unsupported curve`);let t=b.get(),r=S.read(n);t.setStartXYCoords(p,w),t.setEndXYCoords(l,z),u&&(t.setStartAttribute(1,0,T),t.setEndAttribute(1,0,I)),d&&(t.setStartAttribute(2,0,E),t.setEndAttribute(2,0,L)),t.readFromBufferStream(C,r),Ee(b.get(),o,c,e,i)&&F++}else Re(u,d,l,z,I,L,e,i);f&&(m.add(R),h[h.length-1]++),O++,p=l,w=z,T=I,E=L,D=R}(!P||F!==0)&&(O<2&&F<1&&(Re(u,d,p,w,T,E,e,i),O++,f&&(m.add(D),h[h.length-1]++)),a&&O<3&&F<2&&(Re(u,d,k,A,j,M,e,i),O++,p=k,w=A,T=j,E=M,D=N,f&&(m.add(N),h[h.length-1]++))),i.endArray(),l=r}i.endArray()}if(f){i.addFieldName(`ids`),i.startArray();let e=0;for(let t=0,n=h.length;t<n;++t){let n=h[t];r(n===0||m!==null&&e+n<=m.size()),i.startArray();for(let t=0;t<n;++t)i.addInt32(m.read(e)),e++;i.endArray()}i.endArray()}}function Ne(e,t,n){let i=t.getImpl(),a=i.hasAttribute(1)&&!(e&2),o=i.hasAttribute(2)&&!(e&4),s=i.hasAttribute(3)&&!(e&8);a&&(n.addFieldName(`hasZ`),n.addBool(!0)),o&&(n.addFieldName(`hasM`),n.addBool(!0)),n.addFieldName(`points`);let c=t.getPointCount();if(t.isEmpty())n.startArray(),n.endArray();else{let t=17-(31&e>>13);n.startArray();let r=i.getAttributeStreamRef(0),s=null,l=null;a&&(s=i.getAttributeStreamRef(1)),o&&(l=i.getAttributeStreamRef(2));for(let e=0;e<c;e++){let i=r.read(2*e),c=r.read(2*e+1),u=NaN,d=NaN;a&&(u=s.read(e)),o&&(d=l.read(e)),Re(a,o,i,c,u,d,t,n)}n.endArray()}if(s){let e=null;i.isEmpty()||(e=i.getAttributeStreamRef(3)),r(c===0||e!==null&&e.size()>=c),n.addFieldName(`ids`),n.startArray();for(let t=0;t<c;t++)n.addInt32(e.read(t));n.endArray()}}function Pe(e,t,n){let r=t.hasAttribute(1)&&!(e&2),i=t.hasAttribute(2)&&!(e&4),a=t.hasAttribute(3)&&!(e&8);if(t.isEmpty()){n.addFieldName(`x`),n.addNull(),n.addFieldName(`y`),n.addNull(),r&&(n.addFieldName(`z`),n.addNull()),i&&(n.addFieldName(`m`),n.addNull()),a&&(n.addFieldName(`id`),n.addInt32(0));return}let o=17-(31&e>>13);n.addFieldName(`x`),n.addDouble(t.getX(),o),n.addFieldName(`y`),n.addDouble(t.getY(),o),r&&(n.addFieldName(`z`),n.addDouble(t.getZ(),o)),i&&(n.addFieldName(`m`),n.addDouble(t.getM(),o)),a&&(n.addFieldName(`id`),n.addInt32(t.getID()))}function Fe(e,t,n){let r=t.hasAttribute(1)&&!(e&2),i=t.hasAttribute(2)&&!(e&4),a=t.hasAttribute(3)&&!(e&8);if(t.isEmpty()){n.addFieldName(`xmin`),n.addNull(),n.addFieldName(`ymin`),n.addNull(),n.addFieldName(`xmax`),n.addNull(),n.addFieldName(`ymax`),n.addNull(),r&&(n.addFieldName(`zmin`),n.addNull(),n.addFieldName(`zmax`),n.addNull()),i&&(n.addFieldName(`mmin`),n.addNull(),n.addFieldName(`mmax`),n.addNull()),a&&(n.addFieldName(`idmin`),n.addInt32(0),n.addFieldName(`idmax`),n.addInt32(0));return}let o=17-(31&e>>13);if(n.addFieldName(`xmin`),n.addDouble(t.getXMin(),o),n.addFieldName(`ymin`),n.addDouble(t.getYMin(),o),n.addFieldName(`xmax`),n.addDouble(t.getXMax(),o),n.addFieldName(`ymax`),n.addDouble(t.getYMax(),o),r){let e=t.queryInterval(1,0);n.addFieldName(`zmin`),n.addDouble(e.vmin,o),n.addFieldName(`zmax`),n.addDouble(e.vmax,o)}if(i){let e=t.queryInterval(2,0);n.addFieldName(`mmin`),n.addDouble(e.vmin,o),n.addFieldName(`mmax`),n.addDouble(e.vmax,o)}if(a){let e=t.queryInterval(3,0);n.addFieldName(`idmin`),n.addInt32(e.vmin),n.addFieldName(`idmax`),n.addInt32(e.vmax)}}function Ie(e,t,r){r.startObject();let i=t.getID();i<=0&&n(`cannot export unit that has no valid WKID`),r.addFieldName(`uwkid`),r.addInt32(i),r.endObject()}function Le(e,t,n){n.startObject();let r=0;t.isCustomWkid()||(r=t.getOldID());let i=0,a=t.getVCS();if(a!==null&&(a.isCustomWkid()||(i=a.getOldID()),i<=0&&(r=0)),r>0){n.addFieldName(`wkid`),n.addInt32(r);let e=t.getLatestID();if(e>0&&e!==r&&(n.addFieldName(`latestWkid`),n.addInt32(e)),i>0){n.addFieldName(`vcsWkid`),n.addInt32(i);let e=t.getLatestVerticalID();e!==i&&(n.addFieldName(`latestVcsWkid`),n.addInt32(e))}}if(t.getCoordinateSystemType()===0)n.addFieldName(`wkid`),n.addNull(),t.getUnit()!==null&&(n.addFieldName(`unit`),Ie(e,t.getUnit(),n));else if(r<=0||e&1){let r=``;e&64&&(r=t.getText2(),n.addFieldName(`wkt2`),n.addString(r));let i=t.getText();i!==r&&(n.addFieldName(`wkt`),n.addString(i))}if(e&16){let e=new x;t.queryPrecisionDescriptor(e),n.addFieldName(`xyTolerance`),n.addDouble(e.getTolerance(0)),n.addFieldName(`zTolerance`),n.addDouble(e.getTolerance(1)),n.addFieldName(`mTolerance`),n.addDouble(e.getTolerance(2)),n.addFieldName(`falseX`),n.addDouble(e.getFalseX()),n.addFieldName(`falseY`),n.addDouble(e.getFalseY()),n.addFieldName(`xyUnits`),n.addDouble(e.getGridUnitsXY()),n.addFieldName(`falseZ`),n.addDouble(e.getFalseZ()),n.addFieldName(`zUnits`),n.addDouble(e.getGridUnitsZ()),n.addFieldName(`falseM`),n.addDouble(e.getFalseM()),n.addFieldName(`mUnits`),n.addDouble(e.getGridUnitsM())}n.endObject()}function Re(e,t,n,r,i,a,o,s){s.startArray(),s.addDouble(n,o),s.addDouble(r,o),e&&s.addDouble(i,o),t&&s.addDouble(a,o),s.endArray()}const Q={s_a:97,s_A:65,s_asterisk:42,s_b:98,s_backslash:92,s_beginArray:91,s_beginObject:123,s_colon:58,s_period:46,s_comma:44,s_doubleQuote:34,s_endArray:93,s_endObject:125,s_e:101,s_E:69,s_f:102,s_F:70,s_forwardslash:47,s_minus:45,s_plus:43,s_n:110,s_N:78,s_r:114,s_t:116,s_u:117,s_zero:48,s_nine:57};class ze{m_jsonString;m_endToken;m_startToken;m_currentTokenType;m_bHasEscapes;m_functionStack=[];m_pushPositions=[];m_utf8Decoder=new TextDecoder(`utf-8`,{fatal:!0});m_prepSubstr;m_getCurrentSubstr;m_stepOverChar;m_peekChar;m_get;m_increment;m_eof;constructor(e){e===void 0?(this.m_startToken=2**53-1,this.m_endToken=0,this.m_currentTokenType=0,this.m_functionStack.push(()=>this.accept_()),this.m_jsonString=null,this.m_bHasEscapes=!1):e.jsonString?this.resetParserFromString(e.jsonString):e.jsonStream?s(`streaming json parsing not yet impl`):t(`invalid constructor parameter`)}prepSubstrString_(){}getCurrentSubstrString_(){return this.m_jsonString.slice(this.m_startToken,this.m_endToken)}stepOverCharString_(){this.m_endToken++}peekCharString_(){return this.m_jsonString.charCodeAt(this.m_endToken)}getString_(e){let t=this.m_jsonString?.slice(this.m_startToken,this.m_startToken+e-1);return this.m_endToken+=e-1,{s:t,bDone:this.m_endToken>=this.m_jsonString.length}}incrementString_(){this.m_endToken++}eofString_(){return this.m_endToken>=this.m_jsonString.length}setStringFunctions_(){this.m_prepSubstr=this.prepSubstrString_,this.m_getCurrentSubstr=this.getCurrentSubstrString_,this.m_stepOverChar=this.stepOverCharString_,this.m_peekChar=this.peekCharString_,this.m_get=this.getString_,this.m_increment=this.incrementString_,this.m_eof=this.eofString_}setStreamFunctions_(){s(`streaming json parsing not yet impl`)}reset_(){this.m_jsonString=null,this.m_endToken=0,this.m_startToken=2**53-1,this.m_currentTokenType=0,this.m_bHasEscapes=!1,this.m_functionStack.length=0,this.m_functionStack.push(()=>this.start_()),this.m_pushPositions.length=0}resetParserFromString(e){this.reset_(),this.setStringFunctions_(),this.m_jsonString=e}resetParserFromStream(e){s(`streaming json parsing not yet impl`)}resetToPosition(e){return this.m_jsonString?(this.m_endToken=e,this.m_startToken=Number.MAX_VALUE,this.m_currentTokenType=0,this.m_functionStack.length=0,e>=this.m_jsonString.length?(this.m_functionStack.push(()=>this.accept_()),!1):(this.m_functionStack.push(()=>this.start_()),!0)):!1}nextToken(){return this.m_functionStack.at(-1)(),this.m_currentTokenType}currentToken(){return this.m_currentTokenType}currentTokenStartIndex(){return this.m_startToken}currentTokenEndIndex(){return this.m_endToken}currentText(){return r(0),``}childrenAsString(){return r(0),``}skipChildren(){this.skipChildren_()}skipChildren_(){if(this.m_currentTokenType===1){let e=1;do this.m_currentTokenType=this.nextToken(),this.m_currentTokenType===1?e++:this.m_currentTokenType===3&&e--;while(this.m_currentTokenType!==3||e!==0)}else if(this.m_currentTokenType===2){let e=1;do this.m_currentTokenType=this.nextToken(),this.m_currentTokenType===2?e++:this.m_currentTokenType===4&&e--;while(this.m_currentTokenType!==4||e!==0)}}currentTerminalAsString_(){switch(this.m_currentTokenType){case 7:case 8:case 9:return this.m_getCurrentSubstr().slice(0,this.m_endToken-this.m_startToken);case 10:return`null`;case 11:return`true`;case 12:return`false`}n(`invalid token`)}toUTF8_(e,t){let n=0,r=e;for(;t.charCodeAt(r)===Q.s_backslash&&t.charCodeAt(r+1)===Q.s_u;)n++,r+=6;r=e;let i=new Uint8Array(n),a=0;for(;t.charCodeAt(r)===Q.s_backslash&&t.charCodeAt(r+1)===Q.s_u;)i[a++]=Number.parseInt(t.slice(r+2,r+6),16),r+=6;return{u8s:this.m_utf8Decoder.decode(i),end:r}}unquoteCurrentString_(){let e=``,t=1,n=this.m_endToken-this.m_startToken-1,r=0,i=this.m_getCurrentSubstr();for(let a=t;a<n;a++)if(i.charCodeAt(a)!==Q.s_backslash)r++;else{switch(r>0&&(e+=i.slice(t,t+r)),i.charCodeAt(++a)){case Q.s_doubleQuote:e+=`"`;break;case Q.s_u:{let{u8s:t,end:n}=this.toUTF8_(a-1,i);a=n-1,e+=t;break}case Q.s_backslash:e+=`\\`;break;case Q.s_forwardslash:e+=`/`;break;case Q.s_b:e+=`\b`;break;case Q.s_f:e+=`\f`;break;case Q.s_n:e+=`
2
+ import{constructFromFlatGeometry as e}from"../../../chunks/FlatGeometry.js";import{d as t,b as n,g as r,r as i,q as a,G as o,a as s}from"../../../chunks/Geometry.js";import{aL as c,i as l,c as u,f as d,aM as f,P as p,d as m}from"../../../chunks/Point2D.js";import{q as h,b as g,p as _,a_ as v,c as y,e as b,a as x,f as S,a$ as C}from"../../../chunks/UnitFactory.js";import{a2 as w,a5 as T,P as E,E as D,a0 as O,a1 as k,a6 as A,a7 as j,X as M}from"../../../chunks/Envelope.js";import{P as N,a as P,S as F,M as I,I as L,a5 as R,a6 as z,a7 as B,a8 as V,a9 as H}from"../../../chunks/MultiPathImpl.js";import{convertGeometryxToFlat as U,convertFlatToGeometryJSON as W,convertGeometryToFlat as ee}from"../../FlatGeometry.js";import te from"../../SpatialReference.js";import"./initNoPeFactory.js";import{isPoint as ne,isMultipoint as re,isPolyline as ie,isPolygon as ae}from"../../support/jsonTypeUtils.js";function oe(){if(this.m_i===-1)return this.m_i=0,{value:{m_token:1,m_value:null},done:!1};if(this.m_i<this.m_keys.length){let e=this.m_bReturnKey,t=Math.trunc(this.m_i);return this.m_bReturnKey=!this.m_bReturnKey,this.m_i+=.5,e?{value:{m_token:5,m_value:this.m_keys[t]},done:!1}:{value:{m_token:6,m_value:this.m_o[this.m_keys[t]]},done:!1}}return{value:{m_token:3,m_value:null},done:!0}}function se(){if(this.m_i===-1)return this.m_i=0,{value:{m_token:2,m_value:null},done:!1};if(this.m_i<this.m_a.length){let e={value:{m_token:6,m_value:this.m_a[this.m_i++]},done:!1};return this.m_strict||e.value.m_value===void 0&&(e.value.m_value=NaN),e}return{value:{m_token:4,m_value:null},done:!0}}class ce{m_iteratorStack;m_nextFlatToken;m_currentToken=0;m_currentValue;m_options;createJSONObjectIterator(e){return{m_iteratorType:`object`,m_o:e,m_keys:this.m_options.strict?Object.keys(e):Object.keys(e).filter(t=>e[t]!==void 0),m_i:-1,m_bReturnKey:!0,next:oe}}createJSONArrayIterator(e){return{m_iteratorType:`array`,m_strict:this.m_options.strict,m_i:-1,m_a:e,next:se}}constructor(e,t){this.m_options=t?{...t}:{strict:!0};let n=e;this.m_iteratorStack=[n instanceof Array?this.createJSONArrayIterator(n):this.createJSONObjectIterator(n)],this.m_nextFlatToken={m_value:null,m_token:0}}nextToken(){if(this.m_iteratorStack.length===0)return this.m_currentToken=0;switch(this.m_nextFlatToken=this.m_iteratorStack.at(-1).next().value,this.m_currentValue=void 0,this.m_nextFlatToken.m_token){case 1:return this.m_currentToken=1;case 3:return this.m_iteratorStack.pop(),this.m_currentToken=3;case 2:return this.m_currentToken=2;case 4:return this.m_iteratorStack.pop(),this.m_currentToken=4;case 5:return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=5;case 6:if(this.m_nextFlatToken.m_value instanceof Array)return this.m_iteratorStack.push(this.createJSONArrayIterator(this.m_nextFlatToken.m_value)),this.nextToken();if(this.m_nextFlatToken.m_value instanceof Object)return this.m_iteratorStack.push(this.createJSONObjectIterator(this.m_nextFlatToken.m_value)),this.nextToken();if(typeof this.m_nextFlatToken.m_value==`number`)return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=Number.isSafeInteger(this.m_currentValue)&&this.m_currentValue>=c()&&this.m_currentValue<=l()?8:7;if(typeof this.m_nextFlatToken.m_value==`string`)return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=6;if(typeof this.m_nextFlatToken.m_value==`boolean`)return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=this.m_nextFlatToken.m_value?11:12;if(typeof this.m_nextFlatToken.m_value==`object`)return this.m_currentValue=null,this.m_currentToken=10;t(`unrecognized json element type`)}t(`unrecognized json element type`)}currentToken(){return this.m_currentToken}skipChildren(){if(this.m_iteratorStack.length!==0)switch(this.m_currentValue=void 0,this.m_nextFlatToken.m_token){case 1:this.m_iteratorStack.pop(),this.m_nextFlatToken.m_token=3,this.m_currentToken=3;return;case 2:this.m_iteratorStack.pop(),this.m_nextFlatToken.m_token=4,this.m_currentToken=4;return}}currentString(){return this.m_currentToken!==6&&this.m_currentToken!==5&&n(`invalid token`),this.m_currentValue}currentDoubleValue(){return this.m_currentToken!==7&&this.m_currentToken!==8&&n(`invalid token`),this.m_currentValue}currentInt32Value(){return this.m_currentToken!==8&&n(`invalid token`),this.m_currentValue}currentInt64Value(){return r(0),0n}currentBoolValue(){return this.m_currentToken!==12&&this.m_currentToken!==11&&n(`invalid token`),this.m_currentValue}isError(){return 0}}class G{m_pendingKey=null;m_acceptedObject=null;m_currentObject=[];reset(){this.m_pendingKey=null,this.m_acceptedObject=null,this.m_currentObject.length=0}startObject(){let e={};this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):Array.isArray(this.m_currentObject.at(-1))&&this.m_currentObject.at(-1).push(e),this.m_currentObject.push(e)}startArray(){let e=[];this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):Array.isArray(this.m_currentObject.at(-1))&&this.m_currentObject.at(-1).push(e),this.m_currentObject.push(e)}endObject(){this.m_acceptedObject=this.m_currentObject.at(-1),this.m_currentObject.pop()}endArray(){this.m_currentObject.pop()}addFieldName(e){this.m_pendingKey=e}addValue_(e){this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):this.m_currentObject.at(-1).push(e)}addString(e){this.addValue_(e)}addDouble(e,t){this.addValue_(e)}addInt64(e){r(0)}addInt32(e){this.addValue_(e)}addBool(e){this.addValue_(e)}addNull(){this.addValue_(null)}getObject(){return this.m_acceptedObject}}class K{m_buffer=null;m_view=null;m_sz=0;m_offset=0;m_bOwnsBuffer=!0;m_bLittleEndian=!0;m_element;m_elementBytes;m_elementView;m_elementDouble;m_elementFloat;m_elementInt64;m_elementInt32;m_elementInt16;constructor(e){if(this.m_element=new ArrayBuffer(8),this.m_elementBytes=new Uint8Array(this.m_element),this.m_elementView=new DataView(this.m_element),this.m_elementDouble=new Float64Array(this.m_element),this.m_elementFloat=new Float32Array(this.m_element),this.m_elementInt64=new BigInt64Array(this.m_element),this.m_elementInt32=new Int32Array(this.m_element),this.m_elementInt16=new Int16Array(this.m_element),e.sz!==void 0){if(this.m_sz=e.sz,e.buffer){this.m_sz<0&&i(`size out of range`),this.m_buffer=e.buffer,this.m_offset=e.offset===void 0?0:e.offset,this.m_view=e.offset===void 0?new DataView(this.m_buffer):new DataView(e.buffer,e.offset,e.sz),this.m_bOwnsBuffer=!1,this.m_bLittleEndian=!0;return}this.m_sz<0&&i(`size out of range`),this.m_sz>0&&(this.m_buffer=new ArrayBuffer(this.m_sz),this.m_view=new DataView(this.m_buffer))}else e.move?(this.m_sz=e.move.m_sz,this.m_buffer=e.move.m_buffer,this.m_view=e.move.m_view,this.m_bOwnsBuffer=e.move.m_bOwnsBuffer,this.m_bLittleEndian=e.move.m_bLittleEndian,e.move.m_buffer=null,e.move.m_view=null,e.move.m_sz=0,e.move.m_bOwnsBuffer=!0):t(`unrecognized constructor options`)}swapBytesDouble(){this.doSwap()&&(this.m_elementDouble[0]=this.m_elementBytes[0]<<56|this.m_elementBytes[1]<<48|this.m_elementBytes[2]<<40|this.m_elementBytes[3]<<32|this.m_elementBytes[4]<<24|this.m_elementBytes[5]<<16|this.m_elementBytes[6]<<8|this.m_elementBytes[7])}swapBytesInt32(){this.doSwap()&&(this.m_elementInt32[0]=this.m_elementBytes[0]<<24|this.m_elementBytes[1]<<16|this.m_elementBytes[2]<<8|this.m_elementBytes[3])}getOffset(){return this.m_offset}assignMove(e){return this===e||(this.clear(),this.m_sz=e.m_sz,this.m_buffer=e.m_buffer,this.m_view=e.m_view,this.m_bOwnsBuffer=e.m_bOwnsBuffer,this.m_bLittleEndian=e.m_bLittleEndian,e.m_buffer=null,e.m_sz=0,e.m_bOwnsBuffer=!0),this}doSwap(){return this.m_bLittleEndian!==(K.getNativeByteOrder()===1)}setNativeByteOrder(){this.m_bLittleEndian=K.getNativeByteOrder()===1}setOrder(e){this.m_bLittleEndian=e===1}getOrder(){return+!!this.m_bLittleEndian}getView(){return this.m_view||a(`buffer not defined`),this.m_view}static getNativeByteOrder(){return 1}clear(){this.m_buffer=null,this.m_sz=0,this.m_bOwnsBuffer=!0}size(){return this.m_sz}readDouble(e){return this.doSwap()?(this.m_elementDouble[0]=this.m_view.getFloat64(e,this.m_bLittleEndian),this.swapBytesDouble(),this.m_elementDouble[0]):this.m_view.getFloat64(e,this.m_bLittleEndian)}writeDouble(e,t){this.m_elementDouble[0]=t,this.swapBytesDouble(),this.m_view.setFloat64(e,this.m_elementDouble[0],this.m_bLittleEndian)}readInt32(e){return this.doSwap()?(this.m_elementInt32[0]=this.m_view.getInt32(e,this.m_bLittleEndian),this.swapBytesInt32(),this.m_elementInt32[0]):this.m_view.getInt32(e,this.m_bLittleEndian)}writeInt32(e,t){this.m_elementInt32[0]=t,this.swapBytesInt32(),this.m_view.setInt32(e,this.m_elementInt32[0],this.m_bLittleEndian)}getPtr(){return this.m_buffer}setSizeNoRealloc(e){r(e>=0&&e<=this.m_sz),this.m_sz=e}}function le(e,t,i,a,s,c){let l=!1,u=!1,d=!1,f=!1,p=!1,m=!1,h=!1,g=!1,_=!1,v=!1,y=!1,b=!1,x=!1,S=!1,C=!1,O=!1,k=!1,A=!1,j=!1,M=!1,N=!1,P=!1,F=!1,I=!1,L=NaN,R=NaN,z=NaN,B=NaN,V=0,H=NaN,U=NaN,W=NaN,ee=NaN,te=NaN,ne=NaN,re=NaN,ie=NaN,ae=0,oe=0,se=!1,ce=!1,G=null,K=null,le=null,ue=null,J=null;for(;i.nextToken()!==3;){let c=i.currentString();if(i.nextToken(),c===`spatialReference`){if(s&&!l){l=!0,i.currentToken()===1?ue=de(i):i.currentToken()!==10&&n(`failed to parse spatial reference: object or null is expected`);continue}}else if(a){if(c===`hasZ`){if(!u){u=!0,se=i.currentToken()===11;continue}}else if(c===`hasM`){if(!d){d=!0,ce=i.currentToken()===11;continue}}else if(c===`rings`){if(!p&&!m&&(e===o.enumUnknown||e===o.enumPolygon)){p=!0,{geometry:J,as:G,bs:K}=fe(!0,!1,t,i);continue}}else if(c===`curveRings`){if(!m&&(e===o.enumUnknown||e===o.enumPolygon)){m=!0,{geometry:J,as:G,bs:K}=fe(!0,!0,t,i);continue}}else if(c===`paths`){if(!h&&!g&&(e===o.enumUnknown||e===o.enumPolyline)){h=!0,{geometry:J,as:G,bs:K}=fe(!1,!1,t,i);continue}}else if(c===`curvePaths`){if(!g&&(e===o.enumUnknown||e===o.enumPolyline)){g=!0,{geometry:J,as:G,bs:K}=fe(!1,!0,t,i);continue}}else if(c===`points`){if(!_&&(e===o.enumUnknown||e===o.enumMultiPoint)){_=!0,{geometry:J,as:G,bs:K}=pe(t,i);continue}}else if(c===`ids`){if(!f){f=!0,le=me(t,i);continue}}else if(c===`x`){if(!v&&(e===o.enumUnknown||e===o.enumPoint)){v=!0,L=q(i);continue}}else if(c===`y`){if(!y&&(e===o.enumUnknown||e===o.enumPoint)){y=!0,R=q(i);continue}}else if(c===`z`){if(!b&&(e===o.enumUnknown||e===o.enumPoint)){b=!0,z=q(i);continue}}else if(c===`m`){if(!x&&(e===o.enumUnknown||e===o.enumPoint)){x=!0,B=q(i);continue}}else if(c===`id`){if(!S&&(e===o.enumUnknown||e===o.enumPoint)){S=!0,V=he(i);continue}}else if(c===`xmin`){if(!C&&(e===o.enumUnknown||e===o.enumEnvelope)){C=!0,H=q(i);continue}}else if(c===`ymin`){if(!O&&(e===o.enumUnknown||e===o.enumEnvelope)){O=!0,U=q(i);continue}}else if(c===`mmin`){if(!N&&(e===o.enumUnknown||e===o.enumEnvelope)){N=!0,re=q(i);continue}}else if(c===`zmin`){if(!j&&(e===o.enumUnknown||e===o.enumEnvelope)){j=!0,te=q(i);continue}}else if(c===`idmin`){if(!F&&(e===o.enumUnknown||e===o.enumEnvelope)){F=!0,ae=he(i);continue}}else if(c===`xmax`){if(!k&&(e===o.enumUnknown||e===o.enumEnvelope)){k=!0,W=q(i);continue}}else if(c===`ymax`){if(!A&&(e===o.enumUnknown||e===o.enumEnvelope)){A=!0,ee=q(i);continue}}else if(c===`mmax`){if(!P&&(e===o.enumUnknown||e===o.enumEnvelope)){P=!0,ie=q(i);continue}}else if(c===`zmax`){if(!M&&(e===o.enumUnknown||e===o.enumEnvelope)){M=!0,ne=q(i);continue}}else if(c===`idmax`){if(!I&&(e===o.enumUnknown||e===o.enumEnvelope)){I=!0,oe=he(i);continue}}else c===`materials`&&r(0)}i.skipChildren()}if(p||m||h||g||_){let e=null,t=null,n=J;se&&(J.addAttribute(1),e=G,e||=w(n.getPointCount(),NaN)),ce&&(J.addAttribute(2),t=se?K:G),le!=null&&J.addAttribute(3),se&&e!=null&&n.setAttributeStreamRef(1,e),ce&&t!=null&&n.setAttributeStreamRef(2,t),le!=null&&ge(n,le)}else if(v||y||x||b||S){T(L,R)||n(`failed to parse point: x and y must be finite or nan`),(Number.isNaN(R)||Number.isNaN(L))&&(L=NaN,R=NaN);let e=new E({x:L,y:R});b&&e.setZ(z),x&&e.setM(B),S&&e.setID(V),J=e}else if(C||O||k||A||j||M||N||P||F||I){(Number.isNaN(U)||Number.isNaN(W)||Number.isNaN(ee))&&(H=NaN);let e=new D({xmin:H,ymin:U,xmax:W,ymax:ee});j&&M&&e.setInterval(1,0,te,ne),N&&P&&e.setInterval(2,0,re,ie),F&&I&&e.setInterval(3,0,ae,oe),J=e}return{...J?{geom:J}:{},...ue?{sr:ue}:{}}}function ue(e){let t=!1;for(;e.nextToken()!==3;){let n=e.currentString();e.nextToken(),n===`uwkid`?t||(t=!0,e.currentToken()===8&&e.currentInt32Value()):e.skipChildren()}return null}function de(e){let t=!1,n=!1,r=!1,i=!1,a=!1,o=!1,s=!1,c=!1,l=!1,u=!1,d=!1,f=!1,p=!1,m=!1,C=!1,w=!1,T=!1,E=-1,D=-1,O=-1,k=-1,A=0,j=0,M=0,N=0,P=0,F=0,I=0,L=0,R=0,z=0,B=``,V=``,H=null;for(;e.nextToken()!==3;){let h=e.currentString();e.nextToken(),h===`wkid`?t||(t=!0,e.currentToken()===8&&(E=e.currentInt32Value())):h===`latestWkid`?n||(n=!0,e.currentToken()===8&&(D=e.currentInt32Value())):h===`wkt`?a||(a=!0,e.currentToken()===6&&(B=e.currentString())):h===`wkt2`?a||e.currentToken()===6&&(V=e.currentString()):h===`vcsWkid`?r||(r=!0,e.currentToken()===8&&(O=e.currentInt32Value())):h===`latestVcsWkid`?i||(i=!0,e.currentToken()===8&&(k=e.currentInt32Value())):h===`xyTolerance`?s||(s=!0,o=!0,A=e.currentDoubleValue()):h===`zTolerance`?c||(c=!0,o=!0,j=e.currentDoubleValue()):h===`mTolerance`?l||(l=!0,o=!0,M=e.currentDoubleValue()):h===`falseX`?u||(u=!0,o=!0,I=e.currentDoubleValue()):h===`falseY`?d||(d=!0,o=!0,L=e.currentDoubleValue()):h===`falseZ`?f||(f=!0,o=!0,R=e.currentDoubleValue()):h===`falseM`?p||(p=!0,o=!0,z=e.currentDoubleValue()):h===`xyUnits`?m||(m=!0,o=!0,N=e.currentDoubleValue()):h===`zUnits`?C||(C=!0,o=!0,P=e.currentDoubleValue()):h===`mUnits`?w||(w=!0,o=!0,F=e.currentDoubleValue()):h===`unit`?T||(T=!0,H=ue(e)):e.skipChildren()}k<=0&&O>0&&(k=O),O<=0&&k>0&&(O=k);let U=null,W=!0;if(B.length!==0&&(W=!1,h(B)&&(U=g(B))),!U&&V.length!==0&&(W=!1,h(V)&&(U=g(V))),!U&&D>0&&(W=!1,_(D)&&(k<=0||v())&&(U=y(D,k))),!U&&E>0&&(W=!1,_(E)&&(O<=0||v())&&(U=y(E,O))),W&&(U=b(H)),o&&U){let e=new x;U.queryPrecisionDescriptorWithoutFalseXY(e),s&&e.setTolerance(0,A),c&&e.setTolerance(1,j),l&&e.setTolerance(2,M),m&&u&&d&&e.setGridParams(I,L,N),C&&f&&e.setZParams(R,P),w&&p&&e.setMParams(z,F),U=S(U,e)}return U}function fe(e,t,r,i){i.currentToken()!==2&&n(`failed to parse multipath: array of array of vertices is expected`);let a=e?new N:new P,o=a,s=O(0),c=w(2,0),l=k(0),m=null,h=null,g=null,_=null,v=null,y=0,b=0,x=0,S=new F,C=p.getNAN(),T=0,E=0,D=+!!e;for(;i.nextToken()!==4;){i.currentToken()!==2&&n(`failed to parse multipath: ring/path array is expected`);let r=2,a=0,j=!0,M=0,N=0,P=p.getNAN(),F=u(4,NaN),I=u(4,NaN),L=!1;for(i.nextToken();i.currentToken()!==4;){if(t&&i.currentToken()===1)j&&n(`failed to parse multipath: starting vertex array is expected`),g||(g=k(T-1,1),_=O(T-1,-1),v=w(0)),L=!0,r=1,{segFlag:x,toPointSz:M}=xe(S,F,C,i);else{for(L=!1,i.currentToken()!==2&&n(`failed to parse multipath: array is expected, rings/paths vertices consist of arrays of coordinates`),M=0;i.nextToken()!==4;)M===4&&n(`failed to parse multipath: each vertex array has to have at most 4 elements`),F[M++]=q(i);M<2&&n(`failed to parse multipath: each vertex array has to have at least 2 elements`),A(F[0],F[1])||n(`failed to parse multipath: x and y must be finite`)}i.nextToken();do{if(c.size()===T*2&&c.resize(J(T)),c.writePoint2D(2*T,P.setCoords(F[0],F[1])),m&&m.size()===T&&m.resize(Y(T)),M>2?(m||=w(T+1,NaN),m.write(T,F[2])):m&&m.write(T,NaN),h&&h.size()===T&&h.resize(Y(T)),M>3?(h||=w(T+1,NaN),h.write(T,F[3])):h&&h.write(T,NaN),j)E++,s.add(T),l.add(D),j=!1,N=M,d(I,F,0,0,N);else if(g!==null){if(!L)g.add(1),_.add(-1);else{let e=H(x),t=v.size();v.resize(t+e),g.add(x),_.add(y),S.get().writeInBufferStream(v,y),y+=e,o.incCurveType(x,1),b++}}T++,a++,C.setCoords(F[0],F[1])}while(a<r&&i.currentToken()===4)}a!==0&&(e&&a>r&&M===N&&f(F,I,M)===0?(T--,a--):g!==null&&(g.add(1),_.add(-1)))}return T&&(s.resize(E),l.resize(E),T>0&&(s.add(T),l.add(0)),o.setAttributeStreamRef(0,c),o.setPathFlagsStreamRef(l),o.setPathStreamRef(s),g!==null&&(o.updateCurveCounter(b),o.setSegmentData(_,v,g,y)),o.notifyModifiedFlags(65535)),{geometry:a,as:m,bs:h}}function pe(e,t){t.currentToken()!==2&&n(`failed to parse multipoint: array of vertices is expected`);let r=0,i=new I,a=w(2,0),o=0,s=u(4,NaN),c=new p,l=null,d=null;for(;t.nextToken()!==4;){for(t.currentToken()!==2&&n(`failed to parse multipoint: array is expected, multipoint vertices consist of arrays of cooridinates`),o=0;t.nextToken()!==4;)o===4&&n(`failed to parse multipoint: each vertex array has to have at most 4 elements`),s[o++]=q(t);o<2&&n(`failed to parse multipoint: each vertex array has to have at least 2 elements`),A(s[0],s[1])||n(`failed to parse multipoint: x and y must be finite`),a.size()===r*2&&a.resize(J(r)),a.writePoint2D(2*r,c.setCoords(s[0],s[1])),l&&l.size()===r&&l.resize(Y(r)),o>2?(l||=w(r+1,NaN),l.write(r,s[2])):l&&l.write(r,NaN),d&&d.size()===r&&d.resize(Y(r)),o>3?(d||=w(r+1,NaN),d.write(r,s[3])):d&&d.write(r,NaN),r++}if(r){let e=i.getImpl();e.setAttributeStreamRef(0,a),e.resizeNoInit(r),e.notifyModifiedFlags(65535)}return{geometry:i,as:l,bs:d}}function me(e,t){t.currentToken()!==2&&n(`failed to parse array of IDs: array of array of integers is expected`);let r=j(2,0),i=0,a=-1;for(;t.nextToken()!==4;){let e=i;r.size()===i&&r.resize(Y(i)),i++;let o=0;for(a===-1?a=+(t.currentToken()===2):a===1&&t.currentToken()!==2&&n(`failed to parse array of IDs: array of array of integers is expected`),a===0&&(r.size()===i&&r.resize(Y(i)),r.write(i,he(t)),o++,i++);t.nextToken()!==4;)r.size()===i&&r.resize(Y(i)),r.write(i,he(t)),o++,i++;if(r.write(e,o),a===0)break}return r.resize(i),r}function q(e){let t=e.currentToken();if(t===10||t===6&&e.currentString()===`NaN`)return NaN;{let t=e.currentDoubleValue();return Number.isNaN(t)?NaN:t}}function he(e){return e.currentInt32Value()}function ge(e,n){if(e.isEmpty())return;let r=j(2,0),i=e.getGeometryType(),a=0;i===I.type?a=1:i===P.type||i===N.type?a=e.getPathCount():t(`not implemented`),r.resize(e.getPointCount(),0);let o=0;for(let s=0;s<a;++s){let a=n.read(o);o++;let c=o+a,l=0,u=0;i===I.type?l=e.getPointCount():i===P.type||i===N.type?(l=e.getPathSize(s),u=e.getPathStart(s)):t(`not implemented`);for(let e=0,t=Math.min(a,l);e<t;++e)r.write(u,n.read(o)),o++,u++;o=c}e.getImpl().setAttributeStreamRef(3,r)}function J(e){let t=Math.trunc((e+1)*3/2)*2;return t<8?t=8:t<32&&(t=32),t}function Y(e){let t=Math.trunc((e+1)*3/2);return t<4?t=4:t<16&&(t=16),t}function _e(e,t,n,r,a){a>=r.size()&&i(`Byte_buffer out of range access`),e.m_bits=0,e.m_rotation=0,e.m_cosr=1,e.m_sinr=0,e.setStartXY(t),e.setEndXY(n);let o=p.getNAN();o.x=r.readDouble(a),o.y=r.readDouble(a+8);let s=r.readInt32(a+16);if(s&1)return e.m_semiMajorAxis=0,e.m_minorMajorRatio=1,e.m_interior.assign(o),e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,z(e),!1;let c=!!(s&64),l=!!(s&128),u=!!(s&32),d=!!(s&8),f=!!(s&16),m=t.equals(n);return c&&!m&&(c=!1,u=!0),u&&m&&(c=!0,u=!1,o.setCoords(0,0)),c||(l?u?(e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_interior.assign(o),e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0):(e.constructCircularArcThreePoint(t,n,o),m&&d===e.isClockwise()&&e.reverse()):u?(e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,z(e),e.queryCoord2D(.5,e.m_interior)):B(e,t,n,o,d,f)),c&&(e.m_center.assign(t),e.m_startAngle=o.x,e.m_sweepAngle=o.y,V(e,NaN,d,f),e.m_semiMajorAxis=0,e.m_minorMajorRatio=1,e.m_interior.setCoordsPoint2D(t)),e.setProjectionBehavior(0),z(e),!0}function ve(e,t,n,r,i){e.m_bits=0,e.m_center.x=r.readDouble(i),e.m_center.y=r.readDouble(i+8),e.m_rotation=r.readDouble(i+16),e.m_semiMajorAxis=r.readDouble(i+24),e.m_minorMajorRatio=r.readDouble(i+32),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y;let a=r.readInt32(i+40);if(a&1)return!1;let o=!!(a&64),s=!!(a&128),c=!!(a&512),l=!!(a&1024),u=!!(a&2048),d=!!(a&4096);return(c||l)&&!s&&(o=!0),s&&!t.equals(n)?(s=!1,o=!0):o&&t.equals(n)&&(s=!0,o=!1),s?(e.m_center.assign(t),e.m_startAngle=e.m_center.x,e.m_sweepAngle=e.m_center.y,V(e,NaN,u,d),e.m_semiMajorAxis=0,e.m_interior.setCoordsPoint2D(t)):o?(e.m_center.setNAN(),e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,z(e),e.queryCoord2D(.5,e.m_interior)):e.constructEllipticArcEndPointsCenter(t,n,e.m_semiMajorAxis,e.m_minorMajorRatio,e.m_rotation,!d,u,e.m_center),e.setProjectionBehavior(1),z(e),!0}function ye(e,t,n,i,a){return r(a+32<=i.size()),e.m_cp=m(p,2),e.m_cp[0].x=i.readDouble(a),e.m_cp[0].y=i.readDouble(a+8),e.m_cp[1].x=i.readDouble(a+16),e.m_cp[1].y=i.readDouble(a+24),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y,!0}function be(e,t,n,r,i){return e.m_cp.x=r.readDouble(i),e.m_cp.y=r.readDouble(i+8),e.m_weights[0]=r.readDouble(i+16),e.m_weights[1]=r.readDouble(i+24),e.m_weights[2]=r.readDouble(i+32),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y,!0}function xe(e,t,r,i,a){let o={segFlag:0,toPointSz:0},s=i.currentToken();s=i.nextToken();let c=i.currentString(),l=c[0];for((c.length!==1||l!==`a`&&l!==`b`&&l!==`c`&&l!==`n`&&l!==`q`)&&n(`failed to parse curve: expecting "a", "b", "n", "q", or "c"`),s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for curve parameters`),s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for to point`),o.toPointSz=0;i.nextToken()!==4;)o.toPointSz===4&&n(`failed to parse curve: vertex array cannot have more than 4 elements`),t[o.toPointSz++]=q(i);o.toPointSz<2&&n(`failed to parse curve: vertex array must have at least 2 elements`);let u=p.construct(t[0],t[1]),d=p.getNAN(),f=-1,m=-1,h=!1,g=NaN,_=NaN,v=NaN,y=[p.getNAN(),p.getNAN(),p.getNAN()],b=p.getNAN();if(l===`a`){s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for center point`),s=i.nextToken();let e=q(i);s=i.nextToken();let t=q(i);s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for center point`),d.setCoords(e,t),s=i.nextToken(),f=i.currentInt32Value(),s=i.nextToken(),m=i.currentInt32Value(),s=i.nextToken(),s===4?h=!0:(h=!1,g=q(i),s=i.nextToken(),_=q(i),s=i.nextToken(),v=q(i),s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for curve parameters`)),o.segFlag=4}else if(l===`b`){for(let e=0;e<2;e++){s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for control point`),s=i.nextToken();let t=q(i);s=i.nextToken();let r=q(i);s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for control point`),y[e].setCoords(t,r)}s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for curve parameters`),o.segFlag=2}else if(l===`n`){{s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for control point`),s=i.nextToken();let e=q(i);s=i.nextToken();let t=q(i);s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for control point`),y[0].setCoords(e,t)}s=i.nextToken();let e=q(i);s=i.nextToken();let t=q(i);s=i.nextToken();let r=q(i);y[1].setCoords(e,t),y[2].setCoords(r,r),s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for curve parameters`),o.segFlag=8}else if(l===`q`){for(let e=0;e<1;e++){s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for control point`),s=i.nextToken();let t=q(i);s=i.nextToken();let r=q(i);s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for control point`),y[e].setCoords(t,r)}s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for curve parameters`),o.segFlag=16}else{s=i.nextToken(),s!==2&&n(`failed to parse curve: start array is expected for interior point`),s=i.nextToken();let e=q(i);s=i.nextToken();let t=q(i);s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for interior point`),b.setCoords(e,t),s=i.nextToken(),s!==4&&n(`failed to parse curve: end array is expected for curve parameters`),o.segFlag=4}return s=i.nextToken(),s!==3&&n(`failed to parse curve: end object is expected for curve`),l===`a`?(e.createEllipticArc(),h?Se(e.get(),r,u,d,!0,f,m):Ce(e.get(),r,u,d,f,m,g,_,v)):l===`b`?(e.createCubicBezier(),we(e.get(),r,u,y)):l===`n`?(e.createQuadraticRationalBezier(),Te(e.get(),r,u,y[0],y[1].x,y[1].y,y[2].x)):l===`q`?(e.createQuadraticBezier(),e.get().construct(r,y[0],u)):(e.createEllipticArc(),Se(e.get(),r,u,b,!1,-1,-1)),o}function Se(e,t,n,r,i,a,o){e.dropAllAttributes();let s=new K({sz:20,buffer:new ArrayBuffer(20)}),c=0;s.writeDouble(c,r.x),c+=8,s.writeDouble(c,r.y),c+=8;let l=0;i?(o||(l|=8),a&&(l|=16)):l|=128,s.writeInt32(c,l),c+=4,_e(e,t,n,s,0)}function Ce(e,t,n,r,i,a,o,s,c){e.dropAllAttributes();let l=new K({sz:44,buffer:new ArrayBuffer(44)}),u=0;l.writeDouble(u,r.x),u+=8,l.writeDouble(u,r.y),u+=8,l.writeDouble(u,o),u+=8,l.writeDouble(u,s),u+=8,l.writeDouble(u,c),u+=8;let d=0;a||(d|=2048),i&&(d|=4096),l.writeInt32(u,d),u+=4,ve(e,t,n,l,0)}function we(e,t,n,r){e.dropAllAttributes();let i=new K({sz:32,buffer:new ArrayBuffer(32)}),a=0;i.writeDouble(a,r[0].x),a+=8,i.writeDouble(a,r[0].y),a+=8,i.writeDouble(a,r[1].x),a+=8,i.writeDouble(a,r[1].y),a+=8,ye(e,t,n,i,0)}function Te(e,t,n,r,i,a,o){e.dropAllAttributes();let s=new K({sz:40,buffer:new ArrayBuffer(40)}),c=0;s.writeDouble(c,r.x),c+=8,s.writeDouble(c,r.y),c+=8,s.writeDouble(c,i),c+=8,s.writeDouble(c,a),c+=8,s.writeDouble(c,o),c+=8,be(e,t,n,s,0)}function Ee(e,t,n,r,i){let a=e.getGeometryType();if(a===o.enumEllipticArc)return De(e,t,n,r,i);if(a===o.enumBezier)return Oe(e,t,n,r,i);if(a===o.enumRationalBezier2)return ke(e,t,n,r,i);if(a===o.enumBezier2){let a=new L;return a.constructFromQuadraticSegment(e),Oe(a,t,n,r,i)}s(``)}function De(e,t,n,i,a){r(!R(e));let o=e.getEndXY(),s=e.hasAttribute(1)&&!t,c=e.hasAttribute(2)&&!n,l=NaN,u=NaN;if(s&&(l=e.getEndAttributeAsDbl(1,0)),c&&(u=e.getEndAttributeAsDbl(2,0)),e.isDegenerateToLine()||e.isDegenerate(0))return X(s,c,o.x,o.y,l,u,i,a),!0;let d=e.projectionBehavior()===0,f=d?e.isClosed():!1;if(d&&!f)a.startObject(),a.addFieldName(`c`),a.startArray(),X(s,c,o.x,o.y,l,u,i,a),Z(e.m_interior.x,e.m_interior.y,17,a),a.endArray(),a.endObject();else if(d){a.startObject(),a.addFieldName(`a`),a.startArray(),X(s,c,o.x,o.y,l,u,i,a),Z(e.m_center.x+0,e.m_center.y+0,17,a);let t=!e.isMajor();a.addInt32(+!!t);let n=e.isClockwise();a.addInt32(+!!n),a.endArray(),a.endObject()}else{a.startObject(),a.addFieldName(`a`),a.startArray(),X(s,c,o.x,o.y,l,u,i,a);let t=e;Z(t.m_center.x,t.m_center.y,17,a);let n=!t.isMajor();a.addInt32(+!!n);let r=t.isClockwise();a.addInt32(+!!r),a.addDouble(t.m_rotation,17),a.addDouble(t.m_semiMajorAxis,17),a.addDouble(t.m_minorMajorRatio,17),a.endArray(),a.endObject()}return!1}function Oe(e,t,n,r,i){let a=e.getEndXY(),o=e.hasAttribute(1)&&!t,s=e.hasAttribute(2)&&!n,c=NaN,l=NaN;return o&&(c=e.getEndAttributeAsDbl(1,0)),s&&(l=e.getEndAttributeAsDbl(2,0)),i.startObject(),i.addFieldName(`b`),i.startArray(),X(o,s,a.x,a.y,c,l,r,i),Z(e.m_cp[0].x,e.m_cp[0].y,r,i),Z(e.m_cp[1].x,e.m_cp[1].y,r,i),i.endArray(),i.endObject(),!1}function ke(e,t,n,r,i){let a=e.getEndXY(),o=e.hasAttribute(1)&&!t,s=e.hasAttribute(2)&&!n,c=NaN,l=NaN;o&&(c=e.getEndAttributeAsDbl(1,0)),s&&(l=e.getEndAttributeAsDbl(2,0)),i.startObject(),i.addFieldName(`n`),i.startArray(),X(o,s,a.x,a.y,c,l,r,i),Z(e.m_cp.x,e.m_cp.y,r,i);let u=r;return i.addDouble(e.m_weights[0],u),i.addDouble(e.m_weights[1],u),i.addDouble(e.m_weights[2],u),i.endArray(),i.endObject(),!1}function X(e,t,n,r,i,a,o,s){s.startArray(),s.addDouble(n,o),s.addDouble(r,o),e&&s.addDouble(i,o),t&&s.addDouble(a,o),s.endArray()}function Z(e,t,n,r){r.startArray(),r.addDouble(e,n),r.addDouble(t,n),r.endArray()}class Ae{getOperatorType(){return 10405}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}execute(e,t,n,r,i,a){je(e,t,n,r)}exportSpatialReference(e,t,n,i){r(0)}exportProjectionTransformation(e,t,n,i){r(0)}exportDatumTransformation(e,t,n,i){r(0)}static geometryTypeToString(e){return r(0),``}}function je(e,n,i,a,s){if(n||i){if(a.startObject(),n!==null)switch(n.getGeometryType()){case o.enumPolygon:Me(!0,e,n,a);break;case o.enumPolyline:Me(!1,e,n,a);break;case o.enumMultiPoint:Ne(e,n,a);break;case o.enumPoint:Pe(e,n,a);break;case o.enumEnvelope:Fe(e,n,a);break;case o.enumMultipatch:r(0);break;default:t(`exportToJSON`)}i!==null&&(a.addFieldName(`spatialReference`),Le(e,i,a)),a.endObject()}}function Me(e,t,n,i){let a=n.getImpl(),o=!!(t&2),c=!!(t&4),l=!!(t&8),u=a.hasAttribute(1)&&!o,d=a.hasAttribute(2)&&!c,f=a.hasAttribute(3)&&!l,p=a.hasNonLinearSegments();u&&(i.addFieldName(`hasZ`),i.addBool(!0)),d&&(i.addFieldName(`hasM`),i.addBool(!0)),e?p?i.addFieldName(`curveRings`):i.addFieldName(`rings`):p?i.addFieldName(`curvePaths`):i.addFieldName(`paths`);let m=null,h=[];if(n.isEmpty())i.startArray(),i.endArray();else{let e=17-(31&t>>13);i.startArray();let r=n.getPathCount(),l=0,g=a.getAttributeStreamRef(0),_=null,v=null,y=null,b=new F,x=null,S=null,C=null;p&&(x=a.getSegmentFlagsStreamRef(),S=a.getSegmentIndexStreamRef(),C=a.getSegmentDataStreamRef()),u&&(_=a.getAttributeStreamRef(1)),d&&(v=a.getAttributeStreamRef(2)),f&&(y=a.getAttributeStreamRef(3),m=M(3,0));for(let t=0;t<r;t++){i.startArray(),f&&h.push(0);let r=n.getPathEnd(t);if(l===r){i.endArray();continue}let a=n.isClosedPath(t),p=g.read(2*l),w=g.read(2*l+1),T=u?_.read(l):NaN,E=d?v.read(l):NaN,D=f?y.read(l):0;Re(u,d,p,w,T,E,e,i);let O=1;f&&(m.add(D),h[h.length-1]++);let k=p,A=w,j=T,M=E,N=D,P=!1,F=0,I=NaN,L=NaN,R=0;for(let t=l+1,n=l,z=a?r+1:r;t<z;t++,n++){let a=x===null?1:x.read(n)&31,l,z;if(t<r?(l=g.read(2*t),z=g.read(2*t+1),u&&(I=_.read(t)),d&&(L=v.read(t)),f&&(R=y.read(t))):(l=k,z=A,I=j,L=M,R=N),a!==1){P=!0,a===4?b.createEllipticArc():a===2?b.createCubicBezier():a===16?b.createQuadraticBezier():a===8?b.createQuadraticRationalBezier():s(`JSON export.unsupported curve`);let t=b.get(),r=S.read(n);t.setStartXYCoords(p,w),t.setEndXYCoords(l,z),u&&(t.setStartAttribute(1,0,T),t.setEndAttribute(1,0,I)),d&&(t.setStartAttribute(2,0,E),t.setEndAttribute(2,0,L)),t.readFromBufferStream(C,r),Ee(b.get(),o,c,e,i)&&F++}else Re(u,d,l,z,I,L,e,i);f&&(m.add(R),h[h.length-1]++),O++,p=l,w=z,T=I,E=L,D=R}P&&F===0||(O<2&&F<1&&(Re(u,d,p,w,T,E,e,i),O++,f&&(m.add(D),h[h.length-1]++)),a&&O<3&&F<2&&(Re(u,d,k,A,j,M,e,i),O++,p=k,w=A,T=j,E=M,D=N,f&&(m.add(N),h[h.length-1]++))),i.endArray(),l=r}i.endArray()}if(f){i.addFieldName(`ids`),i.startArray();let e=0;for(let t=0,n=h.length;t<n;++t){let n=h[t];r(n===0||m!==null&&e+n<=m.size()),i.startArray();for(let t=0;t<n;++t)i.addInt32(m.read(e)),e++;i.endArray()}i.endArray()}}function Ne(e,t,n){let i=t.getImpl(),a=i.hasAttribute(1)&&!(e&2),o=i.hasAttribute(2)&&!(e&4),s=i.hasAttribute(3)&&!(e&8);a&&(n.addFieldName(`hasZ`),n.addBool(!0)),o&&(n.addFieldName(`hasM`),n.addBool(!0)),n.addFieldName(`points`);let c=t.getPointCount();if(t.isEmpty())n.startArray(),n.endArray();else{let t=17-(31&e>>13);n.startArray();let r=i.getAttributeStreamRef(0),s=null,l=null;a&&(s=i.getAttributeStreamRef(1)),o&&(l=i.getAttributeStreamRef(2));for(let e=0;e<c;e++){let i=r.read(2*e),c=r.read(2*e+1),u=NaN,d=NaN;a&&(u=s.read(e)),o&&(d=l.read(e)),Re(a,o,i,c,u,d,t,n)}n.endArray()}if(s){let e=null;i.isEmpty()||(e=i.getAttributeStreamRef(3)),r(c===0||e!==null&&e.size()>=c),n.addFieldName(`ids`),n.startArray();for(let t=0;t<c;t++)n.addInt32(e.read(t));n.endArray()}}function Pe(e,t,n){let r=t.hasAttribute(1)&&!(e&2),i=t.hasAttribute(2)&&!(e&4),a=t.hasAttribute(3)&&!(e&8);if(t.isEmpty()){n.addFieldName(`x`),n.addNull(),n.addFieldName(`y`),n.addNull(),r&&(n.addFieldName(`z`),n.addNull()),i&&(n.addFieldName(`m`),n.addNull()),a&&(n.addFieldName(`id`),n.addInt32(0));return}let o=17-(31&e>>13);n.addFieldName(`x`),n.addDouble(t.getX(),o),n.addFieldName(`y`),n.addDouble(t.getY(),o),r&&(n.addFieldName(`z`),n.addDouble(t.getZ(),o)),i&&(n.addFieldName(`m`),n.addDouble(t.getM(),o)),a&&(n.addFieldName(`id`),n.addInt32(t.getID()))}function Fe(e,t,n){let r=t.hasAttribute(1)&&!(e&2),i=t.hasAttribute(2)&&!(e&4),a=t.hasAttribute(3)&&!(e&8);if(t.isEmpty()){n.addFieldName(`xmin`),n.addNull(),n.addFieldName(`ymin`),n.addNull(),n.addFieldName(`xmax`),n.addNull(),n.addFieldName(`ymax`),n.addNull(),r&&(n.addFieldName(`zmin`),n.addNull(),n.addFieldName(`zmax`),n.addNull()),i&&(n.addFieldName(`mmin`),n.addNull(),n.addFieldName(`mmax`),n.addNull()),a&&(n.addFieldName(`idmin`),n.addInt32(0),n.addFieldName(`idmax`),n.addInt32(0));return}let o=17-(31&e>>13);if(n.addFieldName(`xmin`),n.addDouble(t.getXMin(),o),n.addFieldName(`ymin`),n.addDouble(t.getYMin(),o),n.addFieldName(`xmax`),n.addDouble(t.getXMax(),o),n.addFieldName(`ymax`),n.addDouble(t.getYMax(),o),r){let e=t.queryInterval(1,0);n.addFieldName(`zmin`),n.addDouble(e.vmin,o),n.addFieldName(`zmax`),n.addDouble(e.vmax,o)}if(i){let e=t.queryInterval(2,0);n.addFieldName(`mmin`),n.addDouble(e.vmin,o),n.addFieldName(`mmax`),n.addDouble(e.vmax,o)}if(a){let e=t.queryInterval(3,0);n.addFieldName(`idmin`),n.addInt32(e.vmin),n.addFieldName(`idmax`),n.addInt32(e.vmax)}}function Ie(e,t,r){r.startObject();let i=t.getID();i<=0&&n(`cannot export unit that has no valid WKID`),r.addFieldName(`uwkid`),r.addInt32(i),r.endObject()}function Le(e,t,n){n.startObject();let r=0;t.isCustomWkid()||(r=t.getOldID());let i=0,a=t.getVCS();if(a!==null&&(a.isCustomWkid()||(i=a.getOldID()),i<=0&&(r=0)),r>0){n.addFieldName(`wkid`),n.addInt32(r);let e=t.getLatestID();if(e>0&&e!==r&&(n.addFieldName(`latestWkid`),n.addInt32(e)),i>0){n.addFieldName(`vcsWkid`),n.addInt32(i);let e=t.getLatestVerticalID();e!==i&&(n.addFieldName(`latestVcsWkid`),n.addInt32(e))}}if(t.getCoordinateSystemType()===0)n.addFieldName(`wkid`),n.addNull(),t.getUnit()!==null&&(n.addFieldName(`unit`),Ie(e,t.getUnit(),n));else if(r<=0||e&1){let r=``;e&64&&(r=t.getText2(),n.addFieldName(`wkt2`),n.addString(r));let i=t.getText();i!==r&&(n.addFieldName(`wkt`),n.addString(i))}if(e&16){let e=new x;t.queryPrecisionDescriptor(e),n.addFieldName(`xyTolerance`),n.addDouble(e.getTolerance(0)),n.addFieldName(`zTolerance`),n.addDouble(e.getTolerance(1)),n.addFieldName(`mTolerance`),n.addDouble(e.getTolerance(2)),n.addFieldName(`falseX`),n.addDouble(e.getFalseX()),n.addFieldName(`falseY`),n.addDouble(e.getFalseY()),n.addFieldName(`xyUnits`),n.addDouble(e.getGridUnitsXY()),n.addFieldName(`falseZ`),n.addDouble(e.getFalseZ()),n.addFieldName(`zUnits`),n.addDouble(e.getGridUnitsZ()),n.addFieldName(`falseM`),n.addDouble(e.getFalseM()),n.addFieldName(`mUnits`),n.addDouble(e.getGridUnitsM())}n.endObject()}function Re(e,t,n,r,i,a,o,s){s.startArray(),s.addDouble(n,o),s.addDouble(r,o),e&&s.addDouble(i,o),t&&s.addDouble(a,o),s.endArray()}const Q={s_a:97,s_A:65,s_asterisk:42,s_b:98,s_backslash:92,s_beginArray:91,s_beginObject:123,s_colon:58,s_period:46,s_comma:44,s_doubleQuote:34,s_endArray:93,s_endObject:125,s_e:101,s_E:69,s_f:102,s_F:70,s_forwardslash:47,s_minus:45,s_plus:43,s_n:110,s_N:78,s_r:114,s_t:116,s_u:117,s_zero:48,s_nine:57};class ze{m_jsonString;m_endToken;m_startToken;m_currentTokenType;m_bHasEscapes;m_functionStack=[];m_pushPositions=[];m_utf8Decoder=new TextDecoder(`utf-8`,{fatal:!0});m_prepSubstr;m_getCurrentSubstr;m_stepOverChar;m_peekChar;m_get;m_increment;m_eof;constructor(e){e===void 0?(this.m_startToken=2**53-1,this.m_endToken=0,this.m_currentTokenType=0,this.m_functionStack.push(()=>this.accept_()),this.m_jsonString=null,this.m_bHasEscapes=!1):e.jsonString?this.resetParserFromString(e.jsonString):e.jsonStream?s(`streaming json parsing not yet impl`):t(`invalid constructor parameter`)}prepSubstrString_(){}getCurrentSubstrString_(){return this.m_jsonString.slice(this.m_startToken,this.m_endToken)}stepOverCharString_(){this.m_endToken++}peekCharString_(){return this.m_jsonString.charCodeAt(this.m_endToken)}getString_(e){let t=this.m_jsonString?.slice(this.m_startToken,this.m_startToken+e-1);return this.m_endToken+=e-1,{s:t,bDone:this.m_endToken>=this.m_jsonString.length}}incrementString_(){this.m_endToken++}eofString_(){return this.m_endToken>=this.m_jsonString.length}setStringFunctions_(){this.m_prepSubstr=this.prepSubstrString_,this.m_getCurrentSubstr=this.getCurrentSubstrString_,this.m_stepOverChar=this.stepOverCharString_,this.m_peekChar=this.peekCharString_,this.m_get=this.getString_,this.m_increment=this.incrementString_,this.m_eof=this.eofString_}setStreamFunctions_(){s(`streaming json parsing not yet impl`)}reset_(){this.m_jsonString=null,this.m_endToken=0,this.m_startToken=2**53-1,this.m_currentTokenType=0,this.m_bHasEscapes=!1,this.m_functionStack.length=0,this.m_functionStack.push(()=>this.start_()),this.m_pushPositions.length=0}resetParserFromString(e){this.reset_(),this.setStringFunctions_(),this.m_jsonString=e}resetParserFromStream(e){s(`streaming json parsing not yet impl`)}resetToPosition(e){return this.m_jsonString?(this.m_endToken=e,this.m_startToken=Number.MAX_VALUE,this.m_currentTokenType=0,this.m_functionStack.length=0,e>=this.m_jsonString.length?(this.m_functionStack.push(()=>this.accept_()),!1):(this.m_functionStack.push(()=>this.start_()),!0)):!1}nextToken(){return this.m_functionStack.at(-1)(),this.m_currentTokenType}currentToken(){return this.m_currentTokenType}currentTokenStartIndex(){return this.m_startToken}currentTokenEndIndex(){return this.m_endToken}currentText(){return r(0),``}childrenAsString(){return r(0),``}skipChildren(){this.skipChildren_()}skipChildren_(){if(this.m_currentTokenType===1){let e=1;do this.m_currentTokenType=this.nextToken(),this.m_currentTokenType===1?e++:this.m_currentTokenType===3&&e--;while(this.m_currentTokenType!==3||e!==0)}else if(this.m_currentTokenType===2){let e=1;do this.m_currentTokenType=this.nextToken(),this.m_currentTokenType===2?e++:this.m_currentTokenType===4&&e--;while(this.m_currentTokenType!==4||e!==0)}}currentTerminalAsString_(){switch(this.m_currentTokenType){case 7:case 8:case 9:return this.m_getCurrentSubstr().slice(0,this.m_endToken-this.m_startToken);case 10:return`null`;case 11:return`true`;case 12:return`false`}n(`invalid token`)}toUTF8_(e,t){let n=0,r=e;for(;t.charCodeAt(r)===Q.s_backslash&&t.charCodeAt(r+1)===Q.s_u;)n++,r+=6;r=e;let i=new Uint8Array(n),a=0;for(;t.charCodeAt(r)===Q.s_backslash&&t.charCodeAt(r+1)===Q.s_u;)i[a++]=Number.parseInt(t.slice(r+2,r+6),16),r+=6;return{u8s:this.m_utf8Decoder.decode(i),end:r}}unquoteCurrentString_(){let e=``,t=1,n=this.m_endToken-this.m_startToken-1,r=0,i=this.m_getCurrentSubstr();for(let a=t;a<n;a++)if(i.charCodeAt(a)!==Q.s_backslash)r++;else{switch(r>0&&(e+=i.slice(t,t+r)),i.charCodeAt(++a)){case Q.s_doubleQuote:e+=`"`;break;case Q.s_u:{let{u8s:t,end:n}=this.toUTF8_(a-1,i);a=n-1,e+=t;break}case Q.s_backslash:e+=`\\`;break;case Q.s_forwardslash:e+=`/`;break;case Q.s_b:e+=`\b`;break;case Q.s_f:e+=`\f`;break;case Q.s_n:e+=`
3
3
  `;break;case Q.s_r:e+=`\r`;break;case Q.s_t:e+=` `}t=a+1,r=0}return r>0&&(e+=i.slice(t,t+r)),e}currentString(){return this.m_currentTokenType!==5&&this.m_currentTokenType!==6?this.currentTerminalAsString_():this.m_bHasEscapes?this.unquoteCurrentString_():this.m_getCurrentSubstr().slice(1,this.m_endToken-this.m_startToken-2+1)}currentDoubleValue(){if(this.m_currentTokenType!==7&&this.m_currentTokenType!==8&&this.m_currentTokenType!==9&&this.m_currentTokenType!==6&&this.m_currentTokenType!==10&&n(`invalid token`),this.m_currentTokenType===10)return NaN;let e=this.m_getCurrentSubstr(),t=this.m_endToken-this.m_startToken;if(this.m_currentTokenType===6){if(this.currentString()===`NaN`)return NaN;e=e.slice(1),t-=2,t===0&&n(`invalid token`)}let r=Number.parseFloat(e);if(this.m_currentTokenType===6)Number.isNaN(r)&&n(`invalid token`);else if(Number.isNaN(r))return NaN;return r}currentInt32Value(){this.m_currentTokenType!==8&&this.m_currentTokenType!==6&&n(`invalid token`);let e=this.m_getCurrentSubstr(),t=this.m_endToken-this.m_startToken;this.m_currentTokenType===6&&(e=e.slice(1),t-=2,t===0&&n(`invalid token`));let r=parseInt(e);return Number.isNaN(r)&&n(`invalid token`),r}currentInt64Value(){return r(0),0n}currentBoolValue(){return r(0),!1}isError(){return 0}JSONString(){return r(0),``}pushPosition(){return r(0),!1}popPosition(){return r(0),!1}skipCStyleComments_(){r(0)}skipCppStyleComments_(){r(0)}skipComments_(){this.m_prepSubstr();let e=this.m_peekChar();this.m_stepOverChar(),this.m_eof()&&n(`invalid token`),e=this.m_peekChar(),e===Q.s_asterisk?this.skipCStyleComments_():e===Q.s_forwardslash?this.skipCppStyleComments_():n(`invalid token`)}skipWhiteSpace_(){let e;do{this.m_eof()&&n(`invalid token`);let t=this.m_peekChar();for(;t>=9&&t<=13||t===32;)this.m_increment(),this.m_eof()&&n(`invalid token`),t=this.m_peekChar();t===Q.s_forwardslash?(this.m_startToken=this.m_endToken,e=!0,this.skipComments_()):e=!1}while(e)}rightBracket_(){return this.m_peekChar()===Q.s_endArray&&(this.m_startToken=this.m_endToken,this.m_increment(),this.m_currentTokenType=4,!0)}rightBrace_(){return this.m_peekChar()===Q.s_endObject&&(this.m_startToken=this.m_endToken,this.m_increment(),this.m_currentTokenType=3,!0)}string_(){this.m_prepSubstr(),this.m_bHasEscapes=!1,this.m_stepOverChar(),this.m_eof()&&n(`invalid token`);let e=this.m_peekChar();for(;e!==Q.s_doubleQuote;){let t=e===Q.s_backslash;if(this.m_stepOverChar(),this.m_eof()&&n(`invalid token`),e=this.m_peekChar(),t){if(this.m_bHasEscapes=!0,e===Q.s_doubleQuote||e===Q.s_backslash||e===Q.s_forwardslash||e===Q.s_b||e===Q.s_f||e===Q.s_n||e===Q.s_r||e===Q.s_t)this.m_stepOverChar(),this.m_eof()&&n(`invalid token`),e=this.m_peekChar();else if(e===Q.s_u)for(let t=0;t<4;t++)this.m_stepOverChar(),this.m_eof()&&n(`invalid token`),e=this.m_peekChar(),e>=Q.s_zero&&e<=Q.s_nine||e>=Q.s_a&&e<=Q.s_f||e>=Q.s_A&&e<=Q.s_F||n(`invalid token`);else n(`invalid token`)}}this.m_stepOverChar()}comma_(){return this.m_peekChar()===Q.s_comma&&(this.m_increment(),!0)}colon_(){return this.m_peekChar()===Q.s_colon&&(this.m_increment(),!0)}fieldNameEnd_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.colon_()?(this.skipWhiteSpace_(),this.value_()):n(`invalid token`)}fieldNameStart_(){this.m_startToken=this.m_endToken,this.m_peekChar()!==Q.s_doubleQuote&&n(`invalid token`),this.string_(),this.m_currentTokenType=5,this.m_functionStack.push(()=>this.fieldNameEnd_())}pairEnd_(){this.skipWhiteSpace_(),this.comma_()?(this.skipWhiteSpace_(),this.fieldNameStart_()):this.rightBrace_()?this.m_functionStack.pop():n(`invalid token`)}arrayStart_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.rightBracket_()||(this.m_functionStack.push(()=>this.elementEnd_()),this.value_())}elementEnd_(){this.skipWhiteSpace_(),this.comma_()?(this.skipWhiteSpace_(),this.value_()):this.rightBracket_()?this.m_functionStack.pop():n(`invalid token`)}objectStart_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.rightBrace_()||(this.m_functionStack.push(()=>this.pairEnd_()),this.fieldNameStart_())}valueStartObject_(){this.m_increment(),this.m_currentTokenType=1,this.m_functionStack.push(()=>this.objectStart_())}valueStartArray_(){this.m_increment(),this.m_currentTokenType=2,this.m_functionStack.push(()=>this.arrayStart_())}valueString_(){this.string_(),this.m_currentTokenType=6}int_(){this.m_peekChar()===Q.s_zero?this.m_stepOverChar():this.digits_()}digits_(){let e=this.m_peekChar();do this.m_stepOverChar(),this.m_eof()&&n(`invalid token`),e=this.m_peekChar();while(e>=Q.s_zero&&e<=Q.s_nine)}frac_(){let e=this.m_peekChar();this.m_stepOverChar(),this.m_eof()&&n(`invalid token`),e=this.m_peekChar(),e>=Q.s_zero&&e<=Q.s_nine||n(`invalid token`),this.digits_()}exp_(){let e=this.m_peekChar();this.m_stepOverChar(),this.m_eof()&&n(`invalid token`),e=this.m_peekChar(),(e===Q.s_plus||e===Q.s_minus)&&(this.m_stepOverChar(),this.m_eof()&&n(`invalid token`),e=this.m_peekChar()),e>=Q.s_zero&&e<=Q.s_nine||n(`invalid token`),this.digits_()}valueNumber_(){this.m_prepSubstr();let e=!1,t=this.m_peekChar();if(t===Q.s_minus&&(this.m_stepOverChar(),this.m_eof()&&n(`invalid token`),t=this.m_peekChar(),e=!0,t>=Q.s_zero&&t<=Q.s_nine||n(`invalid token`)),this.int_(),t=this.m_peekChar(),t===Q.s_period)this.m_currentTokenType=7,this.frac_(),t=this.m_peekChar(),(t===Q.s_e||t===Q.s_E)&&this.exp_();else if(t===Q.s_e||t===Q.s_E)this.m_currentTokenType=7,this.exp_();else{let t=0,n=this.m_endToken-this.m_startToken;e&&t++;let r=n-t;if(r<10)this.m_currentTokenType=8;else if(r===10){let n=this.m_getCurrentSubstr();this.m_currentTokenType=e?n.slice(t)<=`2147483648`?8:9:n.slice(t)<=`2147483647`?8:9}else if(r<19)this.m_currentTokenType=9;else if(r===19){let n=this.m_getCurrentSubstr();this.m_currentTokenType=e?n.slice(t)<=`9223372036854775808`?9:7:n.slice(t)<=`9223372036854775807`?9:7}else this.m_currentTokenType=7}}valueNull_(){let{s:e,bDone:t}=this.m_get(5);t&&n(`invalid token`),e!==`null`&&n(`invalid token`),this.m_currentTokenType=10}valueTrue_(){let{s:e,bDone:t}=this.m_get(5);t&&n(`invalid token`),e!==`true`&&n(`invalid token`),this.m_currentTokenType=11}valueFalse_(){let{s:e,bDone:t}=this.m_get(6);t&&n(`invalid token`),e!==`false`&&n(`invalid token`),this.m_currentTokenType=12}valueNan_(){let{s:e,bDone:t}=this.m_get(4);t&&n(`invalid token`),e!==`NaN`&&n(`invalid token`),this.m_currentTokenType=7}value_(){this.m_startToken=this.m_endToken;let e=this.m_peekChar();e===Q.s_beginObject?this.valueStartObject_():e===Q.s_beginArray?this.valueStartArray_():e===Q.s_doubleQuote?this.valueString_():e===Q.s_minus||e>=Q.s_zero&&e<=Q.s_zero+9?this.valueNumber_():e===Q.s_n?this.valueNull_():e===Q.s_t?this.valueTrue_():e===Q.s_f?this.valueFalse_():e===Q.s_N?this.valueNan_():n(`invalid token`)}start_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.m_functionStack.push(()=>this.accept_());let e=this.m_peekChar();e!==Q.s_beginObject&&e!==Q.s_beginArray&&n(`invalid token`),this.value_()}accept_(){this.m_startToken=this.m_endToken,this.m_currentTokenType=0}}class Be{getOperatorType(){return 10404}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}execute(e,t,r,i,a,o,s){let c;typeof r==`string`?(c=new ze({jsonString:r}),c.nextToken()):c=r,c.currentToken()!==1&&n(`failed to import map geometry: start of object is expected`);let l=le(t,e,c,i,a);return new C(l)}importSpatialReference(e){let n=de(e);return n===null&&t(`failed to import spatial reference`),n}importProjectionTransformation(e,t){return r(0),{}}importDatumTransformation(e,t){return r(0),{}}static stringToGeometryType(e){if(e=e.toLowerCase(),e.startsWith(`esrigeometry`)||n(`string_to_geometry_type`),e.endsWith(`point`))return o.enumPoint;if(e.endsWith(`envelope`))return o.enumEnvelope;if(e.endsWith(`multipoint`))return o.enumMultiPoint;if(e.endsWith(`polyline`))return o.enumPolyline;if(e.endsWith(`polygon`))return o.enumPolygon;n(`string_to_geometry_type`)}}const $=new G,Ve=new Ae,He=new Be;function Ue(e){return Array.isArray(e)?e[0].spatialReference:e.spatialReference}function We(t,n=!1){if(!n&&(ne(t)||re(t)||ie(t)||ae(t))){let n=new C;return n.setGeometry(e(ee(t))),n}let r=new ce(t,{strict:!1});return r.nextToken(),He.execute(0,o.enumUnknown,r,!0,!1)}function Ge(e){let t=null;return[e.map(e=>{if(t==null){let n=Ke(e);return t=n.getSpatialReference(),n.getGeometry()}return qe(e)}),t]}function Ke(e){let t=We(e),n=Ye(e.spatialReference);return n&&t.setSpatialReference(n),t}function qe(e){return We(e).getGeometry()}function Je(e){return We(e,!0).getGeometry()}function Ye(e){if(e==null||!e.wkid&&!e.latestWkid&&!e.wkt&&!e.wkt2)return null;let t=!1;if(e instanceof te){let{wkt2:n}=e;e=e.toJSON(),e.wkt2??=n,t=!0}(e.latestVcsWkid||e.vcsWkid)&&(t||(e={...e}),delete e?.latestVcsWkid,delete e?.vcsWkid);let n=new ce(e,{strict:!1});n.nextToken();let r=He.importSpatialReference(n);return r.getCoordinateSystemType()===0?null:r}function Xe(e,t){if(e instanceof C&&(t=e.getSpatialReference(),e=e.getGeometry()),e==null||e.isEmpty())return null;let n;switch(e.getGeometryType()){case o.enumPoint:n=U(e);break;case o.enumMultiPoint:n=U(e);break;case o.enumPolyline:n=U(e);break;case o.enumPolygon:n=U(e)}if(n){let e=W(n);return e.spatialReference=Ze(t),e.spatialReference??delete e.spatialReference,e}return $.reset(),Ve.execute(0,e,t??null,$),$.getObject()}function Ze(e){return e==null||e.getCoordinateSystemType()===0?null:($.reset(),Ve.execute(0,null,e,$),$.getObject().spatialReference)}export{Ge as fromGeometries,Ke as fromGeometry,qe as fromGeometryToGXGeometry,Je as fromGeometryToGXGeometryUsingImportOperator,Ye as fromSpatialReference,Ue as getSpatialReference,Xe as toGeometry,Ze as toSpatialReference};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{floatEqualRelative as e,floatEqualAbsolute as t}from"../../../core/mathUtils.js";import{exactEquals as n}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{expandPointInPlace as r,containsXY as i,expandXInPlace as a,expandYInPlace as o}from"../aaBoundingRect.js";import{distance2 as s,interpolateSegment as c,findClosestAndFurthestCurveParametersToPoint as l}from"./mathUtils.js";const u=[0,0];function d(e){let t=1-e,n=t*t,r=e*e;return[n*t,3*e*n,3*r*t,r*e]}function f(e,t,n,r,i){let[a,o,s,c]=d(i);return[e[0]*a+t[0]*o+n[0]*s+r[0]*c,e[1]*a+t[1]*o+n[1]*s+r[1]*c]}function p(e,t,n,r,i){let[a,o,s,c]=d(i);return e*a+t*o+n*s+r*c}function m(e,t,n){let r=e,[i,a,o]=t.b;return f(r,a,o,i,n)}function h(e,t){let[[r,i],a,o]=t.b,s=[r,i];return n(s,o)?n(s,a)?n(s,e)?null:[r-e[0],i-e[1]]:[r-a[0],i-a[1]]:[r-o[0],i-o[1]]}function g(e,t,n){let r=e,[i,a,o]=t.b,s=c([0,0],r,a,n),l=c(u,a,o,n),d=c([0,0],o,i,n),f=c([0,0],s,l,n),p=c([0,0],l,d,n);return[{b:[c([],f,p,n),s,f]},{b:[[...i],p,d]}]}function _(n,r,i){let a=n,[o,s,c]=r.b,u=l(i,[.1,.5,.9],e=>{let t=1-e,[n,r]=f(a,s,c,o,e);return[n,r,3*t*t*(s[0]-a[0])+6*t*e*(c[0]-s[0])+3*e*e*(o[0]-c[0]),3*t*t*(s[1]-a[1])+6*t*e*(c[1]-s[1])+3*e*e*(o[1]-c[1]),6*t*(c[0]-2*s[0]+a[0])+6*e*(o[0]-2*c[0]+s[0]),6*t*(c[1]-2*s[1]+a[1])+6*e*(o[1]-2*c[1]+s[1])]}).map(e=>Math.min(1,Math.max(0,e)));u.push(0,1);let d=1/0,p=u.map(e=>{let t=f(a,s,c,o,e),[n,r]=t,l=i[0]-n,u=i[1]-r,p=Math.sqrt(l*l+u*u);return d=Math.min(p,d),{t:e,curvePoint:t,distance:p}}),m=[];for(let n of p){let{t:r,distance:i}=n;e(i,d)&&!m.some(({t:e})=>t(e,r))&&m.push(n)}return m}function v(e,t,n){let s=t,[c,l,u]=n.b;if(r(e,s),r(e,c),i(e,l[0],l[1])&&i(e,u[0],u[1]))return e;for(let t of y(s[0],l[0],u[0],c[0]))t>0&&t<1&&a(e,p(s[0],l[0],u[0],c[0],t));for(let t of y(s[1],l[1],u[1],c[1]))t>0&&t<1&&o(e,p(s[1],l[1],u[1],c[1],t));return e}function y(e,t,n,r){let i=3*(-e+3*(t-n)+r),a=6*(e-2*t+n),o=3*(t-e);if(i===0)return a===0?[]:[-o/a];let s=Math.sqrt(a*a-4*i*o);return[(-a+s)/(2*i),(-a-s)/(2*i)]}function b(e,t,n){let r=0,i=[t];for(let t=0;t<16;t++){let t=e,a=[];for(let e of i)a.push(...g(t,e,.5)),t=e.b[0];i=a,t=e,r=0;let o=0;for(let e of i){let[n,i,a]=e.b,c=Math.sqrt(s(t,n)),l=Math.sqrt(s(t,i)),u=Math.sqrt(s(i,a)),d=Math.sqrt(s(a,n)),f=l+u+d;r+=(c+f)/2,o+=c,t=n}if(r-o<n)return r}return r}export{v as bezierCurveExtent,b as bezierCurveLength,h as calculateBezierCurveTangent,_ as closestPointsOnBezierCurve,m as interpolateBezierCurve,f as interpolateCubicBezier,p as interpolateCubicBezier1D,g as splitBezierCurve};
2
+ import{floatEqualRelative as e,floatEqualAbsolute as t}from"../../../core/mathUtils.js";import{exactEquals as n}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{expandPointInPlace as r,containsXY as i,expandXInPlace as a,expandYInPlace as o}from"../aaBoundingRect.js";import{findClosestAndFurthestCurveParametersToPoint as s,distance2 as c,interpolateSegment as l}from"./mathUtils.js";const u=[0,0];function d(e){let t=1-e,n=t*t,r=e*e;return[n*t,3*e*n,3*r*t,r*e]}function f(e,t,n,r,i){let[a,o,s,c]=d(i);return[e[0]*a+t[0]*o+n[0]*s+r[0]*c,e[1]*a+t[1]*o+n[1]*s+r[1]*c]}function p(e,t,n,r,i){let[a,o,s,c]=d(i);return e*a+t*o+n*s+r*c}function m(e,t,n){let r=e,[i,a,o]=t.b;return f(r,a,o,i,n)}function h(e,t){let[[r,i],a,o]=t.b,s=[r,i];return n(s,o)?n(s,a)?n(s,e)?null:[r-e[0],i-e[1]]:[r-a[0],i-a[1]]:[r-o[0],i-o[1]]}function g(e,t,n){let r=e,[i,a,o]=t.b,s=l([0,0],r,a,n),c=l(u,a,o,n),d=l([0,0],o,i,n),f=l([0,0],s,c,n),p=l([0,0],c,d,n);return[{b:[l([],f,p,n),s,f]},{b:[[...i],p,d]}]}function _(n,r,i){let a=n,[o,c,l]=r.b,u=s(i,[.1,.5,.9],e=>{let t=1-e,[n,r]=f(a,c,l,o,e);return[n,r,3*t*t*(c[0]-a[0])+6*t*e*(l[0]-c[0])+3*e*e*(o[0]-l[0]),3*t*t*(c[1]-a[1])+6*t*e*(l[1]-c[1])+3*e*e*(o[1]-l[1]),6*t*(l[0]-2*c[0]+a[0])+6*e*(o[0]-2*l[0]+c[0]),6*t*(l[1]-2*c[1]+a[1])+6*e*(o[1]-2*l[1]+c[1])]}).map(e=>Math.min(1,Math.max(0,e)));u.push(0,1);let d=1/0,p=u.map(e=>{let t=f(a,c,l,o,e),[n,r]=t,s=i[0]-n,u=i[1]-r,p=Math.sqrt(s*s+u*u);return d=Math.min(p,d),{t:e,curvePoint:t,distance:p}}),m=[];for(let n of p){let{t:r,distance:i}=n;e(i,d)&&!m.some(({t:e})=>t(e,r))&&m.push(n)}return m}function v(e,t,n){let s=t,[c,l,u]=n.b;if(r(e,s),r(e,c),i(e,l[0],l[1])&&i(e,u[0],u[1]))return e;for(let t of y(s[0],l[0],u[0],c[0]))t>0&&t<1&&a(e,p(s[0],l[0],u[0],c[0],t));for(let t of y(s[1],l[1],u[1],c[1]))t>0&&t<1&&o(e,p(s[1],l[1],u[1],c[1],t));return e}function y(e,t,n,r){let i=3*(-e+3*(t-n)+r),a=6*(e-2*t+n),o=3*(t-e);if(i===0)return a===0?[]:[-o/a];let s=Math.sqrt(a*a-4*i*o);return[(-a+s)/(2*i),(-a-s)/(2*i)]}function b(e,t,n){let r=0,i=[t];for(let t=0;t<16;t++){let t=e,a=[];for(let e of i)a.push(...g(t,e,.5)),t=e.b[0];i=a,t=e,r=0;let o=0;for(let e of i){let[n,i,a]=e.b,s=Math.sqrt(c(t,n)),l=Math.sqrt(c(t,i)),u=Math.sqrt(c(i,a)),d=Math.sqrt(c(a,n)),f=l+u+d;r+=(s+f)/2,o+=s,t=n}if(r-o<n)return r}return r}export{v as bezierCurveExtent,b as bezierCurveLength,h as calculateBezierCurveTangent,_ as closestPointsOnBezierCurve,m as interpolateBezierCurve,f as interpolateCubicBezier,p as interpolateCubicBezier1D,g as splitBezierCurve};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{set as e,invert as t,transpose as n,multiply as r}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{transformMat3 as a,exactEquals as o,normalize as s,add as c}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{expandPointInPlace as l}from"../aaBoundingRect.js";import{cloneCurve as u}from"./curveUtils.js";import{angularRangeWrap as d,angularRangeOriented as f,angularRange as p,wrapAtan2 as m,distance2 as h,intersectLineLine as g,findClosestAndFurthestCurveParametersToPoint as _,angularDistanceAlongOrientedArc as v}from"./mathUtils.js";class y{constructor(e,t,n,r,i,a,o,s,c){this.cx=e,this.cy=t,this.a=n,this.b=r,this.cosR=i,this.sinR=a,this.u1=o,this.u2=s,this.isInvalid=c}}function b(e,t){let[n,r,i,a,o,s,c]=t.a,[l,u]=e,[d,p]=n,[h,g]=r,_=s*c,v=Math.cos(o),b=Math.sin(o),[x,S]=f(m(1/_*(u-g)*v-1/_*(l-h)*b,1/s*(u-g)*b+1/s*(l-h)*v),Math.atan2(1/_*(p-g)*v-1/_*(d-h)*b,1/s*(p-g)*b+1/s*(d-h)*v),i,a);return new y(h,g,s,_,v,b,x,S,s===0||_===0)}function x(e,t){let{a:n,b:r,cosR:i,sinR:a,cx:o,cy:s}=e,c=Math.cos(t),l=Math.sin(t);return[n*c*i-r*l*a+o,n*c*a+r*l*i+s]}function S(e,t){let{u1:n,u2:r}=e;return x(e,n*(1-t)+r*t)}function C(e,t){let[n,r]=t.a[0],{a:i,b:a,cx:l,cy:u,cosR:d,sinR:f,isInvalid:p,u1:m,u2:h}=b(e,t);if(p){let[t,i]=e;return o([t,i],[n,r])?null:[n-t,r-i]}let g=Math.sqrt(i*i-a*a),_=[l+g*d,u+g*f],v=[l-g*d,u-g*f],y=[n-_[0],r-_[1]],x=[n-v[0],r-v[1]];s(y,y),s(x,x);let[S,C]=c(y,y,x);return h>m?[-C,S]:[C,S]}function w(e,t,n){if(n<0||n>1)return[];if(n===0||n===1)return[u(t)];let[r,[i,a],o,s,c,l,d]=t.a,{u1:f,u2:p}=e,m=S(e,n),h=f*(1-n)+p*n,g=+(Math.abs(h-f)<Math.PI),_=+(Math.abs(p-h)<Math.PI);return[{a:[[...m],[i,a],g,s,c,l,d]},{a:[[...r],[i,a],_,s,c,l,d]}]}function T(e,t){let{a:n,b:r,cosR:i,sinR:a,u1:o,u2:s}=e,c=Math.PI/6,l=[1*c,2*c,4*c,5*c,7*c,8*c,10*c,11*c],u=_(t,l,t=>{let o=Math.cos(t),s=Math.sin(t),[c,l]=x(e,t);return[c,l,-n*i*s-r*a*o,-n*a*s+r*i*o,-n*i*o+r*a*s,-n*a*o-r*i*s]}),f=p(o,s),m=new Set(u.map(e=>d(f,e)).filter(e=>e>f.min&&e<f.max));m.add(o),m.add(s);let h=1/0,g,v;for(let n of m){let r=x(e,n),[i,a]=r,c=t[0]-i,l=t[1]-a,u=c*c+l*l;u<h&&(g=(n-o)/(s-o),v=r,h=u)}return{t:g,curvePoint:v,distance:Math.sqrt(h)}}function E(e,t,n){let r=b(t,n),{a:i,b:a,u1:o,u2:s,cosR:c,sinR:u,isInvalid:f}=r,m=n.a[0];if(l(e,t),l(e,m),f)return e;let h=Math.atan2(-a*u,i*c),g=h+Math.PI,_=Math.atan2(a*c,i*u),v=_+Math.PI,y=p(o,s);for(let t of[h,g,_,v].map(e=>d(y,e)))t>y.min&&t<y.max&&l(e,x(r,t));return e}function D(e,t,n){let[r,i,a,o,s,c,l]=t.a,u=b(e,t),{u1:d,u2:f,isInvalid:p}=u,m=f-d;if(p)return Math.sqrt(h(e,r));let _=[0,0],v=0,y=[S(u,0),S(u,.25),S(u,.5),S(u,.75),S(u,1)];for(let e=0;e<14;e++){let e=y.length-1,t=m/(e*2),r=[];for(let n=0;n<e;n++)r.push(y[n]),r.push(x(u,d+(n*2+1)*t));r.push(y[y.length-1]),y=r,v=0;let a=0;for(let e=1;e<y.length;e++){let t=y[e-1],n=y[e];if(v+=Math.sqrt(h(t,n)),e>1){let r=y[e-2],o=g(_,r,t,i,n);a+=o?Math.sqrt(h(t,o)):Math.abs(n[0]-t[0])+Math.abs(n[1]-t[1])}else a+=v}if(a-v<n)return v}return v}const O=i(),k=i(),A=i(),j=i();function M(i,o,s){let[c,l,u,d,f,p,g]=o.a,{cosR:_,sinR:v,a:y,b:x,cx:S,cy:C}=b(i,o),w=a([0,0],c,s),T=a([0,0],l,s),E=s[0]*s[4]<0?1-d:d;{let t=y*y*v*v+x*x*_*_,n=2*(x*x-y*y)*v*_,r=y*y*_*_+x*x*v*v,i=-2*t*S-n*C,a=-n*S-2*r*C,o=t*S*S+n*S*C+r*C*C-y*y*x*x;e(O,t,n/2,i/2,n/2,r,a/2,i/2,a/2,o)}if(t(k,s),k==null){let e=a([0,0],i,s);return{a:[w,T,u,d,m(w[1],w[0]),Math.sqrt(h(w,e))/2,0]}}n(A,k),r(j,r(j,A,O),k);{let e=j[0],t=2*j[1],n=j[4],r=2*j[2],i=2*j[5],a=j[8],o=t*t-4*e*n,s=2*(e*i*i+n*r*r-t*r*i+o*a),c=Math.sqrt((e-n)**2+t*t),l=-Math.sqrt(s*(e+n+c))/o,d=-Math.sqrt(s*(e+n-c))/o;return{a:[w,T,u,E,.5*m(-t,n-e),l,d/l]}}}function N(e,t){let[n,r]=e,[i,[a,o],s,c,l,u,d]=t.a,[f,p]=i;if(d<1e-8||u===0){t.a=[i,[0,0],0,0,0,0,0];return}let m=u*d,h=Math.cos(l),g=Math.sin(l);function _(e,t){let n=(e*h+t*g)/u,r=(t*h-e*g)/m;return n*n+r*r}let y=_(n-a,r-o),b=_(f-a,p-o);if(y===1&&b===1)return;if(Math.hypot(f-n,p-r)<1e-8){s?t.a=[i,[0,0],0,0,0,0,0]:t.a[5]=u*Math.sqrt(y);return}let x=(h*(n-f)+g*(r-p))/2,S=(-g*(n-f)+h*(r-p))/2,C=x*x,w=S*S,T=C/(u*u)+w/(m*m);if(T>1){let e=Math.sqrt(T);u*=e,m*=e}let E=u*u,D=m*m,O=E*w+D*C,k=Math.sqrt((E*D-O)/O);isFinite(k)||(k=0),!s==!c&&(k=-k);let A=k*S*u/m,j=-(k*x*m)/u;a=h*A-g*j+(n+f)/2,o=g*A+h*j+(r+p)/2;let M=Math.atan2(r-o,n-a),N=Math.atan2(p-o,f-a);s=+(v(M,N,c)<=Math.PI),t.a[1].splice(0,2,a,o),t.a[2]=s,t.a.splice(5,2,u,m/u)}export{y as DerivedEllipse,C as calculateEllipticArc7Tangent,T as closestPointOnEllipse,b as deriveEllipse,E as ellipticArcExtent,D as ellipticArcLength,S as interpolateEllipse,N as normalizeEllipticArcAfterEndpointChange,w as splitEllipticArc7,M as transformEllipticArc};
2
+ import{set as e,invert as t,transpose as n,multiply as r}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{transformMat3 as a,exactEquals as o,normalize as s,add as c}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{expandPointInPlace as l}from"../aaBoundingRect.js";import{cloneCurve as u}from"./curveUtils.js";import{angularRangeWrap as d,angularRangeOriented as f,angularRange as p,wrapAtan2 as m,findClosestAndFurthestCurveParametersToPoint as h,distance2 as g,intersectLineLine as _,angularDistanceAlongOrientedArc as v}from"./mathUtils.js";class y{constructor(e,t,n,r,i,a,o,s,c){this.cx=e,this.cy=t,this.a=n,this.b=r,this.cosR=i,this.sinR=a,this.u1=o,this.u2=s,this.isInvalid=c}}function b(e,t){let[n,r,i,a,o,s,c]=t.a,[l,u]=e,[d,p]=n,[h,g]=r,_=s*c,v=Math.cos(o),b=Math.sin(o),[x,S]=f(m(1/_*(u-g)*v-1/_*(l-h)*b,1/s*(u-g)*b+1/s*(l-h)*v),Math.atan2(1/_*(p-g)*v-1/_*(d-h)*b,1/s*(p-g)*b+1/s*(d-h)*v),i,a);return new y(h,g,s,_,v,b,x,S,s===0||_===0)}function x(e,t){let{a:n,b:r,cosR:i,sinR:a,cx:o,cy:s}=e,c=Math.cos(t),l=Math.sin(t);return[n*c*i-r*l*a+o,n*c*a+r*l*i+s]}function S(e,t){let{u1:n,u2:r}=e;return x(e,n*(1-t)+r*t)}function C(e,t){let[n,r]=t.a[0],{a:i,b:a,cx:l,cy:u,cosR:d,sinR:f,isInvalid:p,u1:m,u2:h}=b(e,t);if(p){let[t,i]=e;return o([t,i],[n,r])?null:[n-t,r-i]}let g=Math.sqrt(i*i-a*a),_=[l+g*d,u+g*f],v=[l-g*d,u-g*f],y=[n-_[0],r-_[1]],x=[n-v[0],r-v[1]];s(y,y),s(x,x);let[S,C]=c(y,y,x);return h>m?[-C,S]:[C,S]}function w(e,t,n){if(n<0||n>1)return[];if(n===0||n===1)return[u(t)];let[r,[i,a],o,s,c,l,d]=t.a,{u1:f,u2:p}=e,m=S(e,n),h=f*(1-n)+p*n,g=+(Math.abs(h-f)<Math.PI),_=+(Math.abs(p-h)<Math.PI);return[{a:[[...m],[i,a],g,s,c,l,d]},{a:[[...r],[i,a],_,s,c,l,d]}]}function T(e,t){let{a:n,b:r,cosR:i,sinR:a,u1:o,u2:s}=e,c=Math.PI/6,l=[1*c,2*c,4*c,5*c,7*c,8*c,10*c,11*c],u=h(t,l,t=>{let o=Math.cos(t),s=Math.sin(t),[c,l]=x(e,t);return[c,l,-n*i*s-r*a*o,-n*a*s+r*i*o,-n*i*o+r*a*s,-n*a*o-r*i*s]}),f=p(o,s),m=new Set(u.map(e=>d(f,e)).filter(e=>e>f.min&&e<f.max));m.add(o),m.add(s);let g=1/0,_,v;for(let n of m){let r=x(e,n),[i,a]=r,c=t[0]-i,l=t[1]-a,u=c*c+l*l;u<g&&(_=(n-o)/(s-o),v=r,g=u)}return{t:_,curvePoint:v,distance:Math.sqrt(g)}}function E(e,t,n){let r=b(t,n),{a:i,b:a,u1:o,u2:s,cosR:c,sinR:u,isInvalid:f}=r,m=n.a[0];if(l(e,t),l(e,m),f)return e;let h=Math.atan2(-a*u,i*c),g=h+Math.PI,_=Math.atan2(a*c,i*u),v=_+Math.PI,y=p(o,s);for(let t of[h,g,_,v].map(e=>d(y,e)))t>y.min&&t<y.max&&l(e,x(r,t));return e}function D(e,t,n){let[r,i,a,o,s,c,l]=t.a,u=b(e,t),{u1:d,u2:f,isInvalid:p}=u,m=f-d;if(p)return Math.sqrt(g(e,r));let h=[0,0],v=0,y=[S(u,0),S(u,.25),S(u,.5),S(u,.75),S(u,1)];for(let e=0;e<14;e++){let e=y.length-1,t=m/(e*2),r=[];for(let n=0;n<e;n++)r.push(y[n]),r.push(x(u,d+(n*2+1)*t));r.push(y[y.length-1]),y=r,v=0;let a=0;for(let e=1;e<y.length;e++){let t=y[e-1],n=y[e];if(v+=Math.sqrt(g(t,n)),e>1){let r=y[e-2],o=_(h,r,t,i,n);a+=o?Math.sqrt(g(t,o)):Math.abs(n[0]-t[0])+Math.abs(n[1]-t[1])}else a+=v}if(a-v<n)return v}return v}const O=i(),k=i(),A=i(),j=i();function M(i,o,s){let[c,l,u,d,f,p,h]=o.a,{cosR:_,sinR:v,a:y,b:x,cx:S,cy:C}=b(i,o),w=a([0,0],c,s),T=a([0,0],l,s),E=s[0]*s[4]<0?1-d:d;{let t=y*y*v*v+x*x*_*_,n=2*(x*x-y*y)*v*_,r=y*y*_*_+x*x*v*v,i=-2*t*S-n*C,a=-n*S-2*r*C,o=t*S*S+n*S*C+r*C*C-y*y*x*x;e(O,t,n/2,i/2,n/2,r,a/2,i/2,a/2,o)}if(t(k,s),k==null){let e=a([0,0],i,s);return{a:[w,T,u,d,m(w[1],w[0]),Math.sqrt(g(w,e))/2,0]}}n(A,k),r(j,r(j,A,O),k);{let e=j[0],t=2*j[1],n=j[4],r=2*j[2],i=2*j[5],a=j[8],o=t*t-4*e*n,s=2*(e*i*i+n*r*r-t*r*i+o*a),c=Math.sqrt((e-n)**2+t*t),l=-Math.sqrt(s*(e+n+c))/o,d=-Math.sqrt(s*(e+n-c))/o;return{a:[w,T,u,E,.5*m(-t,n-e),l,d/l]}}}function N(e,t){let[n,r]=e,[i,[a,o],s,c,l,u,d]=t.a,[f,p]=i;if(d<1e-8||u===0){t.a=[i,[0,0],0,0,0,0,0];return}let m=u*d,h=Math.cos(l),g=Math.sin(l);function _(e,t){let n=(e*h+t*g)/u,r=(t*h-e*g)/m;return n*n+r*r}let y=_(n-a,r-o),b=_(f-a,p-o);if(y===1&&b===1)return;if(Math.hypot(f-n,p-r)<1e-8){s?t.a=[i,[0,0],0,0,0,0,0]:t.a[5]=u*Math.sqrt(y);return}let x=(h*(n-f)+g*(r-p))/2,S=(-g*(n-f)+h*(r-p))/2,C=x*x,w=S*S,T=C/(u*u)+w/(m*m);if(T>1){let e=Math.sqrt(T);u*=e,m*=e}let E=u*u,D=m*m,O=E*w+D*C,k=Math.sqrt((E*D-O)/O);isFinite(k)||(k=0),!s==!c&&(k=-k);let A=k*S*u/m,j=-(k*x*m)/u;a=h*A-g*j+(n+f)/2,o=g*A+h*j+(r+p)/2;let M=Math.atan2(r-o,n-a),N=Math.atan2(p-o,f-a);s=+(v(M,N,c)<=Math.PI),t.a[1].splice(0,2,a,o),t.a[2]=s,t.a.splice(5,2,u,m/u)}export{y as DerivedEllipse,C as calculateEllipticArc7Tangent,T as closestPointOnEllipse,b as deriveEllipse,E as ellipticArcExtent,D as ellipticArcLength,S as interpolateEllipse,N as normalizeEllipticArcAfterEndpointChange,w as splitEllipticArc7,M as transformEllipticArc};