@arcgis/core 5.1.0-next.53 → 5.1.0-next.54

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 (348) hide show
  1. package/applications/Components/SketchTooltipControls.d.ts +3 -2
  2. package/applications/Components/SketchTooltipControls.js +1 -1
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/097c037705ab485372ee.js +1 -0
  5. package/assets/esri/core/workers/chunks/0ab19ad980fda1cf402a.js +1 -0
  6. package/assets/esri/core/workers/chunks/0b79630ad435a7734104.js +1 -0
  7. package/assets/esri/core/workers/chunks/0f4759efc0982fb0ea03.js +1 -0
  8. package/assets/esri/core/workers/chunks/{f4d31d96681b649ddc95.js → 0ff12fe9e358100668d9.js} +1 -1
  9. package/assets/esri/core/workers/chunks/11fed97adc9bca0f95e9.js +1 -0
  10. package/assets/esri/core/workers/chunks/123e15c9e068a053d54e.js +1 -0
  11. package/assets/esri/core/workers/chunks/1613123918e9b0f7cfdb.js +1 -0
  12. package/assets/esri/core/workers/chunks/16a46688df5fad5cf8d5.js +1 -0
  13. package/assets/esri/core/workers/chunks/16ed8c0af8bb8b400163.js +1 -0
  14. package/assets/esri/core/workers/chunks/16f5cd740321a3539bf1.js +1 -0
  15. package/assets/esri/core/workers/chunks/173d94e162b210dee0a2.js +1 -0
  16. package/assets/esri/core/workers/chunks/1a198c9e17f7a058669e.js +1 -0
  17. package/assets/esri/core/workers/chunks/1fdd736c4932655ff1d9.js +1 -0
  18. package/assets/esri/core/workers/chunks/2304f7b8173cf86dd805.js +1 -0
  19. package/assets/esri/core/workers/chunks/2327b368673a974dee8b.js +1 -0
  20. package/assets/esri/core/workers/chunks/23eb204d3cb818adea32.js +1 -0
  21. package/assets/esri/core/workers/chunks/{eedeff8b344ff699b0b9.js → 2714ec856c2b3223425b.js} +1 -1
  22. package/assets/esri/core/workers/chunks/34acecd7a314fed12335.js +1 -0
  23. package/assets/esri/core/workers/chunks/{cdeb6aec578a1c07d663.js → 3cb0f020f9bfc6653c5d.js} +1 -1
  24. package/assets/esri/core/workers/chunks/42e084704dea6e4135b6.js +1 -0
  25. package/assets/esri/core/workers/chunks/{5b3bb636e3bec625e515.js → 4301cb9670fa7c907460.js} +1 -1
  26. package/assets/esri/core/workers/chunks/48eca6f51112ba80bd3b.js +1 -0
  27. package/assets/esri/core/workers/chunks/4c38af9ae023fde2b5cd.js +1 -0
  28. package/assets/esri/core/workers/chunks/4c8c69d081ed37bf5bc5.js +1 -0
  29. package/assets/esri/core/workers/chunks/4e7bb224bde9e5039263.js +1 -0
  30. package/assets/esri/core/workers/chunks/4f847a426973bd350c11.js +1 -0
  31. package/assets/esri/core/workers/chunks/52c90975cf22add7ee2b.js +1 -0
  32. package/assets/esri/core/workers/chunks/55214e1d9f3d98fa7ed9.js +1 -0
  33. package/assets/esri/core/workers/chunks/57dc80942e51dedd8335.js +1 -0
  34. package/assets/esri/core/workers/chunks/59289867cce97da74e39.js +1 -0
  35. package/assets/esri/core/workers/chunks/5a9620cb66c8e64e4668.js +1 -0
  36. package/assets/esri/core/workers/chunks/5d202f60891fcae7174d.js +1 -0
  37. package/assets/esri/core/workers/chunks/{f7fb121169b7e5a5adbc.js → 6666ef3fd6ce877a4509.js} +1 -1
  38. package/assets/esri/core/workers/chunks/69644b8a6ce340ca1159.js +1 -0
  39. package/assets/esri/core/workers/chunks/6ab8ed12d162d79a8c55.js +1 -0
  40. package/assets/esri/core/workers/chunks/796d27d1bbb2eed53cbd.js +1 -0
  41. package/assets/esri/core/workers/chunks/7ef1c1f765b6d423e474.js +1 -0
  42. package/assets/esri/core/workers/chunks/8569ae372fc64641b6b1.js +1 -0
  43. package/assets/esri/core/workers/chunks/929b26999321519824b9.js +1 -0
  44. package/assets/esri/core/workers/chunks/932a0b39d85a76377d52.js +1 -0
  45. package/assets/esri/core/workers/chunks/94f80c46ccf5e19038b8.js +1 -0
  46. package/assets/esri/core/workers/chunks/979c2f52b6d6e1e8241b.js +1 -0
  47. package/assets/esri/core/workers/chunks/{617328964d480d4a3a45.js → 9806cc96414065ae0afe.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{987dc23fdc0a8c7150b9.js → a5bf2718c02a0e645013.js} +1 -1
  49. package/assets/esri/core/workers/chunks/a7b315a660f0f4e1d197.js +1 -0
  50. package/assets/esri/core/workers/chunks/a8e111a5cfd6151d5dbb.js +1 -0
  51. package/assets/esri/core/workers/chunks/aed45f7e7eee154a21b8.js +1 -0
  52. package/assets/esri/core/workers/chunks/b39b4db86a1049f0b901.js +1 -0
  53. package/assets/esri/core/workers/chunks/{c6a0e770c1a89d3b5913.js → b43889ed9737c27e89f1.js} +1 -1
  54. package/assets/esri/core/workers/chunks/b59f03c64e4965d87291.js +1 -0
  55. package/assets/esri/core/workers/chunks/bad82ce3f84f7efb7ab7.js +1 -0
  56. package/assets/esri/core/workers/chunks/bae1d6dd2376dff271e8.js +1 -0
  57. package/assets/esri/core/workers/chunks/bb047157f09471ecea53.js +1 -0
  58. package/assets/esri/core/workers/chunks/bbb9659f79511c2c4690.js +1 -0
  59. package/assets/esri/core/workers/chunks/bc3b22dc08c147b8d425.js +1 -0
  60. package/assets/esri/core/workers/chunks/be60a6e210186ff09ae2.js +1 -0
  61. package/assets/esri/core/workers/chunks/c03190faca955bffc8c1.js +1 -0
  62. package/assets/esri/core/workers/chunks/c1ad062ccc1817cbee4c.js +1 -0
  63. package/assets/esri/core/workers/chunks/c86b15f6a18880f921cd.js +1 -0
  64. package/assets/esri/core/workers/chunks/c93454e37ae0f124bcb0.js +1 -0
  65. package/assets/esri/core/workers/chunks/cd14b6157862f33ab116.js +1 -0
  66. package/assets/esri/core/workers/chunks/ce59ec4f0cfbdf780bcb.js +1 -0
  67. package/assets/esri/core/workers/chunks/{3c9e1ec94bbcbf494916.js → d1aa1d51662f4a01e793.js} +1 -1
  68. package/assets/esri/core/workers/chunks/d31e68e73527c88b8276.js +1 -0
  69. package/assets/esri/core/workers/chunks/{15a45e26964c2eb381a6.js → d4961d307651431328a8.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{81b830f0d620587966ca.js → d53c6fc10425adc2c0cf.js} +1 -1
  71. package/assets/esri/core/workers/chunks/d69cdee402ba4fc3735f.js +1 -0
  72. package/assets/esri/core/workers/chunks/d6f1ed8d8f76a32bc81d.js +1 -0
  73. package/assets/esri/core/workers/chunks/d7456829e404874a9e2f.js +1 -0
  74. package/assets/esri/core/workers/chunks/d9444dd0d40aa8332b28.js +1 -0
  75. package/assets/esri/core/workers/chunks/da0a61f73d45ea9e71fc.js +1 -0
  76. package/assets/esri/core/workers/chunks/{9ae90a4b281d4103e8bb.js → dc07dc1cd30edc0c4193.js} +1 -1
  77. package/assets/esri/core/workers/chunks/{fdf8fe0f50a9ae548c16.js → ddc7956d80498518551e.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{29c91b5c9ddcea85f39a.js → e23fc5853e2f4016936b.js} +1 -1
  79. package/assets/esri/core/workers/chunks/e2d1d9929ed7744785a1.js +1 -0
  80. package/assets/esri/core/workers/chunks/e543bb228f3f9d937d43.js +1 -0
  81. package/assets/esri/core/workers/chunks/ec21311584e4fb13e510.js +1 -0
  82. package/assets/esri/core/workers/chunks/f3f26f6116ab9126c2e7.js +1 -0
  83. package/assets/esri/core/workers/chunks/f4472e3486fdc33abb9a.js +1 -0
  84. package/assets/esri/core/workers/chunks/f80f04657762666b9165.js +1 -0
  85. package/assets/esri/core/workers/chunks/f8ee1a99580a7da42cde.js +1 -0
  86. package/assets/esri/core/workers/chunks/fcda652fb5262696d59c.js +1 -0
  87. package/assets/esri/core/workers/chunks/fe92f54e45fd21ccd75f.js +1 -0
  88. package/assets/esri/core/workers/chunks/ff0cb1eec14d34214f12.js +1 -0
  89. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
  90. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
  91. package/chunks/OITBlend.glsl.js +2 -2
  92. package/chunks/ShadowHighlight.glsl.js +1 -1
  93. package/chunks/Viewshed.glsl.js +2 -2
  94. package/chunks/arcgis-knowledge-client-core-simd.js +1 -1
  95. package/chunks/arcgis-knowledge-client-core.js +1 -1
  96. package/config.js +1 -1
  97. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  98. package/geometry/SpatialReference.js +1 -1
  99. package/geometry/operators/support/apiConverter.js +1 -1
  100. package/geometry/support/aaBoundingBox.js +1 -1
  101. package/geometry/support/geometryUtils.js +1 -1
  102. package/kernel.js +1 -1
  103. package/package.json +1 -1
  104. package/rest/knowledgeGraph/wasmInterface/knowledgeWasmAccess.js +1 -1
  105. package/support/revision.js +1 -1
  106. package/support/tests/serviceMockDependencies.js +1 -1
  107. package/views/2d/engine/flow/FlowContainer.js +1 -1
  108. package/views/2d/engine/flow/FlowStrategy.js +1 -1
  109. package/views/2d/engine/flow/FlowView2D.js +1 -1
  110. package/views/2d/engine/flow/dataUtils.js +1 -1
  111. package/views/2d/engine/flow/particleConstants.js +2 -0
  112. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  113. package/views/2d/engine/flow/styles/Particles.js +1 -1
  114. package/views/2d/engine/flow/styles/Stack.js +1 -1
  115. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  116. package/views/2d/engine/flow/utils.js +1 -1
  117. package/views/2d/engine/imagery/RasterVFContainer.js +1 -1
  118. package/views/2d/engine/webgl/Painter.js +1 -1
  119. package/views/2d/engine/webgl/Profiler.js +1 -1
  120. package/views/2d/engine/webgl/WGLContainer.js +1 -1
  121. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  122. package/views/2d/engine/webgl/shaderGraph/techniques/TechniqueRegistry.js +1 -1
  123. package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
  124. package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
  125. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
  126. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
  127. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
  128. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
  129. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
  130. package/views/2d/engine/webgl/shaderGraph/techniques/flow/FlowTechnique.js +2 -0
  131. package/views/2d/engine/webgl/shaderGraph/techniques/grid/GridTechnique.js +1 -1
  132. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
  133. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  134. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
  135. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  136. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
  137. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
  138. package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
  139. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
  140. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js +1 -1
  141. package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
  142. package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
  143. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
  144. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js +2 -0
  145. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowParticlesShader.js +2 -0
  146. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowStreamlinesShader.js +2 -0
  147. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowUtils.js +2 -0
  148. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
  149. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTechnique.js +1 -1
  150. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileStencilTechnique.js +1 -1
  151. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +1 -1
  152. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueCircle.js +1 -1
  153. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueFill.js +1 -1
  154. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueLine.js +1 -1
  155. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +1 -1
  156. package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
  157. package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
  158. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  159. package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
  160. package/views/2d/layers/features/FeatureContainer.js +1 -1
  161. package/views/2d/layers/features/RenderState.js +1 -1
  162. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  163. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  164. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  165. package/views/3d/layers/support/Tiles3DBVH.js +1 -1
  166. package/views/3d/layers/support/Tiles3DMeshIntersectionHandler.js +1 -1
  167. package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
  168. package/views/3d/support/orientedBoundingBox.js +1 -1
  169. package/views/3d/terrain/TerrainRenderer.js +1 -1
  170. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
  171. package/views/3d/webgl-engine/collections/Component/ComponentObjectFixedBVH.js +1 -1
  172. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  173. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  174. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +1 -1
  175. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +1 -1
  176. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  177. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  178. package/views/3d/webgl-engine/lib/GLMaterial.js +1 -1
  179. package/views/3d/webgl-engine/lib/GLMaterialLoader.js +2 -0
  180. package/views/3d/webgl-engine/lib/GLMaterialParameters.js +1 -1
  181. package/views/3d/webgl-engine/lib/GLMaterialRepository.js +1 -1
  182. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  183. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  184. package/views/3d/webgl-engine/lib/RenderContext.js +1 -1
  185. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  186. package/views/3d/webgl-engine/lib/ReprojectionUniforms.js +2 -0
  187. package/views/3d/webgl-engine/lib/ScreenSpaceReflectionsUniforms.js +2 -0
  188. package/views/3d/webgl-engine/lib/TriangleIntersectionData.js +1 -1
  189. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  190. package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
  191. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  192. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  193. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  194. package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
  195. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  196. package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
  197. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  198. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  199. package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +1 -1
  200. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  201. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  202. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  203. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  204. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  205. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  206. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  207. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  208. package/views/draw/DrawTool.js +1 -1
  209. package/views/draw/plugins/ShapePlugin.js +1 -1
  210. package/views/draw/support/managers/GlobalStateManager.js +1 -1
  211. package/views/draw/support/types.d.ts +9 -0
  212. package/views/interactive/SegmentLabels.js +1 -1
  213. package/views/webgl/AllocationTracer.js +1 -1
  214. package/views/webgl/RenderingContext.js +1 -1
  215. package/widgets/Editor/components/Settings.js +1 -1
  216. package/widgets/Features/FeaturesViewModel.js +1 -1
  217. package/widgets/Features.js +1 -1
  218. package/widgets/Search/SearchViewModel.js +1 -1
  219. package/widgets/Search/support/layerSearchUtils.js +1 -1
  220. package/widgets/Search/support/locatorUtils.js +1 -1
  221. package/widgets/Sketch.js +1 -1
  222. package/widgets/support/SketchTooltipControls.js +1 -1
  223. package/assets/esri/core/workers/chunks/001492854799c35b53bb.js +0 -1
  224. package/assets/esri/core/workers/chunks/004f991251f09b36fb09.js +0 -1
  225. package/assets/esri/core/workers/chunks/01dd849a2d335e9f3e16.js +0 -1
  226. package/assets/esri/core/workers/chunks/027d733a99f50cadcf22.js +0 -1
  227. package/assets/esri/core/workers/chunks/03d85a706669aaf24d49.js +0 -1
  228. package/assets/esri/core/workers/chunks/0450133e81bce4b48b84.js +0 -1
  229. package/assets/esri/core/workers/chunks/085778ecd39f46324a6b.js +0 -1
  230. package/assets/esri/core/workers/chunks/08dce0019b52042b01fa.js +0 -1
  231. package/assets/esri/core/workers/chunks/0d8294982853308225da.js +0 -1
  232. package/assets/esri/core/workers/chunks/156aecac067213642aae.js +0 -1
  233. package/assets/esri/core/workers/chunks/184e9147f7a2f0ae5915.js +0 -1
  234. package/assets/esri/core/workers/chunks/19f59a2a97c33ff92650.js +0 -1
  235. package/assets/esri/core/workers/chunks/2b7d020367cb4ebb3c3d.js +0 -1
  236. package/assets/esri/core/workers/chunks/3104b10770903c265626.js +0 -1
  237. package/assets/esri/core/workers/chunks/33f00633131581e06328.js +0 -1
  238. package/assets/esri/core/workers/chunks/365ad1ffd496ed86637b.js +0 -1
  239. package/assets/esri/core/workers/chunks/3874362bf7d43adc41bb.js +0 -1
  240. package/assets/esri/core/workers/chunks/38dc1c4b8721efd4a165.js +0 -1
  241. package/assets/esri/core/workers/chunks/3e9700445518b8f9ae1b.js +0 -1
  242. package/assets/esri/core/workers/chunks/42f3fdad1728433b3510.js +0 -1
  243. package/assets/esri/core/workers/chunks/436941ec88439667022e.js +0 -1
  244. package/assets/esri/core/workers/chunks/4812482f28f7205b0938.js +0 -1
  245. package/assets/esri/core/workers/chunks/5317cbef0aac29761575.js +0 -1
  246. package/assets/esri/core/workers/chunks/54a9e17d6c0fef6a9146.js +0 -1
  247. package/assets/esri/core/workers/chunks/55985c9c48b8e1d1c634.js +0 -1
  248. package/assets/esri/core/workers/chunks/5e5b358e603b13b4d7d7.js +0 -1
  249. package/assets/esri/core/workers/chunks/63b9e4a7dad358605c38.js +0 -1
  250. package/assets/esri/core/workers/chunks/662932d2effd2b384b9e.js +0 -1
  251. package/assets/esri/core/workers/chunks/66d4cbb35d0c290150bf.js +0 -1
  252. package/assets/esri/core/workers/chunks/677d3674cb2c0c05fb7e.js +0 -1
  253. package/assets/esri/core/workers/chunks/6f58ec80abebb7bfbbb0.js +0 -1
  254. package/assets/esri/core/workers/chunks/7100c9038739121c2c4b.js +0 -1
  255. package/assets/esri/core/workers/chunks/794f604d4267e374f7dd.js +0 -1
  256. package/assets/esri/core/workers/chunks/7ae8f73c8e2afae98ecb.js +0 -1
  257. package/assets/esri/core/workers/chunks/7d4af7e2cb2f234e12eb.js +0 -1
  258. package/assets/esri/core/workers/chunks/807b12ace0099300b9b9.js +0 -1
  259. package/assets/esri/core/workers/chunks/816a4b03f2ea49238a6c.js +0 -1
  260. package/assets/esri/core/workers/chunks/842b442cc012d0797333.js +0 -1
  261. package/assets/esri/core/workers/chunks/8903ff28896bd6f34b0d.js +0 -1
  262. package/assets/esri/core/workers/chunks/89e9bc8789b100316136.js +0 -1
  263. package/assets/esri/core/workers/chunks/8afe32d3db9669f972bc.js +0 -1
  264. package/assets/esri/core/workers/chunks/91fd28f50477d16e294e.js +0 -1
  265. package/assets/esri/core/workers/chunks/953f671bdeb2ca9b9f37.js +0 -1
  266. package/assets/esri/core/workers/chunks/98011b93acf3d5f0b5a2.js +0 -1
  267. package/assets/esri/core/workers/chunks/9c7fd5db0813bdc38582.js +0 -1
  268. package/assets/esri/core/workers/chunks/a2fee1611319665e6aed.js +0 -1
  269. package/assets/esri/core/workers/chunks/a644e30f65347ce846ed.js +0 -1
  270. package/assets/esri/core/workers/chunks/a64daa4945923a178fe5.js +0 -1
  271. package/assets/esri/core/workers/chunks/a84d67c1a1008bca2075.js +0 -1
  272. package/assets/esri/core/workers/chunks/a85575a8d1da09280cd7.js +0 -1
  273. package/assets/esri/core/workers/chunks/ac4f7309a249132c22da.js +0 -1
  274. package/assets/esri/core/workers/chunks/aeb1900cfdd0e51cc5f8.js +0 -1
  275. package/assets/esri/core/workers/chunks/ba62f3aa811430787863.js +0 -1
  276. package/assets/esri/core/workers/chunks/c03d0091a6f385b9ce8d.js +0 -1
  277. package/assets/esri/core/workers/chunks/c20aaca8085ce897bd12.js +0 -1
  278. package/assets/esri/core/workers/chunks/c3e711dc608eedda2d14.js +0 -1
  279. package/assets/esri/core/workers/chunks/c4a9006cc6d2938570e0.js +0 -1
  280. package/assets/esri/core/workers/chunks/c692ea68509bddbf7b42.js +0 -1
  281. package/assets/esri/core/workers/chunks/cb8c17daec7055bf99cc.js +0 -1
  282. package/assets/esri/core/workers/chunks/d7439d357f68160844cb.js +0 -1
  283. package/assets/esri/core/workers/chunks/dd319d5fe89b275e93cf.js +0 -1
  284. package/assets/esri/core/workers/chunks/df3e79b56c37156e7895.js +0 -1
  285. package/assets/esri/core/workers/chunks/df8b80b17e371c9be4e6.js +0 -1
  286. package/assets/esri/core/workers/chunks/e77198f8ab47441423c5.js +0 -1
  287. package/assets/esri/core/workers/chunks/e786da40a1c87bed64ca.js +0 -1
  288. package/assets/esri/core/workers/chunks/e8aafef6342c50340a27.js +0 -1
  289. package/assets/esri/core/workers/chunks/ec00348d74e29f48613a.js +0 -1
  290. package/assets/esri/core/workers/chunks/f4201e7dcae224d0caf0.js +0 -1
  291. package/assets/esri/core/workers/chunks/f7cc05fbfc97b4d36eba.js +0 -1
  292. package/assets/esri/core/workers/chunks/f9d369a4683f88ee9d76.js +0 -1
  293. package/assets/esri/core/workers/chunks/fc534c94d55331578195.js +0 -1
  294. package/assets/esri/themes/base/colors/css/brand_colors.css +0 -76
  295. package/assets/esri/themes/base/colors/css/calcite_core_colors.css +0 -169
  296. package/assets/esri/themes/base/colors/css/calcite_core_colors_dark.css +0 -169
  297. package/assets/esri/themes/base/colors/css/calcite_gray_colors.css +0 -43
  298. package/assets/esri/themes/base/colors/css/calcite_gray_colors_dark.css +0 -43
  299. package/assets/esri/themes/base/colors/css/calcite_highlight_colors.css +0 -43
  300. package/assets/esri/themes/base/colors/css/calcite_highlight_colors_dark.css +0 -43
  301. package/assets/esri/themes/base/colors/css/calcite_vibrant_colors.css +0 -67
  302. package/assets/esri/themes/base/colors/css/calcite_vibrant_colors_dark.css +0 -67
  303. package/assets/esri/themes/base/colors/css/complete.css +0 -610
  304. package/assets/esri/themes/base/colors/css/scss/brand_colors.scss +0 -128
  305. package/assets/esri/themes/base/colors/css/scss/calcite_core_colors.scss +0 -289
  306. package/assets/esri/themes/base/colors/css/scss/calcite_core_colors_dark.scss +0 -285
  307. package/assets/esri/themes/base/colors/css/scss/calcite_gray_colors.scss +0 -96
  308. package/assets/esri/themes/base/colors/css/scss/calcite_gray_colors_dark.scss +0 -91
  309. package/assets/esri/themes/base/colors/css/scss/calcite_highlight_colors.scss +0 -69
  310. package/assets/esri/themes/base/colors/css/scss/calcite_highlight_colors_dark.scss +0 -65
  311. package/assets/esri/themes/base/colors/css/scss/calcite_vibrant_colors.scss +0 -128
  312. package/assets/esri/themes/base/colors/css/scss/calcite_vibrant_colors_dark.scss +0 -124
  313. package/assets/esri/themes/base/colors/css/scss/complete.scss +0 -11
  314. package/assets/esri/themes/base/colors/patterns_json/brand_colors.css +0 -366
  315. package/assets/esri/themes/base/colors/patterns_json/calcite_core_colors.css +0 -687
  316. package/assets/esri/themes/base/colors/patterns_json/calcite_core_colors_dark.css +0 -673
  317. package/assets/esri/themes/base/colors/patterns_json/calcite_gray_colors.css +0 -177
  318. package/assets/esri/themes/base/colors/patterns_json/calcite_gray_colors_dark.css +0 -169
  319. package/assets/esri/themes/base/colors/patterns_json/calcite_highlight_colors.css +0 -178
  320. package/assets/esri/themes/base/colors/patterns_json/calcite_highlight_colors_dark.css +0 -169
  321. package/assets/esri/themes/base/colors/patterns_json/calcite_vibrant_colors.css +0 -273
  322. package/assets/esri/themes/base/colors/patterns_json/calcite_vibrant_colors_dark.css +0 -265
  323. package/assets/esri/themes/base/colors/patterns_json/complete.css +0 -2847
  324. package/assets/esri/themes/base/colors/patterns_json/scss/brand_colors.scss +0 -464
  325. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_core_colors.scss +0 -967
  326. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_core_colors_dark.scss +0 -964
  327. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_gray_colors.scss +0 -265
  328. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_gray_colors_dark.scss +0 -263
  329. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_highlight_colors.scss +0 -237
  330. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_highlight_colors_dark.scss +0 -235
  331. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_vibrant_colors.scss +0 -376
  332. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_vibrant_colors_dark.scss +0 -347
  333. package/assets/esri/themes/base/colors/patterns_json/scss/complete.scss +0 -12
  334. package/assets/esri/themes/base/icons/readme/download.png +0 -0
  335. package/assets/esri/themes/base/icons/readme/import-icons.png +0 -0
  336. package/assets/esri/themes/base/icons/readme/import.png +0 -0
  337. package/assets/esri/themes/base/icons/readme/load.png +0 -0
  338. package/assets/esri/themes/base/icons/selection.json +0 -1
  339. package/assets/esri/themes/base/icons/style.css +0 -774
  340. package/views/2d/engine/brushes.js +0 -2
  341. package/views/2d/engine/flow/BrushFlow.js +0 -2
  342. package/views/2d/engine/rasterBrushes.js +0 -2
  343. package/views/2d/engine/webgl/brushes/BrushClip.js +0 -2
  344. package/views/2d/engine/webgl/brushes/WGLBrush.js +0 -2
  345. package/views/2d/engine/webgl/painter/RenderPass.js +0 -2
  346. package/views/2d/engine/webgl/shaders/BackgroundPrograms.js +0 -2
  347. package/views/2d/engine/webgl/shaders/TileInfoPrograms.js +0 -2
  348. package/views/3d/webgl-engine/lib/GLMaterials.js +0 -2
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{isSome as t}from"../../../../../core/arrayUtils.js";import r from"../../../../../core/Error.js";import{someMap as s,getOrCreateMapValue as n}from"../../../../../core/MapUtils.js";import{destroyMaybe as a}from"../../../../../core/maybe.js";import{isAborted as i,throwIfAborted as o}from"../../../../../core/promiseUtils.js";import{property as l,subclass as c}from"../../../../../core/accessorSupport/decorators.js";import{create as h}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{subtract as d,dot as u,transformMat4 as m}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as f}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as _,freeze as p}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{debugFlags as g}from"../../../support/debugFlags.js";import{glLayout as y}from"../../../support/buffer/glUtil.js";import v from"../../../webgl/RenderCamera.js";import{isColor as b}from"../../core/shaderLibrary/ShaderOutput.js";import{AsyncRenderPlugin as I}from"../../effects/RenderPlugin.js";import{DepthRange as C}from"../DepthRange.js";import{assert as D}from"../Util.js";import{InstanceData as R}from"./InstanceData.js";import{InstanceOctree as E}from"./InstanceOctree.js";import{LevelSelector as x}from"./LevelSelector.js";import{LodLevel as S}from"./LodLevel.js";import{getRenderInstanceDataLayout as w,RenderInstanceData as L}from"./RenderInstanceData.js";import{colorMixModes as j}from"../../materials/internal/MaterialUtil.js";import{encodeDoubleVec3 as U}from"../../materials/renderers/utils.js";import{DefaultMaterialDrawParameters as O}from"../../shaders/DefaultMaterialTechnique.js";import{defaultHighlightName as T}from"../../../../support/HighlightDefaults.js";import{TaskPriority as A,noBudget as M}from"../../../../support/Scheduler.js";import{bindVertexBufferLayout as q}from"../../../../webgl/Util.js";import{fromLayout as B}from"../../../../webgl/VertexAttributeLocations.js";const F=e=>{const t=e.baseBoundingSphere.radius,r=e.levels.map(e=>e.minScreenSpaceRadius);return new x(t,r)};let V=class extends I{constructor(e,t){super(e),this.type=3,this.isGround=!1,this._levels=[],this._defaultRenderInstanceData=new Array,this._highlightRenderInstanceDatas=new Map,this._instanceIndex=0,this._cycleStartIndex=0,this._slicePlane=!1,this._camera=new v,this._updateCyclesWithStaticCamera=-1,this._needFullCycle=!1,this.produces=new Map([[2,e=>this._produces(e)],[4,e=>!!this._hasTransparentLevels()&&this._produces(e)]]),this._instanceData=new R({shaderTransformation:e.shaderTransformation},e.symbol.materialParameters),this.addHandles(t.registerTask(A.LOD_RENDERER,this))}initialize(){this._instanceBufferLayout=w(this.symbol.materialParameters),this._glInstanceBufferLayout=y(this._instanceBufferLayout,1),this.addHandles([this._instanceData.events.on("instances-changed",()=>this._requestUpdateCycle()),this._instanceData.events.on("instance-transform-changed",({index:e})=>{this._requestUpdateCycle(),this.metadata.notifyGraphicGeometryChanged(e)}),this._instanceData.events.on("instance-visibility-changed",({index:e})=>{this._requestUpdateCycle(!0),this.metadata.notifyGraphicVisibilityChanged(e)}),this._instanceData.events.on("instance-highlight-changed",()=>this._requestUpdateCycle(!0))])}get _allRenderInstanceData(){return[this._defaultRenderInstanceData,...this._highlightRenderInstanceDatas.values()]}get _allRenderInstanceDataExceptHighlightShadow(){const e=[this._defaultRenderInstanceData];for(const t of this._highlightRenderInstanceDatas)t[0]!==T&&e.push(t[1]);return e}hasHighlight(e){return this._highlightRenderInstanceDatas.has(e)}get _enableLevelSelection(){return this.symbol.levels.length>1}get levels(){return this._levels}get baseBoundingBox(){return this._levels[this._levels.length-1].boundingBox}get baseBoundingSphere(){return this._levels[this._levels.length-1].boundingSphere}get baseMaterial(){return this._levels[this._levels.length-1].components[0].material}get slicePlaneEnabled(){return this._slicePlane}set slicePlaneEnabled(e){this._slicePlane=e}get layerViewUid(){return this.metadata.layerViewUid}get instanceData(){return this._instanceData}get hasEmitters(){return this._levels.some(e=>e.components.some(e=>e.material.hasEmissions))}get usedMemory(){return this._allRenderInstanceData.reduce((e,t)=>t.reduce((e,t)=>e+t.usedMemory,e),this._levels.reduce((e,t)=>e+t.components.reduce((e,t)=>e+t.usedMemory,0),0))}get renderStats(){const e=this._instanceData.size,t=[];return this._levels.forEach((e,r)=>{const s=this._allRenderInstanceData[0][r].size+this._allRenderInstanceData[1][r].size,n=e.triangleCount;t.push({renderedInstances:s,renderedTriangles:s*n,trianglesPerInstance:n})}),{totalInstances:e,renderedInstances:t.reduce((e,t)=>e+t.renderedInstances,0),renderedTriangles:t.reduce((e,t)=>e+t.renderedTriangles,0),levels:t}}_createRenderInstanceDataArray(){const{rctx:e}=this._context.renderContext;return this.symbol.levels.map(t=>new L(e,this._instanceBufferLayout))}async initializeRenderContext(e,r){this._context=e,this._defaultRenderInstanceData=this._createRenderInstanceDataArray();const s=await Promise.allSettled(this.symbol.levels.map(t=>S.create(e,t,r))),n=s.map(e=>"fulfilled"===e.status?e.value:null).filter(t);if(i(r)||n.length!==s.length){n.forEach(e=>e.destroy()),o(r);for(const e of s)if("rejected"===e.status)throw e.reason}this._levels=n,this._levelSelector=F(this)}uninitializeRenderContext(){this._invalidateOctree(),this._levels.forEach(e=>e.destroy()),this._defaultRenderInstanceData.forEach(e=>e.destroy()),this._highlightRenderInstanceDatas.forEach(e=>e.forEach(e=>e.destroy()))}_hasTransparentLevels(){return this._levels.some(e=>e.components.some(e=>{const t=e.material.produces.get(4);return t?.(0)}))}hasHighlights(){return s(this._highlightRenderInstanceDatas,e=>e.some(e=>e.size>0))}_produces(e){return(10!==e||this.hasHighlights())&&(6!==e||this.hasHighlight(T))}prepareRender(e){if(!g.LOD_INSTANCE_RENDERER_DISABLE_UPDATES){if(this._enableLevelSelection){const t=e.bind.contentCamera.equals(this._camera);this._camera.copyFrom(e.bind.contentCamera),t||this._requestUpdateCycle()}this._needFullCycle&&(this.runTask(M),this._needFullCycle=!1)}}acquireTechniques(e){if(!this.baseMaterial.visible||!this.baseMaterial.isVisibleForOutput(e.output))return null;const t=this._getInstanceDatas(e);if(!t)return null;const r=new Array,s=this.levels;return t.forEach(t=>s.forEach(({components:s},n)=>s.forEach(s=>r.push(this._beginComponent(e,t[n],s))))),r}render(e,t){const r=this._getInstanceDatas(e);if(!r||null==t)return;let s=0;const n=this.levels;r.forEach(r=>n.forEach(({components:n},a)=>n.forEach(n=>this._renderComponent(e,t[s++],r[a],n,a)))),e.rctx.unbindBuffer(34962),e.rctx.bindVAO(null)}_getInstanceDatas(e){const{output:t,bind:r}=e,s=10===t,n=6===t,a=7!==t;if(!s&&!n)return a?this._allRenderInstanceData:this._allRenderInstanceDataExceptHighlightShadow;const{_highlightRenderInstanceDatas:i}=this;if(a){if(s){const e=r.highlight?.name;if(!e)return null;const t=i.get(e);return t?[t]:null}const e=i.get(T);return n?e?[e]:null:Array.from(i.values())}return null}intersect(e,t,r,s){if(!this.baseMaterial.visible||null==this._octree)return;const n=f();d(n,s,r);const a=n=>{this._instanceData.getCombinedModelTransform(n,G),e.transform.set(G),m(W,r,e.transform.inverse),m(k,s,e.transform.inverse);const a=this._instanceData.getState(n),i=this._instanceData.getLodLevel(n),o=this._levels.length;4&a&&(D(!!(18&a),"invalid instance state"),D(i>=0&&i<o,"invaid lod level"),this._levels[i].intersect(e,t,W,k,n,this.metadata,o))};this.baseMaterial.parameters.verticalOffset?this._octree.forEach(a):this._octree.forEachAlongRay(r,n,a)}notifyShaderTransformationChanged(){this._invalidateOctree(),this._requestUpdateCycle()}get _octree(){if(null==this._octreeCached){const e=this._instanceData,t=e.view?.state;if(!t)return null;this._octreeCached=new E(e,this.baseBoundingSphere);for(let r=0;r<e.capacity;++r)18&t.get(r)&&this._octreeCached.addInstance(r)}return this._octreeCached}_invalidateOctree(){this._octreeCached=a(this._octreeCached)}queryDepthRange(e){if(null==this._octree)return new C;const t=e.viewForward,r=this._octree.findClosest(t,1,e.frustum),s=this._octree.findClosest(t,-1,e.frustum);if(null==r||null==s)return new C;const n=e.eye,a=this._instanceData.view;a.boundingSphere.getVec(r,N),d(N,N,n);const i=u(N,t)-N[3];a.boundingSphere.getVec(s,N),d(N,N,n);const o=u(N,t)+N[3];return new C(i,o)}_requestUpdateCycle(e=!1){this._updateCyclesWithStaticCamera=-1,this._cycleStartIndex=this._instanceIndex,e&&(this._needFullCycle=!0,this._context.requestRender())}_startUpdateCycle(){this._updateCyclesWithStaticCamera++,this._allRenderInstanceData.forEach(e=>e.forEach(e=>e.startUpdateCycle()))}get readyToRun(){return this._instanceData.size>0&&this._updateCyclesWithStaticCamera<1}runTask(e){const{_enableLevelSelection:t,_camera:s,_levelSelector:a}=this;this._allRenderInstanceData.forEach(e=>e.forEach(e=>e.beginUpdate()));const i=this._instanceData,o=i.view;let l=i.size;const c=i.capacity;let h=this._instanceIndex;const d=Math.ceil(c/500),{_highlightRenderInstanceDatas:u}=this;for(let m=0;m<l&&!e.done;++m){h===this._cycleStartIndex&&this._startUpdateCycle();const m=o.state.get(h);let f=0;if(!(1&m)){h=h+1===c?0:h+1,l++;continue}const _=o.lodLevel.get(h);if(2&m&&this._defaultRenderInstanceData[_].freeTail(),16&m){const e=i.geHighlightOptionsPrev(h);if(e){const t=u.get(e);if(!t)throw new r("internal:lod-renderer","Internal error in lodRenderer");t[_].freeTail(),t.every(e=>e.isEmpty)&&(t.forEach(e=>e.destroy()),u.delete(e))}}if(32&m)i.freeInstance(h);else if(4&m){let e=0;if(t&&(o.modelOrigin.getVec(h,z),e=a.selectLevel(z,i.getCombinedMedianScaleFactor(h),s)),f=-83&m,e>=0)if(8&m){const t=i.getHighlightName(h);if(t){const s=()=>{const e=this._createRenderInstanceDataArray();return e.forEach(e=>e.beginUpdate()),e},a=n(u,t,s);if(e>=a.length)throw new r("internal:lod-renderer",`LodRenderer internal error - missing lodLevel ${e}`);H(a[e],o,h)}f|=16}else H(this._defaultRenderInstanceData[e],o,h),f|=2;o.state.set(h,f),o.lodLevel.set(h,e)}else f=-83&m,o.state.set(h,f);const p=!!(18&m),g=!!(18&f);null!=this._octreeCached&&(!p&&g?this._octreeCached.addInstance(h):p&&!g?this._octreeCached.removeInstance(h):p&&g&&64&m&&(this._octreeCached.removeInstance(h),this._octreeCached.addInstance(h))),h=h+1===c?0:h+1,h%d===0&&e.madeProgress(),p!==g&&this.metadata.notifyGraphicVisibilityChanged(h),g&&64&m&&this.metadata.notifyGraphicGeometryChanged(h)}this._instanceIndex=h,this._allRenderInstanceData.forEach(e=>e.forEach(e=>e.endUpdate())),this._context.requestRender()}_beginComponent(e,t,r){if(0===t.size)return null;const s=r.glMaterials.load(e.rctx,e.bind.slot,e.output);return s?.beginSlot(e.bind)}_renderComponent(e,t,r,s,n){if(!t)return;const{bind:a,rctx:i}=e,o=i.bindTechnique(t,a,s.material.parameters,Z),l=this._glInstanceBufferLayout;o.assertCompatibleVertexAttributeLocations(s.vao,B(l)),i.bindVAO(s.vao),g.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL&&b(e.output)&&(o.setUniform4fv("externalColor",Y[Math.min(n,Y.length-1)]),o.setUniform1i("symbolColorMixMode",j.replace));const c=r.capacity,h=r.headIndex,d=r.tailIndex,u=r.firstIndex,m=(e,n)=>{q(i,o.locations,r.buffer,e),i.drawArraysInstanced(t.primitiveType,0,s.numVertices,n-e)};s.material.transparent&&null!=u?h>d?(D(u>=d&&u<=h,"invalid firstIndex"),m(u,h),m(d,u)):h<d&&(u<=h?(D(u>=0&&u<=h,"invalid firstIndex"),m(u,h),m(d,c),m(0,u)):(D(u>=d&&u<=c,"invalid firstIndex"),m(u,c),m(0,h),m(d,u))):h>d?m(d,h):h<d&&(m(0,h),m(d,c))}};function H(e,t,r){const s=e.allocateHead();P(t,r,e.view,s)}function P(e,t,r,s){U(e.modelOrigin,t,r.modelOriginHi,r.modelOriginLo,s),r.model.copyFrom(s,e.model,t),r.modelNormal.copyFrom(s,e.modelNormal,t),e.color&&r.color&&r.color.copyFrom(s,e.color,t),e.olidColor&&r.olidColor&&r.olidColor.copyFrom(s,e.olidColor,t),e.featureAttribute&&r.featureAttribute&&r.featureAttribute.copyFrom(s,e.featureAttribute,t)}e([l({constructOnly:!0})],V.prototype,"symbol",void 0),e([l({constructOnly:!0})],V.prototype,"metadata",void 0),e([l({constructOnly:!0})],V.prototype,"shaderTransformation",void 0),e([l()],V.prototype,"_instanceData",void 0),e([l()],V.prototype,"_cycleStartIndex",void 0),e([l({readOnly:!0})],V.prototype,"_enableLevelSelection",null),e([l()],V.prototype,"_updateCyclesWithStaticCamera",void 0),e([l({readOnly:!0})],V.prototype,"readyToRun",null),V=e([c("esri.views.3d.webgl-engine.lib.lodRendering.LodRenderer")],V);const z=f(),N=_(),G=h(),W=f(),k=f(),Y=[p(1,0,1,1),p(0,0,1,1),p(0,1,0,1),p(1,1,0,1),p(1,0,0,1)],Z=new O;export{V as LodRenderer};
2
+ import{__decorate as e}from"tslib";import{isSome as t}from"../../../../../core/arrayUtils.js";import r from"../../../../../core/Error.js";import{someMap as s,getOrCreateMapValue as n}from"../../../../../core/MapUtils.js";import{destroyMaybe as a}from"../../../../../core/maybe.js";import{isAborted as i,throwIfAborted as o}from"../../../../../core/promiseUtils.js";import{property as l,subclass as c}from"../../../../../core/accessorSupport/decorators.js";import{create as h}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{subtract as d,dot as u,transformMat4 as m}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as f}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as _,freeze as p}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{debugFlags as g}from"../../../support/debugFlags.js";import{glLayout as y}from"../../../support/buffer/glUtil.js";import v from"../../../webgl/RenderCamera.js";import{isColor as b}from"../../core/shaderLibrary/ShaderOutput.js";import{AsyncRenderPlugin as I}from"../../effects/RenderPlugin.js";import{DepthRange as C}from"../DepthRange.js";import{assert as D}from"../Util.js";import{InstanceData as R}from"./InstanceData.js";import{InstanceOctree as E}from"./InstanceOctree.js";import{LevelSelector as x}from"./LevelSelector.js";import{LodLevel as S}from"./LodLevel.js";import{getRenderInstanceDataLayout as w,RenderInstanceData as L}from"./RenderInstanceData.js";import{colorMixModes as j}from"../../materials/internal/MaterialUtil.js";import{encodeDoubleVec3 as U}from"../../materials/renderers/utils.js";import{DefaultMaterialDrawParameters as O}from"../../shaders/DefaultMaterialTechnique.js";import{defaultHighlightName as T}from"../../../../support/HighlightDefaults.js";import{TaskPriority as A,noBudget as M}from"../../../../support/Scheduler.js";import{bindVertexBufferLayout as q}from"../../../../webgl/Util.js";import{fromLayout as B}from"../../../../webgl/VertexAttributeLocations.js";const F=e=>{const t=e.baseBoundingSphere.radius,r=e.levels.map(e=>e.minScreenSpaceRadius);return new x(t,r)};let V=class extends I{constructor(e,t){super(e),this.type=3,this.isGround=!1,this._levels=[],this._defaultRenderInstanceData=new Array,this._highlightRenderInstanceDatas=new Map,this._instanceIndex=0,this._cycleStartIndex=0,this._slicePlane=!1,this._camera=new v,this._updateCyclesWithStaticCamera=-1,this._needFullCycle=!1,this.produces=new Map([[2,e=>this._produces(e)],[4,e=>!!this._hasTransparentLevels()&&this._produces(e)]]),this._instanceData=new R({shaderTransformation:e.shaderTransformation},e.symbol.materialParameters),this.addHandles(t.registerTask(A.LOD_RENDERER,this))}initialize(){this._instanceBufferLayout=w(this.symbol.materialParameters),this._glInstanceBufferLayout=y(this._instanceBufferLayout,1),this.addHandles([this._instanceData.events.on("instances-changed",()=>this._requestUpdateCycle()),this._instanceData.events.on("instance-transform-changed",({index:e})=>{this._requestUpdateCycle(),this.metadata.notifyGraphicGeometryChanged(e)}),this._instanceData.events.on("instance-visibility-changed",({index:e})=>{this._requestUpdateCycle(!0),this.metadata.notifyGraphicVisibilityChanged(e)}),this._instanceData.events.on("instance-highlight-changed",()=>this._requestUpdateCycle(!0))])}get _allRenderInstanceData(){return[this._defaultRenderInstanceData,...this._highlightRenderInstanceDatas.values()]}get _allRenderInstanceDataExceptHighlightShadow(){const e=[this._defaultRenderInstanceData];for(const t of this._highlightRenderInstanceDatas)t[0]!==T&&e.push(t[1]);return e}hasHighlight(e){return this._highlightRenderInstanceDatas.has(e)}get _enableLevelSelection(){return this.symbol.levels.length>1}get levels(){return this._levels}get baseBoundingBox(){return this._levels[this._levels.length-1].boundingBox}get baseBoundingSphere(){return this._levels[this._levels.length-1].boundingSphere}get baseMaterial(){return this._levels[this._levels.length-1].components[0].material}get slicePlaneEnabled(){return this._slicePlane}set slicePlaneEnabled(e){this._slicePlane=e}get layerViewUid(){return this.metadata.layerViewUid}get instanceData(){return this._instanceData}get hasEmitters(){return this._levels.some(e=>e.components.some(e=>e.material.hasEmissions))}get usedMemory(){return this._allRenderInstanceData.reduce((e,t)=>t.reduce((e,t)=>e+t.usedMemory,e),this._levels.reduce((e,t)=>e+t.components.reduce((e,t)=>e+t.usedMemory,0),0))}get renderStats(){const e=this._instanceData.size,t=[];return this._levels.forEach((e,r)=>{const s=this._allRenderInstanceData[0][r].size+this._allRenderInstanceData[1][r].size,n=e.triangleCount;t.push({renderedInstances:s,renderedTriangles:s*n,trianglesPerInstance:n})}),{totalInstances:e,renderedInstances:t.reduce((e,t)=>e+t.renderedInstances,0),renderedTriangles:t.reduce((e,t)=>e+t.renderedTriangles,0),levels:t}}_createRenderInstanceDataArray(){const{rctx:e}=this._context.renderContext;return this.symbol.levels.map(t=>new L(e,this._instanceBufferLayout))}async initializeRenderContext(e,r){this._context=e,this._defaultRenderInstanceData=this._createRenderInstanceDataArray();const s=await Promise.allSettled(this.symbol.levels.map(t=>S.create(e,t,r))),n=s.map(e=>"fulfilled"===e.status?e.value:null).filter(t);if(i(r)||n.length!==s.length){n.forEach(e=>e.destroy()),o(r);for(const e of s)if("rejected"===e.status)throw e.reason}this._levels=n,this._levelSelector=F(this)}uninitializeRenderContext(){this._invalidateOctree(),this._levels.forEach(e=>e.destroy()),this._defaultRenderInstanceData.forEach(e=>e.destroy()),this._highlightRenderInstanceDatas.forEach(e=>e.forEach(e=>e.destroy()))}_hasTransparentLevels(){return this._levels.some(e=>e.components.some(e=>{const t=e.material.produces.get(4);return t?.(0)}))}hasHighlights(){return s(this._highlightRenderInstanceDatas,e=>e.some(e=>e.size>0))}_produces(e){return(10!==e||this.hasHighlights())&&(6!==e||this.hasHighlight(T))}prepareRender(e){if(!g.LOD_INSTANCE_RENDERER_DISABLE_UPDATES){if(this._enableLevelSelection){const t=e.bind.contentCamera.equals(this._camera);this._camera.copyFrom(e.bind.contentCamera),t||this._requestUpdateCycle()}this._needFullCycle&&(this.runTask(M),this._needFullCycle=!1)}}acquireTechniques(e){if(!this.baseMaterial.visible||!this.baseMaterial.isVisibleForOutput(e.output))return null;const t=this._getInstanceDatas(e);if(!t)return null;const r=new Array,s=this.levels;return t.forEach(t=>s.forEach(({components:s},n)=>s.forEach(s=>r.push(this._beginComponent(e,t[n],s))))),r}render(e,t){const r=this._getInstanceDatas(e);if(!r||null==t)return;let s=0;const n=this.levels;r.forEach(r=>n.forEach(({components:n},a)=>n.forEach(n=>this._renderComponent(e,t[s++],r[a],n,a)))),e.rctx.unbindBuffer(34962),e.rctx.bindVAO(null)}_getInstanceDatas(e){const{output:t,bind:r}=e,s=10===t,n=6===t,a=7!==t;if(!s&&!n)return a?this._allRenderInstanceData:this._allRenderInstanceDataExceptHighlightShadow;const{_highlightRenderInstanceDatas:i}=this;if(a){if(s){const e=r.highlight?.name;if(!e)return null;const t=i.get(e);return t?[t]:null}const e=i.get(T);return n?e?[e]:null:Array.from(i.values())}return null}intersect(e,t,r,s){if(!this.baseMaterial.visible||null==this._octree)return;const n=f();d(n,s,r);const a=n=>{this._instanceData.getCombinedModelTransform(n,G),e.transform.set(G),m(W,r,e.transform.inverse),m(k,s,e.transform.inverse);const a=this._instanceData.getState(n),i=this._instanceData.getLodLevel(n),o=this._levels.length;4&a&&(D(!!(18&a),"invalid instance state"),D(i>=0&&i<o,"invaid lod level"),this._levels[i].intersect(e,t,W,k,n,this.metadata,o))};this.baseMaterial.parameters.verticalOffset?this._octree.forEach(a):this._octree.forEachAlongRay(r,n,a)}notifyShaderTransformationChanged(){this._invalidateOctree(),this._requestUpdateCycle()}get _octree(){if(null==this._octreeCached){const e=this._instanceData,t=e.view?.state;if(!t)return null;this._octreeCached=new E(e,this.baseBoundingSphere);for(let r=0;r<e.capacity;++r)18&t.get(r)&&this._octreeCached.addInstance(r)}return this._octreeCached}_invalidateOctree(){this._octreeCached=a(this._octreeCached)}queryDepthRange(e){if(null==this._octree)return new C;const t=e.viewForward,r=this._octree.findClosest(t,1,e.frustum),s=this._octree.findClosest(t,-1,e.frustum);if(null==r||null==s)return new C;const n=e.eye,a=this._instanceData.view;a.boundingSphere.getVec(r,N),d(N,N,n);const i=u(N,t)-N[3];a.boundingSphere.getVec(s,N),d(N,N,n);const o=u(N,t)+N[3];return new C(i,o)}_requestUpdateCycle(e=!1){this._updateCyclesWithStaticCamera=-1,this._cycleStartIndex=this._instanceIndex,e&&(this._needFullCycle=!0,this._context.requestRender())}_startUpdateCycle(){this._updateCyclesWithStaticCamera++,this._allRenderInstanceData.forEach(e=>e.forEach(e=>e.startUpdateCycle()))}get readyToRun(){return this._instanceData.size>0&&this._updateCyclesWithStaticCamera<1}runTask(e){const{_enableLevelSelection:t,_camera:s,_levelSelector:a}=this;this._allRenderInstanceData.forEach(e=>e.forEach(e=>e.beginUpdate()));const i=this._instanceData,o=i.view;let l=i.size;const c=i.capacity;let h=this._instanceIndex;const d=Math.ceil(c/500),{_highlightRenderInstanceDatas:u}=this;for(let m=0;m<l&&!e.done;++m){h===this._cycleStartIndex&&this._startUpdateCycle();const m=o.state.get(h);let f=0;if(!(1&m)){h=h+1===c?0:h+1,l++;continue}const _=o.lodLevel.get(h);if(2&m&&this._defaultRenderInstanceData[_].freeTail(),16&m){const e=i.geHighlightOptionsPrev(h);if(e){const t=u.get(e);if(!t)throw new r("internal:lod-renderer","Internal error in lodRenderer");t[_].freeTail(),t.every(e=>e.isEmpty)&&(t.forEach(e=>e.destroy()),u.delete(e))}}if(32&m)i.freeInstance(h);else if(4&m){let e=0;if(t&&(o.modelOrigin.getVec(h,z),e=a.selectLevel(z,i.getCombinedMedianScaleFactor(h),s)),f=-83&m,e>=0)if(8&m){const t=i.getHighlightName(h);if(t){const s=()=>{const e=this._createRenderInstanceDataArray();return e.forEach(e=>e.beginUpdate()),e},a=n(u,t,s);if(e>=a.length)throw new r("internal:lod-renderer",`LodRenderer internal error - missing lodLevel ${e}`);H(a[e],o,h)}f|=16}else H(this._defaultRenderInstanceData[e],o,h),f|=2;o.state.set(h,f),o.lodLevel.set(h,e)}else f=-83&m,o.state.set(h,f);const p=!!(18&m),g=!!(18&f);null!=this._octreeCached&&(!p&&g?this._octreeCached.addInstance(h):p&&!g?this._octreeCached.removeInstance(h):p&&g&&64&m&&(this._octreeCached.removeInstance(h),this._octreeCached.addInstance(h))),h=h+1===c?0:h+1,h%d===0&&e.madeProgress(),p!==g&&this.metadata.notifyGraphicVisibilityChanged(h),g&&64&m&&this.metadata.notifyGraphicGeometryChanged(h)}this._instanceIndex=h,this._allRenderInstanceData.forEach(e=>e.forEach(e=>e.endUpdate())),this._context.requestRender()}_beginComponent(e,t,r){if(0===t.size)return null;const s=r.glMaterialLoader.load(e.rctx,e.bind.slot,e.output);return s?.beginSlot(e.bind)}_renderComponent(e,t,r,s,n){if(!t)return;const{bind:a,rctx:i}=e,o=i.bindTechnique(t,a,s.material.parameters,Z),l=this._glInstanceBufferLayout;o.assertCompatibleVertexAttributeLocations(s.vao,B(l)),i.bindVAO(s.vao),g.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL&&b(e.output)&&(o.setUniform4fv("externalColor",Y[Math.min(n,Y.length-1)]),o.setUniform1i("symbolColorMixMode",j.replace));const c=r.capacity,h=r.headIndex,d=r.tailIndex,u=r.firstIndex,m=(e,n)=>{q(i,o.locations,r.buffer,e),i.drawArraysInstanced(t.primitiveType,0,s.numVertices,n-e)};s.material.transparent&&null!=u?h>d?(D(u>=d&&u<=h,"invalid firstIndex"),m(u,h),m(d,u)):h<d&&(u<=h?(D(u>=0&&u<=h,"invalid firstIndex"),m(u,h),m(d,c),m(0,u)):(D(u>=d&&u<=c,"invalid firstIndex"),m(u,c),m(0,h),m(d,u))):h>d?m(d,h):h<d&&(m(0,h),m(d,c))}};function H(e,t,r){const s=e.allocateHead();P(t,r,e.view,s)}function P(e,t,r,s){U(e.modelOrigin,t,r.modelOriginHi,r.modelOriginLo,s),r.model.copyFrom(s,e.model,t),r.modelNormal.copyFrom(s,e.modelNormal,t),e.color&&r.color&&r.color.copyFrom(s,e.color,t),e.olidColor&&r.olidColor&&r.olidColor.copyFrom(s,e.olidColor,t),e.featureAttribute&&r.featureAttribute&&r.featureAttribute.copyFrom(s,e.featureAttribute,t)}e([l({constructOnly:!0})],V.prototype,"symbol",void 0),e([l({constructOnly:!0})],V.prototype,"metadata",void 0),e([l({constructOnly:!0})],V.prototype,"shaderTransformation",void 0),e([l()],V.prototype,"_instanceData",void 0),e([l()],V.prototype,"_cycleStartIndex",void 0),e([l({readOnly:!0})],V.prototype,"_enableLevelSelection",null),e([l()],V.prototype,"_updateCyclesWithStaticCamera",void 0),e([l({readOnly:!0})],V.prototype,"readyToRun",null),V=e([c("esri.views.3d.webgl-engine.lib.lodRendering.LodRenderer")],V);const z=f(),N=_(),G=h(),W=f(),k=f(),Y=[p(1,0,1,1),p(0,0,1,1),p(0,1,0,1),p(1,1,0,1),p(1,0,0,1)],Z=new O;export{V as LodRenderer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{exactEquals as e,set as t,copy as r,normalize as s,subtract as i,length as a,scale as o,dot as n,transformMat3 as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as u,create as c,fromValues as h}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{is3DGeometryOutputMRT as m,isShadowLike as p,isColor as d}from"../core/shaderLibrary/ShaderOutput.js";import{GLTextureMaterial as T}from"../lib/GLTextureMaterial.js";import{Material as f}from"../lib/Material.js";import{intersectTriangleGeometry as x}from"../lib/RayIntersections.js";import{getVerticalOffsetObject3D as g}from"../lib/verticalOffsetUtils.js";import{DefaultBufferWriter as v}from"./DefaultBufferWriter.js";import{verticalOffsetAtDistance as S}from"./internal/MaterialUtil.js";import{getLayout as b,DefaultMaterialPassParameters as M,DefaultMaterialTechnique as O}from"../shaders/DefaultMaterialTechnique.js";import{DefaultMaterialTechniqueConfiguration as C}from"../shaders/DefaultMaterialTechniqueConfiguration.js";import{RealisticTreeTechnique as w}from"../shaders/RealisticTreeTechnique.js";import{alphaCutoff as y}from"../../../../webscene/support/AlphaCutoff.js";class R extends f{constructor(e,t){super(e,P),this.materialType="default",this.supportsEdges=!0,this.intersectDraped=void 0,this.produces=new Map([[2,e=>(m(e)||p(e))&&!this.transparent],[4,e=>(m(e)||p(e))&&this.transparent&&this.parameters.writeDepth],[9,e=>(m(e)||p(e))&&this.transparent&&!this.parameters.writeDepth]]),this._layout=b(this.parameters),this._configuration=new C(t.spherical)}isVisibleForOutput(e){return 5!==e&&7!==e&&6!==e||this.parameters.castShadows}get visible(){const{layerOpacity:e,colorMixMode:t,opacity:r,externalColor:s}=this.parameters;return e*("replace"===t?1:r)*("ignore"===t||isNaN(s[3])?1:s[3])>=y}get _hasEmissiveBase(){return!!this.parameters.emissiveTextureId||!e(this.parameters.emissiveBaseColor,u)}get hasEmissions(){return this.parameters.emissiveStrength>0&&(0===this.parameters.emissiveSource&&this._hasEmissiveBase||1===this.parameters.emissiveSource)}updateConfiguration(e){super.updateConfiguration(e);const{parameters:t,_configuration:r}=this;r.hasNormalTexture=t.hasNormalTexture,r.hasColorTexture=t.hasColorTexture,r.hasMetallicRoughnessTexture=t.hasMetallicRoughnessTexture,r.hasOcclusionTexture=t.hasOcclusionTexture;const{treeRendering:s,doubleSided:i,doubleSidedType:a}=t;r.hasVertexTangents=!s&&t.hasVertexTangents,r.instanced=t.instanced,r.instancedDoublePrecision=t.instancedDoublePrecision,r.hasVVColor=!!t.vvColor,r.hasVVSize=!!t.vvSize,r.hasVerticalOffset=null!=t.verticalOffset,r.hasScreenSizePerspective=null!=t.screenSizePerspective,r.hasSlicePlane=t.hasSlicePlane,r.alphaDiscardMode=t.textureAlphaMode,r.normalType=s?0:t.normalType,r.transparent=this.transparent,r.enableOITOffset=e.enableOITOffset,r.writeDepth=t.writeDepth,r.customDepthTest=t.customDepthTest??0,r.hasOccludees=e.hasOccludees,r.cullFace=t.hasSlicePlane?0:t.cullFace,r.cullAboveTerrain=e.cullAboveTerrain,r.hasModelTransformation=!s&&null!=t.modelTransformation,r.hasVertexColors=t.hasVertexColors,r.hasSymbolColors=t.hasSymbolColors,r.doubleSidedMode=s?2:i&&"normal"===a?1:i&&"winding-order"===a?2:0,r.instancedFeatureAttribute=t.instancedFeatureAttribute,r.instancedColor=t.instancedColor,d(e.output)?(r.terrainDepthTest=e.terrainDepthTest,r.receiveShadows=t.receiveShadows,r.receiveAmbientOcclusion=t.receiveAmbientOcclusion&&null!=e.ssao):(r.terrainDepthTest=!1,r.receiveShadows=r.receiveAmbientOcclusion=!1),r.textureAlphaPremultiplied=!!t.textureAlphaPremultiplied,r.pbrMode=t.usePBR?t.isSchematic?2:1:0,r.emissionSource=t.emissionSource,r.offsetBackfaces=!(!this.transparent||!t.offsetTransparentBackfaces),r.snowCover=e.snowCover>0,r.hasColorTextureTransform=!!t.colorTextureTransformMatrix,r.hasNormalTextureTransform=!!t.normalTextureTransformMatrix,r.hasEmissionTextureTransform=!!t.emissiveTextureTransformMatrix,r.hasOcclusionTextureTransform=!!t.occlusionTextureTransformMatrix,r.hasMetallicRoughnessTextureTransform=!!t.metallicRoughnessTextureTransformMatrix}intersect(e,u,c,h,m,p){if(null!=this.parameters.verticalOffset){const e=c.camera;t(N,u[12],u[13],u[14]);let p=null;switch(c.viewingMode){case 1:p=s(B,N);break;case 2:p=r(B,V)}const d=i(z,N,e.eye),T=a(d),f=o(d,d,1/T);let x=null;this.parameters.screenSizePerspective&&(x=n(p,f));const g=S(e,T,this.parameters.verticalOffset,x??0,this.parameters.screenSizePerspective,null);o(p,p,g),l(_,p,c.transform.inverseRotation),h=i(I,h,_),m=i(A,m,_)}x(e,c,h,m,g(c.verticalOffset),p)}createGLMaterial(e){return new D(e)}createBufferWriter(){return new v(this._layout)}get transparent(){return j(this.parameters)}}class D extends T{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});const r=this._material.parameters;this.updateTexture(r.textureId);const s=e.camera.viewInverseTransposeMatrix;return t(r.origin,s[3],s[7],s[11]),this._material.setParameters(this.textureBindParameters),this.getTechnique(r.treeRendering?w:O,e)}}class P extends M{constructor(){super(...arguments),this.treeRendering=!1,this.useIndexing=!1,this.hasVertexTangents=!1}get hasNormalTexture(){return!this.treeRendering&&!!this.normalTextureId}get hasColorTexture(){return!!this.textureId}get hasMetallicRoughnessTexture(){return!this.treeRendering&&!!this.metallicRoughnessTextureId}get hasOcclusionTexture(){return!this.treeRendering&&!!this.occlusionTextureId}get emissiveStrength(){return this.emissiveStrengthFromSymbol*this.emissiveStrengthKHR}get emissionSource(){return this.treeRendering?0:null!=this.emissiveTextureId&&0===this.emissiveSource?3:0===this.emissiveSource?2:1}get hasTextures(){return this.hasColorTexture||this.hasNormalTexture||this.hasMetallicRoughnessTexture||3===this.emissionSource||this.hasOcclusionTexture}}function j(e){const{drivenOpacity:t,opacity:r,externalColor:s,layerOpacity:i,texture:a,textureId:o,textureAlphaMode:n,colorMixMode:l}=e,u=s[3];return t||r<1&&"replace"!==l||u<1&&"ignore"!==l||i<1||(null!=a||null!=o)&&1!==n&&2!==n&&"replace"!==l}const I=c(),A=c(),V=h(0,0,1),B=c(),_=c(),N=c(),z=c();export{D as DefaultGLMaterial,R as DefaultMaterial,P as DefaultMaterialParameters,j as isTransparent};
2
+ import{exactEquals as e,set as t,copy as r,normalize as s,subtract as i,length as a,scale as o,dot as n,transformMat3 as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as u,create as c,fromValues as h}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{is3DGeometryOutputMRT as m,isShadowLike as p,isColor as d}from"../core/shaderLibrary/ShaderOutput.js";import{GLTextureMaterial as f}from"../lib/GLTextureMaterial.js";import{Material as T}from"../lib/Material.js";import{intersectTriangleGeometry as x}from"../lib/RayIntersections.js";import{getVerticalOffsetObject3D as g}from"../lib/verticalOffsetUtils.js";import{DefaultBufferWriter as v}from"./DefaultBufferWriter.js";import{intersectWithPolygonOffset as S}from"./PolygonOffset.js";import{verticalOffsetAtDistance as b}from"./internal/MaterialUtil.js";import{getLayout as M,DefaultMaterialPassParameters as O,DefaultMaterialTechnique as C}from"../shaders/DefaultMaterialTechnique.js";import{DefaultMaterialTechniqueConfiguration as w}from"../shaders/DefaultMaterialTechniqueConfiguration.js";import{RealisticTreeTechnique as y}from"../shaders/RealisticTreeTechnique.js";import{alphaCutoff as R}from"../../../../webscene/support/AlphaCutoff.js";class D extends T{constructor(e,t){super(e,j),this.materialType="default",this.supportsEdges=!0,this.intersectDraped=void 0,this.produces=new Map([[2,e=>(m(e)||p(e))&&!this.transparent],[4,e=>(m(e)||p(e))&&this.transparent&&this.parameters.writeDepth],[9,e=>(m(e)||p(e))&&this.transparent&&!this.parameters.writeDepth]]),this._layout=M(this.parameters),this._configuration=new w(t.spherical)}isVisibleForOutput(e){return 5!==e&&7!==e&&6!==e||this.parameters.castShadows}get visible(){const{layerOpacity:e,colorMixMode:t,opacity:r,externalColor:s}=this.parameters;return e*("replace"===t?1:r)*("ignore"===t||isNaN(s[3])?1:s[3])>=R}get _hasEmissiveBase(){return!!this.parameters.emissiveTextureId||!e(this.parameters.emissiveBaseColor,u)}get hasEmissions(){return this.parameters.emissiveStrength>0&&(0===this.parameters.emissiveSource&&this._hasEmissiveBase||1===this.parameters.emissiveSource)}updateConfiguration(e){super.updateConfiguration(e);const{parameters:t,_configuration:r}=this;r.hasNormalTexture=t.hasNormalTexture,r.hasColorTexture=t.hasColorTexture,r.hasMetallicRoughnessTexture=t.hasMetallicRoughnessTexture,r.hasOcclusionTexture=t.hasOcclusionTexture;const{treeRendering:s,doubleSided:i,doubleSidedType:a}=t;r.hasVertexTangents=!s&&t.hasVertexTangents,r.instanced=t.instanced,r.instancedDoublePrecision=t.instancedDoublePrecision,r.hasVVColor=!!t.vvColor,r.hasVVSize=!!t.vvSize,r.hasVerticalOffset=null!=t.verticalOffset,r.hasScreenSizePerspective=null!=t.screenSizePerspective,r.hasSlicePlane=t.hasSlicePlane,r.alphaDiscardMode=t.textureAlphaMode,r.normalType=s?0:t.normalType,r.transparent=this.transparent,r.enableOITOffset=e.enableOITOffset,r.writeDepth=t.writeDepth,r.customDepthTest=t.customDepthTest??0,r.hasOccludees=e.hasOccludees,r.cullFace=t.hasSlicePlane?0:t.cullFace,r.cullAboveTerrain=e.cullAboveTerrain,r.hasModelTransformation=!s&&null!=t.modelTransformation,r.hasVertexColors=t.hasVertexColors,r.hasSymbolColors=t.hasSymbolColors,r.doubleSidedMode=s?2:i&&"normal"===a?1:i&&"winding-order"===a?2:0,r.instancedFeatureAttribute=t.instancedFeatureAttribute,r.instancedColor=t.instancedColor,d(e.output)?(r.terrainDepthTest=e.terrainDepthTest,r.receiveShadows=t.receiveShadows,r.receiveAmbientOcclusion=t.receiveAmbientOcclusion&&null!=e.ssao):(r.terrainDepthTest=!1,r.receiveShadows=r.receiveAmbientOcclusion=!1),r.textureAlphaPremultiplied=!!t.textureAlphaPremultiplied,r.pbrMode=t.usePBR?t.isSchematic?2:1:0,r.emissionSource=t.emissionSource,r.offsetBackfaces=!(!this.transparent||!t.offsetTransparentBackfaces),r.snowCover=e.snowCover>0,r.hasColorTextureTransform=!!t.colorTextureTransformMatrix,r.hasNormalTextureTransform=!!t.normalTextureTransformMatrix,r.hasEmissionTextureTransform=!!t.emissiveTextureTransformMatrix,r.hasOcclusionTextureTransform=!!t.occlusionTextureTransformMatrix,r.hasMetallicRoughnessTextureTransform=!!t.metallicRoughnessTextureTransformMatrix}intersect(e,u,c,h,m,p){if(null!=this.parameters.verticalOffset){const e=c.camera;t(z,u[12],u[13],u[14]);let p=null;switch(c.viewingMode){case 1:p=s(B,z);break;case 2:p=r(B,_)}const d=i(F,z,e.eye),f=a(d),T=o(d,d,1/f);let x=null;this.parameters.screenSizePerspective&&(x=n(p,T));const g=b(e,f,this.parameters.verticalOffset,x??0,this.parameters.screenSizePerspective,null);o(p,p,g),l(N,p,c.transform.inverseRotation),h=i(A,h,N),m=i(V,m,N)}p=S(p,this._configuration,h,m),x(e,c,h,m,g(c.verticalOffset),p)}createGLMaterial(e){return new P(e)}createBufferWriter(){return new v(this._layout)}get transparent(){return I(this.parameters)}}class P extends f{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});const r=this._material.parameters;this.updateTexture(r.textureId);const s=e.camera.viewInverseTransposeMatrix;return t(r.origin,s[3],s[7],s[11]),this._material.setParameters(this.textureBindParameters),this.getTechnique(r.treeRendering?y:C,e)}}class j extends O{constructor(){super(...arguments),this.treeRendering=!1,this.useIndexing=!1,this.hasVertexTangents=!1}get hasNormalTexture(){return!this.treeRendering&&!!this.normalTextureId}get hasColorTexture(){return!!this.textureId}get hasMetallicRoughnessTexture(){return!this.treeRendering&&!!this.metallicRoughnessTextureId}get hasOcclusionTexture(){return!this.treeRendering&&!!this.occlusionTextureId}get emissiveStrength(){return this.emissiveStrengthFromSymbol*this.emissiveStrengthKHR}get emissionSource(){return this.treeRendering?0:null!=this.emissiveTextureId&&0===this.emissiveSource?3:0===this.emissiveSource?2:1}get hasTextures(){return this.hasColorTexture||this.hasNormalTexture||this.hasMetallicRoughnessTexture||3===this.emissionSource||this.hasOcclusionTexture}}function I(e){const{drivenOpacity:t,opacity:r,externalColor:s,layerOpacity:i,texture:a,textureId:o,textureAlphaMode:n,colorMixMode:l}=e,u=s[3];return t||r<1&&"replace"!==l||u<1&&"ignore"!==l||i<1||(null!=a||null!=o)&&1!==n&&2!==n&&"replace"!==l}const A=c(),V=c(),_=h(0,0,1),B=c(),N=c(),z=c(),F=c();export{P as DefaultGLMaterial,D as DefaultMaterial,j as DefaultMaterialParameters,I as isTransparent};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{freeze as t,create as i,ZEROS as o}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{glLayout as s}from"../../support/buffer/glUtil.js";import{newLayout as l}from"../../support/buffer/InterleavedLayout.js";import{isOITColor as a}from"../core/shaderLibrary/ShaderOutput.js";import{PathVertexPositionPassParameters as n}from"../core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import{ReloadableShader as m}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as c}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as p}from"../effects/geometry/olidUtils.js";import{depthTest as f,blending as u}from"../lib/OrderIndependentTransparency.js";import{stencilBaseAllZerosParams as h,stencilWriteMaskOn as d}from"../lib/StencilUtils.js";import{P as b}from"../../../../chunks/Path.glsl.js";import{advancedMRRFactors as g}from"./pbrUtils.js";import{oitPolygonOffset as j}from"./PolygonOffset.js";import{makePipelineState as S,defaultColorWrite as v,defaultDepthWrite as y,frontFaceCullingParams as P}from"../../../webgl/renderState.js";class T extends n{constructor(){super(...arguments),this.ambient=t(.2,.2,.2),this.diffuse=t(.8,.8,.8),this.opacity=1,this.origin=i(),this.modelTransformation=null,this.mrrFactors=g,this.emissiveStrengthFromSymbol=0,this.emissiveSource=1,this.emissiveBaseColor=o}get emissiveStrength(){return this.emissiveStrengthFromSymbol}}let V=class extends c{constructor(e,r){super(e,r,s(x(r))),this.shader=new m(b,()=>import("./Path.glsl.js"))}initializePipeline(e){const{output:r,transparent:t,hasSlicePlane:i,doubleSidedMode:o,hasOccludees:s}=e,l=!a(r);return S({blending:t?u(r):null,culling:i&&!t&&0!==o?P:null,depthTest:f(r),depthWrite:l?y:null,colorWrite:v,stencilWrite:s?d:null,stencilTest:s?h:null,polygonOffset:j(e)})}};function x(e){const r=l().vec3f("position").vec4f16("profileVertexAndNormal").vec2i16("profileRight",{glNormalized:!0}).vec2i16("profileUp",{glNormalized:!0});return e.hasVVSize&&r.f32("sizeFeatureAttribute"),e.hasVVColor&&r.f32("colorFeatureAttribute"),e.hasVVOpacity&&r.f32("opacityFeatureAttribute"),p()&&r.vec4u8("olidColor"),r.vec3f16("profileAuxData"),r.freeze()}V=e([r("esri.views.3d.webgl-engine.materials.PathTechnique")],V);export{T as PathPassParameters,V as PathTechnique,x as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{freeze as t,create as i,ZEROS as o}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{glLayout as s}from"../../support/buffer/glUtil.js";import{newLayout as l}from"../../support/buffer/InterleavedLayout.js";import{isOITColor as a}from"../core/shaderLibrary/ShaderOutput.js";import{PathVertexPositionPassParameters as n}from"../core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import{ReloadableShader as m}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as c}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as p}from"../effects/geometry/olidUtils.js";import{depthTest as f,blending as u}from"../lib/OrderIndependentTransparency.js";import{stencilBaseAllZerosParams as h,stencilWriteMaskOn as d}from"../lib/StencilUtils.js";import{P as b}from"../../../../chunks/Path.glsl.js";import{advancedMRRFactors as g}from"./pbrUtils.js";import{polygonOffset as j}from"./PolygonOffset.js";import{makePipelineState as S,defaultColorWrite as v,defaultDepthWrite as y,frontFaceCullingParams as P}from"../../../webgl/renderState.js";class T extends n{constructor(){super(...arguments),this.ambient=t(.2,.2,.2),this.diffuse=t(.8,.8,.8),this.opacity=1,this.origin=i(),this.modelTransformation=null,this.mrrFactors=g,this.emissiveStrengthFromSymbol=0,this.emissiveSource=1,this.emissiveBaseColor=o}get emissiveStrength(){return this.emissiveStrengthFromSymbol}}let V=class extends c{constructor(e,r){super(e,r,s(x(r))),this.shader=new m(b,()=>import("./Path.glsl.js"))}initializePipeline(e){const{output:r,transparent:t,hasSlicePlane:i,doubleSidedMode:o,hasOccludees:s}=e,l=!a(r);return S({blending:t?u(r):null,culling:i&&!t&&0!==o?P:null,depthTest:f(r),depthWrite:l?y:null,colorWrite:v,stencilWrite:s?d:null,stencilTest:s?h:null,polygonOffset:j(e)})}};function x(e){const r=l().vec3f("position").vec4f16("profileVertexAndNormal").vec2i16("profileRight",{glNormalized:!0}).vec2i16("profileUp",{glNormalized:!0});return e.hasVVSize&&r.f32("sizeFeatureAttribute"),e.hasVVColor&&r.f32("colorFeatureAttribute"),e.hasVVOpacity&&r.f32("opacityFeatureAttribute"),p()&&r.vec4u8("olidColor"),r.vec3f16("profileAuxData"),r.freeze()}V=e([r("esri.views.3d.webgl-engine.materials.PathTechnique")],V);export{T as PathPassParameters,V as PathTechnique,x as getLayout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{isOITColor as t}from"../core/shaderLibrary/ShaderOutput.js";const r={factor:1,units:1},n={factor:1,units:2},o={factor:0,units:-4},u={factor:-5,units:-5},f={factor:-1,units:-2},a=new Array;function e({output:r,enableOITOffset:n,polygonOffset:o}){return t(r)?n?f:null:a[o]}a[0]=null,a[1]=r,a[2]=u,a[3]=o,a[4]=n;export{a as PolygonOffsetSettings,o as hudPolygonOffset,e as oitPolygonOffset};
2
+ import{normalize as t,sub as r,dot as o}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isOITColor as s}from"../core/shaderLibrary/ShaderOutput.js";const c={factor:1,units:1},f={factor:1,units:2},i={factor:0,units:-4},u={factor:-5,units:-5},a={factor:-1,units:-2},e=new Array;e[0]=null,e[1]=c,e[2]=u,e[3]=i,e[4]=f;const m=e.map(t=>p(a,t));function l({output:t,enableOITOffset:r,polygonOffset:o}){return s(t)&&r?m[o]:e[o]}function p(t,r){return r?{factor:t.factor+r.factor,units:t.units+r.units}:t}function b(n,s,c,f){const i=l(s);if(!i)return n;const u=g*i.units,a=t(h,r(h,f,c));return(t,r,s)=>{const c=(r?1-Math.abs(o(a,r)):0)*i.factor*O+u;return n(t+c,r,s)}}e[1]=c;const h=n(),O=5e-5,g=5e-6;export{i as hudPolygonOffset,b as intersectWithPolygonOffset,l as polygonOffset};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{normalize as e,set as t,scale as r,add as s}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromValues as i,create as a}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as n}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{center as o,scale as p}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as c}from"../../../../geometry/support/buffer/BufferView.js";import{isColorOrOLID as h,isColor as l}from"../core/shaderLibrary/ShaderOutput.js";import u from"../lib/GLMaterial.js";import{Material as m,MaterialParameters as f}from"../lib/Material.js";import{intersectTriangleGeometry as d}from"../lib/RayIntersections.js";import{assert as g}from"../lib/Util.js";import{writeAttributes as b,writePosition as S}from"./internal/bufferWriterUtils.js";import{getLayout as _,ShadedColorMaterialTechnique as j}from"../shaders/ShadedColorMaterialTechnique.js";import{ShadedColorMaterialTechniqueConfiguration as w}from"../shaders/ShadedColorMaterialTechniqueConfiguration.js";import{alphaCutoff as T}from"../../../../webscene/support/AlphaCutoff.js";class x extends m{constructor(e){super(e,D),this._configuration=new w,this.supportsEdges=!0,this._pp0=i(0,0,1),this._pp1=i(0,0,0),this.produces=new Map([[2,e=>10===e||h(e)&&!this.parameters.transparent],[4,e=>h(e)&&this.parameters.transparent&&this.parameters.writeDepth],[9,e=>h(e)&&this.parameters.transparent&&!this.parameters.writeDepth]])}updateConfiguration(e){super.updateConfiguration(e),this._configuration.cullFace=this.parameters.cullFace,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.transparent=this.parameters.transparent,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.screenSizeEnabled=this.parameters.screenSizeEnabled,this._configuration.shadingEnabled=this.parameters.shadingEnabled,this._configuration.terrainDepthTest=e.terrainDepthTest&&l(e.output),this._configuration.cullAboveTerrain=e.cullAboveTerrain}get visible(){return this.parameters.color[3]>=T}intersect(e,t,r,s,i,a){this._intersect(e,r,s,i,a)}intersectDraped(e,t,r,s){return this._pp0[0]=this._pp1[0]=r[0],this._pp0[1]=this._pp1[1]=r[1],this._intersect(e,t,this._pp0,this._pp1,s)}_intersect(e,i,a,n,c){if(this.parameters.screenSizeEnabled){const h=e.attributes.get("offset"),l={applyToVertex:(e,a,n,o)=>{const p=t(E,h.data[3*o],h.data[3*o+1],h.data[3*o+2]),c=t(M,e,a,n);return r(p,p,this.parameters.screenSizeScale*(i.camera?.computeScreenPixelSizeAt(p)??1)),s(c,c,p),[c[0],c[1],c[2]]},applyToAabb:e=>{const t=o(e,E);return p(e,this.parameters.screenSizeScale*(i.camera?.computeScreenPixelSizeAt(t)??1))}};d(e,i,a,n,l,c)}else d(e,i,a,n,void 0,c)}createGLMaterial(e){return new z(e)}createBufferWriter(){return new y(_(this.parameters))}}class z extends u{beginSlot(e){return this.getTechnique(j,e)}}class D extends f{constructor(){super(...arguments),this.color=n(1,1,1,1),this.shadingTint=n(0,0,0,.25),this.shadingDirection=e(a(),[.5,-.5,-.5]),this.screenSizeScale=14,this.forceTransparentMode=!1,this.writeDepth=!0,this.hasSlicePlane=!1,this.cullFace=0,this.screenSizeEnabled=!1,this.shadingEnabled=!0}get transparent(){return this.color[3]<1||this.forceTransparentMode}}class y{constructor(e){this.layout=e}elementCount(e){return e.get("position").indices.length}write(e,t,r,s,i,a){const n=b(r,s,this.layout,e,t,i,a),o=i.getField("offset",c);if(o&&r.has("offset")){const e=r.get("offset");g(3===e.size),S(e,t,o,a)}return n}}const E=a(),M=a();export{D as Parameters,x as ShadedColorMaterial};
2
+ import{normalize as e,set as t,scale as r,add as s}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromValues as i,create as a}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{center as n,scale as p}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as c}from"../../../../geometry/support/buffer/BufferView.js";import{isColorOrOLID as h,isColor as l}from"../core/shaderLibrary/ShaderOutput.js";import u from"../lib/GLMaterial.js";import{Material as m,MaterialParameters as f}from"../lib/Material.js";import{intersectTriangleGeometry as d}from"../lib/RayIntersections.js";import{assert as g}from"../lib/Util.js";import{intersectWithPolygonOffset as b}from"./PolygonOffset.js";import{writeAttributes as S,writePosition as _}from"./internal/bufferWriterUtils.js";import{getLayout as j,ShadedColorMaterialTechnique as w}from"../shaders/ShadedColorMaterialTechnique.js";import{ShadedColorMaterialTechniqueConfiguration as T}from"../shaders/ShadedColorMaterialTechniqueConfiguration.js";import{alphaCutoff as x}from"../../../../webscene/support/AlphaCutoff.js";class z extends m{constructor(e){super(e,D),this._configuration=new T,this.supportsEdges=!0,this._pp0=i(0,0,1),this._pp1=i(0,0,0),this.produces=new Map([[2,e=>10===e||h(e)&&!this.parameters.transparent],[4,e=>h(e)&&this.parameters.transparent&&this.parameters.writeDepth],[9,e=>h(e)&&this.parameters.transparent&&!this.parameters.writeDepth]])}updateConfiguration(e){super.updateConfiguration(e),this._configuration.cullFace=this.parameters.cullFace,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.transparent=this.parameters.transparent,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.screenSizeEnabled=this.parameters.screenSizeEnabled,this._configuration.shadingEnabled=this.parameters.shadingEnabled,this._configuration.terrainDepthTest=e.terrainDepthTest&&l(e.output),this._configuration.cullAboveTerrain=e.cullAboveTerrain}get visible(){return this.parameters.color[3]>=x}intersect(e,t,r,s,i,a){this._intersect(e,r,s,i,a)}intersectDraped(e,t,r,s){return this._pp0[0]=this._pp1[0]=r[0],this._pp0[1]=this._pp1[1]=r[1],this._intersect(e,t,this._pp0,this._pp1,s)}_intersect(e,i,a,o,c){const h=b(c,this._configuration,a,o);if(this.parameters.screenSizeEnabled){const c=e.attributes.get("offset"),l={applyToVertex:(e,a,o,n)=>{const p=t(M,c.data[3*n],c.data[3*n+1],c.data[3*n+2]),h=t(v,e,a,o);return r(p,p,this.parameters.screenSizeScale*(i.camera?.computeScreenPixelSizeAt(p)??1)),s(h,h,p),[h[0],h[1],h[2]]},applyToAabb:e=>{const t=n(e,M);return p(e,this.parameters.screenSizeScale*(i.camera?.computeScreenPixelSizeAt(t)??1))}};d(e,i,a,o,l,h)}else d(e,i,a,o,void 0,h)}createGLMaterial(e){return new y(e)}createBufferWriter(){return new E(j(this.parameters))}}class y extends u{beginSlot(e){return this.getTechnique(w,e)}}class D extends f{constructor(){super(...arguments),this.color=o(1,1,1,1),this.shadingTint=o(0,0,0,.25),this.shadingDirection=e(a(),[.5,-.5,-.5]),this.screenSizeScale=14,this.forceTransparentMode=!1,this.writeDepth=!0,this.hasSlicePlane=!1,this.cullFace=0,this.screenSizeEnabled=!1,this.shadingEnabled=!0}get transparent(){return this.color[3]<1||this.forceTransparentMode}}class E{constructor(e){this.layout=e}elementCount(e){return e.get("position").indices.length}write(e,t,r,s,i,a){const o=S(r,s,this.layout,e,t,i,a),n=i.getField("offset",c);if(n&&r.has("offset")){const e=r.get("offset");g(3===e.size),_(e,t,n,a)}return o}}const M=a(),v=a();export{D as Parameters,z as ShadedColorMaterial};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{Material as t,MaterialParameters as e}from"../lib/Material.js";import{intersectTriangleGeometry as r,intersectTriangleGeometry2D as s}from"../lib/RayIntersections.js";class n extends t{updateConfiguration(t){super.updateConfiguration(t),this._configuration.transparent=this.transparent,this._configuration.enableOITOffset=t.enableOITOffset,this._configuration.polygonOffset=this.parameters.polygonOffset}intersect(t,e,s,n,i,o){return r(t,s,n,i,void 0,o)}intersectDraped(t,e,r,n){return s(r[0],r[1],t,n)}}class i extends e{constructor(){super(...arguments),this.polygonOffset=0}}export{n as TriangleMaterial,i as TriangleMaterialParameters};
2
+ import{Material as t,MaterialParameters as e}from"../lib/Material.js";import{intersectTriangleGeometry as n,intersectTriangleGeometry2D as r}from"../lib/RayIntersections.js";import{intersectWithPolygonOffset as s}from"./PolygonOffset.js";class o extends t{updateConfiguration(t){super.updateConfiguration(t),this._configuration.transparent=this.transparent,this._configuration.enableOITOffset=t.enableOITOffset,this._configuration.polygonOffset=this.parameters.polygonOffset}intersect(t,e,r,o,i,a){return a=s(a,this._configuration,o,i),n(t,r,o,i,null,a)}intersectDraped(t,e,n,s){return r(n[0],n[1],t,s)}}class i extends e{constructor(){super(...arguments),this.polygonOffset=0}}export{o as TriangleMaterial,i as TriangleMaterialParameters};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import"../../../../core/has.js";import{secondsFromMilliseconds as t}from"../../../../core/time.js";import{fromValues as e}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as i}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isColor as a,isHighlightOrOLID as s}from"../core/shaderLibrary/ShaderOutput.js";import{olidEnabled as o}from"../effects/geometry/olidUtils.js";import{DefaultBufferWriter as n}from"./DefaultBufferWriter.js";import{PositionUvf32OlidLayout as h,PositionUvf32Layout as l}from"./DefaultLayouts.js";import{TriangleMaterialParameters as c,TriangleMaterial as p}from"./TriangleMaterial.js";import{WaterGLMaterial as m}from"./WaterGLMaterial.js";import{WaterTechniqueConfiguration as u}from"./WaterTechniqueConfiguration.js";class f extends p{constructor(t,e){super(t,d),this.visible=!0,this.produces=new Map([[2,t=>a(t)&&!this.transparent||s(t)],[4,t=>a(t)&&this.transparent||s(t)],[19,t=>this.parameters.draped&&a(t)||4===t||s(t)],[20,t=>4===t]]),this._configuration=new u(e.spherical)}updateConfiguration(t){super.updateConfiguration(t),this._configuration.writeDepth=!0,this._configuration.receiveShadows=a(t.output)&&t.shadowMap.enabled,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.screenSpaceReflections=null!=t.ssr.lastFrameColor,this._configuration.cloudReflections=null!=t.clouds.data,this._configuration.draped=this.parameters.draped,this._configuration.terrainDepthTest=t.terrainDepthTest&&a(t.output),this._configuration.cullAboveTerrain=t.cullAboveTerrain}update(e){return this.setParameters({timeElapsed:t(e.time)*this.parameters.animationSpeed},!1),this._animationEnabled(e.camera)&&e.dt>0}_animationEnabled(t){const e=Math.min(t.relativeElevation,t.distance);return Math.sqrt(this.parameters.waveTextureRepeat/this.parameters.waveStrength)*e<g}get transparent(){return this.parameters.transparent}createGLMaterial(t){return new m(t)}createBufferWriter(){return new n(o()?h:l)}get test(){}}class d extends c{constructor(){super(...arguments),this.waveStrength=.06,this.waveTextureRepeat=32,this.waveDirection=e(1,0),this.waveVelocity=.05,this.flowStrength=.015,this.flowOffset=-.5,this.animationSpeed=.35,this.timeElapsed=0,this.color=i(0,0,0,0),this.transparent=!0,this.hasSlicePlane=!1,this.draped=!1,this.origin=r(),this.modelTransformation=null}}const g=35e3;export{d as Parameters,f as WaterMaterial};
2
+ import"../../../../core/has.js";import{secondsFromMilliseconds as t}from"../../../../core/time.js";import{fromValues as e}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as i}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isColor as a,isHighlightOrOLID as s}from"../core/shaderLibrary/ShaderOutput.js";import{olidEnabled as o}from"../effects/geometry/olidUtils.js";import{DefaultBufferWriter as n}from"./DefaultBufferWriter.js";import{PositionUvf32OlidLayout as c,PositionUvf32Layout as l}from"./DefaultLayouts.js";import{TriangleMaterialParameters as h,TriangleMaterial as p}from"./TriangleMaterial.js";import{WaterGLMaterial as m}from"./WaterGLMaterial.js";import{WaterTechniqueConfiguration as u}from"./WaterTechniqueConfiguration.js";class f extends p{constructor(t,e){super(t,d),this.visible=!0,this.produces=new Map([[2,t=>a(t)&&!this.transparent||s(t)],[4,t=>a(t)&&this.transparent||s(t)],[19,t=>this.parameters.draped&&a(t)||4===t||s(t)],[20,t=>4===t]]),this._configuration=new u(e.spherical)}updateConfiguration(t){super.updateConfiguration(t),this._configuration.writeDepth=!0,this._configuration.receiveShadows=a(t.output)&&t.shadowMap.enabled,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.screenSpaceReflections=t.screenSpaceReflections.enabled&&null!=t.reprojection.lastFrameColor,this._configuration.cloudReflections=null!=t.clouds.data,this._configuration.draped=this.parameters.draped,this._configuration.terrainDepthTest=t.terrainDepthTest&&a(t.output),this._configuration.cullAboveTerrain=t.cullAboveTerrain}update(e){return this.setParameters({timeElapsed:t(e.time)*this.parameters.animationSpeed},!1),this._animationEnabled(e.camera)&&e.dt>0}_animationEnabled(t){const e=Math.min(t.relativeElevation,t.distance);return Math.sqrt(this.parameters.waveTextureRepeat/this.parameters.waveStrength)*e<g}get transparent(){return this.parameters.transparent}createGLMaterial(t){return new m(t)}createBufferWriter(){return new n(o()?c:l)}get test(){}}class d extends h{constructor(){super(...arguments),this.waveStrength=.06,this.waveTextureRepeat=32,this.waveDirection=e(1,0),this.waveVelocity=.05,this.flowStrength=.015,this.flowOffset=-.5,this.animationSpeed=.35,this.timeElapsed=0,this.color=i(0,0,0,0),this.transparent=!0,this.hasSlicePlane=!1,this.draped=!1,this.origin=r(),this.modelTransformation=null}}const g=35e3;export{d as Parameters,f as WaterMaterial};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{WaterDistortionPassParameters as t}from"../core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as i}from"../effects/geometry/olidUtils.js";import{depthWrite as n,depthTest as a,blending as l}from"../lib/OrderIndependentTransparency.js";import{PositionUvf32OlidGLLayout as m,PositionUvf32GLLayout as p}from"./DefaultLayouts.js";import{oitPolygonOffset as d}from"./PolygonOffset.js";import{W as c}from"../../../../chunks/Water.glsl.js";import{makePipelineState as f,defaultColorWrite as h}from"../../../webgl/renderState.js";class u extends t{}let g=class extends s{constructor(e,r){super(e,r,i()?m:p),this.shader=new o(c,()=>import("./Water.glsl.js"))}initializePipeline(e){const{output:r,transparent:t,draped:o}=e;return f({blending:t?l(r):null,depthTest:o?null:a(r),depthWrite:n(e),colorWrite:h,polygonOffset:d(e)})}};g=e([r("esri.views.3d.webgl-engine.materials.WaterTechnique")],g);export{u as WaterMaterialPassParameters,g as WaterTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{WaterDistortionPassParameters as t}from"../core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as i}from"../effects/geometry/olidUtils.js";import{depthWrite as n,depthTest as a,blending as l}from"../lib/OrderIndependentTransparency.js";import{PositionUvf32OlidGLLayout as m,PositionUvf32GLLayout as p}from"./DefaultLayouts.js";import{polygonOffset as d}from"./PolygonOffset.js";import{W as c}from"../../../../chunks/Water.glsl.js";import{makePipelineState as f,defaultColorWrite as h}from"../../../webgl/renderState.js";class u extends t{}let g=class extends s{constructor(e,r){super(e,r,i()?m:p),this.shader=new o(c,()=>import("./Water.glsl.js"))}initializePipeline(e){const{output:r,transparent:t,draped:o}=e;return f({blending:t?l(r):null,depthTest:o?null:a(r),depthWrite:n(e),colorWrite:h,polygonOffset:d(e)})}};g=e([r("esri.views.3d.webgl-engine.materials.WaterTechnique")],g);export{u as WaterMaterialPassParameters,g as WaterTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import e from"../../../../../core/Accessor.js";import"../../../../../core/has.js";import{disposeMaybe as i}from"../../../../../core/maybe.js";import{property as s,subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{GLMaterials as a}from"../../lib/GLMaterials.js";import{assert as n}from"../../lib/Util.js";import{DrawParameters as o}from"../DrawParameters.js";import{getStrideForDataType as l}from"./IndexLayout.js";import{defaultHighlightName as h}from"../../../../support/HighlightDefaults.js";let d=class extends e{constructor(t){super(t),this._glMaterials=null,this._drawParameters=new o,this._highlightNames=new Set,this._produces=new Map}initialize(){this._updateProduces()}destroy(){this.uninitializeRenderContext()}get _hasHighlights(){return this._highlightNames.size>0}hasHighlight(t){return this._highlightNames.has(t)}get produces(){return this._produces}_updateProduces(){this.material.produces.forEach((t,e)=>{this._produces.set(e,e=>!(0===this.dataByBaseInstance.size||!(10!==e&&6!==e||this._hasHighlights))&&t(e))})}initializeRenderContext(t){this._glMaterials=new a(this.material,t.materials)}uninitializeRenderContext(){this._glMaterials=i(this._glMaterials)}acquireTechniques(t){if(!this.material.shouldRender(t))return null;const{output:e,bind:i}=t,s=this.material.produces.get(i.slot);if(!s?.(e))return null;const{highlight:r,slot:a}=i,n=6===e,o=10===e,l=o||n,d=r?.name;if(l&&(0===this._highlightNames.size||o&&d&&!this._highlightNames.has(d)))return null;const u=t=>o&&!!d&&!t.has(d),c=7===e,g=!(l||c);for(const m of this.dataByBaseInstance.values())for(const s of m.dataByOrigin.values())for(const r of s.buffers){if(u(r.highlightNames))continue;const s=n?r.drawCommandsHighlights.get(h):l?d?r.drawCommandsHighlights.get(d):r.drawCommandsHighlights.size>0:((c&&r.needsMultipleCommands?r.drawCommandsShadowHighlightRest:r.drawCommandsDefault)||null)?.length??!1,o=g&&r.drawCommandsOccludees||null;if(s||o?.length){const s=this._glMaterials.load(t.rctx,a,e),r=s?.beginSlot(i);if(r)return r}}return null}render(t,e){const{output:i,bind:s}=t,{highlight:r}=s,a=10===i,o=r?.name??"";if(a&&!r)return;const l=6===i,d=a||l,p=7===i,w=!(d||p),{rctx:_}=t,C=_.bindTechnique(e,s,this.material.parameters),x=this.material.useIndexing;for(const B of this.dataByBaseInstance.values()){const{baseInstanceData:t}=B,i=null!=t;n(!(i&&x),"Instanced indexed rendering is not supported");const r=i?f:x?m:g,H=i?c:u;for(const n of B.dataByOrigin.values()){this._drawParameters.origin=n.origin;for(const i of n.buffers){if(a&&(!i.hasHighlights||!i.drawCommandsHighlights.has(o)))continue;if(l&&(!i.hasHighlights||!i.drawCommandsHighlights.has(h)))continue;this._drawParameters.textureBuffer=i.textureBuffer?.texture;const n=H(i),u=y(n,i.needsMultipleCommands,o,l,d,p),c=b(n,w);(u?.length||c?.length)&&(C.bindDraw(s,this.material.parameters,this._drawParameters),r(_,i,t,e,u,c,s)),this._drawParameters.textureBuffer=null}}}}updateHighlights(){const{_highlightNames:t}=this;t.clear();for(const e of this.dataByBaseInstance.values())for(const i of e.dataByOrigin.values())for(const e of i.buffers)for(const i of e.highlightNames)t.add(i);this._updateProduces()}get test(){}};t([s({constructOnly:!0})],d.prototype,"material",void 0),t([s({constructOnly:!0})],d.prototype,"dataByBaseInstance",void 0),d=t([r("esri.views.3d.webgl-engine.materials.renderers.VaoRenderer")],d);const u=t=>t,c=t=>t.instancedCommandVAOs,g=(t,{vao:e},i,s,r,a,n)=>{s.ensureAttributeLocations(e),t.bindVAO(e),p(t,s,r,n,!1),p(t,s,a,n,!0)},m=(t,{vao:e},i,s,r,a,o)=>{s.ensureAttributeLocations(e),t.bindVAO(e);const l=e.indexBuffer?.indexType;n(null!=l,"Missing index array"),w(t,s,r,o,!1,l),w(t,s,a,o,!0,l)},f=(t,e,{baseCommand:i},s,r,a,n)=>{_(t,s,i,r,n,!1),_(t,s,i,a,n,!0)};function p(t,e,i,s,r){if(i?.length){t.setPipelineState(e.getPipeline(s,r));for(const s of i)t.drawArrays(e.primitiveType,s.first,s.count)}}function w(t,e,i,s,r,a){if(!i?.length)return;const n=l(a);t.setPipelineState(e.getPipeline(s,r));for(const o of i)t.drawElements(e.primitiveType,o.count,a,o.first*n)}function _(t,e,{first:i,count:s},r,a,n){if(r?.length){t.setPipelineState(e.getPipeline(a,n));for(const{vao:a,instanceCount:n}of r)e.ensureAttributeLocations(a),t.bindVAO(a),t.drawArraysInstanced(e.primitiveType,i,s,n)}}function y(t,e,i,s,r,a){const n=r&&!s?t.drawCommandsHighlights.get(i)??null:null;return s?t.drawCommandsHighlights.get(h):r?n:a&&e?t.drawCommandsShadowHighlightRest:t.drawCommandsDefault}function b(t,e){return e&&t.drawCommandsOccludees||null}export{d as VaoRenderer};
2
+ import{__decorate as t}from"tslib";import e from"../../../../../core/Accessor.js";import"../../../../../core/has.js";import{disposeMaybe as i}from"../../../../../core/maybe.js";import{property as s,subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{GLMaterialLoader as a}from"../../lib/GLMaterialLoader.js";import{assert as n}from"../../lib/Util.js";import{DrawParameters as o}from"../DrawParameters.js";import{getStrideForDataType as l}from"./IndexLayout.js";import{defaultHighlightName as h}from"../../../../support/HighlightDefaults.js";let d=class extends e{constructor(t){super(t),this._glMaterialLoader=null,this._drawParameters=new o,this._highlightNames=new Set,this._produces=new Map}initialize(){this._updateProduces()}destroy(){this.uninitializeRenderContext()}get _hasHighlights(){return this._highlightNames.size>0}hasHighlight(t){return this._highlightNames.has(t)}get produces(){return this._produces}_updateProduces(){this.material.produces.forEach((t,e)=>{this._produces.set(e,e=>!(0===this.dataByBaseInstance.size||!(10!==e&&6!==e||this._hasHighlights))&&t(e))})}initializeRenderContext(t){this._glMaterialLoader=new a(this.material,t.materials)}uninitializeRenderContext(){this._glMaterialLoader=i(this._glMaterialLoader)}acquireTechniques(t){if(!this.material.shouldRender(t))return null;const{output:e,bind:i}=t,s=this.material.produces.get(i.slot);if(!s?.(e))return null;const{highlight:r,slot:a}=i,n=6===e,o=10===e,l=o||n,d=r?.name;if(l&&(0===this._highlightNames.size||o&&d&&!this._highlightNames.has(d)))return null;const u=t=>o&&!!d&&!t.has(d),c=7===e,g=!(l||c);for(const m of this.dataByBaseInstance.values())for(const s of m.dataByOrigin.values())for(const r of s.buffers){if(u(r.highlightNames))continue;const s=n?r.drawCommandsHighlights.get(h):l?d?r.drawCommandsHighlights.get(d):r.drawCommandsHighlights.size>0:((c&&r.needsMultipleCommands?r.drawCommandsShadowHighlightRest:r.drawCommandsDefault)||null)?.length??!1,o=g&&r.drawCommandsOccludees||null;if(s||o?.length){const s=this._glMaterialLoader.load(t.rctx,a,e),r=s?.beginSlot(i);if(r)return r}}return null}render(t,e){const{output:i,bind:s}=t,{highlight:r}=s,a=10===i,o=r?.name??"";if(a&&!r)return;const l=6===i,d=a||l,p=7===i,w=!(d||p),{rctx:_}=t,C=_.bindTechnique(e,s,this.material.parameters),x=this.material.useIndexing;for(const B of this.dataByBaseInstance.values()){const{baseInstanceData:t}=B,i=null!=t;n(!(i&&x),"Instanced indexed rendering is not supported");const r=i?f:x?m:g,H=i?c:u;for(const n of B.dataByOrigin.values()){this._drawParameters.origin=n.origin;for(const i of n.buffers){if(a&&(!i.hasHighlights||!i.drawCommandsHighlights.has(o)))continue;if(l&&(!i.hasHighlights||!i.drawCommandsHighlights.has(h)))continue;this._drawParameters.textureBuffer=i.textureBuffer?.texture;const n=H(i),u=y(n,i.needsMultipleCommands,o,l,d,p),c=b(n,w);(u?.length||c?.length)&&(C.bindDraw(s,this.material.parameters,this._drawParameters),r(_,i,t,e,u,c,s)),this._drawParameters.textureBuffer=null}}}}updateHighlights(){const{_highlightNames:t}=this;t.clear();for(const e of this.dataByBaseInstance.values())for(const i of e.dataByOrigin.values())for(const e of i.buffers)for(const i of e.highlightNames)t.add(i);this._updateProduces()}get test(){}};t([s({constructOnly:!0})],d.prototype,"material",void 0),t([s({constructOnly:!0})],d.prototype,"dataByBaseInstance",void 0),d=t([r("esri.views.3d.webgl-engine.materials.renderers.VaoRenderer")],d);const u=t=>t,c=t=>t.instancedCommandVAOs,g=(t,{vao:e},i,s,r,a,n)=>{s.ensureAttributeLocations(e),t.bindVAO(e),p(t,s,r,n,!1),p(t,s,a,n,!0)},m=(t,{vao:e},i,s,r,a,o)=>{s.ensureAttributeLocations(e),t.bindVAO(e);const l=e.indexBuffer?.indexType;n(null!=l,"Missing index array"),w(t,s,r,o,!1,l),w(t,s,a,o,!0,l)},f=(t,e,{baseCommand:i},s,r,a,n)=>{_(t,s,i,r,n,!1),_(t,s,i,a,n,!0)};function p(t,e,i,s,r){if(i?.length){t.setPipelineState(e.getPipeline(s,r));for(const s of i)t.drawArrays(e.primitiveType,s.first,s.count)}}function w(t,e,i,s,r,a){if(!i?.length)return;const n=l(a);t.setPipelineState(e.getPipeline(s,r));for(const o of i)t.drawElements(e.primitiveType,o.count,a,o.first*n)}function _(t,e,{first:i,count:s},r,a,n){if(r?.length){t.setPipelineState(e.getPipeline(a,n));for(const{vao:a,instanceCount:n}of r)e.ensureAttributeLocations(a),t.bindVAO(a),t.drawArraysInstanced(e.primitiveType,i,s,n)}}function y(t,e,i,s,r,a){const n=r&&!s?t.drawCommandsHighlights.get(i)??null:null;return s?t.drawCommandsHighlights.get(h):r?n:a&&e?t.drawCommandsShadowHighlightRest:t.drawCommandsDefault}function b(t,e){return e&&t.drawCommandsOccludees||null}export{d as VaoRenderer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as s,depthTest as i,blending as a}from"../lib/OrderIndependentTransparency.js";import{PositionUvGLLayout as n}from"../materials/DefaultLayouts.js";import{oitPolygonOffset as l}from"../materials/PolygonOffset.js";import{C as p}from"../../../../chunks/CheckerBoard.glsl.js";import{makePipelineState as m,defaultColorWrite as c}from"../../../webgl/renderState.js";let d=class extends t{constructor(e,r){super(e,r,n),this.shader=new o(p,()=>import("./CheckerBoard.glsl.js"))}initializePipeline(e){const{output:r,transparent:o}=e;return m({blending:o?a(r):null,depthTest:i(r),depthWrite:s(e),colorWrite:c,polygonOffset:l(e)})}};d=e([r("esri.views.3d.webgl-engine.shaders.CheckerBoardTechnique")],d);export{d as CheckerBoardTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as s,depthTest as i,blending as a}from"../lib/OrderIndependentTransparency.js";import{PositionUvGLLayout as n}from"../materials/DefaultLayouts.js";import{polygonOffset as l}from"../materials/PolygonOffset.js";import{C as p}from"../../../../chunks/CheckerBoard.glsl.js";import{makePipelineState as m,defaultColorWrite as c}from"../../../webgl/renderState.js";let d=class extends t{constructor(e,r){super(e,r,n),this.shader=new o(p,()=>import("./CheckerBoard.glsl.js"))}initializePipeline(e){const{output:r,transparent:o}=e;return m({blending:o?a(r):null,depthTest:i(r),depthWrite:s(e),colorWrite:c,polygonOffset:l(e)})}};d=e([r("esri.views.3d.webgl-engine.shaders.CheckerBoardTechnique")],d);export{d as CheckerBoardTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as o}from"../../support/buffer/glUtil.js";import{newLayout as i}from"../../support/buffer/InterleavedLayout.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as l}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as n}from"../effects/geometry/olidUtils.js";import{depthWrite as a,depthTest as c,blending as p}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as u,stencilBaseAllZerosParams as m,stencilWriteMaskOn as f}from"../lib/StencilUtils.js";import{oitPolygonOffset as d}from"../materials/PolygonOffset.js";import{VisualVariablePassParameters as h}from"../materials/VisualVariablePassParameters.js";import{C as g}from"../../../../chunks/ColorMaterial.glsl.js";import{makePipelineState as j,defaultColorWrite as b,cullingParams as P}from"../../../webgl/renderState.js";class C extends h{constructor(){super(...arguments),this.color=t}}let S=class extends l{constructor(e,r){super(e,r,o(T(r))),this.shader=new s(g,()=>import("./ColorMaterial.glsl.js")),this.ignoreUnused=!0}_createPipeline(e,r){const{output:t,transparent:o,cullFace:i,draped:s,hasOccludees:l}=e;return j({blending:o?p(t):null,culling:P(i),depthTest:s?null:c(t),depthWrite:a(e),colorWrite:b,stencilWrite:l?f:null,stencilTest:l?r?u:m:null,polygonOffset:d(e)})}initializePipeline(e){return this._occludeePipelineState=this._createPipeline(e,!0),this._createPipeline(e,!1)}getPipeline(e,r){return r?this._occludeePipelineState:super.getPipeline(e)}};function T(e){const r=i().vec3f("position");return n()&&r.vec4u8("olidColor"),e.hasVVColor?r.f32("colorFeatureAttribute"):e.hasVertexColors&&r.vec4u8("color",{glNormalized:!0}),r.freeze()}S=e([r("esri.views.3d.webgl-engine.shaders.ColorMaterialTechnique")],S);export{C as ColorMaterialPassParameters,S as ColorMaterialTechnique,T as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as o}from"../../support/buffer/glUtil.js";import{newLayout as i}from"../../support/buffer/InterleavedLayout.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as l}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as n}from"../effects/geometry/olidUtils.js";import{depthWrite as a,depthTest as c,blending as p}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as u,stencilBaseAllZerosParams as m,stencilWriteMaskOn as f}from"../lib/StencilUtils.js";import{polygonOffset as d}from"../materials/PolygonOffset.js";import{VisualVariablePassParameters as h}from"../materials/VisualVariablePassParameters.js";import{C as g}from"../../../../chunks/ColorMaterial.glsl.js";import{makePipelineState as j,defaultColorWrite as b,cullingParams as P}from"../../../webgl/renderState.js";class C extends h{constructor(){super(...arguments),this.color=t}}let S=class extends l{constructor(e,r){super(e,r,o(T(r))),this.shader=new s(g,()=>import("./ColorMaterial.glsl.js")),this.ignoreUnused=!0}_createPipeline(e,r){const{output:t,transparent:o,cullFace:i,draped:s,hasOccludees:l}=e;return j({blending:o?p(t):null,culling:P(i),depthTest:s?null:c(t),depthWrite:a(e),colorWrite:b,stencilWrite:l?f:null,stencilTest:l?r?u:m:null,polygonOffset:d(e)})}initializePipeline(e){return this._occludeePipelineState=this._createPipeline(e,!0),this._createPipeline(e,!1)}getPipeline(e,r){return r?this._occludeePipelineState:super.getPipeline(e)}};function T(e){const r=i().vec3f("position");return n()&&r.vec4u8("olidColor"),e.hasVVColor?r.f32("colorFeatureAttribute"):e.hasVertexColors&&r.vec4u8("color",{glNormalized:!0}),r.freeze()}S=e([r("esri.views.3d.webgl-engine.shaders.ColorMaterialTechnique")],S);export{C as ColorMaterialPassParameters,S as ColorMaterialTechnique,T as getLayout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as i,freeze as s,create as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as l}from"../../support/buffer/glUtil.js";import{newLayout as n}from"../../support/buffer/InterleavedLayout.js";import{VertexNormalPassParameters as a,VertexNormalDrawParameters as c}from"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import{ReloadableShader as h}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as u}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as m}from"../effects/geometry/olidUtils.js";import{depthWrite as p,depthTest as d,blending as f}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as g,stencilBaseAllZerosParams as v,stencilWriteMaskOn as b}from"../lib/StencilUtils.js";import{getRenderInstanceDataLayout as S}from"../lib/lodRendering/RenderInstanceData.js";import{advancedMRRFactors as y}from"../materials/pbrUtils.js";import{oitPolygonOffset as j}from"../materials/PolygonOffset.js";import{D as T}from"../../../../chunks/DefaultMaterial.glsl.js";import{makePipelineState as x,cullingParams as C,defaultColorWrite as P}from"../../../webgl/renderState.js";import{alphaCutoff as O}from"../../../../webscene/support/AlphaCutoff.js";class D extends a{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=y,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=2,this.instanced=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.instanceColorEncodesAlphaIgnore=!1,this.emissiveStrengthFromSymbol=0,this.emissiveStrengthKHR=1,this.emissiveSource=1,this.emissiveBaseColor=i,this.instancedDoublePrecision=!1,this.normalType=0,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=s(.2,.2,.2),this.diffuse=s(.8,.8,.8),this.externalColor=o(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=r(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.modelTransformation=null,this.drivenOpacity=!1,this.writeDepth=!0,this.customDepthTest=0,this.textureAlphaMode=0,this.textureAlphaCutoff=O,this.textureAlphaPremultiplied=!1,this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}get hasVVSize(){return!!this.vvSize}get hasVVColor(){return!!this.vvColor}get hasVVOpacity(){return!!this.vvOpacity}}class V extends c{constructor(){super(...arguments),this.origin=r(),this.slicePlaneLocalOrigin=this.origin}}let w=class extends u{constructor(e,t){let i=l(z(t));t.instanced&&t.instancedDoublePrecision&&(i=i.concat(l(S(t)))),super(e,t,i),this.shader=new h(T,()=>import("./DefaultMaterial.glsl.js")),this.ignoreUnused=!0}_makePipeline(e,t){const{output:i,transparent:s,cullFace:r,customDepthTest:o,hasOccludees:l}=e;return x({blending:s?f(i):null,culling:M(e)?C(r):null,depthTest:d(i,A(o)),depthWrite:p(e),colorWrite:P,stencilWrite:l?b:null,stencilTest:l?t?g:v:null,polygonOffset:j(e)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};function A(e){switch(e){case 1:return 515;case 0:case 3:return 513;case 2:return 516}}function M(e){return 0!==e.cullFace||!e.hasSlicePlane&&(!e.transparent&&!e.doubleSidedMode)}function z(e){const t=n().vec3f("position");return 1===e.normalType?t.vec2i16("normalCompressed",{glNormalized:!0}):t.vec3f("normal"),e.hasVertexTangents&&t.vec4f("tangent"),e.hasTextures&&t.vec2f16("uv0"),e.hasVertexColors&&t.vec4u8("color",{glNormalized:!0}),e.hasSymbolColors&&t.vec4u8("symbolColor"),!e.instanced&&m()&&t.vec4u8("olidColor"),t}w=e([t("esri.views.3d.webgl-engine.shaders.DefaultMaterialTechnique")],w);export{V as DefaultMaterialDrawParameters,D as DefaultMaterialPassParameters,w as DefaultMaterialTechnique,z as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as i,freeze as s,create as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as l}from"../../support/buffer/glUtil.js";import{newLayout as n}from"../../support/buffer/InterleavedLayout.js";import{VertexNormalPassParameters as a,VertexNormalDrawParameters as c}from"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import{ReloadableShader as h}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as u}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as m}from"../effects/geometry/olidUtils.js";import{depthWrite as p,depthTest as d,blending as f}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as g,stencilBaseAllZerosParams as v,stencilWriteMaskOn as b}from"../lib/StencilUtils.js";import{getRenderInstanceDataLayout as S}from"../lib/lodRendering/RenderInstanceData.js";import{advancedMRRFactors as y}from"../materials/pbrUtils.js";import{polygonOffset as j}from"../materials/PolygonOffset.js";import{D as T}from"../../../../chunks/DefaultMaterial.glsl.js";import{makePipelineState as x,cullingParams as C,defaultColorWrite as P}from"../../../webgl/renderState.js";import{alphaCutoff as O}from"../../../../webscene/support/AlphaCutoff.js";class D extends a{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=y,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=2,this.instanced=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.instanceColorEncodesAlphaIgnore=!1,this.emissiveStrengthFromSymbol=0,this.emissiveStrengthKHR=1,this.emissiveSource=1,this.emissiveBaseColor=i,this.instancedDoublePrecision=!1,this.normalType=0,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=s(.2,.2,.2),this.diffuse=s(.8,.8,.8),this.externalColor=o(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=r(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.modelTransformation=null,this.drivenOpacity=!1,this.writeDepth=!0,this.customDepthTest=0,this.textureAlphaMode=0,this.textureAlphaCutoff=O,this.textureAlphaPremultiplied=!1,this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}get hasVVSize(){return!!this.vvSize}get hasVVColor(){return!!this.vvColor}get hasVVOpacity(){return!!this.vvOpacity}}class V extends c{constructor(){super(...arguments),this.origin=r(),this.slicePlaneLocalOrigin=this.origin}}let w=class extends u{constructor(e,t){let i=l(z(t));t.instanced&&t.instancedDoublePrecision&&(i=i.concat(l(S(t)))),super(e,t,i),this.shader=new h(T,()=>import("./DefaultMaterial.glsl.js")),this.ignoreUnused=!0}_makePipeline(e,t){const{output:i,transparent:s,cullFace:r,customDepthTest:o,hasOccludees:l}=e;return x({blending:s?f(i):null,culling:M(e)?C(r):null,depthTest:d(i,A(o)),depthWrite:p(e),colorWrite:P,stencilWrite:l?b:null,stencilTest:l?t?g:v:null,polygonOffset:j(e)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};function A(e){switch(e){case 1:return 515;case 0:case 3:return 513;case 2:return 516}}function M(e){return 0!==e.cullFace||!e.hasSlicePlane&&(!e.transparent&&!e.doubleSidedMode)}function z(e){const t=n().vec3f("position");return 1===e.normalType?t.vec2i16("normalCompressed",{glNormalized:!0}):t.vec3f("normal"),e.hasVertexTangents&&t.vec4f("tangent"),e.hasTextures&&t.vec2f16("uv0"),e.hasVertexColors&&t.vec4u8("color",{glNormalized:!0}),e.hasSymbolColors&&t.vec4u8("symbolColor"),!e.instanced&&m()&&t.vec4u8("olidColor"),t}w=e([t("esri.views.3d.webgl-engine.shaders.DefaultMaterialTechnique")],w);export{V as DefaultMaterialDrawParameters,D as DefaultMaterialPassParameters,w as DefaultMaterialTechnique,z as getLayout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as r}from"../../support/buffer/glUtil.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as l,depthTest as o,blending as n}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as p,stencilBaseAllZerosParams as a,stencilWriteMaskOn as c}from"../lib/StencilUtils.js";import{PositionUvLayout as m}from"../materials/DefaultLayouts.js";import{oitPolygonOffset as u}from"../materials/PolygonOffset.js";import{I as d}from"../../../../chunks/ImageMaterial.glsl.js";import{makePipelineState as f,defaultColorWrite as h,cullingParams as g}from"../../../webgl/renderState.js";let j=class extends s{constructor(e,t){super(e,t,r(P(t))),this.shader=new i(d,()=>import("./ImageMaterial.glsl.js")),this.ignoreUnused=!0}_getPipelineState(e,t){const{output:r,hasOccludees:i,cullFace:s}=e;return f({blending:n(r,!0),culling:g(s),depthTest:o(r),depthWrite:l(e),colorWrite:h,stencilWrite:i?c:null,stencilTest:i?t?p:a:null,polygonOffset:u(e)})}initializePipeline(e){return this._occludeePipeline=this._getPipelineState(e,!0),this._getPipelineState(e,!1)}getPipeline(e,t){return t?this._occludeePipeline:super.getPipeline(e)}};function P(e){let t=m;return e.perspectiveInterpolation&&(t=t.clone().f32("perspectiveDivide")),t}j=e([t("esri.views.3d.webgl-engine.shaders.ImageMaterialTechnique")],j);export{j as ImageMaterialTechnique,P as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as r}from"../../support/buffer/glUtil.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as l,depthTest as o,blending as n}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as p,stencilBaseAllZerosParams as a,stencilWriteMaskOn as c}from"../lib/StencilUtils.js";import{PositionUvLayout as m}from"../materials/DefaultLayouts.js";import{polygonOffset as u}from"../materials/PolygonOffset.js";import{I as d}from"../../../../chunks/ImageMaterial.glsl.js";import{makePipelineState as f,defaultColorWrite as h,cullingParams as g}from"../../../webgl/renderState.js";let j=class extends s{constructor(e,t){super(e,t,r(P(t))),this.shader=new i(d,()=>import("./ImageMaterial.glsl.js")),this.ignoreUnused=!0}_getPipelineState(e,t){const{output:r,hasOccludees:i,cullFace:s}=e;return f({blending:n(r,!0),culling:g(s),depthTest:o(r),depthWrite:l(e),colorWrite:h,stencilWrite:i?c:null,stencilTest:i?t?p:a:null,polygonOffset:u(e)})}initializePipeline(e){return this._occludeePipeline=this._getPipelineState(e,!0),this._getPipelineState(e,!1)}getPipeline(e,t){return t?this._occludeePipeline:super.getPipeline(e)}};function P(e){let t=m;return e.perspectiveInterpolation&&(t=t.clone().f32("perspectiveDivide")),t}j=e([t("esri.views.3d.webgl-engine.shaders.ImageMaterialTechnique")],j);export{j as ImageMaterialTechnique,P as getLayout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as r}from"../../support/buffer/glUtil.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as o,depthTest as l,blending as n}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as p,stencilBaseAllZerosParams as a,stencilWriteMaskOn as c}from"../lib/StencilUtils.js";import{oitPolygonOffset as u}from"../materials/PolygonOffset.js";import{P as m}from"../../../../chunks/Pattern.glsl.js";import{getLayout as d}from"./PatternLayouts.js";import{makePipelineState as h,defaultColorWrite as f,cullingParams as P}from"../../../webgl/renderState.js";let g=class extends s{constructor(e,t){super(e,t,r(d(t))),this.shader=new i(m,()=>import("./Pattern.glsl.js")),this.ignoreUnused=!0}_setPipelineState(e,t){const{output:r,cullFace:i,draped:s,hasOccludees:m}=e;return h({blending:n(r),culling:P(i),depthTest:s?null:l(r),depthWrite:o(e),colorWrite:f,stencilWrite:m?c:null,stencilTest:m?t?p:a:null,polygonOffset:u(e)})}initializePipeline(e){return this._occludeePipelineState=this._setPipelineState(e,!0),this._setPipelineState(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};g=e([t("esri.views.3d.webgl-engine.shaders.PatternTechnique")],g);export{g as PatternTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as r}from"../../support/buffer/glUtil.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as o,depthTest as l,blending as n}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as p,stencilBaseAllZerosParams as a,stencilWriteMaskOn as c}from"../lib/StencilUtils.js";import{polygonOffset as u}from"../materials/PolygonOffset.js";import{P as m}from"../../../../chunks/Pattern.glsl.js";import{getLayout as d}from"./PatternLayouts.js";import{makePipelineState as h,defaultColorWrite as f,cullingParams as P}from"../../../webgl/renderState.js";let g=class extends s{constructor(e,t){super(e,t,r(d(t))),this.shader=new i(m,()=>import("./Pattern.glsl.js")),this.ignoreUnused=!0}_setPipelineState(e,t){const{output:r,cullFace:i,draped:s,hasOccludees:m}=e;return h({blending:n(r),culling:P(i),depthTest:s?null:l(r),depthWrite:o(e),colorWrite:f,stencilWrite:m?c:null,stencilTest:m?t?p:a:null,polygonOffset:u(e)})}initializePipeline(e){return this._occludeePipelineState=this._setPipelineState(e,!0),this._setPipelineState(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};g=e([t("esri.views.3d.webgl-engine.shaders.PatternTechnique")],g);export{g as PatternTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as i}from"../../support/buffer/glUtil.js";import{newLayout as r}from"../../support/buffer/InterleavedLayout.js";import{ReloadableShader as l}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as n}from"../effects/geometry/olidUtils.js";import{depthWrite as o,depthTest as c,blending as u}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as p,stencilBaseAllZerosParams as a,stencilWriteMaskOn as d,stencilToolTransparentOccluderParams as f,depthCompareAlways as m,stencilToolMaskOccluderParams as h,stencilWriteMaskOff as g,depthCompareLess as b}from"../lib/StencilUtils.js";import{oitPolygonOffset as P}from"../materials/PolygonOffset.js";import{R as T}from"../../../../chunks/RibbonLine.glsl.js";import{PrimitiveType as W}from"../../../webgl/enums.js";import{makePipelineState as j,defaultColorWrite as v,unpremultipliedAlphaToPremultipliedAlpha as S}from"../../../webgl/renderState.js";let _=class extends s{constructor(e,t){super(e,t,i(y(t))),this.shader=new l(T,()=>import("./RibbonLine.glsl.js")),this.ignoreUnused=!0,this.primitiveType=t.wireframe?W.LINES:W.TRIANGLE_STRIP}_makePipelineState(e,t){const{output:i,hasOccludees:r}=e;return j({blending:u(i),depthTest:c(i),depthWrite:o(e),colorWrite:v,stencilWrite:r?d:null,stencilTest:r?t?p:a:null,polygonOffset:P(e)})}initializePipeline(e){if(e.occluder){const{hasOccludees:t}=e;this._occluderPipelineTransparent=j({blending:S,polygonOffset:P(e),depthTest:m,depthWrite:null,colorWrite:v,stencilWrite:null,stencilTest:t?f:null}),this._occluderPipelineOpaque=j({blending:S,polygonOffset:P(e),depthTest:t?m:b,depthWrite:null,colorWrite:v,stencilWrite:t?g:null,stencilTest:t?h:null}),this._occluderPipelineMaskWrite=j({blending:null,polygonOffset:P(e),depthTest:b,depthWrite:null,colorWrite:null,stencilWrite:t?d:null,stencilTest:t?p:null})}return this._occludeePipeline=this._makePipelineState(e,!0),this._makePipelineState(e,!1)}getPipeline(e,t){if(t)return this._occludeePipeline;switch(e.occluder){case 12:return this._occluderPipelineTransparent??super.getPipeline(e);case 11:return this._occluderPipelineOpaque??super.getPipeline(e);default:e.occluder;case void 0:case null:return this._occluderPipelineMaskWrite??super.getPipeline(e)}}};function y(e){const t=r().vec3f("position").vec4f16("previousDelta").vec4f16("nextDelta").f32("u0").vec2f16("lineParameters");return e.hasVVColor?t.f32("colorFeatureAttribute"):t.vec4u8("color",{glNormalized:!0}),e.hasVVSize?t.f32("sizeFeatureAttribute"):t.f32("size"),e.hasVVOpacity&&t.f32("opacityFeatureAttribute"),n()&&t.vec4u8("olidColor"),e.hasAnimation&&t.vec4f16("timeStamps"),t}_=e([t("esri.views.3d.webgl-engine.shaders.RibbonLineTechnique")],_);export{_ as RibbonLineTechnique,y as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as i}from"../../support/buffer/glUtil.js";import{newLayout as r}from"../../support/buffer/InterleavedLayout.js";import{ReloadableShader as l}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as n}from"../effects/geometry/olidUtils.js";import{depthWrite as o,depthTest as c,blending as u}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as p,stencilBaseAllZerosParams as a,stencilWriteMaskOn as d,stencilToolTransparentOccluderParams as f,depthCompareAlways as m,stencilToolMaskOccluderParams as h,stencilWriteMaskOff as g,depthCompareLess as b}from"../lib/StencilUtils.js";import{polygonOffset as P}from"../materials/PolygonOffset.js";import{R as T}from"../../../../chunks/RibbonLine.glsl.js";import{PrimitiveType as W}from"../../../webgl/enums.js";import{makePipelineState as j,defaultColorWrite as v,unpremultipliedAlphaToPremultipliedAlpha as S}from"../../../webgl/renderState.js";let _=class extends s{constructor(e,t){super(e,t,i(y(t))),this.shader=new l(T,()=>import("./RibbonLine.glsl.js")),this.ignoreUnused=!0,this.primitiveType=t.wireframe?W.LINES:W.TRIANGLE_STRIP}_makePipelineState(e,t){const{output:i,hasOccludees:r}=e;return j({blending:u(i),depthTest:c(i),depthWrite:o(e),colorWrite:v,stencilWrite:r?d:null,stencilTest:r?t?p:a:null,polygonOffset:P(e)})}initializePipeline(e){if(e.occluder){const{hasOccludees:t}=e;this._occluderPipelineTransparent=j({blending:S,polygonOffset:P(e),depthTest:m,depthWrite:null,colorWrite:v,stencilWrite:null,stencilTest:t?f:null}),this._occluderPipelineOpaque=j({blending:S,polygonOffset:P(e),depthTest:t?m:b,depthWrite:null,colorWrite:v,stencilWrite:t?g:null,stencilTest:t?h:null}),this._occluderPipelineMaskWrite=j({blending:null,polygonOffset:P(e),depthTest:b,depthWrite:null,colorWrite:null,stencilWrite:t?d:null,stencilTest:t?p:null})}return this._occludeePipeline=this._makePipelineState(e,!0),this._makePipelineState(e,!1)}getPipeline(e,t){if(t)return this._occludeePipeline;switch(e.occluder){case 12:return this._occluderPipelineTransparent??super.getPipeline(e);case 11:return this._occluderPipelineOpaque??super.getPipeline(e);default:e.occluder;case void 0:case null:return this._occluderPipelineMaskWrite??super.getPipeline(e)}}};function y(e){const t=r().vec3f("position").vec4f16("previousDelta").vec4f16("nextDelta").f32("u0").vec2f16("lineParameters");return e.hasVVColor?t.f32("colorFeatureAttribute"):t.vec4u8("color",{glNormalized:!0}),e.hasVVSize?t.f32("sizeFeatureAttribute"):t.f32("size"),e.hasVVOpacity&&t.f32("opacityFeatureAttribute"),n()&&t.vec4u8("olidColor"),e.hasAnimation&&t.vec4f16("timeStamps"),t}_=e([t("esri.views.3d.webgl-engine.shaders.RibbonLineTechnique")],_);export{_ as RibbonLineTechnique,y as getLayout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as o}from"../../support/buffer/glUtil.js";import{newLayout as t}from"../../support/buffer/InterleavedLayout.js";import{isOITFrontFace as s}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as n}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as a,blending as l}from"../lib/OrderIndependentTransparency.js";import{oitPolygonOffset as p}from"../materials/PolygonOffset.js";import{S as d}from"../../../../chunks/ShadedColorMaterial.glsl.js";import{makePipelineState as c,defaultColorWrite as f,cullingParams as m}from"../../../webgl/renderState.js";let u=class extends n{constructor(e,r){super(e,r,o(h(r))),this.shader=new i(d,()=>import("./ShadedColorMaterial.glsl.js"))}initializePipeline(e){const{output:r,transparent:o,cullFace:t,shadingEnabled:i}=e,n=s(r);return c({blending:o?l(r):null,culling:m(t),depthTest:{func:n?513:i?515:513},depthWrite:a(e),colorWrite:f,polygonOffset:p(e)})}};function h(e){const r=t().vec3f("position").vec3f("normal");return e.screenSizeEnabled&&r.vec3f("offset"),r}u=e([r("esri.views.3d.webgl-engine.shaders.ShadedColorMaterialTechnique")],u);export{u as ShadedColorMaterialTechnique,h as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as o}from"../../support/buffer/glUtil.js";import{newLayout as t}from"../../support/buffer/InterleavedLayout.js";import{isOITFrontFace as s}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as n}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as a,blending as l}from"../lib/OrderIndependentTransparency.js";import{polygonOffset as p}from"../materials/PolygonOffset.js";import{S as d}from"../../../../chunks/ShadedColorMaterial.glsl.js";import{makePipelineState as c,defaultColorWrite as f,cullingParams as m}from"../../../webgl/renderState.js";let u=class extends n{constructor(e,r){super(e,r,o(h(r))),this.shader=new i(d,()=>import("./ShadedColorMaterial.glsl.js"))}initializePipeline(e){const{output:r,transparent:o,cullFace:t,shadingEnabled:i}=e,n=s(r);return c({blending:o?l(r):null,culling:m(t),depthTest:{func:n?513:i?515:513},depthWrite:a(e),colorWrite:f,polygonOffset:p(e)})}};function h(e){const r=t().vec3f("position").vec3f("normal");return e.screenSizeEnabled&&r.vec3f("offset"),r}u=e([r("esri.views.3d.webgl-engine.shaders.ShadedColorMaterialTechnique")],u);export{u as ShadedColorMaterialTechnique,h as getLayout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import"../../../../core/libs/gl-matrix-2/math/mat4.js";import"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import"../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../core/shaderLibrary/output/ReadDepth.glsl.js";import"../core/shaderLibrary/shading/PiUtils.glsl.js";import"../core/shaderLibrary/util/LocalFromScreenSpace.glsl.js";import"../core/shaderModules/Float2PassUniform.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/FloatPassUniform.js";import"../core/shaderModules/FloatsPassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/IntegerPassUniform.js";import"../core/shaderModules/Matrix4BindUniform.js";import"../core/shaderModules/Matrix4sPassUniform.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../../../webgl/ShaderBuilder.js";export{V as ViewshedPassParameters,b as build}from"../../../../chunks/Viewshed.glsl.js";
2
+ import"../../../../core/libs/gl-matrix-2/math/mat4.js";import"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import"../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../core/shaderLibrary/output/ReadDepth.glsl.js";import"../core/shaderLibrary/shading/PiUtils.glsl.js";import"../core/shaderLibrary/util/LocalFromScreenSpace.glsl.js";import"../core/shaderModules/Float2PassUniform.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/FloatPassUniform.js";import"../core/shaderModules/FloatsPassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/IntegerPassUniform.js";import"../core/shaderModules/Matrix4BindUniform.js";import"../core/shaderModules/Matrix4sPassUniform.js";import"../core/shaderModules/Texture2DBindUniform.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../../../webgl/ShaderBuilder.js";export{V as ViewshedPassParameters,b as build}from"../../../../chunks/Viewshed.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__addDisposableResource as e,__disposeResources as t,__decorate as i}from"tslib";import{disposable as a}from"../../core/handleUtils.js";import n from"../../core/Logger.js";import{getOrCreateMapValue as r}from"../../core/MapUtils.js";import{destroyMaybe as o}from"../../core/maybe.js";import{when as s,initial as d,on as l,sync as p,watch as c}from"../../core/reactiveUtils.js";import{screenPointEqual as u,createScreenPoint as h}from"../../core/screenUtils.js";import{diff as g}from"../../core/accessorSupport/diffUtils.js";import{property as m}from"../../core/accessorSupport/decorators/property.js";import{subclass as v}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as y}from"../../core/support/UpdatingHandles.js";import f from"../../geometry/Polygon.js";import{i as M,e as _}from"../../chunks/simplifyOperator.js";import{isExtent as w}from"../../geometry/support/jsonTypeUtils.js";import{isPolygon as b}from"../../geometry/support/typeUtils.js";import{isCurvedGeometry as C}from"../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as H}from"../../geometry/support/curves/densifyCurvedGeometry.js";import{getMaxDeviationInPixels as P,getMinSegmentsPerCurve as S}from"../2d/layers/graphics/densificationConstants.js";import{createSnappingVisualizer as x}from"./support/createSnappingVisualizer.js";import{multipointFromGeometry as k,markHandled as j,getPointerType as E}from"./support/drawToolUtils.js";import{PluginContext as T}from"./support/PluginContext.js";import{viewEventToCommand as G}from"./support/input/drawToolInput.js";import{EditSessionManager as O}from"./support/managers/EditSessionManager.js";import{GlobalStateManager as V}from"./support/managers/GlobalStateManager.js";import{InteractiveHandleManager as I}from"./support/managers/InteractiveHandleManager.js";import{MeasurementManager as A}from"./support/managers/MeasurementManager.js";import{PluginLifecycleManager as U}from"./support/managers/PluginLifecycleManager.js";import{SurfaceManager as R}from"./support/managers/SurfaceManager.js";import{TooltipManager as F}from"./support/managers/TooltipManager.js";import{ViewEventPriorities as D}from"../input/InputManager.js";import{createCoordinateHelper as L}from"../interactive/coordinateHelper.js";import{InteractiveToolBase as Z}from"../interactive/InteractiveToolBase.js";import{KeyBindings as q,mediaKeys as B,sketchKeys as z,advancedSketchKeys as K,tooltipKeys as Q}from"../interactive/keybindings.js";import{isInputModeAvailable as N}from"../interactive/tooltip/tooltipCommonUtils.js";const W=Symbol();let $=class extends Z{constructor(e){super(e),this._shapeVisualId=Symbol(),this._vertexVisualId=Symbol(),this._pluginContexts=new Map,this._queuedFeedbackEvents=[],this._flushingQueuedFeedbackEvents=!1,this._snappingVisualizer=null,this._updatingHandles=new y,this._keybindings=this._makeKeyBindings(),this._pendingBeginRequest=null,this.type="draw-2.0",this.automaticManipulatorSelection=!0,this.snappingManager=null,this.sketchOptions=null,this.elevationInfo=null,this.hasZ=!1,this.defaultZ=0,this.lastScreenPosition=null,this.measurementManager=new A,this.globalStateManager=new V({getPluginStack:()=>this.pluginStack}),this.editSessionManager=new O({getContext:()=>this._editSessionManagerContext}),this.lifecycleManager=new U({getContext:this._getContextForPlugin.bind(this),editSessionManager:this.editSessionManager,afterAttach:this._afterAttach.bind(this),afterDetach:this._afterDetach.bind(this),beforeResume:this._beforeResume.bind(this)}),this.surfaceManager=null,this.interactiveHandleManager=null,this.renderer=null,this.enableVertexVisuals=!0}initialize(){const{view:e}=this;this.interactiveHandleManager=new I({view:e,renderer:this.renderer}),this._override("manipulators",this.interactiveHandleManager.manipulators),this.tooltipManager=new F({getDependencies:()=>this._tooltipDependencies,getLastScreenPosition:()=>this.lastScreenPosition}),this.addHandles(s(()=>this.renderer,t=>{t.addOrUpdateVisual(this._shapeVisualId,{role:"outputGeometry"}),t.addOrUpdateVisual(this._vertexVisualId,{role:"vertex"}),this._updatingHandles.addPromise(x(e,t).then(e=>this._snappingVisualizer=e))},d)),this.addHandles([s(()=>this.view,e=>{this.surfaceManager?.destroy(),this.surfaceManager=new R({spatialReference:this.coordinateHelper.spatialReference,excludedGraphicsLayer:null,defaultZ:this.defaultZ,hasZ:this.hasZ,view:e,elevationInfo:this.elevationInfo,getContext:()=>({drawAtFixedElevation:this.globalStateManager.drawAtFixedElevation,elevationConstraint:this.tooltipManager?.elevationConstraint,constraintsEnabled:this.tooltipManager?.constraintsEnabled??!1})})},d),s(()=>this.sketchOptions?.tooltips.effectiveEnabled,()=>this.measurementManager.preloadMeasurementUtils(),{once:!0,initial:!0}),l(()=>this.editSessionManager,"cancelPlugin",({plugin:e})=>{this._suspendPlugin(e)},p),l(()=>this.editSessionManager,"restartPlugin",({restartInfo:e})=>{this._resumePlugin(e)},p),c(()=>this.lifecycleManager.updating,e=>{e||this._emitQueuedFeedbackEvents()},p),l(()=>this.editGeometryOperations,["vertex-add","vertex-update","vertex-remove"],e=>{const t=e.vertices.map(e=>({componentIndex:0,vertexIndex:e.index,coordinates:this.coordinateHelper.vectorToArray(e.pos)})),i=t.map(e=>e.coordinates);switch(e.type){case"vertex-add":this._emitWhenReady(e.type,{...e,added:i,vertices:t});break;case"vertex-update":this._emitWhenReady(e.type,{...e,updated:i,vertices:t});break;case"vertex-remove":this._emitWhenReady(e.type,{...e,removed:i,vertices:t})}})])}destroy(){this.active&&this.onDeactivate(),this.editSessionManager.destroy(),this.lifecycleManager.destroy(),this.measurementManager.destroy(),this.globalStateManager.destroy();for(const e of this._pluginContexts.values())e.destroy();this._pluginContexts.clear(),this.surfaceManager=o(this.surfaceManager),this.interactiveHandleManager=o(this.interactiveHandleManager),this.tooltipManager=o(this.tooltipManager)}get _tooltipDependencies(){const{defaultZ:e,editGeometryOperations:t,sketchOptions:i,directionOptions:a,view:n}=this;return t&&i&&n?{defaultZ:e,directionOptions:a,editGeometryOperations:t,sketchOptions:i,view:n,getActiveHandle:()=>this.interactiveHandleManager?.focusedHandle,getAllHandles:()=>this.interactiveHandleManager?.allhandles,getHelpMessageKey:()=>this.helpMessageKey,notifyTooltipsChanged:()=>{const{interactiveHandleManager:e,movementCommandContext:t}=this;e&&t&&e.reapplyPositions(t)}}:null}get _editSessionManagerContext(){const{coordinateHelper:e,view:t}=this;if(!t)return null;return{coordinateHelper:e,viewingMode:"3d"===t.type&&"global"===t.viewingMode?1:2}}get _densificationParameters(){const{view:e,coordinateHelper:t}=this,i=t.spatialReference,a=e?.spatialReference,n=e.resolution;if(!(i&&a&&n&&Number.isFinite(n)))return null;const r=a.metersPerUnit/i.metersPerUnit;return{maxDeviation:2**Math.round(Math.log2(n))*P()*r,minSegmentsPerCurve:S()}}get test(){return{densificationParameters:this._densificationParameters}}get updating(){return this._updatingHandles.updating||this.lifecycleManager.updating}get coordinateHelper(){return L(this.hasZ,!1,this.view.spatialReference)}get editGeometry(){return this.editGeometryOperations?.data}get editGeometryOperations(){return this.editSessionManager.editGeometryOperations}get unprocessedGeometry(){return this.editSessionManager.outputGeometry}get simplifiedGeometryPreview(){const e=this.editSessionManager.outputGeometry;if(e&&b(e))try{const t=this._densificationParameters,i=C(e)&&t?new f({...H(e,t)}):e;if(!M(i))return _(i)}catch(t){return e}return e}get canUndo(){return this.editSessionManager.canUndo}get canRedo(){return this.editSessionManager.canRedo}get pluginStack(){return this.lifecycleManager.pluginStack}get mostDownstreamPlugin(){return this.pluginStack.at(-1)}get mostUpstreamPlugin(){return this.pluginStack.at(0)}get positionOfLastUserInput(){return this.lastScreenPosition?this.view.toMap(this.lastScreenPosition):this.view.center}get movementCommandContext(){const{editGeometryOperations:e,tooltipManager:t,surfaceManager:i,snappingManager:a,interactiveHandleManager:n,_snappingVisualizer:r,defaultZ:o,hasZ:s,globalStateManager:{drawAtFixedElevation:d},view:l}=this;return{tooltipManager:t,editGeometryOperations:e,surfaceManager:i,interactiveHandleManager:n,snappingManager:a,snappingVisualizer:r,pointerType:"mouse",hasZ:s,defaultZ:o,view:l,drawAtFixedElevation:d}}get tooltip(){return this.tooltipManager?.tooltip}get activeTooltipInfo(){return this.tooltipManager?.tooltipInfo}get helpMessageKey(){return this.pluginStack.items.findLast(e=>e.helpMessageKey)?.helpMessageKey??"noTool"}begin(e){this.active?(this.lifecycleManager.begin(e),this._pendingBeginRequest=null):this._pendingBeginRequest=e}complete(e){const t=this.lifecycleManager;e&&t.complete(e),0===t.pluginStack.length&&(this._finalizeAndSimplifyGeometryResult(),this.emit("complete",{geometry:this.finalGeometry,aborted:!1,type:"complete",vertices:[]}),this.view?.activeTool===this&&(this.view.activeTool=null))}cancelFirstUserLeafPlugin(){const e=this.pluginStack.toArray().findLast(e=>!0!==e.configuration?.hidden);e&&this.lifecycleManager.cancel(e)}replaceLeaf(e){const t=this.lifecycleManager;t.updating?n.getLogger(this).info("Ignoring command; arrived while updating:","replaceLeaf"):t.replaceLeaf(e)}finishPart(){const e=this.mostUpstreamPlugin,t=e?.configuration;if(this.editGeometryOperations&&t&&t.kind?.includes("multipart")){const e=this.pluginStack.at(1);e&&this.complete(e)}}undo(){this._guardCommand({action:"undo"},()=>this.editSessionManager.undo())}redo(){this._guardCommand({action:"redo"},()=>this.editSessionManager.redo())}executeCommand(e){return this._handleCommand(e)}addPromise(e){return this._updatingHandles.addPromise(e)}getGeometryIfCompleted(){const e=this.lifecycleManager.gatherCompletablePlugins();return this.editSessionManager?.generatePreviewGeometryForPlugins(e)}onActivate(){super.onActivate();const{view:e}=this;this.lastScreenPosition=e?.inputManager.latestPointerInfo?.location,this.renderer?.activate(),this._pendingBeginRequest&&(this.begin(this._pendingBeginRequest),this._pendingBeginRequest=null),this.enableVertexVisuals&&this.addHandles(c(()=>this.unprocessedGeometry,e=>{this.renderer?.addOrUpdateVisual(this._vertexVisualId,{geometry:e?k(e):null})},d)),this.addHandles([c(()=>this.simplifiedGeometryPreview,e=>{this.renderer?.addOrUpdateVisual(this._shapeVisualId,{geometry:e})},d),s(()=>this.interactiveHandleManager?.capturingHandle?.screenPosition,e=>this.lastScreenPosition=e,{initial:!0,equals:u}),c(()=>this.interactiveHandleManager?.capturingHandle?.outputMapPosition,(e,t)=>{const i=this.interactiveHandleManager?.capturingHandle?.editSession?.endVertex;e&&t&&i&&this._emitWhenReady("cursor-update",{updated:i.pos,type:"vertex-update",operation:"apply",vertices:[{componentIndex:i.part.index,vertexIndex:i.index,coordinates:i.pos}]})},p),this._keybindings.register(e,D.TOOL),c(()=>e.viewpoint,(e,t)=>{e&&t&&g(e,t)&&this._handleCommand({action:"viewpoint-moved"})})],W)}onDeactivate(){super.onDeactivate(),this.removeHandles(W),this.renderer?.deactivate(),this.snappingManager?.doneSnapping(),this.lifecycleManager.cancelAll(),this._pendingBeginRequest=null}onInputEvent(e){const t=G(e);t&&this._handleCommand(t)}_emitWhenReady(e,t){if(this.destroyed)return;const i=()=>{this.emit(e,t)};this.lifecycleManager.updating||this._flushingQueuedFeedbackEvents?this._queuedFeedbackEvents.push(i):i()}_emitQueuedFeedbackEvents(){if(!(this.destroyed||this._flushingQueuedFeedbackEvents||this.lifecycleManager.updating||0===this._queuedFeedbackEvents.length)){this._flushingQueuedFeedbackEvents=!0;try{for(;!this.destroyed&&!this.lifecycleManager.updating&&this._queuedFeedbackEvents.length>0;)this._queuedFeedbackEvents.shift()?.()}finally{this._flushingQueuedFeedbackEvents=!1}}}async _handleCommand(e){if(this.lifecycleManager.updating)n.getLogger(this).info("Ignoring command; arrived while updating:",e.action);else switch(e.action){case"view-drag":return await this._handleViewDragCommand(e);case"vertex-add":return this._guardCommand(e,()=>{j(e),this._commitNext()});case"vertex-add-and-finish-part":return this._handleVertexAddAndFinishPartCommand(e);case"cancel":return this._guardCommand(e,()=>this.cancel());case"complete":return this._guardCommand(e,()=>{this.mostUpstreamPlugin&&(j(e),this.complete(this.mostUpstreamPlugin))});case"finish-part":return this._guardCommand(e,()=>this.finishPart());case"undo":return this._guardCommand(e,()=>this.editSessionManager.undo());case"redo":return this._guardCommand(e,()=>this.editSessionManager.redo());case"next-manipulator":return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator("forward"));case"previous-manipulator":return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator("backward"));case"toggle-manipulator-follow":this.interactiveHandleManager?.toggleFollow()&&j(e);break;case"viewpoint-moved":return await this._handleViewpointMovedCommand(e);case"manipulator-move-to":return await this._handleManipulatorMoveToCommand(e);case"manipulator-drag-to":return await this._handleManipulatorDragToCommand(e);case"vertex-add-at-point":return await this._handleVertexAddAtPointCommand(e);case"show-tooltip":return this._guardCommand(e,async()=>{const t=this.tooltipManager?.tooltip;t&&N(t.info)&&(await t.enterInputMode(),j(e))});case"constraint-center":this.globalStateManager.setCentered(e.enabled);break;case"constraint-aspect":this.globalStateManager.setPreserveAspectRatio(e.enabled)}}async _handleViewDragCommand(e){if(!this.editable)return;const t=e.originalEvent,i=this.interactiveHandleManager?.capturingHandle;(!t||!("pointerType"in t)||"touch"!==t.pointerType||"capture-always"!==i?.captureMode&&"capture-when-engaged"!==i?.captureMode)&&"capture-when-engaged"!==this.interactiveHandleManager?.capturingHandle?.captureMode?this._before(e)&&j(e):j(e)}_handleVertexAddAndFinishPartCommand(e){this._before(e)||(j(e),this._commitNext(),this.finishPart())}async _handleViewpointMovedCommand(e){this.editable&&(await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(null,{...this.movementCommandContext,pointerType:E(e.originalEvent)})),this.interactiveHandleManager?.updateAllScreenPositions())}async _handleManipulatorMoveToCommand(e){if(!this.editable)return;const t=this._updateLastScreenPosition(e);this.interactiveHandleManager?.capturingHandle&&j(e),await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(t,{...this.movementCommandContext,pointerType:E(e.originalEvent)}))}async _handleManipulatorDragToCommand(e){if(!this.editable)return;const t=E(e.originalEvent),i=this._updateLastScreenPosition(e),a=this.interactiveHandleManager?.findHandleByManipulator(i);"touch"===t&&a&&"start"===e.state&&this.interactiveHandleManager?.releaseHandle();const n=this.interactiveHandleManager?.findHandleDragging(),r=this.interactiveHandleManager?.capturingHandle,o=n??r??a;o&&!a&&j(e),"capture-when-engaged"===o?.captureMode||"capture-always"===o?.captureMode&&"touch"===t?"end"===e.state?await this._updatingHandles.addPromise(o.noteDragEnd(i,{...this.movementCommandContext,pointerType:t}).then(()=>{o&&"touch"===E(e.originalEvent)&&"grabbable-object"!==o.captureMode&&"capture-when-engaged"!==o.defaultCaptureMode&&"primary"===o.role&&(1===this.interactiveHandleManager?.handleCount?this._handleCommand({action:"vertex-add"}):this.interactiveHandleManager?.releaseHandle())})):"start"===e.state?await this._updatingHandles.addPromise(o.noteDragStart(i,{...this.movementCommandContext,pointerType:t}).then(()=>{o&&"touch"===E(e.originalEvent)&&"grabbable-object"!==o.captureMode&&"capture-when-engaged"!==o.defaultCaptureMode&&!o.editSession?.lastPointAddedBySession&&this._handleCommand({action:"vertex-add"})})):await this._updatingHandles.addPromise(o?.moveTo(i,{...this.movementCommandContext,pointerType:E(e.originalEvent)})):"grabbable-object"===o?.captureMode&&(this.interactiveHandleManager?.releaseHandle(r),await this._updatingHandles.addPromise(o.moveTo(i,{...this.movementCommandContext,pointerType:t})))}async _handleVertexAddAtPointCommand(e){const t=this._updateLastScreenPosition(e),i=this.interactiveHandleManager?.capturingHandle??this.interactiveHandleManager?.findHandleByManipulator(t);this.editable&&i&&(this._before(e)||(j(e),await this._updatingHandles.addPromise(i.moveTo(t,{...this.movementCommandContext,skipSnapping:!0,pointerType:E(e.originalEvent)}).finally(()=>this._commitNext()))))}_makeKeyBindings(){const e=new q,t=(t,i)=>{e.addToggle(t,e=>this._handleCommand({action:i,originalEvent:e,enabled:"key-down"===e.type}))},i=(t,i)=>{e.add(t,e=>this._handleCommand({action:i,originalEvent:e}))};return t(B.preserveAspectRatio,"constraint-aspect"),t(z.center,"constraint-center"),i(K.toggleFollowManipulator,"toggle-manipulator-follow"),i(z.undo,"undo"),i(z.redo,"redo"),i(z.complete,"complete"),i(z.vertexAdd,"vertex-add"),i({key:Q.enterInputMode,continuePropagation:!0,repeats:!0},"show-tooltip"),e}_afterAttach(){}_afterDetach(e){this.interactiveHandleManager?.unregisterCustomConstraint(e),this.interactiveHandleManager?.unregisterHandle(e),this.tooltipManager?.unregisterPluginFields(e),this.globalStateManager.clearPluginOverrides(e);const t=this._pluginContexts.get(e);t&&(t.destroy(),this._pluginContexts.delete(e))}_beforeResume(e,t){this.interactiveHandleManager?.replaceEditSessions(e,t)}_commitNext(){const i={stack:[],error:void 0,hasError:!1};try{const t=this.mostDownstreamPlugin;if(!t)return;this.tooltipManager?.storeConstraintSnapshot();let n=!1;const r=this.editGeometryOperations;e(i,r?a(r.on("vertex-add",()=>n=!0)):null,!1);t.completeStep?t.completeStep():this.complete(t),n&&this.tooltipManager?.unlockOnVertexPlacement()}catch(n){i.error=n,i.hasError=!0}finally{t(i)}}_suspendPlugin(e){this.lifecycleManager.suspend(e),this.measurementManager.suspendPlugin(e)}_resumePlugin(e){this.lifecycleManager.resume(e)}_updateLastScreenPosition(e){const t=h(e.x,e.y);return this.lastScreenPosition=t,t}_getContextForPlugin(e,t){const i=r(this._pluginContexts,e,()=>new T({drawTool:this,plugin:e,session:t}));return i.session=t,i}_finalizeAndSimplifyGeometryResult(){const e=this.unprocessedGeometry;try{const t=e?_(e):e;t&&!w(t)?this.finalGeometry=t:this.finalGeometry=e}catch(t){n.getLogger(this).error("draw-tool:complete","geometry simplification failed",t)}}_before(e){if(!this.hasEventListener(`before-${e.action}`))return!1;const t=new CustomEvent(`before-${e.action}`,{detail:e,cancelable:!0});return this.emit(`before-${e.action}`,t),t.defaultPrevented}_guardCommand(e,t,i){return this._before(e)?i?.():t()}};i([m()],$.prototype,"_snappingVisualizer",void 0),i([m()],$.prototype,"_tooltipDependencies",null),i([m()],$.prototype,"_editSessionManagerContext",null),i([m()],$.prototype,"_densificationParameters",null),i([m({constructOnly:!0,nonNullable:!0})],$.prototype,"view",void 0),i([m()],$.prototype,"automaticManipulatorSelection",void 0),i([m()],$.prototype,"updating",null),i([m()],$.prototype,"coordinateHelper",null),i([m()],$.prototype,"editGeometry",null),i([m()],$.prototype,"editGeometryOperations",null),i([m()],$.prototype,"unprocessedGeometry",null),i([m()],$.prototype,"finalGeometry",void 0),i([m()],$.prototype,"simplifiedGeometryPreview",null),i([m()],$.prototype,"snappingManager",void 0),i([m()],$.prototype,"sketchOptions",void 0),i([m()],$.prototype,"elevationInfo",void 0),i([m()],$.prototype,"hasZ",void 0),i([m()],$.prototype,"defaultZ",void 0),i([m()],$.prototype,"directionOptions",void 0),i([m()],$.prototype,"canUndo",null),i([m()],$.prototype,"canRedo",null),i([m()],$.prototype,"pluginStack",null),i([m()],$.prototype,"mostDownstreamPlugin",null),i([m()],$.prototype,"mostUpstreamPlugin",null),i([m()],$.prototype,"lastScreenPosition",void 0),i([m()],$.prototype,"positionOfLastUserInput",null),i([m()],$.prototype,"tooltipManager",void 0),i([m()],$.prototype,"measurementManager",void 0),i([m()],$.prototype,"globalStateManager",void 0),i([m()],$.prototype,"editSessionManager",void 0),i([m()],$.prototype,"lifecycleManager",void 0),i([m()],$.prototype,"surfaceManager",void 0),i([m()],$.prototype,"interactiveHandleManager",void 0),i([m()],$.prototype,"renderer",void 0),i([m()],$.prototype,"movementCommandContext",null),i([m()],$.prototype,"tooltip",null),i([m()],$.prototype,"activeTooltipInfo",null),i([m()],$.prototype,"helpMessageKey",null),i([m({constructOnly:!0})],$.prototype,"enableVertexVisuals",void 0),$=i([v("esri.views.draw.DrawTool")],$);export{$ as DrawTool};
2
+ import{__addDisposableResource as e,__disposeResources as t,__decorate as i}from"tslib";import{createTask as a}from"../../core/asyncUtils.js";import{disposable as n}from"../../core/handleUtils.js";import s from"../../core/Logger.js";import{getOrCreateMapValue as r}from"../../core/MapUtils.js";import{destroyMaybe as o,abortMaybe as l}from"../../core/maybe.js";import{when as d,initial as p,watch as c,on as h,sync as g}from"../../core/reactiveUtils.js";import{screenPointEqual as u,createScreenPoint as m}from"../../core/screenUtils.js";import{diff as v}from"../../core/accessorSupport/diffUtils.js";import{property as y}from"../../core/accessorSupport/decorators/property.js";import{subclass as f}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as M}from"../../core/support/UpdatingHandles.js";import _ from"../../geometry/Polygon.js";import{i as b,e as w}from"../../chunks/simplifyOperator.js";import{isExtent as S}from"../../geometry/support/jsonTypeUtils.js";import{isPolygon as C}from"../../geometry/support/typeUtils.js";import{isCurvedGeometry as H}from"../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as x}from"../../geometry/support/curves/densifyCurvedGeometry.js";import{getEffectiveElevationInfo as P}from"../../support/elevationInfoUtils.js";import{getMaxDeviationInPixels as L,getMinSegmentsPerCurve as k}from"../2d/layers/graphics/densificationConstants.js";import{createSnappingVisualizer as O}from"./support/createSnappingVisualizer.js";import{multipointFromGeometry as j,markHandled as I,getPointerType as G}from"./support/drawToolUtils.js";import{PluginContext as T}from"./support/PluginContext.js";import{viewEventToCommand as E}from"./support/input/drawToolInput.js";import{EditSessionManager as V}from"./support/managers/EditSessionManager.js";import{GlobalStateManager as U}from"./support/managers/GlobalStateManager.js";import{InteractiveHandleManager as A}from"./support/managers/InteractiveHandleManager.js";import{MeasurementManager as D}from"./support/managers/MeasurementManager.js";import{PluginLifecycleManager as R}from"./support/managers/PluginLifecycleManager.js";import{SurfaceManager as F}from"./support/managers/SurfaceManager.js";import{TooltipManager as Z}from"./support/managers/TooltipManager.js";import{ViewEventPriorities as q}from"../input/InputManager.js";import{createCoordinateHelper as B}from"../interactive/coordinateHelper.js";import{InteractiveToolBase as z}from"../interactive/InteractiveToolBase.js";import{KeyBindings as K,mediaKeys as Q,sketchKeys as N,advancedSketchKeys as W,tooltipKeys as $}from"../interactive/keybindings.js";import{isInputModeAvailable as J}from"../interactive/tooltip/tooltipCommonUtils.js";const X=Symbol();let Y=class extends z{constructor(e){super(e),this._shapeVisualId=Symbol(),this._vertexVisualId=Symbol(),this._pluginContexts=new Map,this._queuedFeedbackEvents=[],this._flushingQueuedFeedbackEvents=!1,this._snappingVisualizer=null,this._segmentLabels=null,this._segmentLabelsImportTask=null,this._updatingHandles=new M,this._keybindings=this._makeKeyBindings(),this._pendingBeginRequest=null,this.type="draw-2.0",this.automaticManipulatorSelection=!0,this.snappingManager=null,this.sketchOptions=null,this.elevationInfo=null,this.hasZ=!1,this.defaultZ=0,this.lastScreenPosition=null,this.measurementManager=new D,this.globalStateManager=new U({getPluginStack:()=>this.pluginStack}),this.editSessionManager=new V({getContext:()=>this._editSessionManagerContext}),this.lifecycleManager=new R({getContext:this._getContextForPlugin.bind(this),editSessionManager:this.editSessionManager,afterAttach:this._afterAttach.bind(this),afterDetach:this._afterDetach.bind(this),beforeResume:this._beforeResume.bind(this)}),this.surfaceManager=null,this.interactiveHandleManager=null,this.renderer=null,this.enableVertexVisuals=!0}initialize(){const{view:e}=this;this.interactiveHandleManager=new A({view:e,renderer:this.renderer}),this._override("manipulators",this.interactiveHandleManager.manipulators),this.tooltipManager=new Z({getDependencies:()=>this._tooltipDependencies,getLastScreenPosition:()=>this.lastScreenPosition}),this.addHandles(d(()=>this.renderer,t=>{t.addOrUpdateVisual(this._shapeVisualId,{role:"outputGeometry"}),t.addOrUpdateVisual(this._vertexVisualId,{role:"vertex"}),this._updatingHandles.addPromise(O(e,t).then(e=>this._snappingVisualizer=e))},p)),this.addHandles([d(()=>this.view,e=>{this.surfaceManager?.destroy(),this.surfaceManager=new F({spatialReference:this.coordinateHelper.spatialReference,excludedGraphicsLayer:null,defaultZ:this.defaultZ,hasZ:this.hasZ,view:e,elevationInfo:this.elevationInfo,getContext:()=>({drawAtFixedElevation:this.globalStateManager.drawAtFixedElevation,elevationConstraint:this.tooltipManager?.elevationConstraint,constraintsEnabled:this.tooltipManager?.constraintsEnabled??!1})})},p),d(()=>this.sketchOptions?.tooltips.effectiveEnabled,()=>this.measurementManager.preloadMeasurementUtils(),{once:!0,initial:!0}),c(()=>[this.editGeometryOperations,this.sketchOptions?.labels.enabled,this.globalStateManager.segmentLabelsDisabled],()=>{this._updatingHandles.addPromise(this._setupSegmentLabels())},p),h(()=>this.editSessionManager,"cancelPlugin",({plugin:e})=>{this._suspendPlugin(e)},g),h(()=>this.editSessionManager,"restartPlugin",({restartInfo:e})=>{this._resumePlugin(e)},g),c(()=>this.lifecycleManager.updating,e=>{e||this._emitQueuedFeedbackEvents()},g),h(()=>this.editGeometryOperations,["vertex-add","vertex-update","vertex-remove"],e=>{const t=e.vertices.map(e=>({componentIndex:0,vertexIndex:e.index,coordinates:this.coordinateHelper.vectorToArray(e.pos)})),i=t.map(e=>e.coordinates);switch(e.type){case"vertex-add":this._emitWhenReady(e.type,{...e,added:i,vertices:t});break;case"vertex-update":this._emitWhenReady(e.type,{...e,updated:i,vertices:t});break;case"vertex-remove":this._emitWhenReady(e.type,{...e,removed:i,vertices:t})}})])}destroy(){this.active&&this.onDeactivate(),this.editSessionManager.destroy(),this.lifecycleManager.destroy(),this.measurementManager.destroy(),this.globalStateManager.destroy();for(const e of this._pluginContexts.values())e.destroy();this._pluginContexts.clear(),this.surfaceManager=o(this.surfaceManager),this.interactiveHandleManager=o(this.interactiveHandleManager),this._segmentLabelsImportTask=l(this._segmentLabelsImportTask),this._segmentLabels=o(this._segmentLabels),this.tooltipManager=o(this.tooltipManager)}get _tooltipDependencies(){const{defaultZ:e,editGeometryOperations:t,sketchOptions:i,directionOptions:a,view:n}=this;return t&&i&&n?{defaultZ:e,directionOptions:a,editGeometryOperations:t,sketchOptions:i,view:n,getActiveHandle:()=>this.interactiveHandleManager?.focusedHandle,getAllHandles:()=>this.interactiveHandleManager?.allhandles,getHelpMessageKey:()=>this.helpMessageKey,notifyTooltipsChanged:()=>{const{interactiveHandleManager:e,movementCommandContext:t}=this;e&&t&&e.reapplyPositions(t)}}:null}get _editSessionManagerContext(){const{coordinateHelper:e,view:t}=this;if(!t)return null;return{coordinateHelper:e,viewingMode:"3d"===t.type&&"global"===t.viewingMode?1:2}}get _densificationParameters(){const{view:e,coordinateHelper:t}=this,i=t.spatialReference,a=e?.spatialReference,n=e.resolution;if(!(i&&a&&n&&Number.isFinite(n)))return null;const s=a.metersPerUnit/i.metersPerUnit;return{maxDeviation:2**Math.round(Math.log2(n))*L()*s,minSegmentsPerCurve:k()}}get test(){return{densificationParameters:this._densificationParameters,segmentLabels:this._segmentLabels}}get updating(){return this._updatingHandles.updating||this.lifecycleManager.updating||!!this._segmentLabels?.updating}get coordinateHelper(){return B(this.hasZ,!1,this.view.spatialReference)}get editGeometry(){return this.editGeometryOperations?.data}get editGeometryOperations(){return this.editSessionManager.editGeometryOperations}get unprocessedGeometry(){return this.editSessionManager.outputGeometry}get simplifiedGeometryPreview(){const e=this.editSessionManager.outputGeometry;if(e&&C(e))try{const t=this._densificationParameters,i=H(e)&&t?new _({...x(e,t)}):e;if(!b(i))return w(i)}catch(t){return e}return e}get canUndo(){return this.editSessionManager.canUndo}get canRedo(){return this.editSessionManager.canRedo}get pluginStack(){return this.lifecycleManager.pluginStack}get mostDownstreamPlugin(){return this.pluginStack.at(-1)}get mostUpstreamPlugin(){return this.pluginStack.at(0)}get positionOfLastUserInput(){return this.lastScreenPosition?this.view.toMap(this.lastScreenPosition):this.view.center}get movementCommandContext(){const{editGeometryOperations:e,tooltipManager:t,surfaceManager:i,snappingManager:a,interactiveHandleManager:n,_snappingVisualizer:s,defaultZ:r,hasZ:o,globalStateManager:{drawAtFixedElevation:l},view:d}=this;return{tooltipManager:t,editGeometryOperations:e,surfaceManager:i,interactiveHandleManager:n,snappingManager:a,snappingVisualizer:s,pointerType:"mouse",hasZ:o,defaultZ:r,view:d,drawAtFixedElevation:l}}get tooltip(){return this.tooltipManager?.tooltip}get activeTooltipInfo(){return this.tooltipManager?.tooltipInfo}get helpMessageKey(){return this.pluginStack.items.findLast(e=>e.helpMessageKey)?.helpMessageKey??"noTool"}begin(e){this.active?(this.lifecycleManager.begin(e),this._pendingBeginRequest=null):this._pendingBeginRequest=e}complete(e){const t=this.lifecycleManager;e&&t.complete(e),0===t.pluginStack.length&&(this._finalizeAndSimplifyGeometryResult(),this.emit("complete",{geometry:this.finalGeometry,aborted:!1,type:"complete",vertices:[]}),this.view?.activeTool===this&&(this.view.activeTool=null))}cancelFirstUserLeafPlugin(){const e=this.pluginStack.toArray().findLast(e=>!0!==e.configuration?.hidden);e&&this.lifecycleManager.cancel(e)}replaceLeaf(e){const t=this.lifecycleManager;t.updating?s.getLogger(this).info("Ignoring command; arrived while updating:","replaceLeaf"):t.replaceLeaf(e)}finishPart(){const e=this.mostUpstreamPlugin,t=e?.configuration;if(this.editGeometryOperations&&t&&t.kind?.includes("multipart")){const e=this.pluginStack.at(1);e&&this.complete(e)}}undo(){this._guardCommand({action:"undo"},()=>this.editSessionManager.undo())}redo(){this._guardCommand({action:"redo"},()=>this.editSessionManager.redo())}executeCommand(e){return this._handleCommand(e)}addPromise(e){return this._updatingHandles.addPromise(e)}getGeometryIfCompleted(){const e=this.lifecycleManager.gatherCompletablePlugins();return this.editSessionManager?.generatePreviewGeometryForPlugins(e)}onActivate(){super.onActivate();const{view:e}=this;this.lastScreenPosition=e?.inputManager.latestPointerInfo?.location,this.renderer?.activate(),this._pendingBeginRequest&&(this.begin(this._pendingBeginRequest),this._pendingBeginRequest=null),this.enableVertexVisuals&&this.addHandles(c(()=>this.unprocessedGeometry,e=>{this.renderer?.addOrUpdateVisual(this._vertexVisualId,{geometry:e?j(e):null})},p)),this.addHandles([c(()=>this.simplifiedGeometryPreview,e=>{this.renderer?.addOrUpdateVisual(this._shapeVisualId,{geometry:e})},p),d(()=>this.interactiveHandleManager?.capturingHandle?.screenPosition,e=>this.lastScreenPosition=e,{initial:!0,equals:u}),c(()=>this.interactiveHandleManager?.capturingHandle?.outputMapPosition,(e,t)=>{const i=this.interactiveHandleManager?.capturingHandle?.editSession?.endVertex;e&&t&&i&&this._emitWhenReady("cursor-update",{updated:i.pos,type:"vertex-update",operation:"apply",vertices:[{componentIndex:i.part.index,vertexIndex:i.index,coordinates:i.pos}]})},g),this._keybindings.register(e,q.TOOL),c(()=>e.viewpoint,(e,t)=>{e&&t&&v(e,t)&&this._handleCommand({action:"viewpoint-moved"})})],X)}onDeactivate(){super.onDeactivate(),this.removeHandles(X),this.renderer?.deactivate(),this.snappingManager?.doneSnapping(),this.lifecycleManager.cancelAll(),this._pendingBeginRequest=null}onInputEvent(e){const t=E(e);t&&this._handleCommand(t)}_emitWhenReady(e,t){if(this.destroyed)return;const i=()=>{this.emit(e,t)};this.lifecycleManager.updating||this._flushingQueuedFeedbackEvents?this._queuedFeedbackEvents.push(i):i()}_emitQueuedFeedbackEvents(){if(!(this.destroyed||this._flushingQueuedFeedbackEvents||this.lifecycleManager.updating||0===this._queuedFeedbackEvents.length)){this._flushingQueuedFeedbackEvents=!0;try{for(;!this.destroyed&&!this.lifecycleManager.updating&&this._queuedFeedbackEvents.length>0;)this._queuedFeedbackEvents.shift()?.()}finally{this._flushingQueuedFeedbackEvents=!1}}}async _handleCommand(e){if(this.lifecycleManager.updating)s.getLogger(this).info("Ignoring command; arrived while updating:",e.action);else switch(e.action){case"view-drag":return await this._handleViewDragCommand(e);case"vertex-add":return this._guardCommand(e,()=>{I(e),this._commitNext()});case"vertex-add-and-finish-part":return this._handleVertexAddAndFinishPartCommand(e);case"cancel":return this._guardCommand(e,()=>this.cancel());case"complete":return this._guardCommand(e,()=>{this.mostUpstreamPlugin&&(I(e),this.complete(this.mostUpstreamPlugin))});case"finish-part":return this._guardCommand(e,()=>this.finishPart());case"undo":return this._guardCommand(e,()=>this.editSessionManager.undo());case"redo":return this._guardCommand(e,()=>this.editSessionManager.redo());case"next-manipulator":return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator("forward"));case"previous-manipulator":return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator("backward"));case"toggle-manipulator-follow":this.interactiveHandleManager?.toggleFollow()&&I(e);break;case"viewpoint-moved":return await this._handleViewpointMovedCommand(e);case"manipulator-move-to":return await this._handleManipulatorMoveToCommand(e);case"manipulator-drag-to":return await this._handleManipulatorDragToCommand(e);case"vertex-add-at-point":return await this._handleVertexAddAtPointCommand(e);case"show-tooltip":return this._guardCommand(e,async()=>{const t=this.tooltipManager?.tooltip;t&&J(t.info)&&(await t.enterInputMode(),I(e))});case"constraint-center":this.globalStateManager.setCentered(e.enabled);break;case"constraint-aspect":this.globalStateManager.setPreserveAspectRatio(e.enabled)}}async _handleViewDragCommand(e){if(!this.editable)return;const t=e.originalEvent,i=this.interactiveHandleManager?.capturingHandle;(!t||!("pointerType"in t)||"touch"!==t.pointerType||"capture-always"!==i?.captureMode&&"capture-when-engaged"!==i?.captureMode)&&"capture-when-engaged"!==this.interactiveHandleManager?.capturingHandle?.captureMode?this._before(e)&&I(e):I(e)}_handleVertexAddAndFinishPartCommand(e){this._before(e)||(I(e),this._commitNext(),this.finishPart())}async _handleViewpointMovedCommand(e){this.editable&&(await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(null,{...this.movementCommandContext,pointerType:G(e.originalEvent)})),this.interactiveHandleManager?.updateAllScreenPositions())}async _handleManipulatorMoveToCommand(e){if(!this.editable)return;const t=this._updateLastScreenPosition(e);this.interactiveHandleManager?.capturingHandle&&I(e),await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(t,{...this.movementCommandContext,pointerType:G(e.originalEvent)}))}async _handleManipulatorDragToCommand(e){if(!this.editable)return;const t=G(e.originalEvent),i=this._updateLastScreenPosition(e),a=this.interactiveHandleManager?.findHandleByManipulator(i);"touch"===t&&a&&"start"===e.state&&this.interactiveHandleManager?.releaseHandle();const n=this.interactiveHandleManager?.findHandleDragging(),s=this.interactiveHandleManager?.capturingHandle,r=n??s??a;r&&!a&&I(e),"capture-when-engaged"===r?.captureMode||"capture-always"===r?.captureMode&&"touch"===t?"end"===e.state?await this._updatingHandles.addPromise(r.noteDragEnd(i,{...this.movementCommandContext,pointerType:t}).then(()=>{r&&"touch"===G(e.originalEvent)&&"grabbable-object"!==r.captureMode&&"capture-when-engaged"!==r.defaultCaptureMode&&"primary"===r.role&&(1===this.interactiveHandleManager?.handleCount?this._handleCommand({action:"vertex-add"}):this.interactiveHandleManager?.releaseHandle())})):"start"===e.state?await this._updatingHandles.addPromise(r.noteDragStart(i,{...this.movementCommandContext,pointerType:t}).then(()=>{r&&"touch"===G(e.originalEvent)&&"grabbable-object"!==r.captureMode&&"capture-when-engaged"!==r.defaultCaptureMode&&!r.editSession?.lastPointAddedBySession&&this._handleCommand({action:"vertex-add"})})):await this._updatingHandles.addPromise(r?.moveTo(i,{...this.movementCommandContext,pointerType:G(e.originalEvent)})):"grabbable-object"===r?.captureMode&&(this.interactiveHandleManager?.releaseHandle(s),await this._updatingHandles.addPromise(r.moveTo(i,{...this.movementCommandContext,pointerType:t})))}async _handleVertexAddAtPointCommand(e){const t=this._updateLastScreenPosition(e),i=this.interactiveHandleManager?.capturingHandle??this.interactiveHandleManager?.findHandleByManipulator(t);this.editable&&i&&(this._before(e)||(I(e),await this._updatingHandles.addPromise(i.moveTo(t,{...this.movementCommandContext,skipSnapping:!0,pointerType:G(e.originalEvent)}).finally(()=>this._commitNext()))))}_makeKeyBindings(){const e=new K,t=(t,i)=>{e.addToggle(t,e=>this._handleCommand({action:i,originalEvent:e,enabled:"key-down"===e.type}))},i=(t,i)=>{e.add(t,e=>this._handleCommand({action:i,originalEvent:e}))};return t(Q.preserveAspectRatio,"constraint-aspect"),t(N.center,"constraint-center"),i(W.toggleFollowManipulator,"toggle-manipulator-follow"),i(N.undo,"undo"),i(N.redo,"redo"),i(N.complete,"complete"),i(N.vertexAdd,"vertex-add"),i({key:$.enterInputMode,continuePropagation:!0,repeats:!0},"show-tooltip"),e}_afterAttach(){}_afterDetach(e){this.interactiveHandleManager?.unregisterCustomConstraint(e),this.interactiveHandleManager?.unregisterHandle(e),this.tooltipManager?.unregisterPluginFields(e),this.globalStateManager.clearPluginOverrides(e);const t=this._pluginContexts.get(e);t&&(t.destroy(),this._pluginContexts.delete(e))}_beforeResume(e,t){this.interactiveHandleManager?.replaceEditSessions(e,t)}_commitNext(){const i={stack:[],error:void 0,hasError:!1};try{const t=this.mostDownstreamPlugin;if(!t)return;this.tooltipManager?.storeConstraintSnapshot();let a=!1;const s=this.editGeometryOperations;e(i,s?n(s.on("vertex-add",()=>a=!0)):null,!1);t.completeStep?t.completeStep():this.complete(t),a&&this.tooltipManager?.unlockOnVertexPlacement()}catch(a){i.error=a,i.hasError=!0}finally{t(i)}}_suspendPlugin(e){this.lifecycleManager.suspend(e),this.measurementManager.suspendPlugin(e)}_resumePlugin(e){this.lifecycleManager.resume(e)}_updateLastScreenPosition(e){const t=m(e.x,e.y);return this.lastScreenPosition=t,t}_getContextForPlugin(e,t){const i=r(this._pluginContexts,e,()=>new T({drawTool:this,plugin:e,session:t}));return i.session=t,i}_finalizeAndSimplifyGeometryResult(){const e=this.unprocessedGeometry;try{const t=e?w(e):e;t&&!S(t)?this.finalGeometry=t:this.finalGeometry=e}catch(t){s.getLogger(this).error("draw-tool:complete","geometry simplification failed",t)}}_before(e){if(!this.hasEventListener(`before-${e.action}`))return!1;const t=new CustomEvent(`before-${e.action}`,{detail:e,cancelable:!0});return this.emit(`before-${e.action}`,t),t.defaultPrevented}_guardCommand(e,t,i){return this._before(e)?i?.():t()}async _setupSegmentLabels(){const e=this.editGeometryOperations,t=this.sketchOptions?.labels,i=!!t?.enabled,a=this.globalStateManager.segmentLabelsDisabled;if(!e||!t||!i)return void(this._segmentLabels=o(this._segmentLabels));if(a)return void(this._segmentLabels&&(this._segmentLabels.visible=!1));if(this._segmentLabels?.context?.editGeometryOperations===e&&this._segmentLabels.context.labelOptions===t)return void(this._segmentLabels.visible=!0);const n=await this._createSegmentLabels(e,t);n&&(this._segmentLabels=o(this._segmentLabels),this._segmentLabels=n)}async _createSegmentLabels(e,t){return(this._segmentLabelsImportTask??=a(async i=>{if("3d"===this.view.type){const a=import("../3d/interactive/SegmentLabels3D.js"),{SegmentLabels3D:n}=await this._updatingHandles.addPromise(a);return this._isSegmentLabelsSetupStale(i,e,t)?null:new n({context:{view:this.view,editGeometryOperations:e,elevationInfo:P(this.hasZ,this.elevationInfo),labelOptions:t},visible:!0})}const a=import("../2d/interactive/SegmentLabels2D.js"),{SegmentLabels2D:n}=await this._updatingHandles.addPromise(a);return this._isSegmentLabelsSetupStale(i,e,t)?null:new n({context:{view:this.view,editGeometryOperations:e,elevationInfo:P(this.hasZ,this.elevationInfo),labelOptions:t},visible:!0})})).promise}_isSegmentLabelsSetupStale(e,t,i){return e.aborted||this.editGeometryOperations!==t||this.sketchOptions?.labels!==i||!i.enabled||this.globalStateManager.segmentLabelsDisabled}};i([y()],Y.prototype,"_snappingVisualizer",void 0),i([y()],Y.prototype,"_segmentLabels",void 0),i([y()],Y.prototype,"_segmentLabelsImportTask",void 0),i([y()],Y.prototype,"_tooltipDependencies",null),i([y()],Y.prototype,"_editSessionManagerContext",null),i([y()],Y.prototype,"_densificationParameters",null),i([y({constructOnly:!0,nonNullable:!0})],Y.prototype,"view",void 0),i([y()],Y.prototype,"automaticManipulatorSelection",void 0),i([y()],Y.prototype,"updating",null),i([y()],Y.prototype,"coordinateHelper",null),i([y()],Y.prototype,"editGeometry",null),i([y()],Y.prototype,"editGeometryOperations",null),i([y()],Y.prototype,"unprocessedGeometry",null),i([y()],Y.prototype,"finalGeometry",void 0),i([y()],Y.prototype,"simplifiedGeometryPreview",null),i([y()],Y.prototype,"snappingManager",void 0),i([y()],Y.prototype,"sketchOptions",void 0),i([y()],Y.prototype,"elevationInfo",void 0),i([y()],Y.prototype,"hasZ",void 0),i([y()],Y.prototype,"defaultZ",void 0),i([y()],Y.prototype,"directionOptions",void 0),i([y()],Y.prototype,"canUndo",null),i([y()],Y.prototype,"canRedo",null),i([y()],Y.prototype,"pluginStack",null),i([y()],Y.prototype,"mostDownstreamPlugin",null),i([y()],Y.prototype,"mostUpstreamPlugin",null),i([y()],Y.prototype,"lastScreenPosition",void 0),i([y()],Y.prototype,"positionOfLastUserInput",null),i([y()],Y.prototype,"tooltipManager",void 0),i([y()],Y.prototype,"measurementManager",void 0),i([y()],Y.prototype,"globalStateManager",void 0),i([y()],Y.prototype,"editSessionManager",void 0),i([y()],Y.prototype,"lifecycleManager",void 0),i([y()],Y.prototype,"surfaceManager",void 0),i([y()],Y.prototype,"interactiveHandleManager",void 0),i([y()],Y.prototype,"renderer",void 0),i([y()],Y.prototype,"movementCommandContext",null),i([y()],Y.prototype,"tooltip",null),i([y()],Y.prototype,"activeTooltipInfo",null),i([y()],Y.prototype,"helpMessageKey",null),i([y({constructOnly:!0})],Y.prototype,"enableVertexVisuals",void 0),Y=i([f("esri.views.draw.DrawTool")],Y);export{Y as DrawTool};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{watch as t,syncAndInitial as i,sync as s}from"../../../core/reactiveUtils.js";import{property as r,subclass as a}from"../../../core/accessorSupport/decorators.js";import{PluginBase as n}from"./PluginBase.js";import{createSquare as o,createCircle as l,createEllipse as d,createRectangle as p}from"../support/createUtils.js";import{knownFieldDisplayOrders as h}from"../support/types.js";const u=Symbol("own-shape"),c=Symbol("shape-area-measurement"),m=Symbol("shape-size-measurement-x"),f=Symbol("shape-size-measurement-y"),y=Symbol("shape-area-field"),g=Symbol("shape-x-size-field"),_=Symbol("shape-y-size-field"),S=Symbol("shape-radius-field");let v=class extends n{constructor(){super(...arguments),this.shapeType="rectangle",this.defaultCentered=!1,this.defaultUniform=!1}get _globalModifierState(){return this._context?.getGlobalState()}get helpMessageKey(){return this._interactiveHandle?.dragging?"shapeEndHybrid":"shapeStartHybrid"}get effectiveUniform(){return this.defaultUniform!==!!this._globalModifierState?.preserveAspectRatio}get effectiveCentered(){return this.defaultCentered!==this._globalModifierState?.centered}set shapeResult(e){this._set("shapeResult",e),e?"center"in e?(this._radiusField?.show(),this._xSizeField?.hide(),this._ySizeField?.hide(),this._areaField?.show()):"midpoints"in e&&e.midpoints&&(this._radiusField?.hide(),this._xSizeField?.show(),this._ySizeField?.show(),this._areaField?.show()):(this._xSizeField?.hide(),this._ySizeField?.hide(),this._radiusField?.hide(),this._areaField?.hide());const t=e?.geometry,i=this._session;if(i&&t){const e=t.curveRings??t.rings,s=e?.at(0);s&&i.appendOrReplacePart(u,s)}}start(e){super.start(e),this._interactiveHandle??=e.createInteractiveHandle({defaultCaptureMode:"capture-when-engaged",selfSnappingEnabled:!1},{disableDefaultXYFields:!0}),this.addHandles([t(()=>[this._interactiveHandle?.outputMapPosition,this.effectiveCentered,this.effectiveUniform],([e,t,i])=>{if(!e||this._isComplete)return;const s=this._interactiveHandle?.outputMapPositionOfDragStart??e,r=s===e?null:e;this.shapeResult=this._generateShape(s,r,t,i)},i),t(()=>this._interactiveHandle?.dragging,(t,i)=>{t&&e.setGlobalState("drawAtFixedElevation",!0),!t&&i&&"grabbable-object"!==this._interactiveHandle?.captureMode&&e.requestComplete()},s)],this._ownHandlesKey),this._areaField??=this._context?.createMeasuredField({id:y,preset:"area",getMeasurementInput:()=>this.shapeResult?.geometry,measure:async(e,t)=>{if(!e)return null;const i=t.inputUnitInfos.area.unit;return this._context?.measureArea(e,c,"tooltip",i)},fieldProperties:{displayOrder:h.ShapeMeasurements}});const r=Symbol("Size-group");this._xSizeField??=this._context?.createMeasuredField({id:g,preset:"generic-length",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>e&&"midpoints"in e&&e.midpoints?this._context?.measureDistance([e.midpoints?.left,e.midpoints?.right],m,"tooltip",t.inputUnitInfos.length.unit):null,fieldProperties:{displayOrder:h.Middle+1,displayGroup:r,title:e=>e.messages.sketch.size,readOnly:!0}}),this._ySizeField??=this._context?.createMeasuredField({id:_,preset:"generic-length",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>e&&"midpoints"in e&&e.midpoints?this._context?.measureDistance([e.midpoints?.bottom,e.midpoints?.top],f,"tooltip",t.inputUnitInfos.length.unit):null,fieldProperties:{displayOrder:h.Middle+2,displayGroup:r,title:e=>e.messages.sketch.size,readOnly:!0}}),this._radiusField??=this._context?.createMeasuredField({id:S,preset:"radius",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>{if(e&&"center"in e&&null!=e.center)return this._context?.measureDistance([e.center,e.edge],f,"tooltip",t.inputUnitInfos.length.unit)},fieldProperties:{displayOrder:h.Middle+1,readOnly:!0}})}_generateShape(e,t,i,s){const{shapeType:r}=this,{resolution:a}=this._context?.getViewInformation()??{},n=this._context?.getViewAlignedSurfaceCoordinateSystem(e);if(!n||null==a)return null;const h=[e.x,e.y],u=t&&[t.x,t.y];if(!u){const e=[[h,n.makeMapPoint(h[0]+48*a,h[1])],n,!0];return"rectangle"===r?o(...e):l(...e,void 0)}const c=[[h,u],n,i];return s?"circle"===r?l(...c,void 0):o(...c):"circle"===r?d(...c):p(...c)}};e([r()],v.prototype,"_interactiveHandle",void 0),e([r()],v.prototype,"_areaField",void 0),e([r()],v.prototype,"_xSizeField",void 0),e([r()],v.prototype,"_ySizeField",void 0),e([r()],v.prototype,"_radiusField",void 0),e([r()],v.prototype,"_globalModifierState",null),e([r()],v.prototype,"shapeType",void 0),e([r()],v.prototype,"defaultCentered",void 0),e([r()],v.prototype,"defaultUniform",void 0),e([r()],v.prototype,"helpMessageKey",null),e([r()],v.prototype,"effectiveUniform",null),e([r()],v.prototype,"effectiveCentered",null),e([r()],v.prototype,"shapeResult",null),v=e([a("esri.views.draw.plugins.ShapePlugin")],v);export{v as ShapePlugin};
2
+ import{__decorate as e}from"tslib";import{watch as t,syncAndInitial as i,sync as s}from"../../../core/reactiveUtils.js";import{property as r,subclass as a}from"../../../core/accessorSupport/decorators.js";import{PluginBase as n}from"./PluginBase.js";import{createSquare as o,createCircle as l,createEllipse as d,createRectangle as p}from"../support/createUtils.js";import{knownFieldDisplayOrders as h}from"../support/types.js";const u=Symbol("own-shape"),c=Symbol("shape-area-measurement"),m=Symbol("shape-size-measurement-x"),f=Symbol("shape-size-measurement-y"),y=Symbol("shape-area-field"),g=Symbol("shape-x-size-field"),_=Symbol("shape-y-size-field"),S=Symbol("shape-radius-field");let v=class extends n{constructor(){super(...arguments),this.shapeType="rectangle",this.defaultCentered=!1,this.defaultUniform=!1}get _globalModifierState(){return this._context?.getGlobalState()}get helpMessageKey(){return this._interactiveHandle?.dragging?"shapeEndHybrid":"shapeStartHybrid"}get effectiveUniform(){return this.defaultUniform!==!!this._globalModifierState?.preserveAspectRatio}get effectiveCentered(){return this.defaultCentered!==this._globalModifierState?.centered}set shapeResult(e){this._set("shapeResult",e),e?"center"in e?(this._radiusField?.show(),this._xSizeField?.hide(),this._ySizeField?.hide(),this._areaField?.show()):"midpoints"in e&&e.midpoints&&(this._radiusField?.hide(),this._xSizeField?.show(),this._ySizeField?.show(),this._areaField?.show()):(this._xSizeField?.hide(),this._ySizeField?.hide(),this._radiusField?.hide(),this._areaField?.hide());const t=e?.geometry,i=this._session;if(i&&t){const e=t.curveRings??t.rings,s=e?.at(0);s&&i.appendOrReplacePart(u,s)}}start(e){super.start(e),e.setGlobalState("segmentLabelsDisabled","circle"===this.shapeType||void 0),this._interactiveHandle??=e.createInteractiveHandle({defaultCaptureMode:"capture-when-engaged",selfSnappingEnabled:!1},{disableDefaultXYFields:!0}),this.addHandles([t(()=>[this._interactiveHandle?.outputMapPosition,this.effectiveCentered,this.effectiveUniform],([e,t,i])=>{if(!e||this._isComplete)return;const s=this._interactiveHandle?.outputMapPositionOfDragStart??e,r=s===e?null:e;this.shapeResult=this._generateShape(s,r,t,i)},i),t(()=>this._interactiveHandle?.dragging,(t,i)=>{t&&e.setGlobalState("drawAtFixedElevation",!0),!t&&i&&"grabbable-object"!==this._interactiveHandle?.captureMode&&e.requestComplete()},s)],this._ownHandlesKey),this._areaField??=this._context?.createMeasuredField({id:y,preset:"area",getMeasurementInput:()=>this.shapeResult?.geometry,measure:async(e,t)=>{if(!e)return null;const i=t.inputUnitInfos.area.unit;return this._context?.measureArea(e,c,"tooltip",i)},fieldProperties:{displayOrder:h.ShapeMeasurements}});const r=Symbol("Size-group");this._xSizeField??=this._context?.createMeasuredField({id:g,preset:"generic-length",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>e&&"midpoints"in e&&e.midpoints?this._context?.measureDistance([e.midpoints?.left,e.midpoints?.right],m,"tooltip",t.inputUnitInfos.length.unit):null,fieldProperties:{displayOrder:h.Middle+1,displayGroup:r,title:e=>e.messages.sketch.size,readOnly:!0}}),this._ySizeField??=this._context?.createMeasuredField({id:_,preset:"generic-length",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>e&&"midpoints"in e&&e.midpoints?this._context?.measureDistance([e.midpoints?.bottom,e.midpoints?.top],f,"tooltip",t.inputUnitInfos.length.unit):null,fieldProperties:{displayOrder:h.Middle+2,displayGroup:r,title:e=>e.messages.sketch.size,readOnly:!0}}),this._radiusField??=this._context?.createMeasuredField({id:S,preset:"radius",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>{if(e&&"center"in e&&null!=e.center)return this._context?.measureDistance([e.center,e.edge],f,"tooltip",t.inputUnitInfos.length.unit)},fieldProperties:{displayOrder:h.Middle+1,readOnly:!0}})}_generateShape(e,t,i,s){const{shapeType:r}=this,{resolution:a}=this._context?.getViewInformation()??{},n=this._context?.getViewAlignedSurfaceCoordinateSystem(e);if(!n||null==a)return null;const h=[e.x,e.y],u=t&&[t.x,t.y];if(!u){const e=[[h,n.makeMapPoint(h[0]+48*a,h[1])],n,!0];return"rectangle"===r?o(...e):l(...e,void 0)}const c=[[h,u],n,i];return s?"circle"===r?l(...c,void 0):o(...c):"circle"===r?d(...c):p(...c)}};e([r()],v.prototype,"_interactiveHandle",void 0),e([r()],v.prototype,"_areaField",void 0),e([r()],v.prototype,"_xSizeField",void 0),e([r()],v.prototype,"_ySizeField",void 0),e([r()],v.prototype,"_radiusField",void 0),e([r()],v.prototype,"_globalModifierState",null),e([r()],v.prototype,"shapeType",void 0),e([r()],v.prototype,"defaultCentered",void 0),e([r()],v.prototype,"defaultUniform",void 0),e([r()],v.prototype,"helpMessageKey",null),e([r()],v.prototype,"effectiveUniform",null),e([r()],v.prototype,"effectiveCentered",null),e([r()],v.prototype,"shapeResult",null),v=e([a("esri.views.draw.plugins.ShapePlugin")],v);export{v as ShapePlugin};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import r from"../../../../core/ReactiveMap.js";import{property as i}from"../../../../core/accessorSupport/decorators.js";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";let o=class extends t{constructor(e){super(e),this._drawAtFixedElevationOverrides=new r,this.preserveAspectRatio=!1,this.centered=!1}get drawAtFixedElevation(){return this._getDrawAtFixedElevation()}getGlobalState(){return{preserveAspectRatio:this.preserveAspectRatio,centered:this.centered,drawAtFixedElevation:this._getDrawAtFixedElevation()}}setCentered(e){this.centered=e}setPreserveAspectRatio(e){this.preserveAspectRatio=e}setGlobalState(e,t,r){"drawAtFixedElevation"===t&&this._setDrawAtFixedElevation(e,r)}clearPluginOverrides(e){this._drawAtFixedElevationOverrides.delete(e)}_setDrawAtFixedElevation(e,t){null==t?this._drawAtFixedElevationOverrides.delete(e):this._drawAtFixedElevationOverrides.set(e,t)}_getDrawAtFixedElevation(){const e=this.getPluginStack?.();if(!e)return!1;for(let t=e.length-1;t>=0;t--){const r=e.at(t),i=this._drawAtFixedElevationOverrides.get(r);if(null!=i)return i}return!1}};e([i({constructOnly:!0})],o.prototype,"getPluginStack",void 0),e([i()],o.prototype,"preserveAspectRatio",void 0),e([i()],o.prototype,"centered",void 0),e([i()],o.prototype,"drawAtFixedElevation",null),o=e([s("esri.views.draw.support.managers.GlobalStateManager")],o);export{o as GlobalStateManager};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import s from"../../../../core/ReactiveMap.js";import{property as r}from"../../../../core/accessorSupport/decorators.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";let a=class extends t{constructor(e){super(e),this._drawAtFixedElevationOverrides=new s,this._segmentLabelsDisabledOverrides=new s,this.preserveAspectRatio=!1,this.centered=!1}get drawAtFixedElevation(){return this._getDrawAtFixedElevation()}get segmentLabelsDisabled(){return this._getSegmentLabelsDisabled()}getGlobalState(){return{preserveAspectRatio:this.preserveAspectRatio,centered:this.centered,drawAtFixedElevation:this._getDrawAtFixedElevation(),segmentLabelsDisabled:this._getSegmentLabelsDisabled()}}setCentered(e){this.centered=e}setPreserveAspectRatio(e){this.preserveAspectRatio=e}setGlobalState(e,t,s){"drawAtFixedElevation"===t?this._setDrawAtFixedElevation(e,s):"segmentLabelsDisabled"===t&&this._setSegmentLabelsDisabled(e,s)}clearPluginOverrides(e){this._drawAtFixedElevationOverrides.delete(e),this._segmentLabelsDisabledOverrides.delete(e)}_setDrawAtFixedElevation(e,t){null==t?this._drawAtFixedElevationOverrides.delete(e):this._drawAtFixedElevationOverrides.set(e,t)}_setSegmentLabelsDisabled(e,t){null==t?this._segmentLabelsDisabledOverrides.delete(e):this._segmentLabelsDisabledOverrides.set(e,t)}_getDrawAtFixedElevation(){const e=this.getPluginStack?.();if(!e)return!1;for(let t=e.length-1;t>=0;t--){const s=e.at(t),r=this._drawAtFixedElevationOverrides.get(s);if(null!=r)return r}return!1}_getSegmentLabelsDisabled(){const e=this.getPluginStack?.();if(!e)return!1;for(let t=e.length-1;t>=0;t--){const s=e.at(t),r=this._segmentLabelsDisabledOverrides.get(s);if(null!=r)return r}return!1}};e([r({constructOnly:!0})],a.prototype,"getPluginStack",void 0),e([r()],a.prototype,"preserveAspectRatio",void 0),e([r()],a.prototype,"centered",void 0),e([r()],a.prototype,"drawAtFixedElevation",null),e([r()],a.prototype,"segmentLabelsDisabled",null),a=e([i("esri.views.draw.support.managers.GlobalStateManager")],a);export{a as GlobalStateManager};
@@ -351,6 +351,15 @@ export interface GlobalState {
351
351
  * @internal
352
352
  */
353
353
  drawAtFixedElevation: boolean;
354
+ /**
355
+ * Indicates whether segment labels should be disabled. This should be
356
+ * used when segment labels would be inappropriate for the plugin.
357
+ * For example, when drawing a false circle, where you don't want to
358
+ * emphasize individual segments.
359
+ *
360
+ * @internal
361
+ */
362
+ segmentLabelsDisabled: boolean;
354
363
  }
355
364
 
356
365
  /**
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../Color.js";import{onLocaleChange as s}from"../../intl.js";import o from"../../core/Accessor.js";import{createTask as r}from"../../core/asyncUtils.js";import{multiplyOpacity as i,getContrast as n}from"../../core/colorUtils.js";import{makeHandle as a}from"../../core/handleUtils.js";import"../../core/has.js";import{getOrCreateMapValue as l}from"../../core/MapUtils.js";import{deg2rad as d}from"../../core/mathUtils.js";import{debounce as c}from"../../core/promiseUtils.js";import{formatLength as p}from"../../core/quantityFormatUtils.js";import{on as m}from"../../core/reactiveUtils.js";import{createScreenPointArray as h}from"../../core/screenUtils.js";import{getMetersPerUnit as u,getMetersPerVerticalUnitForSR as f}from"../../core/units.js";import{property as g,subclass as _}from"../../core/accessorSupport/decorators.js";import{squaredDistance as b,set as x,normalize as y,scale as v,add as U,lerp as j}from"../../core/libs/gl-matrix-2/math/vec2.js";import{create as L}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import{clone as I}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isVec3 as k}from"../../core/libs/gl-matrix-2/types/vec3.js";import{UpdatingHandles as C}from"../../core/support/UpdatingHandles.js";import w from"../../geometry/Polyline.js";import{isClockwise as P}from"../../geometry/support/coordsUtils.js";import{getEndpoint as T,isCoordinate as H,cloneCurve as M}from"../../geometry/support/curves/curveUtils.js";import{interpolate2D as D}from"../../geometry/support/curves/interpolateCurve.js";import{fetchMessageBundle as O}from"../../intl/messages.js";import{getConvertedElevationFromVector as S,absoluteHeightElevationInfo as R}from"../../support/elevationInfoUtils.js";import{getDefaultUnitForView as G}from"../../support/getDefaultUnitForView.js";import A from"../overlay/TextOverlayItem.js";import{MeasurementWorkerHandle as V}from"../support/MeasurementWorkerHandle.js";const W=3025,q={default:15,far:25};let z=class extends o{constructor(e){super(e),this.context=null,this.stagedVertex=null,this.visible=!0,this.edgeDistance="default",this._updatingHandles=new C,this._messageUnitsTask=null,this._labelInfos=[],this._nextLabelIndex=0,this._debouncedLabelUpdates=new Map,this._measurementWorker=new V({preloadGeodetic:!0})}initialize(){this.addHandles([this._updatingHandles.add(()=>[null!=this.context&&this.getCameraOrExtent(this.context),this.visible,this._edgeDistancePixels,this.stagedVertex,this._messagesUnits],()=>this._update()),m(()=>this.context?.editGeometryOperations,["vertex-add","vertex-remove"],()=>this._update()),m(()=>this.context?.editGeometryOperations,"vertex-update",e=>this._update(e.vertices)),this._updatingHandles.add(()=>this._colors,e=>this._updateStyle(e)),s(()=>this._refreshMessages()),a(()=>this._messageUnitsTask?.abort())]),this._refreshMessages()}destroy(){for(this._nextLabelIndex=0;this._labelInfos.length;)this._destroyLabel(this._labelInfos.pop());this._measurementWorker.destroy(),this._updatingHandles.destroy()}get updating(){return!this._messageUnitsTask?.finished||this._updatingHandles.updating}get test(){}get _messagesUnits(){return this._messageUnitsTask?.value}get _edgeDistancePixels(){return q[this.edgeDistance]}get _colors(){const e=this.context?.view.effectiveTheme.textColor??t.fromArray([255,255,255]);return{textColor:e,backgroundColor:i(n(e,160),.6)}}_update(e){if(this.destroyed)return;this._nextLabelIndex=0;const{context:t,stagedVertex:s}=this;if(!t)return this._destroyUnusedLabels();const o=t.editGeometryOperations.data,{parts:r,geometry:i,coordinateHelper:n}=o;if(!i)return this._destroyUnusedLabels();const a=r.length;for(let l=0;l<a;++l){const r=this.getRing(i,o,s,n,l),d=r.map(e=>k(e)?e:n.arrayToXYZ(T(e)));if(r.length<2||!F(r,t.view,t.elevationInfo,n.spatialReference))continue;const c=1===a&&!P(d);let p=B,m=E;this.toScreenPointArray(t,d[0],p);for(let s=1;s<r.length;++s){const o=d[s-1],i=d[s],n=r[s];this.toScreenPointArray(t,i,m);const a=s===d.length-1,h=!(!e?.length||e.some(({index:e,part:t})=>t.index===l&&(e===s-1||e===s||a&&0===e)));this._addLabel(t,o,p,i,k(n)?null:n,m,c,h),[p,m]=[m,p]}}this._destroyUnusedLabels()}_updateStyle({textColor:e,backgroundColor:t}){const s=this._nextLabelIndex,o=this._labelInfos;for(let r=0;r<s;++r){const{label:s}=o[r];s.textColor=e,s.backgroundColor=t}}_updateLabelMeasurement(e,t,s,o,r){return l(this._debouncedLabelUpdates,o,()=>c(async(e,t,s,o,r)=>{const{spatialReference:i,coordinateHelper:n}=e.editGeometryOperations.data,a=!r||H(r),l=await(a?this._measurementWorker.autoDistance2DBetweenPoints(n.arrayToPoint(t),n.arrayToPoint(s)):this._measurementWorker.autoLength2D(new w({spatialReference:i,curvePaths:[[[t[0],t[1]],r]]})));if(o.destroyed)return;const d=this._messagesUnits,c=G(e.view);o.text=null!=d&&null!=l?p(d,l,c):""}))(e,I(t),I(s),o,r?M(r):void 0)}_addLabel(e,t,s,o,r,i,n,a=!1){const{label:l,wasReused:d}=this._getOrCreateLabel(e);if(!this.visible||b(s,i)<W)return void(l.visible=!1);const{coordinateHelper:c}=e.editGeometryOperations.data;a&&d||this._updatingHandles.consumePromise(this._updateLabelMeasurement(e,t,o,l,r)),l.visible=!0;const p=i[0]-s[0],m=i[1]-s[1];if(n?x(Y,-m,p):x(Y,m,-p),y(Y,Y),v(Y,Y,this._edgeDistancePixels),r&&!H(r)){const s=c.arrayToXYZ(D(t,r,.5)),o=this.toScreenPointArray(e,s);U(Z,o,Y)}else j(Z,s,i,.5),U(Z,Z,Y);l.position=[Z[0],Z[1]],Math.abs(Y[0])>Math.abs(Y[1])?l.anchor=Y[0]>0?"left":"right":l.anchor=-Y[1]<0?"top":"bottom"}_getOrCreateLabel(e){const t=this._labelInfos.length>this._nextLabelIndex,{textColor:s,backgroundColor:o}=this._colors;if(t){const e=this._labelInfos[this._nextLabelIndex++],{label:t}=e;return t.textColor=s,t.backgroundColor=o,e.wasReused=!0,e}const r=new A({anchor:"center",fontSize:8,textColor:s,backgroundColor:o});e.view.overlay?.items.add(r);const i={label:r,wasReused:!1};return this._labelInfos.push(i),this._nextLabelIndex=this._labelInfos.length,i}_destroyUnusedLabels(){for(;this._labelInfos.length>this._nextLabelIndex;)this._destroyLabel(this._labelInfos.pop())}_destroyLabel({label:e}){this.context?.view.overlay?.items.remove(e),e.destroy(),this._debouncedLabelUpdates.delete(e)}_refreshMessages(){this._messageUnitsTask?.abort(),this._messageUnitsTask=r(()=>O("esri/core/t9n/Units"))}};function F(e,t,s,o){if("2d"===t.type)return!0;const r=u(o)??1,i=f(o),n=e=>S(t,e,o,s,R)??0;for(let a=1;a<e.length;++a){const t=e[a-1],s=e[a];if(!k(t)||!k(s))return!1;const o=(s[0]-t[0])*r,l=(s[1]-t[1])*r,d=(n(s)-n(t))*i;if(Math.abs(d)/Math.sqrt(o*o+l*l)>X)return!1}return!0}e([g()],z.prototype,"context",void 0),e([g()],z.prototype,"stagedVertex",void 0),e([g()],z.prototype,"visible",void 0),e([g()],z.prototype,"edgeDistance",void 0),e([g()],z.prototype,"updating",null),e([g()],z.prototype,"_messageUnitsTask",void 0),e([g()],z.prototype,"_messagesUnits",null),e([g()],z.prototype,"_edgeDistancePixels",null),e([g()],z.prototype,"_colors",null),z=e([_("esri.views.interactive.SegmentLabels")],z);const X=d(5),Y=L(),Z=L(),B=h(),E=h();export{z as SegmentLabels};
2
+ import{__decorate as e}from"tslib";import t from"../../Color.js";import{onLocaleChange as s}from"../../intl.js";import o from"../../core/Accessor.js";import{createTask as r}from"../../core/asyncUtils.js";import{multiplyOpacity as i,getContrast as a}from"../../core/colorUtils.js";import{makeHandle as n}from"../../core/handleUtils.js";import"../../core/has.js";import{getOrCreateMapValue as l}from"../../core/MapUtils.js";import{deg2rad as d}from"../../core/mathUtils.js";import{debounce as c}from"../../core/promiseUtils.js";import{formatLength as p}from"../../core/quantityFormatUtils.js";import{on as m}from"../../core/reactiveUtils.js";import{createScreenPointArray as h}from"../../core/screenUtils.js";import{getMetersPerUnit as u,getMetersPerVerticalUnitForSR as f}from"../../core/units.js";import{property as g,subclass as _}from"../../core/accessorSupport/decorators.js";import{squaredDistance as b,set as x,normalize as y,scale as v,add as U,lerp as j}from"../../core/libs/gl-matrix-2/math/vec2.js";import{create as L}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import{clone as I}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isVec3 as k}from"../../core/libs/gl-matrix-2/types/vec3.js";import{UpdatingHandles as C}from"../../core/support/UpdatingHandles.js";import w from"../../geometry/Polyline.js";import{isClockwise as P}from"../../geometry/support/coordsUtils.js";import{getEndpoint as T,isCoordinate as H,cloneCurve as M}from"../../geometry/support/curves/curveUtils.js";import{interpolate2D as D}from"../../geometry/support/curves/interpolateCurve.js";import{fetchMessageBundle as O}from"../../intl/messages.js";import{getConvertedElevationFromVector as S,absoluteHeightElevationInfo as R}from"../../support/elevationInfoUtils.js";import{getDefaultUnitForView as G}from"../../support/getDefaultUnitForView.js";import A from"../overlay/TextOverlayItem.js";import{MeasurementWorkerHandle as V}from"../support/MeasurementWorkerHandle.js";const W=3025,N={default:15,far:25};let q=class extends o{constructor(e){super(e),this.context=null,this.stagedVertex=null,this.visible=!0,this.edgeDistance="default",this._updatingHandles=new C,this._messageUnitsTask=null,this._labelInfos=[],this._nextLabelIndex=0,this._debouncedLabelUpdates=new Map,this._measurementWorker=new V({preloadGeodetic:!0})}initialize(){this.addHandles([this._updatingHandles.add(()=>[null!=this.context&&this.getCameraOrExtent(this.context),this.visible,this._edgeDistancePixels,this.stagedVertex,this._messagesUnits],()=>this._update()),m(()=>this.context?.editGeometryOperations,["vertex-add","vertex-remove"],()=>this._update()),m(()=>this.context?.editGeometryOperations,"vertex-update",e=>this._update(e.vertices)),this._updatingHandles.add(()=>this._colors,e=>this._updateStyle(e)),s(()=>this._refreshMessages()),n(()=>this._messageUnitsTask?.abort())]),this._refreshMessages()}destroy(){for(this._nextLabelIndex=0;this._labelInfos.length;)this._destroyLabel(this._labelInfos.pop());this._measurementWorker.destroy(),this._updatingHandles.destroy()}get updating(){return!this._messageUnitsTask?.finished||this._updatingHandles.updating}get test(){}get _messagesUnits(){return this._messageUnitsTask?.value}get _edgeDistancePixels(){return N[this.edgeDistance]}get _colors(){const e=this.context?.view.effectiveTheme.textColor??t.fromArray([255,255,255]);return{textColor:e,backgroundColor:i(a(e,160),.6)}}_update(e){if(this.destroyed)return;this._nextLabelIndex=0;const{context:t,stagedVertex:s}=this;if(!t)return this._destroyUnusedLabels();const o=t.editGeometryOperations.data,{parts:r,geometry:i,coordinateHelper:a}=o;if(!i)return this._destroyUnusedLabels();const n=r.length;for(let l=0;l<n;++l){const r=this.getRing(i,o,s,a,l),d=r.map(e=>k(e)?e:a.arrayToXYZ(T(e)));if(r.length<2||!z(r,t.view,t.elevationInfo,a.spatialReference))continue;const c=1===n&&!P(d);let p=Z,m=B;this.toScreenPointArray(t,d[0],p);for(let s=1;s<r.length;++s){const o=d[s-1],i=d[s],a=r[s];this.toScreenPointArray(t,i,m);const n=s===d.length-1,h=!(!e?.length||e.some(({index:e,part:t})=>t.index===l&&(e===s-1||e===s||n&&0===e)));this._addLabel(t,o,p,i,k(a)?null:a,m,c,h),[p,m]=[m,p]}}this._destroyUnusedLabels()}_updateStyle({textColor:e,backgroundColor:t}){const s=this._nextLabelIndex,o=this._labelInfos;for(let r=0;r<s;++r){const{label:s}=o[r];s.textColor=e,s.backgroundColor=t}}_updateLabelMeasurement(e,t,s,o,r){return l(this._debouncedLabelUpdates,o,()=>c(async(e,t,s,o,r)=>{const{spatialReference:i,coordinateHelper:a}=e.editGeometryOperations.data,n=!r||H(r),l=await(n?this._measurementWorker.autoDistance2DBetweenPoints(a.arrayToPoint(t),a.arrayToPoint(s)):this._measurementWorker.autoLength2D(new w({spatialReference:i,curvePaths:[[[t[0],t[1]],r]]})));if(o.destroyed)return;const d=this._messagesUnits,c=G(e.view);o.text=null==d||null==l||Number.isNaN(l.value)?"":p(d,l,c)}))(e,I(t),I(s),o,r?M(r):void 0)}_addLabel(e,t,s,o,r,i,a,n=!1){const{label:l,wasReused:d}=this._getOrCreateLabel(e);if(!this.visible||b(s,i)<W)return void(l.visible=!1);const{coordinateHelper:c}=e.editGeometryOperations.data;n&&d||this._updatingHandles.consumePromise(this._updateLabelMeasurement(e,t,o,l,r)),l.visible=!0;const p=i[0]-s[0],m=i[1]-s[1];if(a?x(X,-m,p):x(X,m,-p),y(X,X),v(X,X,this._edgeDistancePixels),r&&!H(r)){const s=c.arrayToXYZ(D(t,r,.5)),o=this.toScreenPointArray(e,s);U(Y,o,X)}else j(Y,s,i,.5),U(Y,Y,X);l.position=[Y[0],Y[1]],Math.abs(X[0])>Math.abs(X[1])?l.anchor=X[0]>0?"left":"right":l.anchor=-X[1]<0?"top":"bottom"}_getOrCreateLabel(e){const t=this._labelInfos.length>this._nextLabelIndex,{textColor:s,backgroundColor:o}=this._colors;if(t){const e=this._labelInfos[this._nextLabelIndex++],{label:t}=e;return t.textColor=s,t.backgroundColor=o,e.wasReused=!0,e}const r=new A({anchor:"center",fontSize:8,textColor:s,backgroundColor:o});e.view.overlay?.items.add(r);const i={label:r,wasReused:!1};return this._labelInfos.push(i),this._nextLabelIndex=this._labelInfos.length,i}_destroyUnusedLabels(){for(;this._labelInfos.length>this._nextLabelIndex;)this._destroyLabel(this._labelInfos.pop())}_destroyLabel({label:e}){this.context?.view.overlay?.items.remove(e),e.destroy(),this._debouncedLabelUpdates.delete(e)}_refreshMessages(){this._messageUnitsTask?.abort(),this._messageUnitsTask=r(()=>O("esri/core/t9n/Units"))}};function z(e,t,s,o){if("2d"===t.type)return!0;const r=u(o)??1,i=f(o),a=e=>S(t,e,o,s,R)??0;for(let n=1;n<e.length;++n){const t=e[n-1],s=e[n];if(!k(t)||!k(s))return!1;const o=(s[0]-t[0])*r,l=(s[1]-t[1])*r,d=(a(s)-a(t))*i;if(Math.abs(d)/Math.sqrt(o*o+l*l)>F)return!1}return!0}e([g()],q.prototype,"context",void 0),e([g()],q.prototype,"stagedVertex",void 0),e([g()],q.prototype,"visible",void 0),e([g()],q.prototype,"edgeDistance",void 0),e([g()],q.prototype,"updating",null),e([g()],q.prototype,"_messageUnitsTask",void 0),e([g()],q.prototype,"_messagesUnits",null),e([g()],q.prototype,"_edgeDistancePixels",null),e([g()],q.prototype,"_colors",null),q=e([_("esri.views.interactive.SegmentLabels")],q);const F=d(5),X=L(),Y=L(),Z=h(),B=h();export{q as SegmentLabels};