@arcgis/core 4.33.0-next.20250131 → 4.33.0-next.20250202

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 (317) hide show
  1. package/WebScene.js +1 -1
  2. package/arcade/featureset/support/shared.js +1 -1
  3. package/arcade/geometry/unitConversion.js +1 -1
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/{b68bddd0c4ca91493543.js → 06d489a44d88e38fb140.js} +1 -1
  6. package/assets/esri/core/workers/chunks/{4696278d033907a067c7.js → 085462ba3da7849fc296.js} +1 -1
  7. package/assets/esri/core/workers/chunks/0a19e1aec6a5502e391a.js +1 -0
  8. package/assets/esri/core/workers/chunks/{7a273e6e411f6cc31b3f.js → 326a3f50e585e492b673.js} +1 -1
  9. package/assets/esri/core/workers/chunks/4decfae8bc5e80878bdd.js +1 -0
  10. package/assets/esri/core/workers/chunks/{e0de91eacf3a3b7eda55.js → 5b20ee64248f2d5c937f.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{bef27448b341e429eb31.js → 692b3d03346f030aa649.js} +7 -7
  12. package/assets/esri/core/workers/chunks/6ec108bd955e064256b5.js +1 -0
  13. package/assets/esri/core/workers/chunks/c94ec324ecad77c53a87.js +1 -0
  14. package/assets/esri/core/workers/chunks/{ef6afba80fa2086ec104.js → e9f7953938b9bc8e8abe.js} +1 -1
  15. package/assets/esri/core/workers/chunks/fb1a89f753057f889971.js +314 -0
  16. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +4 -1
  17. package/assets/esri/themes/dark/main.css +1 -1
  18. package/assets/esri/themes/light/main.css +1 -1
  19. package/assets/esri/themes/light/view.css +1 -1
  20. package/assets/esri/widgets/Directions/t9n/Directions.json +1 -1
  21. package/assets/esri/widgets/Directions/t9n/Directions_ar.json +1 -1
  22. package/assets/esri/widgets/Directions/t9n/Directions_bg.json +1 -1
  23. package/assets/esri/widgets/Directions/t9n/Directions_bs.json +1 -1
  24. package/assets/esri/widgets/Directions/t9n/Directions_ca.json +1 -1
  25. package/assets/esri/widgets/Directions/t9n/Directions_cs.json +1 -1
  26. package/assets/esri/widgets/Directions/t9n/Directions_da.json +1 -1
  27. package/assets/esri/widgets/Directions/t9n/Directions_de.json +1 -1
  28. package/assets/esri/widgets/Directions/t9n/Directions_el.json +1 -1
  29. package/assets/esri/widgets/Directions/t9n/Directions_en.json +1 -1
  30. package/assets/esri/widgets/Directions/t9n/Directions_es.json +1 -1
  31. package/assets/esri/widgets/Directions/t9n/Directions_et.json +1 -1
  32. package/assets/esri/widgets/Directions/t9n/Directions_fi.json +1 -1
  33. package/assets/esri/widgets/Directions/t9n/Directions_fr.json +1 -1
  34. package/assets/esri/widgets/Directions/t9n/Directions_he.json +1 -1
  35. package/assets/esri/widgets/Directions/t9n/Directions_hr.json +1 -1
  36. package/assets/esri/widgets/Directions/t9n/Directions_hu.json +1 -1
  37. package/assets/esri/widgets/Directions/t9n/Directions_id.json +1 -1
  38. package/assets/esri/widgets/Directions/t9n/Directions_it.json +1 -1
  39. package/assets/esri/widgets/Directions/t9n/Directions_ja.json +1 -1
  40. package/assets/esri/widgets/Directions/t9n/Directions_ko.json +1 -1
  41. package/assets/esri/widgets/Directions/t9n/Directions_lt.json +1 -1
  42. package/assets/esri/widgets/Directions/t9n/Directions_lv.json +1 -1
  43. package/assets/esri/widgets/Directions/t9n/Directions_nl.json +1 -1
  44. package/assets/esri/widgets/Directions/t9n/Directions_no.json +1 -1
  45. package/assets/esri/widgets/Directions/t9n/Directions_pl.json +1 -1
  46. package/assets/esri/widgets/Directions/t9n/Directions_pt-BR.json +1 -1
  47. package/assets/esri/widgets/Directions/t9n/Directions_pt-PT.json +1 -1
  48. package/assets/esri/widgets/Directions/t9n/Directions_ro.json +1 -1
  49. package/assets/esri/widgets/Directions/t9n/Directions_ru.json +1 -1
  50. package/assets/esri/widgets/Directions/t9n/Directions_sk.json +1 -1
  51. package/assets/esri/widgets/Directions/t9n/Directions_sl.json +1 -1
  52. package/assets/esri/widgets/Directions/t9n/Directions_sr.json +1 -1
  53. package/assets/esri/widgets/Directions/t9n/Directions_sv.json +1 -1
  54. package/assets/esri/widgets/Directions/t9n/Directions_th.json +1 -1
  55. package/assets/esri/widgets/Directions/t9n/Directions_tr.json +1 -1
  56. package/assets/esri/widgets/Directions/t9n/Directions_uk.json +1 -1
  57. package/assets/esri/widgets/Directions/t9n/Directions_vi.json +1 -1
  58. package/assets/esri/widgets/Directions/t9n/Directions_zh-CN.json +1 -1
  59. package/assets/esri/widgets/Directions/t9n/Directions_zh-HK.json +1 -1
  60. package/assets/esri/widgets/Directions/t9n/Directions_zh-TW.json +1 -1
  61. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  62. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  63. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  64. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  65. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  66. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  67. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  68. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  69. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  70. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  71. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  72. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  73. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  74. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  75. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  76. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  77. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  78. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  79. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  80. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  81. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  82. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  83. package/assets/esri/widgets/Editor/t9n/Editor_no.json +1 -1
  84. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  85. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  86. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  87. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  88. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  89. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  90. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  91. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  92. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  93. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  94. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  95. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  96. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  97. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  98. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  99. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  100. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ar.json +1 -1
  101. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bg.json +1 -1
  102. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bs.json +1 -1
  103. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ca.json +1 -1
  104. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_cs.json +1 -1
  105. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_da.json +1 -1
  106. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_de.json +1 -1
  107. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_el.json +1 -1
  108. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_es.json +1 -1
  109. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_et.json +1 -1
  110. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fi.json +1 -1
  111. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fr.json +1 -1
  112. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_he.json +1 -1
  113. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hr.json +1 -1
  114. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hu.json +1 -1
  115. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_id.json +1 -1
  116. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_it.json +1 -1
  117. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ja.json +1 -1
  118. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ko.json +1 -1
  119. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lt.json +1 -1
  120. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lv.json +1 -1
  121. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nl.json +1 -1
  122. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_no.json +1 -1
  123. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pl.json +1 -1
  124. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-BR.json +1 -1
  125. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-PT.json +1 -1
  126. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ro.json +1 -1
  127. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ru.json +1 -1
  128. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sk.json +1 -1
  129. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sl.json +1 -1
  130. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sr.json +1 -1
  131. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sv.json +1 -1
  132. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_th.json +1 -1
  133. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_tr.json +1 -1
  134. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_uk.json +1 -1
  135. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_vi.json +1 -1
  136. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-CN.json +1 -1
  137. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-HK.json +1 -1
  138. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-TW.json +1 -1
  139. package/geometry/support/typeUtils.js +1 -1
  140. package/interfaces.d.ts +154 -7
  141. package/layers/FeatureLayer.js +1 -1
  142. package/layers/support/rasterFieldUtils.js +1 -1
  143. package/package.json +1 -1
  144. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  145. package/support/revision.js +1 -1
  146. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  147. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  148. package/views/2d/layers/features/layerAdapters/geometryUtils.js +1 -1
  149. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  150. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  151. package/views/3d/environment/ChapmanAtmosphereTechnique.js +1 -1
  152. package/views/3d/environment/CloudsComposition.js +1 -1
  153. package/views/3d/environment/CloudsCompositionTechnique.js +1 -1
  154. package/views/3d/environment/CloudsRenderer.js +1 -1
  155. package/views/3d/environment/CloudsTechnique.js +1 -1
  156. package/views/3d/environment/Fog.js +1 -1
  157. package/views/3d/environment/FogTechnique.js +1 -1
  158. package/views/3d/environment/LocalAtmosphere.js +1 -1
  159. package/views/3d/environment/MarsAtmosphere.js +1 -1
  160. package/views/3d/environment/NoiseTextureAtlas.js +1 -1
  161. package/views/3d/environment/NoiseTextureAtlasTechnique.js +1 -1
  162. package/views/3d/environment/Precipitation.js +1 -1
  163. package/views/3d/environment/PrecipitationTechnique.js +1 -1
  164. package/views/3d/environment/SimpleAtmosphereTechnique.js +1 -1
  165. package/views/3d/interactive/editingTools/media/ControlPointOperations.js +1 -1
  166. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  167. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  168. package/views/3d/layers/GraphicsView3D.js +1 -1
  169. package/views/3d/layers/RouteLayerView3D.js +1 -1
  170. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  171. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  172. package/views/3d/layers/graphics/pipeline/rendering/DirectRenderer.js +1 -1
  173. package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
  174. package/views/3d/layers/graphics/pipeline/rendering/LodRenderer.js +1 -1
  175. package/views/3d/layers/graphics/pipeline/rendering/RenderCommandContext.js +1 -1
  176. package/views/3d/layers/graphics/pipeline/rendering/RenderCommandEncoder.js +1 -1
  177. package/views/3d/layers/graphics/pipeline/symbolization/TestSymbol.js +1 -1
  178. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  179. package/views/3d/layers/support/MediaLayerInteraction.js +1 -1
  180. package/views/3d/layers/support/MediaLayerInteractionOptions.js +1 -1
  181. package/views/3d/support/hitTest.js +1 -1
  182. package/views/3d/terrain/BlendLayersTechnique.js +1 -1
  183. package/views/3d/terrain/OverlayRenderer.js +1 -1
  184. package/views/3d/terrain/RasterColorizerTechnique.js +1 -1
  185. package/views/3d/terrain/TerrainRenderer.js +1 -1
  186. package/views/3d/terrain/TileCompositor.js +1 -1
  187. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  188. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  189. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  190. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  191. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
  192. package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
  193. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  194. package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
  195. package/views/3d/webgl-engine/effects/bloom/BloomBlurTechnique.js +1 -1
  196. package/views/3d/webgl-engine/effects/bloom/BloomCompositionTechnique.js +1 -1
  197. package/views/3d/webgl-engine/effects/bloom/BloomDepthAdjustTechnique.js +1 -1
  198. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  199. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  200. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorTechnique.js +1 -1
  201. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  202. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +1 -1
  203. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  204. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  205. package/views/3d/webgl-engine/effects/haze/HazeCompositingTechnique.js +1 -1
  206. package/views/3d/webgl-engine/effects/haze/HazeTechnique.js +1 -1
  207. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  208. package/views/3d/webgl-engine/effects/highlight/HighlightApplyTechnique.js +1 -1
  209. package/views/3d/webgl-engine/effects/highlight/HighlightDownsampleTechnique.js +1 -1
  210. package/views/3d/webgl-engine/effects/highlight/HighlightToSingleTechnique.js +1 -1
  211. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  212. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightTechnique.js +1 -1
  213. package/views/3d/webgl-engine/effects/highlight/SingleHighlightApplyTechnique.js +1 -1
  214. package/views/3d/webgl-engine/effects/highlight/SingleHighlightBlurTechnique.js +1 -1
  215. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  216. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
  217. package/views/3d/webgl-engine/effects/laserlines/LaserlineTechnique.js +1 -1
  218. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  219. package/views/3d/webgl-engine/effects/magnifier/MagnifierTechnique.js +1 -1
  220. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  221. package/views/3d/webgl-engine/effects/smaa/SMAABlendWeightsTechnique.js +1 -1
  222. package/views/3d/webgl-engine/effects/smaa/SMAABlurTechnique.js +1 -1
  223. package/views/3d/webgl-engine/effects/smaa/SMAAEdgeDetectTechnique.js +1 -1
  224. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  225. package/views/3d/webgl-engine/effects/ssao/SSAOBlurTechnique.js +1 -1
  226. package/views/3d/webgl-engine/effects/ssao/SSAOTechnique.js +1 -1
  227. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  228. package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
  229. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  230. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  231. package/views/3d/webgl-engine/lib/CompositingHelper.js +1 -1
  232. package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
  233. package/views/3d/webgl-engine/lib/GLMaterial.js +1 -1
  234. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  235. package/views/3d/webgl-engine/lib/IntersectorTarget.js +1 -1
  236. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  237. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  238. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  239. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  240. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  241. package/views/3d/webgl-engine/lib/TextureRepository.js +1 -1
  242. package/views/3d/webgl-engine/lib/TextureTechnique.js +1 -1
  243. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  244. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  245. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechnique.js +1 -1
  246. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  247. package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
  248. package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
  249. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  250. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  251. package/views/3d/webgl-engine/materials/DefaultBufferWriter.js +1 -1
  252. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  253. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  254. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  255. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  256. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  257. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  258. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  259. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  260. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  261. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  262. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  263. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  264. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  265. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  266. package/views/3d/webgl-engine/materials/WaterGLMaterial.js +1 -1
  267. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  268. package/views/3d/webgl-engine/shaders/AtmosphereCompositingTechnique.js +1 -1
  269. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  270. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  271. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  272. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  273. package/views/3d/webgl-engine/shaders/HUDCompositingTechnique.js +1 -1
  274. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  275. package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +1 -1
  276. package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +1 -1
  277. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  278. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  279. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  280. package/views/3d/webgl-engine/shaders/MeasurementArrowTechnique.js +1 -1
  281. package/views/3d/webgl-engine/shaders/NativeLineTechnique.js +1 -1
  282. package/views/3d/webgl-engine/shaders/OverlayCompositingTechnique.js +1 -1
  283. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  284. package/views/3d/webgl-engine/shaders/PointRendererTechnique.js +1 -1
  285. package/views/3d/webgl-engine/shaders/RealisticTreeTechnique.js +1 -1
  286. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  287. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  288. package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechnique.js +1 -1
  289. package/views/3d/webgl-engine/shaders/ShadowCastVisualizeTechnique.js +1 -1
  290. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechnique.js +1 -1
  291. package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
  292. package/views/3d/webgl-engine/shaders/ViewshedTechnique.js +1 -1
  293. package/views/draw/DrawOperation.js +1 -1
  294. package/views/draw/support/helpMessageUtils.js +1 -1
  295. package/views/draw/support/tooltipUtils.js +1 -1
  296. package/views/interactive/keybindings.js +1 -1
  297. package/views/interactive/snapping/featureSources/FeatureCollectionSnappingSource.js +1 -1
  298. package/views/interactive/snapping/featureSources/FeatureServiceSnappingSource.js +1 -1
  299. package/views/interactive/snapping/snappingUtils.js +1 -1
  300. package/views/interactive/tooltip/content/tooltipContentFactory.js +1 -1
  301. package/views/interactive/tooltip/infos/DrawCircleTooltipInfo.js +1 -1
  302. package/views/interactive/tooltip/infos/DrawMultipointTooltipInfo.js +5 -0
  303. package/views/interactive/tooltip/infos/DrawRectangleTooltipInfo.js +1 -1
  304. package/views/layers/FeatureLayerView.js +1 -1
  305. package/views/layers/MediaLayerView.js +1 -1
  306. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  307. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  308. package/widgets/BatchAttributeForm.js +1 -1
  309. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  310. package/widgets/LinkChartLayoutSwitcher/LinkChartLayoutSwitcherViewModel.d.ts +4 -0
  311. package/widgets/LinkChartLayoutSwitcher/LinkChartLayoutSwitcherViewModel.js +1 -1
  312. package/widgets/support/widget.d.ts +9 -0
  313. package/assets/esri/core/workers/chunks/0bafa546602b776caf2f.js +0 -1
  314. package/assets/esri/core/workers/chunks/258b46b58a4860942f7c.js +0 -1
  315. package/assets/esri/core/workers/chunks/69ab4b780f7223cfd7dd.js +0 -1
  316. package/assets/esri/core/workers/chunks/83edac97a52b26ead1ea.js +0 -314
  317. package/assets/esri/core/workers/chunks/9ffa27d0517bad84572e.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import{lerp as t,clamp as s,smoothstep as r}from"../../../../../core/mathUtils.js";import{disposeMaybe as i}from"../../../../../core/maybe.js";import{watch as a,syncAndInitial as o}from"../../../../../core/reactiveUtils.js";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as n}from"../../../../../core/accessorSupport/decorators/subclass.js";import{set as m}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{l as h,k as c}from"../../../../../chunks/vec32.js";import{s as p}from"../../../../../chunks/vec42.js";import{earth as u}from"../../../../../geometry/support/Ellipsoid.js";import{InternalRenderCategory as d}from"../../../webgl.js";import{ColorFormat as l}from"../../../webgl/formats.js";import{TransparentEnvironment as _}from"../TransparentEnvironment.js";import{H as f}from"../../../../../chunks/HazeCompositing.glsl.js";import{HazeCompositingTechnique as g}from"./HazeCompositingTechnique.js";import{HazePassParameters as b,HazeTechnique as w}from"./HazeTechnique.js";import{HazeTechniqueConfiguration as P}from"./HazeTechniqueConfiguration.js";import{createQuadVAO as j,Layout as v}from"../../lib/glUtil3D.js";import{applyTextureResizeModulo as A}from"../../lib/textureUtils.js";import{PrimitiveType as T}from"../../../../webgl/enums.js";let C=class extends _{constructor(e){super(e),this._compositingPassParameters=new f,this._passParameters=new b,this._hazeConfiguration=new P,this._vao=null,this.requireGeometryDepth=!0,this._oldAmount=1,this._newAmount=1,this._amount=this._newAmount;const t=e.view._stage.renderView.techniques;t.precompile(w,new P);const s=new P;s.reduced=!0,t.precompile(w,s),t.precompile(g)}initialize(){this.addHandles([a((()=>this.view.environment.atmosphereEnabled),(e=>e?this._enable():this._disable()),o),a((()=>this.view._stage?.renderer.renderContext.bind.clouds.fadeFactor??1),(e=>this._fade(e)),o),a((()=>this.view.environment.weather.type),(e=>this._newAmount="rainy"===e?0:1),o),a((()=>this.view._stage.renderer?.fullResolutionAtmosphere),(e=>this._hazeConfiguration.reduced=!e),o)])}_fade(e){e>=1?(this._amount=this._newAmount,this._oldAmount=this._newAmount):this._amount=e<=0?this._oldAmount:t(this._oldAmount,this._newAmount,e)}destroy(){this._vao=i(this._vao)}render(e){const s=e.find((({name:e})=>e===d.TRANSPARENT_ENVIRONMENT));if(!this.bindParameters.mainDepth)return s;const r=this.renderingContext;this._vao??=j(r,v.Pos2Tex);const i=this.techniques.acquire(w,this._hazeConfiguration);if(!i.compiled)return i.release(),s;const a=s.getAttachment(r.gl.DEPTH_STENCIL_ATTACHMENT);if(this._update(),!this._hazeConfiguration.reduced)return s.detachDepth(),r.bindFramebuffer(s.fbo),r.bindTechnique(i,this.bindParameters,this._passParameters),this._renderCommon(r),s.attachDepth(a),i.release(),s;const o=this.techniques.acquire(g);if(!o.compiled)return i.release(),o.release(),s;const n=r.getViewport(),m=this.camera,c=h(m.eye)-u.radius;let p;const _=u.atmosphereHeight;if(c<_){const e=Math.min(1,Math.max(0,c/_));p=t(.4,.5,e)}else{const e=Math.min(1,Math.max(0,(c-_)/(15*_)));p=t(.5,1,e)}const f=A(Math.round(p*m.fullViewport[2])),b=A(Math.round(p*m.fullViewport[3]));r.setViewport(0,0,f,b);const P=this.fboCache.acquire(f,b,"haze",l.RGBA);return r.bindFramebuffer(P.fbo),r.clearFramebuffer([0,0,0,1],!0,!0),r.bindTechnique(i,this.bindParameters,this._passParameters),this._renderCommon(r),r.setViewport(n.x,n.y,n.width,n.height),this._compositingPassParameters.color=P.getTexture(),s.detachDepth(),r.bindFramebuffer(s.fbo),r.bindTechnique(o,this.bindParameters,this._compositingPassParameters),r.screen.draw(),s.attachDepth(a),o.release(),i.release(),P.release(),s}_renderCommon(e){null!=this._vao&&(e.bindVAO(this._vao),e.drawArrays(T.TRIANGLE_STRIP,0,4))}_update(){const e=this.bindParameters.camera,i=c(e.eye),a=Math.sqrt(i),o=i-this._passParameters.radii[1]*this._passParameters.radii[1],n=s((a-this._passParameters.radii[0])/u.atmosphereHeight,0,1);p(this._passParameters.heightParameters,a,i,o,n);const h=this.view.basemapTerrain.getLowerBoundRadius();m(this._passParameters.radii,h,h+u.atmosphereHeight),this._passParameters.hazeStrength=t(t(.6,1,r(9500,10500,a-u.radius)),1,this._amount)}};C=e([n("esri.views.3d.webgl-engine.effects.haze.Haze")],C);export{C as Haze};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import{lerp as t,clamp as s,smoothstep as r}from"../../../../../core/mathUtils.js";import{disposeMaybe as i}from"../../../../../core/maybe.js";import{watch as o,syncAndInitial as a}from"../../../../../core/reactiveUtils.js";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as n}from"../../../../../core/accessorSupport/decorators/subclass.js";import{set as m}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{l as h,k as c}from"../../../../../chunks/vec32.js";import{s as p}from"../../../../../chunks/vec42.js";import{earth as u}from"../../../../../geometry/support/Ellipsoid.js";import{InternalRenderCategory as d}from"../../../webgl.js";import{ColorFormat as l}from"../../../webgl/formats.js";import{TransparentEnvironment as _}from"../TransparentEnvironment.js";import{H as f}from"../../../../../chunks/HazeCompositing.glsl.js";import{HazeCompositingTechnique as g}from"./HazeCompositingTechnique.js";import{HazePassParameters as b,HazeTechnique as w}from"./HazeTechnique.js";import{HazeTechniqueConfiguration as P}from"./HazeTechniqueConfiguration.js";import{createQuadVAO as j,Layout as v}from"../../lib/glUtil3D.js";import{applyTextureResizeModulo as A}from"../../lib/textureUtils.js";import{PrimitiveType as T}from"../../../../webgl/enums.js";let C=class extends _{constructor(e){super(e),this._compositingPassParameters=new f,this._passParameters=new b,this._hazeConfiguration=new P,this._vao=null,this.requireGeometryDepth=!0,this._oldAmount=1,this._newAmount=1,this._amount=this._newAmount;const t=e.view._stage.renderView.techniques;t.precompile(w,new P);const s=new P;s.reduced=!0,t.precompile(w,s),t.precompile(g)}initialize(){this.addHandles([o((()=>this.view.environment.atmosphereEnabled),(e=>e?this._enable():this._disable()),a),o((()=>this.view._stage?.renderer.renderContext.bind.clouds.fadeFactor??1),(e=>this._fade(e)),a),o((()=>this.view.environment.weather.type),(e=>this._newAmount="rainy"===e?0:1),a),o((()=>this.view._stage.renderer?.fullResolutionAtmosphere),(e=>this._hazeConfiguration.reduced=!e),a)])}_fade(e){e>=1?(this._amount=this._newAmount,this._oldAmount=this._newAmount):this._amount=e<=0?this._oldAmount:t(this._oldAmount,this._newAmount,e)}destroy(){this._vao=i(this._vao)}render(e){const s=e.find((({name:e})=>e===d.TRANSPARENT_ENVIRONMENT));if(!this.bindParameters.mainDepth)return s;const r=this.renderingContext;this._vao??=j(r,v.Pos2Tex);const i=this.techniques.get(w,this._hazeConfiguration);if(!i.compiled)return s;const o=s.getAttachment(r.gl.DEPTH_STENCIL_ATTACHMENT);if(this._update(),!this._hazeConfiguration.reduced)return s.detachDepth(),r.bindFramebuffer(s.fbo),r.bindTechnique(i,this.bindParameters,this._passParameters),this._renderCommon(r),s.attachDepth(o),s;const a=this.techniques.get(g);if(!a.compiled)return s;const n=r.getViewport(),m=this.camera,c=h(m.eye)-u.radius;let p;const _=u.atmosphereHeight;if(c<_){const e=Math.min(1,Math.max(0,c/_));p=t(.4,.5,e)}else{const e=Math.min(1,Math.max(0,(c-_)/(15*_)));p=t(.5,1,e)}const f=A(Math.round(p*m.fullViewport[2])),b=A(Math.round(p*m.fullViewport[3]));r.setViewport(0,0,f,b);const P=this.fboCache.acquire(f,b,"haze",l.RGBA);return r.bindFramebuffer(P.fbo),r.clearFramebuffer([0,0,0,1],!0,!0),r.bindTechnique(i,this.bindParameters,this._passParameters),this._renderCommon(r),r.setViewport(n.x,n.y,n.width,n.height),this._compositingPassParameters.color=P.getTexture(),s.detachDepth(),r.bindFramebuffer(s.fbo),r.bindTechnique(a,this.bindParameters,this._compositingPassParameters),r.screen.draw(),s.attachDepth(o),P.release(),s}_renderCommon(e){null!=this._vao&&(e.bindVAO(this._vao),e.drawArrays(T.TRIANGLE_STRIP,0,4))}_update(){const e=this.bindParameters.camera,i=c(e.eye),o=Math.sqrt(i),a=i-this._passParameters.radii[1]*this._passParameters.radii[1],n=s((o-this._passParameters.radii[0])/u.atmosphereHeight,0,1);p(this._passParameters.heightParameters,o,i,a,n);const h=this.view.basemapTerrain.getLowerBoundRadius();m(this._passParameters.radii,h,h+u.atmosphereHeight),this._passParameters.hazeStrength=t(t(.6,1,r(9500,10500,o-u.radius)),1,this._amount)}};C=e([n("esri.views.3d.webgl-engine.effects.haze.Haze")],C);export{C as Haze};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/HazeCompositing.glsl.js";import{BlendFactor as i,CompareFunction as s}from"../../../../webgl/enums.js";import{makePipelineState as t,separateBlendingParams as n,defaultColorWrite as l}from"../../../../webgl/renderState.js";class m extends r{constructor(r,i,s){super(r,i,new e(o,(()=>import("./HazeCompositing.glsl.js"))),s)}initializePipeline(){return t({blending:n(i.ONE,i.ZERO,i.ONE_MINUS_SRC_COLOR,i.ONE),depthTest:{func:s.ALWAYS},colorWrite:l})}}export{m as HazeCompositingTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/HazeCompositing.glsl.js";import{BlendFactor as i,CompareFunction as s}from"../../../../webgl/enums.js";import{makePipelineState as t,separateBlendingParams as n,defaultColorWrite as l}from"../../../../webgl/renderState.js";class m extends r{constructor(r,i){super(r,i,new e(o,(()=>import("./HazeCompositing.glsl.js"))))}initializePipeline(){return t({blending:n(i.ONE,i.ZERO,i.ONE_MINUS_SRC_COLOR,i.ONE),depthTest:{func:s.ALWAYS},colorWrite:l})}}export{m as HazeCompositingTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ChapmanApproximationParameters as e}from"../../../environment/ChapmanApproximation.glsl.js";import{ReloadableShaderModule as r}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{H as s}from"../../../../../chunks/Haze.glsl.js";import{CompareFunction as t,BlendFactor as n}from"../../../../webgl/enums.js";import{makePipelineState as i,keepSourceValues as l,defaultColorWrite as a,separateBlendingParams as m}from"../../../../webgl/renderState.js";class c extends e{constructor(){super(...arguments),this.hazeStrength=1}}class p extends o{constructor(e,o,t){super(e,o,new r(s,(()=>import("./Haze.glsl.js"))),t)}initializePipeline(e){return e.reduced?i({blending:l,depthTest:{func:t.ALWAYS},colorWrite:a}):i({blending:m(n.ONE,n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ONE),colorWrite:a})}}export{c as HazePassParameters,p as HazeTechnique};
5
+ import{ChapmanApproximationParameters as e}from"../../../environment/ChapmanApproximation.glsl.js";import{ReloadableShaderModule as r}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{H as s}from"../../../../../chunks/Haze.glsl.js";import{CompareFunction as t,BlendFactor as n}from"../../../../webgl/enums.js";import{makePipelineState as i,keepSourceValues as l,defaultColorWrite as a,separateBlendingParams as m}from"../../../../webgl/renderState.js";class c extends e{constructor(){super(...arguments),this.hazeStrength=1}}class p extends o{constructor(e,o){super(e,o,new r(s,(()=>import("./Haze.glsl.js"))))}initializePipeline(e){return e.reduced?i({blending:l,depthTest:{func:t.ALWAYS},colorWrite:a}):i({blending:m(n.ONE,n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ONE),colorWrite:a})}}export{c as HazePassParameters,p as HazeTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import"../../../../../core/has.js";import{releaseMaybe as t,disposeMaybe as i}from"../../../../../core/maybe.js";import{watch as r,initial as s}from"../../../../../core/reactiveUtils.js";import{property as o}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as l}from"../../../../../core/accessorSupport/decorators/subclass.js";import{set as h}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{ZEROS as n}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{InternalRenderCategory as a}from"../../../webgl.js";import{ColorFormat as c}from"../../../webgl/formats.js";import g from"../../../webgl/RenderNode.js";import{HighlightApplyTechnique as u}from"./HighlightApplyTechnique.js";import{HighlightDownsampleTechnique as m}from"./HighlightDownsampleTechnique.js";import{HighlightPassParameters as p}from"./HighlightPassParameters.js";import{HighlightToSingleTechnique as d}from"./HighlightToSingleTechnique.js";import{SingleHighlightApplyTechnique as f}from"./SingleHighlightApplyTechnique.js";import{SingleHighlightBlurTechnique as b}from"./SingleHighlightBlurTechnique.js";import{RenderRequestType as T}from"../../lib/basicInterfaces.js";import{Default3D as w}from"../../lib/DefaultVertexAttributeLocations.js";import{NoVertex as x}from"../../lib/DefaultVertexBufferLayouts.js";import{VertexArrayObject as _}from"../../lib/VertexArrayObject.js";import{H as C,g as v}from"../../../../../chunks/HighlightDownsample.glsl.js";import{S as j}from"../../../../../chunks/SingleHighlightBlur.glsl.js";import{BufferObject as q}from"../../../../webgl/BufferObject.js";import{PixelFormat as H,TextureSamplingMode as P,FramebufferBit as R,Usage as D,TextureType as O,PrimitiveType as S,DataType as A}from"../../../../webgl/enums.js";import{Texture as E}from"../../../../webgl/Texture.js";import{TextureDescriptor as y}from"../../../../webgl/TextureDescriptor.js";let I=class extends g{constructor(){super(...arguments),this.produces=a.HIGHLIGHTS,this.consumes={required:[a.HIGHLIGHTS,"highlights"]},this._useMultipleHighlights=!1,this._downsampleDrawParameters=new C,this._passParameters=new p,this._singleHighlightBlurDrawParameters=new j,this._grid=new M}initialize(){this.addHandles([r((()=>this._updateOptionsTexture()),(()=>{}),s)])}destroy(){this._grid.coverage=t(this._grid.coverage),this._grid.vao=i(this._grid.vao),this._passParameters.highlightOptionsTexture=t(this._passParameters.highlightOptionsTexture)}_updateOptionsTexture(){if(null==this._passParameters.highlightOptionsTexture){const e=new y(16,2);e.internalFormat=H.RGBA,e.samplingMode=P.NEAREST,this._passParameters.highlightOptionsTexture=new E(this.renderingContext,e,null)}this._passParameters.highlightOptionsTexture.setData(U(this.view.state.highlights)),this.requestRender(T.UPDATE)}precompile(){this.techniques.precompile(m),this._useMultipleHighlights?this.techniques.precompile(u):(this.techniques.precompile(d),this.techniques.precompile(b),this.techniques.precompile(f))}render(e){const t=e.find((({name:e})=>e===a.HIGHLIGHTS)),{techniques:i,bindParameters:r,_passParameters:s,renderingContext:o}=this;if(!r.decorations)return t;const l=i.acquire(m);if(!l.compiled)return l.release(),this.requestRender(T.UPDATE),t;const h=e.find((({name:e})=>"highlights"===e)).getTexture(),n=()=>{this._gridUpdateResources(h);const e=this._gridComputeCoverage(l,h,r);l.release();const{horizontalCellCount:t,verticalCellCount:i}=e;return s.horizontalCellCount=t,s.verticalCellCount=i,s.coverageTexture=e.coverage?.getTexture(),e},c=e=>{const t=e.verticalCellCount*e.horizontalCellCount;o.bindVAO(e.vao),o.drawElementsInstanced(S.TRIANGLES,6,A.UNSIGNED_BYTE,0,t)},{camera:g}=r,u=()=>{o.bindFramebuffer(t.fbo),o.setViewport4fv(g.fullViewport)};return this._useMultipleHighlights?this._renderMultiple(h,n,c,u):this._renderSingle(h,n,c,u),s.highlightTexture=null,s.coverageTexture=null,t}_renderMultiple(e,t,i,r){const{techniques:s,bindParameters:o,_passParameters:l,renderingContext:h}=this,n=s.acquire(u);if(!n.compiled)return n.release(),void this.requestRender(T.UPDATE);const a=t();l.highlightTexture=e,l.pixelRatio=o.camera.pixelRatio,h.bindTechnique(n,o,l),r(),i(a),n.release()}_renderSingle(e,t,i,r){const{fboCache:s,techniques:o,bindParameters:l,_passParameters:n,renderingContext:a}=this,g=o.acquire(d),u=o.acquire(b),m=o.acquire(f);if(!m.compiled||!u.compiled||!g.compiled)return m.release(),u.release(),g.release(),void this.requestRender(T.UPDATE);const p=t(),{width:w,height:x}=e.descriptor;n.highlightTexture=e;const{camera:_}=l,{fullWidth:C,fullHeight:v,pixelRatio:j}=_,q=Math.ceil(C/j),H=Math.ceil(v/j),{_singleHighlightBlurDrawParameters:P}=this,D=this.view._stage.renderView.renderer,{highlights:O}=l;for(let d=0;d<O.length;++d){const{name:e}=O[d];if(!D.hasHighlightOptions(e))continue;n.highlightLevel=d,a.setClearColor(0,0,0,0);const t=s.acquire(w,x,"single highlight",c.RG);a.bindFramebuffer(t.fbo),a.setViewport(0,0,w,x),a.clear(R.COLOR),a.bindTechnique(g,l,n),i(p),P.blurInput=t.getTexture(),h(P.blurSize,1/q,0);const o=s.acquire(q,H,"single highlight blur h",c.RG);a.unbindTexture(o.fbo?.colorTexture),a.bindFramebuffer(o.fbo),a.setViewport(0,0,q,H),a.clear(R.COLOR),a.bindTechnique(u,l,n,P),i(p),t.release(),h(P.blurSize,0,1/H),n.singleHighlightBlurTexture=o.getTexture(),r(),a.bindTechnique(m,l,n,P),i(p),o.release()}g.release(),u.release(),m.release()}_gridUpdateResources(e){const t=this._grid,{width:i,height:r}=e.descriptor;if(t.horizontalCellCount=Math.ceil(i/v),t.verticalCellCount=Math.ceil(r/v),t.vao)return;const s=this.renderingContext,o=q.createIndex(s,D.STATIC_DRAW,F);t.vao=new _(s,w,new Map([["geometry",x]]),new Map([["geometry",q.createVertex(s,D.STATIC_DRAW)]]),o)}_gridComputeCoverage(e,t,i){const r=this.renderingContext,s=this._grid,o=t.descriptor,l=Math.ceil(o.width/v),h=Math.ceil(o.height/v);this._downsampleDrawParameters.input=t,s.coverage?.release();const n=this.fboCache.acquire(l,h,"highlight coverage",c.RG);return s.coverage=n,r.bindFramebuffer(n.fbo),r.bindTechnique(e,i,this._passParameters,this._downsampleDrawParameters),r.setViewport(0,0,l,h),r.screen.draw(),s}get test(){}};e([o()],I.prototype,"produces",void 0),e([o()],I.prototype,"consumes",void 0),I=e([l("esri.views.3d.webgl-engine.effects.highlight.Highlight")],I);class M{constructor(){this.coverage=null,this.vao=null,this.verticalCellCount=0,this.horizontalCellCount=0,this.viewportWidth=0,this.viewportHeight=0}}function U(e){const t=new Uint8Array(128);let i=0;for(const r of e){const e=4*i,s=4*i+64;++i;const{color:o}=r,l=r.haloColor??o;t[e+0]=o.r,t[e+1]=o.g,t[e+2]=o.b,t[e+3]=r.fillOpacity*o.a*255,t[s+0]=l.r,t[s+1]=l.g,t[s+2]=l.b,t[s+3]=r.haloOpacity*l.a*255}return t}let G=0;function L(e){let t=0;for(const r of e){const{name:e}=r;t+=e.length;const{color:i,fillOpacity:s,haloColor:o,haloOpacity:l}=r;t+=i.r+i.g+i.b+i.a+s,t+=o?o.r+o.g+o.b+o.a+l:0}const i=e.at(0);if(i){const{shadowOpacity:e,shadowDifference:r,shadowColor:s}=i;t+=e+r+s.r+s.g+s.b+s.a}return G+++(t>=0?0:1)}const F=new Uint8Array([0,1,2,2,1,3]);function V(e,t,i,r,s,o=0){const l=r.highlights,a=l.length>1?t.acquire(i.width,i.height,"highlight mix",c.RG):null;if(a){const t=e.getBoundFramebufferObject();e.bindFramebuffer(a.fbo),e.clearFramebuffer(n),e.bindFramebuffer(t)}const g=a?.getTexture();r.highlightMixTexture=g,h(r.highlightMixOrigin,o,0),l.forEach(((t,l)=>{l>0&&(e.bindTexture(g,E.TEXTURE_UNIT_FOR_UPDATES),e.gl.copyTexSubImage2D(O.TEXTURE_2D,0,0,0,o,0,i.width,i.height),e.bindTexture(null,E.TEXTURE_UNIT_FOR_UPDATES)),e.clear(R.DEPTH),r.highlightLevel=l,s()})),r.highlightLevel=null,r.highlightMixTexture=null,a?.release()}export{I as Highlight,V as renderHighlightBuffer,L as trackHighlightOptions};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import"../../../../../core/has.js";import{releaseMaybe as t,disposeMaybe as i}from"../../../../../core/maybe.js";import{watch as r,initial as s}from"../../../../../core/reactiveUtils.js";import{property as o}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as h}from"../../../../../core/accessorSupport/decorators/subclass.js";import{set as l}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{ZEROS as n}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{InternalRenderCategory as a}from"../../../webgl.js";import{ColorFormat as g}from"../../../webgl/formats.js";import c from"../../../webgl/RenderNode.js";import{HighlightApplyTechnique as u}from"./HighlightApplyTechnique.js";import{HighlightDownsampleTechnique as m}from"./HighlightDownsampleTechnique.js";import{HighlightPassParameters as p}from"./HighlightPassParameters.js";import{HighlightToSingleTechnique as d}from"./HighlightToSingleTechnique.js";import{SingleHighlightApplyTechnique as f}from"./SingleHighlightApplyTechnique.js";import{SingleHighlightBlurTechnique as b}from"./SingleHighlightBlurTechnique.js";import{RenderRequestType as T}from"../../lib/basicInterfaces.js";import{Default3D as w}from"../../lib/DefaultVertexAttributeLocations.js";import{NoVertex as x}from"../../lib/DefaultVertexBufferLayouts.js";import{VertexArrayObject as _}from"../../lib/VertexArrayObject.js";import{H as C,g as v}from"../../../../../chunks/HighlightDownsample.glsl.js";import{S as j}from"../../../../../chunks/SingleHighlightBlur.glsl.js";import{BufferObject as H}from"../../../../webgl/BufferObject.js";import{PixelFormat as q,TextureSamplingMode as P,FramebufferBit as R,Usage as D,TextureType as O,PrimitiveType as S,DataType as A}from"../../../../webgl/enums.js";import{Texture as E}from"../../../../webgl/Texture.js";import{TextureDescriptor as y}from"../../../../webgl/TextureDescriptor.js";let I=class extends c{constructor(){super(...arguments),this.produces=a.HIGHLIGHTS,this.consumes={required:[a.HIGHLIGHTS,"highlights"]},this._useMultipleHighlights=!1,this._downsampleDrawParameters=new C,this._passParameters=new p,this._singleHighlightBlurDrawParameters=new j,this._grid=new M}initialize(){this.addHandles([r((()=>this._updateOptionsTexture()),(()=>{}),s)])}destroy(){this._grid.coverage=t(this._grid.coverage),this._grid.vao=i(this._grid.vao),this._passParameters.highlightOptionsTexture=t(this._passParameters.highlightOptionsTexture)}_updateOptionsTexture(){if(null==this._passParameters.highlightOptionsTexture){const e=new y(16,2);e.internalFormat=q.RGBA,e.samplingMode=P.NEAREST,this._passParameters.highlightOptionsTexture=new E(this.renderingContext,e,null)}this._passParameters.highlightOptionsTexture.setData(U(this.view.state.highlights)),this.requestRender(T.UPDATE)}precompile(){this.techniques.precompile(m),this._useMultipleHighlights?this.techniques.precompile(u):(this.techniques.precompile(d),this.techniques.precompile(b),this.techniques.precompile(f))}render(e){const t=e.find((({name:e})=>e===a.HIGHLIGHTS)),{techniques:i,bindParameters:r,_passParameters:s,renderingContext:o}=this;if(!r.decorations)return t;const h=i.get(m);if(!h.compiled)return this.requestRender(T.UPDATE),t;const l=e.find((({name:e})=>"highlights"===e)).getTexture(),n=()=>{this._gridUpdateResources(l);const e=this._gridComputeCoverage(h,l,r),{horizontalCellCount:t,verticalCellCount:i}=e;return s.horizontalCellCount=t,s.verticalCellCount=i,s.coverageTexture=e.coverage?.getTexture(),e},g=e=>{const t=e.verticalCellCount*e.horizontalCellCount;o.bindVAO(e.vao),o.drawElementsInstanced(S.TRIANGLES,6,A.UNSIGNED_BYTE,0,t)},{camera:c}=r,u=()=>{o.bindFramebuffer(t.fbo),o.setViewport4fv(c.fullViewport)};return this._useMultipleHighlights?this._renderMultiple(l,n,g,u):this._renderSingle(l,n,g,u),s.highlightTexture=null,s.coverageTexture=null,t}_renderMultiple(e,t,i,r){const{techniques:s,bindParameters:o,_passParameters:h,renderingContext:l}=this,n=s.get(u);if(!n.compiled)return void this.requestRender(T.UPDATE);const a=t();h.highlightTexture=e,h.pixelRatio=o.camera.pixelRatio,l.bindTechnique(n,o,h),r(),i(a)}_renderSingle(e,t,i,r){const{fboCache:s,techniques:o,bindParameters:h,_passParameters:n,renderingContext:a}=this,c=o.get(d),u=o.get(b),m=o.get(f);if(!m.compiled||!u.compiled||!c.compiled)return void this.requestRender(T.UPDATE);const p=t(),{width:w,height:x}=e.descriptor;n.highlightTexture=e;const{camera:_}=h,{fullWidth:C,fullHeight:v,pixelRatio:j}=_,H=Math.ceil(C/j),q=Math.ceil(v/j),{_singleHighlightBlurDrawParameters:P}=this,D=this.view._stage.renderView.renderer,{highlights:O}=h;for(let d=0;d<O.length;++d){const{name:e}=O[d];if(!D.hasHighlightOptions(e))continue;n.highlightLevel=d,a.setClearColor(0,0,0,0);const t=s.acquire(w,x,"single highlight",g.RG);a.bindFramebuffer(t.fbo),a.setViewport(0,0,w,x),a.clear(R.COLOR),a.bindTechnique(c,h,n),i(p),P.blurInput=t.getTexture(),l(P.blurSize,1/H,0);const o=s.acquire(H,q,"single highlight blur h",g.RG);a.unbindTexture(o.fbo?.colorTexture),a.bindFramebuffer(o.fbo),a.setViewport(0,0,H,q),a.clear(R.COLOR),a.bindTechnique(u,h,n,P),i(p),t.release(),l(P.blurSize,0,1/q),n.singleHighlightBlurTexture=o.getTexture(),r(),a.bindTechnique(m,h,n,P),i(p),o.release()}}_gridUpdateResources(e){const t=this._grid,{width:i,height:r}=e.descriptor;if(t.horizontalCellCount=Math.ceil(i/v),t.verticalCellCount=Math.ceil(r/v),t.vao)return;const s=this.renderingContext,o=H.createIndex(s,D.STATIC_DRAW,F);t.vao=new _(s,w,new Map([["geometry",x]]),new Map([["geometry",H.createVertex(s,D.STATIC_DRAW)]]),o)}_gridComputeCoverage(e,t,i){const r=this.renderingContext,s=this._grid,o=t.descriptor,h=Math.ceil(o.width/v),l=Math.ceil(o.height/v);this._downsampleDrawParameters.input=t,s.coverage?.release();const n=this.fboCache.acquire(h,l,"highlight coverage",g.RG);return s.coverage=n,r.bindFramebuffer(n.fbo),r.bindTechnique(e,i,this._passParameters,this._downsampleDrawParameters),r.setViewport(0,0,h,l),r.screen.draw(),s}get test(){}};e([o()],I.prototype,"produces",void 0),e([o()],I.prototype,"consumes",void 0),I=e([h("esri.views.3d.webgl-engine.effects.highlight.Highlight")],I);class M{constructor(){this.coverage=null,this.vao=null,this.verticalCellCount=0,this.horizontalCellCount=0,this.viewportWidth=0,this.viewportHeight=0}}function U(e){const t=new Uint8Array(128);let i=0;for(const r of e){const e=4*i,s=4*i+64;++i;const{color:o}=r,h=r.haloColor??o;t[e+0]=o.r,t[e+1]=o.g,t[e+2]=o.b,t[e+3]=r.fillOpacity*o.a*255,t[s+0]=h.r,t[s+1]=h.g,t[s+2]=h.b,t[s+3]=r.haloOpacity*h.a*255}return t}let G=0;function L(e){let t=0;for(const r of e){const{name:e}=r;t+=e.length;const{color:i,fillOpacity:s,haloColor:o,haloOpacity:h}=r;t+=i.r+i.g+i.b+i.a+s,t+=o?o.r+o.g+o.b+o.a+h:0}const i=e.at(0);if(i){const{shadowOpacity:e,shadowDifference:r,shadowColor:s}=i;t+=e+r+s.r+s.g+s.b+s.a}return G+++(t>=0?0:1)}const F=new Uint8Array([0,1,2,2,1,3]);function V(e,t,i,r,s,o=0){const h=r.highlights,a=h.length>1?t.acquire(i.width,i.height,"highlight mix",g.RG):null;if(a){const t=e.getBoundFramebufferObject();e.bindFramebuffer(a.fbo),e.clearFramebuffer(n),e.bindFramebuffer(t)}const c=a?.getTexture();r.highlightMixTexture=c,l(r.highlightMixOrigin,o,0),h.forEach(((t,h)=>{h>0&&(e.bindTexture(c,E.TEXTURE_UNIT_FOR_UPDATES),e.gl.copyTexSubImage2D(O.TEXTURE_2D,0,0,0,o,0,i.width,i.height),e.bindTexture(null,E.TEXTURE_UNIT_FOR_UPDATES)),e.clear(R.DEPTH),r.highlightLevel=h,s()})),r.highlightLevel=null,r.highlightMixTexture=null,a?.release()}export{I as Highlight,V as renderHighlightBuffer,L as trackHighlightOptions};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{H as i}from"../../../../../chunks/HighlightApply.glsl.js";import{makePipelineState as o,premultipliedAlphaToPremultipliedAlpha as s,defaultColorWrite as l}from"../../../../webgl/renderState.js";class t extends r{constructor(r,o,s){super(r,o,new e(i,(()=>import("../../shaders/HighlightApply.glsl.js"))),s)}initializePipeline(){return o({blending:s,colorWrite:l})}}export{t as HighlightApplyTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{H as i}from"../../../../../chunks/HighlightApply.glsl.js";import{makePipelineState as o,premultipliedAlphaToPremultipliedAlpha as s,defaultColorWrite as l}from"../../../../webgl/renderState.js";class t extends r{constructor(r,o){super(r,o,new e(i,(()=>import("../../shaders/HighlightApply.glsl.js"))))}initializePipeline(){return o({blending:s,colorWrite:l})}}export{t as HighlightApplyTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/HighlightDownsample.glsl.js";import{makePipelineState as s,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,s,i){super(r,s,new e(o,(()=>import("../../shaders/HighlightDownsample.glsl.js"))),i)}initializePipeline(){return s({colorWrite:i})}}export{l as HighlightDownsampleTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/HighlightDownsample.glsl.js";import{makePipelineState as s,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,s){super(r,s,new e(o,(()=>import("../../shaders/HighlightDownsample.glsl.js"))))}initializePipeline(){return s({colorWrite:i})}}export{l as HighlightDownsampleTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{H as i}from"../../../../../chunks/HighlightToSingle.glsl.js";import{makePipelineState as o,defaultColorWrite as s}from"../../../../webgl/renderState.js";class l extends r{constructor(r,o,s){super(r,o,new e(i,(()=>import("../../shaders/HighlightToSingle.glsl.js"))),s)}initializePipeline(){return o({colorWrite:s})}}export{l as HighlightToSingleTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{H as i}from"../../../../../chunks/HighlightToSingle.glsl.js";import{makePipelineState as o,defaultColorWrite as s}from"../../../../webgl/renderState.js";class l extends r{constructor(r,o){super(r,o,new e(i,(()=>import("../../shaders/HighlightToSingle.glsl.js"))))}initializePipeline(){return o({colorWrite:s})}}export{l as HighlightToSingleTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import{unitRGBAFromColor as s}from"../../../../../core/colorUtils.js";import{smoothstep as i,clamp as t}from"../../../../../core/mathUtils.js";import{watch as r,syncAndInitial as a}from"../../../../../core/reactiveUtils.js";import{property as o}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as h}from"../../../../../core/accessorSupport/decorators/subclass.js";import{n as c,i as p,f as n}from"../../../../../chunks/vec32.js";import{create as m}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ViewingMode as d}from"../../../../ViewingMode.js";import{RenderCategory as l}from"../../../webgl.js";import u from"../../../webgl/RenderNode.js";import{ShadowHighlightPassParameters as g,ShadowHighlightTechnique as f}from"./ShadowHighlightTechnique.js";import{RenderRequestType as w}from"../../lib/basicInterfaces.js";import{defaultShadowOpacity as _,defaultShadowDifference as O,defaultShadowColor as y}from"../../../../support/HighlightDefaults.js";const P=1/512,b=4e4,j=5e4;let v=class extends u{constructor(e){super(e),this.produces=l.COMPOSITE,this.consumes={required:[l.COMPOSITE,"highlights"]},this._passParameters=new g,this._maxOpacity=1,this._shadowDifference=.2}initialize(){this.addHandles([r((()=>this.view.highlightOptions.shadowOpacity),(e=>{this._passParameters.shadowOpacity=e??_,this._updateOccludedShadowOpacity(),this._ensureMaxOpacity()}),a),r((()=>this.view.highlightOptions.shadowDifference),(e=>{this._shadowDifference=e??O,this._updateOccludedShadowOpacity(),this._ensureMaxOpacity()}),a),r((()=>this.view.highlightOptions.shadowColor),(e=>{this._passParameters.shadowColor=s(e??y),this._ensureMaxOpacity()}),a)])}_updateOccludedShadowOpacity(){this._passParameters.occludedShadowOpacity=this._passParameters.shadowOpacity*(1-this._shadowDifference)}_ensureMaxOpacity(){const e=Math.max(this._passParameters.shadowOpacity,this._passParameters.occludedShadowOpacity);this._maxOpacity=e*this._passParameters.shadowColor[3],this.requestRender(w.UPDATE)}precompile(){this.techniques.precompile(f)}render(e){const s=e.find((({name:e})=>e===l.COMPOSITE)),i=this.bindParameters;if(!i.shadowHighlightsVisible||!i.depth||!this._ensureIfVisible(i.camera,i.lighting.mainLight.direction))return s;const t=this.techniques.acquire(f);if(t.compiled){this._passParameters.highlight=e.find((({name:e})=>"highlights"===e))?.getTexture(),this._passParameters.origin=i.camera.center;const r=this.renderingContext;r.bindFramebuffer(s.fbo),r.bindTechnique(t,i,this._passParameters),r.screen.draw()}else this.requestRender(w.UPDATE);return t.release(),s}_ensureIfVisible(e,s){this._passParameters.opacityElevation=1-i(b,j,e.relativeElevation);const r=this.viewingMode===d.Global?c(x,e.center):p(x,0,0,1),a=n(r,s);return this._passParameters.dayNightTerminator=i(0,1,t(30*a,0,1)),this._maxOpacity*this._passParameters.opacityElevation*this._passParameters.dayNightTerminator>=P}};e([o()],v.prototype,"produces",void 0),e([o()],v.prototype,"consumes",void 0),e([o({constructOnly:!0})],v.prototype,"viewingMode",void 0),v=e([h("esri.views.3d.webgl-engine.effects.highlight.ShadowHighlight")],v);const x=m();export{v as ShadowHighlight};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import{unitRGBAFromColor as s}from"../../../../../core/colorUtils.js";import{smoothstep as t,clamp as i}from"../../../../../core/mathUtils.js";import{watch as r,syncAndInitial as a}from"../../../../../core/reactiveUtils.js";import{property as o}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as h}from"../../../../../core/accessorSupport/decorators/subclass.js";import{n as c,i as p,f as n}from"../../../../../chunks/vec32.js";import{create as m}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ViewingMode as d}from"../../../../ViewingMode.js";import{RenderCategory as l}from"../../../webgl.js";import g from"../../../webgl/RenderNode.js";import{ShadowHighlightPassParameters as u,ShadowHighlightTechnique as f}from"./ShadowHighlightTechnique.js";import{RenderRequestType as w}from"../../lib/basicInterfaces.js";import{defaultShadowOpacity as _,defaultShadowDifference as O,defaultShadowColor as y}from"../../../../support/HighlightDefaults.js";const P=1/512,b=4e4,j=5e4;let v=class extends g{constructor(e){super(e),this.produces=l.COMPOSITE,this.consumes={required:[l.COMPOSITE,"highlights"]},this._passParameters=new u,this._maxOpacity=1,this._shadowDifference=.2}initialize(){this.addHandles([r((()=>this.view.highlightOptions.shadowOpacity),(e=>{this._passParameters.shadowOpacity=e??_,this._updateOccludedShadowOpacity(),this._ensureMaxOpacity()}),a),r((()=>this.view.highlightOptions.shadowDifference),(e=>{this._shadowDifference=e??O,this._updateOccludedShadowOpacity(),this._ensureMaxOpacity()}),a),r((()=>this.view.highlightOptions.shadowColor),(e=>{this._passParameters.shadowColor=s(e??y),this._ensureMaxOpacity()}),a)])}_updateOccludedShadowOpacity(){this._passParameters.occludedShadowOpacity=this._passParameters.shadowOpacity*(1-this._shadowDifference)}_ensureMaxOpacity(){const e=Math.max(this._passParameters.shadowOpacity,this._passParameters.occludedShadowOpacity);this._maxOpacity=e*this._passParameters.shadowColor[3],this.requestRender(w.UPDATE)}precompile(){this.techniques.precompile(f)}render(e){const s=e.find((({name:e})=>e===l.COMPOSITE)),t=this.bindParameters;if(!t.shadowHighlightsVisible||!t.depth||!this._ensureIfVisible(t.camera,t.lighting.mainLight.direction))return s;const i=this.techniques.get(f);if(i.compiled){this._passParameters.highlight=e.find((({name:e})=>"highlights"===e))?.getTexture(),this._passParameters.origin=t.camera.center;const r=this.renderingContext;r.bindFramebuffer(s.fbo),r.bindTechnique(i,t,this._passParameters),r.screen.draw()}else this.requestRender(w.UPDATE);return s}_ensureIfVisible(e,s){this._passParameters.opacityElevation=1-t(b,j,e.relativeElevation);const r=this.viewingMode===d.Global?c(x,e.center):p(x,0,0,1),a=n(r,s);return this._passParameters.dayNightTerminator=t(0,1,i(30*a,0,1)),this._maxOpacity*this._passParameters.opacityElevation*this._passParameters.dayNightTerminator>=P}};e([o()],v.prototype,"produces",void 0),e([o()],v.prototype,"consumes",void 0),e([o({constructOnly:!0})],v.prototype,"viewingMode",void 0),v=e([h("esri.views.3d.webgl-engine.effects.highlight.ShadowHighlight")],v);const x=m();export{v as ShadowHighlight};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{fromValues as e}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{ReadShadowMapPassParameters as r}from"../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{ReloadableShaderModule as i}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as s}from"../../../../../chunks/ShadowHighlight.glsl.js";import{PrimitiveType as t}from"../../../../webgl/enums.js";import{makePipelineState as a,premultipliedAlphaToPremultipliedAlpha as h,defaultColorWrite as l}from"../../../../webgl/renderState.js";class d extends r{constructor(){super(...arguments),this.shadowColor=e(1,0,1,1),this.shadowOpacity=.2,this.occludedShadowOpacity=.1,this.opacityElevation=1,this.dayNightTerminator=1}}class c extends o{constructor(e,r,o){super(e,r,new i(s,(()=>import("../../shaders/ShadowHighlight.glsl.js"))),o),this.primitiveType=t.TRIANGLE_STRIP}initializePipeline(){return a({blending:h,colorWrite:l,depthTest:null,depthWrite:null})}}export{d as ShadowHighlightPassParameters,c as ShadowHighlightTechnique};
5
+ import{fromValues as e}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{ReadShadowMapPassParameters as r}from"../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{ReloadableShaderModule as i}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as s}from"../../../../../chunks/ShadowHighlight.glsl.js";import{PrimitiveType as t}from"../../../../webgl/enums.js";import{makePipelineState as a,premultipliedAlphaToPremultipliedAlpha as h,defaultColorWrite as l}from"../../../../webgl/renderState.js";class d extends r{constructor(){super(...arguments),this.shadowColor=e(1,0,1,1),this.shadowOpacity=.2,this.occludedShadowOpacity=.1,this.opacityElevation=1,this.dayNightTerminator=1}}class c extends o{constructor(e,r){super(e,r,new i(s,(()=>import("../../shaders/ShadowHighlight.glsl.js")))),this.primitiveType=t.TRIANGLE_STRIP}initializePipeline(){return a({blending:h,colorWrite:l,depthTest:null,depthWrite:null})}}export{d as ShadowHighlightPassParameters,c as ShadowHighlightTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as i}from"../../../../../chunks/SingleHighlightApply.glsl.js";import{makePipelineState as l,premultipliedAlphaToPremultipliedAlpha as o,defaultColorWrite as s}from"../../../../webgl/renderState.js";class t extends r{constructor(r,l,o){super(r,l,new e(i,(()=>import("../../shaders/SingleHighlightApply.glsl.js"))),o)}initializePipeline(){return l({blending:o,colorWrite:s})}}export{t as SingleHighlightApplyTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as i}from"../../../../../chunks/SingleHighlightApply.glsl.js";import{makePipelineState as l,premultipliedAlphaToPremultipliedAlpha as o,defaultColorWrite as s}from"../../../../webgl/renderState.js";class t extends r{constructor(r,l){super(r,l,new e(i,(()=>import("../../shaders/SingleHighlightApply.glsl.js"))))}initializePipeline(){return l({blending:o,colorWrite:s})}}export{t as SingleHighlightApplyTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/SingleHighlightBlur.glsl.js";import{makePipelineState as l,defaultColorWrite as o}from"../../../../webgl/renderState.js";class s extends r{constructor(r,l,o){super(r,l,new e(i,(()=>import("../../shaders/SingleHighlightBlur.glsl.js"))),o)}initializePipeline(){return l({colorWrite:o})}}export{s as SingleHighlightBlurTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/SingleHighlightBlur.glsl.js";import{makePipelineState as l,defaultColorWrite as o}from"../../../../webgl/renderState.js";class s extends r{constructor(r,l){super(r,l,new e(i,(()=>import("../../shaders/SingleHighlightBlur.glsl.js"))))}initializePipeline(){return l({colorWrite:o})}}export{s as SingleHighlightBlurTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import"../../../../../core/has.js";import{disposeMaybe as t}from"../../../../../core/maybe.js";import{property as i}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as n}from"../../../../../core/accessorSupport/decorators/subclass.js";import{c as s,g as r}from"../../../../../chunks/vec32.js";import{create as a,fromRay as l,getStart as o,getEnd as h}from"../../../../../geometry/support/clipRay.js";import{intersectClipRay as c}from"../../../../../geometry/support/frustum.js";import{copy as d}from"../../../../../geometry/support/lineSegment.js";import{wrap as p}from"../../../../../geometry/support/ray.js";import{ViewingMode as u}from"../../../../ViewingMode.js";import{InternalRenderCategory as m}from"../../../webgl.js";import g from"../../../webgl/RenderNode.js";import{Blit as _}from"../blit/Blit.js";import{LaserlinePathData as P}from"./LaserlinePathData.js";import{LaserlinePathPassParameters as b,LaserlinePathTechnique as f}from"./LaserlinePathTechnique.js";import{LaserlinePathTechniqueConfiguration as E}from"./LaserlinePathTechniqueConfiguration.js";import{LaserlineTechnique as D}from"./LaserlineTechnique.js";import{LaserlineTechniqueConfiguration as q}from"./LaserlineTechniqueConfiguration.js";import{RenderRequestType as T}from"../../lib/basicInterfaces.js";import{updateParameters as L}from"../../materials/internal/MaterialUtil.js";import{BlitMode as V}from"../../shaders/CompositingTechniqueConfiguration.js";import{FramebufferBit as C}from"../../../../webgl/enums.js";let j=class extends g{constructor(e){super(e),this.produces=m.LASERLINES,this.consumes={required:[m.LASERLINES,"normals"]},this.requireGeometryDepth=!0,this._configuration=new q,this._pathTechniqueConfiguration=new E,this._heightManifoldEnabled=!1,this._pointDistanceEnabled=!1,this._lineVerticalPlaneEnabled=!1,this._intersectsLineEnabled=!1,this._intersectsLineInfinite=!1,this._pathVerticalPlaneEnabled=!1,this._passParameters=new b;const t=e.view._stage.renderView.techniques,i=new E;i.contrastControlEnabled=e.contrastControlEnabled,t.precompile(f,i)}initialize(){this._passParameters.renderCoordsHelper=this.view.renderCoordsHelper,this._pathTechniqueConfiguration.spherical=this.view.state.viewingMode===u.Global,this._pathTechniqueConfiguration.contrastControlEnabled=this.contrastControlEnabled,this._techniques.precompile(f,this._pathTechniqueConfiguration),this._blit=new _(this._techniques,V.PremultipliedAlpha)}destroy(){this._pathVerticalPlaneData=t(this._pathVerticalPlaneData),this._blit=null}get _techniques(){return this.view._stage.renderView.techniques}get heightManifoldEnabled(){return this._heightManifoldEnabled}set heightManifoldEnabled(e){this._heightManifoldEnabled!==e&&(this._heightManifoldEnabled=e,this.requestRender(T.UPDATE))}get heightManifoldTarget(){return this._passParameters.heightManifoldTarget}set heightManifoldTarget(e){s(this._passParameters.heightManifoldTarget,e),this.requestRender(T.UPDATE)}get pointDistanceEnabled(){return this._pointDistanceEnabled}set pointDistanceEnabled(e){e!==this._pointDistanceEnabled&&(this._pointDistanceEnabled=e,this.requestRender(T.UPDATE))}get pointDistanceTarget(){return this._passParameters.pointDistanceTarget}set pointDistanceTarget(e){s(this._passParameters.pointDistanceTarget,e),this.requestRender(T.UPDATE)}get pointDistanceOrigin(){return this._passParameters.pointDistanceOrigin}set pointDistanceOrigin(e){s(this._passParameters.pointDistanceOrigin,e),this.requestRender(T.UPDATE)}get lineVerticalPlaneEnabled(){return this._lineVerticalPlaneEnabled}set lineVerticalPlaneEnabled(e){e!==this._lineVerticalPlaneEnabled&&(this._lineVerticalPlaneEnabled=e,this.requestRender(T.UPDATE))}get lineVerticalPlaneSegment(){return this._passParameters.lineVerticalPlaneSegment}set lineVerticalPlaneSegment(e){d(e,this._passParameters.lineVerticalPlaneSegment),this.requestRender(T.UPDATE)}get intersectsLineEnabled(){return this._intersectsLineEnabled}set intersectsLineEnabled(e){e!==this._intersectsLineEnabled&&(this._intersectsLineEnabled=e,this.requestRender(T.UPDATE))}get intersectsLineSegment(){return this._passParameters.intersectsLineSegment}set intersectsLineSegment(e){d(e,this._passParameters.intersectsLineSegment),this.requestRender(T.UPDATE)}get intersectsLineInfinite(){return this._intersectsLineInfinite}set intersectsLineInfinite(e){e!==this._intersectsLineInfinite&&(this._intersectsLineInfinite=e,this.requestRender(T.UPDATE))}get pathVerticalPlaneEnabled(){return this._pathVerticalPlaneEnabled}set pathVerticalPlaneEnabled(e){e!==this._pathVerticalPlaneEnabled&&(this._pathVerticalPlaneEnabled=e,null!=this._pathVerticalPlaneData&&this.requestRender(T.UPDATE))}set pathVerticalPlaneVertices(e){null==this._pathVerticalPlaneData&&(this._pathVerticalPlaneData=new P(this._passParameters.renderCoordsHelper)),this._pathVerticalPlaneData.vertices=e,this.pathVerticalPlaneEnabled&&this.requestRender(T.UPDATE)}set pathVerticalPlaneBuffers(e){null==this._pathVerticalPlaneData&&(this._pathVerticalPlaneData=new P(this._passParameters.renderCoordsHelper)),this._pathVerticalPlaneData.buffers=e,this.pathVerticalPlaneEnabled&&this.requestRender(T.UPDATE)}setParameters(e){L(this._passParameters,e)&&this.requestRender(T.UPDATE)}precompile(){this._acquireTechnique().release()}render(e){const t=e.find((({name:e})=>e===m.LASERLINES));if(!this.bindParameters.decorations||null==this._blit)return t;const i=this.renderingContext,n=e.find((({name:e})=>"normals"===e));this._passParameters.normals=n?.getTexture();const s=()=>{(this.heightManifoldEnabled||this.pointDistanceEnabled||this.lineVerticalPlaneSegment||this.intersectsLineEnabled)&&this._renderUnified(),this.pathVerticalPlaneEnabled&&this._renderPath()};if(!this.contrastControlEnabled)return i.bindFramebuffer(t.fbo),s(),t;this._passParameters.colors=t.getTexture();const r=this.fboCache.acquire(t.fbo.width,t.fbo.height,"laser lines");return i.bindFramebuffer(r.fbo),i.setClearColor(0,0,0,0),i.clear(C.COLOR|C.DEPTH),s(),i.unbindTexture(t.getTexture()),this._blit.blend(i,r,t,this.bindParameters)||this.requestRender(T.UPDATE),r.release(),t}_acquireTechnique(){return this._configuration.heightManifoldEnabled=this.heightManifoldEnabled,this._configuration.lineVerticalPlaneEnabled=this.lineVerticalPlaneEnabled,this._configuration.pointDistanceEnabled=this.pointDistanceEnabled,this._configuration.intersectsLineEnabled=this.intersectsLineEnabled,this._configuration.contrastControlEnabled=this.contrastControlEnabled,this._configuration.spherical=this.view.state.viewingMode===u.Global,this._techniques.acquire(D,this._configuration)}_renderUnified(){if(!this._updatePassParameters())return;const e=this._acquireTechnique();if(e.compiled){const t=this.renderingContext;t.bindTechnique(e,this.bindParameters,this._passParameters),t.screen.draw()}else this.requestRender(T.UPDATE);e.release()}_renderPath(){if(null==this._pathVerticalPlaneData)return;const e=this._techniques.acquire(f,this._pathTechniqueConfiguration);if(e.compiled){const t=this.renderingContext;this._passParameters.origin=this._pathVerticalPlaneData.origin,t.bindTechnique(e,this.bindParameters,this._passParameters),this._pathVerticalPlaneData.draw(t)}else this.requestRender(T.UPDATE);e.release()}_updatePassParameters(){if(!this._intersectsLineEnabled)return!0;const e=this.bindParameters.camera,t=this._passParameters;if(this._intersectsLineInfinite){if(l(p(t.intersectsLineSegment.origin,t.intersectsLineSegment.vector),w),w.c0=-Number.MAX_VALUE,!c(e.frustum,w))return!1;o(w,t.lineStartWorld),h(w,t.lineEndWorld)}else s(t.lineStartWorld,t.intersectsLineSegment.origin),r(t.lineEndWorld,t.intersectsLineSegment.origin,t.intersectsLineSegment.vector);return!0}get test(){}};e([i({constructOnly:!0})],j.prototype,"contrastControlEnabled",void 0),e([i({constructOnly:!0})],j.prototype,"isDecoration",void 0),e([i()],j.prototype,"produces",void 0),e([i()],j.prototype,"consumes",void 0),j=e([n("esri.views.3d.webgl-engine.effects.laserlines.LaserLineRenderer")],j);const w=a();export{j as LaserLineRenderer};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import"../../../../../core/has.js";import{disposeMaybe as t}from"../../../../../core/maybe.js";import{property as i}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as n}from"../../../../../core/accessorSupport/decorators/subclass.js";import{c as s,g as r}from"../../../../../chunks/vec32.js";import{create as a,fromRay as o,getStart as l,getEnd as h}from"../../../../../geometry/support/clipRay.js";import{intersectClipRay as c}from"../../../../../geometry/support/frustum.js";import{copy as d}from"../../../../../geometry/support/lineSegment.js";import{wrap as p}from"../../../../../geometry/support/ray.js";import{ViewingMode as u}from"../../../../ViewingMode.js";import{InternalRenderCategory as m}from"../../../webgl.js";import g from"../../../webgl/RenderNode.js";import{Blit as _}from"../blit/Blit.js";import{LaserlinePathData as P}from"./LaserlinePathData.js";import{LaserlinePathPassParameters as b,LaserlinePathTechnique as f}from"./LaserlinePathTechnique.js";import{LaserlinePathTechniqueConfiguration as E}from"./LaserlinePathTechniqueConfiguration.js";import{LaserlineTechnique as D}from"./LaserlineTechnique.js";import{LaserlineTechniqueConfiguration as q}from"./LaserlineTechniqueConfiguration.js";import{RenderRequestType as T}from"../../lib/basicInterfaces.js";import{updateParameters as L}from"../../materials/internal/MaterialUtil.js";import{BlitMode as V}from"../../shaders/CompositingTechniqueConfiguration.js";import{FramebufferBit as C}from"../../../../webgl/enums.js";let j=class extends g{constructor(e){super(e),this.produces=m.LASERLINES,this.consumes={required:[m.LASERLINES,"normals"]},this.requireGeometryDepth=!0,this._configuration=new q,this._pathTechniqueConfiguration=new E,this._heightManifoldEnabled=!1,this._pointDistanceEnabled=!1,this._lineVerticalPlaneEnabled=!1,this._intersectsLineEnabled=!1,this._intersectsLineInfinite=!1,this._pathVerticalPlaneEnabled=!1,this._passParameters=new b;const t=e.view._stage.renderView.techniques,i=new E;i.contrastControlEnabled=e.contrastControlEnabled,t.precompile(f,i)}initialize(){this._passParameters.renderCoordsHelper=this.view.renderCoordsHelper,this._pathTechniqueConfiguration.spherical=this.view.state.viewingMode===u.Global,this._pathTechniqueConfiguration.contrastControlEnabled=this.contrastControlEnabled,this._techniques.precompile(f,this._pathTechniqueConfiguration),this._blit=new _(this._techniques,V.PremultipliedAlpha)}destroy(){this._pathVerticalPlaneData=t(this._pathVerticalPlaneData),this._blit=null}get _techniques(){return this.view._stage.renderView.techniques}get heightManifoldEnabled(){return this._heightManifoldEnabled}set heightManifoldEnabled(e){this._heightManifoldEnabled!==e&&(this._heightManifoldEnabled=e,this.requestRender(T.UPDATE))}get heightManifoldTarget(){return this._passParameters.heightManifoldTarget}set heightManifoldTarget(e){s(this._passParameters.heightManifoldTarget,e),this.requestRender(T.UPDATE)}get pointDistanceEnabled(){return this._pointDistanceEnabled}set pointDistanceEnabled(e){e!==this._pointDistanceEnabled&&(this._pointDistanceEnabled=e,this.requestRender(T.UPDATE))}get pointDistanceTarget(){return this._passParameters.pointDistanceTarget}set pointDistanceTarget(e){s(this._passParameters.pointDistanceTarget,e),this.requestRender(T.UPDATE)}get pointDistanceOrigin(){return this._passParameters.pointDistanceOrigin}set pointDistanceOrigin(e){s(this._passParameters.pointDistanceOrigin,e),this.requestRender(T.UPDATE)}get lineVerticalPlaneEnabled(){return this._lineVerticalPlaneEnabled}set lineVerticalPlaneEnabled(e){e!==this._lineVerticalPlaneEnabled&&(this._lineVerticalPlaneEnabled=e,this.requestRender(T.UPDATE))}get lineVerticalPlaneSegment(){return this._passParameters.lineVerticalPlaneSegment}set lineVerticalPlaneSegment(e){d(e,this._passParameters.lineVerticalPlaneSegment),this.requestRender(T.UPDATE)}get intersectsLineEnabled(){return this._intersectsLineEnabled}set intersectsLineEnabled(e){e!==this._intersectsLineEnabled&&(this._intersectsLineEnabled=e,this.requestRender(T.UPDATE))}get intersectsLineSegment(){return this._passParameters.intersectsLineSegment}set intersectsLineSegment(e){d(e,this._passParameters.intersectsLineSegment),this.requestRender(T.UPDATE)}get intersectsLineInfinite(){return this._intersectsLineInfinite}set intersectsLineInfinite(e){e!==this._intersectsLineInfinite&&(this._intersectsLineInfinite=e,this.requestRender(T.UPDATE))}get pathVerticalPlaneEnabled(){return this._pathVerticalPlaneEnabled}set pathVerticalPlaneEnabled(e){e!==this._pathVerticalPlaneEnabled&&(this._pathVerticalPlaneEnabled=e,null!=this._pathVerticalPlaneData&&this.requestRender(T.UPDATE))}set pathVerticalPlaneVertices(e){null==this._pathVerticalPlaneData&&(this._pathVerticalPlaneData=new P(this._passParameters.renderCoordsHelper)),this._pathVerticalPlaneData.vertices=e,this.pathVerticalPlaneEnabled&&this.requestRender(T.UPDATE)}set pathVerticalPlaneBuffers(e){null==this._pathVerticalPlaneData&&(this._pathVerticalPlaneData=new P(this._passParameters.renderCoordsHelper)),this._pathVerticalPlaneData.buffers=e,this.pathVerticalPlaneEnabled&&this.requestRender(T.UPDATE)}setParameters(e){L(this._passParameters,e)&&this.requestRender(T.UPDATE)}precompile(){this._acquireTechnique()}render(e){const t=e.find((({name:e})=>e===this.produces));if(!this.bindParameters.decorations||null==this._blit)return t;const i=this.renderingContext,n=e.find((({name:e})=>"normals"===e));this._passParameters.normals=n?.getTexture();const s=()=>{(this.heightManifoldEnabled||this.pointDistanceEnabled||this.lineVerticalPlaneSegment||this.intersectsLineEnabled)&&this._renderUnified(),this.pathVerticalPlaneEnabled&&this._renderPath()};if(!this.contrastControlEnabled)return i.bindFramebuffer(t.fbo),s(),t;this._passParameters.colors=t.getTexture();const r=this.fboCache.acquire(t.fbo.width,t.fbo.height,"laser lines");return i.bindFramebuffer(r.fbo),i.setClearColor(0,0,0,0),i.clear(C.COLOR|C.DEPTH),s(),i.unbindTexture(t.getTexture()),this._blit.blend(i,r,t,this.bindParameters)||this.requestRender(T.UPDATE),r.release(),t}_acquireTechnique(){return this._configuration.heightManifoldEnabled=this.heightManifoldEnabled,this._configuration.lineVerticalPlaneEnabled=this.lineVerticalPlaneEnabled,this._configuration.pointDistanceEnabled=this.pointDistanceEnabled,this._configuration.intersectsLineEnabled=this.intersectsLineEnabled,this._configuration.contrastControlEnabled=this.contrastControlEnabled,this._configuration.spherical=this.view.state.viewingMode===u.Global,this._techniques.get(D,this._configuration)}_renderUnified(){if(!this._updatePassParameters())return;const e=this._acquireTechnique();if(e.compiled){const t=this.renderingContext;t.bindTechnique(e,this.bindParameters,this._passParameters),t.screen.draw()}else this.requestRender(T.UPDATE)}_renderPath(){if(null==this._pathVerticalPlaneData)return;const e=this._techniques.get(f,this._pathTechniqueConfiguration);if(e.compiled){const t=this.renderingContext;this._passParameters.origin=this._pathVerticalPlaneData.origin,t.bindTechnique(e,this.bindParameters,this._passParameters),this._pathVerticalPlaneData.draw(t)}else this.requestRender(T.UPDATE)}_updatePassParameters(){if(!this._intersectsLineEnabled)return!0;const e=this.bindParameters.camera,t=this._passParameters;if(this._intersectsLineInfinite){if(o(p(t.intersectsLineSegment.origin,t.intersectsLineSegment.vector),w),w.c0=-Number.MAX_VALUE,!c(e.frustum,w))return!1;l(w,t.lineStartWorld),h(w,t.lineEndWorld)}else s(t.lineStartWorld,t.intersectsLineSegment.origin),r(t.lineEndWorld,t.intersectsLineSegment.origin,t.intersectsLineSegment.vector);return!0}get test(){}};e([i({constructOnly:!0})],j.prototype,"contrastControlEnabled",void 0),e([i({constructOnly:!0})],j.prototype,"isDecoration",void 0),e([i()],j.prototype,"produces",void 0),e([i()],j.prototype,"consumes",void 0),j=e([n("esri.views.3d.webgl-engine.effects.laserlines.LaserLineRenderer")],j);const w=a();export{j as LaserLineRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{create as e}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReloadableShaderModule as r}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{LaserlinePassParameters as o}from"./LaserlineTechnique.js";import{VertexAttribute as t}from"../../lib/VertexAttribute.js";import{L as i}from"../../../../../chunks/LaserlinePath.glsl.js";class a extends o{constructor(){super(...arguments),this.origin=e()}}class c extends s{constructor(e,s,o){super(e,s,new r(i,(()=>import("../../shaders/LaserlinePath.glsl.js"))),o,n)}}const n=new Map([[t.START,0],[t.END,1],[t.EXTRUDE,2],[t.START_UP,3],[t.END_UP,4]]);export{a as LaserlinePathPassParameters,c as LaserlinePathTechnique,n as vertexAttributeLocations};
5
+ import{create as e}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReloadableShaderModule as r}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{LaserlinePassParameters as o}from"./LaserlineTechnique.js";import{VertexAttribute as t}from"../../lib/VertexAttribute.js";import{L as i}from"../../../../../chunks/LaserlinePath.glsl.js";class a extends o{constructor(){super(...arguments),this.origin=e()}}class c extends s{constructor(e,s){super(e,s,new r(i,(()=>import("../../shaders/LaserlinePath.glsl.js"))),n)}}const n=new Map([[t.START,0],[t.END,1],[t.EXTRUDE,2],[t.START_UP,3],[t.END_UP,4]]);export{a as LaserlinePathPassParameters,c as LaserlinePathTechnique,n as vertexAttributeLocations};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{deg2rad as e}from"../../../../../core/mathUtils.js";import{fromValues as t,create as s}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as i}from"../../../../../geometry/support/lineSegment.js";import{ReloadableShaderModule as r}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{L as l}from"../../../../../chunks/Laserlines.glsl.js";import{NoParameters as n}from"../../../../webgl/NoParameters.js";class a extends n{constructor(){super(...arguments),this.innerColor=t(1,1,1),this.innerWidth=1,this.glowColor=t(1,.5,0),this.glowWidth=8,this.glowFalloff=8,this.globalAlpha=.75,this.globalAlphaContrastBoost=2,this.angleCutoff=e(6),this.pointDistanceOrigin=s(),this.pointDistanceTarget=s(),this.lineVerticalPlaneSegment=i(),this.intersectsLineSegment=i(),this.intersectsLineRadius=3,this.heightManifoldTarget=s(),this.lineStartWorld=s(),this.lineEndWorld=s()}}class h extends o{constructor(e,t,s){super(e,t,new r(l,(()=>import("../../shaders/Laserlines.glsl.js"))),s)}}export{a as LaserlinePassParameters,h as LaserlineTechnique};
5
+ import{deg2rad as e}from"../../../../../core/mathUtils.js";import{fromValues as t,create as s}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as i}from"../../../../../geometry/support/lineSegment.js";import{ReloadableShaderModule as r}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{L as l}from"../../../../../chunks/Laserlines.glsl.js";import{NoParameters as n}from"../../../../webgl/NoParameters.js";class a extends n{constructor(){super(...arguments),this.innerColor=t(1,1,1),this.innerWidth=1,this.glowColor=t(1,.5,0),this.glowWidth=8,this.glowFalloff=8,this.globalAlpha=.75,this.globalAlphaContrastBoost=2,this.angleCutoff=e(6),this.pointDistanceOrigin=s(),this.pointDistanceTarget=s(),this.lineVerticalPlaneSegment=i(),this.intersectsLineSegment=i(),this.intersectsLineRadius=3,this.heightManifoldTarget=s(),this.lineStartWorld=s(),this.lineEndWorld=s()}}class h extends o{constructor(e,t){super(e,t,new r(l,(()=>import("../../shaders/Laserlines.glsl.js"))))}}export{a as LaserlinePassParameters,h as LaserlineTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import{createTask as s}from"../../../../../core/asyncUtils.js";import{clamp as i}from"../../../../../core/mathUtils.js";import{disposeMaybe as r}from"../../../../../core/maybe.js";import{watch as t,syncAndInitial as a}from"../../../../../core/reactiveUtils.js";import{createScreenPointArray as o,createRenderScreenPointArray as m,screenPointObjectToArray as n}from"../../../../../core/screenUtils.js";import{isSVG as l}from"../../../../../core/urlUtils.js";import{property as h}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as p}from"../../../../../core/accessorSupport/decorators/subclass.js";import{requestImage as u}from"../../../../../support/requestImageUtils.js";import{InternalRenderCategory as c}from"../../../webgl.js";import _ from"../../../webgl/RenderNode.js";import{MagnifierTechnique as d}from"./MagnifierTechnique.js";import{RenderRequestType as g}from"../../lib/basicInterfaces.js";import{Default3D as f}from"../../lib/DefaultVertexAttributeLocations.js";import{createQuadVAO as v,Layout as P}from"../../lib/glUtil3D.js";import{M as T}from"../../../../../chunks/Magnifier.glsl.js";import{loadMagnifierResources as k}from"../../../../magnifier/resources.js";import{PrimitiveType as y,PixelFormat as b,TextureWrapMode as j}from"../../../../webgl/enums.js";import{Texture as R}from"../../../../webgl/Texture.js";import{TextureDescriptor as S}from"../../../../webgl/TextureDescriptor.js";let w=class extends _{constructor(){super(...arguments),this.produces=c.MAGNIFIER,this.consumes={required:[c.MAGNIFIER]},this._imageSources=null,this._imageLoadTask=null,this._passParameters=new T,this._vao=null,this._magnifier=null,this._tmpScreenPoint=o(),this._tmpRenderPoint=m()}initialize(){this.addHandles([t((()=>this.view.magnifier),(e=>this._update(e)),a)])}_update(e){if(e===this._magnifier)return;this.removeAllHandles(),this._magnifier=e;const s=()=>{const e=this._validMagnifier;e?(this._loadResources(e),this.produces=c.MAGNIFIER):this.produces="disabled",this.requestRender()};this._magnifier&&this.addHandles(t((()=>this._magnifier?.version),s)),s()}get _validMagnifier(){return this._magnifier?.visible&&this._magnifier?.position&&this._magnifier?.size>0?this._magnifier:null}get _factor(){return this._magnifier?.factor||1}destroy(){this._magnifier=null,null!=this._imageLoadTask&&(this._imageLoadTask.task.abort(),this._imageLoadTask=null),this._disposeTextures(),this._vao=r(this._vao)}_disposeTextures(){this._passParameters.mask=r(this._passParameters.mask),this._passParameters.overlay=r(this._passParameters.overlay),this._passParameters.input=r(this._passParameters.input)}precompile(){this._imageSources&&this.techniques.precompile(d)}render(e){const s=this._validMagnifier,r=e.find((({name:e})=>e===c.MAGNIFIER));if(null==s)return r;if(null==this._imageSources)return this.requestRender(g.UPDATE),r;const t=this.renderingContext,a=this.camera.pixelRatio,o=Math.ceil(a*s.size);this._vao??=v(t,P.Pos2,f,0,1);const m=this.techniques.acquire(d);if(this._ensureTextureResources(t,o),!m.compiled||!this._passParameters.input)return m.release(),this.requestRender(g.UPDATE),r;const l=Math.ceil(1/this._factor*o),h=this._passParameters.input;h.resize(l,l),n(s.position,this._tmpScreenPoint);const p=this.camera.screenToRender(this._tmpScreenPoint,this._tmpRenderPoint),u=this.camera.fullWidth,_=this.camera.fullHeight,T=.5*l,k=.5*l;p[0]=i(p[0],T,u-T-1),p[1]=i(p[1],k,_-k-1);const b=Math.floor(p[0]-T),j=Math.floor(p[1]-k);t.bindFramebuffer(r.fbo);return m.program.bindTexture("textureInput",h),t.gl.copyTexImage2D(h.descriptor.target,0,h.descriptor.pixelFormat,b,j,l,l,0),this._passParameters.magnifier=s,t.bindTechnique(m,this.bindParameters,this._passParameters),t.bindVAO(this._vao),t.drawArrays(y.TRIANGLE_STRIP,0,4),m.release(),r}_loadResources(e){const{maskUrl:i,overlayUrl:r}=e;this._imageLoadTask?.maskUrl===i&&this._imageLoadTask?.overlayUrl===r||(this._imageLoadTask?.task.abort(),this._imageLoadTask=this._imageSources=null),this._imageSources||this._imageLoadTask||(this._imageLoadTask={maskUrl:i,overlayUrl:r,task:s((async e=>{const s=null==i||null==r?k(e):null,t=null!=i?u(i,{signal:e}):s.then((e=>e.mask)),a=null!=r?u(r,{signal:e}):s.then((e=>e.overlay));this._imageSources={mask:await t,overlay:await a}}))})}_ensureTextureResources(e,s){if(null==this._imageSources||this._passParameters.size===s&&this._passParameters.input&&this._passParameters.mask&&this._passParameters.overlay)return;this._disposeTextures(),this._imageSources.overlay.width=this._imageSources.mask.width=s,this._imageSources.overlay.height=this._imageSources.mask.height=s;const i=new S;i.internalFormat=b.RGBA,i.wrapMode=j.CLAMP_TO_EDGE,i.flipped=!0,i.preMultiplyAlpha=!l(this._imageSources.overlay.src)||!e.driverTest.svgPremultipliesAlpha.result,this._passParameters.overlay=new R(e,i,this._imageSources.overlay),i.pixelFormat=i.internalFormat=b.ALPHA,i.preMultiplyAlpha=!1,this._passParameters.mask=new R(e,i,this._imageSources.mask),i.pixelFormat=i.internalFormat=b.RGBA,i.flipped=!1,this._passParameters.input=new R(e,i)}};e([h()],w.prototype,"produces",void 0),e([h()],w.prototype,"consumes",void 0),e([h()],w.prototype,"_imageSources",void 0),e([h()],w.prototype,"_imageLoadTask",void 0),w=e([p("esri.views.3d.webgl-engine.effects.magnifier.Magnifier")],w);export{w as Magnifier};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import{createTask as s}from"../../../../../core/asyncUtils.js";import{clamp as i}from"../../../../../core/mathUtils.js";import{disposeMaybe as r}from"../../../../../core/maybe.js";import{watch as t,syncAndInitial as a}from"../../../../../core/reactiveUtils.js";import{createScreenPointArray as o,createRenderScreenPointArray as m,screenPointObjectToArray as n}from"../../../../../core/screenUtils.js";import{isSVG as l}from"../../../../../core/urlUtils.js";import{property as h}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as p}from"../../../../../core/accessorSupport/decorators/subclass.js";import{requestImage as u}from"../../../../../support/requestImageUtils.js";import{InternalRenderCategory as c}from"../../../webgl.js";import _ from"../../../webgl/RenderNode.js";import{MagnifierTechnique as g}from"./MagnifierTechnique.js";import{RenderRequestType as d}from"../../lib/basicInterfaces.js";import{Default3D as f}from"../../lib/DefaultVertexAttributeLocations.js";import{createQuadVAO as v,Layout as P}from"../../lib/glUtil3D.js";import{M as T}from"../../../../../chunks/Magnifier.glsl.js";import{loadMagnifierResources as k}from"../../../../magnifier/resources.js";import{PrimitiveType as y,PixelFormat as b,TextureWrapMode as j}from"../../../../webgl/enums.js";import{Texture as R}from"../../../../webgl/Texture.js";import{TextureDescriptor as S}from"../../../../webgl/TextureDescriptor.js";let w=class extends _{constructor(){super(...arguments),this.produces=c.MAGNIFIER,this.consumes={required:[c.MAGNIFIER]},this._imageSources=null,this._imageLoadTask=null,this._passParameters=new T,this._vao=null,this._magnifier=null,this._tmpScreenPoint=o(),this._tmpRenderPoint=m()}initialize(){this.addHandles([t((()=>this.view.magnifier),(e=>this._update(e)),a)])}_update(e){if(e===this._magnifier)return;this.removeAllHandles(),this._magnifier=e;const s=()=>{const e=this._validMagnifier;e?(this._loadResources(e),this.produces=c.MAGNIFIER):this.produces="disabled",this.requestRender()};this._magnifier&&this.addHandles(t((()=>this._magnifier?.version),s)),s()}get _validMagnifier(){return this._magnifier?.visible&&this._magnifier?.position&&this._magnifier?.size>0?this._magnifier:null}get _factor(){return this._magnifier?.factor||1}destroy(){this._magnifier=null,null!=this._imageLoadTask&&(this._imageLoadTask.task.abort(),this._imageLoadTask=null),this._disposeTextures(),this._vao=r(this._vao)}_disposeTextures(){this._passParameters.mask=r(this._passParameters.mask),this._passParameters.overlay=r(this._passParameters.overlay),this._passParameters.input=r(this._passParameters.input)}precompile(){this._imageSources&&this.techniques.precompile(g)}render(e){const s=this._validMagnifier,r=e.find((({name:e})=>e===c.MAGNIFIER));if(null==s)return r;if(null==this._imageSources)return this.requestRender(d.UPDATE),r;const t=this.renderingContext,a=this.camera.pixelRatio,o=Math.ceil(a*s.size);this._vao??=v(t,P.Pos2,f,0,1);const m=this.techniques.get(g);if(this._ensureTextureResources(t,o),!m.compiled||!this._passParameters.input)return this.requestRender(d.UPDATE),r;const l=Math.ceil(1/this._factor*o),h=this._passParameters.input;h.resize(l,l),n(s.position,this._tmpScreenPoint);const p=this.camera.screenToRender(this._tmpScreenPoint,this._tmpRenderPoint),u=this.camera.fullWidth,_=this.camera.fullHeight,T=.5*l,k=.5*l;p[0]=i(p[0],T,u-T-1),p[1]=i(p[1],k,_-k-1);const b=Math.floor(p[0]-T),j=Math.floor(p[1]-k);t.bindFramebuffer(r.fbo);return m.program.bindTexture("textureInput",h),t.gl.copyTexImage2D(h.descriptor.target,0,h.descriptor.pixelFormat,b,j,l,l,0),this._passParameters.magnifier=s,t.bindTechnique(m,this.bindParameters,this._passParameters),t.bindVAO(this._vao),t.drawArrays(y.TRIANGLE_STRIP,0,4),r}_loadResources(e){const{maskUrl:i,overlayUrl:r}=e;this._imageLoadTask?.maskUrl===i&&this._imageLoadTask?.overlayUrl===r||(this._imageLoadTask?.task.abort(),this._imageLoadTask=this._imageSources=null),this._imageSources||this._imageLoadTask||(this._imageLoadTask={maskUrl:i,overlayUrl:r,task:s((async e=>{const s=null==i||null==r?k(e):null,t=null!=i?u(i,{signal:e}):s.then((e=>e.mask)),a=null!=r?u(r,{signal:e}):s.then((e=>e.overlay));this._imageSources={mask:await t,overlay:await a}}))})}_ensureTextureResources(e,s){if(null==this._imageSources||this._passParameters.size===s&&this._passParameters.input&&this._passParameters.mask&&this._passParameters.overlay)return;this._disposeTextures(),this._imageSources.overlay.width=this._imageSources.mask.width=s,this._imageSources.overlay.height=this._imageSources.mask.height=s;const i=new S;i.internalFormat=b.RGBA,i.wrapMode=j.CLAMP_TO_EDGE,i.flipped=!0,i.preMultiplyAlpha=!l(this._imageSources.overlay.src)||!e.driverTest.svgPremultipliesAlpha.result,this._passParameters.overlay=new R(e,i,this._imageSources.overlay),i.pixelFormat=i.internalFormat=b.ALPHA,i.preMultiplyAlpha=!1,this._passParameters.mask=new R(e,i,this._imageSources.mask),i.pixelFormat=i.internalFormat=b.RGBA,i.flipped=!1,this._passParameters.input=new R(e,i)}};e([h()],w.prototype,"produces",void 0),e([h()],w.prototype,"consumes",void 0),e([h()],w.prototype,"_imageSources",void 0),e([h()],w.prototype,"_imageLoadTask",void 0),w=e([p("esri.views.3d.webgl-engine.effects.magnifier.Magnifier")],w);export{w as Magnifier};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/Magnifier.glsl.js";import{makePipelineState as s,blendWithPremultipliedAlpha as o,defaultColorWrite as t}from"../../../../webgl/renderState.js";class l extends r{constructor(r,s,o){super(r,s,new e(i,(()=>import("../../shaders/Magnifier.glsl.js"))),o)}initializePipeline(){return s({blending:o,depthTest:null,depthWrite:null,colorWrite:t})}}export{l as MagnifierTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/Magnifier.glsl.js";import{makePipelineState as s,blendWithPremultipliedAlpha as o,defaultColorWrite as t}from"../../../../webgl/renderState.js";class l extends r{constructor(r,s){super(r,s,new e(i,(()=>import("../../shaders/Magnifier.glsl.js"))))}initializePipeline(){return s({blending:o,depthTest:null,depthWrite:null,colorWrite:t})}}export{l as MagnifierTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import{disposeMaybe as r}from"../../../../../core/maybe.js";import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{watch as s,syncAndInitial as i}from"../../../../../core/reactiveUtils.js";import{property as a}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as o}from"../../../../../core/accessorSupport/decorators/subclass.js";import{requestImage as n}from"../../../../../support/requestImageUtils.js";import{InternalRenderCategory as c,RenderCategory as l}from"../../../webgl.js";import{ColorFormat as u}from"../../../webgl/formats.js";import h from"../../../webgl/RenderNode.js";import{SMAABlendWeightsTechnique as m}from"./SMAABlendWeightsTechnique.js";import{SMAABlurTechnique as p}from"./SMAABlurTechnique.js";import{SMAAEdgeDetectTechnique as d}from"./SMAAEdgeDetectTechnique.js";import{SMAAPassParameters as f}from"./SMAAPassParameters.js";import{RenderRequestType as b}from"../../lib/basicInterfaces.js";import{PixelFormat as T,TextureSamplingMode as x,FramebufferBit as _,TextureWrapMode as A}from"../../../../webgl/enums.js";import{Texture as g}from"../../../../webgl/Texture.js";import{TextureDescriptor as C}from"../../../../webgl/TextureDescriptor.js";let w=class extends h{constructor(e){super(e),this.produces="disabled",this.consumes={required:[c.ANTIALIASING],optional:[l.COMPOSITE]},this._areaTexture=null,this._searchTexture=null,this._smaaParameters=new f}initialize(){this.addHandles([s((()=>this.isEnabled()),(e=>e?this.enable():this.disable()),i)])}async enable(){if(this.produces=c.ANTIALIASING,this._abortController||this._areaTexture&&this._searchTexture)return;this._abortController=new AbortController;const e=this._abortController.signal;try{const r=await import("./SMAAData.js");await this._loadTextures(r,e),this.requestRender(b.UPDATE)}catch{}this._abortController=null}async _loadTextures(e,r){t(r);const[s,i]=await Promise.allSettled([n(e.areaTexture,{signal:r}),n(e.searchTexure,{signal:r})]);if(t(r),"fulfilled"!==s.status||"fulfilled"!==i.status)return;const a=this.renderingContext;this._areaTexture=j(a,x.LINEAR,T.RGB,s.value),this._searchTexture=j(a,x.NEAREST,T.LUMINANCE,i.value)}disable(){this.produces="disabled"}destroy(){this._searchTexture=r(this._searchTexture),this._areaTexture=r(this._areaTexture)}precompile(){this.techniques.precompile(d),this.techniques.precompile(m),this.techniques.precompile(p)}render(e){const r=e.find((({name:e})=>e===c.ANTIALIASING));if(!this._areaTexture||!this._searchTexture)return this.requestRender(b.UPDATE),r;const t=this.techniques.acquire(d),s=this.techniques.acquire(m),i=this.techniques.acquire(p);if(!t.compiled||!s.compiled||!i.compiled)return t.release(),s.release(),i.release(),this.requestRender(b.UPDATE),r;const a=e.find((({name:e})=>e===l.COMPOSITE));if(!a)return r;const o=a.fbo.width,n=a.fbo.height,h=this.renderingContext;h.setViewport(0,0,o,n);const f=this.fboCache.acquire(o,n,"smaa edges",u.RG);h.bindFramebuffer(f.fbo),h.setClearColor(0,0,0,1),h.clear(_.COLOR),this._smaaParameters.color=a.getTexture();const T=this.bindParameters;h.bindTechnique(t,T,this._smaaParameters),h.screen.draw(),t.release();const x=this.fboCache.acquire(o,n,"smaa blend");return h.bindFramebuffer(x.fbo),h.setClearColor(0,0,1,1),h.clear(_.COLOR),this._smaaParameters.inputTexture=f.getTexture(),this._smaaParameters.areaTexture=this._areaTexture,this._smaaParameters.searchTexture=this._searchTexture,h.bindTechnique(s,T,this._smaaParameters),h.screen.draw(),s.release(),f.release(),h.bindFramebuffer(r.fbo),h.setClearColor(0,1,0,1),h.clear(_.COLOR),this._smaaParameters.inputTexture=x.getTexture(),h.bindTechnique(i,T,this._smaaParameters),h.screen.draw(),i.release(),x.release(),r}};function j(e,r,t,s){const i=new C;return i.pixelFormat=t,i.wrapMode=A.CLAMP_TO_EDGE,i.width=s.width,i.height=s.height,i.samplingMode=r,new g(e,i,s)}e([a()],w.prototype,"produces",void 0),e([a()],w.prototype,"consumes",void 0),e([a({constructOnly:!0})],w.prototype,"isEnabled",void 0),e([a()],w.prototype,"_abortController",void 0),w=e([o("esri.views.3d.webgl-engine.effects.smaa.SMAA")],w);export{w as SMAA};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import{disposeMaybe as r}from"../../../../../core/maybe.js";import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{watch as s,syncAndInitial as i}from"../../../../../core/reactiveUtils.js";import{property as a}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as o}from"../../../../../core/accessorSupport/decorators/subclass.js";import{requestImage as n}from"../../../../../support/requestImageUtils.js";import{InternalRenderCategory as c,RenderCategory as h}from"../../../webgl.js";import{ColorFormat as m}from"../../../webgl/formats.js";import l from"../../../webgl/RenderNode.js";import{SMAABlendWeightsTechnique as u}from"./SMAABlendWeightsTechnique.js";import{SMAABlurTechnique as p}from"./SMAABlurTechnique.js";import{SMAAEdgeDetectTechnique as d}from"./SMAAEdgeDetectTechnique.js";import{SMAAPassParameters as f}from"./SMAAPassParameters.js";import{RenderRequestType as b}from"../../lib/basicInterfaces.js";import{PixelFormat as T,TextureSamplingMode as x,FramebufferBit as _,TextureWrapMode as g}from"../../../../webgl/enums.js";import{Texture as A}from"../../../../webgl/Texture.js";import{TextureDescriptor as C}from"../../../../webgl/TextureDescriptor.js";let w=class extends l{constructor(e){super(e),this.produces="disabled",this.consumes={required:[c.ANTIALIASING],optional:[h.COMPOSITE]},this._areaTexture=null,this._searchTexture=null,this._smaaParameters=new f}initialize(){this.addHandles([s((()=>this.isEnabled()),(e=>e?this.enable():this.disable()),i)])}async enable(){if(this.produces=c.ANTIALIASING,this._abortController||this._areaTexture&&this._searchTexture)return;this._abortController=new AbortController;const e=this._abortController.signal;try{const r=await import("./SMAAData.js");await this._loadTextures(r,e),this.requestRender(b.UPDATE)}catch{}this._abortController=null}async _loadTextures(e,r){t(r);const[s,i]=await Promise.allSettled([n(e.areaTexture,{signal:r}),n(e.searchTexure,{signal:r})]);if(t(r),"fulfilled"!==s.status||"fulfilled"!==i.status)return;const a=this.renderingContext;this._areaTexture=j(a,x.LINEAR,T.RGB,s.value),this._searchTexture=j(a,x.NEAREST,T.LUMINANCE,i.value)}disable(){this.produces="disabled"}destroy(){this._searchTexture=r(this._searchTexture),this._areaTexture=r(this._areaTexture)}precompile(){this.techniques.precompile(d),this.techniques.precompile(u),this.techniques.precompile(p)}render(e){const r=e.find((({name:e})=>e===c.ANTIALIASING));if(!this._areaTexture||!this._searchTexture)return this.requestRender(b.UPDATE),r;const t=this.techniques.get(d),s=this.techniques.get(u),i=this.techniques.get(p);if(!t.compiled||!s.compiled||!i.compiled)return this.requestRender(b.UPDATE),r;const a=e.find((({name:e})=>e===h.COMPOSITE));if(!a)return r;const o=a.fbo.width,n=a.fbo.height,l=this.renderingContext;l.setViewport(0,0,o,n);const f=this.fboCache.acquire(o,n,"smaa edges",m.RG);l.bindFramebuffer(f.fbo),l.setClearColor(0,0,0,1),l.clear(_.COLOR),this._smaaParameters.color=a.getTexture();const T=this.bindParameters;l.bindTechnique(t,T,this._smaaParameters),l.screen.draw();const x=this.fboCache.acquire(o,n,"smaa blend");return l.bindFramebuffer(x.fbo),l.setClearColor(0,0,1,1),l.clear(_.COLOR),this._smaaParameters.inputTexture=f.getTexture(),this._smaaParameters.areaTexture=this._areaTexture,this._smaaParameters.searchTexture=this._searchTexture,l.bindTechnique(s,T,this._smaaParameters),l.screen.draw(),f.release(),l.bindFramebuffer(r.fbo),l.setClearColor(0,1,0,1),l.clear(_.COLOR),this._smaaParameters.inputTexture=x.getTexture(),l.bindTechnique(i,T,this._smaaParameters),l.screen.draw(),x.release(),r}};function j(e,r,t,s){const i=new C;return i.pixelFormat=t,i.wrapMode=g.CLAMP_TO_EDGE,i.width=s.width,i.height=s.height,i.samplingMode=r,new A(e,i,s)}e([a()],w.prototype,"produces",void 0),e([a()],w.prototype,"consumes",void 0),e([a({constructOnly:!0})],w.prototype,"isEnabled",void 0),e([a()],w.prototype,"_abortController",void 0),w=e([o("esri.views.3d.webgl-engine.effects.smaa.SMAA")],w);export{w as SMAA};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{B as s}from"../../../../../chunks/BlendWeights.glsl.js";import{makePipelineState as o,defaultColorWrite as i}from"../../../../webgl/renderState.js";class t extends r{constructor(r,o,i){super(r,o,new e(s,(()=>import("../../shaders/BlendWeights.glsl.js"))),i)}initializePipeline(){return o({colorWrite:i})}}export{t as SMAABlendWeightsTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{B as s}from"../../../../../chunks/BlendWeights.glsl.js";import{makePipelineState as o,defaultColorWrite as i}from"../../../../webgl/renderState.js";class t extends r{constructor(r,o){super(r,o,new e(s,(()=>import("../../shaders/BlendWeights.glsl.js"))))}initializePipeline(){return o({colorWrite:i})}}export{t as SMAABlendWeightsTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{B as o}from"../../../../../chunks/Blur.glsl.js";import{makePipelineState as s,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,s,i){super(r,s,new e(o,(()=>import("../../shaders/Blur.glsl.js"))),i)}initializePipeline(){return s({colorWrite:i})}}export{l as SMAABlurTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{B as o}from"../../../../../chunks/Blur.glsl.js";import{makePipelineState as s,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,s){super(r,s,new e(o,(()=>import("../../shaders/Blur.glsl.js"))))}initializePipeline(){return s({colorWrite:i})}}export{l as SMAABlurTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{E as o}from"../../../../../chunks/EdgeDetect.glsl.js";import{makePipelineState as s,defaultColorWrite as t}from"../../../../webgl/renderState.js";class i extends r{constructor(r,s,t){super(r,s,new e(o,(()=>import("../../shaders/EdgeDetect.glsl.js"))),t)}initializePipeline(){return s({colorWrite:t})}}export{i as SMAAEdgeDetectTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{E as o}from"../../../../../chunks/EdgeDetect.glsl.js";import{makePipelineState as s,defaultColorWrite as t}from"../../../../webgl/renderState.js";class i extends r{constructor(r,s){super(r,s,new e(o,(()=>import("../../shaders/EdgeDetect.glsl.js"))))}initializePipeline(){return s({colorWrite:t})}}export{i as SMAAEdgeDetectTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import{clamp as r}from"../../../../../core/mathUtils.js";import{disposeMaybe as s}from"../../../../../core/maybe.js";import{watch as t}from"../../../../../core/reactiveUtils.js";import{Milliseconds as i}from"../../../../../core/time.js";import{property as a}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as o}from"../../../../../core/accessorSupport/decorators/subclass.js";import{set as m}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{InternalRenderCategory as n}from"../../../webgl.js";import{ColorFormat as c}from"../../../webgl/formats.js";import p from"../../../webgl/RenderNode.js";import{distanceFadeEnd as h,distanceFadeStart as l}from"../../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{SSAOBlurTechnique as u}from"./SSAOBlurTechnique.js";import{noiseData as d}from"./SSAONoiseData.js";import{SSAOPassParameters as f,BlurDrawParameters as b}from"./SSAOParameters.js";import{SSAOTechnique as w}from"./SSAOTechnique.js";import{RenderRequestType as T}from"../../lib/basicInterfaces.js";import{g as S}from"../../../../../chunks/SSAO.glsl.js";import{TextureWrapMode as _,PixelFormat as P,DepthStencilAttachment as j,FramebufferBit as g}from"../../../../webgl/enums.js";import{Texture as x}from"../../../../webgl/Texture.js";import{TextureDescriptor as q}from"../../../../webgl/TextureDescriptor.js";const A=2;let E=class extends p{constructor(e){super(e),this.consumes={required:["normals"]},this.produces=n.SSAO,this.isEnabled=()=>!1,this._enableTime=i(0),this._passParameters=new f,this._drawParameters=new b}initialize(){const e=Uint8Array.from(atob(d),(e=>e.charCodeAt(0))),r=new q;r.wrapMode=_.CLAMP_TO_EDGE,r.pixelFormat=P.RGB,r.wrapMode=_.REPEAT,r.hasMipmap=!0,r.width=32,r.height=32,this._passParameters.noiseTexture=new x(this.renderingContext,r,e),this.techniques.precompile(w),this.techniques.precompile(u),this.addHandles(t((()=>this.isEnabled()),(()=>this._enableTime=i(0))))}destroy(){this._passParameters.noiseTexture=s(this._passParameters.noiseTexture)}render(e){const s=this.bindParameters,t=e.find((({name:e})=>"normals"===e)),a=t?.getTexture(),o=t?.getTexture(j),p=this.fboCache,d=s.camera,f=d.fullViewport[2],b=d.fullViewport[3],_=Math.round(f/A),P=Math.round(b/A),x=this.techniques.acquire(w),q=this.techniques.acquire(u);if(!x.compiled||!q.compiled)return this._enableTime=i(performance.now()),this.requestRender(T.UPDATE),x.release(),q.release(),p.acquire(_,P,n.SSAO,c.RED);0===this._enableTime&&(this._enableTime=i(performance.now()));const E=this.renderingContext,y=this.view.qualitySettings.fadeDuration,R=d.relativeElevation,v=r((h-R)/(h-l),0,1),C=y>0?Math.min(y,performance.now()-this._enableTime)/y:1,D=C*v;this._passParameters.normalTexture=a,this._passParameters.depthTexture=o,this._passParameters.projScale=1/d.computeScreenPixelSizeAtDist(1),this._passParameters.intensity=4*O/S(d)**6*D;const V=p.acquire(f,b,"ssao input",c.RG);E.bindFramebuffer(V.fbo),E.setViewport(0,0,f,b),E.bindTechnique(x,s,this._passParameters,this._drawParameters),E.screen.draw(),x.release();const M=p.acquire(_,P,"ssao blur",c.RED);E.bindFramebuffer(M.fbo),this._drawParameters.colorTexture=V.getTexture(),m(this._drawParameters.blurSize,0,A/b),E.bindTechnique(q,s,this._passParameters,this._drawParameters),E.setViewport(0,0,_,P),E.screen.draw(),V.release();const L=p.acquire(_,P,n.SSAO,c.RED);return E.bindFramebuffer(L.fbo),E.setViewport(0,0,f,b),E.setClearColor(1,1,1,0),E.clear(g.COLOR),this._drawParameters.colorTexture=M.getTexture(),m(this._drawParameters.blurSize,A/f,0),E.bindTechnique(q,s,this._passParameters,this._drawParameters),E.setViewport(0,0,_,P),E.screen.draw(),q.release(),E.setViewport4fv(d.fullViewport),M.release(),C<1&&this.requestRender(T.UPDATE),L}};e([a()],E.prototype,"consumes",void 0),e([a()],E.prototype,"produces",void 0),e([a({constructOnly:!0})],E.prototype,"isEnabled",void 0),E=e([o("esri.views.3d.webgl-engine.effects.ssao.SSAO")],E);const O=.5;export{E as SSAO,A as blurSizePixels};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import{clamp as r}from"../../../../../core/mathUtils.js";import{disposeMaybe as s}from"../../../../../core/maybe.js";import{watch as t}from"../../../../../core/reactiveUtils.js";import{Milliseconds as i}from"../../../../../core/time.js";import{property as o}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as a}from"../../../../../core/accessorSupport/decorators/subclass.js";import{set as m}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{InternalRenderCategory as n}from"../../../webgl.js";import{ColorFormat as p}from"../../../webgl/formats.js";import c from"../../../webgl/RenderNode.js";import{distanceFadeEnd as h,distanceFadeStart as u}from"../../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{SSAOBlurTechnique as l}from"./SSAOBlurTechnique.js";import{noiseData as d}from"./SSAONoiseData.js";import{SSAOPassParameters as f,BlurDrawParameters as b}from"./SSAOParameters.js";import{SSAOTechnique as w}from"./SSAOTechnique.js";import{RenderRequestType as T}from"../../lib/basicInterfaces.js";import{g as S}from"../../../../../chunks/SSAO.glsl.js";import{TextureWrapMode as _,PixelFormat as P,DepthStencilAttachment as j,FramebufferBit as g}from"../../../../webgl/enums.js";import{Texture as x}from"../../../../webgl/Texture.js";import{TextureDescriptor as q}from"../../../../webgl/TextureDescriptor.js";const A=2;let E=class extends c{constructor(e){super(e),this.consumes={required:["normals"]},this.produces=n.SSAO,this.isEnabled=()=>!1,this._enableTime=i(0),this._passParameters=new f,this._drawParameters=new b}initialize(){const e=Uint8Array.from(atob(d),(e=>e.charCodeAt(0))),r=new q;r.wrapMode=_.CLAMP_TO_EDGE,r.pixelFormat=P.RGB,r.wrapMode=_.REPEAT,r.hasMipmap=!0,r.width=32,r.height=32,this._passParameters.noiseTexture=new x(this.renderingContext,r,e),this.techniques.precompile(w),this.techniques.precompile(l),this.addHandles(t((()=>this.isEnabled()),(()=>this._enableTime=i(0))))}destroy(){this._passParameters.noiseTexture=s(this._passParameters.noiseTexture)}render(e){const s=this.bindParameters,t=e.find((({name:e})=>"normals"===e)),o=t?.getTexture(),a=t?.getTexture(j),c=this.fboCache,d=s.camera,f=d.fullViewport[2],b=d.fullViewport[3],_=Math.round(f/A),P=Math.round(b/A),x=this.techniques.get(w),q=this.techniques.get(l);if(!x.compiled||!q.compiled)return this._enableTime=i(performance.now()),this.requestRender(T.UPDATE),c.acquire(_,P,n.SSAO,p.RED);0===this._enableTime&&(this._enableTime=i(performance.now()));const E=this.renderingContext,y=this.view.qualitySettings.fadeDuration,R=d.relativeElevation,v=r((h-R)/(h-u),0,1),C=y>0?Math.min(y,performance.now()-this._enableTime)/y:1,D=C*v;this._passParameters.normalTexture=o,this._passParameters.depthTexture=a,this._passParameters.projScale=1/d.computeScreenPixelSizeAtDist(1),this._passParameters.intensity=4*O/S(d)**6*D;const V=c.acquire(f,b,"ssao input",p.RG);E.bindFramebuffer(V.fbo),E.setViewport(0,0,f,b),E.bindTechnique(x,s,this._passParameters,this._drawParameters),E.screen.draw();const M=c.acquire(_,P,"ssao blur",p.RED);E.bindFramebuffer(M.fbo),this._drawParameters.colorTexture=V.getTexture(),m(this._drawParameters.blurSize,0,A/b),E.bindTechnique(q,s,this._passParameters,this._drawParameters),E.setViewport(0,0,_,P),E.screen.draw(),V.release();const L=c.acquire(_,P,n.SSAO,p.RED);return E.bindFramebuffer(L.fbo),E.setViewport(0,0,f,b),E.setClearColor(1,1,1,0),E.clear(g.COLOR),this._drawParameters.colorTexture=M.getTexture(),m(this._drawParameters.blurSize,A/f,0),E.bindTechnique(q,s,this._passParameters,this._drawParameters),E.setViewport(0,0,_,P),E.screen.draw(),E.setViewport4fv(d.fullViewport),M.release(),C<1&&this.requestRender(T.UPDATE),L}};e([o()],E.prototype,"consumes",void 0),e([o()],E.prototype,"produces",void 0),e([o({constructOnly:!0})],E.prototype,"isEnabled",void 0),E=e([a("esri.views.3d.webgl-engine.effects.ssao.SSAO")],E);const O=.5;export{E as SSAO,A as blurSizePixels};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as o}from"../../../../../chunks/SSAOBlur.glsl.js";import{makePipelineState as s,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,s,i){super(r,s,new e(o,(()=>import("../../shaders/SSAOBlur.glsl.js"))),i)}initializePipeline(){return s({colorWrite:i})}}export{l as SSAOBlurTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as o}from"../../../../../chunks/SSAOBlur.glsl.js";import{makePipelineState as s,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,s){super(r,s,new e(o,(()=>import("../../shaders/SSAOBlur.glsl.js"))))}initializePipeline(){return s({colorWrite:i})}}export{l as SSAOBlurTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as o}from"../../../../../chunks/SSAO.glsl.js";import{makePipelineState as s,defaultColorWrite as i}from"../../../../webgl/renderState.js";class t extends r{constructor(r,s,i){super(r,s,new e(o,(()=>import("../../shaders/SSAO.glsl.js"))),i)}initializePipeline(){return s({colorWrite:i})}}export{t as SSAOTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as o}from"../../../../../chunks/SSAO.glsl.js";import{makePipelineState as s,defaultColorWrite as i}from"../../../../webgl/renderState.js";class t extends r{constructor(r,s){super(r,s,new e(o,(()=>import("../../shaders/SSAO.glsl.js"))))}initializePipeline(){return s({colorWrite:i})}}export{t as SSAOTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import{fetchAsset as t}from"../../../../../assets.js";import{createTask as s}from"../../../../../core/asyncUtils.js";import r from"../../../../../core/Error.js";import a from"../../../../../core/Logger.js";import{abortMaybe as i,disposeMaybe as o}from"../../../../../core/maybe.js";import{isAbortError as n}from"../../../../../core/promiseUtils.js";import{watch as f,initial as c,syncAndInitial as m}from"../../../../../core/reactiveUtils.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import{subclass as u}from"../../../../../core/accessorSupport/decorators/subclass.js";import{copy as l,rotateZ as h,multiply as d}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{fromValues as p}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{InternalRenderCategory as b}from"../../../webgl.js";import{glLayout as _}from"../../../support/buffer/glUtil.js";import{newLayout as g}from"../../../support/buffer/InterleavedLayout.js";import{OpaqueEnvironment as j}from"../OpaqueEnvironment.js";import{StarPassParameters as w,StarsTechnique as v}from"./StarsTechnique.js";import{RenderRequestType as D}from"../../lib/basicInterfaces.js";import{Default3D as P}from"../../lib/DefaultVertexAttributeLocations.js";import{VertexArrayObject as T}from"../../lib/VertexArrayObject.js";import{VertexAttribute as y}from"../../lib/VertexAttribute.js";import{BufferObject as A}from"../../../../webgl/BufferObject.js";import{PrimitiveType as I,Usage as M}from"../../../../webgl/enums.js";let E=class extends j{constructor(){super(...arguments),this._starData=null,this._loadDataTask=null,this._numPoints=0,this._passParameters=new w}initialize(){this.addHandles([f((()=>this.view.environment.starsEnabled),(e=>e?this._enable():this._disable()),c),f((()=>"virtual"===this.view.environment.lighting.type?null:this.view.environment.lighting.date),(e=>this._update(e)),m)])}_enable(){super._enable(),this._loadDataTask=this._createLoadDataTask()}get loading(){return!!this._loadDataTask&&!this._loadDataTask.finished}destroy(){this._loadDataTask=i(this._loadDataTask),this._numPoints=0,this._vao=o(this._vao),this._starData=null}precompile(){this.techniques.precompile(v)}render(e){const t=e.find((({name:e})=>e===b.OPAQUE_ENVIRONMENT)),s=this.renderingContext;if(this.loading)return this.requestRender(D.UPDATE),t;if(!this._starData)return t;this._vao??=this._ensureResources(this._starData,s);const r=this.techniques.acquire(v);return r.compiled?(s.bindTechnique(r,this.bindParameters,this._passParameters),s.bindVAO(this._vao),s.drawArrays(I.POINTS,0,this._numPoints),r.release(),t):(this.requestRender(D.UPDATE),r.release(),t)}_ensureResources(e,t){this._numPoints=e.byteLength/V;return O(t,new Float32Array(e,0,2*this._numPoints),new Uint8Array(e,2*this._numPoints*4,this._numPoints),this._numPoints)}_update(e){if(!e)return;const t=(e.getHours()/12+e.getMinutes()/60*(2/24)+e.getSeconds()/60*(2/1440)-.9972222)%2,s=2*q(e),r=l(this._passParameters.modelMatrix,S);h(r,r,-s*Math.PI),d(r,k,r),h(r,r,-t*Math.PI),this.requestRender(D.UPDATE)}_createLoadDataTask(){if(this._starData)return null;const e=s((async e=>{const{data:s}=await t("esri/views/3d/environment/resources/stars.wsv",{responseType:"array-buffer",signal:e});x(s),this._starData=s}));return e.promise.catch((e=>{n(e)||a.getLogger(this).error(e)})).then((()=>{this.destroyed||this.requestRender(D.UPDATE)})),e}};function O(e,t,s,r){const a=F.createBuffer(r),i=a.position,o=a.color,n=a.size;for(let f=0;f<r;f++){const e=t[2*f],r=t[2*f+1];i.set(f,0,-Math.cos(e)*Math.sin(r)),i.set(f,1,-Math.sin(e)*Math.sin(r)),i.set(f,2,-Math.cos(r));const a=R(s[f]),c=L(U[a[1]]);o.set(f,0,255*c[0]),o.set(f,1,255*c[1]),o.set(f,2,255*c[2]),o.set(f,3,255),n.set(f,a[0])}return new T(e,P,new Map([["geometry",_(F)]]),new Map([["geometry",A.createVertex(e,M.STATIC_DRAW,a.buffer)]]))}function q(e){const t=e,s=new Date(e.getFullYear(),0,1,11,58,56);return(+t-+s)/(+new Date(e.getFullYear()+1,0,1,11,58,55)-+s)}function x(e){if(!e)throw new r("stars:no-data-received","Failed to create stars because star catalogue is missing");const t=e.byteLength/V;if(t%1!=0||t>5e4||t<5e3)throw new r("stars:invalid-data","Failed to create stars because star catalogue data is invalid")}function L(e){return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}function R(e){return e>=192?[2.9,e-192]:e>=160?[2.5,e-160]:e>=128?[2,e-128]:e>=96?[1.5,e-96]:e>=64?[1,e-64]:e>=32?[.7,e-32]:[.4,e]}E=e([u("esri.views.3d.webgl-engine.effects.stars.Stars")],E);const U=["9bb2ff","9eb5ff","aabfff","bbccff","ccd8ff ","dae2ff","e4e9ff","eeefff","f8f6ff","fff9fb","fff5ef","fff1e5","ffeddb","ffe9d2","ffe6ca","ffe3c3","ffe0bb","ffddb4","ffdaad","ffd6a5","ffd29c","ffcc8f","ffc178","ffa94b","ff7b00"],k=p(1,0,0,0,0,.9174771405229186,.39778850739794974,0,0,-.39778850739794974,.9174771405229186,0,0,0,0,1),S=p(1,0,0,0,0,.9174771405229186,-.39778850739794974,0,0,.39778850739794974,.9174771405229186,0,0,0,0,1),V=9,F=g().vec3f(y.POSITION).vec4u8(y.COLOR).f32(y.SIZE);export{E as Stars};
5
+ import{_ as t}from"../../../../../chunks/tslib.es6.js";import{fetchAsset as e}from"../../../../../assets.js";import{createTask as s}from"../../../../../core/asyncUtils.js";import r from"../../../../../core/Error.js";import a from"../../../../../core/Logger.js";import{abortMaybe as i,disposeMaybe as o}from"../../../../../core/maybe.js";import{isAbortError as n}from"../../../../../core/promiseUtils.js";import{watch as f,initial as c,syncAndInitial as m}from"../../../../../core/reactiveUtils.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import{subclass as u}from"../../../../../core/accessorSupport/decorators/subclass.js";import{copy as l,rotateZ as h,multiply as d}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{fromValues as p}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{InternalRenderCategory as b}from"../../../webgl.js";import{glLayout as _}from"../../../support/buffer/glUtil.js";import{newLayout as g}from"../../../support/buffer/InterleavedLayout.js";import{OpaqueEnvironment as j}from"../OpaqueEnvironment.js";import{StarPassParameters as w,StarsTechnique as v}from"./StarsTechnique.js";import{RenderRequestType as D}from"../../lib/basicInterfaces.js";import{Default3D as P}from"../../lib/DefaultVertexAttributeLocations.js";import{VertexArrayObject as T}from"../../lib/VertexArrayObject.js";import{VertexAttribute as y}from"../../lib/VertexAttribute.js";import{BufferObject as A}from"../../../../webgl/BufferObject.js";import{PrimitiveType as I,Usage as M}from"../../../../webgl/enums.js";let E=class extends j{constructor(){super(...arguments),this._starData=null,this._loadDataTask=null,this._numPoints=0,this._passParameters=new w}initialize(){this.addHandles([f((()=>this.view.environment.starsEnabled),(t=>t?this._enable():this._disable()),c),f((()=>"virtual"===this.view.environment.lighting.type?null:this.view.environment.lighting.date),(t=>this._update(t)),m)])}_enable(){super._enable(),this._loadDataTask=this._createLoadDataTask()}get loading(){return!!this._loadDataTask&&!this._loadDataTask.finished}destroy(){this._loadDataTask=i(this._loadDataTask),this._numPoints=0,this._vao=o(this._vao),this._starData=null}precompile(){this.techniques.precompile(v)}render(t){const e=t.find((({name:t})=>t===b.OPAQUE_ENVIRONMENT)),s=this.renderingContext;if(this.loading)return this.requestRender(D.UPDATE),e;if(!this._starData)return e;this._vao??=this._ensureResources(this._starData,s);const r=this.techniques.get(v);return r.compiled?(s.bindTechnique(r,this.bindParameters,this._passParameters),s.bindVAO(this._vao),s.drawArrays(I.POINTS,0,this._numPoints),e):(this.requestRender(D.UPDATE),e)}_ensureResources(t,e){this._numPoints=t.byteLength/V;return O(e,new Float32Array(t,0,2*this._numPoints),new Uint8Array(t,2*this._numPoints*4,this._numPoints),this._numPoints)}_update(t){if(!t)return;const e=(t.getHours()/12+t.getMinutes()/60*(2/24)+t.getSeconds()/60*(2/1440)-.9972222)%2,s=2*x(t),r=l(this._passParameters.modelMatrix,S);h(r,r,-s*Math.PI),d(r,q,r),h(r,r,-e*Math.PI),this.requestRender(D.UPDATE)}_createLoadDataTask(){if(this._starData)return null;const t=s((async t=>{const{data:s}=await e("esri/views/3d/environment/resources/stars.wsv",{responseType:"array-buffer",signal:t});L(s),this._starData=s}));return t.promise.catch((t=>{n(t)||a.getLogger(this).error(t)})).then((()=>{this.destroyed||this.requestRender(D.UPDATE)})),t}};function O(t,e,s,r){const a=F.createBuffer(r),i=a.position,o=a.color,n=a.size;for(let f=0;f<r;f++){const t=e[2*f],r=e[2*f+1];i.set(f,0,-Math.cos(t)*Math.sin(r)),i.set(f,1,-Math.sin(t)*Math.sin(r)),i.set(f,2,-Math.cos(r));const a=U(s[f]),c=R(k[a[1]]);o.set(f,0,255*c[0]),o.set(f,1,255*c[1]),o.set(f,2,255*c[2]),o.set(f,3,255),n.set(f,a[0])}return new T(t,P,new Map([["geometry",_(F)]]),new Map([["geometry",A.createVertex(t,M.STATIC_DRAW,a.buffer)]]))}function x(t){const e=t,s=new Date(t.getFullYear(),0,1,11,58,56);return(+e-+s)/(+new Date(t.getFullYear()+1,0,1,11,58,55)-+s)}function L(t){if(!t)throw new r("stars:no-data-received","Failed to create stars because star catalogue is missing");const e=t.byteLength/V;if(e%1!=0||e>5e4||e<5e3)throw new r("stars:invalid-data","Failed to create stars because star catalogue data is invalid")}function R(t){return[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16)]}function U(t){return t>=192?[2.9,t-192]:t>=160?[2.5,t-160]:t>=128?[2,t-128]:t>=96?[1.5,t-96]:t>=64?[1,t-64]:t>=32?[.7,t-32]:[.4,t]}E=t([u("esri.views.3d.webgl-engine.effects.stars.Stars")],E);const k=["9bb2ff","9eb5ff","aabfff","bbccff","ccd8ff ","dae2ff","e4e9ff","eeefff","f8f6ff","fff9fb","fff5ef","fff1e5","ffeddb","ffe9d2","ffe6ca","ffe3c3","ffe0bb","ffddb4","ffdaad","ffd6a5","ffd29c","ffcc8f","ffc178","ffa94b","ff7b00"],q=p(1,0,0,0,0,.9174771405229186,.39778850739794974,0,0,-.39778850739794974,.9174771405229186,0,0,0,0,1),S=p(1,0,0,0,0,.9174771405229186,-.39778850739794974,0,0,.39778850739794974,.9174771405229186,0,0,0,0,1),V=9,F=g().vec3f(y.POSITION).vec4u8(y.COLOR).f32(y.SIZE);export{E as Stars};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{create as e}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{ReloadableShaderModule as r}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as o}from"../../../../../chunks/Stars.glsl.js";import{CompareFunction as t}from"../../../../webgl/enums.js";import{NoParameters as i}from"../../../../webgl/NoParameters.js";import{makePipelineState as m,premultipliedAlphaToPremultipliedAlpha as a,defaultColorWrite as l}from"../../../../webgl/renderState.js";class n extends i{constructor(){super(...arguments),this.modelMatrix=e()}}class c extends s{constructor(e,s,t){super(e,s,new r(o,(()=>import("./Stars.glsl.js"))),t)}initializePipeline(){return m({blending:a,depthTest:{func:t.LEQUAL},colorWrite:l})}}export{n as StarPassParameters,c as StarsTechnique};
5
+ import{create as e}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{ReloadableShaderModule as r}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as o}from"../../../../../chunks/Stars.glsl.js";import{CompareFunction as t}from"../../../../webgl/enums.js";import{NoParameters as i}from"../../../../webgl/NoParameters.js";import{makePipelineState as m,premultipliedAlphaToPremultipliedAlpha as a,defaultColorWrite as l}from"../../../../webgl/renderState.js";class n extends i{constructor(){super(...arguments),this.modelMatrix=e()}}class c extends s{constructor(e,s){super(e,s,new r(o,(()=>import("./Stars.glsl.js"))))}initializePipeline(){return m({blending:a,depthTest:{func:t.LEQUAL},colorWrite:l})}}export{n as StarPassParameters,c as StarsTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{O as e}from"../../../../../chunks/OITBlend.glsl.js";import{OITBlendTechnique as t}from"./OITBlendTechnique.js";import{OITBlendTechniqueConfiguration as r}from"./OITBlendTechniqueConfiguration.js";import{ColorAttachment as i}from"../../../../webgl/enums.js";class s{constructor(i){this._techniques=i,this._parameters=new e,this._configuration=new r,i.precompile(t,this._configuration),this._configuration.hasEmission=!0,i.precompile(t,this._configuration)}blend(e,r,s,n,o){this._parameters.colorTexture=r.getTexture(),o&&(this._parameters.emissionTexture=r.getTexture(i.COLOR_ATTACHMENT1),this._parameters.emissionFrontFaceTexture=s.getTexture(i.COLOR_ATTACHMENT1)),this._parameters.alphaTexture=r.getTexture(o?i.COLOR_ATTACHMENT2:i.COLOR_ATTACHMENT1),this._parameters.frontFaceTexture=s.getTexture(),this._configuration.hasEmission=o;const a=this._techniques.acquire(t,this._configuration);e.bindTechnique(a,n,this._parameters),e.screen.draw(),a.release()}}export{s as OITBlend};
5
+ import{O as e}from"../../../../../chunks/OITBlend.glsl.js";import{OITBlendTechnique as t}from"./OITBlendTechnique.js";import{OITBlendTechniqueConfiguration as i}from"./OITBlendTechniqueConfiguration.js";import{ColorAttachment as r}from"../../../../webgl/enums.js";class s{constructor(r){this._techniques=r,this._parameters=new e,this._configuration=new i,r.precompile(t,this._configuration),this._configuration.hasEmission=!0,r.precompile(t,this._configuration)}blend(e,i,s,n,o){this._parameters.colorTexture=i.getTexture(),o&&(this._parameters.emissionTexture=i.getTexture(r.COLOR_ATTACHMENT1),this._parameters.emissionFrontFaceTexture=s.getTexture(r.COLOR_ATTACHMENT1)),this._parameters.alphaTexture=i.getTexture(o?r.COLOR_ATTACHMENT2:r.COLOR_ATTACHMENT1),this._parameters.frontFaceTexture=s.getTexture(),this._configuration.hasEmission=o;const a=this._techniques.get(t,this._configuration);e.bindTechnique(a,n,this._parameters),e.screen.draw()}}export{s as OITBlend};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as s}from"../../../../../chunks/OITBlend.glsl.js";import{ColorAttachment as o}from"../../../../webgl/enums.js";import{makePipelineState as i,premultipliedAlphaToPremultipliedAlpha as n,defaultColorWrite as l}from"../../../../webgl/renderState.js";class t extends r{constructor(r,o,i){super(r,o,new e(s,(()=>import("./OITBlend.glsl.js"))),i)}initializePipeline(e){return i({blending:n,colorWrite:l,drawBuffers:e.hasEmission?{buffers:[o.COLOR_ATTACHMENT0,o.COLOR_ATTACHMENT1]}:{buffers:[o.COLOR_ATTACHMENT0]}})}}export{t as OITBlendTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as s}from"../../../../../chunks/OITBlend.glsl.js";import{ColorAttachment as o}from"../../../../webgl/enums.js";import{makePipelineState as i,premultipliedAlphaToPremultipliedAlpha as n,defaultColorWrite as l}from"../../../../webgl/renderState.js";class t extends r{constructor(r,o){super(r,o,new e(s,(()=>import("./OITBlend.glsl.js"))))}initializePipeline(e){return i({blending:n,colorWrite:l,drawBuffers:e.hasEmission?{buffers:[o.COLOR_ATTACHMENT0,o.COLOR_ATTACHMENT1]}:{buffers:[o.COLOR_ATTACHMENT0]}})}}export{t as OITBlendTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{C as i}from"../../../../chunks/Compositing.glsl.js";import{CompositingTechnique as t}from"../shaders/CompositingTechnique.js";import{CompositingTechniqueConfiguration as s,BlitMode as e}from"../shaders/CompositingTechniqueConfiguration.js";import{H as o}from"../../../../chunks/HUDCompositing.glsl.js";import{HUDCompositingTechnique as r}from"../shaders/HUDCompositingTechnique.js";class h{constructor(h,a){this._rctx=h,this._techniques=a,this._configuration=new s,this._passParameters=new i,this._hudParameters=new o,this._configuration.blitMode=e.PremultipliedAlpha,this._techniques.precompile(t,this._configuration),this._configuration.hasOpacityFactor=!0,this._techniques.precompile(t,this._configuration),this._configuration.hasOpacityFactor=!1,this._configuration.blitMode=e.Alpha,this._techniques.precompile(t,this._configuration),this._configuration.blitMode=e.Depth,this._techniques.precompile(t,this._configuration),this._techniques.precompile(r)}compositeHUD(i,t){this._hudParameters.texture=t;const s=this._techniques.acquire(r);this._rctx.bindTechnique(s,i,this._hudParameters),this._rctx.screen.draw(),s.release()}compositePreMultipliedAlpha(i,t,s=1){this._composite(i,t,e.PremultipliedAlpha,s)}composite(i,t){this._composite(i,t,e.Alpha,1)}blitDepthToLinearDepth(i,t){this._composite(i,t,e.Depth,1)}_composite(i,s,e,o){this._configuration.blitMode=e,this._configuration.hasOpacityFactor=1!==o,this._passParameters.texture=s,this._passParameters.opacity=o;const r=this._techniques.acquire(t,this._configuration);this._rctx.bindTechnique(r,i,this._passParameters),this._rctx.screen.draw(),r.release()}}export{h as default};
5
+ import{C as i}from"../../../../chunks/Compositing.glsl.js";import{CompositingTechnique as t}from"../shaders/CompositingTechnique.js";import{CompositingTechniqueConfiguration as s,BlitMode as e}from"../shaders/CompositingTechniqueConfiguration.js";import{H as o}from"../../../../chunks/HUDCompositing.glsl.js";import{HUDCompositingTechnique as h}from"../shaders/HUDCompositingTechnique.js";class r{constructor(r,c){this._rctx=r,this._techniques=c,this._configuration=new s,this._passParameters=new i,this._hudParameters=new o,this._configuration.blitMode=e.PremultipliedAlpha,this._techniques.precompile(t,this._configuration),this._configuration.hasOpacityFactor=!0,this._techniques.precompile(t,this._configuration),this._configuration.hasOpacityFactor=!1,this._configuration.blitMode=e.Alpha,this._techniques.precompile(t,this._configuration),this._configuration.blitMode=e.Depth,this._techniques.precompile(t,this._configuration),this._techniques.precompile(h)}compositeHUD(i,t){this._hudParameters.texture=t;const s=this._techniques.get(h);this._rctx.bindTechnique(s,i,this._hudParameters),this._rctx.screen.draw()}compositePreMultipliedAlpha(i,t,s=1){this._composite(i,t,e.PremultipliedAlpha,s)}composite(i,t){this._composite(i,t,e.Alpha,1)}blitDepthToLinearDepth(i,t){this._composite(i,t,e.Depth,1)}_composite(i,s,e,o){this._configuration.blitMode=e,this._configuration.hasOpacityFactor=1!==o,this._passParameters.texture=s,this._passParameters.opacity=o;const h=this._techniques.get(t,this._configuration);this._rctx.bindTechnique(h,i,this._passParameters),this._rctx.screen.draw()}}export{r as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../../../chunks/tslib.es6.js";import{disposeMaybe as e}from"../../../../core/maybe.js";import{watch as r}from"../../../../core/reactiveUtils.js";import{property as a}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{releaseTechniques as s}from"../effects/RenderPlugin.js";import{createQuadVAO as o}from"./glUtil3D.js";import{SortedRenderGeometryRenderer as n}from"./SortedRenderGeometryRenderer.js";import{HeatmapPassParameters as m,HeatmapTechnique as p}from"../shaders/HeatmapTechnique.js";import{HeatmapTechniqueConfiguration as h}from"../shaders/HeatmapTechniqueConfiguration.js";import{TextureWrapMode as c,PixelType as l,FramebufferBit as d}from"../../../webgl/enums.js";import{FramebufferObject as u}from"../../../webgl/FramebufferObject.js";import{Texture as y}from"../../../webgl/Texture.js";import{TextureDescriptor as _}from"../../../webgl/TextureDescriptor.js";import{vertexCount as f}from"../../../webgl/Util.js";let g=class extends n{constructor(t){super(t),this.pixelRatio=1,this._colorRampData=new Uint8ClampedArray(4),this.type="draped-heatmap",this._heatmapParameters=new m,this._configuration=new h;const e=new _;e.pixelFormat=t.pixelFormat,e.internalFormat=t.internalFormat,e.dataType=t.dataType,e.samplingMode=t.samplingMode,e.wrapMode=c.CLAMP_TO_EDGE;const r=t.rendererContext.rctx;this._densityMap=new u(r,e),this._quad=o(r),this._configuration.usesHalfFloat=t.dataType!==l.FLOAT,t.rendererContext.pluginContext.techniques.precompile(p,this._configuration)}initialize(){const t=this._colorRampData,e=new _(t.length/4,1);e.wrapMode=c.CLAMP_TO_EDGE,this._colorRamp=new y(this.rctx,e,t),this._heatmapParameters.densityMap=this._densityMap.colorTexture,this.addHandles(r((()=>[this.colorRampData,this.minDensity,this.maxDensity,this.fieldTotal,this.pixelRatio,this.searchRadius]),(()=>this.rendererContext.notifyContentChanged())))}destroy(){this._densityMap=e(this._densityMap),this._quad=e(this._quad),this._colorRamp=e(this._colorRamp)}get searchRadius(){return this._heatmapParameters.searchRadius}set searchRadius(t){t!==this._heatmapParameters.searchRadius&&(this._heatmapParameters.searchRadius=t,this.notifyChange("searchRadius"))}get minDensity(){return this._heatmapParameters.minDensity}set minDensity(t){t!==this._heatmapParameters.minDensity&&(this._heatmapParameters.minDensity=t,this.notifyChange("minDensity"))}get maxDensity(){return this._heatmapParameters.maxDensity}set maxDensity(t){t!==this._heatmapParameters.maxDensity&&(this._heatmapParameters.maxDensity=t,this.notifyChange("maxDensity"))}get fieldTotal(){return this._heatmapParameters.fieldTotal}set fieldTotal(t){this._heatmapParameters.fieldTotal=t,this.notifyChange("fieldTotal")}get colorRampData(){return this._colorRampData}set colorRampData(t){const{colorRamp:e}=this._heatmapParameters;if(null!=e&&t!==this._colorRampData){const r=e.descriptor.width,a=t.length/4;a!==r&&e.resize(a,1),e.setData(t)}this._colorRampData=t}get _colorRamp(){return this._heatmapParameters.colorRamp}set _colorRamp(t){this._heatmapParameters.colorRamp=t}get hasHighlights(){return!1}get hasWater(){return!1}get rendersOccludedDraped(){return!1}render(t){const e=this.sortedRenderers;if(0===e.length)return;const r=this.rctx.getBoundFramebufferObject(),a=this.rctx.getViewport(),{pixelRatio:i}=this,o=Math.ceil(a.width*i),n=Math.ceil(a.height*i);this._densityMap.resize(o,n),this.rctx.bindFramebuffer(this._densityMap),this.rctx.setViewport(0,0,o,n),this.rctx.clear(d.COLOR);let m=!1;if(e.forAll((e=>{const r=e.acquireTechniques(t);r&&(e.render(t,r),s(r),m=!0)})),this.rctx.bindFramebuffer(r),this.rctx.setViewport(a.x,a.y,a.width,a.height),!m)return;this.rctx.bindVAO(this._quad);const h=this.rendererContext.pluginContext.techniques.acquire(p,this._configuration);this.rctx.bindTechnique(h,t.bind,this._heatmapParameters),this.rctx.drawArrays(h.primitiveType,0,f(this._quad,"geometry")),h.release()}};t([a()],g.prototype,"searchRadius",null),t([a()],g.prototype,"minDensity",null),t([a()],g.prototype,"maxDensity",null),t([a()],g.prototype,"fieldTotal",null),t([a()],g.prototype,"pixelRatio",void 0),t([a()],g.prototype,"colorRampData",null),t([a({constructOnly:!0})],g.prototype,"dataType",void 0),t([a({constructOnly:!0})],g.prototype,"samplingMode",void 0),t([a({constructOnly:!0})],g.prototype,"pixelFormat",void 0),t([a({constructOnly:!0})],g.prototype,"internalFormat",void 0),t([a()],g.prototype,"_colorRampData",void 0),g=t([i("esri.views.3d.webgl-engine.lib.DrapedHeatmapRenderer")],g);export{g as DrapedHeatmapRenderer};
5
+ import{_ as t}from"../../../../chunks/tslib.es6.js";import{disposeMaybe as e}from"../../../../core/maybe.js";import{watch as r}from"../../../../core/reactiveUtils.js";import{property as a}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{createQuadVAO as s}from"./glUtil3D.js";import{SortedRenderGeometryRenderer as o}from"./SortedRenderGeometryRenderer.js";import{HeatmapPassParameters as n,HeatmapTechnique as h}from"../shaders/HeatmapTechnique.js";import{HeatmapTechniqueConfiguration as p}from"../shaders/HeatmapTechniqueConfiguration.js";import{TextureWrapMode as m,PixelType as c,FramebufferBit as l}from"../../../webgl/enums.js";import{FramebufferObject as d}from"../../../webgl/FramebufferObject.js";import{Texture as u}from"../../../webgl/Texture.js";import{TextureDescriptor as y}from"../../../webgl/TextureDescriptor.js";import{vertexCount as _}from"../../../webgl/Util.js";let g=class extends o{constructor(t){super(t),this.pixelRatio=1,this._colorRampData=new Uint8ClampedArray(4),this.type="draped-heatmap",this._heatmapParameters=new n,this._configuration=new p;const e=new y;e.pixelFormat=t.pixelFormat,e.internalFormat=t.internalFormat,e.dataType=t.dataType,e.samplingMode=t.samplingMode,e.wrapMode=m.CLAMP_TO_EDGE;const r=t.rendererContext.rctx;this._densityMap=new d(r,e),this._quad=s(r),this._configuration.usesHalfFloat=t.dataType!==c.FLOAT,t.rendererContext.pluginContext.techniques.precompile(h,this._configuration)}initialize(){const t=this._colorRampData,e=new y(t.length/4,1);e.wrapMode=m.CLAMP_TO_EDGE,this._colorRamp=new u(this.rctx,e,t),this._heatmapParameters.densityMap=this._densityMap.colorTexture,this.addHandles(r((()=>[this.colorRampData,this.minDensity,this.maxDensity,this.fieldTotal,this.pixelRatio,this.searchRadius]),(()=>this.rendererContext.notifyContentChanged())))}destroy(){this._densityMap=e(this._densityMap),this._quad=e(this._quad),this._colorRamp=e(this._colorRamp)}get searchRadius(){return this._heatmapParameters.searchRadius}set searchRadius(t){t!==this._heatmapParameters.searchRadius&&(this._heatmapParameters.searchRadius=t,this.notifyChange("searchRadius"))}get minDensity(){return this._heatmapParameters.minDensity}set minDensity(t){t!==this._heatmapParameters.minDensity&&(this._heatmapParameters.minDensity=t,this.notifyChange("minDensity"))}get maxDensity(){return this._heatmapParameters.maxDensity}set maxDensity(t){t!==this._heatmapParameters.maxDensity&&(this._heatmapParameters.maxDensity=t,this.notifyChange("maxDensity"))}get fieldTotal(){return this._heatmapParameters.fieldTotal}set fieldTotal(t){this._heatmapParameters.fieldTotal=t,this.notifyChange("fieldTotal")}get colorRampData(){return this._colorRampData}set colorRampData(t){const{colorRamp:e}=this._heatmapParameters;if(null!=e&&t!==this._colorRampData){const r=e.descriptor.width,a=t.length/4;a!==r&&e.resize(a,1),e.setData(t)}this._colorRampData=t}get _colorRamp(){return this._heatmapParameters.colorRamp}set _colorRamp(t){this._heatmapParameters.colorRamp=t}get hasHighlights(){return!1}get hasWater(){return!1}get rendersOccludedDraped(){return!1}render(t){const e=this.sortedRenderers;if(0===e.length)return;const r=this.rctx.getBoundFramebufferObject(),a=this.rctx.getViewport(),{pixelRatio:i}=this,s=Math.ceil(a.width*i),o=Math.ceil(a.height*i);this._densityMap.resize(s,o),this.rctx.bindFramebuffer(this._densityMap),this.rctx.setViewport(0,0,s,o),this.rctx.clear(l.COLOR);let n=!1;if(e.forAll((e=>{const r=e.acquireTechniques(t);r&&(e.render(t,r),n=!0)})),this.rctx.bindFramebuffer(r),this.rctx.setViewport(a.x,a.y,a.width,a.height),!n)return;this.rctx.bindVAO(this._quad);const p=this.rendererContext.pluginContext.techniques.get(h,this._configuration);this.rctx.bindTechnique(p,t.bind,this._heatmapParameters),this.rctx.drawArrays(p.primitiveType,0,_(this._quad,"geometry"))}};t([a()],g.prototype,"searchRadius",null),t([a()],g.prototype,"minDensity",null),t([a()],g.prototype,"maxDensity",null),t([a()],g.prototype,"fieldTotal",null),t([a()],g.prototype,"pixelRatio",void 0),t([a()],g.prototype,"colorRampData",null),t([a({constructOnly:!0})],g.prototype,"dataType",void 0),t([a({constructOnly:!0})],g.prototype,"samplingMode",void 0),t([a({constructOnly:!0})],g.prototype,"pixelFormat",void 0),t([a({constructOnly:!0})],g.prototype,"internalFormat",void 0),t([a()],g.prototype,"_colorRampData",void 0),g=t([i("esri.views.3d.webgl-engine.lib.DrapedHeatmapRenderer")],g);export{g as DrapedHeatmapRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ResourceState as e}from"./basicInterfaces.js";class t{constructor(e){this._material=e.material,this._techniques=e.techniques,this._output=e.output}dispose(){}get _stippleTextures(){return this._techniques.context.stippleTextures}get _markerTextures(){return this._techniques.context.markerTextures}acquireTechnique(e,t){return this._techniques.acquire(e,this._material.getConfiguration(this._output,t))}ensureResources(t){return e.LOADED}}export{t as default};
5
+ import{ResourceState as t}from"./basicInterfaces.js";class e{constructor(t){this._material=t.material,this._techniques=t.techniques,this._output=t.output}dispose(){}get _stippleTextures(){return this._techniques.context.stippleTextures}get _markerTextures(){return this._techniques.context.markerTextures}getTechnique(t,e){return this._techniques.get(t,this._material.getConfiguration(this._output,e))}ensureResources(e){return t.LOADED}}export{e as default};