@arcgis/core 4.32.0-next.20250128 → 4.32.0-next.20250130

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 (1152) hide show
  1. package/TrackGraphic.js +1 -1
  2. package/applications/Components/SelectionOperation.d.ts +1 -2
  3. package/applications/Components/SketchTooltipControls.d.ts +1 -2
  4. package/applications/Components/basemapUtils.d.ts +1 -2
  5. package/applications/Components/drawUtils.d.ts +1 -2
  6. package/applications/Components/fontUtils.d.ts +1 -2
  7. package/applications/Components/getDefaultUnits.d.ts +1 -2
  8. package/applications/Components/gfxUtils.d.ts +1 -2
  9. package/applications/Components/layerOriginUtils.d.ts +4 -2
  10. package/applications/Components/layersEffectsJsonUtils.d.ts +1 -2
  11. package/applications/Components/previewSymbol2D.d.ts +1 -2
  12. package/applications/Components/reactiveUtils.d.ts +1 -2
  13. package/applications/Components/styleUtils.d.ts +1 -2
  14. package/applications/Components/svgUtils.d.ts +3 -2
  15. package/applications/Components/webStyleSymbolUtils.d.ts +1 -2
  16. package/applications/Excalibur/videoViewUtils.d.ts +1 -2
  17. package/applications/ExperienceBuilder/sketchUtils.d.ts +3 -2
  18. package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +2 -2
  19. package/applications/KnowledgeStudio/layerInternalAccessUtils.d.ts +3 -2
  20. package/applications/KnowledgeStudio/resourceSerializationUtils.d.ts +4 -2
  21. package/applications/MapViewer/mediaUtils.d.ts +2 -2
  22. package/applications/MapViewer/templateUtils.d.ts +4 -2
  23. package/applications/SceneViewer/colorUtils.d.ts +1 -2
  24. package/applications/SceneViewer/devEnvironmentUtils.d.ts +3 -2
  25. package/applications/SceneViewer/layerUtils.d.ts +2 -2
  26. package/applications/SceneViewer/sceneViewerUtils.d.ts +15 -2
  27. package/applications/SceneViewer/symbolUtils.d.ts +1 -2
  28. package/applications/Urban/meshUtils.d.ts +1 -2
  29. package/applications/WebEditor/sketchUtils.d.ts +2 -2
  30. package/arcade.d.ts +2 -2
  31. package/assets/components/assets/icon/hammerCoin16.json +1 -0
  32. package/assets/components/assets/icon/hammerCoin24.json +1 -0
  33. package/assets/components/assets/icon/hammerCoin32.json +1 -0
  34. package/assets/components/assets/icon/hammerLock16.json +1 -0
  35. package/assets/components/assets/icon/hammerLock24.json +1 -0
  36. package/assets/components/assets/icon/hammerLock32.json +1 -0
  37. package/assets/esri/core/workers/RemoteClient.js +1 -1
  38. package/assets/esri/core/workers/chunks/06d72622590dbd38c5de.js +1 -0
  39. package/assets/esri/core/workers/chunks/07c5f3fc475c57f5a7a7.js +1 -0
  40. package/assets/esri/core/workers/chunks/08c4b585290efc98ca5d.js +1 -0
  41. package/assets/esri/core/workers/chunks/{41f7287832d407f13ce5.js → 09b77f82c22530b44daa.js} +1 -1
  42. package/assets/esri/core/workers/chunks/0b62871b89dcb4c70457.js +1 -0
  43. package/assets/esri/core/workers/chunks/0bafa546602b776caf2f.js +1 -0
  44. package/assets/esri/core/workers/chunks/0ebdf0d1fd2034b24519.js +972 -0
  45. package/assets/esri/core/workers/chunks/{e89439cc20b7f4c6a9d1.js → 0ef5b0f8aa8a09acd6e0.js} +1 -1
  46. package/assets/esri/core/workers/chunks/117e7a12af77c761efb5.js +1 -0
  47. package/assets/esri/core/workers/chunks/122ed10cac9f192e1eec.js +1 -0
  48. package/assets/esri/core/workers/chunks/12964a4b16113cdc9c93.js +1 -0
  49. package/assets/esri/core/workers/chunks/149bad940feb0764b350.js +1 -0
  50. package/assets/esri/core/workers/chunks/1891c9aa162c5df1d27c.js +1 -0
  51. package/assets/esri/core/workers/chunks/1ab83753d9eec0463461.js +1 -0
  52. package/assets/esri/core/workers/chunks/{304722106439951da6e1.js → 1accbc048b74857269e4.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{0edf5cd5d004631c3959.js → 1cbeac3301b6943bb28a.js} +1 -1
  54. package/assets/esri/core/workers/chunks/1d51c064045e9c47bd2e.js +1 -0
  55. package/assets/esri/core/workers/chunks/1f443b99653708470f31.js +1 -0
  56. package/assets/esri/core/workers/chunks/{7d49b5bc9eb102e467ab.js → 220b12654b94c94f8d8a.js} +1 -1
  57. package/assets/esri/core/workers/chunks/22e11a8abc70b6571a2b.js +1 -0
  58. package/assets/esri/core/workers/chunks/2345344be4b0e487d3a6.js +1 -0
  59. package/assets/esri/core/workers/chunks/{6eb829a7959df2269b0e.js → 24c94f97a76646d415ae.js} +1 -1
  60. package/assets/esri/core/workers/chunks/258b46b58a4860942f7c.js +1 -0
  61. package/assets/esri/core/workers/chunks/25c8cc30faade043c8dc.js.LICENSE.txt +1 -1
  62. package/assets/esri/core/workers/chunks/2c6f2fdf274c0258621e.js +1 -0
  63. package/assets/esri/core/workers/chunks/2ff63a71213f618377d6.js +1 -0
  64. package/assets/esri/core/workers/chunks/308ec51ff4a66f7fcb0d.js.LICENSE.txt +1 -1
  65. package/assets/esri/core/workers/chunks/{985ae30627429832b2a9.js → 32f5f00aab55ef16dcf1.js} +1 -1
  66. package/assets/esri/core/workers/chunks/380d37ceb8cf52bad190.js +1 -0
  67. package/assets/esri/core/workers/chunks/3984bf01f055fc42bfbf.js +1 -0
  68. package/assets/esri/core/workers/chunks/3e872e5e528dca7bee0c.js +1 -0
  69. package/assets/esri/core/workers/chunks/3ec51b75d1a86dad6cb1.js +1 -0
  70. package/assets/esri/core/workers/chunks/4263eee3247aaf4e64bf.js +1 -0
  71. package/assets/esri/core/workers/chunks/448ee44c7f594e5b2551.js +1 -0
  72. package/assets/esri/core/workers/chunks/476205ee4414ed80666a.js +1 -0
  73. package/assets/esri/core/workers/chunks/4b56c0c109e10d7409b8.js +1 -0
  74. package/assets/esri/core/workers/chunks/{95e786366bc471bd0730.js → 4c5279fedf982a174706.js} +1 -1
  75. package/assets/esri/core/workers/chunks/4cab082b8432ddc05345.js +1 -0
  76. package/assets/esri/core/workers/chunks/{1e1306527fb38c5894eb.js → 5a536de1ecae424bad05.js} +1 -1
  77. package/assets/esri/core/workers/chunks/5adeb979f178944b9ce5.js +1 -0
  78. package/assets/esri/core/workers/chunks/5be7cf1564e756c24066.js +1 -0
  79. package/assets/esri/core/workers/chunks/{f09c95c3d79205ee5a84.js → 5e9bf6d0db82526b8a8c.js} +5 -5
  80. package/assets/esri/core/workers/chunks/{57ebfa7f163a1b40cd1e.js → 61795bde00f2e16d04f1.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{568fe969e8f914f042ca.js → 627cbe662d58cda62e7e.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{6d179eb8edcefb91d5d7.js → 69ab4b780f7223cfd7dd.js} +1 -1
  83. package/assets/esri/core/workers/chunks/6d79ec15d1858839f576.js +1 -0
  84. package/assets/esri/core/workers/chunks/6e25742ceedea7fb1b97.js +1 -0
  85. package/assets/esri/core/workers/chunks/6e8905f20101c1f4509d.js.LICENSE.txt +1 -1
  86. package/assets/esri/core/workers/chunks/6ef2514a6b7bbfb8e37d.js +1 -0
  87. package/assets/esri/core/workers/chunks/72cf9192292e5c85c6df.js.LICENSE.txt +1 -1
  88. package/assets/esri/core/workers/chunks/{50beab30e120ba39d212.js → 76794184ba8c2e66745e.js} +1 -1
  89. package/assets/esri/core/workers/chunks/7810579a5a780933cdc9.js +1 -0
  90. package/assets/esri/core/workers/chunks/{e45dba512ebee97f0af2.js → 78242f2bf742b33d99fa.js} +1 -1
  91. package/assets/esri/core/workers/chunks/7966c245a073c85f04b1.js +1 -0
  92. package/assets/esri/core/workers/chunks/{fa0d968733d581bc2e4d.js → 7d120f8b01fe719eb257.js} +1 -1
  93. package/assets/esri/core/workers/chunks/7e23c15b2a02116f7189.js +1 -0
  94. package/assets/esri/core/workers/chunks/7f87cf3d6a365d987f69.js +1 -0
  95. package/assets/esri/core/workers/chunks/83edac97a52b26ead1ea.js +314 -0
  96. package/assets/esri/core/workers/chunks/881ddbdeb40336208e90.js +1 -0
  97. package/assets/esri/core/workers/chunks/{ec9d5af8887854e821c8.js → 88cbaa91c495d86f4bb0.js} +1 -1
  98. package/assets/esri/core/workers/chunks/{11c999b976ed805b0608.js → 89e3f7880abd014a62c0.js} +1 -1
  99. package/assets/esri/core/workers/chunks/{a3ae5ea96898de327147.js → 8bd51b5b392dfacc922f.js} +1 -1
  100. package/assets/esri/core/workers/chunks/8e6301006abdf47cc88d.js +1 -0
  101. package/assets/esri/core/workers/chunks/{9466e53ff270f6eb42c9.js → 9011704b258ecbfb6d9b.js} +2 -2
  102. package/assets/esri/core/workers/chunks/{9466e53ff270f6eb42c9.js.LICENSE.txt → 9011704b258ecbfb6d9b.js.LICENSE.txt} +1 -1
  103. package/assets/esri/core/workers/chunks/92984981afcbb95828cd.js +1 -0
  104. package/assets/esri/core/workers/chunks/934857de20f6f5c15188.js +1 -0
  105. package/assets/esri/core/workers/chunks/95ad76e58452b60fb79f.js +1 -0
  106. package/assets/esri/core/workers/chunks/9725398f6d56c8ba54ae.js +1 -0
  107. package/assets/esri/core/workers/chunks/97310e6eec87eeaf58f0.js +1 -0
  108. package/assets/esri/core/workers/chunks/9ffa27d0517bad84572e.js +1 -0
  109. package/assets/esri/core/workers/chunks/a39977478a6c57d2e8fb.js +1 -0
  110. package/assets/esri/core/workers/chunks/{f355ca70abadb2155839.js → a61d05354348385f41b5.js} +1 -1
  111. package/assets/esri/core/workers/chunks/af917f69d9c6e9937263.js +1 -0
  112. package/assets/esri/core/workers/chunks/b18620fc15707e4413a1.js +1 -0
  113. package/assets/esri/core/workers/chunks/b1baf39daf5725404be5.js +1 -0
  114. package/assets/esri/core/workers/chunks/b21b152fa15896577242.js.LICENSE.txt +1 -1
  115. package/assets/esri/core/workers/chunks/{39a6fe4cdb205f4925fb.js → b68bddd0c4ca91493543.js} +1 -1
  116. package/assets/esri/core/workers/chunks/bc50585615f07d5ec1a9.js +1 -0
  117. package/assets/esri/core/workers/chunks/bf9bc52a3c559108c19a.js +2 -0
  118. package/assets/esri/core/workers/chunks/{b5d4255db21dfd3b3b13.js.LICENSE.txt → bf9bc52a3c559108c19a.js.LICENSE.txt} +1 -1
  119. package/assets/esri/core/workers/chunks/c04091eea7089dc2e864.js +1 -0
  120. package/assets/esri/core/workers/chunks/{b9369c5415f5b3bda5cf.js → c1d80a709148e3373a82.js} +1 -1
  121. package/assets/esri/core/workers/chunks/c249ad935f54d3b49ae3.js +1 -0
  122. package/assets/esri/core/workers/chunks/{759618564e68fc09dc36.js → c57b9f2b9c229e68919d.js} +1 -1
  123. package/assets/esri/core/workers/chunks/c74441fbe0f63633796f.js +1 -0
  124. package/assets/esri/core/workers/chunks/{7fd48f0a2b35779e680a.js → c7a94e569c905f97244a.js} +1 -1
  125. package/assets/esri/core/workers/chunks/c80d542935803bf869f8.js +1 -0
  126. package/assets/esri/core/workers/chunks/{bc0183350841e09d71fa.js → c8a0089e080140db9076.js} +1 -1
  127. package/assets/esri/core/workers/chunks/{d71a5c029fc9f4820589.js → cee3a38b92a48a58c4d0.js} +1 -1
  128. package/assets/esri/core/workers/chunks/d1678945cf6a58f76863.js +1 -0
  129. package/assets/esri/core/workers/chunks/{9ed1691eab19dfb1cf04.js → d1718ad93e3271b0525e.js} +1 -1
  130. package/assets/esri/core/workers/chunks/{d5b373fe244e5dce1548.js → d27a199fd8e2ade69254.js} +1 -1
  131. package/assets/esri/core/workers/chunks/d3a8aabdbfb59dd433e3.js +1 -0
  132. package/assets/esri/core/workers/chunks/d599ba865da87b487b1b.js +1 -0
  133. package/assets/esri/core/workers/chunks/da1157e288dbc6ba842a.js +1 -0
  134. package/assets/esri/core/workers/chunks/{8584ccce34972e28c040.js → da77eefaad83c0644380.js} +1 -1
  135. package/assets/esri/core/workers/chunks/dd46ec81cebe1a0a7b9c.js +1 -0
  136. package/assets/esri/core/workers/chunks/dd9be173cddc16a354ed.js +1 -0
  137. package/assets/esri/core/workers/chunks/debfb75a94b66b58cbbc.js +1 -0
  138. package/assets/esri/core/workers/chunks/{5a83f90b55a5efbe1ef2.js → df3d1a8d3f11d52eb30d.js} +1 -1
  139. package/assets/esri/core/workers/chunks/e0de91eacf3a3b7eda55.js +51 -0
  140. package/assets/esri/core/workers/chunks/e444ec05a8a1dfbd21a8.js +1 -0
  141. package/assets/esri/core/workers/chunks/e4651d577d297386268e.js +1 -0
  142. package/assets/esri/core/workers/chunks/e468bf4ec7402942ad8c.js +1 -0
  143. package/assets/esri/core/workers/chunks/f200dca22f9f9bbb8670.js +1 -0
  144. package/assets/esri/core/workers/chunks/f2fae056a81f12b56b04.js +1 -0
  145. package/assets/esri/core/workers/chunks/f429d95eb986f3d215f3.js +1 -0
  146. package/assets/esri/core/workers/chunks/f8367c21fa91435c7c53.js +1 -0
  147. package/assets/esri/themes/base/_Ui.scss +6 -0
  148. package/assets/esri/themes/base/_mixins.scss +0 -7
  149. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +0 -2
  150. package/assets/esri/themes/base/widgets/_Bookmarks.scss +0 -5
  151. package/assets/esri/themes/base/widgets/_CatalogLayerList.scss +0 -2
  152. package/assets/esri/themes/base/widgets/_Features.scss +0 -5
  153. package/assets/esri/themes/base/widgets/_LayerList.scss +0 -2
  154. package/assets/esri/themes/base/widgets/_TableList.scss +0 -2
  155. package/assets/esri/themes/dark/main.css +1 -1
  156. package/assets/esri/themes/light/main.css +1 -1
  157. package/assets/esri/themes/light/view.css +1 -1
  158. package/assets/esri/widgets/Editor/t9n/Editor.json +1 -1
  159. package/assets/esri/widgets/Editor/t9n/Editor_en.json +1 -1
  160. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm.json +1 -1
  161. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ar.json +1 -1
  162. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bg.json +1 -1
  163. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bs.json +1 -1
  164. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ca.json +1 -1
  165. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_cs.json +1 -1
  166. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_da.json +1 -1
  167. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_de.json +1 -1
  168. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_el.json +1 -1
  169. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_en.json +1 -1
  170. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_es.json +1 -1
  171. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_et.json +1 -1
  172. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fi.json +1 -1
  173. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fr.json +1 -1
  174. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_he.json +1 -1
  175. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hr.json +1 -1
  176. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hu.json +1 -1
  177. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_id.json +1 -1
  178. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_it.json +1 -1
  179. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ja.json +1 -1
  180. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ko.json +1 -1
  181. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lt.json +1 -1
  182. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lv.json +1 -1
  183. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nl.json +1 -1
  184. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_no.json +1 -1
  185. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pl.json +1 -1
  186. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-BR.json +1 -1
  187. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-PT.json +1 -1
  188. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ro.json +1 -1
  189. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ru.json +1 -1
  190. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sk.json +1 -1
  191. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sl.json +1 -1
  192. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sr.json +1 -1
  193. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sv.json +1 -1
  194. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_th.json +1 -1
  195. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_tr.json +1 -1
  196. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_uk.json +1 -1
  197. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_vi.json +1 -1
  198. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-CN.json +1 -1
  199. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-HK.json +1 -1
  200. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-TW.json +1 -1
  201. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  202. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  203. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  204. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  205. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  206. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  207. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  208. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  209. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  210. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  211. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  212. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  213. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  214. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  215. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  216. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  217. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  218. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  219. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  220. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  221. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  222. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  223. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  224. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  225. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  226. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  227. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  228. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  229. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  230. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  231. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  232. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  233. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  234. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  235. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  236. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  237. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  238. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  239. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  240. package/assets/esri/widgets/Sketch/t9n/Sketch_ar.json +1 -1
  241. package/assets/esri/widgets/Sketch/t9n/Sketch_bg.json +1 -1
  242. package/assets/esri/widgets/Sketch/t9n/Sketch_bs.json +1 -1
  243. package/assets/esri/widgets/Sketch/t9n/Sketch_ca.json +1 -1
  244. package/assets/esri/widgets/Sketch/t9n/Sketch_cs.json +1 -1
  245. package/assets/esri/widgets/Sketch/t9n/Sketch_da.json +1 -1
  246. package/assets/esri/widgets/Sketch/t9n/Sketch_de.json +1 -1
  247. package/assets/esri/widgets/Sketch/t9n/Sketch_el.json +1 -1
  248. package/assets/esri/widgets/Sketch/t9n/Sketch_es.json +1 -1
  249. package/assets/esri/widgets/Sketch/t9n/Sketch_et.json +1 -1
  250. package/assets/esri/widgets/Sketch/t9n/Sketch_fi.json +1 -1
  251. package/assets/esri/widgets/Sketch/t9n/Sketch_fr.json +1 -1
  252. package/assets/esri/widgets/Sketch/t9n/Sketch_he.json +1 -1
  253. package/assets/esri/widgets/Sketch/t9n/Sketch_hr.json +1 -1
  254. package/assets/esri/widgets/Sketch/t9n/Sketch_hu.json +1 -1
  255. package/assets/esri/widgets/Sketch/t9n/Sketch_id.json +1 -1
  256. package/assets/esri/widgets/Sketch/t9n/Sketch_it.json +1 -1
  257. package/assets/esri/widgets/Sketch/t9n/Sketch_ja.json +1 -1
  258. package/assets/esri/widgets/Sketch/t9n/Sketch_ko.json +1 -1
  259. package/assets/esri/widgets/Sketch/t9n/Sketch_lt.json +1 -1
  260. package/assets/esri/widgets/Sketch/t9n/Sketch_lv.json +1 -1
  261. package/assets/esri/widgets/Sketch/t9n/Sketch_nl.json +1 -1
  262. package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +1 -1
  263. package/assets/esri/widgets/Sketch/t9n/Sketch_pl.json +1 -1
  264. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-BR.json +1 -1
  265. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-PT.json +1 -1
  266. package/assets/esri/widgets/Sketch/t9n/Sketch_ro.json +1 -1
  267. package/assets/esri/widgets/Sketch/t9n/Sketch_ru.json +1 -1
  268. package/assets/esri/widgets/Sketch/t9n/Sketch_sk.json +1 -1
  269. package/assets/esri/widgets/Sketch/t9n/Sketch_sl.json +1 -1
  270. package/assets/esri/widgets/Sketch/t9n/Sketch_sr.json +1 -1
  271. package/assets/esri/widgets/Sketch/t9n/Sketch_sv.json +1 -1
  272. package/assets/esri/widgets/Sketch/t9n/Sketch_th.json +1 -1
  273. package/assets/esri/widgets/Sketch/t9n/Sketch_tr.json +1 -1
  274. package/assets/esri/widgets/Sketch/t9n/Sketch_uk.json +1 -1
  275. package/assets/esri/widgets/Sketch/t9n/Sketch_vi.json +1 -1
  276. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-CN.json +1 -1
  277. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-HK.json +1 -1
  278. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-TW.json +1 -1
  279. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ar.json +1 -1
  280. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bg.json +1 -1
  281. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bs.json +1 -1
  282. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ca.json +1 -1
  283. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_cs.json +1 -1
  284. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_da.json +1 -1
  285. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_de.json +1 -1
  286. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_el.json +1 -1
  287. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_es.json +1 -1
  288. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_et.json +1 -1
  289. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fi.json +1 -1
  290. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fr.json +1 -1
  291. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_he.json +1 -1
  292. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hr.json +1 -1
  293. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hu.json +1 -1
  294. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_id.json +1 -1
  295. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_it.json +1 -1
  296. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ja.json +1 -1
  297. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ko.json +1 -1
  298. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lt.json +1 -1
  299. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lv.json +1 -1
  300. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nl.json +1 -1
  301. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_no.json +1 -1
  302. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pl.json +1 -1
  303. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-BR.json +1 -1
  304. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-PT.json +1 -1
  305. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ro.json +1 -1
  306. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ru.json +1 -1
  307. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sk.json +1 -1
  308. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sl.json +1 -1
  309. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sr.json +1 -1
  310. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sv.json +1 -1
  311. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_th.json +1 -1
  312. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_tr.json +1 -1
  313. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_uk.json +1 -1
  314. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_vi.json +1 -1
  315. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-CN.json +1 -1
  316. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-HK.json +1 -1
  317. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-TW.json +1 -1
  318. package/chunks/AtmosphereCompositing.glsl.js +2 -2
  319. package/chunks/BlendLayers.glsl.js +1 -1
  320. package/chunks/BlendWeights.glsl.js +1 -1
  321. package/chunks/BloomBlur.glsl.js +23 -23
  322. package/chunks/BloomComposition.glsl.js +3 -3
  323. package/chunks/BloomDepthAdjust.glsl.js +2 -2
  324. package/chunks/Blur.glsl.js +1 -1
  325. package/chunks/Bufferer-DjC-SKTJ.js +5 -0
  326. package/chunks/ChapmanAtmosphere.glsl.js +2 -2
  327. package/chunks/CheckerBoard.glsl.js +2 -2
  328. package/chunks/Clouds.glsl.js +14 -14
  329. package/chunks/CloudsComposition.glsl.js +1 -1
  330. package/chunks/ColorMaterial.glsl.js +1 -1
  331. package/chunks/ComponentShader.glsl.js +4 -4
  332. package/chunks/Compositing.glsl.js +2 -2
  333. package/chunks/DefaultMaterial.glsl.js +16 -15
  334. package/chunks/{Distance2DCalculator-C9BrfErD.js → Distance2DCalculator-8-JrFGHH.js} +1 -1
  335. package/chunks/EdgeDetect.glsl.js +2 -2
  336. package/chunks/EdgeShader.glsl.js +2 -2
  337. package/chunks/Envelope.js +1 -1
  338. package/chunks/FocusAreaColor.glsl.js +2 -2
  339. package/chunks/FocusAreaMask.glsl.js +1 -1
  340. package/chunks/Fog.glsl.js +3 -3
  341. package/chunks/GeodeticDistanceCalculator-BsWHOuqE.js +5 -0
  342. package/chunks/Geometry.js +1 -1
  343. package/chunks/HUDCompositing.glsl.js +1 -1
  344. package/chunks/HUDMaterial.glsl.js +24 -24
  345. package/chunks/Haze.glsl.js +3 -3
  346. package/chunks/HazeCompositing.glsl.js +2 -2
  347. package/chunks/Heatmap.glsl.js +1 -1
  348. package/chunks/HeatmapDensity.glsl.js +5 -5
  349. package/chunks/HighlightApply.glsl.js +2 -2
  350. package/chunks/HighlightDownsample.glsl.js +2 -2
  351. package/chunks/HighlightToSingle.glsl.js +2 -2
  352. package/chunks/ImageMaterial.glsl.js +4 -4
  353. package/chunks/LaserlinePath.glsl.js +1 -1
  354. package/chunks/Laserlines.glsl.js +1 -1
  355. package/chunks/LineCallout.glsl.js +1 -1
  356. package/chunks/LineMarker.glsl.js +8 -8
  357. package/chunks/Magnifier.glsl.js +4 -4
  358. package/chunks/MeasurementArrow.glsl.js +2 -2
  359. package/chunks/NativeLine.glsl.js +4 -4
  360. package/chunks/NoiseTextureAtlas.glsl.js +34 -34
  361. package/chunks/OITBlend.glsl.js +3 -3
  362. package/chunks/OperatorClip.js +1 -1
  363. package/chunks/OperatorCut.js +1 -1
  364. package/chunks/OperatorGeneralize.js +1 -1
  365. package/chunks/OperatorGeodesicBuffer.js +1 -1
  366. package/chunks/OperatorGeodeticArea.js +1 -1
  367. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  368. package/chunks/OperatorGeodeticDistance.js +1 -1
  369. package/chunks/OperatorGeodeticLength.js +1 -1
  370. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  371. package/chunks/OperatorProximity.js +1 -1
  372. package/chunks/OperatorProximityGeodesic.js +1 -1
  373. package/chunks/OperatorShapePreservingLength.js +1 -1
  374. package/chunks/OperatorShapePreservingProject.js +1 -1
  375. package/chunks/OverlayCompositing.glsl.js +1 -1
  376. package/chunks/Path.glsl.js +9 -9
  377. package/chunks/Pattern.glsl.js +3 -3
  378. package/chunks/Point2D.js +1 -1
  379. package/chunks/PointRenderer.glsl.js +1 -1
  380. package/chunks/Precipitation.glsl.js +1 -1
  381. package/chunks/ProjectionTransformation.js +1 -1
  382. package/chunks/QuadraticBezier.js +1 -1
  383. package/chunks/RasterColorizer.glsl.js +9 -9
  384. package/chunks/RealisticTree.glsl.js +3 -3
  385. package/chunks/RibbonLine.glsl.js +32 -32
  386. package/chunks/SSAO.glsl.js +2 -2
  387. package/chunks/SSAOBlur.glsl.js +1 -1
  388. package/chunks/ShadedColorMaterial.glsl.js +3 -3
  389. package/chunks/ShadowCastAccumulate.glsl.js +2 -2
  390. package/chunks/ShadowCastVisualize.glsl.js +4 -4
  391. package/chunks/ShadowHighlight.glsl.js +2 -2
  392. package/chunks/{SideCalculator2D-Bf4QCxCR.js → SideCalculator2D-BNwb5gvz.js} +1 -1
  393. package/chunks/SimpleAtmosphere.glsl.js +8 -8
  394. package/chunks/SingleHighlightApply.glsl.js +1 -1
  395. package/chunks/SingleHighlightBlur.glsl.js +6 -7
  396. package/chunks/SlicePlaneMaterial.glsl.js +2 -2
  397. package/chunks/Stars.glsl.js +2 -2
  398. package/chunks/Terrain.glsl.js +2 -2
  399. package/chunks/TextureOnly.glsl.js +2 -2
  400. package/chunks/Viewshed.glsl.js +2 -2
  401. package/chunks/WaterSurface.glsl.js +7 -7
  402. package/chunks/distanceOperator.js +1 -1
  403. package/chunks/relateOperator.js +1 -1
  404. package/core/QueueProcessor.js +5 -0
  405. package/core/accessorSupport/decorators.d.ts +4 -2
  406. package/core/has.js +1 -1
  407. package/core/jsonMap.js +1 -1
  408. package/core/lang.d.ts +1 -2
  409. package/core/libs/gl-matrix-2/factories/vec2f64.js +1 -1
  410. package/core/mathUtils.js +1 -1
  411. package/core/promiseUtils.d.ts +5 -2
  412. package/core/quantity.d.ts +3 -2
  413. package/core/reactiveUtils.d.ts +5 -2
  414. package/core/scheduling.d.ts +2 -2
  415. package/core/sql/WhereClauseCache.js +1 -1
  416. package/core/sql.d.ts +1 -2
  417. package/core/sql.js +1 -1
  418. package/core/units.d.ts +9 -2
  419. package/core/urlUtils.d.ts +5 -2
  420. package/core/workers.d.ts +1 -2
  421. package/editing/sharedTemplates/executor/builders/bufferLineToPolygon.js +1 -1
  422. package/editing/sharedTemplates/executor/builders/bufferPointToPolygon.js +1 -1
  423. package/editing/sharedTemplates/executor/builders/bufferPolygonToPolygon.js +1 -1
  424. package/editing/sharedTemplates/executor/builders/connectionPoint.js +1 -1
  425. package/editing/sharedTemplates/executor/builders/equallySpaced.js +1 -1
  426. package/editing/sharedTemplates/executor/builders/offsetLine.js +1 -1
  427. package/editing/sharedTemplates/executor/builders/offsetPrimaryLine.js +1 -1
  428. package/editing/sharedTemplates/executor/builders/pointAtAllVerticesOfLine.js +1 -1
  429. package/editing/sharedTemplates/executor/builders/pointAtBeginningOfLine.js +1 -1
  430. package/editing/sharedTemplates/executor/builders/pointAtBeginningOfRadial.js +1 -1
  431. package/editing/sharedTemplates/executor/builders/pointAtEndOfLine.js +1 -1
  432. package/editing/sharedTemplates/executor/builders/pointAtInteriorVertices.js +1 -1
  433. package/editing/sharedTemplates/executor/builders/pointAtIntersectionVerticesOfLine.js +1 -1
  434. package/editing/sharedTemplates/executor/builders/pointAtNotBeginningOfLine.js +1 -1
  435. package/editing/sharedTemplates/executor/builders/pointAtNotEndOfLine.js +1 -1
  436. package/editing/sharedTemplates/executor/builders/pointAtPolygonCentroid.js +1 -1
  437. package/editing/sharedTemplates/executor/builders/pointAtPolygonNotStart.js +1 -1
  438. package/editing/sharedTemplates/executor/builders/pointAtPolygonStart.js +1 -1
  439. package/editing/sharedTemplates/executor/builders/pointIdentity.js +1 -1
  440. package/editing/sharedTemplates/executor/builders/pointPrimaryIdentity.js +1 -1
  441. package/editing/sharedTemplates/executor/builders/polygonBoundary.js +1 -1
  442. package/editing/sharedTemplates/executor/builders/polygonBoundaryTwoPoint.js +1 -1
  443. package/editing/sharedTemplates/executor/builders/polygonIdentity.js +1 -1
  444. package/editing/sharedTemplates/executor/builders/polygonPrimaryIdentity.js +1 -1
  445. package/editing/sharedTemplates/executor/builders/polygonVertices.js +1 -1
  446. package/editing/sharedTemplates/executor/builders/radialLines.js +1 -1
  447. package/editing/sharedTemplates/executor/builders/twoPointLines.js +1 -1
  448. package/editing/sharedTemplates/executor/createTemplateExecutor.js +5 -0
  449. package/editing/sharedTemplates/executor/support/createServiceEdit.js +1 -1
  450. package/editing/sharedTemplates/executor/support/executorUtils.js +1 -1
  451. package/editing/sharedTemplates/executor/support/getBuilder.js +5 -0
  452. package/editing/templateUtils.js +1 -1
  453. package/form/elements/inputs.d.ts +11 -2
  454. package/form/elements.d.ts +7 -2
  455. package/geometry/coordinateFormatter.d.ts +11 -2
  456. package/geometry/geometryEngine.d.ts +37 -2
  457. package/geometry/geometryEngineAsync.d.ts +37 -2
  458. package/geometry/operators/affineTransformOperator.d.ts +3 -2
  459. package/geometry/operators/alphaShapeOperator.d.ts +3 -2
  460. package/geometry/operators/areaOperator.d.ts +2 -2
  461. package/geometry/operators/autoCompleteOperator.d.ts +2 -2
  462. package/geometry/operators/boundaryOperator.d.ts +3 -2
  463. package/geometry/operators/bufferOperator.d.ts +3 -2
  464. package/geometry/operators/centroidOperator.d.ts +2 -2
  465. package/geometry/operators/clipOperator.d.ts +3 -2
  466. package/geometry/operators/containsOperator.d.ts +3 -2
  467. package/geometry/operators/convexHullOperator.d.ts +4 -2
  468. package/geometry/operators/crossesOperator.d.ts +3 -2
  469. package/geometry/operators/cutOperator.d.ts +2 -2
  470. package/geometry/operators/densifyOperator.d.ts +3 -2
  471. package/geometry/operators/differenceOperator.d.ts +3 -2
  472. package/geometry/operators/disjointOperator.d.ts +3 -2
  473. package/geometry/operators/distanceOperator.d.ts +2 -2
  474. package/geometry/operators/equalsOperator.d.ts +3 -2
  475. package/geometry/operators/extendOperator.d.ts +2 -2
  476. package/geometry/operators/extendOperator.js +1 -1
  477. package/geometry/operators/generalizeOperator.d.ts +3 -2
  478. package/geometry/operators/geodesicBufferOperator.d.ts +5 -2
  479. package/geometry/operators/geodesicProximityOperator.d.ts +6 -2
  480. package/geometry/operators/geodeticAreaOperator.d.ts +4 -2
  481. package/geometry/operators/geodeticDensifyOperator.d.ts +5 -2
  482. package/geometry/operators/geodeticDistanceOperator.d.ts +4 -2
  483. package/geometry/operators/geodeticLengthOperator.d.ts +4 -2
  484. package/geometry/operators/graphicBufferOperator.d.ts +2 -2
  485. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  486. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  487. package/geometry/operators/gx/operatorBoundary.js +1 -1
  488. package/geometry/operators/gx/operatorBuffer.js +1 -1
  489. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  490. package/geometry/operators/gx/operatorDifference.js +1 -1
  491. package/geometry/operators/gx/operatorGeodesicBuffer.js +1 -1
  492. package/geometry/operators/gx/operatorGeodeticArea.js +1 -1
  493. package/geometry/operators/gx/operatorGeodeticDensify.js +1 -1
  494. package/geometry/operators/gx/operatorGeodeticDistance.js +1 -1
  495. package/geometry/operators/gx/operatorGeodeticLength.js +1 -1
  496. package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
  497. package/geometry/operators/gx/operatorIntegrate.js +1 -1
  498. package/geometry/operators/gx/operatorIntersection.js +1 -1
  499. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  500. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  501. package/geometry/operators/gx/operatorLocateBetween.js +1 -1
  502. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  503. package/geometry/operators/gx/operatorOffset.js +1 -1
  504. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  505. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  506. package/geometry/operators/gx/operatorProject.js +1 -1
  507. package/geometry/operators/gx/operatorProximityGeodesic.js +1 -1
  508. package/geometry/operators/gx/operatorShapePreservingProject.js +1 -1
  509. package/geometry/operators/gx/operatorSimplify.js +1 -1
  510. package/geometry/operators/gx/operatorSinglePartToMultiPart.js +1 -1
  511. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  512. package/geometry/operators/gx/operatorUnion.js +1 -1
  513. package/geometry/operators/integrateOperator.d.ts +2 -2
  514. package/geometry/operators/intersectionOperator.d.ts +4 -2
  515. package/geometry/operators/intersectsOperator.d.ts +3 -2
  516. package/geometry/operators/isNearOperator.d.ts +2 -2
  517. package/geometry/operators/isNearOperator.js +1 -1
  518. package/geometry/operators/labelPointOperator.d.ts +3 -2
  519. package/geometry/operators/lengthOperator.d.ts +2 -2
  520. package/geometry/operators/linesToPolygonsOperator.d.ts +2 -2
  521. package/geometry/operators/locateBetweenOperator.d.ts +2 -2
  522. package/geometry/operators/minimumBoundingCircleOperator.d.ts +3 -2
  523. package/geometry/operators/multiPartToSinglePartOperator.d.ts +2 -2
  524. package/geometry/operators/offsetOperator.d.ts +3 -2
  525. package/geometry/operators/overlapsOperator.d.ts +3 -2
  526. package/geometry/operators/polygonOverlayOperator.d.ts +2 -2
  527. package/geometry/operators/polygonSlicerOperator.d.ts +4 -2
  528. package/geometry/operators/projectOperator.d.ts +5 -2
  529. package/geometry/operators/projectOperator.js +1 -1
  530. package/geometry/operators/proximityOperator.d.ts +4 -2
  531. package/geometry/operators/relateOperator.d.ts +4 -2
  532. package/geometry/operators/reshapeOperator.d.ts +2 -2
  533. package/geometry/operators/reshapeOperator.js +1 -1
  534. package/geometry/operators/shapePreservingProjectOperator.d.ts +5 -2
  535. package/geometry/operators/shapePreservingProjectOperator.js +1 -1
  536. package/geometry/operators/simplifyOperator.d.ts +4 -2
  537. package/geometry/operators/support/geographicTransformationUtils.d.ts +4 -2
  538. package/geometry/operators/support/geographicTransformationUtils.js +1 -1
  539. package/geometry/operators/support/initNoPeFactory.js +1 -1
  540. package/geometry/operators/support/jsonConverter.js +1 -1
  541. package/geometry/operators/symmetricDifferenceOperator.d.ts +3 -2
  542. package/geometry/operators/touchesOperator.d.ts +3 -2
  543. package/geometry/operators/unionOperator.d.ts +3 -2
  544. package/geometry/operators/withinOperator.d.ts +3 -2
  545. package/geometry/projection.d.ts +5 -2
  546. package/geometry/support/geodesicUtils.d.ts +5 -2
  547. package/geometry/support/jsonUtils.d.ts +2 -2
  548. package/geometry/support/meshUtils.d.ts +6 -2
  549. package/geometry/support/normalizeUtils.d.ts +2 -2
  550. package/geometry/support/scaleUtils.js +1 -1
  551. package/geometry/support/webMercatorUtils.d.ts +6 -2
  552. package/geometry.d.ts +7 -2
  553. package/interfaces.d.ts +72 -94
  554. package/intl.d.ts +16 -2
  555. package/kernel.d.ts +2 -2
  556. package/layers/ImageryLayer.js +1 -1
  557. package/layers/ImageryTileLayer.js +1 -1
  558. package/layers/LinkChartLayer.js +1 -1
  559. package/layers/catalog/catalogUtils.d.ts +2 -2
  560. package/layers/graphics/OptimizedGeometry.js +1 -1
  561. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  562. package/layers/graphics/sources/ParquetSource.js +1 -1
  563. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  564. package/layers/knowledgeGraph/cypherUtils.d.ts +1 -2
  565. package/layers/knowledgeGraph/layerUtils.js +1 -1
  566. package/layers/knowledgeGraph/supportUtils.d.ts +4 -2
  567. package/layers/mixins/APIKeyMixin.d.ts +1 -1
  568. package/layers/mixins/ArcGISCachedService.d.ts +1 -1
  569. package/layers/mixins/ArcGISImageService.d.ts +1 -1
  570. package/layers/mixins/ArcGISMapService.d.ts +1 -1
  571. package/layers/mixins/BlendLayer.d.ts +1 -1
  572. package/layers/mixins/CustomParametersMixin.d.ts +1 -1
  573. package/layers/mixins/DisplayFilteredLayer.d.ts +1 -1
  574. package/layers/mixins/FeatureEffectLayer.d.ts +1 -1
  575. package/layers/mixins/FeatureLayerBase.d.ts +1 -1
  576. package/layers/mixins/FeatureReductionLayer.d.ts +1 -1
  577. package/layers/mixins/ImageryTileMixin.d.ts +1 -1
  578. package/layers/mixins/ImageryTileMixin.js +1 -1
  579. package/layers/mixins/OperationalLayer.d.ts +1 -1
  580. package/layers/mixins/OrderedLayer.d.ts +1 -1
  581. package/layers/mixins/PortalLayer.d.ts +1 -1
  582. package/layers/mixins/PublishableLayer.d.ts +1 -1
  583. package/layers/mixins/RasterPresetRendererMixin.d.ts +1 -1
  584. package/layers/mixins/RefreshableLayer.d.ts +1 -1
  585. package/layers/mixins/ScaleRangeLayer.d.ts +1 -1
  586. package/layers/mixins/SceneService.d.ts +1 -1
  587. package/layers/mixins/SublayersOwner.d.ts +1 -1
  588. package/layers/mixins/TemporalLayer.d.ts +1 -1
  589. package/layers/mixins/TemporalSceneLayer.d.ts +1 -1
  590. package/layers/ogc/wcsUtils.d.ts +1 -2
  591. package/layers/ogc/wfsUtils.d.ts +2 -2
  592. package/layers/orientedImagery/transformations/imageToWorld.d.ts +1 -2
  593. package/layers/orientedImagery/transformations/worldToImage.d.ts +1 -2
  594. package/layers/support/DisplayFilterInfo.js +1 -1
  595. package/layers/support/Sublayer.js +1 -1
  596. package/layers/support/TrackInfo.js +1 -1
  597. package/layers/support/TrackPartInfo.js +5 -0
  598. package/layers/support/arcadeUtils.d.ts +1 -2
  599. package/layers/support/arcadeUtils.js +1 -1
  600. package/layers/support/csvUtils.d.ts +1 -2
  601. package/layers/support/displayFilterUtils.js +1 -1
  602. package/layers/support/featureLayerUtils.js +1 -1
  603. package/layers/support/fieldUtils.d.ts +8 -2
  604. package/layers/support/fieldUtils.js +1 -1
  605. package/layers/support/layerOriginUtils.js +1 -1
  606. package/layers/support/rasterDatasets/BaseRaster.js +1 -1
  607. package/layers/support/rasterFieldUtils.js +1 -1
  608. package/layers/support/rasterFunctionConstants.d.ts +15 -2
  609. package/layers/support/rasterFunctionUtils.d.ts +105 -2
  610. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  611. package/libs/linkchartlayout/LinkChartLayout.js +1 -1
  612. package/package.json +3 -3
  613. package/pointCloudRenderers.d.ts +5 -2
  614. package/popup/content.d.ts +9 -2
  615. package/rasterRenderers.d.ts +7 -2
  616. package/renderers/mixins/VisualVariablesMixin.d.ts +1 -1
  617. package/renderers/support/jsonUtils.d.ts +1 -2
  618. package/renderers/support/utils.d.ts +2 -2
  619. package/renderers.d.ts +9 -2
  620. package/request.js +1 -1
  621. package/rest/closestFacility.d.ts +1 -2
  622. package/rest/featureService/utils.d.ts +1 -2
  623. package/rest/find.d.ts +1 -2
  624. package/rest/geometryService.d.ts +21 -2
  625. package/rest/geoprocessor.d.ts +2 -2
  626. package/rest/identify.d.ts +1 -2
  627. package/rest/imageService.d.ts +19 -2
  628. package/rest/knowledgeGraphService.d.ts +11 -2
  629. package/rest/knowledgeGraphService.js +1 -1
  630. package/rest/locator.d.ts +4 -2
  631. package/rest/networkService.d.ts +1 -2
  632. package/rest/networks/queryAssociations.d.ts +1 -2
  633. package/rest/networks/synthesizeAssociationGeometries.d.ts +1 -2
  634. package/rest/networks/trace.d.ts +1 -2
  635. package/rest/places.d.ts +3 -2
  636. package/rest/print.d.ts +2 -2
  637. package/rest/query.d.ts +11 -2
  638. package/rest/route.d.ts +1 -2
  639. package/rest/serviceArea.d.ts +1 -2
  640. package/rest/symbolService.d.ts +1 -2
  641. package/smartMapping/labels/bins.d.ts +1 -2
  642. package/smartMapping/labels/clusters.d.ts +1 -2
  643. package/smartMapping/popup/clusters.d.ts +1 -2
  644. package/smartMapping/popup/templates.d.ts +1 -2
  645. package/smartMapping/raster/renderers/classBreaks.d.ts +1 -2
  646. package/smartMapping/raster/renderers/colormap.d.ts +1 -2
  647. package/smartMapping/raster/renderers/flow.d.ts +1 -2
  648. package/smartMapping/raster/renderers/rgb.d.ts +1 -2
  649. package/smartMapping/raster/renderers/shadedRelief.d.ts +1 -2
  650. package/smartMapping/raster/renderers/stretch.d.ts +1 -2
  651. package/smartMapping/raster/renderers/uniqueValue.d.ts +1 -2
  652. package/smartMapping/raster/renderers/vectorField.d.ts +1 -2
  653. package/smartMapping/raster/support/colorRamps.d.ts +5 -2
  654. package/smartMapping/raster/support/utils.d.ts +2 -2
  655. package/smartMapping/renderers/color.d.ts +6 -2
  656. package/smartMapping/renderers/dotDensity.d.ts +1 -2
  657. package/smartMapping/renderers/dotDensity.js +1 -1
  658. package/smartMapping/renderers/heatmap.d.ts +2 -2
  659. package/smartMapping/renderers/heatmap.js +1 -1
  660. package/smartMapping/renderers/location.d.ts +1 -2
  661. package/smartMapping/renderers/opacity.d.ts +1 -2
  662. package/smartMapping/renderers/pieChart.d.ts +2 -2
  663. package/smartMapping/renderers/predominance.d.ts +1 -2
  664. package/smartMapping/renderers/relationship.d.ts +2 -2
  665. package/smartMapping/renderers/size.d.ts +5 -2
  666. package/smartMapping/renderers/support/rendererUtils.d.ts +1 -2
  667. package/smartMapping/renderers/type.d.ts +2 -2
  668. package/smartMapping/renderers/univariateColorSize.d.ts +2 -2
  669. package/smartMapping/statistics/heatmapStatistics.js +1 -1
  670. package/smartMapping/statistics/summaryStatisticsForAttributes.js +1 -1
  671. package/smartMapping/statistics/support/ageUtils.d.ts +1 -2
  672. package/smartMapping/statistics/support/predominanceUtils.d.ts +1 -2
  673. package/smartMapping/support/adapters/CSVLayerAdapter.js +1 -1
  674. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  675. package/smartMapping/support/adapters/FeatureLayerBinningAdapter.js +1 -1
  676. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  677. package/smartMapping/support/adapters/LayerAdapter.js +1 -1
  678. package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
  679. package/smartMapping/support/adapters/PointCloudLayerAdapter.js +1 -1
  680. package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
  681. package/smartMapping/support/adapters/StreamLayerAdapter.js +1 -1
  682. package/smartMapping/support/adapters/support/histogramUtils.js +5 -0
  683. package/smartMapping/support/adapters/support/layerUtils.js +1 -1
  684. package/smartMapping/support/adapters/support/utils.js +1 -1
  685. package/smartMapping/symbology/color.d.ts +7 -2
  686. package/smartMapping/symbology/dotDensity.d.ts +4 -2
  687. package/smartMapping/symbology/flow.d.ts +5 -2
  688. package/smartMapping/symbology/heatmap.d.ts +5 -2
  689. package/smartMapping/symbology/location.d.ts +3 -2
  690. package/smartMapping/symbology/pieChart.d.ts +5 -2
  691. package/smartMapping/symbology/predominance.d.ts +5 -2
  692. package/smartMapping/symbology/relationship.d.ts +5 -2
  693. package/smartMapping/symbology/size.d.ts +3 -2
  694. package/smartMapping/symbology/support/colorRamps.d.ts +4 -2
  695. package/smartMapping/symbology/type.d.ts +5 -2
  696. package/support/LayersMixin.d.ts +1 -1
  697. package/support/TablesMixin.d.ts +1 -1
  698. package/support/featureFlags.js +1 -1
  699. package/support/popupUtils.d.ts +4 -2
  700. package/support/revision.js +1 -1
  701. package/support/timeUtils.d.ts +3 -2
  702. package/symbols/support/cimConversionUtils.d.ts +1 -2
  703. package/symbols/support/cimSymbolUtils.d.ts +6 -2
  704. package/symbols/support/jsonUtils.d.ts +1 -2
  705. package/symbols/support/symbolUtils.d.ts +7 -2
  706. package/symbols.d.ts +29 -2
  707. package/tables/elements.d.ts +5 -2
  708. package/unionTypes.d.ts +12 -2
  709. package/versionManagement/utils.d.ts +2 -2
  710. package/versionManagement/versionAdapters/utils.d.ts +2 -2
  711. package/views/2d/engine/webgl/TextureManager.js +1 -1
  712. package/views/2d/engine/webgl/mesh/factories/FeatureMeshFactory.js +1 -1
  713. package/views/2d/engine/webgl/shaderGraph/GraphShaderModule.js +1 -1
  714. package/views/2d/engine/webgl/shaderGraph/graph/ShaderGraphContext.js +1 -1
  715. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerTechnique.js +1 -1
  716. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPointShader.js +1 -1
  717. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  718. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  719. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BitmapShader.js +1 -1
  720. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js +1 -1
  721. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js +1 -1
  722. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapResolveShader.js +1 -1
  723. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js +1 -1
  724. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js +1 -1
  725. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OverlayShader.js +1 -1
  726. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TestShader.js +1 -1
  727. package/views/2d/engine/webgl/util/LabelMatcher.js +1 -1
  728. package/views/2d/engine/webgl/util/Matcher.js +1 -1
  729. package/views/2d/engine/webgl/util/createMatcher.js +1 -1
  730. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  731. package/views/2d/layers/MediaLayerView2D.js +1 -1
  732. package/views/2d/layers/SubtypeGroupLayerView2D.js +1 -1
  733. package/views/2d/layers/TileLayerView2D.js +1 -1
  734. package/views/2d/layers/features/Processor.js +1 -1
  735. package/views/2d/layers/features/ProcessorTileMessageQueue.js +1 -1
  736. package/views/2d/layers/features/aggregation/AAggregateSpatialIndex.js +1 -1
  737. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  738. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  739. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  740. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  741. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  742. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  743. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  744. package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
  745. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  746. package/views/2d/layers/features/processor/AAggregateStrategy.js +1 -1
  747. package/views/2d/layers/features/processor/AProcessorStrategy.js +1 -1
  748. package/views/2d/layers/features/processor/BinningStrategy.js +1 -1
  749. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  750. package/views/2d/layers/features/processor/FeatureUpdateStrategy.js +1 -1
  751. package/views/2d/layers/features/processor/TrackStrategy.js +1 -1
  752. package/views/2d/layers/features/schema/processor/SimpleProcessorSchema.js +1 -1
  753. package/views/2d/layers/features/schema/processor/StorageSchema.js +1 -1
  754. package/views/2d/layers/features/schema/processor/SubtypeProcessorSchema.js +1 -1
  755. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  756. package/views/2d/layers/features/sources/strategies/AFetchLoadStrategy.js +1 -1
  757. package/views/2d/layers/features/sources/strategies/DrillDownTileLoadStrategy.js +1 -1
  758. package/views/2d/layers/features/sources/strategies/PagedTileLoadStrategy.js +1 -1
  759. package/views/2d/layers/features/sources/strategies/ParquetLoadStrategy.js +1 -1
  760. package/views/2d/layers/features/sources/strategies/SnapshotLoadStrategy.js +1 -1
  761. package/views/2d/layers/features/sources/strategies/StreamLoadStrategy.js +1 -1
  762. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  763. package/views/2d/layers/features/support/FeatureFilterEvaluator.js +5 -0
  764. package/views/2d/layers/features/support/FeatureMetadata.js +1 -1
  765. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  766. package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +1 -1
  767. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  768. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  769. package/views/2d/layers/features/support/whereUtils.js +1 -1
  770. package/views/2d/layers/support/FeatureCommandQueue.js +1 -1
  771. package/views/2d/tiling/TileQueue.js +1 -1
  772. package/views/3d/environment/ChapmanApproximation.glsl.js +3 -3
  773. package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
  774. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  775. package/views/3d/environment/ChapmanRaymarching.glsl.js +4 -4
  776. package/views/3d/environment/Clouds.glsl.js +1 -1
  777. package/views/3d/environment/CloudsComposition.glsl.js +1 -1
  778. package/views/3d/environment/CloudsComposition.js +1 -1
  779. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  780. package/views/3d/environment/Fog.glsl.js +1 -1
  781. package/views/3d/environment/Fog.js +1 -1
  782. package/views/3d/environment/LocalAtmosphere.js +1 -1
  783. package/views/3d/environment/MarsAtmosphere.js +1 -1
  784. package/views/3d/environment/NoiseTextureAtlas.glsl.js +1 -1
  785. package/views/3d/environment/Precipitation.glsl.js +1 -1
  786. package/views/3d/environment/Precipitation.js +1 -1
  787. package/views/3d/environment/PrecipitationTechnique.js +1 -1
  788. package/views/3d/environment/SimpleAtmosphere.glsl.js +1 -1
  789. package/views/3d/interactive/visualElements/LaserlineVisualElement.js +1 -1
  790. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  791. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  792. package/views/3d/layers/SceneLayerWorker.js +1 -1
  793. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  794. package/views/3d/layers/graphics/Labeler.js +1 -1
  795. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorker.js +1 -1
  796. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorkerHandle.js +1 -1
  797. package/views/3d/layers/graphics/pipeline/Tile.js +1 -1
  798. package/views/3d/layers/graphics/pipeline/Tile3DManager.js +1 -1
  799. package/views/3d/layers/graphics/pipeline/featureData/FeatureData.js +1 -1
  800. package/views/3d/layers/graphics/pipeline/featureData/FeatureDataStore.js +1 -1
  801. package/views/3d/layers/graphics/pipeline/featureSet/PBFPointFeatureSetView.js +1 -1
  802. package/views/3d/layers/graphics/pipeline/featureSet/TiledFeatureStore.js +1 -1
  803. package/views/3d/layers/graphics/pipeline/fetching/Tile3DFetcher.js +1 -1
  804. package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
  805. package/views/3d/layers/graphics/wosrLoader.js +1 -1
  806. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  807. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  808. package/views/3d/support/PBFDecoder.js +1 -1
  809. package/views/3d/support/engineContent/sdfPrimitives.js +1 -1
  810. package/views/3d/webgl/RenderNode.js +1 -1
  811. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  812. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +10 -10
  813. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  814. package/views/3d/webgl-engine/collections/Component/Material/shader/DecodeSymbolColor.glsl.js +2 -2
  815. package/views/3d/webgl-engine/collections/Component/SourceGeometry.js +1 -1
  816. package/views/3d/webgl-engine/core/material/MaterialBase.js +1 -1
  817. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +1 -1
  818. package/views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js +1 -1
  819. package/views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js +2 -2
  820. package/views/3d/webgl-engine/core/shaderLibrary/Laserline.glsl.js +3 -3
  821. package/views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js +1 -1
  822. package/views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js +2 -2
  823. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js +1 -1
  824. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js +2 -2
  825. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +3 -3
  826. package/views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js +1 -1
  827. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +9 -9
  828. package/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js +1 -1
  829. package/views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js +1 -1
  830. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +1 -1
  831. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js +1 -1
  832. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +1 -1
  833. package/views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js +2 -2
  834. package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +1 -1
  835. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js +1 -1
  836. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +1 -1
  837. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +2 -2
  838. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js +1 -1
  839. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTextureCoordinates.glsl.js +2 -2
  840. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +2 -2
  841. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +1 -1
  842. package/views/3d/webgl-engine/core/shaderLibrary/hud/AlignPixel.glsl.js +3 -3
  843. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +2 -2
  844. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDOcclusionPass.glsl.js +1 -1
  845. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDVisibility.glsl.js +1 -1
  846. package/views/3d/webgl-engine/core/shaderLibrary/output/Emissions.glsl.js +3 -3
  847. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js +1 -1
  848. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +3 -3
  849. package/views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js +2 -2
  850. package/views/3d/webgl-engine/core/shaderLibrary/raster/Colormap.glsl.js +1 -1
  851. package/views/3d/webgl-engine/core/shaderLibrary/raster/Common.glsl.js +2 -2
  852. package/views/3d/webgl-engine/core/shaderLibrary/raster/Projection.glsl.js +1 -1
  853. package/views/3d/webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js +1 -1
  854. package/views/3d/webgl-engine/core/shaderLibrary/shading/AnalyticalSkyModel.glsl.js +1 -1
  855. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js +1 -1
  856. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js +1 -1
  857. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +2 -2
  858. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +4 -4
  859. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js +1 -1
  860. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +1 -1
  861. package/views/3d/webgl-engine/core/shaderLibrary/shading/FoamRendering.glsl.js +1 -1
  862. package/views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js +4 -4
  863. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +1 -1
  864. package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +2 -2
  865. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +1 -1
  866. package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js +1 -1
  867. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +1 -1
  868. package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +1 -1
  869. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +1 -1
  870. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +7 -7
  871. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js +2 -2
  872. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +1 -1
  873. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +1 -1
  874. package/views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js +2 -2
  875. package/views/3d/webgl-engine/core/shaderLibrary/shading/TextureTransformUV.glsl.js +1 -1
  876. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +1 -1
  877. package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +1 -1
  878. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +1 -1
  879. package/views/3d/webgl-engine/core/shaderLibrary/terrain/BackgroundGrid.glsl.js +1 -1
  880. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +3 -3
  881. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +1 -1
  882. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js +6 -6
  883. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileComposite.glsl.js +1 -1
  884. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js +1 -1
  885. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendModes.glsl.js +1 -1
  886. package/views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js +2 -2
  887. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +3 -3
  888. package/views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js +1 -1
  889. package/views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js +1 -1
  890. package/views/3d/webgl-engine/core/shaderLibrary/util/DoublePrecision.glsl.js +1 -1
  891. package/views/3d/webgl-engine/core/shaderLibrary/util/IsNaN.glsl.js +2 -2
  892. package/views/3d/webgl-engine/core/shaderLibrary/util/LocalFromScreenSpace.glsl.js +2 -2
  893. package/views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js +1 -1
  894. package/views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloat16Encoding.glsl.js +1 -1
  895. package/views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js +1 -1
  896. package/views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js +1 -1
  897. package/views/3d/webgl-engine/core/shaderLibrary/util/TextureAtlasLookup.glsl.js +1 -1
  898. package/views/3d/webgl-engine/core/shaderLibrary/util/TextureOnly.glsl.js +1 -1
  899. package/views/3d/webgl-engine/core/shaderModules/BooleanBindUniform.js +1 -1
  900. package/views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js +1 -1
  901. package/views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js +1 -1
  902. package/views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js +1 -1
  903. package/views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js +1 -1
  904. package/views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js +1 -1
  905. package/views/3d/webgl-engine/core/shaderModules/Float3DrawUniform.js +1 -1
  906. package/views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js +1 -1
  907. package/views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js +1 -1
  908. package/views/3d/webgl-engine/core/shaderModules/Float4DrawUniform.js +1 -1
  909. package/views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js +1 -1
  910. package/views/3d/webgl-engine/core/shaderModules/Float4sPassUniform.js +1 -1
  911. package/views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js +1 -1
  912. package/views/3d/webgl-engine/core/shaderModules/FloatDrawUniform.js +1 -1
  913. package/views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js +1 -1
  914. package/views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js +1 -1
  915. package/views/3d/webgl-engine/core/shaderModules/Integer2BindUniform.js +1 -1
  916. package/views/3d/webgl-engine/core/shaderModules/Integer2PassUniform.js +1 -1
  917. package/views/3d/webgl-engine/core/shaderModules/IntegerBindUniform.js +1 -1
  918. package/views/3d/webgl-engine/core/shaderModules/IntegerDrawUniform.js +1 -1
  919. package/views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js +1 -1
  920. package/views/3d/webgl-engine/core/shaderModules/Matrix3DrawUniform.js +1 -1
  921. package/views/3d/webgl-engine/core/shaderModules/Matrix3PassUniform.js +1 -1
  922. package/views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js +1 -1
  923. package/views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js +1 -1
  924. package/views/3d/webgl-engine/core/shaderModules/Matrix4PassUniform.js +1 -1
  925. package/views/3d/webgl-engine/core/shaderModules/Matrix4sDrawUniform.js +1 -1
  926. package/views/3d/webgl-engine/core/shaderModules/Matrix4sPassUniform.js +1 -1
  927. package/views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js +1 -1
  928. package/views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js +1 -1
  929. package/views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js +1 -1
  930. package/views/3d/webgl-engine/core/shaderModules/TextureCubeBindUniform.js +1 -1
  931. package/views/3d/webgl-engine/core/shaderModules/glsl.js +5 -0
  932. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js +1 -1
  933. package/views/3d/webgl-engine/effects/OpaqueEnvironment.js +1 -1
  934. package/views/3d/webgl-engine/effects/TransparentEnvironment.js +1 -1
  935. package/views/3d/webgl-engine/effects/bloom/BloomBlur.glsl.js +1 -1
  936. package/views/3d/webgl-engine/effects/bloom/BloomComposition.glsl.js +1 -1
  937. package/views/3d/webgl-engine/effects/bloom/BloomDepthAdjust.glsl.js +1 -1
  938. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  939. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  940. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +5 -0
  941. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +5 -0
  942. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  943. package/views/3d/webgl-engine/effects/haze/Haze.glsl.js +1 -1
  944. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  945. package/views/3d/webgl-engine/effects/haze/HazeCompositing.glsl.js +1 -1
  946. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  947. package/views/3d/webgl-engine/effects/highlight/HighlightPassParameters.js +1 -1
  948. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  949. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  950. package/views/3d/webgl-engine/effects/laserlines/LaserlineTechnique.js +1 -1
  951. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  952. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  953. package/views/3d/webgl-engine/effects/smaa/SMAAPassParameters.js +1 -1
  954. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  955. package/views/3d/webgl-engine/effects/ssao/SSAOParameters.js +1 -1
  956. package/views/3d/webgl-engine/effects/stars/Stars.glsl.js +1 -1
  957. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  958. package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
  959. package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
  960. package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
  961. package/views/3d/webgl-engine/lib/Material.js +1 -1
  962. package/views/3d/webgl-engine/lib/Program.js +1 -1
  963. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  964. package/views/3d/webgl-engine/lib/TextureCompressionWorker.js +1 -1
  965. package/views/3d/webgl-engine/lib/TextureCompressionWorkerHandle.js +1 -1
  966. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  967. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  968. package/views/3d/webgl-engine/materials/internal/WaterTextureRepository.js +1 -1
  969. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  970. package/views/3d/webgl-engine/shaders/AtmosphereCompositing.glsl.js +1 -1
  971. package/views/3d/webgl-engine/shaders/BlendWeights.glsl.js +1 -1
  972. package/views/3d/webgl-engine/shaders/Blur.glsl.js +1 -1
  973. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  974. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  975. package/views/3d/webgl-engine/shaders/Compositing.glsl.js +1 -1
  976. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  977. package/views/3d/webgl-engine/shaders/EdgeDetect.glsl.js +1 -1
  978. package/views/3d/webgl-engine/shaders/FocusAreaColor.glsl.js +1 -1
  979. package/views/3d/webgl-engine/shaders/FocusAreaMask.glsl.js +1 -1
  980. package/views/3d/webgl-engine/shaders/HUDCompositing.glsl.js +1 -1
  981. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  982. package/views/3d/webgl-engine/shaders/Heatmap.glsl.js +1 -1
  983. package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +1 -1
  984. package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +1 -1
  985. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
  986. package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +1 -1
  987. package/views/3d/webgl-engine/shaders/HighlightToSingle.glsl.js +1 -1
  988. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  989. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  990. package/views/3d/webgl-engine/shaders/LaserlinePath.glsl.js +1 -1
  991. package/views/3d/webgl-engine/shaders/Laserlines.glsl.js +1 -1
  992. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  993. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  994. package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +1 -1
  995. package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
  996. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  997. package/views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js +7 -7
  998. package/views/3d/webgl-engine/shaders/OverlayCompositing.glsl.js +1 -1
  999. package/views/3d/webgl-engine/shaders/Path.glsl.js +1 -1
  1000. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  1001. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  1002. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  1003. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  1004. package/views/3d/webgl-engine/shaders/SSAO.glsl.js +1 -1
  1005. package/views/3d/webgl-engine/shaders/SSAOBlur.glsl.js +1 -1
  1006. package/views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js +1 -1
  1007. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  1008. package/views/3d/webgl-engine/shaders/ShadowCastAccumulate.glsl.js +1 -1
  1009. package/views/3d/webgl-engine/shaders/ShadowCastVisualize.glsl.js +1 -1
  1010. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
  1011. package/views/3d/webgl-engine/shaders/SingleHighlightApply.glsl.js +1 -1
  1012. package/views/3d/webgl-engine/shaders/SingleHighlightBlur.glsl.js +1 -1
  1013. package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
  1014. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechnique.js +1 -1
  1015. package/views/3d/webgl-engine/shaders/SphereIntersect.glsl.js +2 -2
  1016. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  1017. package/views/3d/webgl-engine/shaders/ToneMapping.glsl.js +1 -1
  1018. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  1019. package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
  1020. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +2 -2
  1021. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/DiscardNonSilhouetteEdges.glsl.js +4 -4
  1022. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/DistanceFalloff.glsl.js +2 -2
  1023. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShader.glsl.js +1 -1
  1024. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +1 -1
  1025. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineAmplitude.glsl.js +3 -3
  1026. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineOffset.glsl.js +7 -7
  1027. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/UnpackAttributes.glsl.js +7 -7
  1028. package/views/3d/webgl.d.ts +3 -2
  1029. package/views/BreakpointsOwner.d.ts +1 -1
  1030. package/views/DOMContainer.d.ts +1 -1
  1031. package/views/DOMContainer.js +1 -1
  1032. package/views/FocusAreas.js +1 -1
  1033. package/views/PopupView.d.ts +1 -1
  1034. package/views/View.js +1 -1
  1035. package/views/layers/FeatureLayerView.js +1 -1
  1036. package/views/layers/support/WhereClauseVisitor.js +5 -0
  1037. package/views/support/DefaultsFromMap.js +1 -1
  1038. package/views/support/{QueueProcessor.js → ScheduledQueueProcessor.js} +1 -1
  1039. package/views/support/colorUtils.d.ts +2 -2
  1040. package/views/webgl/NoParameters.js +5 -0
  1041. package/views/webgl/ShaderBuilder.js +5 -0
  1042. package/views/webgl/Texture.js +1 -1
  1043. package/views/webgl/Uniform.js +5 -0
  1044. package/views/webgl/testAppleAmdDrawArrays.js +1 -1
  1045. package/widgets/Attachments/AttachmentsViewModel.js +1 -1
  1046. package/widgets/Editor/EditorViewModel.js +1 -1
  1047. package/widgets/Editor/UpdateWorkflow.js +1 -1
  1048. package/widgets/Editor/UpdateWorkflowData.js +1 -1
  1049. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  1050. package/widgets/Editor.js +1 -1
  1051. package/widgets/ElevationProfile/support/profileUtils.js +1 -1
  1052. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationList.js +1 -1
  1053. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationSettings.js +5 -0
  1054. package/widgets/FeatureForm/UtilityNetworkAssociationInput.js +1 -1
  1055. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  1056. package/widgets/LinkChartLayoutSwitcher/LinkChartLayoutSwitcherViewModel.js +5 -0
  1057. package/widgets/Print.js +1 -1
  1058. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  1059. package/widgets/TimeSlider/TimeSliderViewModel.js +1 -1
  1060. package/widgets/TimeSlider.js +1 -1
  1061. package/widgets/smartMapping/support/utils.d.ts +3 -2
  1062. package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js +1 -1
  1063. package/widgets/support/UtilityNetworkAssociations/utilityNetworkUtils.js +1 -1
  1064. package/widgets/support/widget.d.ts +8 -2
  1065. package/assets/esri/core/workers/chunks/02be905f7e9185de78c3.js +0 -1
  1066. package/assets/esri/core/workers/chunks/0b66fee87863e5775a6a.js +0 -1
  1067. package/assets/esri/core/workers/chunks/1557446aa4525705a5b2.js +0 -1
  1068. package/assets/esri/core/workers/chunks/1a8aaa92ccb90f646a8b.js +0 -1
  1069. package/assets/esri/core/workers/chunks/1dc6b5b177022b80c473.js +0 -1
  1070. package/assets/esri/core/workers/chunks/2118e9ffb24178ed7f59.js +0 -1
  1071. package/assets/esri/core/workers/chunks/25a6641938a9ccab39b7.js +0 -1
  1072. package/assets/esri/core/workers/chunks/2840705ae7fa909ab4ed.js +0 -1
  1073. package/assets/esri/core/workers/chunks/2a4c6c2e9ba103720e22.js +0 -314
  1074. package/assets/esri/core/workers/chunks/2e4f861c78ef820c0a3e.js +0 -1
  1075. package/assets/esri/core/workers/chunks/349f31a1fb489fbfe60d.js +0 -1
  1076. package/assets/esri/core/workers/chunks/34b31091e172e910d750.js +0 -1
  1077. package/assets/esri/core/workers/chunks/371c2fd9d767612bbeb2.js +0 -1
  1078. package/assets/esri/core/workers/chunks/37658a4e83a5b18acd37.js +0 -1
  1079. package/assets/esri/core/workers/chunks/39f3e202d95725f405ec.js +0 -1
  1080. package/assets/esri/core/workers/chunks/3cb56f509d8f7f340c45.js +0 -1
  1081. package/assets/esri/core/workers/chunks/4086698137db0795187f.js +0 -1
  1082. package/assets/esri/core/workers/chunks/454034bad60414a9ab7f.js +0 -1
  1083. package/assets/esri/core/workers/chunks/483787099d2ba8b8022d.js +0 -1
  1084. package/assets/esri/core/workers/chunks/4b38c008872bb9e10278.js +0 -1
  1085. package/assets/esri/core/workers/chunks/4cccca778b060d8dcd06.js +0 -1
  1086. package/assets/esri/core/workers/chunks/4e5cf2d489db2a57d3bd.js +0 -1
  1087. package/assets/esri/core/workers/chunks/4eda602a909a4773cb27.js +0 -1
  1088. package/assets/esri/core/workers/chunks/5595f19c1f332f504a81.js +0 -1
  1089. package/assets/esri/core/workers/chunks/55da04abc8e1ea93caa9.js +0 -1
  1090. package/assets/esri/core/workers/chunks/561fc48b06a43abe1cd0.js +0 -1
  1091. package/assets/esri/core/workers/chunks/576b7961fe7771dacfd9.js +0 -1
  1092. package/assets/esri/core/workers/chunks/5bb175106aee21025bc2.js +0 -1
  1093. package/assets/esri/core/workers/chunks/5c57aa9fdc4e1bab61ac.js +0 -1
  1094. package/assets/esri/core/workers/chunks/602c67fe1061ec5a3fa5.js +0 -1
  1095. package/assets/esri/core/workers/chunks/61f985a9a393803e5350.js +0 -1
  1096. package/assets/esri/core/workers/chunks/644e83f48752a34f0d1a.js +0 -1
  1097. package/assets/esri/core/workers/chunks/64f1355f7f51ecb3af95.js +0 -1
  1098. package/assets/esri/core/workers/chunks/68f5b077fc1f6f7636dd.js +0 -1
  1099. package/assets/esri/core/workers/chunks/7388b57de8926acd1fc2.js +0 -1
  1100. package/assets/esri/core/workers/chunks/76b8aa593a5279569267.js +0 -1
  1101. package/assets/esri/core/workers/chunks/7705ca2cc8ac3307d4cd.js +0 -1
  1102. package/assets/esri/core/workers/chunks/7719fe672ea74cdc87be.js +0 -1
  1103. package/assets/esri/core/workers/chunks/7ae1f26ded268099f429.js +0 -1
  1104. package/assets/esri/core/workers/chunks/7c95721c077c70f31b53.js +0 -1
  1105. package/assets/esri/core/workers/chunks/82a69eba9bacca8437bd.js +0 -1
  1106. package/assets/esri/core/workers/chunks/8a13cd313d309281dbb9.js +0 -1
  1107. package/assets/esri/core/workers/chunks/933089d069853f6e509a.js +0 -1
  1108. package/assets/esri/core/workers/chunks/9848e9b9cc62328bfeb4.js +0 -1
  1109. package/assets/esri/core/workers/chunks/9a30ad773c22bde61c64.js +0 -1
  1110. package/assets/esri/core/workers/chunks/9bcead430045cbd9941c.js +0 -1
  1111. package/assets/esri/core/workers/chunks/9bd22cdf6eb158555906.js +0 -1
  1112. package/assets/esri/core/workers/chunks/a418af538ee98de7822a.js +0 -1
  1113. package/assets/esri/core/workers/chunks/b1ce435e3850255e0b24.js +0 -1
  1114. package/assets/esri/core/workers/chunks/b31096f20b9ed1446c3a.js +0 -1
  1115. package/assets/esri/core/workers/chunks/b5d4255db21dfd3b3b13.js +0 -2
  1116. package/assets/esri/core/workers/chunks/b5ee6c203f536bdb6708.js +0 -1
  1117. package/assets/esri/core/workers/chunks/b882f921387e21fb263d.js +0 -1
  1118. package/assets/esri/core/workers/chunks/bf9144a5d1fdebec6c4d.js +0 -1
  1119. package/assets/esri/core/workers/chunks/c12bdf6fd7f631e3f79e.js +0 -971
  1120. package/assets/esri/core/workers/chunks/c14afb5a090c58e66235.js +0 -1
  1121. package/assets/esri/core/workers/chunks/c58f559eb68035ebe3da.js +0 -1
  1122. package/assets/esri/core/workers/chunks/c62614bf6ba530924ca1.js +0 -1
  1123. package/assets/esri/core/workers/chunks/c67322bb54dcf699fe23.js +0 -1
  1124. package/assets/esri/core/workers/chunks/d0672714fffe04d5632a.js +0 -51
  1125. package/assets/esri/core/workers/chunks/d5ca87a4ecf096430a21.js +0 -1
  1126. package/assets/esri/core/workers/chunks/d9c34e07627d93d4670b.js +0 -1
  1127. package/assets/esri/core/workers/chunks/e21259a75af746895d6c.js +0 -1
  1128. package/assets/esri/core/workers/chunks/e2c49c1dc02249cf6fd2.js +0 -1
  1129. package/assets/esri/core/workers/chunks/e36a4a049ea8b5589d28.js +0 -1
  1130. package/assets/esri/core/workers/chunks/f43277fdbdbb0f49fe52.js +0 -1
  1131. package/assets/esri/core/workers/chunks/f73bbf3a08adaa37581d.js +0 -1
  1132. package/assets/esri/core/workers/chunks/f9656b0d3c1df8ad19af.js +0 -1
  1133. package/chunks/Bufferer-BhfWVXPl.js +0 -5
  1134. package/chunks/Clipper-a9xfvRaw.js +0 -5
  1135. package/chunks/CrackAndCluster-CHWFqqYQ.js +0 -5
  1136. package/chunks/GeodeticDistanceCalculator-Cnd3ZMKD.js +0 -5
  1137. package/chunks/Intersector-K1VmdfQW.js +0 -5
  1138. package/chunks/OperatorDifference.js +0 -5
  1139. package/chunks/OperatorIntersection.js +0 -5
  1140. package/chunks/OperatorSimplify.js +0 -5
  1141. package/chunks/OperatorUnion.js +0 -5
  1142. package/layers/support/TrackLabelClass.js +0 -5
  1143. package/views/2d/engine/webgl/shaderGraph/ShaderBuilder2D.js +0 -5
  1144. package/views/2d/layers/features/support/FeatureFilter.js +0 -5
  1145. package/views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js +0 -5
  1146. package/views/3d/webgl-engine/core/shaderModules/Uniform.js +0 -5
  1147. package/views/3d/webgl-engine/core/shaderModules/interfaces.js +0 -5
  1148. package/views/3d/webgl-engine/effects/focusArea/FocusAreaRenderNode.js +0 -5
  1149. package/views/3d/webgl-engine/effects/focusArea/FocusAreaRenderNodeColorEffects.js +0 -5
  1150. package/views/3d/webgl-engine/effects/focusArea/FocusAreaRenderNodeGeometryMasking.js +0 -5
  1151. /package/chunks/{GeometryCleaner-DVgW95-D.js → GeometryCleaner-BEJM7I4l.js} +0 -0
  1152. /package/views/{3d/webgl-engine/core/shaderTechnique → webgl}/BindType.js +0 -0
@@ -1,5 +0,0 @@
1
- /*
2
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
- See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
- */
5
- import{Envelope2D as e}from"./Envelope2D.js";import{G as t,i as s,t as i,g as n,c as h}from"./Geometry.js";import{E as r,n as a,L as m,S as o}from"./QuadraticBezier.js";import{a as x}from"./Envelope.js";import{m as p,P as c,d as l,e as _}from"./Point2D.js";function g(e,t,s,i,n){return u(e,t,null,s,i,n)}function u(r,a,m,o,p,c){const l=r.getGeometryType();if(l===t.enumPoint){const e=r.getXY();return a.contains(e)?r:r.createInstance()}if(l===t.enumEnvelope){const t=e.constructEmpty();if(r.queryEnvelope(t),t.intersect(a)){const e=r.clone();return e.setEnvelope(t),e}return r.createInstance()}if(r.isEmpty())return r;if(a.isEmpty())return r.createInstance();const _=a.clone();{const t=new e;if(r.queryLooseEnvelope(t),_.containsEnvelope(t))return r;if(!_.isIntersecting(t))return r.createInstance();0===p&&(t.intersect(_),t.inflate(Math.max(.1*t.maxDimension(),1)),t.intersect(_),_.assign(t))}let u=o;if((null!==m||Number.isNaN(u))&&(u=x(m,_,!1).total()),l===t.enumGeometryCollection){const e=r,t=r.createInstance();for(let s=0,i=e.getGeometryCount();s<i;s++){const i=e.getGeometry(s);if(i.isEmpty())continue;const n=g(i,_,u,p,c);n.isEmpty()||(n===i?t.addGeometry(n.clone()):t.addGeometry(n))}return t}s(l)||i("Clip: geometry not supported");const y=r.getImpl().getAccelerators();if(null!==y){const e=y.getRasterizedGeometry();n(null===e)}switch(l){case t.enumMultiPoint:{const e=r;let t;const s=e.getPointCount(),i=e.getImpl().getAttributeStreamRef(0);let h=0;for(let n=0;n<s;n++){const s=i.readPoint2D(2*n);_.contains(s)||(0===h&&(t=e.createInstance()),h<n&&t.addPoints(e,h,n),h=n+1)}return h>0&&t.addPoints(e,h,s),0===h?e:(n(null!==t),t)}case t.enumPolygon:case t.enumPolyline:return f(r,_,u,p,c);default:h("")}}function y(t,s,i,n,h,r){const a=new v(s,r),m=new e;return t.queryLooseEnvelope(m),s.containsEnvelope(m)?t:s.isIntersecting(m)?a.clipPolesOut(t,h):t.createInstance()}function f(e,t,s,i,n){return new v(t,n).clipMultiPath2(e,s,i)}class v{constructor(t,s){this.m_shape=new r,this.m_geometry=a,this.m_verticesOnExtentIndex=-1,this.m_verticesOnExtent=[],this.m_progressCounter=0,this.m_extent=new e(t),this.m_progressTracker=s}progress_(){}clipMultiPath2(e,s,i){return e.getGeometryType()===t.enumPolygon?this.clipPolygonOrProjectedPolyline2(e,i):this.clipPolyline(e,s)}clipPolygonOrProjectedPolyline2(s,i){const h=s.getGeometryType()===t.enumPolyline;if(0===this.m_extent.width()||0===this.m_extent.height())return s.createInstance();const r=e.constructEmpty();s.queryLooseEnvelope(r),this.m_geometry=h?this.m_shape.addGeometry(s):this.m_shape.addGeometry(s,this.m_extent);const o=e.constructEmpty(),x=e.constructEmpty(),l=new c,_=new c,g=new Array(9),u=new Array(9),y=p(c,9);let f=null;const d=new m,P=[];let E=!1;for(let e=0;!E&&e<4;e++){let t=!1;const s=!!(1&e);let i=0;switch(e){case 0:i=this.m_extent.xmin,t=r.xmin<=i&&r.xmax>=i;break;case 1:i=this.m_extent.ymin,t=r.ymin<=i&&r.ymax>=i;break;case 2:i=this.m_extent.xmax,t=r.xmin<=i&&r.xmax>=i;break;case 3:i=this.m_extent.ymax,t=r.ymin<=i&&r.ymax>=i}if(t){E=!0;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==a;){let r=!0,m=-1,p=-1;const c=this.m_shape.getFirstVertex(t);let V=c;do{this.progress_(),f=this.m_shape.getSegment(V);let t=f;if(null===t){const e=this.m_shape.getNextVertex(V);if(e===a){n(h),0===m&&P.push(V);break}this.m_shape.queryXY(V,l),d.setStartXY(l),this.m_shape.queryXY(e,_),d.setEndXY(_),t=d}t.queryLooseEnvelope(o);let c=v.checkSegmentIntersection(o,e,i);t.isCurve()&&0===c&&t.isCurve()&&(d.setStartXY(t.getStartXY()),d.setEndXY(t.getEndXY()),this.m_shape.replaceCurveWithLine(V),t=d,d.queryEnvelope(o),c=v.checkSegmentIntersection(o,e,i));let I=0,X=a;if(-1===c){const h=t.intersectionWithAxis2D(s,i,g,u);if(h>0){let e=null;if(t.isCurve()){e=y,n(h<=9);for(let e=0;e<h;e++)s?y[e].setCoords(g[e],i):y[e].setCoords(i,g[e]);I=this.m_shape.splitSegmentAxisAware(V,u,h,e,s?1:0)}else I=this.m_shape.splitSegmentAxisAware(V,u,h,null,-1)}else I=0;I+=1;let a=V,o=this.m_shape.getNextVertex(a);t=null;for(let t=0;t<I;t++){this.m_shape.queryXY(a,l),this.m_shape.queryXY(o,_),f=this.m_shape.getSegment(a);let t=f;null===t&&(d.setStartXY(l),d.setEndXY(_),t=d),t.queryEnvelope(x);let n=v.checkSegmentIntersection(x,e,i);if(t.isCurve()&&0===n&&(this.m_shape.replaceCurveWithLine(a),d.setStartXY(l),d.setEndXY(_),t=d,t.queryEnvelope(x),n=v.checkSegmentIntersection(x,e,i)),-1===n){if(s){Math.abs(l.y-i)<Math.abs(_.y-i)?(l.y=i,this.m_shape.setXY(a,l)):(_.y=i,this.m_shape.setXY(o,_))}else{Math.abs(l.x-i)<Math.abs(_.x-i)?(l.x=i,this.m_shape.setXY(a,l)):(_.x=i,this.m_shape.setXY(o,_))}f=this.m_shape.getSegment(a),t=f,null===t&&(d.setStartXY(l),d.setEndXY(_),t=d),t.queryEnvelope(x),n=v.checkSegmentIntersection(x,e,i),-1===n&&(n=v.checkSegmentIntersectionLoose(x,e,i))}const h=m;m=n,-1===p&&(p=m),0===h&&1===m||1===h&&0===m||0===h&&0===m&&P.push(a),1===m&&(E=!1,r=!1),a=o,X=a,o=this.m_shape.getNextVertex(o)}}if(0===I){const e=m;m=c,-1===p&&(p=m),0===e&&m>=1||e>=1&&0===m||0===e&&0===m&&P.push(V),1===m&&(E=!1,r=!1),X=this.m_shape.getNextVertex(V)}if(V=X,P.length>=256){for(let e=1,t=P.length-1;e<t;e++){const t=P[e];h?this.m_shape.snapVertexForPoleClipping(t,i):this.m_shape.removeVertex(t,!1)}P[1]=P.at(-1),P.length=2}}while(V!==c);if(!r){0!==p||!h&&0!==m&&2!==m||P.push(c);for(let e=0,t=P.length;e<t;e++){const t=P[e];h?this.m_shape.snapVertexForPoleClipping(t,i):this.m_shape.removeVertex(t,!1)}}P.length=0,t=r||0===this.m_shape.getPathSize(t)?this.m_shape.removePath(t):this.m_shape.getNextPath(t)}}}if(E)return s.createInstance();f=null,h?this.removeSpikesAlongPoles():this.resolveBoundaryOverlaps(),i>0&&this.densifyAlongClipExtent(i);const V=this.m_shape.getGeometry(this.m_geometry);if(V.getGeometryType()===t.enumPolygon){V.setFillRule(s.getFillRule())}return V}clipPolyline(t,s){const i=e.constructEmpty(),n=e.constructEmpty(),h=new Array(9),r=new Array(9),a=new o;let m=t;const x=e.constructEmpty();t.queryLooseEnvelope(x);for(let e=0;e<4;e++){let s=!1;const o=!!(1&e);let p=0;switch(e){case 0:p=this.m_extent.xmin,s=x.xmin<=p&&x.xmax>=p;break;case 1:p=this.m_extent.ymin,s=x.ymin<=p&&x.ymax>=p;break;case 2:p=this.m_extent.xmax,s=x.xmin<=p&&x.xmax>=p;break;case 3:p=this.m_extent.ymax,s=x.ymin<=p&&x.ymax>=p}if(!s)continue;const l=m;m=t.createInstance();const _=l.getImpl().querySegmentIterator();_.resetToFirstPath();const g=new c,u=new c;for(;_.nextPath();){let t=-1,s=!0;for(;_.hasNextSegment();){this.progress_();const x=_.nextSegment(),c=x.isDegenerate(0);x.queryLooseEnvelope(i);const l=v.checkSegmentIntersection(i,e,p);if(-1===l){const i=x.intersectionWithAxis2D(o,p,h,r);let l=0;g.assign(x.getStartXY());for(let _=0;_<=i;_++){const y=_<i?r[_]:1;if(l===y)continue;x.queryCut(l,y,a,!1);const f=a.get();let d=!1;if(f.getStartXY().equals(g)||(f.setStartXY(g),d=!0),_<i&&(o?(u.x=h[_],u.y=p):(u.x=p,u.y=h[_]),f.getEndXY().equals(u)||(f.setEndXY(u),d=!0)),d&&f.normalizeAfterEndpointChange(),!c&&f.isDegenerate(0))continue;f.queryEnvelope(n);let P=v.checkSegmentIntersection(n,e,p);if(-1===P){const t=f.getStartXY(),s=f.getEndXY();if(d=!1,o){Math.abs(t.y-p)<Math.abs(s.y-p)?(t.y=p,f.setStartXY(t),t.equals(f.getStartXY())||(f.setStartXY(t),d=!0)):(s.y=p,s.equals(f.getEndXY())||(f.setEndXY(s),d=!0))}else{Math.abs(t.x-p)<Math.abs(s.x-p)?(t.x=p,t.equals(f.getStartXY())||(f.setStartXY(t),d=!0)):(s.x=p,s.equals(f.getEndXY())||(f.setEndXY(s),d=!0))}d&&f.normalizeAfterEndpointChange(),f.queryEnvelope(n),P=v.checkSegmentIntersection(n,e,p),-1===P&&(P=v.checkSegmentIntersectionLoose(n,e,p))}g.assign(f.getEndXY()),l=y,t=P,t>=1?(m.addSegment(f,s),s=!1):s=!0}}else t=l,t>=1?(m.addSegment(x,s),s=!1):s=!0}}}return m}static checkSegmentIntersection(e,t,s){switch(t){case 0:return e.xmin<s&&e.xmax<=s?0:e.xmin>=s?e.xmax===s?2:1:-1;case 1:return e.ymin<s&&e.ymax<=s?0:e.ymin>=s?e.ymax===s?2:1:-1;case 2:return e.xmin>=s&&e.xmax>s?0:e.xmax<=s?e.xmin===s?2:1:-1;case 3:return e.ymin>=s&&e.ymax>s?0:e.ymax<=s?e.ymin===s?2:1:-1}return h(""),0}static checkSegmentIntersectionLoose(e,t,s){switch(t){case 0:{const t=Math.abs(e.xmin-s),i=Math.abs(e.xmax-s);return e.xmin<s?t>i?0:1:(h(""),1)}case 1:{const t=Math.abs(e.ymin-s),i=Math.abs(e.ymax-s);return e.ymin<s?t>i?0:1:(h(""),1)}case 2:{const t=Math.abs(e.xmin-s),i=Math.abs(e.xmax-s);return e.xmax>s?t<i?0:1:(h(""),1)}case 3:{const t=Math.abs(e.ymin-s),i=Math.abs(e.ymax-s);return e.ymax>s?t<i?0:1:(h(""),1)}}return h(""),0}resolveBoundaryOverlaps(){this.m_verticesOnExtentIndex=-1,this.splitSegments(!1,this.m_extent.xmin),this.splitSegments(!1,this.m_extent.xmax),this.splitSegments(!0,this.m_extent.ymin),this.splitSegments(!0,this.m_extent.ymax),this.m_verticesOnExtent.length=0,this.m_verticesOnExtentIndex=this.m_shape.createUserIndex();const e=new c;for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==a;t=this.m_shape.getNextPath(t)){let s=this.m_shape.getFirstVertex(t);for(let i=0,n=this.m_shape.getPathSize(t);i<n;i++,s=this.m_shape.getNextVertex(s))this.progress_(),this.m_shape.queryXY(s,e),this.m_extent.xmin!==e.x&&this.m_extent.xmax!==e.x&&this.m_extent.ymin!==e.y&&this.m_extent.ymax!==e.y||(this.m_shape.setUserIndex(s,this.m_verticesOnExtentIndex,this.m_verticesOnExtent.length),this.m_verticesOnExtent.push(s))}this.dbgCheckPathFirst(),this.resolveOverlaps(!1,this.m_extent.xmin),this.dbgCheckPathFirst(),this.resolveOverlaps(!1,this.m_extent.xmax),this.dbgCheckPathFirst(),this.resolveOverlaps(!0,this.m_extent.ymin),this.dbgCheckPathFirst(),this.resolveOverlaps(!0,this.m_extent.ymax),this.fixPaths()}densifyAlongClipExtent(e){const t=new c(0,0),s=new c(0,0),i=new Array(2048);for(let r=this.m_shape.getFirstPath(this.m_geometry);r!==a;r=this.m_shape.getNextPath(r)){const a=this.m_shape.getFirstVertex(r);let m=a;do{const r=this.m_shape.getNextVertex(m);this.m_shape.queryXY(m,t);let a=-1;if(t.x===this.m_extent.xmin?(this.m_shape.queryXY(r,s),s.x===this.m_extent.xmin&&(a=1)):t.x===this.m_extent.xmax&&(this.m_shape.queryXY(r,s),s.x===this.m_extent.xmax&&(a=1)),t.y===this.m_extent.ymin?(this.m_shape.queryXY(r,s),s.y===this.m_extent.ymin&&(a=0)):t.y===this.m_extent.ymax&&(this.m_shape.queryXY(r,s),s.y===this.m_extent.ymax&&(a=0)),-1===a){m=r;continue}if(this.isCurve(m)){m=r;continue}const o=t.clone(),x=new c(0,0);if(a){const i=t.y-this.m_extent.ymin;x.y=l(s.y-t.y),o.y=e*_(Math.floor(Math.abs(i)/e),i)+this.m_extent.ymin,x.y<0&&(o.y+=e)}else{const i=t.x-this.m_extent.xmin;x.x=l(s.x-t.x),o.x=e*_(Math.floor(Math.abs(i)/e),i)+this.m_extent.xmin,x.x<0&&(o.x+=e)}const p=a?s.y-t.y:s.x-t.x,g=Math.abs(p);if(g/e>65536&&h(""),g>0){const s=Math.trunc(g/e)+2;i.length<s&&(i.length=s);let h=0;for(let r=0;;r++){const s=o.add(x.mul(r*e)),m=(a?s.y-t.y:s.x-t.x)/p;if(m>=1)break;m<=0||(n(h<=i.length),i[h]=m,h++)}0!==h&&this.m_shape.splitSegment(m,i,h)}m=r}while(m!==a)}}splitSegments(e,t){let s=-1;const i=new c,n=[];for(let c=this.m_shape.getFirstPath(this.m_geometry);c!==a;c=this.m_shape.getNextPath(c)){let h=this.m_shape.getFirstVertex(c),r=a;for(let a=0,m=this.m_shape.getPathSize(c);a<m;a++,h=r)if(this.progress_(),r=this.m_shape.getNextVertex(h),this.m_shape.queryXY(h,i),(e?i.y===t:i.x===t)&&(this.m_shape.queryXY(r,i),e?i.y===t:i.x===t)){if(this.isCurve(h))continue;-1===s&&(s=this.m_shape.createUserIndex()),1!==this.m_shape.getUserIndex(h,s)&&(n.push(h),this.m_shape.setUserIndex(h,s,1)),1!==this.m_shape.getUserIndex(r,s)&&(n.push(r),this.m_shape.setUserIndex(r,s,1))}}if(-1!==s&&this.m_shape.removeUserIndex(s),n.length<3)return;n.sort(((e,t)=>this.compareVertices(e,t)));const h=new c,r=new c,m=new c;r.setNAN();let o=-1;let x=[],p=[];const l=this.m_shape.createUserIndex(),_=this.m_shape.createUserIndex();for(let a=0,g=n.length;a<g;a++){const s=n[a];if(this.m_shape.queryXY(s,i),!i.isEqualPoint2D(r)){if(-1===o){o=a,r.setCoordsPoint2D(i);continue}for(let i=o;i<a;i++){const s=n[i],a=this.m_shape.getNextVertex(s),m=this.m_shape.getPrevVertex(s);let o=!1;this.m_shape.queryXY(a,h),r.compare(h)<0&&(e?h.y===t:h.x===t)&&(this.isCurve(s)||(x.push(s),o=!0,this.m_shape.setUserIndex(s,_,1))),this.m_shape.queryXY(m,h),r.compare(h)<0&&(e?h.y===t:h.x===t)&&(this.isCurve(m)||(o||x.push(s),this.m_shape.setUserIndex(s,l,1)))}for(let e=0,t=x.length;e<t;e++){const t=x[e],s=this.m_shape.getUserIndex(t,l),n=this.m_shape.getUserIndex(t,_);if(1===s){const e=this.m_shape.getPrevVertex(t);this.m_shape.queryXY(e,m);let s=0;if(!m.isEqualPoint2D(i)){const n=c.distance(r,m);s=c.distance(m,i)/n,0===s?s=Number.EPSILON:1===s&&(s=1-Number.EPSILON),this.m_shape.splitSegment(e,[s],1);const h=this.m_shape.getPrevVertex(t);this.m_shape.setXY(h,i),p.push(h),this.m_shape.setUserIndex(h,l,1),this.m_shape.setUserIndex(h,_,-1)}}if(1===n){const e=this.m_shape.getNextVertex(t);this.m_shape.queryXY(e,m);let s=0;if(!m.isEqualPoint2D(i)){const e=c.distance(r,m);s=c.distance(r,i)/e,0===s?s=Number.EPSILON:1===s&&(s=1-Number.EPSILON),this.m_shape.splitSegment(t,[s],1);const n=this.m_shape.getNextVertex(t);this.m_shape.setXY(n,i),p.push(n),this.m_shape.setUserIndex(n,l,-1),this.m_shape.setUserIndex(n,_,1)}}}const s=x;x=p,p=s,p.length=0,o=a,r.setCoordsPoint2D(i)}}this.m_shape.removeUserIndex(l),this.m_shape.removeUserIndex(_)}resolveOverlaps(e,t){const s=new c,i=[];let h=-1;for(let n=0,x=this.m_verticesOnExtent.length;n<x;n++){this.progress_();const r=this.m_verticesOnExtent[n];if(r===a)continue;const m=this.m_shape.getNextVertex(r);if(this.m_shape.queryXY(r,s),(e?s.y===t:s.x===t)&&(this.m_shape.queryXY(m,s),e?s.y===t:s.x===t)){if(this.isCurve(r))continue;-1===h&&(h=this.m_shape.createUserIndex()),-2!==this.m_shape.getUserIndex(r,h)&&(i.push(r),this.m_shape.setUserIndex(r,h,-2)),-2!==this.m_shape.getUserIndex(m,h)&&(i.push(m),this.m_shape.setUserIndex(m,h,-2))}}if(0===i.length)return void(-1!==h&&this.m_shape.removeUserIndex(h));n(-1!==h),i.sort(((e,t)=>this.compareVertices(e,t)));for(let n=0,a=i.length;n<a;n++){const e=i[n];this.m_shape.setUserIndex(e,h,n)}const r=new c,m=new c;m.setNAN();let o=-1;for(let n=0,x=i.length;n<x;n++){this.progress_();const x=i[n];if(x!==a&&(this.m_shape.queryXY(x,s),!s.isEqualPoint2D(m))){if(-1!==o)for(;;){let s=!1;const x=n;for(let p=o;p<x;p++){const o=i[p];if(o===a)continue;let x=a;const c=this.m_shape.getNextVertex(o);this.m_shape.queryXY(c,r),m.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(o)||(x=c));let l=a;const _=this.m_shape.getPrevVertex(o);if(this.m_shape.queryXY(_,r),m.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(_)||(l=_)),x===a||l===a){if(x!==a||l!==a){for(let c=p+1;c<n;c++){const n=i[c];if(n===a)continue;const p=this.m_shape.getNextVertex(n);let _=a;this.m_shape.queryXY(p,r),m.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(n)||(_=p));const g=this.m_shape.getPrevVertex(n);let u=a;if(this.m_shape.queryXY(g,r),m.compare(r)<0&&(e?r.y===t:r.x===t)&&(this.isCurve(g)||(u=g)),_!==a&&u!==a){this.beforeRemoveVertex(n,i,h),this.m_shape.removeVertex(n,!1),this.beforeRemoveVertex(_,i,h),this.m_shape.removeVertex(_,!1),s=!0;break}if(x!==a&&u!==a){this.removeOverlap(i,o,x,n,u,h),s=!0;break}if(l!==a&&_!==a){this.removeOverlap(i,n,_,o,l,h),s=!0;break}}if(s)break}}else this.beforeRemoveVertex(o,i,h),this.m_shape.removeVertex(o,!1),this.beforeRemoveVertex(x,i,h),this.m_shape.removeVertex(x,!1),s=!0}if(!s)break}o=n,m.setCoordsPoint2D(s)}}this.m_shape.removeUserIndex(h)}beforeRemoveVertex(e,t,s){let i=this.m_shape.getUserIndex(e,s);n(i>=0),t[i]=a,i=this.m_shape.getUserIndex(e,this.m_verticesOnExtentIndex),n(i>=0),this.m_verticesOnExtent[i]=a;const h=this.m_shape.getPathFromVertex(e);if(h!==a){this.m_shape.getFirstVertex(h)===e&&(this.m_shape.setFirstVertex(h,a),this.m_shape.setLastVertex(h,a))}}removeOverlap(e,t,s,i,n,h){this.m_shape.setNextVertex(t,i),this.m_shape.setPrevVertex(i,t),this.m_shape.setPrevVertex(s,n),this.m_shape.setNextVertex(n,s),this.beforeRemoveVertex(i,e,h),this.m_shape.removeVertexInternal(i,!1),this.beforeRemoveVertex(n,e,h),this.m_shape.removeVertexInternal(n,!0)}removeSpikesAlongPoles(){this.removeSpikesOnPole(this.m_extent.ymin),this.removeSpikesOnPole(this.m_extent.ymax)}removeSpikesOnPole(e){for(let t=this.m_shape.getFirstPath(this.m_geometry);t!==a;t=this.m_shape.getNextPath(t)){const s=this.m_shape.getPathSize(t);if(s<3)continue;let i=this.m_shape.getFirstVertex(t);const n=new c;this.m_shape.queryXY(i,n);let h=n.y===e&&!this.isCurve(i);i=this.m_shape.getNextVertex(i);const r=new c;this.m_shape.queryXY(i,r);let a=r.y===e&&!this.isCurve(i);i=this.m_shape.getNextVertex(i);const m=new c;for(let t=0,o=s-2;t<o;t++,i=this.m_shape.getNextVertex(i)){this.progress_(),this.m_shape.queryXY(i,m);const t=m.y===e;if(a&&h&&t){if((r.x-n.x)*(m.x-r.x)<=0){this.m_shape.removeVertex(this.m_shape.getPrevVertex(i),!1),r.setCoordsPoint2D(m),a=t&&!this.isCurve(i);continue}}n.setCoordsPoint2D(r),h=a,r.setCoordsPoint2D(m),a=t&&!this.isCurve(i)}}}fixPaths(){for(let n=0,h=this.m_verticesOnExtent.length;n<h;n++){const e=this.m_verticesOnExtent[n];e!==a&&this.m_shape.setPathToVertex(e,a)}const e=this.m_shape.hasCurves();let t=0,s=0;for(let n=this.m_shape.getFirstPath(this.m_geometry);n!==a;){const e=this.m_shape.getFirstVertex(n);if(e===a||n!==this.m_shape.getPathFromVertex(e)){const e=n;n=this.m_shape.getNextPath(n),this.m_shape.setFirstVertex(e,a),this.m_shape.removePathOnly(e);continue}let i=e,h=0;do{this.m_shape.setPathToVertex(i,n),h++,i=this.m_shape.getNextVertex(i)}while(i!==e);this.m_shape.setRingAreaValid(n,!1),this.m_shape.setLastVertex(n,this.m_shape.getPrevVertex(e)),this.m_shape.setPathSize(n,h),s+=h,t++,n=this.m_shape.getNextPath(n)}for(let h=0,r=this.m_verticesOnExtent.length;h<r;h++){let i=this.m_verticesOnExtent[h];if(i===a)continue;let r=this.m_shape.getPathFromVertex(i);if(r!==a)continue;r=this.m_shape.insertPath(this.m_geometry,a);let m=!1,o=0;const x=i;do{this.m_shape.setPathToVertex(i,r),o++,e&&o<=2&&(m||=this.isCurve(i)),i=this.m_shape.getNextVertex(i)}while(i!==x);if(m?0===o:o<=2){let e=this.m_shape.getUserIndex(x,this.m_verticesOnExtentIndex);n(e>=0),this.m_verticesOnExtent[e]=a;const t=this.m_shape.removeVertex(x,!1);2===o&&(e=this.m_shape.getUserIndex(t,this.m_verticesOnExtentIndex),e>=0&&(this.m_verticesOnExtent[e]=a),this.m_shape.removeVertex(t,!1));const s=r;r=this.m_shape.getNextPath(r),this.m_shape.setFirstVertex(s,a),this.m_shape.removePathOnly(s)}else this.m_shape.setClosedPath(r,!0),this.m_shape.setPathSize(r,o),this.m_shape.setFirstVertex(r,x),this.m_shape.setLastVertex(r,this.m_shape.getPrevVertex(x)),this.m_shape.setRingAreaValid(r,!1),s+=o,t++}this.m_shape.setGeometryPathCount(this.m_geometry,t),this.m_shape.setGeometryVertexCount(this.m_geometry,s);let i=0;for(let n=this.m_shape.getFirstGeometry();n!==a;n=this.m_shape.getNextGeometry(n))i+=this.m_shape.getPointCount(n);this.m_shape.setTotalPointCount(i)}dbgCheckPathFirst(){}isCurve(e){return null!==this.m_shape.getSegment(e)}compareVertices(e,t){const s=new c;this.m_shape.queryXY(e,s);const i=new c;this.m_shape.queryXY(t,i);return s.compare(i)}clipPolesOut(e,t){return this.clipPolygonOrProjectedPolyline2(e,t)}}export{u as a,y as b,g as c};
@@ -1,5 +0,0 @@
1
- /*
2
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
- See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
- */
5
- import{w as e,S as t,P as s,T as n,A as i,f as r,n as h,C as a,a as o,r as m}from"./Envelope.js";import{G as l,r as g,g as u,f as c,c as _,h as d,b as p,x as f,j as S,v as x,t as C}from"./Geometry.js";import{m as E,f as I,P as w,E as b,C as N,w as P,b as v,i as y,q as k,D as V,p as T,M as B,F as q,t as F,a as X,K as Y,n as D,s as A,v as R,G as M,o as O,H as L,l as z,I as H,J as W,c as G,L as U}from"./Point2D.js";import{S as Q,n as j,E as Z,A as J,B as K,F as $,Q as ee,p as te,H as se,I as ne,J as ie,L as re,i as he,K as ae,V as oe,N as me,O as le,R as ge,T as ue,U as ce,a as _e,W as de,X as pe,Y as fe,Z as Se,_ as xe}from"./QuadraticBezier.js";import{Envelope2D as Ce}from"./Envelope2D.js";import{b as Ee,c as Ie}from"./tslib.es6.js";import{T as we}from"./Transformation2D.js";class be{assign(e){this.m_reason=e.m_reason,this.m_vertexIndex1=e.m_vertexIndex1,this.m_vertexIndex2=e.m_vertexIndex2}constructor(e,t,s){void 0!==e?(this.m_reason=e,this.m_vertexIndex1=t,this.m_vertexIndex2=s):(this.m_reason=0,this.m_vertexIndex1=-1,this.m_vertexIndex2=-2)}clear(){this.m_reason=0,this.m_vertexIndex1=-1,this.m_vertexIndex2=-1}}class Ne{constructor(e,t){this.m_monotoneParts=E(Q,16),this.m_xOrds=I(16,Number.NaN),this.m_inputPoint=w.getNAN(),this.m_miny=0,this.m_maxy=0,this.m_windnum=0,this.m_bAlternate=e,this.m_tolerance=t,this.m_toleranceSqr=t*t,this.m_bTestBorder=!!t,this.m_bBreak=!1}_DoOne(e){if(!this.m_bTestBorder&&(this.m_bAlternate&&this.m_inputPoint.equals(e.getStartXY())||this.m_inputPoint.equals(e.getEndXY())))return void(this.m_bBreak=!0);if(e.getStartY()===this.m_inputPoint.y&&e.getStartY()===e.getEndY()){if(this.m_bAlternate&&!this.m_bTestBorder){const t=Math.min(e.getStartX(),e.getEndX()),s=Math.max(e.getStartX(),e.getEndX());this.m_inputPoint.x>t&&this.m_inputPoint.x<s&&(this.m_bBreak=!0)}return}let t=!1;const s=Math.max(e.getStartX(),e.getEndX());if(this.m_inputPoint.x>s)t=!0;else if(this.m_inputPoint.x>=Math.min(e.getStartX(),e.getEndX())){const n=e.intersectionOfYMonotonicWithAxisX(this.m_inputPoint.y,s);t=!Number.isNaN(n)&&n<=this.m_inputPoint.x}if(t){if(this.m_inputPoint.y===e.getStartY()){if(this.m_inputPoint.y<e.getEndY())return}else if(this.m_inputPoint.y===e.getEndY()&&this.m_inputPoint.y<e.getStartY())return;this.m_bAlternate?this.m_windnum^=1:this.m_windnum+=e.getStartY()>e.getEndY()?1:-1}}_Result(){return!!this.m_windnum}testBorder(e){const t=e.getClosestCoordinate(this.m_inputPoint,!1),s=e.getCoord2D(t);return w.sqrDistance(s,this.m_inputPoint)<=this.m_toleranceSqr}setInputPoint(e){this.m_inputPoint.setCoordsPoint2D(e),this.m_miny=e.y-this.m_tolerance,this.m_maxy=e.y+this.m_tolerance}processSegment(e){const t=e.queryInterval(0,1);if(t.vmin>this.m_maxy||t.vmax<this.m_miny)return!1;if(this.m_bTestBorder&&this.testBorder(e))return!0;if(t.vmin>this.m_inputPoint.y||t.vmax<this.m_inputPoint.y)return!1;let s=0;if(e.isCurve()&&(0===this.m_monotoneParts.length&&(this.m_monotoneParts.length=128),s=e.getMonotonicParts(this.m_monotoneParts,!0),u(this.m_monotoneParts.length>=s)),s>0)for(let n=0;n<s;n++){const e=this.m_monotoneParts[n].get(),t=b.construct(e.getStartY(),e.getEndY());if(!(t.vmin>this.m_inputPoint.y||t.vmax<this.m_inputPoint.y)&&(this._DoOne(e),this.m_bBreak))return!0}else if(this._DoOne(e),this.m_bBreak)return!0;return!1}result(){return u(0),2}}function Pe(e,t,s,n){const i=new Ce;e.queryLooseEnvelope(i),i.inflateCoords(n,n);const r=0===e.getFillRule(),h=new Ne(r,n);h.setInputPoint(s);const a=i.clone();a.xmax=s.x+n,a.ymin=s.y-n,a.ymax=s.y+n;const o=e.getImpl().querySegmentIterator(),m=t.getIterator(a,n);for(let l=m.next();-1!==l;l=m.next())if(o.resetToVertex(t.getElement(l),-1),o.hasNextSegment()){const e=o.nextSegment();if(h.processSegment(e))return-1}return h._Result()?1:0}function ve(e,t,s){const n=0===e.getFillRule(),i=new Ne(n,s);i.setInputPoint(t);const r=e.getImpl().querySegmentIterator();for(;r.nextPath();)for(;r.hasNextSegment();){const e=r.nextSegment();if(i.processSegment(e))return-1}return i._Result()?1:0}function ye(e,t,s){return t.isEmpty()?0:ke(e,t.getXY(),s)}function ke(e,t,s){if(e.isEmpty())return 0;const n=Ce.constructEmpty();if(e.queryLooseEnvelope(n),n.inflateCoords(s,s),!n.contains(t))return 0;const i=e.getImpl().getAccelerators();if(i){i.getRasterizedGeometry()&&u(0);const n=i.getQuadTree();if(n)return Pe(e,n,t,s)}return ve(e,t,s)}function Ve(e,t){const s=e.getPointCount();if(s<16)return!1;const n=1;return 2*s+1*(Math.log(s)/Math.log(2))*t<n*s*t}function Te(e,t,s){const n=ye(e,t,s);return n?1===n?1:2:0}function Be(e,t,s){const n=ke(e,t,s);return n?1===n?1:2:0}function qe(e,t,s,n,i){for(let r=0;r<s;r++)i[r]=Be(e,t[r],n)}function Fe(e,t,s,n,i){if(e.getGeometryType()===l.enumPolygon)qe(e,t,s,n,i);else if(e.getGeometryType()===l.enumEnvelope){const r=Ce.constructEmpty();e.queryEnvelope(r),Ye(r,t,s,n,i)}else g("")}function Xe(e,t,s,n,i){const r=e.getGeometryType();r===l.enumPolyline?Me(e,t,s,n,i):c(r)?Re():g("")}function Ye(e,t,s,n,i){if(e.isEmpty()){for(let e=0;e<s;e++)i[e]=0;return}const r=e.clone();r.inflateCoords(.5*-n,.5*-n);const h=e.clone();h.inflateCoords(.5*n,.5*n);for(let a=0;a<s;a++)r.contains(t[a])?i[a]=1:h.contains(t[a])?i[a]=2:i[a]=0}function De(e){if(e.isEmpty())return 0;switch(e.getGeometryType()){case l.enumMultiPoint:return e.getImpl().getPointCount();case l.enumPolyline:return e.getImpl().getPathCount();case l.enumPolygon:return e.getImpl().getOGCPolygonCount();case l.enumGeometryCollection:return e.getGeometryCount()}return 1}function Ae(e,t,s){if(s.reset(),t<3)return;const n=e[0].clone(),i=n.x,r=n.y,h=e[1].clone(),a=new w;for(let o=2;o<t;o++)a.assign(e[o]),s.pe((a.x-n.x)*(h.y-r)),n.assign(h),h.assign(a);s.pe((i-n.x)*(h.y-r))}function Re(e,t,s,n,i){u(0)}function Me(t,s,n,i,r){const h=t.getImpl(),a=h.getAccelerators();let o=null;a&&(o=a.getRasterizedGeometry());let m=n;for(let e=0;e<n;e++)r[e]=1,o&&u(0);if(m){if(a){let t=null;null!==a&&null!==a.getQuadTree()&&(t=a.getQuadTree());const o=h.getPointCount();if(null===t&&o>20&&o*n>4*o+Math.log(o)*n&&(t=e(h)),t){let e=null;const a=h.querySegmentIterator(),o=new Ce;for(let h=0;h<n&&m;h++)if(1===r[h]){o.setCoords(s[h]),null===e?e=t.getIterator(o,i):e.resetIterator(o,i);let n=-1;for(let o=e.next();-1!==o;o=e.next()){a.resetToVertex(t.getElement(o),n),n=a.getPathIndex();if(a.nextSegment().isIntersectingPoint(s[h],i)){r[h]=2,m--;break}r[h]=0}}return}}const t=h.querySegmentIterator();for(;t.nextPath()&&m;)for(;t.hasNextSegment()&&m;){const e=t.nextSegment();for(let t=0;t<n&&m;t++)1===r[t]&&e.isIntersectingPoint(s[t],i)&&(r[t]=2,m--)}}for(let e=0;e<n;e++)1===r[e]&&(r[e]=0)}class Oe{freeNode_(e){this.m_listNodes.deleteElement(e)}newNode_(){return this.m_listNodes.newElement()}freeList_(e){this.m_lists.deleteElement(e)}newList_(){return this.m_lists.newElement()}Init_(e){u(0)}constructor(e){this.m_listNodes=new t(2),this.m_listOfLists=Oe.st_nullNode(),this.m_bAllowNavigationBetweenLists=!0,void 0===e&&(e=!0),this.m_bAllowNavigationBetweenLists=e,this.m_lists=new t(this.m_bAllowNavigationBetweenLists?4:2)}createList(){const e=this.newList_();return this.m_bAllowNavigationBetweenLists&&(this.m_lists.setField(e,3,this.m_listOfLists),this.m_listOfLists!==Oe.st_nullNode()&&this.m_lists.setField(this.m_listOfLists,2,e),this.m_listOfLists=e),e}deleteList(e){let t=this.getFirst(e);for(;t!==Oe.st_nullNode();){const e=t;t=this.getNext(t),this.freeNode_(e)}if(this.m_bAllowNavigationBetweenLists){const t=this.m_lists.getField(e,2),s=this.m_lists.getField(e,3);t!==Oe.st_nullNode()?this.m_lists.setField(t,3,s):this.m_listOfLists=s,s!==Oe.st_nullNode()&&this.m_lists.setField(s,2,t)}this.freeList_(e)}reserveLists(e){this.m_lists.setCapacity(e)}addElement(e,t){this.m_lists.getField(e,0);const s=this.m_lists.getField(e,1),n=this.newNode_();return s!==Oe.st_nullNode()?(this.m_listNodes.setField(s,1,n),this.m_lists.setField(e,1,n)):(this.m_lists.setField(e,0,n),this.m_lists.setField(e,1,n)),this.m_listNodes.setField(n,0,t),n}reserveNodes(e){this.m_listNodes.setCapacity(e)}deleteElementDirect(e,t,s){t!==Oe.st_nullNode()?(this.m_listNodes.setField(t,1,this.m_listNodes.getField(s,1)),this.m_lists.getField(e,1)===s&&this.m_lists.setField(e,1,t)):(this.m_lists.setField(e,0,this.m_listNodes.getField(s,1)),this.m_lists.getField(e,1)===s&&this.m_lists.setField(e,1,Oe.st_nullNode())),this.freeNode_(s)}deleteElementSearch(e,t){let s=-1,n=this.getFirst(e);for(;n!==t;)s=n,n=this.getNext(n);this.deleteElementDirect(e,s,t)}concatenateLists(e,t){const s=this.m_lists.getField(e,1),n=this.m_lists.getField(t,0);if(n!==Oe.st_nullNode()&&(s!==Oe.st_nullNode()?(this.m_listNodes.setField(s,1,n),this.m_lists.setField(e,1,this.m_lists.getField(t,1))):(this.m_lists.setField(e,0,n),this.m_lists.setField(e,1,this.m_lists.getField(t,1)))),this.m_bAllowNavigationBetweenLists){const e=this.m_lists.getField(t,2),s=this.m_lists.getField(t,3);e!==Oe.st_nullNode()?this.m_lists.setField(e,3,s):this.m_listOfLists=s,s!==Oe.st_nullNode()&&this.m_lists.setField(s,2,e)}return this.freeList_(t),e}getElement(e){return this.m_listNodes.getField(e,0)}getData(e){return this.getElement(e)}setElement(e,t){u(0)}getNext(e){return this.m_listNodes.getField(e,1)}getFirst(e){return this.m_lists.getField(e,0)}getFirstElement(e){const t=this.getFirst(e);return this.getElement(t)}static st_nullNode(){return-1}clear(){this.m_listNodes.deleteAll(!0),this.m_lists.deleteAll(!0),this.m_listOfLists=Oe.st_nullNode()}isEmpty(e){return u(0),!1}getNodeCount(){return this.m_listNodes.size()}getListCount(){return this.m_lists.size()}getFirstList(){return this.m_listOfLists}getNextList(e){return this.m_lists.getField(e,3)}}function Le(e=-1){return{m_value:e,m_line:new re,m_segment:null,m_segmentInfo:new xe(-1),m_env:new b(0,0),m_dxdy:55555555,m_bHorizontal:!1,m_bCurve:!1}}const ze=67;class He extends m{constructor(e,t,s){super(!0),this.m_bIntersectionDetected=!1,this.m_nonSimpleResult=new be,this.m_tempSimpleEdge1=Le(),this.m_tempSimpleEdge2=Le(),this.m_prev1=j,this.m_prev2=j,this.m_vertex1=j,this.m_vertex2=j,this.m_currentNode=-1,this.m_prevX1=Number.NaN,this.m_prevX2=Number.NaN,this.m_prevY=Number.NaN,this.m_prevX=0,this.m_sweepY=Number.NaN,this.m_sweepX=0,this.m_ptSweep=new w,this.m_simpleEdgesCache=[],this.m_simpleEdgesRecycle=[],this.m_cOutstandingConstructedEdges=0,this.m_shape=e,this.m_bShapeHasSegments=this.m_shape.hasCurves(),this.m_tolerance=t,this.m_tolerance10=10*t,this.m_bIsSimple=s;const n=Math.trunc(Math.min(3*e.getTotalPointCount()/2,ze)),i=Math.min(7,n);this.m_simpleEdgesCache.length=i}tryGetCachedEdge_(e){const t=this.m_simpleEdgesCache[(e&D())%this.m_simpleEdgesCache.length];return t&&t.m_value===e?t:null}tryDeleteCachedEdge_(e){const t=(e&D())%this.m_simpleEdgesCache.length,s=this.m_simpleEdgesCache[t];s&&s.m_value===e&&(this.m_simpleEdgesRecycle.push(s),this.m_simpleEdgesCache[t]=null)}tryCreateCachedEdge_(e){const t=(e&D())%this.m_simpleEdgesCache.length;let s=this.m_simpleEdgesCache[t];return s?null:(0===this.m_simpleEdgesRecycle.length?(s=Le(),this.m_cOutstandingConstructedEdges++):s=this.m_simpleEdgesRecycle.pop(),s.m_value=e,this.m_simpleEdgesCache[t]=s,s)}initSimpleEdge_(e,t){this.m_bShapeHasSegments&&this.initSimpleEdgeHelper_(e,t)||e.m_bCurve||(this.m_shape.queryLineConnector(t,e.m_line,!0),e.m_segment=e.m_line,e.m_env.setCoordsNoNAN(e.m_line.getStartX(),e.m_line.getEndX()),e.m_env.vmax+=this.m_tolerance,e.m_line.orientBottomUp(),e.m_bHorizontal=e.m_line.getEndY()===e.m_line.getStartY(),e.m_bHorizontal||(e.m_dxdy=(e.m_line.getEndX()-e.m_line.getStartX())/(e.m_line.getEndY()-e.m_line.getStartY())))}initSimpleEdgeHelper_(e,t){if(e.m_segment=this.m_shape.getSegment(t),e.m_segmentInfo=this.m_shape.getOriginalSegmentInfo(t),e.m_bCurve=null!==e.m_segment,e.m_bCurve){const t=e.m_segment.clone();return t.orientBottomUp(),e.m_segment=t,e.m_env=e.m_segment.queryInterval(0,0),e.m_env.vmax+=this.m_tolerance,!0}return!1}compareTwoSegments_(e,t){const s=e.getStartXY(),n=e.getEndXY(),i=t.getStartXY(),r=t.getEndXY();if(this.m_ptSweep.setCoords(this.m_sweepX,this.m_sweepY),s.isEqualPoint2D(i)&&this.m_sweepY===s.y){this.m_ptSweep.assign(n.compare(r)<0?n:r);const s=e.intersectionOfYMonotonicWithAxisX(this.m_ptSweep.y,this.m_ptSweep.x),i=t.intersectionOfYMonotonicWithAxisX(this.m_ptSweep.y,this.m_ptSweep.x);if(Math.abs(s-i)>this.m_tolerance)return s<i?-1:1}const h=s.compare(i)<0?i:s,a=n.compare(r)<0?n:r;let o=0,m=0;for(let l=1;l<5;l++){V(h,a,l/5,this.m_ptSweep);const s=e.intersectionOfYMonotonicWithAxisX(this.m_ptSweep.y,this.m_ptSweep.x),n=t.intersectionOfYMonotonicWithAxisX(this.m_ptSweep.y,this.m_ptSweep.x),i=Math.abs(s-n);i>o&&(o=i,m=s<n?-1:1)}return 0===m?this.errorCracking():m}compareNonHorizontal_(e,t){if(e.m_line.getStartY()===t.m_line.getStartY()&&e.m_line.getStartX()===t.m_line.getStartX())return e.m_line.getEndY()===t.m_line.getEndY()&&e.m_line.getEndX()===t.m_line.getEndX()?this.m_bIsSimple?this.errorCoincident():0:this.compareNonHorizontalUpperEnd_(e,t);if(e.m_line.getEndY()===t.m_line.getEndY()&&e.m_line.getEndX()===t.m_line.getEndX())return this.compareNonHorizontalLowerEnd_(e,t);const s=this.compareNonHorizontalLowerEnd_(e,t),n=this.compareNonHorizontalUpperEnd_(e,t);return s<0&&n<0?-1:s>0&&n>0?1:this.errorCracking()}compareHorizontal1Case1_(e,t){if(e.getEndX()>t.getEndX()){if(t.getEndX()>t.getStartX()&&t.getEndY()-t.getStartY()<2*this.m_tolerance&&e.isIntersectingPoint(t.getEndXY(),this.m_tolerance,!0))return this.errorCracking()}else{if((t.getEndY()-t.getStartY())/(t.getEndX()-t.getStartX())*(e.getEndX()-e.getStartX())<this.m_tolerance10&&t.isIntersectingPoint(e.getEndXY(),this.m_tolerance,!0))return this.errorCracking()}return 1}compareHorizontal1Case2_(e,t){if(e.getStartX()<t.getStartX()){if(t.getEndX()>t.getStartX()&&t.getEndY()-t.getStartY()<2*this.m_tolerance&&e.isIntersectingPoint(t.getEndXY(),this.m_tolerance,!0))return this.errorCracking()}else{if((t.getEndY()-t.getStartY())/(t.getEndX()-t.getStartX())*(e.getStartX()-e.getEndX())<this.m_tolerance10&&t.isIntersectingPoint(e.getStartXY(),this.m_tolerance,!0))return this.errorCracking()}return-1}compareHorizontal1Case3_(e,t){const s=w.getNAN();s.setSub(t.getEndXY(),t.getStartXY()),s.rightPerpendicularThis(),s.normalize();const n=w.getNAN();n.setSub(e.getStartXY(),t.getStartXY());const i=w.getNAN();i.setSub(e.getEndXY(),t.getStartXY());const r=n.dotProduct(s),h=i.dotProduct(s),a=Math.abs(r),o=Math.abs(h);if(a<o){if(a<this.m_tolerance10&&t.isIntersectingPoint(e.getStartXY(),this.m_tolerance,!0))return this.errorCracking()}else if(o<this.m_tolerance10&&t.isIntersectingPoint(e.getEndXY(),this.m_tolerance,!0))return this.errorCracking();return r<0&&h<0?-1:r>0&&h>0?1:this.errorCracking()}compareHorizontal1_(e,t){return e.getStartY()===t.getStartY()&&e.getStartX()===t.getStartX()?this.compareHorizontal1Case1_(e,t):e.getEndY()===t.getEndY()&&e.getEndX()===t.getEndX()?this.compareHorizontal1Case2_(e,t):this.compareHorizontal1Case3_(e,t)}compareHorizontal2_(e,t){return e.getEndY()===t.getEndY()&&e.getEndX()===t.getEndX()&&e.getStartY()===t.getStartY()&&e.getStartX()===t.getStartX()?this.m_bIsSimple?this.errorCoincident():0:this.errorCracking()}compareNonHorizontalLowerEnd_(e,t){let s=1;if(e.m_line.getStartY()<t.m_line.getStartY()){s=-1;const n=e;e=t,t=n}const n=e.m_line,i=t.m_line,r=n.getStartX()-i.getStartX(),h=t.m_dxdy*(n.getStartY()-i.getStartY()),a=this.m_tolerance10;return r<h-a?-s:r>h+a?s:i.isIntersectingPoint(n.getStartXY(),this.m_tolerance,!0)?this.errorCracking():r<h?-s:s}compareNonHorizontalUpperEnd_(e,t){let s=1;if(t.m_line.getEndY()<e.m_line.getEndY()){s=-1;const n=e;e=t,t=n}const n=e.m_line,i=t.m_line,r=n.getEndX()-i.getStartX(),h=t.m_dxdy*(n.getEndY()-i.getStartY()),a=this.m_tolerance10;return r<h-a?-s:r>h+a?s:i.isIntersectingPoint(n.getEndXY(),this.m_tolerance,!0)?this.errorCracking():r<h?-s:s}errorCoincident(){this.m_bIntersectionDetected=!0;const e=7;return this.m_nonSimpleResult=new be(e,this.m_vertex1,this.m_vertex2),-1}errorCracking(){if(this.m_bIntersectionDetected=!0,this.m_bIsSimple){const e=6;this.m_nonSimpleResult=new be(e,this.m_vertex1,this.m_vertex2)}else this.m_prev1=j,this.m_prev2=j,this.m_vertex1=j,this.m_vertex2=j;return-1}compareSegments_(e,t,s,n){if(s.m_env.vmax<n.m_env.vmin)return-1;if(n.m_env.vmax<s.m_env.vmin)return 1;if(!s.m_bCurve&&!n.m_bCurve){let e=s.m_bHorizontal?1:0;return e|=n.m_bHorizontal?2:0,0===e?this.compareNonHorizontal_(s,n):1===e?this.compareHorizontal1_(s.m_line,n.m_line):2===e?-1*this.compareHorizontal1_(n.m_line,s.m_line):this.compareHorizontal2_(s.m_line,n.m_line)}if(this.m_bIntersectionDetected)return-1;const i=this.m_prevY===this.m_sweepY&&this.m_prevX===this.m_sweepX;let r,h;if(i&&e===this.m_prev1?r=this.m_prevX1:(r=Number.NaN,this.m_prev1=j),i&&t===this.m_prev2?h=this.m_prevX2:(h=Number.NaN,this.m_prev2=j),this.m_prevY=this.m_sweepY,this.m_prevX=this.m_sweepX,Number.isNaN(r)){this.m_prev1=e;const t=s.m_segment.intersectionOfYMonotonicWithAxisX(this.m_sweepY,this.m_sweepX);r=t,this.m_prevX1=t}if(Number.isNaN(h)){this.m_prev2=t;const e=n.m_segment.intersectionOfYMonotonicWithAxisX(this.m_sweepY,this.m_sweepX);h=e,this.m_prevX2=e}const a=me(!0,!0,s.m_segment,n.m_segment,this.m_tolerance,!0);return 0!==a?2===a?this.m_bIsSimple?this.errorCoincident():s.m_segmentInfo.equals(n.m_segmentInfo)?0:this.errorCracking():this.errorCracking():Math.abs(r-h)<=this.m_tolerance?this.compareTwoSegments_(s.m_segment,n.m_segment):r<h?-1:r>h?1:0}clearIntersectionDetectedFlag(){this.m_bIntersectionDetected=!1}intersectionDetected(){return this.m_bIntersectionDetected}getLastComparedNode(){return this.m_currentNode}getResult(){return this.m_nonSimpleResult}setSweepY(e,t){this.m_sweepY=e,this.m_sweepX=t,this.m_prev1=j,this.m_prev2=j,this.m_vertex1=j,this.m_vertex2=j}compare(e,t,s){if(this.m_bIntersectionDetected)return-1;const n=e.getElement(s),i=t;return this.m_currentNode=s,this.compareSegments(i,i,n,n)}compareSegments(e,t,s,n){let i=this.tryGetCachedEdge_(e);null===i?this.m_vertex1===t?i=this.m_tempSimpleEdge1:(this.m_vertex1=t,i=this.tryCreateCachedEdge_(e),null===i&&(i=this.m_tempSimpleEdge1,this.m_tempSimpleEdge1.m_value=e),this.initSimpleEdge_(i,t)):this.m_vertex1=t;let r=this.tryGetCachedEdge_(s);return null===r?this.m_vertex2===n?r=this.m_tempSimpleEdge2:(this.m_vertex2=n,r=this.tryCreateCachedEdge_(s),null===r&&(r=this.m_tempSimpleEdge2,this.m_tempSimpleEdge2.m_value=s),this.initSimpleEdge_(r,n)):this.m_vertex2=n,this.compareSegments_(t,n,i,r)}onDelete(e){this.tryDeleteCachedEdge_(e)}onSet(e){this.tryDeleteCachedEdge_(e)}onEndSearch(e){this.tryDeleteCachedEdge_(e)}onAddUniqueElementFailed(e){this.tryDeleteCachedEdge_(e)}}class We{constructor(e,t){this.m_bIntersectionDetected=!1,this.m_pointOfInterest=w.getNAN(),this.m_line1=new re,this.m_seg1=null,this.m_env=b.constructEmpty(),this.m_vertex1=-1,this.m_currentNode=-1,this.m_minDist=Number.MAX_VALUE,this.m_shape=e,this.m_tolerance=t}getCurrentNode(){return this.m_currentNode}clearIntersectionDetectedFlag(){this.m_bIntersectionDetected=!1,this.m_minDist=Number.MAX_VALUE}intersectionDetected(){return this.m_bIntersectionDetected}setPoint(e){this.m_pointOfInterest.assign(e)}compare(e,t){const s=e.getElement(t);return this.compareVertex(e,t,s)}compareVertex(e,t,s){let n,i=this.m_shape.getSegment(s),r=!0;if(null==i)this.m_shape.queryLineConnector(s,this.m_line1,!0),this.m_env.setCoordsNoNAN(this.m_line1.getStartX(),this.m_line1.getEndX()),i=this.m_line1,n=this.m_line1.getStartY()===this.m_line1.getEndY();else{const e=Ce.constructEmpty();i.queryLooseEnvelope(e),e.queryIntervalX(this.m_env),n=0===e.height(),r=!1}if(this.m_pointOfInterest.x+this.m_tolerance<this.m_env.vmin)return-1;if(this.m_pointOfInterest.x-this.m_tolerance>this.m_env.vmax)return 1;if(n)return this.m_currentNode=t,this.m_bIntersectionDetected=!0,0;let h=0;if(r){de(this.m_line1);const e=this.m_line1.getStartXY(),t=new w;t.setSub(this.m_line1.getEndXY(),e),t.rightPerpendicularThis();const s=new w;s.setSub(this.m_pointOfInterest,e),h=t.dotProduct(s),h/=t.length()}else{h=i.intersectionOfYMonotonicWithAxisX(this.m_pointOfInterest.y,this.m_pointOfInterest.x)-this.m_pointOfInterest.x}if(h<10*-this.m_tolerance)return-1;if(h>10*this.m_tolerance)return 1;if(i.isIntersectingPoint(this.m_pointOfInterest,this.m_tolerance)){Math.abs(h)<this.m_minDist&&(this.m_currentNode=t,this.m_minDist=h),this.m_bIntersectionDetected=!0}return h<0?-1:h>0?1:0}}class Ge{constructor(e,t){this.m_lists=new Oe(!1),this.m_hash=t,this.m_hashBuckets=new Int32Array(e),this.m_hashBuckets.fill(Ge.st_nullNode()),this.m_bitFilter=new Int32Array(10*e+31>>5)}reserveElements(e){this.m_lists.reserveLists(Math.min(this.m_hashBuckets.length,e)),this.m_lists.reserveNodes(e)}addElement(e,t){void 0===t&&(t=this.m_hash.getHash(e));const s=t%(this.m_bitFilter.length<<5);this.m_bitFilter[s>>5]|=1<<(31&s);const n=t%this.m_hashBuckets.length;let i=this.m_hashBuckets[n];i===Oe.st_nullNode()&&(i=this.m_lists.createList(),this.m_hashBuckets[n]=i);return this.m_lists.addElement(i,e)}deleteElement(e,t){void 0===t&&(t=this.m_hash.getHash(e));const s=t%this.m_hashBuckets.length,n=this.m_hashBuckets[s];n===Oe.st_nullNode()&&C("");let i=this.m_lists.getFirst(n),r=Oe.st_nullNode();for(;i!==Oe.st_nullNode();){const t=this.m_lists.getData(i),h=this.m_lists.getNext(i);t===e?(this.m_lists.deleteElementDirect(n,r,i),this.m_lists.getFirst(n)===Oe.st_nullNode()&&(this.m_lists.deleteList(n),this.m_hashBuckets[s]=Oe.st_nullNode())):r=i,i=h}}getFirstInBucket(e){const t=e%(this.m_bitFilter.length<<5);if(!(this.m_bitFilter[t>>5]&1<<(31&t)))return Oe.st_nullNode();const s=e%this.m_hashBuckets.length,n=this.m_hashBuckets[s];return n===Oe.st_nullNode()?Oe.st_nullNode():this.m_lists.getFirst(n)}getNextInBucket(e){return this.m_lists.getNext(e)}findNode(e){const t=this.m_hash.getHash(e);let s=this.getFirstInBucket(t);for(;s!==Oe.st_nullNode();){const t=this.m_lists.getData(s);if(this.m_hash.equal(t,e))return s;s=this.m_lists.getNext(s)}return Oe.st_nullNode()}deleteNode(e){const t=this.getElement(e),s=this.m_hash.getHash(t)%this.m_hashBuckets.length,n=this.m_hashBuckets[s];n===Oe.st_nullNode()&&C(""),this.m_lists.deleteElementSearch(n,e),this.m_lists.getFirst(n)===Oe.st_nullNode()&&(this.m_lists.deleteList(n),this.m_hashBuckets[s]=Oe.st_nullNode())}getElement(e){return this.m_lists.getData(e)}static st_nullNode(){return Oe.st_nullNode()}clear(){u(0)}size(){return this.m_lists.getNodeCount()}dbgPrintBucketHistogram(){}}function Ue(e,t,s,n,i){const r=new tt(i);return r.m_shape=e,r.m_sqrTolerance=t*t,r.m_cellSize=2*t,r.m_invCellSize=1/r.m_cellSize,r.m_geometry=s,r.m_bTrackChanges=n,r.m_bHasSegmentParentage=e.hasSegmentParentage(),r.clusterNonReciprocal()}function Qe(e,t,s,n,i){const r=e-s,h=t-n;return r*r+h*h<=i}function je(){return{pt:new w,weight:0,rank:0,bMerged:!1}}function Ze(e,t,s,n,i,r){const h=je(),a=s+i;let o=!1,m=e.x;e.x!==t.x&&(n===r&&(m=(e.x*s+t.x*i)/a),o=!0);let l=e.y;return e.y!==t.y&&(n===r&&(l=(e.y*s+t.y*i)/a),o=!0),n!==r?n>r?(h.rank=n,h.weight=s,h.pt=e):(h.rank=r,h.weight=i,h.pt=t):(h.pt.setCoords(m,l),h.weight=a,h.rank=n),h.bMerged=o,h}function Je(e,t,s,n,i,r,h,a,o){const m=e.equals(t);if(n>r)return h.assignCopy(e),o[0]=n,a[0]=s,m;if(r>n)return h=t,o[0]=r,a[0]=i,m;h.assignCopy(e);const l=Ze(e.getXY(),t.getXY(),s,n,i,r);return h.setXY(l.pt),a[0]=l.weight,o[0]=l.rank,m}function Ke(e,t,s,n,i){const r=new tt(i);return r.m_shape=e,r.m_sqrTolerance=t*t,r.m_cellSize=2*t,r.m_invCellSize=1/r.m_cellSize,r.m_geometry=s,r.m_bTrackChanges=!1,r.needsClustering()}function $e(e,t){const s=U(e);return W(s,t)}class et{constructor(e,t,s,n,i){this.m_workPt=new w,this.m_shape=e,this.m_sqrTolerance=s,this.m_invCellSize=n,this.m_origin=t.clone(),this.m_hashValues=i}getHash(e){return this.m_shape.getUserIndex(e,this.m_hashValues)}calculateHashFromVertex(e){this.m_shape.queryXY(e,this.m_workPt);const t=this.m_workPt.x-this.m_origin.x,s=Math.trunc(t*this.m_invCellSize+.5),n=this.m_workPt.y-this.m_origin.y;return $e(s,Math.trunc(n*this.m_invCellSize+.5))}equal(e,t){return u(0),!1}}class tt{constructor(e){this.m_origin=w.getNAN(),this.m_sqrTolerance=0,this.m_cellSize=0,this.m_invCellSize=0,this.m_geometry=j,this.m_bucketArray=new Array(4),this.m_bucketHash=new Array(4),this.m_dbgCandidateCheckCount=0,this.m_nsr=new be,this.m_hashValues=-1,this.m_newClusters=-1,this.m_bTrackChanges=!1,this.m_bHasSegmentParentage=!1,this.m_shape=null,this.m_clusters=new Oe,this.m_hashFunction=null,this.m_hashTable=null,this.m_progressCounter=0,this.m_progressTracker=e}progress_(){}collectClusterCandidates(e,t){const s=w.getNAN();this.m_shape.queryXY(e,s);const n=(s.x-this.m_origin.x)*this.m_invCellSize,i=(s.y-this.m_origin.y)*this.m_invCellSize,r=Math.trunc(n),h=Math.trunc(i);let a=0;for(let o=0;o<=1;o+=1)for(let e=0;e<=1;e+=1){const t=$e(r+o,h+e),s=this.m_hashTable.getFirstInBucket(t);s!==Ge.st_nullNode()&&(this.m_bucketArray[a]=s,this.m_bucketHash[a]=t,a++)}for(let o=a-1;o>=1;o--){const e=this.m_bucketArray[o];for(let t=o-1;t>=0;t--)if(e===this.m_bucketArray[t]){this.m_bucketHash[t]=-1,a--,o!==a&&(this.m_bucketHash[o]=this.m_bucketHash[a],this.m_bucketArray[o]=this.m_bucketArray[a]);break}}for(let o=0;o<a;o++)this.collectNearestNeighbourCandidates(e,this.m_bucketHash[o],s,this.m_bucketArray[o],t)}collectNearestNeighbourCandidates(e,t,s,n,i){const r=w.getNAN();for(let h=n;h!==Ge.st_nullNode();h=this.m_hashTable.getNextInBucket(h)){const n=this.m_hashTable.getElement(h);e===n||-1!==t&&this.m_shape.getUserIndex(n,this.m_hashValues)!==t||(this.m_shape.queryXY(n,r),Qe(s.x,s.y,r.x,r.y,this.m_sqrTolerance)&&i.push(h))}}mergeClusters(e,s,n){let i=this.m_shape.getUserIndex(e,this.m_newClusters);const r=this.m_shape.getUserIndex(s,this.m_newClusters);-1===i&&(i=this.m_clusters.createList(),this.m_clusters.addElement(i,e),this.m_shape.setUserIndex(e,this.m_newClusters,i)),-1===r?this.m_clusters.addElement(i,s):this.m_clusters.concatenateLists(i,r),this.m_shape.setUserIndex(s,this.m_newClusters,t.impossibleIndex2());const h=this.mergeVertices(e,s);if(n){const t=this.m_hashFunction.calculateHashFromVertex(e);this.m_shape.setUserIndex(e,this.m_hashValues,t)}return h}mergeVertices(e,t){const s=w.getNAN();this.m_shape.queryXY(e,s);const n=w.getNAN();this.m_shape.queryXY(t,n);const i=this.m_shape.getRank(e),r=this.m_shape.getRank(t),h=this.m_shape.getWeight(e),a=this.m_shape.getWeight(t);let o,m,l,g,u=!1;if(i===r?(o=i,m=h+a,l=s.x,s.x!==n.x&&(l=(s.x*h+n.x*a)/m,u=!0),g=s.y,s.y!==n.y&&(g=(s.y*h+n.y*a)/m,u=!0)):(i>r?(l=s.x,g=s.y,m=h,o=i):(l=n.x,g=n.y,m=a,o=r),u=!s.equals(n)),u&&(this.m_shape.setXYMonotonic(e,l,g),this.m_bTrackChanges&&this.m_shape.setGeometryModifiedWithVertex(e,!0),this.m_bHasSegmentParentage)){const s=this.m_shape.getSegmentParentageBreakVertex(e)||this.m_shape.getSegmentParentageBreakVertex(t);this.m_shape.setSegmentParentageBreakVertex(e,s),this.m_shape.setSegmentParentageBreakVertex(t,s)}return this.m_shape.setWeight(e,m),this.m_shape.setRank(e,o),u}needsClustering(){const e={stack:[],error:void 0,hasError:!1};try{Ee(e,y((()=>{this.m_hashTable=null,this.m_hashFunction=null,this.m_shape.removeUserIndex(this.m_hashValues),this.m_shape.removeUserIndex(this.m_newClusters)})),!1);const s=this.m_shape.getSelectedCount(),n=this.m_shape.getEnvelope2D(this.m_progressTracker);this.m_origin.assign(n.getLowerLeft());const i=Math.max(n.height(),n.width())/(k()-1);this.m_cellSize<i&&(this.m_cellSize=i,this.m_invCellSize=1/this.m_cellSize),this.m_clusters.clear(),this.m_clusters.reserveLists(this.m_shape.getSelectedCount()/3+1),this.m_clusters.reserveNodes(this.m_shape.getSelectedCount()/3+1),this.m_hashValues=this.m_shape.createUserIndex(),this.m_newClusters=this.m_shape.createUserIndex(),this.m_hashFunction=new et(this.m_shape,this.m_origin,this.m_sqrTolerance,this.m_invCellSize,this.m_hashValues),this.m_hashTable=new Ge(4*s/3,this.m_hashFunction),this.m_hashTable.reserveElements(this.m_shape.getSelectedCount());let r=!1;for(let e=0;e<2;e++){const s=[],n=this.m_shape.queryVertexIteratorOnSelection(this.m_geometry);for(let i=n.next();i!==j;i=n.next()){if(this.progress_(),e>0&&this.m_shape.getUserIndex(i,this.m_newClusters)===t.impossibleIndex2())continue;let n;if(0===e?(n=this.m_hashFunction.calculateHashFromVertex(i),this.m_shape.setUserIndex(i,this.m_hashValues,n)):n=this.m_shape.getUserIndex(i,this.m_hashValues),this.collectClusterCandidates(i,s),0!==s.length){for(let e=0,t=s.length;e<t;e++){this.progress_();const t=s[e],n=this.m_hashTable.getElement(t);if(this.m_hashTable.deleteNode(t),!this.m_shape.isEqualXY(i,n))return this.m_nsr=new be(5,this.m_shape.getVertexIndex(i),this.m_shape.getVertexIndex(n)),r=!0,r;this.mergeClusters(i,n,!1)}s.length=0}0===e&&this.m_hashTable.addElement(i,n)}}return r}catch(s){e.error=s,e.hasError=!0}finally{Ie(e)}}clusterNonReciprocal(){const e=this.m_shape.getSelectedCount(),s=this.m_shape.getEnvelope2D(this.m_progressTracker);this.m_origin=s.getLowerLeft();const n=Math.max(s.height(),s.width())/(k()-1);this.m_cellSize<n&&(this.m_cellSize=n,this.m_invCellSize=1/this.m_cellSize),this.m_clusters.clear(),this.m_clusters.reserveLists(Math.trunc(this.m_shape.getSelectedCount()/3+1)),this.m_clusters.reserveNodes(Math.trunc(this.m_shape.getSelectedCount()/3+1)),this.m_hashValues=this.m_shape.createUserIndex(),this.m_newClusters=this.m_shape.createUserIndex(),this.m_hashFunction=new et(this.m_shape,this.m_origin,this.m_sqrTolerance,this.m_invCellSize,this.m_hashValues),this.m_hashTable=new Ge(Math.trunc(4*e/3),this.m_hashFunction),this.m_hashTable.reserveElements(this.m_shape.getSelectedCount());let i=!1;{const e=this.m_shape.queryVertexIteratorOnSelection(this.m_geometry);for(let t=e.next();t!==j;t=e.next()){this.progress_();const e=this.m_hashFunction.calculateHashFromVertex(t);this.m_shape.setUserIndex(t,this.m_hashValues,e),this.m_hashTable.addElement(t,e)}}{const e=[],s=this.m_shape.queryVertexIteratorOnSelection(this.m_geometry);for(let n=s.next();n!==j;n=s.next()){if(this.m_shape.getUserIndex(n,this.m_newClusters)===t.impossibleIndex2())continue;let s=this.m_shape.getUserIndex(n,this.m_hashValues);this.m_hashTable.deleteElement(n,s);let r=!1;for(;this.collectClusterCandidates(n,e),0!==e.length;){let t=0;for(let s=0,i=e.length;s<i;s++){this.progress_();const r=e[s],h=this.m_hashTable.getElement(r);this.m_hashTable.deleteNode(r);const a=s+1===i;t|=this.mergeClusters(n,h,a)?1:0}if(r||=0!==t,i||=0!==t,e.length=0,!t)break}r&&(s=this.m_shape.getUserIndex(n,this.m_hashValues)),this.m_hashTable.addElement(n,s)}e.length=0}return i&&this.applyClusterPositions_(),this.m_hashTable=null,this.m_hashFunction=null,this.m_shape.removeUserIndex(this.m_hashValues),this.m_shape.removeUserIndex(this.m_newClusters),i}applyClusterPositions_(){const e=w.getNAN();for(let t=this.m_clusters.getFirstList();t!==Oe.st_nullNode();t=this.m_clusters.getNextList(t)){let s=this.m_clusters.getFirst(t);const n=this.m_clusters.getElement(s);this.m_shape.queryXY(n,e);const i=this.m_shape.getRank(n),r=this.m_shape.getWeight(n);for(s=this.m_clusters.getNext(s);s!==Oe.st_nullNode();s=this.m_clusters.getNext(s)){const t=this.m_clusters.getElement(s);if(this.m_bTrackChanges?this.m_shape.isEqualXYPoint2D(t,e)||(this.m_shape.setXYMonotonicPoint2D(t,e),this.m_shape.setGeometryModifiedWithVertex(t,!0)):this.m_shape.setXYMonotonicPoint2D(t,e),this.m_bHasSegmentParentage){const e=this.m_shape.getSegmentParentageBreakVertex(n)||this.m_shape.getSegmentParentageBreakVertex(t);this.m_shape.setSegmentParentageBreakVertex(n,e),this.m_shape.setSegmentParentageBreakVertex(t,e)}this.m_shape.setWeight(t,r),this.m_shape.setRank(t,i)}}}}class st{constructor(){this.m_inputParts=[],this.m_resultParts1=[],this.m_resultParts2=[],this.m_resultSegments=[],this.m_freeSegments=[],this.m_inputSegments=[],this.m_param1=[],this.m_param2=[],this.m_tolerance=0,this.m_toleranceZ=0,this.m_point=new s,this.m_pointWeight=1,this.m_maxDensifyLimit=0,this.m_pointRank=0,this.m_changed1=!1,this.m_changed2=!1,this.m_adaptiveDensify=!1}clear(){this.freeAllResultSegments(),this.m_inputSegments.length=0,this.m_inputParts.length=0,this.m_resultParts1.length=0,this.m_resultParts2.length=0,this.m_param1.length=0,this.m_param2.length=0,this.m_adaptiveDensify=!1,this.m_changed1=!1,this.m_changed2=!1}newIntersectionPart_(e,t,s,n,i,r,h,a,o,m){return it(e,t,s,n,i,r,h,a,o,m)}pushSegment(e,t,s,n,i,r,h,a,o,m){return this.m_inputParts.push(this.newIntersectionPart_(this.m_inputSegments.length,t,s,n,i,r,h,a,o,m)),this.m_inputSegments.push(e),this.m_inputParts.length-1}getResultSegmentCount(e){return this.m_adaptiveDensify?0===e?this.m_param1.length-1:this.m_param2.length-1:0===e?this.m_resultParts1.length:this.m_resultParts2.length}getResultPart_(e,t){return 0===e?this.m_resultParts1[t]:this.m_resultParts2[t]}getResultSegment(e,t){return this.m_resultSegments[this.getResultPart_(e,t).segmentIndex].get()}getSegmentChanged(e){return 0===e?this.m_changed1:this.m_changed2}getResultSegmentStartPointWeight(e,t){return this.getResultPart_(e,t).weightStart}getResultSegmentStartPointRank(e,t){return this.getResultPart_(e,t).rankStart}getResultSegmentSegmentParentage(e,t){return this.getResultPart_(e,t).segmentParentage}getResultSegmentStartPointIsBreak(e,t){return this.getResultPart_(e,t).u.bBreakStart}getResultSegmentEndPointWeight(e,t){return this.getResultPart_(e,t).weightEnd}getResultSegmentEndPointRank(e,t){return this.getResultPart_(e,t).rankEnd}getResultSegmentEndPointIsBreak(e,t){return this.getResultPart_(e,t).u.bBreakEnd}getResultSegmentInteriorRank(e,t){return this.getResultPart_(e,t).rankInterior}getResultSegmentInteriorWeight(e,t){return this.getResultPart_(e,t).weightInterior}getResultPoint(){return this.m_point}getResultPointWeight(){return this.m_pointWeight}getResultPointRank(){return this.m_pointRank}getResultPointChanged(){return this.m_changed2}intersectLines(e,t){2!==this.m_inputSegments.length&&_(""),this.m_changed1=!1,this.m_changed2=!1,this.m_tolerance=e;const s=A(e*st.c_smallToleranceFactor);let n=!1;const i=this.m_inputParts[0],r=this.m_inputParts[1],h=this.m_inputSegments[i.segmentIndex],a=this.m_inputSegments[r.segmentIndex];if(t||5&he(!0,h,a,e,!0)){const t=ae(!0,h,a,null,this.m_param1,this.m_param2,e);0===t&&_("");const o=new Array(t);for(let e=0;e<t;++e)o[e]=w.getNAN();const m=new Float64Array(t),l=new Int32Array(t),g=new Array(t),u=new Array(t);for(let e=0;e<t;++e)g[e]=rt(),u[e]=rt();for(let e=0;e<t;e++){const t=this.m_param1[e],c=this.m_param2[e];let _,d=i.rankInterior,p=i.weightInterior;0===t?(d=i.rankStart,p=i.weightStart,_=i.u.bBreakStart):1===t?(d=i.rankEnd,p=i.weightEnd,_=i.u.bBreakEnd):(this.m_changed1=!0,_=!1);let f,S=r.rankInterior,x=r.weightInterior;0===c?(S=r.rankStart,x=r.weightStart,f=r.u.bBreakStart):1===c?(S=r.rankEnd,x=r.weightEnd,f=r.u.bBreakEnd):(this.m_changed2=!0,f=!1);const C=d,E=S;let I=1,b=0,N=w.getNAN();if(C===E){const n=h.getCoord2D(t),i=a.getCoord2D(c);I=p+x;b=d,V(n,i,x/I,N);const r=w.sqrDistance(N,n),o=w.sqrDistance(N,i);g[e].bBigMove=r>s,u[e].bBigMove=o>s,this.m_changed1||n.equals(N)||(this.m_changed1=!0),this.m_changed2||i.equals(N)||(this.m_changed2=!0)}else if(C>E){N=h.getCoord2D(t);const n=a.getCoord2D(c);I=p,b=d;const i=w.sqrDistance(N,n);g[e].bBigMove=!1,u[e].bBigMove=i>s,this.m_changed2||n.equals(N)||(this.m_changed2=!0)}else{N=a.getCoord2D(c),I=x,b=S;const n=h.getCoord2D(t),i=w.sqrDistance(N,n);g[e].bBigMove=i>s,u[e].bBigMove=!1,this.m_changed1||n.equals(N)||(this.m_changed1=!0)}o[e].assign(N),m[e]=I,l[e]=b,g[e].bIsBreak=_||f,u[e].bIsBreak=_||f,n||=g[e].bBigMove||u[e].bBigMove}const c=i.rankInterior,d=i.weightInterior;let p=0,f=-1;for(let s=0;s<=t;s++){const n=s<t?this.m_param1[s]:1;if(n!==p){const r=this.allocResultSegment(),a=this.m_resultSegments[r];let u,_,S,x;h.queryCut(p,n,a,!1),a.get().snapControlPoints(e*e);let C=!1,E=!1,I=!1,b=!1,N=!1,P=w.getNAN(),v=w.getNAN();-1!==f?(_=l[f],u=m[f],C=g[f].bBigMove,P.assign(o[f]),I=g[f].bIsBreak,N=!0):(u=i.weightStart,_=i.rankStart,P=a.get().getStartXY(),I=i.u.bBreakStart),s<t?(x=l[s],S=m[s],E=g[s].bBigMove,v.assign(o[s]),b=g[s].bIsBreak,N=!0):(S=i.weightEnd,x=i.rankEnd,v=a.get().getEndXY(),b=i.u.bBreakEnd),N&&a.get().setCoordsForIntersector(P,v,!0),this.m_resultParts1.push(this.newIntersectionPart_(r,u,_,S,x,d,c,I,b,i.segmentParentage));const y=this.m_resultParts1.at(-1);y.u.bBigMoveStart=C,y.u.bBigMoveEnd=E,p=n,f=s}else-1===f&&(f=s)}const S=new Array(t);for(let e=0;e<t;e++)S[e]=e;t>2?(S.sort(((e,t)=>this.m_param2[e]<this.m_param2[t]?-1:this.m_param2[e]>this.m_param2[t]?1:0)),T(this.m_param2)):2===t&&this.m_param2[0]>this.m_param2[1]&&(this.m_param2[1]=v(this.m_param2[0],this.m_param2[0]=this.m_param2[1]),S[1]=v(S[0],S[0]=S[1]));const x=r.rankInterior,C=r.weightInterior;p=0,f=-1;for(let s=0;s<=t;s++){const n=s<t?this.m_param2[s]:1;if(n!==p){const i=this.allocResultSegment(),h=this.m_resultSegments[i];let g,c,_,d;a.queryCut(p,n,h,!1),h.get().snapControlPoints(e*e);let E=w.getNAN(),I=w.getNAN(),b=!1,N=!1,P=!1,v=!1,y=!1;if(-1!==f){const e=S[f];g=m[e],c=l[e],E.assign(o[e]),P=u[e].bBigMove,b=u[e].bIsBreak,y=!0}else g=r.weightStart,c=r.rankStart,E=h.get().getStartXY(),b=r.u.bBreakStart;if(s!==t){const e=S[s];_=m[e],d=l[e],I.assign(o[e]),v=u[e].bBigMove,N=u[e].bIsBreak,y=!0}else _=r.weightEnd,d=r.rankEnd,I=h.get().getEndXY(),N=r.u.bBreakEnd;y&&h.get().setCoordsForIntersector(E,I,!0),this.m_resultParts2.push(this.newIntersectionPart_(i,g,c,_,d,C,x,b,N,r.segmentParentage));const k=this.m_resultParts2.at(-1);k.u.bBigMoveStart=P,k.u.bBigMoveEnd=v,p=n,f=s}else-1===f&&(f=s)}return n?3:2}return 0}intersectLines3D(e,t,s,n){return u(0),1}intersect2D(e,t){const s=this.m_inputParts[0],n=this.m_inputParts[1],i=this.m_inputSegments[s.segmentIndex].getGeometryType(),r=this.m_inputSegments[n.segmentIndex].getGeometryType();if(i!==l.enumLine||r!==l.enumLine){return new mt(this).intersectCurves(e,t)}return this.intersectLines(e,t)}intersect2DEx(e,t,s,n,i){this.m_point.assignCopy(t),1!==this.m_inputSegments.length&&_(""),this.m_tolerance=e,this.m_changed1=!1,this.m_changed2=!1;const r=A(e*st.c_smallToleranceFactor);let h=!1;const a=this.m_inputParts[0],o=this.m_inputSegments[a.segmentIndex];if(i||o.isIntersectingPoint(t.getXY(),e,!0)){this.m_param1=I(16,Number.NaN);const i=o.getClosestCoordinate(t.getXY(),!1);this.m_param1[0]=i;let m=a.rankInterior,l=a.weightInterior;0===i?(m=a.rankStart,l=a.weightStart):1===i?(m=a.rankEnd,l=a.weightEnd):this.m_changed1=!0;let g=m;const u=s,c=n;g===u&&o.isCurve()&&(g=u+1);let _=1,d=0;const p=new w;if(g===u){const e=o.getCoord2D(i),s=t.getXY();_=l+c,d=m;V(e,s,c/_,p),this.m_changed1||e.equals(p)||(this.m_changed1=!0),this.m_changed2||s.equals(p)||(this.m_changed2=!0);h=w.sqrDistance(p,e)>r}else if(g>u)p.assign(o.getCoord2D(i)),_=l,d=m,this.m_changed2||p.equals(t.getXY())||(this.m_changed2=!0);else{p.assign(o.getCoord2D(i)),_=c,d=u,this.m_changed1||p.equals(t.getXY())||(this.m_changed1=!0);h=w.sqrDistance(p,t.getXY())>r}let f=0,S=-1;const x=1;for(let t=0;t<=x;t++){const s=t<x?this.m_param1[0]:1;if(s!==f){const n=this.allocResultSegment(),i=this.m_resultSegments[n];o.queryCut(f,s,i),i.get().snapControlPoints(e*e);let r=a.weightStart,h=a.weightEnd,m=a.rankStart,l=a.rankEnd;const g=a.rankInterior,u=a.weightInterior;let c=a.u.bBreakStart,C=a.u.bBreakEnd;-1!==S&&(r=_,m=d,c=!0,i.get().setCoordsForIntersector(p,i.get().getEndXY(),!0)),t!==x&&(h=_,l=d,C=!0,i.get().setCoordsForIntersector(i.get().getStartXY(),p,!0)),f=s,this.m_resultParts1.push(this.newIntersectionPart_(n,r,m,h,l,u,g,c,C,a.segmentParentage))}S=t}return this.m_point.setXY(p),this.m_pointWeight=_,this.m_pointRank=d,h?3:2}return 0}intersect3D(e,t,s,n){return u(0),1}intersect3DEx(e,t,s,n,i,r,h){return u(0),1}getTolerance(){return this.m_tolerance}freeAllResultSegments(){this.m_resultSegments.length=0,this.m_freeSegments.length=0}freeResultSegment(e){this.m_freeSegments.push(e)}allocResultSegment(){if(this.m_freeSegments.length){return this.m_freeSegments.pop()}const e=new Q,t=this.m_resultSegments.length;return this.m_resultSegments.push(e),t}allocResultSegmentFromBuffer(e){if(this.m_freeSegments.length){return this.m_freeSegments.pop()}const t=new Q({copy:e}),s=this.m_resultSegments.length;return this.m_resultSegments.push(t),s}allocResultSegmentFromSegment(e){if(this.m_freeSegments.length){return this.m_freeSegments.pop()}const t=new Q({segment:e}),s=this.m_resultSegments.length;return this.m_resultSegments.push(t),s}}function nt(e,t){return{bBigMoveStart:!1,bBigMoveEnd:!1,bBreakStart:e,bBreakEnd:t}}function it(e,t,s,n,i,r,h,a,o,m){return{segmentIndex:e,weightStart:t,rankStart:s,weightEnd:n,rankEnd:i,weightInterior:r,rankInterior:h,segmentParentage:m,u:nt(a,o)}}function rt(){return{bBigMove:!1,bIsBreak:!1}}st.maxWeight=.1*Number.MAX_VALUE,st.c_smallToleranceFactor=.01,st.c_maxGeometryTypeToRankDelta=8;class ht{constructor(){this.start=null,this.end=null,this.equalEdge=null,this.segmentIndex=-1,this.segmentParentage=-1,this.weight=0,this.rank=0}hasSegment(){return this.segmentIndex>=0}transferAttributes(e,t,n){if(1===t.getDescription().getAttributeCount())return;const i=e.parent.m_resultSegments[this.segmentIndex].get().getStartXY(),r=e.parent.m_resultSegments[this.segmentIndex].get().getEndXY(),h=new s;t.queryStart(h),n?(h.setXY(i),e.parent.m_resultSegments[this.segmentIndex].get().setStart(h)):(h.setXY(r),e.parent.m_resultSegments[this.segmentIndex].get().setEnd(h)),t.queryEnd(h),n?(h.setXY(r),e.parent.m_resultSegments[this.segmentIndex].get().setEnd(h)):(h.setXY(i),e.parent.m_resultSegments[this.segmentIndex].get().setStart(h))}copyFromWhenOverlap(e,t,s){this.equalEdge=t,t.equalEdge=this,this.segmentIndex=e.parent.allocResultSegmentFromBuffer(e.parent.m_resultSegments[t.segmentIndex]),this.segmentParentage=t.segmentParentage,this.weight=t.weight,this.rank=t.rank,s?(this.start.copyFrom(t.start),this.end.copyFrom(t.end)):(this.start.copyFrom(t.end),this.end.copyFrom(t.start),e.parent.m_resultSegments[this.segmentIndex].get().reverse())}getEnd(){return this.end}getNextInChain(){return this.end.nextInChain}getPrevInChain(){return this.start.prevInChain}}class at{constructor(){this.hash=0,this.pt=new w,this.prevInChain=null,this.nextInChain=null,this.prevInHash=null,this.nextInHash=null,this.prevEqual=null,this.nextEqual=null,this.weight=0,this.rank=0,this.bBigMove=!1,this.bIsBreak=!1}copyFrom(e){this.pt.assign(e.pt),this.weight=e.weight,this.rank=e.rank,this.bBigMove=e.bBigMove,this.bIsBreak=e.bIsBreak}nextNode(){return this.nextInChain?this.nextInChain.end:null}prevNode(){return this.prevInChain?this.prevInChain.start:null}equalListHead(){let e=this;for(;null!==e.prevEqual;e=e.prevEqual);return e}}function ot(e,t,s,n){return{edge1:e,edge2:t,recursion:s,bIsIntersecting:n}}class mt{constructor(e){this.m_pairs=[],this.m_chainOrigin1=null,this.m_chainOrigin2=null,this.m_newNodes=[],this.m_hashTableOfEquals=[],this.m_hashTableOfEqualsSize=0,this.m_origin=new w,this.m_cell=new w,this.parent=e}addSegment(e,t,s,n,i,r,h,a,o,m,l){const g=this.newNode(this.parent.m_resultSegments[e].get().getStartXY(),s,n,o),c=this.newNode(this.parent.m_resultSegments[e].get().getEndXY(),i,r,m);this.newEdge(g,c,e,h,a,l),null===this.m_chainOrigin1?this.m_chainOrigin1=g:null===this.m_chainOrigin2?this.m_chainOrigin2=g:u(0)}intersectCurvesHelper(e,t,s,n,i){const r=this.getSegment(e).get(),h=this.getSegment(t).get();if(r.isDegenerate(0)||h.isDegenerate(0))return 0;const a=this.tryOverlapIntersectCurves(e,t,s,n);if(0!==a)return a;const o=A(.01*s);let m=!1,g=this.processSharpCorners(r,h,s,i>4);const c=g>0;if(!c){if(!(n||5&me(!0,!1,r,h,s,!0)))return 0;g=ae(!0,r,h,null,this.parent.m_param1,this.parent.m_param2,s)}0===g&&_("");const d=r.getGeometryType(),p=h.getGeometryType(),f=E(w,g),S=E(w,g),x=new Array(g),C=new Array(g),I=new Array(g),b=new Array(g),N=R(rt,g),P=R(rt,g);let y=!1,k=!1;for(let l=0;l<g;l++){const n=this.parent.m_param1[l],i=this.parent.m_param2[l];let a=e.rank,g=e.weight,u=!0,_=!1;0===n?(a=e.start.rank,g=e.start.weight,_=e.start.bIsBreak):1===n?(a=e.end.rank,g=e.end.weight,_=e.end.bIsBreak):(y=!0,u=!1);let E=t.rank,v=t.weight,T=!1,B=!0;0===i?(E=t.start.rank,v=t.start.weight,T=t.start.bIsBreak):1===i?(E=t.end.rank,v=t.end.weight,T=t.end.bIsBreak):(k=!0,B=!1);let q=a,F=E;if(q===F&&(q*=st.c_maxGeometryTypeToRankDelta,F*=st.c_maxGeometryTypeToRankDelta,q+=lt(d,r,!1),F+=lt(p,h,!1)),u&&B&&F===q){const e=r.getCoord2D(n),t=h.getCoord2D(i);e.equals(t)&&(F=q-1)}let X=1,Y=0,D=1,A=0;const R=new w,M=new w,O=r.getCoord2D(n),L=h.getCoord2D(i);if(c&&w.distance(O,L)>s)R.setCoordsPoint2D(O),M.setCoordsPoint2D(L),X=g,D=v,Y=a,A=E,N[l].bBigMove=!1,P[l].bBigMove=!1,_=!0,T=!0;else if(q===F){D=X=g+v,A=Y=a;V(O,L,v/X,R),M.setCoordsPoint2D(R);const e=w.sqrDistance(R,O),t=w.sqrDistance(R,L);N[l].bBigMove=e>o,P[l].bBigMove=t>o,y||O.equals(R)||(y=!0),k||L.equals(M)||(k=!0)}else if(q>F){R.setCoordsPoint2D(O),M.setCoordsPoint2D(R),D=X=g,A=Y=a;const e=w.sqrDistance(R,L);N[l].bBigMove=!1,P[l].bBigMove=e>o,k||L.equals(M)||(k=!0)}else{M.setCoordsPoint2D(L),R.setCoordsPoint2D(M),D=X=v,A=Y=E;const e=w.sqrDistance(R,O);N[l].bBigMove=e>o,P[l].bBigMove=!1,y||O.equals(R)||(y=!0)}f[l].assign(R),S[l].assign(M),x[l]=X,C[l]=D,I[l]=Y,b[l]=A,N[l].bIsBreak=_||T,P[l].bIsBreak=_||T,m||=N[l].bBigMove||P[l].bBigMove,l>0&&(n!==this.parent.m_param1[l-1]&&i!==this.parent.m_param2[l-1]||(I[l]<=I[l-1]?(f[l].assign(S[l-1]),x[l]=C[l-1],I[l]=b[l-1],S[l].assign(S[l-1]),C[l]=C[l-1],b[l]=b[l-1],N[l].bBigMove||=N[l-1].bBigMove,P[l].bBigMove||=P[l-1].bBigMove,N[l].bIsBreak||=N[l-1].bIsBreak,P[l].bIsBreak||=P[l-1].bIsBreak):(f[l-1].assign(f[l]),x[l-1]=x[l],I[l-1]=I[l],S[l-1].assign(S[l]),C[l-1]=C[l],b[l-1]=b[l],N[l-1].bBigMove||=N[l].bBigMove,P[l-1].bBigMove||=P[l].bBigMove,N[l-1].bIsBreak||=N[l].bIsBreak,P[l-1].bIsBreak||=P[l].bIsBreak)))}if(!(y||k||2!==g||d===l.enumLine&&p===l.enumLine)){if(this.processDoublyConnectedEdges(e,t,i+1,s))return this.parent.m_changed1=!0,this.parent.m_changed2=!0,2;u(0)}this.parent.m_changed1||=y,this.parent.m_changed2||=k;let T=e,B=e.end.weight,q=e.end.rank,F=e.end.bBigMove,X=e.end.bIsBreak,Y=0,D=-1;for(let l=0;l<=g;l++){const t=l<g?this.parent.m_param1[l]:1;if(t!==Y){const n=this.parent.allocResultSegment(),i=this.parent.m_resultSegments[n];let h,a,o,m;r.queryCut(Y,t,i,!1),i.get().snapControlPoints(s*s);let u=!1,c=!1,_=!1,d=!1;const p=new w,S=new w;-1!==D?(a=I[D],h=x[D],_=N[D].bBigMove,u=N[D].bIsBreak,p.assign(f[D])):(h=e.start.weight,a=e.start.rank,_=e.start.bBigMove,u=e.start.bIsBreak,p.assign(i.get().getStartXY())),l<g?(m=I[l],o=x[l],d=N[l].bBigMove,c=N[l].bIsBreak,S.assign(f[l])):(o=B,m=q,d=F,c=X,S.assign(i.get().getEndXY()));let C=T;t<1&&(this.splitEdgeInPlace(T),C=T.getNextInChain()),this.updateSegmentOnly(T,n),0===T.start.hash||T.start.pt.equals(p)||(this.m_newNodes.push(T.start),this.removeNodeFromHash(T.start),T.start.hash=0),0===T.end.hash||T.end.pt.equals(S)||(this.m_newNodes.push(T.end),this.removeNodeFromHash(T.end),T.end.hash=0),T.start.pt.assign(p),T.end.pt.assign(S),T.start.bBigMove||=_,T.end.bBigMove||=d,T.start.bIsBreak||=u,T.end.bIsBreak||=c,T.start.weight=h,T.start.rank=a,T.end.weight=o,T.end.rank=m,T=C,Y=t,D=l}else-1===D&&(D=l)}const O=T.getNextInChain(),L=[];L.length=g;for(let l=0;l<g;l++)L[l]=l;g>2?(L.sort(((e,t)=>M(this.parent.m_param2[e],this.parent.m_param2[t]))),this.parent.m_param2.sort(M)):2===g&&this.parent.m_param2[0]>this.parent.m_param2[1]&&(this.parent.m_param2[1]=v(this.parent.m_param2[0],this.parent.m_param2[0]=this.parent.m_param2[1]),L[1]=v(L[0],L[0]=L[1])),T=t,B=t.end.weight,q=t.end.rank,F=t.end.bBigMove,X=t.end.bIsBreak,Y=0,D=-1;for(let l=0;l<=g;l++){const e=l<g?this.parent.m_param2[l]:1;if(e!==Y){const n=this.parent.allocResultSegment(),i=this.parent.m_resultSegments[n];let r,a,o,m;h.queryCut(Y,e,i,!1),i.get().snapControlPoints(s*s);const u=new w,c=new w;let _=!1,d=!1,p=!1,f=!1;if(-1!==D){const e=L[D];r=C[e],a=b[e],u.assign(S[e]),p=P[e].bBigMove,_=P[e].bIsBreak}else r=t.start.weight,a=t.start.rank,p=t.start.bBigMove,_=t.start.bIsBreak,u.assign(i.get().getStartXY());if(l!==g){const e=L[l];o=C[e],m=b[e],c.assign(S[e]),f=P[e].bBigMove,d=P[e].bIsBreak}else o=B,m=q,f=F,d=X,c.assign(i.get().getEndXY());let x=T;e<1&&(this.splitEdgeInPlace(T),x=T.getNextInChain()),this.updateSegmentOnly(T,n),0===T.start.hash||T.start.pt.equals(u)||(this.m_newNodes.push(T.start),this.removeNodeFromHash(T.start),T.start.hash=0),0===T.end.hash||T.end.pt.equals(c)||(this.m_newNodes.push(T.end),this.removeNodeFromHash(T.end),T.end.hash=0),T.start.pt.assign(u),T.end.pt.assign(c),T.start.bBigMove||=p,T.end.bBigMove||=f,T.start.bIsBreak||=_,T.end.bIsBreak||=d,T.start.weight=r,T.start.rank=a,T.end.weight=o,T.end.rank=m,T=x,Y=e,D=l}else-1===D&&(D=l)}const z=T.getNextInChain();return this.postProcessResultPartsForCurves(e,O,t,z,i+1),m?3:2}intersectCurves(e,t){2!==this.parent.m_inputSegments.length&&_(""),this.parent.m_changed1=!1,this.parent.m_changed2=!1,this.parent.m_tolerance=e,this.m_hashTableOfEqualsSize=0,this.m_hashTableOfEquals=O(16);const s=Ce.constructEmpty();for(let r=0;r<2;r++){const e=this.parent.allocResultSegmentFromSegment(this.parent.m_inputSegments[this.parent.m_inputParts[r].segmentIndex]),t=Ce.constructEmpty();this.parent.m_inputSegments[this.parent.m_inputParts[r].segmentIndex].queryLooseEnvelope(t),s.mergeEnvelope2D(t);const n=this.parent.m_inputParts[r];this.addSegment(e,0,n.weightStart,n.rankStart,n.weightEnd,n.rankEnd,n.weightInterior,n.rankInterior,n.u.bBreakStart,n.u.bBreakEnd,n.segmentParentage)}s.inflateCoords(100*e,100*e),this.m_origin.assign(s.getLowerLeft()),this.m_cell.setCoords(2*e,2*e),this.m_pairs.push(ot(this.m_chainOrigin1.nextInChain,this.m_chainOrigin2.nextInChain,0,t));let n=0,i=!0;for(;this.m_pairs.length;){const t=this.m_pairs.at(-1);this.m_pairs.pop(),u(t.recursion>=0),u(t.recursion<=256),this.clusterNodes(e);const s=this.intersectCurvesHelper(t.edge1,t.edge2,e,t.bIsIntersecting,t.recursion);i&&(i=!1,n=s)}for(let r=0;r<2;r++){const e=0===r?this.parent.m_resultParts1:this.parent.m_resultParts2;for(let t=(0===r?this.m_chainOrigin1:this.m_chainOrigin2).nextInChain;null!=t;t=t.getNextInChain())e.push(this.parent.newIntersectionPart_(t.segmentIndex,t.start.weight,t.start.rank,t.end.weight,t.end.rank,t.weight,t.rank,t.start.bIsBreak,t.end.bIsBreak,t.segmentParentage)),e.at(-1).u.bBigMoveStart=t.start.bBigMove,e.at(-1).u.bBigMoveEnd=t.end.bBigMove}return n}tryOverlapIntersectCurves(e,t,s,n){const i=this.parent.m_resultSegments[e.segmentIndex].get(),r=this.parent.m_resultSegments[t.segmentIndex].get(),h=i.getStartXY().equals(r.getStartXY())&&i.getEndXY().equals(r.getEndXY()),a=i.getStartXY().equals(r.getEndXY())&&i.getEndXY().equals(r.getStartXY());if(!h&&!a)return 0;const o=pe(i,r,!0);if(0!==o&&fe(i,r)&&e.segmentParentage===t.segmentParentage){let e=!1;if(o>0)e=i.equals(r);else{u(-1===o);const t=new Q({segment:r});t.get().reverse(),e=i.equals(t.get())}if(e)return 1}const m=s*st.c_smallToleranceFactor;let l=!1;if(0===o){const e=[.5,.25,.75,.125,.375,.625,.875,.5625,.3125];for(let t=0,n=e.length;t<n;++t){const n=e[t],h=new w;i.queryCoord2D(n,h);const a=r.getClosestCoordinate(h,!1),o=new w;r.queryCoord2D(a,o);const g=w.distance(h,o);if(g>s)return 0;l||=g>m}for(let t=0,n=e.length;t<n;++t){const n=e[t],h=new w;r.queryCoord2D(n,h);const a=i.getClosestCoordinate(h,!1),o=new w;i.queryCoord2D(a,o);const g=w.distance(h,o);if(g>s)return 0;l||=g>m}}let g=e.rank,c=t.rank;return g===c&&(g*=st.c_maxGeometryTypeToRankDelta,c*=st.c_maxGeometryTypeToRankDelta,g+=lt(i.getGeometryType(),i,!0),c+=lt(r.getGeometryType(),r,!0)),g>c?(t.copyFromWhenOverlap(this,e,h),t.transferAttributes(this,i,h)):c>g?(e.copyFromWhenOverlap(this,t,h),e.transferAttributes(this,r,h)):e.segmentParentage<=t.segmentParentage?(e.weight=e.weight+t.weight,t.copyFromWhenOverlap(this,e,h),t.transferAttributes(this,i,h)):(t.weight=e.weight+t.weight,e.copyFromWhenOverlap(this,t,h),e.transferAttributes(this,r,h)),l?3:2}postProcessResultPartsForCurves(e,t,s,n,i){i===L()&&_("curve_helper");for(let r=e;r!==t;r=r.getNextInChain())this.updateSegmentToNodes(r);for(let r=s;r!==n;r=r.getNextInChain())this.updateSegmentToNodes(r);for(let r=e;r!==t;r=r.getNextInChain()){const e=r.end.pt.sub(r.start.pt);for(let t=s;t!==n;t=t.getNextInChain()){let s=0;if(r.start.pt.equals(t.start.pt)&&r.end.pt.equals(t.end.pt)?s=1:r.start.pt.equals(t.end.pt)&&r.end.pt.equals(t.start.pt)&&(s=-1),!s){let s=r.start.pt.equals(t.start.pt)?1:0;if(s||(s=r.end.pt.equals(t.end.pt)?2:0,s||(s=r.end.pt.equals(t.start.pt)?3:0,s||(s=r.start.pt.equals(t.end.pt)?4:0))),s){const n=t.end.pt.sub(t.start.pt),h=e.dotProduct(n);let a;switch(s){case 1:case 2:a=h>0;break;case 3:case 4:a=h<0;break;default:_("post_process_result_parts_for_curves_")}a&&this.m_pairs.push(ot(r,t,i,!1))}continue}const n=this.parent.m_resultSegments[r.segmentIndex],h=this.parent.m_resultSegments[t.segmentIndex],a=[.5,.25,.75];for(let e=0,t=a.length;e<t;++e){const t=a[e],i=new w;n.get().queryCoord2D(t,i);const r=h.get().getClosestCoordinate(i,!1),o=new w;h.get().queryCoord2D(r,o);if(w.distance(i,o)>this.parent.m_tolerance){s=0;break}}if(!s){this.m_pairs.push(ot(r,t,i,!1));continue}for(let e=0,t=a.length;e<t;++e){const t=a[e],i=new w;h.get().queryCoord2D(t,i);const r=n.get().getClosestCoordinate(i,!1),o=new w;n.get().queryCoord2D(r,o);if(w.distance(i,o)>this.parent.m_tolerance){s=0;break}}if(!s){this.m_pairs.push(ot(r,t,i,!1));continue}r.equalEdge=t,t.equalEdge=r;let o=r.rank,m=t.rank;o===m&&(o*=st.c_maxGeometryTypeToRankDelta,m*=st.c_maxGeometryTypeToRankDelta,o+=lt(n.get().getGeometryType(),n.get(),!0),m+=lt(h.get().getGeometryType(),h.get(),!0)),o>m||o===m&&r.segmentParentage<=t.segmentParentage?(n.copyTo(h,!1),t.segmentParentage=r.segmentParentage,-1===s&&h.get().reverse()):(h.copyTo(n,!1),r.segmentParentage=t.segmentParentage,-1===s&&n.get().reverse());break}}this.updateAttachedEdgesAfterNodeChange(e.start),t&&this.updateAttachedEdgesAfterNodeChange(t.start),this.updateAttachedEdgesAfterNodeChange(s.start),n&&this.updateAttachedEdgesAfterNodeChange(n.start)}processDoublyConnectedEdges(e,t,s,n){s===L()&&_("curve_helper");const i=this.getSegment(e).get(),r=this.getSegment(t).get(),h=i.getStartXY().equals(r.getStartXY())&&i.getEndXY().equals(r.getEndXY())?1:i.getEndXY().equals(r.getStartXY())&&i.getStartXY().equals(r.getEndXY())?-1:0;if(0!==h){const a=new Q;i.queryCut(0,.5,a),a.get().snapControlPoints(n*n);const o=new Q;i.queryCut(.5,1,o),o.get().snapControlPoints(n*n),this.splitEdgeInPlace(e),e.end.pt=a.get().getEndXY(),e.segmentIndex=this.parent.allocResultSegmentFromBuffer(a),e.getNextInChain().segmentIndex=this.parent.allocResultSegmentFromBuffer(o);let m=r.getClosestCoordinate(e.end.pt,!1);return Math.abs(m-.5)>.2&&(m=.5),r.queryCut(0,m,a),a.get().snapControlPoints(n*n),r.queryCut(m,1,o),o.get().snapControlPoints(n*n),this.splitEdgeInPlace(t),t.end.pt=a.get().getEndXY(),t.segmentIndex=this.parent.allocResultSegmentFromBuffer(a),t.getNextInChain().segmentIndex=this.parent.allocResultSegmentFromBuffer(o),h>0?(this.m_pairs.push(ot(e,t,s,!1)),this.m_pairs.push(ot(e.getNextInChain(),t.getNextInChain(),s,!1))):(this.m_pairs.push(ot(e,t.getNextInChain(),s,!1)),this.m_pairs.push(ot(e.getNextInChain(),t,s,!1))),!0}return!1}newNode(e,t,s,n){const i=new at;return this.m_newNodes.push(i),i.pt=e,i.rank=s,i.weight=t,i.bIsBreak=n,i}newEdge(e,t,s,n,i,r){const h=new ht;return h.start=e,h.end=t,e.nextInChain=h,t.prevInChain=h,h.segmentIndex=s,h.segmentParentage=r,h.rank=i,h.weight=n,h}splitEdgeInPlace(e){e.segmentIndex=-1;const t=new ht,s=new at;this.m_newNodes.push(s),s.pt.setNAN(),s.nextInChain=t,s.prevInChain=e,s.prevInHash=null,s.nextInHash=null,s.prevEqual=null,s.nextEqual=null,s.weight=e.weight,s.rank=e.rank,s.bIsBreak=!1,s.bBigMove=!1,t.start=s,t.segmentIndex=-1,t.end=e.end,t.end.prevInChain=t,t.rank=e.rank,t.weight=e.weight,t.segmentParentage=e.segmentParentage,e.end=s,e.equalEdge&&(e.equalEdge.equalEdge=null),e.equalEdge=null}updateSegmentOnly(e,t){e.segmentIndex=t}updateAttachedEdgesAfterNodeChange(e){for(let t=e.equalListHead();null!==t;t=t.nextEqual)this.updateAttachedEdgesAfterNodeChangeImpl(t)}updateAttachedEdgesAfterNodeChangeImpl(e){const t=e.prevInChain;if(t&&t.hasSegment()){const s=this.getSegment(t).get();e.pt.equals(s.getEndXY())||(s.setCoordsForIntersector(t.start.pt,t.end.pt,!1),s.ensureXYMonotone())}const s=e.nextInChain;if(s&&s.hasSegment()){const t=this.getSegment(s).get();e.pt.equals(t.getStartXY())||(t.setCoordsForIntersector(s.start.pt,s.end.pt,!1),t.ensureXYMonotone())}}updateSegmentToNodes(e){const t=this.getSegment(e).get();e.start.pt.equals(t.getStartXY())&&e.end.pt.equals(t.getEndXY())||(t.setCoordsForIntersector(e.start.pt,e.end.pt,!1),t.ensureXYMonotone()),this.updateAttachedEdgesAfterNodeChange(e.start),this.updateAttachedEdgesAfterNodeChange(e.end)}getSegment(e){return this.parent.m_resultSegments[e.segmentIndex]}clusterNodes(e){let t=!1;const s=[],n=[],i=[];for(let r=0,h=this.m_newNodes.length;r<h;r++){const e=this.m_newNodes[r];if(null===e)continue;let t=e;for(let s=r+1;s<h;s++){const n=this.m_newNodes[s];null!==n&&(e.pt.equals(n.pt)&&(t.nextInHash=n,n.prevInHash=t,t=n,this.m_newNodes[s]=null))}}for(let r=0,h=this.m_newNodes.length;r<h;r++){const h=this.m_newNodes[r];if(null==h)continue;for(h.hash=this.calculateHash(h.pt);;){const r=O(4),a=this.hashTableBinsToCheck(h,r);for(let t=0;t<a;t++)if(null!==r[t])for(let a=r[t];null!==a;){const t=a.nextInHash;w.distance(h.pt,a.pt)<=e&&(s.push(a),this.removeNodeFromHash(a),a.hash=0,i.push(a),n.push(a)),a=t}let o=!1;for(const e of s)if(!h.pt.equals(e.pt)){const s=Ze(h.pt,e.pt,h.weight,h.rank,e.weight,e.rank);h.pt.assign(s.pt),h.weight=s.weight,h.rank=s.rank,o=!0,t=!0}if(s.length=0,!o)break;h.hash=this.calculateHash(h.pt)}i.push(h),n.push(h);for(let e=h.nextInHash;null!==e;){e.prevInHash=null;const t=e.nextInHash;e.nextInHash=null,i.push(e),n.push(e),e=t}const a=h.hash;let o=null,m=null;for(const e of n)h!==e&&(e.hash=a,e.pt.assign(h.pt),e.rank=h.rank,e.weight=h.weight),e.prevInHash=o,o&&(o.nextInHash=e),e.prevEqual=m,e.nextEqual=null,m&&(m.nextEqual=e),m=e,o=e;const l=a%this.m_hashTableOfEquals.length;o.nextInHash=this.m_hashTableOfEquals[l],null!==this.m_hashTableOfEquals[l]&&(this.m_hashTableOfEquals[l].prevInHash=o),this.m_hashTableOfEquals[l]=n[0],this.m_hashTableOfEqualsSize+=n.length,n.length=0,this.rehashIfNeeded()}if(this.m_newNodes.length=0,t)for(const r of i)this.updateAttachedEdgesAfterNodeChange(r)}rehashIfNeeded(){if(2*this.m_hashTableOfEqualsSize>this.m_hashTableOfEquals.length){const e=this.m_hashTableOfEquals;this.m_hashTableOfEquals=O(2*e.length),this.m_hashTableOfEqualsSize=0;for(const t of e){let e=t;for(;e;){const t=e.nextInHash;e.nextInHash=null,e.prevInHash=null,this.addNodeToHashImpl(e),e=t}}}}addNodeToHashImpl(e){const t=e.hash%this.m_hashTableOfEquals.length,s=this.m_hashTableOfEquals[t];e.nextInHash=s,null!==s&&(s.prevInHash=e),this.m_hashTableOfEquals[t]=e,this.m_hashTableOfEqualsSize++}removeNodeFromHash(e){const t=e.hash%this.m_hashTableOfEquals.length,s=e.prevInHash,n=e.nextInHash;s?s.nextInHash=n:this.m_hashTableOfEquals[t]=n,n&&(n.prevInHash=s),this.m_hashTableOfEqualsSize--,e.prevInHash=null,e.nextInHash=null}hashTableBinsToCheck(e,t){const s=(e.pt.x-this.m_origin.x)/this.m_cell.x,n=(e.pt.y-this.m_origin.y)/this.m_cell.y,i=k()-1,r=Math.round(G(s,-2147483646,i)),h=Math.round(G(n,-2147483646,i));let a=r|h<<32;a=z(a),t[0]=this.m_hashTableOfEquals[a%this.m_hashTableOfEquals.length];let o=r+1|h<<32;o=z(o);let m=1;t[1]=this.m_hashTableOfEquals[o%this.m_hashTableOfEquals.length],t[1]!==t[0]&&(m=2);let l=r+1|h+1<<32;l=z(l),t[m]=this.m_hashTableOfEquals[l%this.m_hashTableOfEquals.length];for(let u=0;u<m;u++)if(t[m]===t[u]){m--;break}m++;let g=r|h+1<<32;g=z(g),t[m]=this.m_hashTableOfEquals[g%this.m_hashTableOfEquals.length];for(let u=0;u<m;u++)if(t[m]===t[u]){m--;break}return m++,m}calculateHash(e){const t=(e.x-this.m_origin.x)/this.m_cell.x,s=(e.y-this.m_origin.y)/this.m_cell.y,n=k()-1;let i=Math.round(G(t,-2147483646,n))|Math.round(G(s,-2147483646,n))<<32;return i=z(i),0===i&&(i=1),i}processSharpCorners(e,t,s,n){if(this.parent.m_param1.length=0,this.parent.m_param2.length=0,e.getStartXY().equals(t.getStartXY())){const i=[0,0],r=[0,0],h=Se(e,t,0,0,s,2,i,r,n);if(h){this.parent.m_param1.push(0),this.parent.m_param2.push(0);for(let e=0;e<h;e++)this.parent.m_param1.push(i[e]),this.parent.m_param2.push(r[e]);return h+1}}if(e.getEndXY().equals(t.getEndXY())){const i=[0,0],r=[0,0],h=Se(e,t,1,1,s,2,i,r,n);if(h){for(let e=0;e<h;e++)this.parent.m_param1.push(i[e]),this.parent.m_param2.push(r[e]);return this.parent.m_param1.push(1),this.parent.m_param2.push(1),h+1}}if(e.getStartXY().equals(t.getEndXY())){const i=[0,0],r=[0,0],h=Se(e,t,0,1,s,2,i,r,n);if(h){this.parent.m_param1.push(0),this.parent.m_param2.push(1);for(let e=0;e<h;e++)this.parent.m_param1.push(i[e]),this.parent.m_param2.push(r[e]);return h+1}}if(e.getEndXY().equals(t.getStartXY())){const i=[0,0],r=[0,0],h=Se(e,t,1,0,s,2,i,r,n);if(h){for(let e=0;e<h;e++)this.parent.m_param1.push(i[e]),this.parent.m_param2.push(r[e]);return this.parent.m_param1.push(1),this.parent.m_param2.push(0),h+1}}return 0}}function lt(e,t,s){let n=0;switch(e){case l.enumLine:n=0;break;case l.enumBezier:n=2;break;case l.enumRationalBezier2:n=3;break;case l.enumBezier2:n=1;break;case l.enumEllipticArc:n=0===t.projectionBehavior()?5:4;break;default:_("")}return s?5-n:n}class gt extends He{constructor(e){super(e.m_shape,e.m_tolerance,!1),this.m_parent=e}compare(e,t,s){if(this.m_bIntersectionDetected)return-1;const n=e.getElement(s),i=this.m_parent.getEdgeOriginVertices(t),r=this.m_parent.m_edgeVertices.getFirstElement(i),h=this.m_parent.getEdgeOriginVertices(n),a=this.m_parent.m_edgeVertices.getFirstElement(h);return this.m_currentNode=s,this.compareSegments(t,r,n,a)}}class ut extends We{constructor(e){super(e.m_shape,e.m_tolerance),this.m_parent=e}compare(e,t){if(this.m_bIntersectionDetected)return-1;const s=e.getElement(t),n=this.m_parent.getEdgeOriginVertices(s),i=this.m_parent.m_edgeVertices.getFirstElement(n);return this.m_currentNode=t,this.compareVertex(e,t,i)}}class ct extends m{constructor(e){super(),this.pt1=w.getNAN(),this.pt2=w.getNAN(),this.m_shape=e}compare(e,t,s){this.m_shape.queryXY(t,this.pt1);const n=e.getElement(s);return this.m_shape.queryXY(n,this.pt2),this.pt1.compare(this.pt2)}}class _t{constructor(e){this.m_point=w.getNAN(),this.m_pt=w.getNAN(),this.m_shape=e}setPoint(e){this.m_point.setCoordsPoint2D(e)}compare(e,t){const s=e.getElement(t);return this.m_shape.queryXY(s,this.m_pt),this.m_point.compare(this.m_pt)}}class dt{constructor(e,i){this.m_shape=null,this.m_progressTracker=null,this.m_edges=new t(8),this.m_clusters=new t(5),this.m_clusterVertices=new Oe(!1),this.m_edgeVertices=new Oe(!1),this.m_helperPoint=new s,this.m_eventQ=new n,this.m_sweepStructure=new n,this.m_bComplications=!1,this.m_sweepComparator=null,this.m_tempEdgeBuffer=[],this.m_modifiedClusters=[],this.m_edgesToInsertInSweepStructure=[],this.m_prevNeighbour=-1,this.m_nextNeighbour=-1,this.m_bContinuingSegmentChainOptimization=!1,this.m_progressCounter=0,this.m_segmentIntersector=new st,this.m_segBuf1=new Q,this.m_segBuf2=new Q,this.m_sweepPoint=new w(0,0),this.m_tolerance=0,this.m_toleranceSqr=0,this.m_sweepPointCluster=-1,this.m_vertexClusterIndex=-1,this.m_bCracked=!1,this.m_bSweepPointClusterWasModified=!1,this.m_progressTracker=e,this.m_bTrackChanges=i}hadComplications(){return this.m_bComplications}sweep(e,t){const s=new we;s.setSwapCoordinates(),e.applyTransformation(s),this.setEditShape_(e),this.m_bCracked=!1,this.m_tolerance=t,this.m_toleranceSqr=t*t;let n=this.sweepImpl_();return e.applyTransformation(s),n||(this.fillEventQueuePass2(),n=this.sweepImpl_()||n),this.m_shape.removeUserIndex(this.m_vertexClusterIndex),this.m_shape=null,this.m_bCracked}sweepVertical(e,t){this.setEditShape_(e),this.m_bCracked=!1,this.m_tolerance=t,this.m_toleranceSqr=t*t,this.m_bComplications=!1;let s=this.sweepImpl_();if(!this.m_bComplications){const n=e.filterClosePoints(t,!0,!1,this.m_bTrackChanges,j);this.m_bComplications=1===n,s||=1===n}return-1!==this.m_vertexClusterIndex&&(this.m_shape.removeUserIndex(this.m_vertexClusterIndex),this.m_vertexClusterIndex=-1),this.m_shape=null,s}getEdgeCluster(e,t){return this.m_edges.getField(e,0+t)}setEdgeCluster_(e,t,s){this.m_edges.setField(e,0+t,s)}getEdgeOriginVertices(e){return this.m_edges.getField(e,2)}setEdgeOriginVertices_(e,t){this.m_edges.setField(e,2,t)}getNextEdgeEx(e,t){return this.m_edges.getField(e,3+t)}setNextEdgeEx_(e,t,s){this.m_edges.setField(e,3+t,s)}getEdgeSweepNode(e){return this.m_edges.getField(e,7)}setEdgeSweepNode_(e,t){this.m_edges.setField(e,7,t)}getNextEdge(e,t){const s=this.getEdgeEnd(e,t);return this.m_edges.getField(e,3+s)}setNextEdge_(e,t,s){const n=this.getEdgeEnd(e,t);this.m_edges.setField(e,3+n,s)}getPrevEdge(e,t){const s=this.getEdgeEnd(e,t);return this.m_edges.getField(e,5+s)}setPrevEdge_(e,t,s){const n=this.getEdgeEnd(e,t);this.m_edges.setField(e,5+n,s)}getClusterVertices(e){return this.m_clusters.getField(e,0)}setClusterVertices_(e,t){this.m_clusters.setField(e,0,t)}getClusterSweepEdgeList(e){return this.m_clusters.getField(e,2)}setClusterSweepEdgeList_(e,t){this.m_clusters.setField(e,2,t)}getClusterFirstEdge(e){return this.m_clusters.getField(e,1)}setClusterFirstEdge_(e,t){this.m_clusters.setField(e,1,t)}getClusterEventQNode(e){return this.m_clusters.getField(e,3)}setClusterEventQNode_(e,t){this.m_clusters.setField(e,3,t)}newCluster_(e){const t=this.m_clusters.newElement(),s=this.m_clusterVertices.createList();return this.setClusterVertices_(t,s),e!==j&&(this.m_clusterVertices.addElement(s,e),this.m_shape.setUserIndex(e,this.m_vertexClusterIndex,t)),t}deleteCluster_(e){this.m_clusters.deleteElement(e)}addVertexToCluster_(e,t){const s=this.getClusterVertices(e);this.m_clusterVertices.addElement(s,t),this.m_shape.setUserIndex(t,this.m_vertexClusterIndex,e)}newEdge_(e){const t=this.m_edges.newElement(),s=this.m_edgeVertices.createList();return this.setEdgeOriginVertices_(t,s),-1!==e&&this.m_edgeVertices.addElement(s,e),t}addVertexToEdge_(e,t){const s=this.getEdgeOriginVertices(e);this.m_edgeVertices.addElement(s,t)}deleteEdge_(e){this.m_edges.deleteElement(e);const t=this.m_edgesToInsertInSweepStructure.findIndex((t=>t===e));t>=0&&N(this.m_edgesToInsertInSweepStructure,t)}addEdgeToCluster(e,t){-1===this.getEdgeCluster(e,0)?this.setEdgeCluster_(e,0,t):-1===this.getEdgeCluster(e,1)?this.setEdgeCluster_(e,1,t):_(""),this.addEdgeToClusterImpl_(e,t)}addEdgeToClusterImpl_(e,t){const s=this.getClusterFirstEdge(t);if(-1!==s){const n=this.getNextEdge(s,t);this.setPrevEdge_(n,t,e),this.setNextEdge_(e,t,n),this.setNextEdge_(s,t,e),this.setPrevEdge_(e,t,s)}else this.setPrevEdge_(e,t,e),this.setNextEdge_(e,t,e),this.setClusterFirstEdge_(t,e)}getEdgeEnd(e,t){return this.getEdgeCluster(e,0)===t?0:1}mergeClusters_(e,t){this.dbgCheckCluster_(e),this.dbgCheckCluster_(t);const s=this.getClusterEventQNode(t);-1!==s&&(this.m_eventQ.deleteNode(s),this.setClusterEventQNode_(t,-1));let n=this.getClusterFirstEdge(e),i=this.getClusterFirstEdge(t);if(-1!==i){let s=i,r=i,h=!1;do{this.dbgCheckEdge_(s),h=!1;const n=this.getEdgeEnd(s,t),a=this.getNextEdgeEx(s,n);if(this.getEdgeCluster(s,n+1&1)===e){this.disconnectEdge_(s);const e=this.getEdgeOriginVertices(s);if(this.m_edgeVertices.deleteList(e),this.deleteEdge_(s),s===a){i=-1;break}i===s&&(i=this.getClusterFirstEdge(t),r=a,h=!0)}s=a}while(s!==r||h);if(-1!==i){do{const n=this.getEdgeEnd(s,t),i=this.getNextEdgeEx(s,n);this.setEdgeCluster_(s,n,e),s=i}while(s!==r);if(n=this.getClusterFirstEdge(e),-1!==n){const t=this.getNextEdge(n,e),s=this.getNextEdge(i,e);t===n?(this.setClusterFirstEdge_(e,i),this.addEdgeToClusterImpl_(n,e),this.setClusterFirstEdge_(e,n)):s===i&&this.addEdgeToClusterImpl_(i,e),this.setNextEdge_(i,e,t),this.setPrevEdge_(t,e,i),this.setNextEdge_(n,e,s),this.setPrevEdge_(s,e,n)}else this.setClusterFirstEdge_(e,i)}}const r=this.getClusterVertices(e),h=this.getClusterVertices(t);for(let a=this.m_clusterVertices.getFirst(h);-1!==a;a=this.m_clusterVertices.getNext(a)){const t=this.m_clusterVertices.getElement(a);this.m_shape.setUserIndex(t,this.m_vertexClusterIndex,e)}this.m_clusterVertices.concatenateLists(r,h),this.deleteCluster_(t),this.dbgCheckCluster_(e)}mergeEdges_(e,t){this.dbgCheckEdge_(e),this.dbgCheckEdge_(t);const s=this.getEdgeCluster(e,0),n=this.getEdgeCluster(e,1),i=this.getEdgeCluster(t,0),r=this.getEdgeCluster(t,1),h=this.getEdgeOriginVertices(e),a=this.getEdgeOriginVertices(t);if(this.m_edgeVertices.concatenateLists(h,a),t===this.getClusterFirstEdge(s)&&this.setClusterFirstEdge_(s,e),t===this.getClusterFirstEdge(n)&&this.setClusterFirstEdge_(n,e),this.disconnectEdge_(t),this.deleteEdge_(t),!(s===i&&n===r||n===i&&s===r)){const e=this.getClusterXY(s),t=this.getClusterXY(i);e.isEqualPoint2D(t)?(s!==i&&this.mergeClusters_(s,i),n!==r&&this.mergeClusters_(n,r)):(n!==i&&this.mergeClusters_(n,i),s!==r&&this.mergeClusters_(s,r))}this.dbgCheckEdge_(e)}disconnectEdge_(e){const t=this.getEdgeCluster(e,0),s=this.getEdgeCluster(e,1);this.disconnectEdgeFromCluster_(e,t),this.disconnectEdgeFromCluster_(e,s)}disconnectEdgeFromCluster_(e,t){const s=this.getNextEdge(e,t),n=this.getPrevEdge(e,t),i=this.getClusterFirstEdge(t);s!==e?(this.setNextEdge_(n,t,s),this.setPrevEdge_(s,t,n),i===e&&this.setClusterFirstEdge_(t,s)):this.setClusterFirstEdge_(t,-1)}applyIntersectorToEditShape_(e,t,s){let n=this.m_edgeVertices.getFirst(e);const i=this.m_edgeVertices.getElement(n),r=this.getClusterFromVertex(i),h=this.m_shape.getNextVertex(i),a=this.getClusterFromVertex(h),o=this.m_shape.getXY(i),m=this.m_shape.getXY(h);let l=!1,g=!1;const u=t.getResultSegment(s,0).getStartXY(),c=t.getResultSegment(s,t.getResultSegmentCount(s)-1).getEndXY();o.equals(u)||(l=!0),m.equals(c)||(g=!0),this.m_shape.splitSegmentWithIntersector(i,t,s,!0,!0);const _=this.m_bTrackChanges&&t.getSegmentChanged(s);for(_&&this.m_shape.setGeometryModifiedWithVertex(i,!0),n=this.m_edgeVertices.getNext(n);-1!==n;n=this.m_edgeVertices.getNext(n)){const e=this.m_edgeVertices.getElement(n),i=this.getClusterFromVertex(e)===r;this.m_shape.splitSegmentWithIntersector(e,t,s,i,!0),_&&this.m_shape.setGeometryModifiedWithVertex(e,!0)}if(l&&this.updateClusterXY(!0,r,u,t.getResultSegmentStartPointWeight(s,0),t.getResultSegmentStartPointRank(s,0)),g){const e=t.getResultSegmentCount(s)-1;this.updateClusterXY(!0,a,c,t.getResultSegmentEndPointWeight(s,e),t.getResultSegmentEndPointRank(s,e))}}createEdgesAndClustersFromSplitEdge_(e,s,n){this.dbgCheckNewEdgesArray_();const i=this.getEdgeOriginVertices(e),r=this.getEdgeCluster(e,0),h=this.getEdgeCluster(e,1);let a=this.newEdge_(-1);this.m_edgesToInsertInSweepStructure.push(a);const o=t.impossibleIndex3();this.setEdgeSweepNode_(a,o),this.m_tempEdgeBuffer.push(a),this.addEdgeToCluster(a,r);const m=s.getResultSegmentCount(n);for(let t=1;t<m;t++){const e=this.newCluster_(-1);this.m_modifiedClusters.push(e),this.m_tempEdgeBuffer.push(e),this.addEdgeToCluster(a,e);const t=this.newEdge_(-1);this.m_edgesToInsertInSweepStructure.push(t),this.setEdgeSweepNode_(t,o),this.m_tempEdgeBuffer.push(t),this.addEdgeToCluster(t,e),a=t}this.addEdgeToCluster(a,h);for(let t=this.m_edgeVertices.getFirst(i);-1!==t;t=this.m_edgeVertices.getNext(t)){let e=this.m_edgeVertices.getElement(t);if(this.getClusterFromVertex(e)===r){let t=0;const s=this.m_tempEdgeBuffer.length;do{if(t>0){const s=this.m_tempEdgeBuffer[t-1];this.addVertexToCluster_(s,e)}const s=this.m_tempEdgeBuffer[t];t+=2,this.addVertexToEdge_(s,e),e=this.m_shape.getNextVertex(e)}while(t<s)}else{let t=this.m_tempEdgeBuffer.length-1;do{if(t<this.m_tempEdgeBuffer.length-2){const s=this.m_tempEdgeBuffer[t+1];this.addVertexToCluster_(s,e)}const s=this.m_tempEdgeBuffer[t];t-=2,this.addVertexToEdge_(s,e),e=this.m_shape.getNextVertex(e)}while(t>=0)}}this.m_tempEdgeBuffer.length=0,this.dbgCheckNewEdgesArray_()}getVertexFromClusterIndex(e){const t=this.getClusterVertices(e);return this.m_clusterVertices.getFirstElement(t)}getClusterFromVertex(e){return this.m_shape.getUserIndex(e,this.m_vertexClusterIndex)}processSplitHelper1_(e,s,n){const i=this.getEdgeCluster(s,0),r=this.getClusterXY(i),h=this.getEdgeCluster(s,1),a=this.getClusterXY(h),o=n.getResultSegmentCount(e);let m=n.getResultSegment(e,0);const l=m.getStartXY();if(!r.isEqualPoint2D(l)){if(!this.m_bComplications){r.compare(this.m_sweepPoint)*l.compare(this.m_sweepPoint)<0&&(this.m_bComplications=!0)}this.getAffectedEdges(i,this.m_tempEdgeBuffer),this.m_modifiedClusters.push(i)}if(!this.m_bComplications&&o>1){const e=r.compare(a),t=m.getEndXY();(r.compare(t)!==e||t.compare(a)!==e||t.compare(this.m_sweepPoint)<0)&&(this.m_bComplications=!0)}m=n.getResultSegment(e,o-1);const g=m.getEndXY();if(!a.isEqualPoint2D(g)){if(!this.m_bComplications){a.compare(this.m_sweepPoint)*g.compare(this.m_sweepPoint)<0&&(this.m_bComplications=!0)}this.getAffectedEdges(h,this.m_tempEdgeBuffer),this.m_modifiedClusters.push(h)}this.m_tempEdgeBuffer.push(s);for(let u=0,c=this.m_tempEdgeBuffer.length;u<c;u++){const e=this.m_tempEdgeBuffer[u],n=this.getEdgeSweepNode(e);t.isValidElement(n)&&(this.m_sweepStructure.deleteNode(n),this.setEdgeSweepNode_(e,-1));const i=t.impossibleIndex3();e!==s&&this.getEdgeSweepNode(e)!==i&&(this.m_edgesToInsertInSweepStructure.push(e),this.setEdgeSweepNode_(e,i))}this.m_tempEdgeBuffer.length=0}checkAndFixIntersection_(e,t){const s=this.m_sweepStructure.getElement(e);return this.m_sweepComparator.compare(this.m_sweepStructure,s,t),!!this.m_sweepComparator.intersectionDetected()&&(this.m_sweepComparator.clearIntersectionDetectedFlag(),this.fixIntersection_(e,t),!0)}fixIntersection_(e,t){this.m_bCracked=!0;const s=this.m_sweepStructure.getElement(e),n=this.m_sweepStructure.getElement(t);let i=null,r=null;const h=this.getEdgeOriginVertices(s),a=this.m_edgeVertices.getFirstElement(h),o=this.getEdgeOriginVertices(n),m=this.m_edgeVertices.getFirstElement(o),l=this.m_shape.querySegment(a,this.m_segBuf1,!1,!1);u(l),i=this.m_segBuf1.get();const g=this.m_shape.getNextVertex(a),c=this.m_shape.getWeight(a),_=this.m_shape.getSegmentParentageBreakVertex(a),d=this.m_shape.getWeight(g),p=this.m_shape.getSegmentParentageBreakVertex(g),f=this.m_shape.getSegmentWeight(a),S=this.m_shape.getRank(a),x=this.m_shape.getRank(g),C=this.m_shape.getSegmentRank(a),E=this.m_shape.getSegmentParentage(a),I=this.m_shape.querySegment(m,this.m_segBuf2,!1,!1);u(I),r=this.m_segBuf2.get();const w=this.m_shape.getNextVertex(m),b=this.m_shape.getWeight(m),N=this.m_shape.getSegmentParentageBreakVertex(m),P=this.m_shape.getWeight(w),v=this.m_shape.getSegmentParentageBreakVertex(w),y=this.m_shape.getSegmentWeight(m),k=this.m_shape.getRank(m),V=this.m_shape.getRank(w),T=this.m_shape.getSegmentRank(m),B=this.m_shape.getSegmentParentage(m);this.m_segmentIntersector.pushSegment(i,c,S,d,x,f,C,_,p,E),this.m_segmentIntersector.pushSegment(r,b,k,P,V,y,T,N,v,B),3===this.m_segmentIntersector.intersect2D(this.m_tolerance,!0)&&(this.m_bComplications=!0),this.splitEdge_(s,n,-1,this.m_segmentIntersector),this.m_segmentIntersector.clear()}fixIntersectionPointSegment_(e,t){this.m_bCracked=!0;const s=this.m_sweepStructure.getElement(t);let n=null;const i=this.getEdgeOriginVertices(s),r=this.m_edgeVertices.getFirstElement(i),h=this.m_shape.querySegment(r,this.m_segBuf1,!1,!1);u(h),n=this.m_segBuf1.get();const a=this.m_shape.getNextVertex(r),o=this.m_shape.getWeight(r),m=this.m_shape.getSegmentParentageBreakVertex(r),l=this.m_shape.getWeight(a),g=this.m_shape.getSegmentParentageBreakVertex(a),c=this.m_shape.getSegmentWeight(r),_=this.m_shape.getRank(r),d=this.m_shape.getRank(a),p=this.m_shape.getSegmentRank(r),f=this.m_shape.getSegmentParentage(r),S=this.getClusterFirstVertex(e);this.m_segmentIntersector.pushSegment(n,o,_,l,d,c,p,m,g,f),this.m_shape.queryPoint(S,this.m_helperPoint);const x=this.m_shape.getWeight(S),C=this.m_shape.getRank(S);this.m_segmentIntersector.intersect2DEx(this.m_tolerance,this.m_helperPoint,C,x,!0),this.splitEdge_(s,-1,e,this.m_segmentIntersector),this.m_segmentIntersector.clear()}insertNewEdges_(){if(0===this.m_edgesToInsertInSweepStructure.length)return!0;this.dbgCheckNewEdgesArray_();let e=!0,s=0;const n=this.m_edgesToInsertInSweepStructure.length,i=Math.max(2*n+200,this.m_sweepStructure.size()+200);for(;this.m_edgesToInsertInSweepStructure.length;){if(this.m_edgesToInsertInSweepStructure.length>Math.max(100,this.m_shape.getTotalPointCount())||s>i){this.m_edgesToInsertInSweepStructure.length=0,this.m_bComplications=!0,e=!1;break}const n=this.m_edgesToInsertInSweepStructure.at(-1);this.m_edgesToInsertInSweepStructure.pop(),this.setEdgeSweepNode_(n,-1);const r=this.isEdgeOnSweepLine_(n);t.isValidElement(r)?(this.insertNewEdgeToSweepStructure_(n,r),s++):r!==t.impossibleIndex2()&&(e=!1),this.m_bContinuingSegmentChainOptimization=!1}return e}insertNewEdgeToSweepStructure_(e,t){let s;if(this.m_bContinuingSegmentChainOptimization?(s=this.m_sweepStructure.addElementAtPosition(this.m_prevNeighbour,this.m_nextNeighbour,e,!0,!0),this.m_bContinuingSegmentChainOptimization=!1):s=this.m_sweepStructure.addUniqueElement(e),-1===s){const t=this.m_sweepStructure.getDuplicateElement(),s=this.m_sweepStructure.getElement(t);return this.mergeEdges_(s,e),!1}if(this.setEdgeSweepNode_(e,s),this.m_sweepComparator.intersectionDetected()){this.m_sweepComparator.clearIntersectionDetectedFlag();const e=this.m_sweepComparator.getLastComparedNode();return this.m_prevNeighbour===e&&(this.m_prevNeighbour=-1),this.m_nextNeighbour===e&&(this.m_nextNeighbour=-1),this.fixIntersection_(e,s),!0}return!1}isEdgeOnSweepLine_(e){const s=this.getEdgeCluster(e,0),n=this.getEdgeCluster(e,1),i=this.getClusterXY(s),r=this.getClusterXY(n);if(w.sqrDistance(i,r)<=this.m_toleranceSqr)return this.m_bComplications=!0,-1;const h=i.compare(this.m_sweepPoint),a=r.compare(this.m_sweepPoint);return h<=0&&a>0?n:a<=0&&h>0?s:h>0&&a>0?t.impossibleIndex2():-1}fillEventQueue(){const e=new i(0),t=this.m_shape.queryVertexIteratorOnSelection();for(let i=t.next();i!==j;i=t.next())-1!==this.m_shape.getUserIndex(i,this.m_vertexClusterIndex)&&e.add(i);this.m_shape.sortVerticesSimpleByY(e,0,e.size()),this.progress_(!0),this.m_eventQ.clear(),this.m_eventQ.setCapacity(e.size()),this.m_eventQ.setComparator(new ct(this.m_shape));const s=w.getNAN();s.setNAN();let n=-1;for(let i=0,r=e.size();i<r;i++){const t=e.read(i);if(this.m_shape.getXY(t).isEqualPoint2D(s)){const e=this.m_shape.getUserIndex(t,this.m_vertexClusterIndex);this.mergeClusters_(n,e);continue}n=this.getClusterFromVertex(t),this.m_shape.queryXY(t,s);const r=this.m_eventQ.addBiggestElement(t);this.setClusterEventQNode_(n,r)}}fillEventQueuePass2(){const e=new i(0);for(let t=this.m_eventQ.getFirst();-1!==t;t=this.m_eventQ.getNext(t)){const s=this.m_eventQ.getElement(t);e.add(s)}this.m_eventQ.clear(),this.m_shape.sortVerticesSimpleByY(e,0,e.size()),this.progress_(!0);for(let t=0,s=e.size();t<s;t++){const s=e.read(t),n=this.getClusterFromVertex(s),i=this.m_eventQ.addBiggestElement(s);this.setClusterEventQNode_(n,i)}}getAffectedEdges(e,s){const n=this.getClusterFirstEdge(e);if(-1===n)return;let i=n;do{const n=this.getEdgeSweepNode(i);t.isValidElement(n)&&s.push(i),i=this.getNextEdge(i,e)}while(i!==n)}updateClusterXY(e,t,s,n,i){const r=this.getClusterVertices(t);for(let h=this.m_clusterVertices.getFirst(r);-1!==h;h=this.m_clusterVertices.getNext(h)){const t=this.m_clusterVertices.getElement(h);this.m_shape.setXYMonotonicPoint2D(t,s),this.m_shape.setWeight(t,n),this.m_shape.setRank(t,i),e&&this.m_bTrackChanges&&this.m_shape.setGeometryModifiedWithVertex(t,!0),this.m_shape.setSegmentParentageBreakVertex(t,!0)}}splitEdge_(e,t,s,n){this.dbgCheckEdge_(e),-1!==t&&this.dbgCheckEdge_(t),this.disconnectEdge_(e),-1!==t&&this.disconnectEdge_(t),this.processSplitHelper1_(0,e,n),-1!==t&&this.processSplitHelper1_(1,t,n),-1!==s&&n.getResultPointChanged()&&this.m_modifiedClusters.push(s);for(let h=0,a=this.m_modifiedClusters.length;h<a;h++){const e=this.m_modifiedClusters[h],t=this.getClusterEventQNode(e);-1!==t&&(this.m_eventQ.deleteNode(t),this.setClusterEventQNode_(e,-1))}const i=this.getEdgeOriginVertices(e),r=-1!==t?this.getEdgeOriginVertices(t):-1;if(this.applyIntersectorToEditShape_(i,n,0),-1!==r)this.applyIntersectorToEditShape_(r,n,1);else{const e=n.getResultPoint().getXY();this.updateClusterXY(n.getResultPointChanged(),s,e,n.getResultPointWeight(),n.getResultPointRank())}this.createEdgesAndClustersFromSplitEdge_(e,n,0),-1!==t&&this.createEdgesAndClustersFromSplitEdge_(t,n,1),this.m_edgeVertices.deleteList(i),this.deleteEdge_(e),-1!==t&&(this.m_edgeVertices.deleteList(r),this.deleteEdge_(t));for(let h=0,a=this.m_modifiedClusters.length;h<a;h++){const e=this.m_modifiedClusters[h];e===this.m_sweepPointCluster&&(this.m_bSweepPointClusterWasModified=!0);let t=this.getClusterEventQNode(e);if(-1===t){const s=this.getClusterFirstVertex(e);if(t=this.m_eventQ.addUniqueElement(s),-1===t){const t=this.m_eventQ.getDuplicateElement(),s=this.m_eventQ.getElement(t),n=this.getClusterFromVertex(s);this.mergeClusters_(n,e)}else this.setClusterEventQNode_(e,t)}}this.m_modifiedClusters.length=0}getClusterXY(e){const t=this.getClusterFirstVertex(e);return this.m_shape.getXY(t)}getClusterFirstVertex(e){const t=this.getClusterVertices(e);return this.m_clusterVertices.getFirstElement(t)}dbgCheckEdge_(e){}dbgCheckCluster_(e){}dbgCheckNewEdgesArray_(){}dbgSaveSweepStructure_(e){}sweepImpl_(){this.progress_(!0),this.m_bSweepPointClusterWasModified=!1,this.m_sweepPointCluster=-1,null===this.m_sweepComparator&&(this.m_sweepStructure.disableBalancing(),this.m_sweepComparator=new gt(this),this.m_sweepStructure.setComparator(this.m_sweepComparator));const e=[];let s=null,n=null;this.m_prevNeighbour=-1,this.m_nextNeighbour=-1,this.m_bContinuingSegmentChainOptimization=!1;const i=t.impossibleIndex2(),r=t.impossibleIndex3();for(let t=this.m_eventQ.getFirst();-1!==t;){this.progress_(),this.dbgCheckSweepStructure_(),this.m_bContinuingSegmentChainOptimization=!1,this.m_prevNeighbour=-1,this.m_nextNeighbour=-1;const h=this.m_eventQ.getElement(t);this.m_sweepPointCluster=this.getClusterFromVertex(h),this.m_shape.queryXY(h,this.m_sweepPoint),this.m_sweepComparator.setSweepY(this.m_sweepPoint.y,this.m_sweepPoint.x);let a=!1;{const t=this.getClusterFirstEdge(this.m_sweepPointCluster);if(a=-1===t,!a){let s=t;do{const t=this.getEdgeSweepNode(s);-1===t?(this.m_edgesToInsertInSweepStructure.push(s),this.setEdgeSweepNode_(s,r)):t!==r&&e.push(t),s=this.getNextEdge(s,this.m_sweepPointCluster)}while(s!==t)}}if(!this.m_sweepStructure.isAutoBalancing()&&(this.m_sweepStructure.getMaxDepthEver()>4||this.m_edgesToInsertInSweepStructure.length>10)&&this.m_sweepStructure.enableBalancing(),e.length>0){this.m_bContinuingSegmentChainOptimization=1===e.length&&1===this.m_edgesToInsertInSweepStructure.length;for(let n=0,r=e.length;n<r;n++){const t=this.m_sweepStructure.getElement(e[n]);this.setEdgeSweepNode_(t,i)}let t=i,s=i;for(let n=0,r=e.length;n<r;n++){const r=e[n];if(t===i){const e=this.m_sweepStructure.getPrev(r);if(-1!==e){const s=this.m_sweepStructure.getElement(e);this.getEdgeSweepNode(s)!==i&&(t=e)}else t=-1}if(s===i){const e=this.m_sweepStructure.getNext(r);if(-1!==e){const t=this.m_sweepStructure.getElement(e);this.getEdgeSweepNode(t)!==i&&(s=e)}else s=-1}if(t!==i&&s!==i)break}for(let n=0,i=e.length;n<i;n++){const t=e[n],s=this.m_sweepStructure.getElement(t);this.m_sweepStructure.deleteNode(t),this.setEdgeSweepNode_(s,-1)}e.length=0,this.m_prevNeighbour=t,this.m_nextNeighbour=s,-1!==t&&-1!==s?this.m_bContinuingSegmentChainOptimization||this.checkAndFixIntersection_(t,s):-1===t&&-1===s&&(this.m_bContinuingSegmentChainOptimization=!1)}else a&&(null===s&&(s=new ut(this)),s.setPoint(this.m_sweepPoint),this.m_sweepStructure.searchUpperBound(s),s.intersectionDetected()&&(s.clearIntersectionDetectedFlag(),this.fixIntersectionPointSegment_(this.m_sweepPointCluster,s.getCurrentNode())));const o=this.m_bContinuingSegmentChainOptimization;!this.insertNewEdges_()&&o&&-1!==this.m_prevNeighbour&&-1!==this.m_nextNeighbour&&this.checkAndFixIntersection_(this.m_prevNeighbour,this.m_nextNeighbour),this.m_bSweepPointClusterWasModified?(this.m_bSweepPointClusterWasModified=!1,null===n&&(n=new _t(this.m_shape)),n.setPoint(this.m_sweepPoint),t=this.m_eventQ.searchUpperBound(n)):t=this.m_eventQ.getNext(t)}return this.m_bCracked}setEditShape_(e){this.m_shape=e,this.m_vertexClusterIndex=this.m_shape.createUserIndex(),this.m_edges.setCapacity(e.getSelectedCount()+32),this.m_clusters.setCapacity(e.getSelectedCount()),this.m_clusterVertices.reserveLists(e.getSelectedCount()),this.m_clusterVertices.reserveNodes(e.getSelectedCount()),this.m_edgeVertices.reserveLists(e.getSelectedCount()+32),this.m_edgeVertices.reserveNodes(e.getSelectedCount()+32);for(let t=this.m_shape.getFirstGeometry();t!==j;t=this.m_shape.getNextGeometry(t)){if(d(this.m_shape.getGeometryType(t)))for(let s=this.m_shape.getFirstPath(t);s!==j;s=this.m_shape.getNextPath(s)){const t=this.m_shape.getPathSize(s),n=this.m_shape.getFirstVertex(s);if(n===j)continue;let i=this.m_shape.getNextVertex(n);if(i===j||i===n)continue;let r=-1;e.selected(n)&&(r=this.newCluster_(n));let h=-1;-1!==r&&e.selected(i)&&(h=this.newEdge_(n),this.addEdgeToCluster(h,r));let a=h;for(let e=0,s=t-2;e<s;e++){const e=this.m_shape.getNextVertex(i);let t=-1;if(this.m_shape.selected(i)){const s=this.newCluster_(i);-1!==a&&this.addEdgeToCluster(a,s),this.m_shape.selected(e)&&(t=this.newEdge_(i),this.addEdgeToCluster(t,s))}a=t,i=e}if(this.m_shape.isClosedPath(s)){const e=this.m_shape.getNextVertex(i);if(this.m_shape.selected(i)){const t=this.newCluster_(i);if(-1!==a&&this.addEdgeToCluster(a,t),this.m_shape.selected(e)){const e=this.newEdge_(i);this.addEdgeToCluster(e,t),this.addEdgeToCluster(e,r)}}}else{let e=-1;this.m_shape.selected(i)&&(e=this.newCluster_(i),-1!==a&&this.addEdgeToCluster(a,e))}}else for(let e=this.m_shape.getFirstPath(t);e!==j;e=this.m_shape.getNextPath(e)){let t=this.m_shape.getFirstVertex(e);for(let s=0,n=this.m_shape.getPathSize(e);s<n;s++)this.m_shape.selected(t)&&this.newCluster_(t),t=this.m_shape.getNextVertex(t)}}this.fillEventQueue()}progress_(e=!1){}dbgCheckSweepStructure_(){}}function pt(e){for(let t=e.getFirstGeometry();t!==j;t=e.getNextGeometry(t))if(d(e.getGeometryType(t)))return!0;return!1}function ft(e,t,s,n){if(!pt(e))return!1;const i=new Et(n);i.m_shape=e,i.m_tolerance=t,i.m_bTrackChanges=s;let r=!1;const h=e.hasCurves()?5:15;return r=e.getTotalPointCount()<h?i.crackBruteForce_():i.crackerPlaneSweep_(),r}function St(e,t,s,n,i){if(!pt(t))return!1;let r=new Et(i);if(r.m_shape=t,r.m_tolerance=s,r.m_bAllowCoincident=e,r.m_bNeedsNonSimpleResult=null!==n,r.needsCrackingImpl_())return n&&n.assign(r.m_nonSimpleResult),!0;const h=new we;h.setSwapCoordinates(),t.applyTransformation(h),r=new Et(i),r.m_shape=t,r.m_tolerance=s,r.m_bAllowCoincident=e,r.m_bNeedsNonSimpleResult=null!==n;const a=r.needsCrackingImpl_();return t.applyTransformation(h),!!a&&(n&&n.assign(r.m_nonSimpleResult),!0)}function xt(e,t,s,n){const i=t.getGeometryType();if(d(i)){return new Et(n).crackAWithBMultiPath_(e,t,s)}p("crack_A_with_B")}function Ct(e,t){return{t:e,index:t}}class Et{crackBruteForce_(){let e=this.crackBruteForceImpl_();if(!e&&this.m_shape.hasCurves()){const t=new we;t.setSwapCoordinates(),this.m_shape.applyTransformation(t),e=this.crackBruteForceImpl_(),this.m_shape.applyTransformation(t)}return e}crackBruteForceImpl_(){let e=!1;const t=new Q,n=new Q,i=Ce.constructEmpty(),r=Ce.constructEmpty(),h=!1,a=new s,o=new st,m=this.m_shape.getTotalPointCount(),l=m*m*2,g=this.m_shape.queryVertexIteratorOnSelection();for(let s=g.next();s!==j;s=g.next()){const m=this.m_shape.getGeometryType(g.currentGeometry());let c=1,_=1,d=1,p=0,f=0,x=0;const C=this.m_shape.getSegmentParentage(s);let E=!1,I=!1,w=null,b=!1;if(S(m))c=this.m_shape.getWeight(s),p=this.m_shape.getRank(s);else{if(w=this.getSegment_(s,t),null===w)continue;const e=this.m_shape.getVertexIndex(s);c=this.m_shape.getWeightWithIndex(e),p=this.m_shape.getRankWithIndex(e),d=this.m_shape.getSegmentWeightWithIndex(e),x=this.m_shape.getSegmentRankWithIndex(e),E=this.m_shape.getSegmentParentageBreakVertex(s);{const e=this.m_shape.getNextVertex(s);_=this.m_shape.getWeight(e),f=this.m_shape.getRank(e),I=this.m_shape.getSegmentParentageBreakVertex(e)}if(w.queryLooseEnvelope(i),i.inflateCoords(this.m_tolerance,this.m_tolerance),w.isDegenerate(this.m_tolerance)){if(!w.isDegenerate(0))continue;b=!0,w=null}}const N=new oe({copy:g});let P=N.next();P!==j&&(P=N.next());let v=0;for(;P!==j;P=N.next()){if(0!==v){v--;continue}if(this.m_shape.getTotalPointCount()>l)return e;this.progress_();const m=this.m_shape.getGeometryType(N.currentGeometry());let y=null,k=!1,V=0,T=0,B=0,q=0,F=0,X=0,Y=!1,D=!1;const A=this.m_shape.getSegmentParentage(P);if(S(m))V=this.m_shape.getWeight(P),q=this.m_shape.getRank(P);else{if(y=this.getSegment_(P,n),null===y)continue;const e=this.m_shape.getVertexIndex(P);V=this.m_shape.getWeightWithIndex(e),q=this.m_shape.getRankWithIndex(e),B=this.m_shape.getSegmentWeightWithIndex(e),X=this.m_shape.getSegmentRankWithIndex(e),Y=this.m_shape.getSegmentParentageBreakVertex(P);{const e=this.m_shape.getNextVertex(P);T=this.m_shape.getWeight(e),F=this.m_shape.getRank(e),D=this.m_shape.getSegmentParentageBreakVertex(e)}if(y.queryLooseEnvelope(r),y.isDegenerate(this.m_tolerance)){if(!y.isDegenerate(0))continue;k=!0,y=null}}let R=0,M=0;if(null!==w&&null!==y){if(i.isIntersectingNe(r)){0!==me(!0,!0,w,y,this.m_tolerance,!0)&&(o.pushSegment(w,c,p,_,f,d,x,E,I,C),o.pushSegment(y,V,q,T,F,B,X,Y,D,A),o.intersect2D(this.m_tolerance,!0),e||=o.getSegmentChanged(0)||o.getSegmentChanged(1),R=o.getResultSegmentCount(0),M=o.getResultSegmentCount(1),R+M>0&&(this.m_shape.splitSegmentWithIntersector(s,o,0,!0,!0),this.m_shape.splitSegmentWithIntersector(P,o,1,!0,!0),this.m_bTrackChanges&&(o.getSegmentChanged(0)&&this.m_shape.setGeometryModifiedWithVertex(s,!0),o.getSegmentChanged(1)&&this.m_shape.setGeometryModifiedWithVertex(P,!0))),M>1&&(v+=M-1),o.clear())}}else if(null!==w){const t=this.m_shape.getXY(P);if(i.contains(t)){if(o.pushSegment(w,c,p,_,f,d,x,E,I,C),this.m_shape.queryPoint(P,a),o.intersect2DEx(this.m_tolerance,a,q,V,h),e||=o.getSegmentChanged(0)||o.getResultPointChanged(),R=o.getResultSegmentCount(0),R>0)if(this.m_bTrackChanges&&(o.getSegmentChanged(0)&&this.m_shape.setGeometryModifiedWithVertex(s,!0),o.getSegmentChanged(1)&&this.m_shape.setGeometryModifiedWithVertex(P,!0)),this.m_shape.splitSegmentWithIntersector(s,o,0,!0,!0),k){let e=j;for(let t=this.m_shape.getNextVertex(P);t!==j&&t!==P&&(y=this.getSegment_(t,n),e=t,null!=y&&y.isDegenerate(0));t=this.m_shape.getNextVertex(t));for(let t=P;t!==j&&(this.m_shape.setPoint(t,o.getResultPoint(),!0),t!==e);t=this.m_shape.getNextVertex(t));}else this.m_shape.setPoint(P,o.getResultPoint(),!0);o.clear()}}else{if(null===y)continue;{const t=this.m_shape.getXY(s);if(r.inflateCoords(this.m_tolerance,this.m_tolerance),r.contains(t)){if(o.pushSegment(y,V,q,T,F,B,X,Y,D,A),this.m_shape.queryPoint(s,a),o.intersect2DEx(this.m_tolerance,a,p,c,h),e||=o.getSegmentChanged(0)||o.getResultPointChanged(),M=o.getResultSegmentCount(0),M>0)if(this.m_bTrackChanges&&(o.getSegmentChanged(0)&&this.m_shape.setGeometryModifiedWithVertex(P,!0),o.getSegmentChanged(1)&&this.m_shape.setGeometryModifiedWithVertex(s,!0)),this.m_shape.splitSegmentWithIntersector(P,o,0,!0,!0),v+=M-1,b){let e=j;for(let t=this.m_shape.getNextVertex(s);t!==j&&t!==s&&(y=this.getSegment_(t,n),e=t,null!=y&&y.isDegenerate(0));t=this.m_shape.getNextVertex(t));for(let t=s;t!==j&&(this.m_shape.setPoint(t,o.getResultPoint(),!0),t!==e);t=this.m_shape.getNextVertex(t));}else this.m_shape.setPoint(s,o.getResultPoint(),!0);o.clear()}}}if(R+M!==0&&0!==R){let e=!1;for(;w=this.getSegment_(s,t),null!=w&&(w.queryEnvelope(i),w.isDegenerate(this.m_tolerance));){if(!(R>1)){e=!0;break}s=g.next(),R--,u(s!==j)}if(e)break}}}return e}crackerPlaneSweep_(){return this.planesweep_()}planesweep_(){return new dt(this.m_progressTracker,this.m_bTrackChanges).sweep(this.m_shape,this.m_tolerance)}needsCrackingImpl_(){let e=!1;const t=new i(0);t.resize(this.m_shape.getSelectedCount());const s=this.m_shape.queryVertexIteratorOnSelection();for(let i=0,g=s.next();g!==j;++i,g=s.next())t.write(i,g);this.m_shape.sortVerticesSimpleByY(t,0,t.size()),t.add(j);const n=this.m_shape.createUserIndex(),r=this.m_shape.createUserIndex();this.m_sweepComparator=new He(this.m_shape,this.m_tolerance,!this.m_bAllowCoincident),this.m_sweepStructure.setComparator(this.m_sweepComparator);let h=null;const a=[],o=[];let m=0;const l=new w;for(let i=t.read(m++);i!==j;){this.m_shape.queryXY(i,l);let s=!1;do{let e=this.m_shape.getNextVertex(i),h=this.m_shape.getPrevVertex(i);s||=e!==j||h!==j,e===j||this.m_shape.selected(e)||(e=j),h===j||this.m_shape.selected(h)||(h=j),e!==j&&this.m_shape.compareVerticesSimpleY(i,e)<0&&(o.push(i),o.push(e)),h!==j&&this.m_shape.compareVerticesSimpleY(i,h)<0&&(o.push(h),o.push(h));const l=this.m_shape.getUserIndex(i,n);-1!==l&&(a.push(l),this.m_shape.setUserIndex(i,n,-1));const g=this.m_shape.getUserIndex(i,r);-1!==g&&(a.push(g),this.m_shape.setUserIndex(i,r,-1)),i=t.read(m++)}while(i!==j&&this.m_shape.isEqualXYPoint2D(i,l));if(!s&&(null===h&&(h=new We(this.m_shape,this.m_tolerance)),h.setPoint(l),this.m_sweepStructure.searchUpperBound(h),h.intersectionDetected())){e=!0,this.m_bNeedsNonSimpleResult&&(_("needsCrackingIMpl_"),this.m_nonSimpleResult=new be(6,-1,-1));break}let g=1===a.length&&2===o.length;const u=32;a.length>u&&T(a);let c=-1,d=-1;if(!g)for(let t=0,n=a.length;t<n;t++){const s=a[t],n=this.m_sweepStructure.getPrev(s);if(-1!==n&&-1===a.indexOf(n))if(-1===c)c=n;else{if(e=!0,!this.m_bNeedsNonSimpleResult)break;this.m_nonSimpleResult=new be(6,-1,-1)}const i=this.m_sweepStructure.getNext(s);if(-1!==i&&-1===a.indexOf(i))if(-1===d)d=i;else{if(e=!0,!this.m_bNeedsNonSimpleResult)break;this.m_nonSimpleResult=new be(6,-1,-1)}if(-1!==c&&-1!==d)break}if(e&&!this.m_bNeedsNonSimpleResult)break;if(this.m_sweepComparator.setSweepY(l.y,l.x),!g){for(let e=0,t=a.length;e<t;e++){const t=a[e];this.m_sweepStructure.deleteNode(t)}a.length=0}if(!g&&-1!==c&&-1!==d&&this.checkForIntersections_(c,d)){e=!0,this.m_bNeedsNonSimpleResult&&(this.m_nonSimpleResult=this.m_sweepComparator.getResult());break}for(let t=0,i=o.length;t<i;t+=2){const s=o[t],i=o[t+1];let h;if(g?(h=this.m_sweepStructure.replaceElementAtPosition(a[0],s,!0,!0),a.length=0,g=!1):h=this.m_sweepStructure.addElement(s),this.m_sweepComparator.intersectionDetected()){this.m_bNeedsNonSimpleResult&&(this.m_nonSimpleResult=this.m_sweepComparator.getResult()),e=!0;break}-1===this.m_shape.getUserIndex(i,n)?this.m_shape.setUserIndex(i,n,h):this.m_shape.setUserIndex(i,r,h)}if(e)break;o.length=0}return this.m_shape.removeUserIndex(n),this.m_shape.removeUserIndex(r),e}checkForIntersections_(e,t){const s=this.m_sweepStructure.getElement(e);this.m_sweepComparator.compare(this.m_sweepStructure,s,t);const n=this.m_sweepComparator.intersectionDetected();return this.m_sweepComparator.clearIntersectionDetectedFlag(),n}getSegment_(e,t){return Et.st_getSegment(this.m_shape,e,t)}static st_getSegment(e,t,s){return e.querySegment(t,s,!1,!1)?s.get():null}dbgPrintSweepEdge(e){}dbgPrintSweepStructure(){}dbgSaveSweepStructure(e=null){}dbgCheckSweepStructure(){}progress_(e=!1){this.m_progressCounter++}crackAWithBMultiPath_(t,s,n){const i=Ce.constructEmpty();t.queryLooseEnvelope(i);const r=Ce.constructEmpty();if(s.queryLooseEnvelope(r),r.inflateCoords(n,n),!r.isIntersecting(i))return t;const h=t.getImpl(),a=h.getAccelerators();let o=null,m=null;a&&(m=a.getQuadTree()),It(t,x(s))&&(o=e(h,r),m=o);const g=m?m.getIteratorForQT():null,c=s.querySegmentIterator(),_=t.querySegmentIterator(),d=new Array(15),p=[];for(;c.nextPath();)for(;c.hasNextSegment();){const e=c.nextSegment();if(m){g.resetIterator(e,n);for(let t=g.next();-1!==t;t=g.next()){this.progress_();const s=m.getElement(t);if(_.resetToVertex(s,-1),_.hasNextSegment()){const t=_.nextSegment().intersect(e,null,d,null,n);for(let e=0;e<t;e++){const t=d[e];if(0===t||1===t)continue;const s=Ct(t,_.getStartPointIndex());p.push(s)}}}}else{const t=Ce.constructEmpty();if(e.queryLooseEnvelope(t),t.inflateCoords(n,n),!i.isIntersecting(t))continue;for(_.resetToFirstPath();_.nextPath();)for(;_.hasNextSegment();){const s=_.nextSegment(),i=Ce.constructEmpty();if(s.queryLooseEnvelope(i),!i.isIntersecting(t))continue;const r=s.intersect(e,null,d,null,n);for(let e=0;e<r;e++){const t=d[e];if(0===t||1===t)continue;const s=Ct(t,_.getStartPointIndex());p.push(s)}}}}if(0===p.length)return t;p.sort(((e,t)=>e.index<t.index?-1:e.index>t.index?1:e.t<t.t?-1:e.t>t.t?1:0));const f=t.createInstance();if(f.getGeometryType()===l.enumPolygon){f.setFillRule(t.getFillRule())}for(_.resetToFirstPath();_.nextPath()&&!_.hasNextSegment(););u(_.hasNextSegment());let S=_.nextSegment();const C=new Q;let E=-1;for(let e=0,l=p.length;e<l;){const t=p[e].index;let s=e+1;for(;s<l&&p[s].index===t;)++s;for(;_.getStartPointIndex()<t;){this.progress_();const e=_.hasNextSegment(),t=_.getPathIndex();if((e||!_.isClosingSegment()||_.isCurve())&&(u(null!==S),f.addSegment(S,E!==t)),E=t,!e){for(_.isPathClosed();_.nextPath()&&!_.hasNextSegment(););u(_.hasNextSegment())}S=_.nextSegment()}let n=0;for(let r=e;r<s;r++){const e=p[r].t;if(e===n)continue;u(null!==S),S.queryCut(n,e,C),n=e;const t=_.getPathIndex();f.addSegment(C.get(),E!==t),E=t}const i=_.hasNextSegment();if((i||!_.isClosingSegment()||_.isCurve())&&(u(null!=S),S.queryCut(n,1,C),f.addSegment(C.get(),!1)),i)S=_.nextSegment();else{for(;_.nextPath()&&!_.hasNextSegment(););S=_.hasNextSegment()?_.nextSegment():null}e=s}if(null!==S){const e=_.getPathIndex();(_.hasNextSegment()||!_.isClosingSegment()||_.isCurve())&&f.addSegment(S,E!==e),E=e}let I=_.hasNextSegment();for(;;){if(!I){for(;_.nextPath()&&(I=_.hasNextSegment(),!I););if(!I)break}S=_.nextSegment();const e=_.getPathIndex();I=_.hasNextSegment();(I||!_.isClosingSegment()||_.isCurve())&&f.addSegment(S,E!==e),E=e}return f}constructor(e){this.m_shape=null,this.m_progressTracker=null,this.m_nonSimpleResult=new be,this.m_tolerance=0,this.m_sweepComparator=null,this.m_progressCounter=0,this.m_bTrackChanges=!1,this.m_bNeedsNonSimpleResult=!1,this.m_bAllowCoincident=!0,this.m_sweepStructure=new n,this.m_progressTracker=e}}function It(e,t){const s=e.getPointCount();if(s<16)return!1;const n=1;return 2*s+1*(Math.log(s)/Math.log(2))*t<n*s*t}function wt(e,t,s,n,i){const r=le(t),h=Math.max(4*r,s);return new kt(t,null,h,Number.NaN,i).approximateWithCirclesImpl(e,n)}function bt(){return Number.isNaN(this.radius.value())}function Nt(){return{ptStart:new w,ptEnd:new w,center:new ue,radius:new H,fcenter:new ge,fradius2:new B,maxError:Number.NaN,isLine:bt}}Et.s_bForceBruteForce=!0;const Pt=5,vt=1/8;function yt(e,t,s,n){return{pt:e.clone(),t,err:s,checkCount:n}}class kt{constructor(e,t,s,n,i){this.m_left=e,this.m_tracker=i,this.m_eps=s,this.m_trackerCounter=0,this.m_tolerance=n,this.m_circleCheckCounter=0,this.m_bReversedLeft=!1,this.m_leftArc=Nt()}closeToCircularArc(e,t,s,n,i,r){if(this.m_circleCheckCounter++,r.maxError=0,!kt.checkSweepAngle(e,t))return!1;if(r.ptStart.setCoordsPoint2D(s),r.ptEnd.setCoordsPoint2D(i),e.isCircular()){const t=e;return r.fradius2=B.constructDouble(t.getSemiMajorAxis()).mulDouble(t.getSemiMajorAxis()),r.radius.set(t.getSemiMajorAxis()),r.fcenter.assignPoint2D(t.getCenter()),r.center.set(t.getCenter()),!0}const h=r.ptEnd.sub(r.ptStart).clone();h.leftPerpendicularThis(),h.normalize();if(Math.abs(h.dotProduct(n.sub(r.ptStart)))<=this.m_eps)return!!this.confirmIsLine(r,h)&&(r.radius.set(Number.NaN),r.center.setCoords(0,0),!0);{const s=r.ptEnd.sub(r.ptStart),i=n.sub(r.ptStart),h=s.crossProduct(i);if(0===h)return!1;const a=.5*s.sqrLength(),o=.5*i.sqrLength();let m=a*i.y-o*s.y;m/=h;let l=s.x*o-i.x*a;l/=h;const g=Math.sqrt(m*m+l*l);if(4*Number.EPSILON*g>this.m_eps)return!1;const u=m+r.ptStart.x,c=l+r.ptStart.y;r.radius.set(g),r.center.setCoords(u,c);const _=this.maxCircleApproximationError(e,t,r);if(_>this.m_eps)return r.maxError=_,!1}const a=(new ge).assignPoint2D(r.ptStart),o=(new ge).assignPoint2D(r.ptEnd).sub(a),m=(new ge).assignPoint2D(n).sub(a),l=o.crossProduct(m);if(l.isZero())return!1;const g=o.sqrLength().mulDouble(.5),u=m.sqrLength().mulDouble(.5),c=g.mul(m.y).sub(u.mul(o.y)),_=o.x.mul(u).sub(m.x.mul(g)),d=c.mul(c).add(_.mul(_)),p=l.clone();p.invertThis(),r.fradius2=d.mul(p).mul(p),r.fcenter.setCoords(c.mul(p).add(a.x),_.mul(p).add(a.y)),r.center.setWithEps(r.fcenter.asPoint2D()),r.radius.setWithEps(Math.sqrt(r.fradius2.toDouble()));const f=ue.constructPoint2D(r.ptStart).subE(r.center),S=ue.constructPoint2D(r.ptEnd).subE(r.center);if(!f.dotProduct(S).gt(q))return!1;const x=this.maxCircleApproximationError(e,t,r);return r.maxError=x,x<=this.m_eps}static checkSweepAngle(e,t){if(e.getGeometryType()===l.enumEllipticArc){const s=e,n=ce(s,t.vmin),i=ce(s,t.vmax);return!(Math.abs(i-n)>.5*F)}return!0}confirmIsLine(e,t){const s=e.ptEnd.sub(e.ptStart);return!(Math.abs(t.dotProduct(s.mul(.25)))>this.m_eps)&&!(Math.abs(t.dotProduct(s.mul(.75)))>this.m_eps)}maxCircleApproximationError(e,t,s){const n=[.25,.75],i=[.1,.25,.75,.9];let r,h;e.getGeometryType()===l.enumEllipticArc?(r=n,h=n.length):(r=i,h=i.length);let a=0;for(let o=0;o<h;++o){const n=new w;e.queryCoord2D(P(t.vmin,t.vmax,r[o]),n);const i=n.sub(s.center.value()).length(),h=Math.abs(i-s.radius.value());h>a&&(a=h)}return a}approximateWithCirclesImpl(e,t){let s=1;t&&t.push(0);const n=I(9,Number.NaN);let i;e?i=this.m_left.getMonotonicPartParams(n.length,n):(n[0]=0,n[1]=1,i=2);const r=[],h=[],a=new w(0,0);for(let o=1;o<i;o++){const e=new b(n[o-1],n[o]);for(this.m_bReversedLeft=!kt.goodOrientation(this.m_left,e),this.m_bReversedLeft?(r.push(yt(a,e.vmin,0,0)),r.push(yt(a,e.vmax,0,0))):(r.push(yt(a,e.vmax,0,0)),r.push(yt(a,e.vmin,0,0))),r[0].pt=this.m_left.getCoord2D(r[0].t),r[1].pt=this.m_left.getCoord2D(r[1].t);r.length>1;){this.progress_();const e=r.at(-1);let n=e.checkCount,i=e.err;const a=e.pt.clone(),o=e.t,m=r[r.length-2].t,l=.5*(o+m),g=this.m_left.getCoord2D(l);if(i<=this.m_eps||n>=Pt){const e=new b;if(e.setCoords(o,m),this.closeToCircularArc(this.m_left,e,a,g,r[r.length-2].pt,this.m_leftArc)){t&&(this.m_bReversedLeft?h.push(o):t.push(m)),s++,r.pop();continue}n=0,i=this.m_leftArc.maxError}e.t=l,e.pt.setCoordsPoint2D(g),i*=vt,n++,e.err=i,e.checkCount=n,r.push(yt(a,o,i,n))}this.m_bReversedLeft&&t&&(t.length=t.length+h.length,X(t,h.reverse(),t.length-h.length,0,h.length),h.length=0),r.length=0}return s}approximateWithCirclesImplPolyline(e){const t=new _e,s=[];if(!this.approximateWithCirclesImpl(!0,s))return t;let n=0;const i=this.m_left.getStartXY();t.startPath(i);for(let r=1;r<s.length;++r)if(e)t.lineTo(this.m_left.getCoord2D(s[r]));else{const e=new w;this.m_left.queryCoord2D(s[r],e);const h=new w;this.m_left.queryCoord2D(.5*(s[r]+n),h);const a=new te;a.constructCircularArcThreePoint(i,e,h),t.addSegment(a,!1),i.assign(e),n=s[r]}return t}static goodOrientation(e,t){const s=e.getCoord2D(t.vmin),n=e.getCoord2D(t.vmax);return s.compare(n)<0}progress_(e=!1){}}function Vt(e,t,s,n,i,r,h){Bt(e,t,s,i,r,h)}function Tt(e,t,n,i){if(!d(e.getGeometryType()))return e;const r=e.getImpl();if(!r.hasNonLinearSegments())return e;const h=e.createInstance();if(h.getGeometryType()===l.enumPolygon){h.setFillRule(e.getFillRule())}new Z;const a=new s,o=new Q,m=[],g=[],u=[],c=e.getDescription().getAttributeCount()>1,_=r.querySegmentIterator();for(;_.nextPath();){let e=!0;for(;_.hasNextSegment();){const s=_.isClosingSegment(),i=_.nextSegment();if(!i.isCurve()){h.addSegment(i,e,s),e=!1;continue}let r,d=!1;const p=!0,f=!0;switch(i.getGeometryType()){case l.enumEllipticArc:case l.enumRationalBezier2:r=K(i,t,n,p,f,g,u,m),d=!0;break;default:r=J(i,t,n,!0,p,g,m)}const S=d?2:3;g[1].isNAN()?(o.createLine(),o.get().construct(g[0],g[S])):d?(o.createQuadraticRationalBezier(),o.get().constructArrayWeights(g,u)):(o.createCubicBezier(),o.get().constructPoints(g)),c&&e&&(i.queryCoord(m[0],a),o.get().setStart(a)),c&&(i.queryCoord(m[1],a),o.get().setEnd(a)),h.addSegment(o.get(),e,s&&1===r),e=!1;for(let e=1,t=r,n=S;e<t;++e,n+=S)g[n+1].isNAN()?(o.createLine(),o.get().construct(g[n],g[n+S])):d?(o.createQuadraticRationalBezier(),o.get().constructArrayWeights(g.slice(n),u.slice(n))):(o.createCubicBezier(),o.get().constructPoints(g.slice(n))),c&&(i.queryCoord(m[e+1],a),o.get().setEnd(a)),h.addSegment(o.get(),!1,s&&e+1===t)}}return h}function Bt(e,t,s,n,i,r){e.hasCurves()?(e.setCurveStitcherPointer(n),n.m_impl=new Mt(r,!1,null),n.m_impl.buildMonotonicCurveParentage(e,t,s,i)):n.m_impl=null}function qt(e,t,s,n,i,r,h,a){e.hasCurves()?(e.setCurveStitcherPointer(r),r.m_impl=new Mt(a,!0,i),r.m_impl.buildMonotonicCurveParentage(e,t,s,h),Wt(e,s,a)):r.m_impl=null}function Ft(e){if(!e.hasSegmentParentage())return;const t=new i(0),s=e.queryVertexIteratorOnSelection();for(let i=s.next();i!==j;i=s.next())t.add(i);if(0===t.size())return;e.sortVerticesSimpleByY(t,0,t.size()),t.add(j);const n=w.getNAN();e.queryXY(t.read(0),n);let r=0;const h=w.getNAN();for(let i=1,a=t.size();i<a;i++){{const s=t.read(i);s!==j?e.queryXY(s,h):h.setNAN()}if(!h.isEqualPoint2D(n)){let s=!1,a=-2;for(let n=r;n<i;++n){const i=t.read(n);if(e.getSegmentParentageBreakVertex(i)){s=!0;break}let r=e.getSegmentParentage(i);const h=e.getPrevVertex(i);if(h!==j){let t=e.getSegmentParentage(h);if(-1===r&&(r=t),-1===t&&(t=r),r!==t){s=!0;break}}if(-2!==a&&r!==a){s=!0;break}a=r}if(s)for(let n=r;n<i;++n)e.setSegmentParentageBreakVertex(t.read(n),!0);n.setCoordsPoint2D(h),r=i}}}function Xt(e,t){let s=t.isEmpty()?e:o(null,t,!0).total();return s>e&&(s=e),.125*s}function Yt(e,t){return t||(t=Ce.constructEmpty()),Xt(e,t)}function Dt(e,t){return.125*e}function At(e,t){return 3*e+3*t}class Rt{constructor(){this.m_impl=null}stitchCurves(e,t,s,n){this.m_impl&&(this.m_impl.stitchCurves(e,t,s),n&&this.clearStitcher(e))}clearStitcher(e){this.m_impl&&(this.m_impl.clearStitcher(e),this.m_impl=null)}getOriginalVertexIndex(e,t){return this.m_impl.getOriginalVertexIndex(e,t)}getOriginalSegmentTypeInfo(e){return this.m_impl.getOriginalSegmentTypeInfo(e)}}class Mt{constructor(e,t,s){this.m_originalPlanarSegments=[],this.m_progressTracker=null,this.m_nsr=null,this.m_progressTracker=e,this.m_nsr=s,this.m_tolerance=0,this.m_originalVertexIndex=-1,this.m_type=0,this.m_progressCounter=0,this.m_bIsSimple=t}buildMonotonicCurveParentage(e,t,n,i){const r=!1,h=!0;if(!e.hasCurves())return;u(!e.hasSegmentParentage()),this.m_type=1,this.m_originalPlanarSegments.length=0,this.m_bIsSimple&&(this.m_originalVertexIndex=e.createUserIndex()),this.m_tolerance=n;const a=new s,o=new Q,m=[],g=[],c=[];for(let s=e.getFirstGeometry();s!==j;s=e.getNextGeometry(s))for(let i=e.getFirstPath(s);i!==j;i=e.getNextPath(i)){let s=e.getPathSize(i),_=e.getFirstVertex(i),d=0,p=-1;for(let f=0;f<s;f++){let S=e.getNextVertex(_);if(!e.querySegment(_,o,!0,!1)){_=S;continue}if(0===d){p=e.getVertexIndex(_);const t=Mt.regularizeCurve(e,o.get(),_,n);if(t>=0){this.m_nsr&&0===this.m_nsr.m_reason&&this.m_nsr.assign(new be(13,p,-1)),d=t,s=e.getPathSize(i),S=e.getNextVertex(_);const n=e.querySegment(_,o,!0,!1);u(n)}}else d--;const x=e.getVertexIndex(_);let C;-1!==this.m_originalVertexIndex&&e.setUserIndex(_,this.m_originalVertexIndex,p),e.setSegmentToIndex(x,null);let E=!1;switch(o.get().getGeometryType()){case l.enumEllipticArc:case l.enumRationalBezier2:C=K(o.get(),t,n,r,h,g,c,m),E=!0;break;default:{const e=!this.m_bIsSimple||!o.get().isMonotoneQuickAndDirty();C=J(o.get(),t,n,e,r,g,m)}}const I=this.m_originalPlanarSegments.length;if(e.setSegmentParentageAndBreak(_,I,!0),!g[1].isNAN()){let t=null;t=E?new ee({points:g,weights:c}):new $({cp:g}),t.snapControlPoints(n*n),e.setSegmentToIndex(x,t)}const w=E?2:3;for(let t=1,s=C,r=w;t<s;++t,r+=w){o.get().queryCoord(m[t],a);const s=e.insertVertex(i,S,a);if(-1!==this.m_originalVertexIndex&&e.setUserIndex(s,this.m_originalVertexIndex,p),!g[r+1].isNAN())if(E){const t=new ee({points:g.slice(r),weights:c.slice(r)});t.snapControlPoints(n*n),e.setSegmentToIndex(e.getVertexIndex(s),t)}else{const t=new $({cp:g.slice(r)});t.snapControlPoints(n*n),e.setSegmentToIndex(e.getVertexIndex(s),t)}e.setSegmentParentageAndBreak(s,I,!1)}C>1&&(f+=C-1,s=e.getPathSize(i)),this.m_originalPlanarSegments.push(o.releaseSegment()),_=S}}}stitchCurves(e,t,s){Mt.st_stitchCurvesImpl(this,e,t,s,!1)}clearStitcher(e){this.m_originalPlanarSegments.length=0,-1!==this.m_originalVertexIndex&&(e.removeUserIndex(this.m_originalVertexIndex),this.m_originalVertexIndex=-1),e.deleteSegmentParentage()}static st_verifyParentage(e){Mt.st_stitchCurvesImpl(null,e,j,0,!0)}getOriginalVertexIndex(e,t){return-1!==this.m_originalVertexIndex&&t!==j?e.getUserIndex(t,this.m_originalVertexIndex):-1}getOriginalSegmentTypeInfo(e){if(-1!==e){const t=this.m_originalPlanarSegments[e];switch(t.getGeometryType()){case l.enumEllipticArc:return 0===t.projectionBehavior()?0:1;case l.enumBezier:return 2;case l.enumBezier2:return 3;case l.enumLine:return-1;case l.enumRationalBezier2:return 4;default:p("")}}return-1}progress_(e=!1){this.m_progressCounter++}processSpan_(e,t,s,n,i,r,h){if(t===s&&0===n)return u(e.getNextVertex(t)===j),e.setSegmentToIndex(e.getVertexIndex(t),null),void e.setSegmentParentageAndBreak(t,-1);const a=e.getNextVertex(t);{let t=2;for(let n=a;n!==s;n=e.getNextVertex(n))t++;u(t===n)}if(null===i){e.setSegmentToIndex(e.getVertexIndex(t),null);for(let t=a;t!==s;)t=e.removeVertex(t,!0);return}const o=e.getXY(t),m=e.getXY(s);if(i.isClosed()){if(o.isEqualPoint2D(m)&&o.isEqualPoint2D(i.getStartXY())){let a;if(a=this.verifySegmentFitness(e,t,s,n,i,r,h)){const n=i.clone();return n.dropAllAttributes(),a<0&&n.reverse(),this.removeSpan(e,t,s),void e.setSegmentToIndex(e.getVertexIndex(t),n)}}}else if(o.isEqualPoint2D(i.getStartXY())){if(m.isEqualPoint2D(i.getEndXY())){const a=i.clone();if(a.dropAllAttributes(),this.verifySegmentFitness(e,t,s,n,a,r,h))return this.removeSpan(e,t,s),void e.setSegmentToIndex(e.getVertexIndex(t),a)}}else if(m.isEqualPoint2D(i.getStartXY())&&o.isEqualPoint2D(i.getEndXY())){const a=i.getReversed();if(a.dropAllAttributes(),this.verifySegmentFitness(e,t,s,n,a,r,h))return this.removeSpan(e,t,s),void e.setSegmentToIndex(e.getVertexIndex(t),a)}this.processSpanSplitSegment(e,t,s,n,i,r,h)}processSpanSplitSegment(e,t,s,n,i,r,h){if(i.isLine())return;if(this.fitSegmentToSpan(e,t,s,n,i,r,h))return;const a=h*h;let o=n,m=t;const l=e.getXY(t);let g=i.getClosestCoordinate(l,!1);const u=i.getCoord2D(g);let c=!1;const _=w.sqrDistance(l,u);if(_>a){const n=e.getNextVertex(t);if(this.approximateSpanSection(e,t,i,r,h),n===s)return;m=n,c=!0,o-=1}let d=s;const p=e.getXY(s);g=i.getClosestCoordinate(p,!1);const f=i.getCoord2D(g);let S=!1;const x=w.sqrDistance(p,f);if(x>a){const t=e.getPrevVertex(s);if(this.approximateSpanSection(e,t,i,r,h),t===m)return;d=t,S=!0,o-=1}if((c||S)&&this.fitSegmentToSpan(e,m,d,o,i,r,h))return;let C=!1;if(!c&&_>0){const s=e.getNextVertex(t);if(this.approximateSpanSection(e,t,i,r,h),s===d)return;m=s,c=!0,C=!0,o-=1}if(!S&&x>0){const t=e.getPrevVertex(s);if(this.approximateSpanSection(e,t,i,r,h),t===m)return;d=t,S=!0,C=!0,o-=1}if(C&&this.fitSegmentToSpan(e,m,d,o,i,r,h))return;let E=m;for(;;){const t=e.getNextVertex(E);if(this.approximateSpanSection(e,E,i,r,h),E=t,E===d)return}}fitSegmentToSpan(e,t,s,n,i,r,h){const a=0===this.m_type,o=[];if(o.push(e.getXY(t)),a){let i=t;const r=32;if(n>r){const t=BigInt(n-1),h=BigInt(r-1);let a=h,m=0n;for(let s=1;s<n;s++,a+=h)if(i=e.getNextVertex(i),a>=m+t){m+=t;const s=e.getXY(i);o.push(s)}u(i===s)}else{for(let t=1;t<n;t++){i=e.getNextVertex(i);const t=e.getXY(i);o.push(t)}u(i===s)}}else{let i=t;const r=new Q;for(;;){e.querySegment(i,r,!1,!0);const t=[.1,.25,.4,.5,.6,.75,.9,1];let h=0;for(const e of t){(2===n||1&h)&&o.push(r.get().getCoord2D(e)),h++}if(i=e.getNextVertex(i),i===s)break}}const m=(()=>{let e=o[0].compare(o.at(-1));if(0===e){const t=new Y(0);Ae(o,o.length,t),e=t.getResult()>=0?-1:1}return e>0})();m&&o.reverse();const l=i.clone();if(l.dropAllAttributes(),l.setSegmentFromCoords(o,o.length),m&&l.reverse(),l.snapControlPoints(this.m_tolerance*this.m_tolerance),this.verifySegmentFitness(e,t,s,n,l,r,h)){this.removeSpan(e,t,s);const n=e.getVertexIndex(t);return e.setSegmentToIndex(n,l),!0}return!1}approximateSpanSection(e,t,n,i,r){const h=new Q;if(!e.querySegment(t,h,!0,!1))return;const a=n.getGeometryType();if(a!==h.get().getGeometryType()){if(a===l.enumEllipticArc){if(h.get().getGeometryType()!==l.enumRationalBezier2)return;if(0===n.projectionBehavior()){const n=[];wt(!1,h.get(),r,n,this.m_progressTracker);const i=e.getNextVertex(t),a=e.getPathFromVertex(t),o=new s;let m=t;for(let t=1,s=n.length;t<s;t++){const s=n[t],r=h.get().getCoord2D(n[t-1]),l=h.get().getCoord2D(P(n[t-1],s,.5));h.get().queryCoord(s,o);const g=o.getXY(),u=new te;u.constructCircularArcThreePoint(r,g,l);let c=j;s<1&&(c=e.insertVertex(a,i,o)),e.setSegmentToIndex(e.getVertexIndex(m),u),m=c}return}{const s=E(w,3);h.get().queryControlPoints(s);const n=[0,0,0];h.get().queryWeights(n);const i=se(n),r=new te;return ne(s,i*i,null,!1,r),void e.setSegmentToIndex(e.getVertexIndex(t),r)}}_("approximate_span_section_")}}verifySegmentFitness(e,t,s,n,i,r,h){return 0===this.m_type?this.verifySegmentFitnessLines(e,t,s,n,i,r,h):this.verifySegmentFitnessCurves(e,t,s,n,i,r,h)}verifySegmentFitnessCurves(e,t,s,n,i,r,h){const a=e.getXY(t),o=e.getXY(s);if(!a.isEqualPoint2D(i.getStartXY())||!o.isEqualPoint2D(i.getEndXY()))return 0;let m=0;if(i.isClosed()){const e=i.getCoord2D(.1).sub(a);m=i.getCoord2D(.7).sub(a).crossProduct(e)>=0?1:-1}const l=new Array(ie.s_maxMonotonicPartParams);let g=i.getMonotonicPartParams(l.length,l);g--;const u=new re,c=[1,.5,.75,.25];let _=0,d=t;const p=a.clone();for(;;){const t=e.getNextVertex(d);let n=e.getSegment(d);null===n&&(e.queryLineConnector(d,u,!0),n=u);for(let e=t===s?1:0;e<c.length;e++){const t=n.getCoord2D(c[e]);if(!i.isCloserThanDistance(t,b.unit(),h))return 0}if(g>1)for(let e=1;e<g;){const t=i.getCoord2D(l[e]);n.isCloserThanDistance(t,b.unit(),h)?(l[g-1]=v(l[e],l[e]=l[g-1]),g--):e++}if(m){const e=n.getCoord2D(.25);_+=e.sub(a).crossProduct(p.sub(a)),p.assign(e),e.assign(n.getCoord2D(.75)),_+=e.sub(a).crossProduct(p.sub(a)),p.assign(e)}if(d=t,d===s)return g>1?0:m?_<0?-m:m:1}}verifySegmentFitnessLines(e,t,s,n,i,r,h){return u(0),0}removeSpan(e,t,s){e.setSegmentToIndex(e.getVertexIndex(t),null);const n=e.getNextVertex(t);n!==s&&e.removeVertices(n,s)}static st_stitchCurvesImpl(e,t,s,n,i){if(t.hasSegmentParentage())return t.hasCurves()?Mt.st_stitchCurvesFromCurvesImpl(e,t,s,n,i):Mt.st_stitchCurvesFromLinesImpl(e,t,s,n,i)}static st_stitchCurvesFromLinesImpl(e,t,s,n,i){let r=s===j?t.getFirstGeometry():s;for(;r!==j;){for(let s=t.getFirstPath(r);s!==j;s=t.getNextPath(s)){let r=t.getPathSize(s);t.isClosedPath(s)&&(r+=1);let h=!0,a=!1;const o=t.getFirstVertex(s);let m=o;for(let s=0;s<r&&m!==j;){let l=t.getSegmentParentage(m);if(-1===l||h){h=!1,s++,m=t.getNextVertex(m),a=!0;continue}let g,c,_=0;if(a?(g=t.getPrevVertex(m),c=m,u(g!==j),u(c!==g),u(-1===t.getSegmentParentage(g)||o===g)):(g=m,c=t.getNextVertex(g),s++,u(c!==j),u(c!==g),l=t.getSegmentParentage(c)),_=2,a=!1,-1===l||t.getSegmentParentageBreakVertex(c)){m=c;continue}let d=t.getNextVertex(c);for(s++;s<r&&d!==j;){c=d,_++;const e=t.getSegmentParentage(d);if(-1===e||t.getSegmentParentageBreakVertex(d))break;u(e===l),s++,d=t.getNextVertex(d)}if(!i){const s=e.m_originalPlanarSegments[l];e.processSpan_(t,g,c,_,s,l,n)}m=c}}if(s!==j)break;r=t.getNextGeometry(r)}}static st_stitchCurvesFromCurvesImpl(e,t,s,n,i){let r=s===j?t.getFirstGeometry():s;for(;r!==j;)if(f(t.getGeometryType(r))){for(let s=t.getFirstPath(r);s!==j;s=t.getNextPath(s)){let r=t.getPathSize(s);const h=t.isClosedPath(s);h&&(r+=1);let a=t.getFirstVertex(s);if(h){if(-1!==t.getSegmentParentage(a)){let e=a;for(let n=0;!t.getSegmentParentageBreakVertex(e);n++){if(n===r){a=t.getFirstVertex(s),t.setSegmentParentageBreakVertex(e,!0);break}e=t.getPrevVertex(e)}}}else u(-1===t.getSegmentParentage(a)||t.getSegmentParentageBreakVertex(a));let o=a;for(let s=0;s<r&&o!==j;){const h=t.getSegmentParentage(o);if(-1===h){s++,o=t.getNextVertex(o);continue}let a=0,m=j;const l=o;a=1;let g=t.getNextVertex(l);for(;s<r&&g!==j;){s++,m=g,a++;const e=t.getSegmentParentage(g);if(-1===e||t.getSegmentParentageBreakVertex(g))break;u(e===h),g=t.getNextVertex(g)}if(m===j)break;if(!i){const s=e.m_originalPlanarSegments[h];e.processSpan_(t,l,m,a,s,h,n)}o=m}}if(s!==j)break;r=t.getNextGeometry(r)}else r=s===j?t.getNextGeometry(r):j}static regularizeCurve(e,t,s,n){let i=t.snapControlPoints(n*n);if(i){const n=e.getVertexIndex(s),i=t.clone();e.setSegmentToIndex(n,i)}if(t.getGeometryType()===$.type){const r=[],h=t.calculateSpecialPointsForCracking(n,r);if(h>0){e.splitSegment(s,r,h),i=e.snapControlPoints(s,h+1,n*n)||i;for(let t=0;t<h;t++)s=e.getNextVertex(s),e.setSegmentParentageBreakVertex(s,!0);return h}}return i?0:-1}}function Ot(e,t,s,n,i){return new Ut(e,s,t,n,i).do_()}function Lt(e,t,s){const n=r(e);return Qe(t.getX(),t.getY(),s.getX(),s.getY(),A(n))}function zt(e,t,n=1,i=1,r=1,h=1){if(i>h)return e;if(h>i)return t;const a=[0],o=[0],m=new s;return Je(e,t,n,i,r,h,m,o,a),m}function Ht(e,t,s){const n=r(t),i=h(t);return!!Ke(e,n,j,null,s)||St(!0,e,i,null,s)}function Wt(e,t,s){return Ut.fixCurveTwoPointLoops(e,t,s)}function Gt(e){return r(e)}class Ut{constructor(e,t,s,n,i){this.m_shape=e,this.m_progressTracker=t,this.m_tolerance=s,this.m_bFilterDegenerateSegments=n,this.m_bTrackChanges=i,this.m_progressCounter=0}do_(){const e=new a(this.m_tolerance.tolerance,this.m_tolerance.resolution),t=1e-5,s=1e-6,n=Gt(e);let i=h(e);const r=i*(1+t);i*=1+s;let o=!1;const m=this.m_shape.getTotalPointCount()+10>30?1e3:(this.m_shape.getTotalPointCount()+10)*(this.m_shape.getTotalPointCount()+10),l=this.m_shape.hasPointFeatures();for(let h=0;;h++){this.m_shape.dbgCheckSelection(),h>m&&_("crack_and_cluster_iteration_exceeded"),this.m_shape.dbgVerifyMonotone();let e=-1;0===h&&(e=this.firstCrack_(),o||=e>0);const t=this.cluster_(n);if(this.m_shape.dbgVerifyMonotone(),o||=t,this.m_bFilterDegenerateSegments){const e=0!==this.m_shape.filterClosePoints(n,!0,!1,this.m_bTrackChanges,j);o||=e,this.m_shape.dbgVerifyMonotone()}const s=this.m_shape.snapControlPointsOnSelection(r*r);o||=s,this.m_shape.dbgCheckSelection();let a=!1;if((0===h&&-1===e||l||St(!0,this.m_shape,i,null,this.m_progressTracker))&&(a=this.crack_(r),o||=a,this.m_shape.dbgVerifyMonotone()),!a&&!Ut.fixCurveTwoPointLoops(this.m_shape,n,this.m_progressTracker)){this.m_shape.dbgVerifyMonotone();break}}return o&&Ft(this.m_shape),o}cluster_(e){return Ue(this.m_shape,e,j,this.m_bTrackChanges,this.m_progressTracker)}crack_(e){return ft(this.m_shape,e,this.m_bTrackChanges,this.m_progressTracker)}static fixCurveTwoPointLoops(e,t,s){if(!e.hasCurves())return!1;e.dbgVerifyCurves();const n=e.createUserIndexUninitialized(),r=new i(0),h=e.queryVertexIteratorOnSelection();for(let i=h.next();i!==j;i=h.next())r.add(i),e.setUserIndex(i,n,-1);if(0===r.size())return!1;r.add(j),e.sortVerticesSimpleByY(r,0,r.size()-1);let a=0;const o=e.getXY(r.read(a)),m=new w(Number.NaN,Number.NaN),l=[];for(let i=1,g=r.size();i<g;++i){const t=r.read(i),s=t!==j?e.getXY(t):m;if(s.equals(o))continue;const h=[];for(let m=a;m<i;m++){const t=r.read(m),s=e.getPrevVertex(t);if(s!==j&&-1===e.getUserIndex(s,n)){const t=Qt(e.getXY(s),e.getSegment(s));0!==w.sqrDistance(o,t.otherPt)&&(t.vert=s,t.dir=-1,h.push(t)),e.setUserIndex(s,n,1)}const i=e.getNextVertex(t);if(i!==j&&-1===e.getUserIndex(t,n)){const s=Qt(e.getXY(i),e.getSegment(t));0!==w.sqrDistance(o,s.otherPt)&&(s.vert=t,s.dir=1,h.push(s)),e.setUserIndex(t,n,1)}}if(h.length>1){h.sort(((e,t)=>Jt(e,t)));const e=Qt(m.clone(),null);h.push(e);let t=0;for(let s=1,n=h.length;s<n;s++)if(!h[s].otherPt.equals(h[s-1].otherPt)){if(s-t>1&&null!==h[t].seg){let e=!1;const n=t;for(let i=t+1;i<s;i++)if(!jt(h[n],h[i])){e=!0;break}if(e)for(let i=t;i<s&&null!==h[i].seg;i++)l.push(h[i].vert)}t=s}}a=i,o.setCoordsPoint2D(s)}for(const i of l){const s=e.getSegment(i);u(null!==s);const n=e.getXY(i),r=e.getXY(e.getNextVertex(i));if(w.distance(n,r)<3*t)e.setSegmentToIndex(e.getVertexIndex(i),null);else{const t=s.lengthToT(.5*s.calculateLength2D());e.splitSegment(i,[t],1)}}return e.removeUserIndex(n),l.length>0}firstCrack_(){const e=this.m_shape.getEnvelope2D(this.m_progressTracker),t=o(null,e,!0).total();if(4*t<this.m_tolerance.total()){let e=!1;const s=1.1*t,n=t,i=this.cluster_(s);e||=i;let r=0;this.m_bFilterDegenerateSegments&&(r=this.m_shape.filterClosePoints(0,!0,!1,this.m_bTrackChanges,j));const h=this.crack_(n);return e||=h,e?1:r?2:0}return-1}progress_(e=!1){this.m_progressCounter++,!e&&4095&this.m_progressCounter||(this.m_progressCounter=0)}}function Qt(e,t){return{otherPt:e,seg:t,vert:-1,dir:0}}function jt(e,t){if(u(e.otherPt.equals(t.otherPt)),null===e.seg)return null===t.seg;if(null===t.seg)return!1;const s=e.seg.getGeometryType();if(s!==t.seg.getGeometryType())return!1;if(s===l.enumBezier){const s=e.seg,n=t.seg;let i=s.getControlPoint1(),r=s.getControlPoint2();-1===e.dir&&(r=v(i,i=r));let h=n.getControlPoint1(),a=n.getControlPoint2();return-1===t.dir&&(a=v(h,h=a)),i.equals(h)&&r.equals(a)}if(s===l.enumRationalBezier2){const s=e.seg,n=t.seg,i=s.getControlPoint1(),r=n.getControlPoint1();if(!i.equals(r))return!1;const h=[0,0,0];s.queryWeights(h),-1===e.dir&&(h[2]=v(h[0],h[0]=h[2]));const a=[0,0,0];return n.queryWeights(a),-1===t.dir&&(a[2]=v(a[0],a[0]=a[2])),h[0]===a[0]&&h[1]===a[1]&&h[2]===a[2]}_("")}function Zt(e,t){if(null===e.seg||null===t.seg)return null!==e.seg?-1:null!==t.seg?1:0;const s=e.seg.getGeometryType(),n=t.seg.getGeometryType();return s<n?-1:s>n?1:0}function Jt(e,t){const s=e.otherPt.compare(t.otherPt);return 0!==s?s:Zt(e,t)}export{Rt as C,Oe as I,be as N,dt as P,Ue as a,Vt as b,Gt as c,Yt as d,Ot as e,At as f,Qe as g,qt as h,Be as i,Lt as j,zt as k,Xe as l,Te as m,St as n,Ht as o,Tt as p,De as q,Ve as r,Dt as s,Fe as t,xt as u,ke as v};
@@ -1,5 +0,0 @@
1
- /*
2
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
- See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
- */
5
- import{b as t,c as e}from"./tslib.es6.js";import{t as i,G as s,g as n,c as o,v as m,h as a}from"./Geometry.js";import{S as r,P as u}from"./QuadraticBezier.js";import{g as c,e as h,o as l,q as _,y as p,z as d,A as g,B as x,C as y,D as P,h as S,p as f,E as D,s as G}from"./ProjectionTransformation.js";import{v,c as T}from"./Envelope.js";import{Envelope2D as b}from"./Envelope2D.js";import{P as w,b as M,h as E,E as R,u as C}from"./Point2D.js";import{T as I}from"./Transformation2D.js";import{t as B}from"./CrackAndCluster-CHWFqqYQ.js";import{s as A,w as q,m as N}from"./Distance2DCalculator-C9BrfErD.js";import{O as F}from"./OperatorShapePreservingDensify.js";import{O as Y}from"./OperatorClip.js";function k(){return new b}class X{[Symbol.dispose](){this.m_peR1.destroy(),this.m_peR2.destroy(),this.m_peR3.destroy(),this.m_peR1=null,this.m_peR2=null,this.m_peR3=null}constructor(t,e,i){this.m_peR1=new l,this.m_peR2=new l,this.m_peR3=new l,void 0!==t?this.reset(t,e,i):this.reset(1,0,1)}reset(t,e,i){this.m_a=t,this.m_e2=e,this.m_b=this.m_a*Math.sqrt(1-this.m_e2),this.m_unitToDegree=i,this.m_unitToRad=.017453292519943295*i,this.m_u180=180/this.m_unitToDegree,this.m_u360=360/this.m_unitToDegree}calculateBbox(t,e,i,s){const n=this.m_peR1,o=this.m_peR2,m=this.m_peR3;_.geodeticDistance(this.m_a,this.m_e2,t*this.m_unitToRad,e*this.m_unitToRad,i*this.m_unitToRad,s*this.m_unitToRad,m,n,o,0);const a=Math.cos(n.val),r=Math.cos(o.val+3.141592653589793),u=e*this.m_unitToRad,c=f.phiToEta(this.m_e2,u),h=Math.sin(n.val)*Math.cos(c);let l=e;if(a*r<0){const t=a<0?-1:1,e=Math.acos(Math.abs(h))*t;l=f.etaToPhi(this.m_e2,e)/this.m_unitToRad}let p=C((i-t)*this.m_unitToRad,2*Math.PI);Math.abs(p)>Math.PI&&(p=p>0?p-2*Math.PI:p+2*Math.PI),p/=this.m_unitToRad,i=t+p;const d=k();return d.xmin=Math.min(t,i),d.xmax=Math.max(t,i),d.ymin=Math.min(e,s),d.ymin=Math.min(d.ymin,l),d.ymax=Math.max(e,s),d.ymax=Math.max(d.ymax,l),d}minDistanceGeodesic(t,e){const i=O(t),s=O(e);if(i&&s)return this.lowerDistanceGeodetic_(t.xmin,t.ymin,e.xmin,e.ymin);const n=this.normalizeGeodesic_(e,t);return U(t,n)?t.ymin>=n.ymax?this.minDistanceGeodesicUpDown_(t,n):n.ymin>=t.ymax?this.minDistanceGeodesicUpDown_(n,t):t.xmin>n.xmax?this.minDistanceGeodesicLeftRight_(n,t):this.minDistanceGeodesicLeftRight_(t,n):0}normalizeGeodesic_(t,e){const i=t.clone(),s=t.clone();let n=j(i,e);if(0===n)return i;for(;s.xmax>e.xmin;){s.xmin-=this.m_u360,s.xmax-=this.m_u360;const t=j(s,e);if(t<n&&(i.assign(s),n=t,0===n))return i}for(s.assign(t);s.xmin<e.xmax;){s.xmin+=this.m_u360,s.xmax+=this.m_u360;const t=j(s,e);if(t<n&&(i.assign(s),n=t,0===n))return i}return i}lowerDistanceGeodetic_(t,e,i,s){const n=this.m_peR1;{const o=this.m_b*this.m_b/this.m_a,m=f.phiToPhig(this.m_e2,this.m_unitToRad*e),a=f.phiToPhig(this.m_e2,this.m_unitToRad*s);_.geodeticDistance(o,0,this.m_unitToRad*t,m,this.m_unitToRad*i,a,n,null,null,0)}return n.val}minDistanceGeodesicUpDown_(t,e){if(e.xmin<=t.xmin?e.xmax>=t.xmin:t.xmax>=e.xmin)return this.lowerDistanceGeodetic_(0,t.ymin,0,e.ymax);if(e.xmin>t.xmax){const i=this.lowerDistanceGeodeticSegMeridional_(t.xmax,t.ymin,t.ymax,e.xmin,e.ymin,e.ymax);if(e.xmax-t.xmin<this.m_u180)return i;const s=this.lowerDistanceGeodeticSegMeridional_(t.xmin,t.ymin,t.ymax,e.xmax,e.ymin,e.ymax);return Math.min(i,s)}{const i=this.lowerDistanceGeodeticSegMeridional_(t.xmin,t.ymin,t.ymax,e.xmax,e.ymin,e.ymax);if(t.xmax-e.xmin<this.m_u180)return i;const s=this.lowerDistanceGeodeticSegMeridional_(t.xmax,t.ymin,t.ymax,e.xmin,e.ymin,e.ymax);return Math.min(i,s)}}minDistanceGeodesicLeftRight_(t,e){let i=Math.abs(t.xmax-e.xmin);for(;i>this.m_u180;)i-=this.m_u360;let s=Math.abs(t.xmin-e.xmax);for(;s>this.m_u180;)s-=this.m_u360;return Math.abs(i)<=Math.abs(s)?this.minDistanceGeodesicLeftRightNormalized_(t,e):this.minDistanceGeodesicLeftRightNormalized_(e,t)}minDistanceGeodesicLeftRightNormalized_(t,e){let i,s;return i=this.lowerDistanceGeodetic_(t.xmax,t.ymin,e.xmin,e.ymin),t.ymin>=e.ymin&&t.ymin<=e.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(t.xmax,t.ymin,e.xmin,e.ymin,e.ymax),i=Math.min(i,s)),e.ymin>=t.ymin&&e.ymin<=t.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(e.xmin,e.ymin,t.xmax,t.ymin,t.ymax),i=Math.min(i,s)),s=this.lowerDistanceGeodetic_(t.xmax,t.ymax,e.xmin,e.ymax),i=Math.min(i,s),t.ymax>=e.ymin&&t.ymax<=e.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(t.xmax,t.ymax,e.xmin,e.ymin,e.ymax),i=Math.min(i,s)),e.ymax>=t.ymin&&e.ymax<=t.ymax&&(s=this.lowerDistanceGeodeticPtMeridional_(e.xmin,e.ymax,t.xmax,t.ymin,t.ymax),i=Math.min(i,s)),i}lowerDistanceGeodeticSegMeridional_(t,e,i,s,n,o){let m=this.lowerDistanceGeodeticPtMeridional_(t,e,s,n,o);const a=this.lowerDistanceGeodeticPtMeridional_(t,i,s,n,o);let r=this.lowerDistanceGeodeticPtMeridional_(s,n,t,e,i);const u=this.lowerDistanceGeodeticPtMeridional_(s,o,t,e,i);return m=Math.min(m,a),r=Math.min(r,u),Math.min(m,r)}lowerDistanceGeodeticPtMeridional_(t,e,i,s,n){const o=this.m_b*this.m_b/this.m_a,m=f.phiToPhig(this.m_e2,this.m_unitToRad*e),a=f.phiToPhig(this.m_e2,this.m_unitToRad*s),r=f.phiToPhig(this.m_e2,this.m_unitToRad*n),u=this.m_peR1,c=this.m_peR2;_.geodeticDistance(o,0,this.m_unitToRad*i,a,this.m_unitToRad*t,m,u,null,null,0),_.geodeticDistance(o,0,this.m_unitToRad*i,r,this.m_unitToRad*t,m,c,null,null,0);const h=p(1,0,new w(this.m_unitToRad*t,m)),l=p(1,0,new w(this.m_unitToRad*i,a)),d=p(1,0,new w(this.m_unitToRad*i,r));let g=new v;g.setCrossProductVector(l,d);const x=l.dotProduct(d);if(g.length()<1.568e-10)return x>=0?Math.min(u.val,c.val):0;g=g.getUnitVector();let y=new v;if(y.setCrossProductVector(g,h),y.length()<1.568e-10){return Math.min(u.val,c.val)-1e-5*o}y=y.getUnitVector();let P=h.sub(g.mul(h.dotProduct(g)));{const e=new v;e.setCrossProductVector(l,P);const i=new v;i.setCrossProductVector(P,d);let s=g.dotProduct(e)>0&&g.dotProduct(i)>0;if(s||(P.negateThis(),e.setCrossProductVector(l,P),i.setCrossProductVector(P,d),s=g.dotProduct(e)>0&&g.dotProduct(i)>0),s){P=P.getUnitVector();const e=D(1,0,P),i=this.m_peR3;_.geodeticDistance(o,0,this.m_unitToRad*t,m,e.x,e.y,i,null,null,0);const s=Math.min(u.val,c.val);return Math.min(s,i.val)}}return Math.min(u.val,c.val)}}function O(t){return t.xmin===t.xmax&&t.ymin===t.ymax}function U(t,e){return e.xmax<t.xmin||e.xmin>t.xmax||e.ymax<t.ymin||e.ymin>t.ymax}function j(t,e){let i,s=0;return i=t.xmin-e.xmax,i>s&&(s=i),i=e.xmin-t.xmax,i>s&&(s=i),s}class V{}function L(t){return{outPoint:void 0===t?new w:t.clone()}}function z(t,e){t.outPoint.assign(e.outPoint)}function H(){return new b}class Q{constructor(t,e,i,s,n=0,o=4){this.m_ptDistFrom=new w,this.m_segStartPt=new w,this.m_segEndPt=new w,this.m_geodeticLength=new l,this.m_az12=new l,this.m_minGeodeticDist=new l,this.m_segStartPt3d=new v,this.m_segEndPt3d=new v,this.m_sr=s,this.m_distCurveType=n,this.m_segCurveType=o,this.m_inputGCS=this.m_sr.getGCS(),this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_bIsPannablePcs=2===this.m_sr.getCoordinateSystemType()&&this.m_sr.isPannable();const m=G();this.m_inputGCS.querySpheroidData(m),this.m_a=m.majorSemiAxis,this.m_eSquared=m.e2,this.setPointDistFrom(t),this.setSegmentEndPoints(e,i)}setSegmentEndPoints(t,e){this.m_segStartPt.assign(t),this.m_segEndPt.assign(e),this.m_bIsPannablePcs||(this.m_segStartPt.mulThis(this.m_rpu),this.m_segEndPt.mulThis(this.m_rpu)),2===this.m_segCurveType&&(this.m_segStartPt3d.assign(p(this.m_a,this.m_eSquared,this.m_segStartPt)),this.m_segEndPt3d.assign(p(this.m_a,this.m_eSquared,this.m_segEndPt))),this.calculateAndUpdateSegmentLength()}setPointDistFrom(t){this.m_ptDistFrom.assign(t),this.m_ptDistFrom.scale(this.m_rpu)}setSegmentCurveType(t){this.m_segCurveType=t}setDistanceCurveType(t){this.m_distCurveType=t}makeFunctor(){return i=>{let s;switch(this.m_segCurveType){case 0:case 1:case 3:{const o={stack:[],error:void 0,hasError:!1};try{const e=t(o,new l,!1),n=t(o,new l,!1);_.geodeticCoordinate(this.m_a,this.m_eSquared,this.m_segStartPt.x,this.m_segStartPt.y,this.m_geodeticLength.val*i,this.m_az12.val,e,n,this.m_segCurveType),s=new w(e.val,n.val);break}catch(n){o.error=n,o.hasError=!0}finally{e(o)}}case 2:{const t=v.lerp(this.m_segStartPt3d,this.m_segEndPt3d,i);s=D(this.m_a,this.m_eSquared,t);break}case 4:s=w.lerp(this.m_segStartPt,this.m_segEndPt,i),this.m_bIsPannablePcs&&(g(this.m_sr,0,[s],1),s.mulThis(this.m_rpu));break;default:o("Invalid curve type")}return _.geodeticDistance(this.m_a,this.m_eSquared,this.m_ptDistFrom.x,this.m_ptDistFrom.y,s.x,s.y,this.m_minGeodeticDist,null,null,this.m_distCurveType),this.m_minGeodeticDist.val}}calculateAndUpdateSegmentLength(){switch(this.m_segCurveType){case 0:case 2:case 1:case 3:_.geodeticDistance(this.m_a,this.m_eSquared,this.m_segStartPt.x,this.m_segStartPt.y,this.m_segEndPt.x,this.m_segEndPt.y,this.m_geodeticLength,this.m_az12,null,this.m_segCurveType);break;case 4:this.m_geodeticLength.val=w.distance(this.m_segStartPt,this.m_segEndPt);break;default:o("Invalid curve type")}}[Symbol.dispose](){this.m_geodeticLength[Symbol.dispose](),this.m_az12[Symbol.dispose](),this.m_minGeodeticDist[Symbol.dispose]()}}function W(){return new V}class J{[Symbol.dispose](){this.m_envHelper[Symbol.dispose]()}constructor(t,e,i,s,n){this.m_boxGeomA=H(),this.m_boxGeomB=H(),this.m_envGeomA=new b,this.m_envGeomB=new b,this.m_progressCounter=0,this.m_transformPCS2GCS=null,this.m_segmentBoxesA=new Map,this.m_segmentBoxesB=new Map,this.m_boundaryPtsA=[],this.m_boundaryPtsB=[],this.m_scaleToRadians=new I,this.m_scaleToDegrees=new I,this.m_inputSR=t,this.m_distCurveType=e,this.m_progressTracker=i,this.m_maxDistance=s,this.m_maxDeviation=n,this.m_inputGCS=t.getGCS(),this.m_peGeogcs=this.m_inputGCS.getPECoordSys(),this.m_tolerance=0;const o=G();this.m_inputGCS.querySpheroidData(o),this.m_a=o.majorSemiAxis,this.m_eSquared=o.e2,this.m_rpu=this.m_inputGCS.getUnit().getUnitToBaseFactor(),this.m_envHelper=new X(this.m_a,this.m_eSquared,1),4===this.m_distCurveType&&(this.m_distCurveType=0),this.m_boxGeomA.setEmpty(),this.m_boxGeomB.setEmpty(),this.m_envGeomA.setEmpty(),this.m_envGeomB.setEmpty(),this.m_bIsPannablePcs=2===this.m_inputSR.getCoordinateSystemType()&&this.m_inputSR.isPannable()}progress(t=!1){}calculate(t,e,i,s){const n=L(),o=L();if(t.queryEnvelope(this.m_envGeomA),e.queryEnvelope(this.m_envGeomB),this.checkGeometriesIntersect(t,e,n,o))return i&&z(i,n),s&&z(s,o),0;const m=this.prepareGeometry(t);if(m.isEmpty())return Number.NaN;const a=this.prepareGeometry(e);if(a.isEmpty())return Number.NaN;this.m_tolerance=this.computeTolerance(m,a);const r=this._ExecuteBruteForce(m,a,n,o);return r>=this.m_maxDistance?Number.NaN:(i&&(this.prepareOutput(n),z(i,n)),s&&(this.prepareOutput(o),z(s,o)),r)}createDistanceFunctor(t,e,i){const s=new Q(t,e,i,this.m_inputSR,this.m_distCurveType);return this.m_bIsPannablePcs||1===this.m_inputSR.getCoordinateSystemType()||s.setSegmentCurveType(2),s}_NormalizeAndProject(t){if(this.m_inputSR.isPannable()&&(t=(new c).foldInto360Range(t,this.m_inputSR)),2===this.m_inputSR.getCoordinateSystemType()){const e=h(this.m_inputSR,this.m_inputGCS,null);t=(new c).execute(t,e,this.m_progressTracker)}return t}_ExecuteBruteForce(t,e,n,o){switch(t.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointGeometry(t,e,n,o);case s.enumMultiPoint:return this.calculateDistanceGeodeticMultipointGeometry(t,e,n,o);case s.enumPolyline:case s.enumPolygon:case s.enumEnvelope:return this.calculateDistanceGeodeticMultipathGeometry(t,e,n,o);default:i("")}}calculateDistanceGeodeticPointGeometry(t,e,n,o){switch(e.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointPoint(t,e,n,o);case s.enumMultiPoint:return this.calculateDistanceGeodeticPointMultipoint(t,e,n,o);case s.enumPolyline:case s.enumPolygon:return this.calculateDistanceGeodeticPointMultipath(t,e,n,o);default:i("")}}calculateDistanceGeodeticPointPoint(i,s,n,o){const m={stack:[],error:void 0,hasError:!1};try{const e=i.getXY();e.scale(this.m_rpu);const a=s.getXY();a.scale(this.m_rpu),n.outPoint.assign(e),o.outPoint.assign(a);const r=t(m,new l,!1);return _.geodeticDistance(this.m_a,this.m_eSquared,e.x,e.y,a.x,a.y,r,null,null,this.m_distCurveType),r.val}catch(a){m.error=a,m.hasError=!0}finally{e(m)}}calculateDistanceGeodeticPointMultipoint(i,s,n,o){const m={stack:[],error:void 0,hasError:!1};try{this.computeEnvelopesAndBoxes(i,s);const e=this.estimateMinimumDistance(n,o);let a=e<this.m_maxDistance?e:this.m_maxDistance;const r=i.getXY();r.scale(this.m_rpu),n.outPoint.assign(r);const u=p(this.m_a,this.m_eSquared,r),c=new w,h=s.getImpl(),d=t(m,new l,!1),g=h.getPointCount();for(let t=0;t<g;++t){h.queryXY(t,c),c.scale(this.m_rpu);const e=p(this.m_a,this.m_eSquared,c);if(!(v.distance(u,e)>a)&&(!(this.m_envHelper.minDistanceGeodesic(this.m_boxGeomA,this.m_boxGeomB)>a)&&(_.geodeticDistance(this.m_a,this.m_eSquared,r.x,r.y,c.x,c.y,d,null,null,this.m_distCurveType),d.val<a&&(a=d.val,o.outPoint=c,0===a))))return a}return a===this.m_maxDistance?Number.POSITIVE_INFINITY:a}catch(a){m.error=a,m.hasError=!0}finally{e(m)}}calculateDistanceGeodeticPointMultipath(i,s,o,m){const a={stack:[],error:void 0,hasError:!1};try{const e=new w,r=new w;e.assign(i.getXY()),r.assign(i.getXY()),o.outPoint.assign(r.mul(this.m_rpu)),this.m_bIsPannablePcs&&d(this.m_inputSR,[e],1,!1),this.computeEnvelopesAndBoxes(i,s);const u=this.estimateMinimumDistance(o,m);let c=u<this.m_maxDistance?u:this.m_maxDistance;const h=s.getImpl(),l=new w(0,0),_=new w(0,0),p=[1],g=this.canUseSpatialTree(i,s),x=W();g&&this.buildSpatialTree(x,s);const y=H();y.setCoords({xmin:r.x,ymin:r.y,xmax:r.x,ymax:r.y});const P=t(a,this.createDistanceFunctor(r,l,_),!1),S=h.querySegmentIterator();if(S.stripAttributes(),g)n(0);else for(;S.nextPath();)for(;S.hasNextSegment();){const t=S.nextSegment(),i=this.findOrComputeBoxSegment(S.getStartPointIndex(),t,this.m_segmentBoxesB);if(this.m_envHelper.minDistanceGeodesic(y,i)>c)continue;const s=this.calculateDistanceGeodeticPointSegment(e,r,t,p,P);if(s.second<c&&(this.updateOutputSegment(m,t,s.first),c=s.second,0===c))return 0}return c===this.m_maxDistance?Number.POSITIVE_INFINITY:c}catch(r){a.error=r,a.hasError=!0}finally{e(a)}}calculateDistanceGeodeticMultipointGeometry(t,e,n,o){switch(e.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointMultipoint(e,t,o,n);case s.enumMultiPoint:return this.calculateDistanceGeodeticMultipointMultipoint(t,e,n,o);case s.enumPolyline:case s.enumPolygon:case s.enumEnvelope:return this.calculateDistanceGeodeticMultipointMultipath(t,e,n,o);default:i("")}}calculateDistanceGeodeticMultipointMultipoint(i,s,n,o){const m={stack:[],error:void 0,hasError:!1};try{const e=t(m,new l,!1);this.computeEnvelopesAndBoxes(i,s);const a=this.estimateMinimumDistance(n,o);let r=a<this.m_maxDistance?a:this.m_maxDistance;const u=new w,c=new w,h=i.getImpl(),d=s.getImpl(),g=H(),x=h.getPointCount(),y=d.getPointCount();for(let t=0;t<x;++t){if(u.assign(h.getXY(t)),g.setCoords({xmin:u.x,ymin:u.y,xmax:u.x,ymax:u.y}),this.m_envHelper.minDistanceGeodesic(g,this.m_boxGeomB)>r)continue;u.scale(this.m_rpu);const i=p(this.m_a,this.m_eSquared,u);for(let t=0;t<y;++t){c.assign(d.getXY(t)),c.scale(this.m_rpu);const s=p(this.m_a,this.m_eSquared,c);if(!(v.distance(i,s)>=r)&&(_.geodeticDistance(this.m_a,this.m_eSquared,u.x,u.y,c.x,c.y,e,null,null,this.m_distCurveType),e.val<r&&(n.outPoint.assign(u),o.outPoint.assign(c),r=e.val,0===r)))return r}}return r===this.m_maxDistance?Number.POSITIVE_INFINITY:r}catch(a){m.error=a,m.hasError=!0}finally{e(m)}}calculateDistanceGeodeticMultipointMultipath(i,s,o,m){const a={stack:[],error:void 0,hasError:!1};try{const e=s.getImpl().querySegmentIterator();e.stripAttributes(),this.computeEnvelopesAndBoxes(i,s);const r=this.estimateMinimumDistance(o,m);let u=r<this.m_maxDistance?r:this.m_maxDistance;const c=new w,h=new w(0,0),l=new w(0,0),_=new w(0,0),p=[0],g=H(),x=t(a,this.createDistanceFunctor(h,l,_),!1),y=W(),P=this.canUseSpatialTree(i,s);P&&this.buildSpatialTree(y,s);const S=i.getPointCount();for(let t=0;t<S;++t)if(c.assign(i.getXY(t)),h.assign(i.getXY(t)),this.m_bIsPannablePcs&&d(this.m_inputSR,[c],1,!1),g.setCoords({xmin:h.x,ymin:h.y,xmax:h.x,ymax:h.y}),!(this.m_envHelper.minDistanceGeodesic(g,this.m_boxGeomB)>u))if(x.setPointDistFrom(h),P)n(0);else{for(;e.nextPath();)for(;e.hasNextSegment();){const t=e.nextSegment();if(this.m_envHelper.minDistanceGeodesic(g,this.findOrComputeBoxSegment(e.getStartPointIndex(),t,this.m_segmentBoxesB))>u)continue;const i=this.calculateDistanceGeodeticPointSegment(c,h,t,p,x);if(i.second<u&&(o.outPoint.assign(h.mul(this.m_rpu)),this.updateOutputSegment(m,t,i.first),u=i.second,0===u))return 0}e.resetToFirstPath()}return u===this.m_maxDistance?Number.POSITIVE_INFINITY:u}catch(r){a.error=r,a.hasError=!0}finally{e(a)}}calculateDistanceGeodeticMultipathGeometry(t,e,n,o){switch(e.getGeometryType()){case s.enumPoint:return this.calculateDistanceGeodeticPointMultipath(e,t,o,n);case s.enumMultiPoint:return this.calculateDistanceGeodeticMultipointMultipath(e,t,o,n);case s.enumPolyline:case s.enumPolygon:case s.enumEnvelope:return this.calculateDistanceGeodeticMultipathMultipath(t,e,n,o);default:i("")}}calculateDistanceGeodeticMultipathMultipath(t,e,i,s){const n=[t],o=[e],m=this.swapGeometries(n,o),a=n[0],r=o[0];this.computeEnvelopesAndBoxes(n[0],o[0]);const u=this.estimateMinimumDistance(i,s),c=this.calculateDistanceGeodeticMultipathMultipath_(a,r,i,s,u);return m&&(s.outPoint=M(i.outPoint,i.outPoint=s.outPoint)),c}calculateDistanceGeodeticMultipathMultipath_(i,s,o,m,a=Number.MAX_VALUE){const u={stack:[],error:void 0,hasError:!1};try{let e=a;const c=new w(0,0),h=new w,l=new w(0,0),_=new w,p=new w(0,0),d=new w,y=new w,P=new w,S=[new w],f=[0],D=[0],G=H(),v=H(),T=t(u,this.createDistanceFunctor(p,c,l),!1),b=W(),M=this.canUseSpatialTree(i,s);M&&this.buildSpatialTree(b,s);const E=s.querySegmentIterator();E.stripAttributes();const R=new r,C=A(i);for(let t=0;t<C.length;++t){const s=C[t];i.getSegmentBuffer(s,R,!0);const a=R.get();if(G.assign(this.findOrComputeBoxSegment(s,a,this.m_segmentBoxesA)),M)n(0);else{if(p.assign(a.getStartXY()),d.assign(a.getStartXY()),y.assign(a.getEndXY()),P.assign(a.getEndXY()),this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[d],1),g(this.m_inputSR,0,[P],1)),this.m_envHelper.minDistanceGeodesic(G,this.m_boxGeomB)>e)continue;for(;E.nextPath();){for(;E.hasNextSegment();){const t=E.nextSegment();if(c.assign(t.getStartXY()),h.assign(t.getStartXY()),l.assign(t.getEndXY()),_.assign(t.getEndXY()),a.intersect(t,S,f,D,this.m_tolerance))return this.updateOutputSegment(o,a,f[0]),this.updateOutputSegment(m,t,D[0]),0;if(this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[h],1),g(this.m_inputSR,0,[_],1)),v.assign(this.findOrComputeBoxPoint(E.getStartPointIndex(),h,_,this.m_segmentBoxesB)),this.m_envHelper.minDistanceGeodesic(G,v)>e)continue;T.setSegmentEndPoints(c,l),T.setPointDistFrom(d);let i=x(T.makeFunctor(),0,1,1e-10);if(i.second<e&&(o.outPoint.assign(d.mul(this.m_rpu)),this.updateOutputSegment(m,t,i.first),e=i.second,0===e))break;if(T.setPointDistFrom(P),i=x(T.makeFunctor(),0,1,1e-10),i.second<e&&(o.outPoint.assign(P.mul(this.m_rpu)),this.updateOutputSegment(m,t,i.first),e=i.second,0===e))break;if(T.setSegmentEndPoints(p,y),T.setPointDistFrom(h),i=x(T.makeFunctor(),0,1,1e-10),i.second<e&&(this.updateOutputSegment(o,a,i.first),m.outPoint.assign(h.mul(this.m_rpu)),e=i.second,0===e))break;if(T.setPointDistFrom(_),i=x(T.makeFunctor(),0,1,1e-10),i.second<e&&(this.updateOutputSegment(o,a,i.first),m.outPoint.assign(_.mul(this.m_rpu)),e=i.second,0===e))break}if(0===e)return 0}E.resetToFirstPath()}}return e===this.m_maxDistance?Number.POSITIVE_INFINITY:e}catch(c){u.error=c,u.hasError=!0}finally{e(u)}}calculateDistanceGeodeticPointSegment(t,e,i,s,n){const o=i.getStartXY(),m=i.getEndXY();return i.intersectPoint(t,s,this.m_tolerance)?E(s[0],0):(n.setPointDistFrom(e),n.setSegmentEndPoints(o,m),x(n.makeFunctor(),0,1,1e-10))}prepareGeometry(t){let e=t.clone();const i=t.getGeometryType();if(i===s.enumPoint||i===s.enumMultiPoint)return this._NormalizeAndProject(e);if(i===s.enumEnvelope&&(e=this.envelopeToPolygon(e)),this.m_inputSR.isPannable())return this.prepareGeometryPannable(e,4);if(2===this.m_inputSR.getCoordinateSystemType()){if(e=y(e,this.m_inputSR,0,null),e.isEmpty())return e;e=(new F).execute(e,this.m_inputSR,5e4,this.m_maxDeviation/2,0,null);const t=this.m_inputSR.getSRToGCSTransform();return(new c).execute(e,t,this.m_progressTracker)}const n=new b;e.queryLooseEnvelope(n);const o=this.m_inputSR.getPannableExtent();if(n.ymin<o.ymin||n.ymax>o.ymax){const t=new b(n.xmin-1,o.ymin,n.xmax+1,o.ymax);if(e=(new Y).execute(e,t,this.m_inputSR,this.m_progressTracker),e.isEmpty())return e}return n.width()>2*o.width()?(e=P(e,-2*o.width(),2*o.width(),this.m_inputSR,!0,0,!0,this.m_progressTracker),e):e}prepareGeometryPannable(t,e){const i=new b;t.queryEnvelope(i);const s=this.m_inputSR.getPannableExtent();if(s.containsEnvelope(i))return t;const n=new R;s.queryIntervalX(n);const o=new R;return i.queryIntervalX(o),t=n.contains(o)?S(t,this.m_inputSR):(new c).foldInto360RangeGeodetic(t,this.m_inputSR,e)}prepareOutput(t){t.outPoint.scale(1/this.m_rpu),2===this.m_inputSR.getCoordinateSystemType()&&d(this.m_inputSR,[t.outPoint],1,!1)}updateOutputSegment(t,e,i){e.queryCoord2D(i,t.outPoint),this.m_bIsPannablePcs&&g(this.m_inputSR,0,[t.outPoint],1),t.outPoint.mulThis(this.m_rpu)}computeTolerance(t,e){t.queryEnvelope(this.m_envGeomA),e.queryEnvelope(this.m_envGeomB);const i=new b(this.m_envGeomA);return i.mergeEnvelope2D(this.m_envGeomB),T(null,i)}envelopeToPolygon(t){const e=new u;return e.addEnvelope(t,!1),e}computeEnvelopesAndBoxes(t,e){t.queryEnvelope(this.m_envGeomA),e.queryEnvelope(this.m_envGeomB),this.m_boxGeomA=this.computeBoxGeometry(t,this.m_boundaryPtsA,this.m_segmentBoxesA),this.m_boxGeomB=this.computeBoxGeometry(e,this.m_boundaryPtsB,this.m_segmentBoxesB)}computeBoxGeometry(t,e,i){switch(t.getGeometryType()){case s.enumPoint:return this.computeBoxPoint(t,e);case s.enumMultiPoint:return this.computeBoxMultiPoint(t,e);case s.enumPolyline:case s.enumPolygon:return this.computeBoxMultiPath(t,e,i);default:o("Invalid geometry type")}}computeBoxPoint(t,e){const i=t.getXY();e.length=1,e[0]=i.mul(this.m_rpu);const s=H();return s.setCoords({xmin:i.x,ymin:i.y,xmax:i.x,ymax:i.y}),s}computeBoxMultiPoint(t,e){let i=!0;for(let n=0;n<t.getPointCount();++n){const s=t.getXY(n);if(i){e.length=4;for(let t=0;t<e.length;++t)e[t]=s.clone();i=!1}s.x<e[0].x&&e[0].assign(s),s.y>e[1].y&&e[1].assign(s),s.x>e[2].x&&e[2].assign(s),s.y<e[3].y&&e[3].assign(s)}for(let n=0;n<e.length;++n)e[n].mulThis(this.m_rpu);const s=H();return t.queryEnvelope(s),s}computeBoxMultiPath(t,e,i){let s=!0;const n=H();n.setEmpty();const o=t.querySegmentIterator();for(o.stripAttributes();o.nextPath();)for(;o.hasNextSegment();){const t=o.nextSegment(),m=t.getStartXY(),a=t.getEndXY();if(this.m_bIsPannablePcs&&(g(this.m_inputSR,0,[m],1),g(this.m_inputSR,0,[a],1)),s){e.length=4;for(let t=0;t<e.length;++t)e[t]=m.clone();s=!1}m.x<e[0].x&&e[0].assign(m),m.y>e[1].y&&e[1].assign(m),m.x>e[2].x&&e[2].assign(m),m.y<e[3].y&&e[3].assign(m),a.x<e[0].x&&e[0].assign(a),a.y>e[1].y&&e[1].assign(a),a.x>e[2].x&&e[2].assign(a),a.y<e[3].y&&e[3].assign(a);const r=this.findOrComputeBoxPoint(o.getStartPointIndex(),m,a,i);n.mergeEnvelope2D(r)}for(let m=0;m<e.length;++m)e[m].mulThis(this.m_rpu);return n}findOrComputeBoxSegment(t,e,i){if(!i.has(t)){let s=H();if(e.queryEnvelope(s),this.m_bIsPannablePcs){const t=w.construct(s.xmin,s.ymin),e=w.construct(s.xmax,s.ymax);g(this.m_inputSR,0,[t],1),g(this.m_inputSR,0,[e],1),s=this.m_envHelper.calculateBbox(t.x,t.y,e.x,e.y)}return i.set(t,s),s}return i.get(t)}findOrComputeBoxPoint(t,e,i,s){if(!s.has(t)){let n=H();return n.setCoords({xmin:e.x,ymin:e.y,xmax:i.x,ymax:i.y}),this.m_bIsPannablePcs&&(n=this.m_envHelper.calculateBbox(n.xmin,n.ymin,n.xmax,n.ymax)),s.set(t,n),n}return s.get(t)}estimateMinimumDistance(i,s){const n={stack:[],error:void 0,hasError:!1};try{const e=t=>p(this.m_a,this.m_eSquared,t),o=this.m_boundaryPtsA.map(e),m=this.m_boundaryPtsB.map(e);let a=Number.MAX_VALUE,r=0,u=0;for(let t=0;t<o.length;++t)for(let e=0;e<m.length;++e){const i=v.distance(o[t],m[e]);i<a&&(a=i,r=t,u=e)}i.outPoint.assign(this.m_boundaryPtsA[r]),s.outPoint.assign(this.m_boundaryPtsB[u]);const c=t(n,new l,!1);return _.geodeticDistance(this.m_a,this.m_eSquared,this.m_boundaryPtsA[r].x,this.m_boundaryPtsA[r].y,this.m_boundaryPtsB[u].x,this.m_boundaryPtsB[u].y,c,null,null,this.m_distCurveType),c.val}catch(o){n.error=o,n.hasError=!0}finally{e(n)}}swapGeometries(t,e){return m(t[0])>m(e[0])&&(e[0]=M(t[0],t[0]=e[0]),this.m_envGeomB=M(this.m_envGeomA,this.m_envGeomA=this.m_envGeomB),!0)}canUseSpatialTree(t,e){return!1}checkGeometriesIntersect(t,e,i,n){let o=t.getGeometryType(),m=e.getGeometryType();if(this.m_envGeomA.isIntersecting(this.m_envGeomB)){if(o===s.enumPoint&&2===e.getDimension()){const s=[0],o=[t.getXY()];if(B(e,o,1,this.m_tolerance,s),0!==s[0])return i.outPoint.assign(o[0]),n.outPoint.assign(o[0]),!0}else if(m===s.enumPoint&&2===t.getDimension()){const s=[2],o=[e.getXY()];if(B(t,o,1,this.m_tolerance,s),0!==s[0])return i.outPoint.assign(o[0]),n.outPoint.assign(o[0]),!0}if(o===s.enumMultiPoint&&2===e.getDimension())return this.multipointIntersectsArea(t,e,i,n);if(m===s.enumMultiPoint&&2===t.getDimension())return this.multipointIntersectsArea(e,t,n,i);let r,u,c=t,h=e;if(o===s.enumEnvelope&&(r=this.envelopeToPolygon(t),c=r,o=s.enumPolygon),m===s.enumEnvelope&&(u=this.envelopeToPolygon(e),h=u,m=s.enumPolygon),a(o)&&a(m)){const t=c.querySegmentIterator(),e=h.querySegmentIterator(),s=N(),o=N();if(q(c,h,t,e,s,o))return i.outPoint.assign(s.outPoint),n.outPoint.assign(s.outPoint),!0}}return!1}multipointIntersectsArea(t,e,i,s){const n=t.getPointCount();for(let o=0;o<n;++o){const n=[2],m=t.getXY(o);if(B(e,[m],1,this.m_tolerance,n),0!==n[0])return i.outPoint.assign(m),s.outPoint.assign(m),!0}return!1}getNearestNeighbourVisitor(t,e,i,s,o,m,a){return n(0),{}}buildSpatialTree(t,e){n(0)}}export{J as G,Q as a,L as m};
@@ -1,5 +0,0 @@
1
- /*
2
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
- See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
- */
5
- import{G as e,g as t,e as r,c as s}from"./Geometry.js";import{S as n}from"./SimpleGeometryCursor.js";import{M as o,a as i,P as m}from"./QuadraticBezier.js";import{Envelope2D as c}from"./Envelope2D.js";import{s as p,a as u,E as a}from"./Envelope.js";import{c as h}from"./Clipper-a9xfvRaw.js";import{b as l}from"./Point2D.js";import{i as _,c as y,e as G,f,g as E}from"./OperatorSimplify.js";function g(t,r,s){const n=new c;t.queryEnvelope(n);const o=new c;r.queryEnvelope(o);const i=new c(o);if(i.inflate(2*s),!i.isIntersecting(n))return 4;const m=t.getGeometryType(),p=r.getGeometryType();if(m===e.enumEnvelope&&n.containsEnvelope(i))return 1;if(p===e.enumEnvelope){const e=new c(n);if(e.inflate(2*s),o.containsEnvelope(e))return 2}return 0}class T{constructor(t,r,s,n){this.m_intersectorGeom=null,this.m_sr=null,this.m_dimensionMask=-1,this.m_progressTracker=null,this.m_intersectorGeomType=e.enumUnknown,this.m_geomIntersectorEmptyGeom=null,this.m_intersectorGeom=t,this.m_sr=r,this.m_dimensionMask=s,this.m_progressTracker=n,this.m_intersectorGeomType=t.getGeometryType()}intersect(e){const t=this.tryFastImplementation(e);if(null!==t)return t;const r=p(this.m_intersectorGeom,e),s=u(this.m_sr,r,!0).total(),n=c.constructEmpty();this.m_intersectorGeom.queryEnvelope(n);const o=c.constructEmpty();e.queryEnvelope(o),n.inflateCoords(2*s,2*s),n.intersect(o),n.inflateCoords(100*s,100*s);const i=0;let m=h(this.m_intersectorGeom,n,i,0,this.m_progressTracker),a=h(e,n,i,0,this.m_progressTracker);return e.getDimension()>this.m_intersectorGeom.getDimension()&&(m=l(a,a=m)),_(a,m,this.m_sr,this.m_progressTracker)}intersectEx(e){const t=this.tryFastImplementation(e);if(null!==t){const r=[];return r.length=3,r[t.getDimension()]=t,this.prepareVector(e.getDescription(),this.m_dimensionMask,r)}const r=p(this.m_intersectorGeom,e),s=u(this.m_sr,r,!0).total(),n=c.constructEmpty();this.m_intersectorGeom.queryEnvelope(n);const o=c.constructEmpty();e.queryEnvelope(o),n.inflateCoords(2*s,2*s),n.intersect(o),n.inflateCoords(100*s,100*s);const i=0;let m=h(this.m_intersectorGeom,n,i,0,this.m_progressTracker),a=h(e,n,i,0,this.m_progressTracker);e.getDimension()>this.m_intersectorGeom.getDimension()&&(m=l(a,a=m));const _=y(a,m,this.m_sr,this.m_progressTracker);return this.prepareVector(e.getDescription(),this.m_dimensionMask,_)}init(e,r,s,n=null){t(0)}static intersectPoints(e,t,r){const s=p(e,t),n=u(r,s,!0);return G(e,t,n)}tryFastImplementation(t){const n=t.getGeometryType();if(this.m_intersectorGeomType===e.enumPoint&&n===e.enumPoint){const e=T.intersectPoints(t,this.m_intersectorGeom,this.m_sr);if(-1!==this.m_dimensionMask){const t=new o({vd:e.getDescription()});return e.isEmpty()||t.add(e),t}return e}if(n===e.enumEnvelope&&this.m_intersectorGeomType===e.enumEnvelope&&(-1===this.m_dimensionMask||4===this.m_dimensionMask)){const e=t,r=this.m_intersectorGeom,s=new a({copy:e});return s.intersect(r),s}const i=p(t,this.m_intersectorGeom),m=u(this.m_sr,i,!0),l=t.isEmpty(),_=this.m_intersectorGeom.isEmpty();let y=l||_;if(!y){const e=g(this.m_intersectorGeom,t,m.total());if(4===e)y=!0;else{if(2&e)return this.m_intersectorGeom;if(1&e)return t}}if(y){const s=r(n),o=r(this.m_intersectorGeomType);return s<o?T.ReturnEmpty(t,l):s>o||0===s&&n===e.enumMultiPoint&&this.m_intersectorGeomType===e.enumPoint?this.ReturnEmptyIntersector():T.ReturnEmpty(t,l)}if(n===e.enumEnvelope&&0===r(this.m_intersectorGeomType)||this.m_intersectorGeomType===e.enumEnvelope&&0===r(n)){const r=n===e.enumEnvelope?t:this.m_intersectorGeom,s=n===e.enumEnvelope?this.m_intersectorGeom:t,o=c.constructEmpty();return r.queryEnvelope(o),h(s,o,m.total(),0,this.m_progressTracker)}if(0===r(n)&&r(this.m_intersectorGeomType)>0||r(n)>0&&0===r(this.m_intersectorGeomType)){if(n===e.enumMultiPoint)return f(t,this.m_intersectorGeom,m);if(n===e.enumPoint)return E(t,this.m_intersectorGeom,m);if(this.m_intersectorGeomType===e.enumMultiPoint)return f(this.m_intersectorGeom,t,m);if(this.m_intersectorGeomType===e.enumPoint)return E(this.m_intersectorGeom,t,m);s("")}return null}ReturnEmptyIntersector(){return null===this.m_geomIntersectorEmptyGeom&&(this.m_geomIntersectorEmptyGeom=this.m_intersectorGeom.createInstance()),this.m_geomIntersectorEmptyGeom}static ReturnEmpty(e,t){return t?e:e.createInstance()}prepareVector(e,t,r){let s=0;return 1&t?(r[0]||(r[0]=new o({vd:e})),s++):r.shift(),2&t?(r[s]||(r[s]=new i({vd:e})),s++):r.splice(s,1),4&t?r[s]||(r[s]=new m({vd:e})):r.splice(s,1),new n(r)}}export{T as I};
@@ -1,5 +0,0 @@
1
- /*
2
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
- See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
- */
5
- import{S as e,G as t}from"./SimpleGeometryCursor.js";import{d as n,n as r,G as o,f as s,t as i}from"./Geometry.js";import{I as a}from"./Intersector-K1VmdfQW.js";import{P as c,f as u}from"./Point2D.js";import{P as m,a as l}from"./QuadraticBezier.js";import{Envelope2D as f}from"./Envelope2D.js";import{a as p,f as g,E as y}from"./Envelope.js";import{c as d}from"./Clipper-a9xfvRaw.js";import{b as w}from"./OperatorSimplify.js";import{m as P,i as I}from"./CrackAndCluster-CHWFqqYQ.js";function h(e,t,n,r){if(e.isEmpty()||t.isEmpty())return e;const a=e.getDimension(),c=t.getDimension();if(a>c)return e;const u=e.getGeometryType(),m=t.getGeometryType(),y=new f,P=new f,I=new f;e.queryEnvelope(y),t.queryEnvelope(P),I.setCoords({env2D:y}),I.mergeEnvelope2D(P);const h=p(n,I,!0),v=g(h),q=new f;if(q.setCoords({env2D:y}),q.inflateCoords(v,v),!q.isIntersecting(P))return e;if(1===a&&2===c){const o=j(e,t,m,n,r);if(o)return o}if(u===o.enumPoint){let n;switch(s(m)?(n=new l({vd:t.getDescription()}),n.addSegment(t,!0)):n=t,m){case o.enumPolygon:return E(e,n,h);case o.enumPolyline:return D(e,n,h);case o.enumMultiPoint:return x(e,n,h);case o.enumEnvelope:return C(e,n,h);case o.enumPoint:return G(e,n,h);default:i("invalid shape type")}}else if(u===o.enumMultiPoint)switch(m){case o.enumPolygon:return S(e,t,h);case o.enumEnvelope:return _(e,t,h);case o.enumPoint:return Y(e,t,h)}const X=new f(y);X.inflate(100*h.total());const R=d(t,X,0,0,r);return w(e,R,n,r)}class v{getOperatorType(){return 10002}supportsCurves(){return!0}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}executeMany(e,t,n,r){return new q(e,t,n,r)}execute(t,n,r,o){return this.executeMany(new e([t]),new e([n]),r,o).next()}}class q extends t{constructor(e,t,n,r){super(),this.m_progressTracker=r,this.m_index=-1,this.m_inputGeoms=e,this.m_spatialReference=n;const o=t.next();this.m_geomSubtractor=o||new m}next(){const e=this.m_inputGeoms.next();return e?(n(e),r(e),this.m_index=this.m_inputGeoms.getGeometryID(),h(e,this.m_geomSubtractor,this.m_spatialReference,this.m_progressTracker)):null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}}function E(e,t,n,r){return 0===P(t,e,n.total())?e:e.createInstance()}function D(e,t,n,r){const o=e.getXY(),s=t.querySegmentIterator(),i=g(n),a=i*i;for(;s.nextPath();)for(;s.hasNextSegment();){const t=s.nextSegment(),r=new f;if(t.queryEnvelope(r),r.inflateCoords(i,i),!r.contains(o))continue;if(t.isIntersectingPoint(o,n.total()))return e.createInstance();let u=t.getStartXY();if(c.sqrDistance(o,u)<=a)return e.createInstance();if(u=t.getEndXY(),c.sqrDistance(o,u)<=a)return e.createInstance()}return e}function x(e,t,n,r){const o=t.getImpl().getAttributeStreamRef(0),s=t.getPointCount(),i=e.getXY(),a=g(n),u=a*a,m=new c;for(let l=0;l<s;l++){o.queryPoint2D(2*l,m);if(c.sqrDistance(m,i)<=u)return e.createInstance()}return e}function C(e,t,n,r){const o=new f;t.queryEnvelope(o),o.inflate(n.total());const s=e.getXY();return o.contains(s)?e.createInstance():e}function G(e,t,n,r){const o=g(n),s=o*o,i=e.getXY(),a=t.getXY();return c.sqrDistance(i,a)<=s?e.createInstance():e}function S(e,t,n,r){const o=new f;t.queryEnvelope(o),o.inflate(n.total());const s=e.getPointCount();let i=!1;const a=u(s,!1),m=new c;for(let c=0;c<s;c++){if(e.queryXY(c,m),!o.contains(m))continue;0!==I(t,m,n.total())&&(i=!0,a[c]=!0)}if(!i)return e;const l=e.createInstance();for(let c=0;c<s;c++)a[c]||l.addPoints(e,c,c+1);return l}function _(e,t,n,r){const o=new f;t.queryEnvelope(o),o.inflate(n.total());const s=e.getPointCount();let i=!1;const a=u(s,!1),m=new c;for(let c=0;c<s;c++)e.queryXY(c,m),o.contains(m)&&(i=!0,a[c]=!0);if(!i)return e;const l=e.createInstance();for(let c=0;c<s;c++)a[c]||l.addPoints(e,c,c+1);return l}function Y(e,t,n,r){const o=e.getImpl().getAttributeStreamRef(0),s=e.getPointCount(),i=t.getXY();let a=!1;const m=u(s,!1),l=g(n),f=l*l,p=new c;for(let u=0;u<s;u++){o.queryPoint2D(2*u,p);c.sqrDistance(p,i)<=f&&(a=!0,m[u]=!0)}if(!a)return e;const y=e.createInstance();for(let c=0;c<s;c++)m[c]||y.addPoints(e,c,c+1);return y}function j(e,t,n,r,s){const i=new y;e.queryEnvelope(i);const c=new f;t.queryEnvelope(c),i.merge(c);const u=.1*i.width(),l=.1*i.height();i.inflateCoords(u,l);const p=new m;p.addEnvelope(i,!1);const g=p.getImpl();if(n===o.enumPolygon){const e=t.getImpl();g.add(e,!0)}else g.addEnvelope(t,!0);return new a(p,r,-1,s).tryFastImplementation(e)}export{v as O};
@@ -1,5 +0,0 @@
1
- /*
2
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
- See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
- */
5
- import{S as e,G as t}from"./SimpleGeometryCursor.js";import{G as r,c as s,t as n,d as m}from"./Geometry.js";import{I as i}from"./Intersector-K1VmdfQW.js";import{c as o}from"./QuadraticBezier.js";import{m as u}from"./Envelope.js";class a extends t{constructor(e,t,r,s,m){super(),this.m_smallCursor=null,this.m_progressTracker=s,this.m_geomIntersector=t.next(),this.m_intersector=new i(this.m_geomIntersector,r,m,s),this.m_index=-1,this.m_inputGeoms=e,this.m_dimensionMask=m,-1!==this.m_dimensionMask&&(this.m_dimensionMask<=0||this.m_dimensionMask>7)&&n("bad dimension mask")}next(){if(!this.m_geomIntersector)return null;let e;if(null!==this.m_smallCursor){if(e=this.m_smallCursor.next(),e)return e;this.m_smallCursor=null}for(;e=this.m_inputGeoms.next();){if(m(e),this.m_index=this.m_inputGeoms.getGeometryID(),-1===this.m_dimensionMask){return this.m_intersector.intersect(e)}this.m_smallCursor=this.m_intersector.intersectEx(e);return this.m_smallCursor.next()}return null}getGeometryID(){return this.m_index}tock(){return!0}getRank(){return 1}}class l{getOperatorType(){return 1e4}accelerateGeometry(e,t,s){if(!this.canAccelerateGeometry(e))return!1;u(t,e,!0);let n=0;return e.getGeometryType()!==r.enumPolygon&&e.getGeometryType()!==r.enumPolyline||!o(e)||0===s||(n|=e.getImpl().buildQuadTreeAccelerator(s)?1:0),!!n}canAccelerateGeometry(e){return o(e)}supportsCurves(){return!0}executeMany(e,t,r,s,n=-1){return new a(e,t,r,s,n)}execute(t,n,m,o){if(t.getGeometryType()===r.enumPoint&&n.getGeometryType()===r.enumPoint)return i.intersectPoints(t,n,m);const u=new e([t]),a=new e([n]),l=this.executeMany(u,a,m,o,-1).next();return l||s("null output"),l}}export{l as O};