@arcgis/core 4.33.0-next.20250429 → 4.33.0-next.20250501

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 (277) hide show
  1. package/analysis/AreaMeasurementAnalysis.js +1 -1
  2. package/applications/Components/baUtils.js +5 -0
  3. package/assets/components/assets/icon/mosaicMethodBlend16.json +1 -1
  4. package/assets/components/assets/icon/mosaicMethodBlend24.json +1 -1
  5. package/assets/components/assets/icon/mosaicMethodBlend32.json +1 -1
  6. package/assets/components/assets/icon/mosaicMethodNorthWest32.json +1 -1
  7. package/assets/esri/core/workers/RemoteClient.js +1 -1
  8. package/assets/esri/core/workers/chunks/02b38423276536596aba.js +1 -0
  9. package/assets/esri/core/workers/chunks/{9a1c058d3ecd1db0e996.js → 0c338364cb55afdbd580.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{4351b3e54b309935faed.js → 173737c60fa54f7d82bb.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{90dc783a617ff053e862.js → 181ad3cee0b30a72e7c7.js} +1 -1
  12. package/assets/esri/core/workers/chunks/210e057fe5e66abea984.js +1 -0
  13. package/assets/esri/core/workers/chunks/{9850ff14bd9c7da81c65.js → 23c76963481e38f39653.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{b1473d15c75fc560ea4a.js → 2ad47c0ba1680f7d5e03.js} +1 -1
  15. package/assets/esri/core/workers/chunks/2c3920ad82b9d86c3f05.js +1 -0
  16. package/assets/esri/core/workers/chunks/{12c9dd3932218238033b.js → 3a205f87f100832ef9f5.js} +1 -1
  17. package/assets/esri/core/workers/chunks/3cee3ff926f47aae476f.js +1 -0
  18. package/assets/esri/core/workers/chunks/543eb46b55cacd6e1dbc.js.LICENSE.txt +1 -1
  19. package/assets/esri/core/workers/chunks/{2fd5b48976cefe7cc0ab.js → 581180668e0229dcdc14.js} +1 -1
  20. package/assets/esri/core/workers/chunks/5c2299f22a69e58cc4dd.js +1 -0
  21. package/assets/esri/core/workers/chunks/60eb6dd09080da5653a1.js +1 -0
  22. package/assets/esri/core/workers/chunks/6210346dc9d064ac90af.js +1 -0
  23. package/assets/esri/core/workers/chunks/{c3033f148213c960b906.js → 653ff3e631fea8ad393a.js} +290 -291
  24. package/assets/esri/core/workers/chunks/{3cf001abca8ad933bccf.js → 670a66617249f2d15a62.js} +2 -2
  25. package/assets/esri/core/workers/chunks/{3cf001abca8ad933bccf.js.LICENSE.txt → 670a66617249f2d15a62.js.LICENSE.txt} +1 -1
  26. package/assets/esri/core/workers/chunks/6d89d42bcba213be2d9d.js +1 -0
  27. package/assets/esri/core/workers/chunks/6ecc3a3737ae8622dfa4.js +1 -0
  28. package/assets/esri/core/workers/chunks/6fef5a07f75b2a5736ad.js +1 -0
  29. package/assets/esri/core/workers/chunks/6ff46126c82354e6c78e.js +1 -0
  30. package/assets/esri/core/workers/chunks/710e03feaa25e357f17a.js +1 -0
  31. package/assets/esri/core/workers/chunks/71dc9d78dec981078a1a.js +1 -0
  32. package/assets/esri/core/workers/chunks/{ab6ecd8eeec5ff761b34.js → 73bca519c93920bc8c9f.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{a6de903f22f76d875005.js → 7496c4c33c2d8f60a434.js} +1 -1
  34. package/assets/esri/core/workers/chunks/7a282674d77875c58acd.js +1 -0
  35. package/assets/esri/core/workers/chunks/7b4523ab392966624d97.js +2 -0
  36. package/assets/esri/core/workers/chunks/{30551c1d3e4fa7be86c1.js.LICENSE.txt → 7b4523ab392966624d97.js.LICENSE.txt} +1 -1
  37. package/assets/esri/core/workers/chunks/{50ffb2620cdbcfd75723.js → 81b3351ea9627bb631d4.js} +1 -1
  38. package/assets/esri/core/workers/chunks/84d7ed2cf5fe23a0888f.js +1 -0
  39. package/assets/esri/core/workers/chunks/84f972d7851d982701a0.js +319 -0
  40. package/assets/esri/core/workers/chunks/{f52e597dca4b32a81881.js → 867c6c5b2ee1db977c99.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{c5d786166a5609b85276.js → 8a87c181b85d0b86b9bb.js} +2 -2
  42. package/assets/esri/core/workers/chunks/{c5d786166a5609b85276.js.LICENSE.txt → 8a87c181b85d0b86b9bb.js.LICENSE.txt} +1 -1
  43. package/assets/esri/core/workers/chunks/{a0c51c4c30a5f749dfc6.js → 8bf2e2fe5e3e8b4a1fa0.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{213adc87c843d627c5d6.js → 8f2e0277c66247bd40b4.js} +1 -1
  45. package/assets/esri/core/workers/chunks/9652cfd4668b95036c87.js +39 -0
  46. package/assets/esri/core/workers/chunks/{a600194cfe26aedc21dd.js → 9d32f41f8f69b8a507c3.js} +1 -1
  47. package/assets/esri/core/workers/chunks/9f07919ade6707b103da.js +1 -0
  48. package/assets/esri/core/workers/chunks/ac9c6779771ec855da79.js.LICENSE.txt +1 -1
  49. package/assets/esri/core/workers/chunks/{899f197556b6ced6eddf.js → ad9b4e0164706c53b872.js} +2 -2
  50. package/assets/esri/core/workers/chunks/{72097a8247101018dcdf.js → ba4aafa8dfa76006c3e7.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{d3174ff4dd5acd16485a.js → c041f4a1d18d42e27ad7.js} +1 -1
  52. package/assets/esri/core/workers/chunks/c2594024d72133d3ed7b.js +2 -0
  53. package/assets/esri/core/workers/chunks/{e524462c63834fae7e01.js.LICENSE.txt → c2594024d72133d3ed7b.js.LICENSE.txt} +1 -1
  54. package/assets/esri/core/workers/chunks/{5a821b7bf58eebb9062c.js → c607d618b64d3accecc4.js} +1 -1
  55. package/assets/esri/core/workers/chunks/c9a2c4fd169b943db4b4.js +1 -0
  56. package/assets/esri/core/workers/chunks/{577f24923fa4d08360e4.js → ce9de24cb96b56d20562.js} +2 -2
  57. package/assets/esri/core/workers/chunks/{577f24923fa4d08360e4.js.LICENSE.txt → ce9de24cb96b56d20562.js.LICENSE.txt} +1 -1
  58. package/assets/esri/core/workers/chunks/d30fae6233d3426615ed.js +1 -0
  59. package/assets/esri/core/workers/chunks/d8dc922f7466300b668f.js.LICENSE.txt +1 -1
  60. package/assets/esri/core/workers/chunks/{28317c8d7fa2eeeaf997.js → d92ea6b0674f34206ab6.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{345993291540433d3d92.js → e93222c65bd28203ddf7.js} +1 -1
  62. package/assets/esri/themes/base/widgets/_SelectionList.scss +5 -17
  63. package/assets/esri/themes/dark/main.css +1 -1
  64. package/assets/esri/themes/light/main.css +1 -1
  65. package/assets/esri/themes/light/view.css +1 -1
  66. package/chunks/BloomBlur.glsl.js +1 -1
  67. package/chunks/BloomComposition.glsl.js +2 -2
  68. package/chunks/ChapmanAtmosphere.glsl.js +1 -1
  69. package/chunks/CloudsComposition.glsl.js +1 -1
  70. package/chunks/ComponentShader.glsl.js +33 -33
  71. package/chunks/DefaultMaterial.glsl.js +22 -22
  72. package/chunks/Fog.glsl.js +3 -3
  73. package/chunks/Haze.glsl.js +1 -1
  74. package/chunks/Path.glsl.js +22 -18
  75. package/chunks/RealisticTree.glsl.js +9 -9
  76. package/chunks/RibbonLine.glsl.js +1 -1
  77. package/chunks/SSAO.glsl.js +43 -42
  78. package/chunks/ShadowCastAccumulate.glsl.js +5 -5
  79. package/chunks/ShadowHighlight.glsl.js +3 -3
  80. package/chunks/Terrain.glsl.js +1 -1
  81. package/chunks/Viewshed.glsl.js +1 -1
  82. package/core/NestedMap.js +1 -1
  83. package/core/deprecate.js +1 -1
  84. package/geometry/support/PolylineBuilder.js +1 -1
  85. package/geometry/support/curves/bezierCurveUtils.js +5 -0
  86. package/geometry/support/curves/circleUtils.js +5 -0
  87. package/geometry/support/curves/circularArcUtils.js +5 -0
  88. package/geometry/support/curves/closestPointOnCurve.js +5 -0
  89. package/geometry/support/curves/curveUtils.js +5 -0
  90. package/geometry/support/curves/densifyCurvedGeometry.js +5 -0
  91. package/geometry/support/curves/ellipticArc4Utils.js +5 -0
  92. package/geometry/support/curves/ellipticArc7Utils.js +5 -0
  93. package/geometry/support/curves/mathUtils.js +5 -0
  94. package/geometry/support/curves/splitCurveAtPoint.js +5 -0
  95. package/interfaces.d.ts +650 -22
  96. package/layers/MapImageLayer.js +1 -1
  97. package/layers/RouteLayer.js +1 -1
  98. package/layers/VideoLayer.js +1 -1
  99. package/layers/mixins/operationalLayers.js +1 -1
  100. package/layers/save/mapImageLayerUtils.js +5 -0
  101. package/package.json +1 -1
  102. package/portal/schemas/definitions.js +1 -1
  103. package/portal/support/portalItemUtils.js +1 -1
  104. package/rest/knowledgeGraph/GraphAddNamedTypesResult.js +5 -0
  105. package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.js +5 -0
  106. package/rest/knowledgeGraph/wasmInterface/WasmDataModelWrapperInterfaces.js +1 -1
  107. package/rest/knowledgeGraph/wasmInterface/updateToWasmEncodedFactories.js +1 -1
  108. package/rest/knowledgeGraph/wasmInterface/wasmToDataModelChangeResponseFactories.js +5 -0
  109. package/rest/knowledgeGraph/wasmInterface/wasmUtils.js +1 -1
  110. package/rest/knowledgeGraphService.js +1 -1
  111. package/support/revision.js +1 -1
  112. package/symbols/cim/CIMOperators.js +1 -1
  113. package/symbols/cim/effects/EffectSuppress.js +5 -0
  114. package/symbols/cim/effects/EffectTaperedPolygon.js +1 -1
  115. package/views/2d/layers/MediaLayerView2D.js +1 -1
  116. package/views/2d/layers/TileLayerView2D.js +1 -1
  117. package/views/2d/layers/VideoLayerView2D.js +1 -1
  118. package/views/2d/layers/graphics/GraphicStoreItem.js +1 -1
  119. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  120. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
  121. package/views/3d/environment/ChapmanAtmosphereTechniqueConfiguration.js +1 -1
  122. package/views/3d/environment/EnvironmentManager.js +1 -1
  123. package/views/3d/glTF/LoaderResult.js +1 -1
  124. package/views/3d/glTF/loader.js +1 -1
  125. package/views/3d/interactive/Manipulator3D.js +1 -1
  126. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  127. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  128. package/views/3d/interactive/visualElements/Object3DVisualElement.js +1 -1
  129. package/views/3d/interactive/visualElements/VisualElementResources.js +1 -1
  130. package/views/3d/layers/I3SMeshView3D.js +1 -1
  131. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  132. package/views/3d/layers/graphics/DeconflictAABR.js +5 -0
  133. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  134. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
  135. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  136. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  137. package/views/3d/layers/graphics/Labeler.js +1 -1
  138. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  139. package/views/3d/layers/graphics/pipeline/Feature3DPipeline.js +1 -1
  140. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorker.js +1 -1
  141. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorkerHandle.js +1 -1
  142. package/views/3d/layers/graphics/pipeline/FeatureProcessingContext.js +1 -1
  143. package/views/3d/layers/graphics/pipeline/rendering/DirectRenderer.js +1 -1
  144. package/views/3d/layers/graphics/pipeline/symbolization/IconSymbolLayerRenderer.js +5 -0
  145. package/views/3d/layers/graphics/pipeline/symbolization/ObjectSymbolLayerRenderer.js +5 -0
  146. package/views/3d/layers/graphics/pipeline/symbolization/Point3DSymbolRenderer.js +5 -0
  147. package/views/3d/layers/graphics/pipeline/symbolization/SimpleFeatureRenderer.js +1 -1
  148. package/views/3d/layers/graphics/pipeline/symbolization/UniqueValueFeatureRenderer.js +1 -1
  149. package/views/3d/layers/graphics/pipeline/symbolization/factoryUtils.js +5 -0
  150. package/views/3d/layers/graphics/pipeline/symbolization/primitiveObjectUtils.js +1 -1
  151. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  152. package/views/3d/webgl-engine/Stage.js +1 -1
  153. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  154. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  155. package/views/3d/webgl-engine/core/FBOCacheFormats.js +1 -1
  156. package/views/3d/webgl-engine/core/renderPasses/AllRenderPasses.js +1 -1
  157. package/views/3d/webgl-engine/core/shaderLibrary/shading/AnalyticalSkyModel.glsl.js +3 -3
  158. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js +2 -2
  159. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +15 -15
  160. package/views/3d/webgl-engine/core/shaderLibrary/shading/FoamRendering.glsl.js +3 -3
  161. package/views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js +1 -1
  162. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +10 -11
  163. package/views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js +1 -1
  164. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +3 -3
  165. package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +8 -8
  166. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +1 -1
  167. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js +27 -0
  168. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js +28 -0
  169. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  170. package/views/3d/webgl-engine/effects/haze/HazeTechniqueConfiguration.js +1 -1
  171. package/views/3d/webgl-engine/effects/weather/SnowCover.glsl.js +12 -0
  172. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  173. package/views/3d/webgl-engine/lib/ContentObjectType.js +1 -1
  174. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +5 -0
  175. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  176. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  177. package/views/3d/webgl-engine/lib/IntersectorTarget.js +1 -1
  178. package/views/3d/webgl-engine/lib/ModelDirtySet.js +1 -1
  179. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  180. package/views/3d/webgl-engine/lib/Octree.js +1 -1
  181. package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
  182. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  183. package/views/3d/webgl-engine/lib/RendererBase.js +1 -1
  184. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  185. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  186. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  187. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  188. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  189. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  190. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  191. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  192. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  193. package/views/3d/webgl-engine/parts/Model.js +1 -1
  194. package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
  195. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  196. package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
  197. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  198. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  199. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  200. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  201. package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
  202. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  203. package/views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js +9 -9
  204. package/views/3d/webgl-engine/shaders/Path.glsl.js +1 -1
  205. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  206. package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
  207. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  208. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
  209. package/views/3d/webgl-engine/shaders/ShadowCastAccumulate.glsl.js +1 -1
  210. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
  211. package/views/3d/webgl-engine/shaders/ToneMapping.glsl.js +2 -20
  212. package/views/SelectionManager.js +1 -1
  213. package/views/VideoView.js +1 -1
  214. package/views/ui/DefaultUI.js +1 -1
  215. package/views/webgl/Sync.js +5 -0
  216. package/webscene/support/FeatureReference.d.ts +4 -0
  217. package/webscene/support/FeatureReference.js +5 -0
  218. package/webscene/support/FeatureReferenceGlobalId.d.ts +4 -0
  219. package/webscene/support/FeatureReferenceGlobalId.js +5 -0
  220. package/webscene/support/FeatureReferenceId.d.ts +4 -0
  221. package/webscene/support/FeatureReferenceId.js +5 -0
  222. package/webscene/support/FeatureReferenceObjectId.d.ts +4 -0
  223. package/webscene/support/FeatureReferenceObjectId.js +5 -0
  224. package/webscene/support/LayerReference.d.ts +4 -0
  225. package/webscene/support/LayerReference.js +5 -0
  226. package/webscene/support/SlideElements.js +1 -1
  227. package/webscene/support/SlidePopupInfo.d.ts +4 -0
  228. package/webscene/support/SlidePopupInfo.js +5 -0
  229. package/webscene/support/featureReferenceUtils.js +5 -0
  230. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
  231. package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js +1 -1
  232. package/widgets/Directions/DirectionsViewModel.js +1 -1
  233. package/widgets/Directions.js +1 -1
  234. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  235. package/widgets/FeatureTable/support/AttachmentsViewOptions.d.ts +4 -0
  236. package/widgets/FeatureTable.js +1 -1
  237. package/widgets/Fullscreen/FullscreenViewModel.js +1 -1
  238. package/widgets/Fullscreen.js +1 -1
  239. package/widgets/LayerList/LayerListItem.js +1 -1
  240. package/widgets/NavigationToggle/NavigationToggleViewModel.js +1 -1
  241. package/widgets/NavigationToggle.js +1 -1
  242. package/widgets/VideoPlayer.js +1 -1
  243. package/widgets/Weather/WeatherViewModel.js +1 -1
  244. package/widgets/Weather.js +1 -1
  245. package/widgets/support/SelectionList/FeatureItem.js +1 -1
  246. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  247. package/widgets/support/SelectionList.js +1 -1
  248. package/assets/esri/core/workers/chunks/1a6d2d090b643a87408a.js +0 -1
  249. package/assets/esri/core/workers/chunks/25142d431dd1e5e82234.js +0 -1
  250. package/assets/esri/core/workers/chunks/2e3019ce49e972a815ca.js +0 -1
  251. package/assets/esri/core/workers/chunks/30551c1d3e4fa7be86c1.js +0 -2
  252. package/assets/esri/core/workers/chunks/3293b4041c222299428f.js +0 -1
  253. package/assets/esri/core/workers/chunks/4da99f058cca83937e9b.js +0 -1
  254. package/assets/esri/core/workers/chunks/626ba3a7dee952308566.js +0 -1
  255. package/assets/esri/core/workers/chunks/7fce62ef3f0b011e0d35.js +0 -1
  256. package/assets/esri/core/workers/chunks/8c8d812a7f2d29c29676.js +0 -1
  257. package/assets/esri/core/workers/chunks/97eedd6b90c6a9c67947.js +0 -1
  258. package/assets/esri/core/workers/chunks/b1e420cb425a3625170e.js +0 -319
  259. package/assets/esri/core/workers/chunks/b8248939373e25a8d6db.js +0 -1
  260. package/assets/esri/core/workers/chunks/baa9fd23414f03ef90bc.js +0 -1
  261. package/assets/esri/core/workers/chunks/bf4947fe446dcb477031.js +0 -1
  262. package/assets/esri/core/workers/chunks/cd2927b922444880566d.js +0 -1
  263. package/assets/esri/core/workers/chunks/d3a74087e076a3ae76ca.js +0 -1
  264. package/assets/esri/core/workers/chunks/def182fff5a0244b1c2c.js +0 -1
  265. package/assets/esri/core/workers/chunks/e08bff9f8247909776a4.js +0 -1
  266. package/assets/esri/core/workers/chunks/e524462c63834fae7e01.js +0 -2
  267. package/assets/esri/core/workers/chunks/e64e0c3240f8e577a61c.js +0 -39
  268. package/assets/esri/core/workers/chunks/f2bc75a718a10065011d.js +0 -1
  269. package/geometry/support/curveUtils.js +0 -5
  270. package/geometry/support/densifyUtils.js +0 -5
  271. package/views/3d/layers/graphics/pipeline/symbolization/Factory.js +0 -5
  272. package/views/3d/layers/graphics/pipeline/symbolization/TestObjectSymbol.js +0 -5
  273. package/views/3d/layers/graphics/pipeline/symbolization/TestSymbol.js +0 -5
  274. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.js +0 -38
  275. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.js +0 -35
  276. package/views/3d/webgl-engine/effects/bloom/BloomCompositionTechniqueConfiguration.js +0 -5
  277. package/widgets/support/InteractiveAnalysisViewModel.js +0 -5
@@ -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"../../../../../../../geometry/support/Ellipsoid.js";import"../../../../../terrain/OverlayContent.js";import"./ComponentData.glsl.js";import"./VertexDiscardMode.js";import"../../../../core/shaderLibrary/ForwardLinearDepth.glsl.js";import"../../../../core/shaderLibrary/ShaderOutput.js";import"../../../../core/shaderLibrary/Slice.glsl.js";import"../../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexColor.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexPosition.glsl.js";import"../../../../core/shaderLibrary/output/OutputDepth.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlightOverlay.js";import"../../../../core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../../../../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../../../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../../../../core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import"../../../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import"../../../../core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import"../../../../core/shaderLibrary/terrain/Overlay.glsl.js";import"../../../../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../../../../core/shaderLibrary/util/EllipsoidMode.js";import"../../../../core/shaderModules/glsl.js";import"../../../../core/shaderModules/Texture2DBindUniform.js";import"../../../../core/shaderModules/Texture2DPassUniform.js";import"../../../../shaders/OutputColorHighlightOID.glsl.js";import"../../../../../../webgl/ShaderBuilder.js";import"../../../../../../../webscene/support/AlphaCutoff.js";export{b as build}from"../../../../../../../chunks/ComponentShader.glsl.js";
5
+ import"../../../../../../../geometry/support/Ellipsoid.js";import"../../../../../terrain/OverlayContent.js";import"./ComponentData.glsl.js";import"./VertexDiscardMode.js";import"../../../../core/shaderLibrary/ForwardLinearDepth.glsl.js";import"../../../../core/shaderLibrary/ShaderOutput.js";import"../../../../core/shaderLibrary/Slice.glsl.js";import"../../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexColor.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexPosition.glsl.js";import"../../../../core/shaderLibrary/output/OutputDepth.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlightOverlay.js";import"../../../../core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../../../../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../../../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../../../../core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import"../../../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import"../../../../core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import"../../../../core/shaderLibrary/terrain/Overlay.glsl.js";import"../../../../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../../../../core/shaderLibrary/util/EllipsoidMode.js";import"../../../../core/shaderModules/glsl.js";import"../../../../core/shaderModules/Texture2DBindUniform.js";import"../../../../core/shaderModules/Texture2DPassUniform.js";import"../../../../effects/weather/SnowCover.glsl.js";import"../../../../shaders/OutputColorHighlightOID.glsl.js";import"../../../../../../webgl/ShaderBuilder.js";import"../../../../../../../webscene/support/AlphaCutoff.js";export{b as build}from"../../../../../../../chunks/ComponentShader.glsl.js";
@@ -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{PixelFormat as T,SizedPixelFormat as E,TextureWrapMode as N,TextureSamplingMode as R,PixelType as n,SizedDepthFormat as e,SizedDepthStencilFormat as t,UnsizedDepthFormat as o}from"../../../webgl/enums.js";import{RenderbufferDescriptor as r}from"../../../webgl/RenderbufferDescriptor.js";import{TextureDescriptor as _}from"../../../webgl/TextureDescriptor.js";import{isSizedDepthFormat as O}from"../../../webgl/textureUtils.js";var M,a,A;function G(T){return T>=M.COUNT}function P(T){return T>=a.COUNT}!function(T){T[T.R8UNORM=0]="R8UNORM",T[T.R8UINT=1]="R8UINT",T[T.RG8UNORM=2]="RG8UNORM",T[T.RG8UINT=3]="RG8UINT",T[T.RGBA4UNORM=4]="RGBA4UNORM",T[T.RGBA8UNORM=5]="RGBA8UNORM",T[T.RGBA8UNORM_MIPMAP=6]="RGBA8UNORM_MIPMAP",T[T.R16FLOAT=7]="R16FLOAT",T[T.RGBA16FLOAT=8]="RGBA16FLOAT",T[T.COUNT=9]="COUNT"}(M||(M={})),function(T){T[T.DEPTH16=9]="DEPTH16",T[T.COUNT=10]="COUNT"}(a||(a={})),function(T){T[T.DEPTH24_STENCIL8=10]="DEPTH24_STENCIL8"}(A||(A={}));const U=new _;U.pixelFormat=T.RED,U.internalFormat=E.R8,U.wrapMode=N.CLAMP_TO_EDGE;const i=new _;i.pixelFormat=T.RED_INTEGER,i.internalFormat=E.R8UI,i.wrapMode=N.CLAMP_TO_EDGE,i.samplingMode=R.NEAREST;const p=new _;p.pixelFormat=T.RG,p.internalFormat=E.RG8,p.wrapMode=N.CLAMP_TO_EDGE;const D=new _;D.pixelFormat=T.RG_INTEGER,D.internalFormat=E.RG8UI,D.wrapMode=N.CLAMP_TO_EDGE,D.samplingMode=R.NEAREST;const m=new _;m.internalFormat=E.RGBA4,m.dataType=n.UNSIGNED_SHORT_4_4_4_4,m.wrapMode=N.CLAMP_TO_EDGE;const I=new _;I.wrapMode=N.CLAMP_TO_EDGE;const F=new _;F.wrapMode=N.CLAMP_TO_EDGE,F.samplingMode=R.LINEAR_MIPMAP_LINEAR,F.hasMipmap=!0,F.maxAnisotropy=8;const L=new _;L.pixelFormat=T.RED,L.dataType=n.HALF_FLOAT,L.internalFormat=E.R16F,L.samplingMode=R.NEAREST;const l=new _;l.dataType=n.HALF_FLOAT,l.internalFormat=E.RGBA16F,l.wrapMode=N.CLAMP_TO_EDGE;const C={[M.R8UNORM]:U,[M.R8UINT]:i,[M.RG8UNORM]:p,[M.RG8UINT]:D,[M.RGBA4UNORM]:m,[M.RGBA8UNORM]:I,[M.RGBA8UNORM_MIPMAP]:F,[M.R16FLOAT]:L,[M.RGBA16FLOAT]:l,[M.COUNT]:null},s={[e.DEPTH_COMPONENT16]:n.UNSIGNED_SHORT,[e.DEPTH_COMPONENT24]:n.UNSIGNED_INT,[e.DEPTH_COMPONENT32F]:n.FLOAT,[t.DEPTH24_STENCIL8]:n.UNSIGNED_INT_24_8,[t.DEPTH32F_STENCIL8]:n.FLOAT_32_UNSIGNED_INT_24_8_REV},w={[a.DEPTH16]:new r(e.DEPTH_COMPONENT16),[a.COUNT]:null},c={[A.DEPTH24_STENCIL8]:d(t.DEPTH24_STENCIL8)};function d(T){const E=new _;return E.pixelFormat=O(T)?o.DEPTH_COMPONENT:o.DEPTH_STENCIL,E.dataType=s[T],E.samplingMode=R.NEAREST,E.wrapMode=N.CLAMP_TO_EDGE,E.internalFormat=T,E.hasMipmap=!1,E.isImmutable=!0,E}export{M as ColorFormat,C as ColorFormats,a as DepthRenderbufferFormat,w as DepthRenderbufferFormats,A as DepthTextureFormat,c as DepthTextureFormats,G as isDepthFormat,P as isDepthTextureFormat};
5
+ import{PixelFormat as T,SizedPixelFormat as R,TextureWrapMode as E,TextureSamplingMode as n,PixelType as N,SizedDepthFormat as e,SizedDepthStencilFormat as t,UnsizedDepthFormat as o}from"../../../webgl/enums.js";import{RenderbufferDescriptor as r}from"../../../webgl/RenderbufferDescriptor.js";import{TextureDescriptor as O}from"../../../webgl/TextureDescriptor.js";import{isSizedDepthFormat as a}from"../../../webgl/textureUtils.js";var _,M,A;function G(T){return T>=_.COUNT}function i(T){return T>=M.COUNT}!function(T){T[T.R8UNORM=0]="R8UNORM",T[T.R8UINT=1]="R8UINT",T[T.RG8UNORM=2]="RG8UNORM",T[T.RG8UINT=3]="RG8UINT",T[T.RGBA4UNORM=4]="RGBA4UNORM",T[T.RGBA8UNORM=5]="RGBA8UNORM",T[T.RGBA8UNORM_MIPMAP=6]="RGBA8UNORM_MIPMAP",T[T.R16FLOAT=7]="R16FLOAT",T[T.RGBA16FLOAT=8]="RGBA16FLOAT",T[T.R32FLOAT=9]="R32FLOAT",T[T.COUNT=10]="COUNT"}(_||(_={})),function(T){T[T.DEPTH16=10]="DEPTH16",T[T.COUNT=11]="COUNT"}(M||(M={})),function(T){T[T.DEPTH24_STENCIL8=11]="DEPTH24_STENCIL8"}(A||(A={}));const p=new O;p.pixelFormat=T.RED,p.internalFormat=R.R8,p.wrapMode=E.CLAMP_TO_EDGE;const F=new O;F.pixelFormat=T.RED_INTEGER,F.internalFormat=R.R8UI,F.wrapMode=E.CLAMP_TO_EDGE,F.samplingMode=n.NEAREST;const P=new O;P.pixelFormat=T.RG,P.internalFormat=R.RG8,P.wrapMode=E.CLAMP_TO_EDGE;const U=new O;U.pixelFormat=T.RG_INTEGER,U.internalFormat=R.RG8UI,U.wrapMode=E.CLAMP_TO_EDGE,U.samplingMode=n.NEAREST;const m=new O;m.internalFormat=R.RGBA4,m.dataType=N.UNSIGNED_SHORT_4_4_4_4,m.wrapMode=E.CLAMP_TO_EDGE;const D=new O;D.wrapMode=E.CLAMP_TO_EDGE;const L=new O;L.wrapMode=E.CLAMP_TO_EDGE,L.samplingMode=n.LINEAR_MIPMAP_LINEAR,L.hasMipmap=!0,L.maxAnisotropy=8;const l=new O;l.pixelFormat=T.RED,l.dataType=N.HALF_FLOAT,l.internalFormat=R.R16F,l.samplingMode=n.NEAREST;const I=new O;I.dataType=N.HALF_FLOAT,I.internalFormat=R.RGBA16F,I.wrapMode=E.CLAMP_TO_EDGE;const s=new O;s.pixelFormat=T.RED,s.dataType=N.FLOAT,s.internalFormat=R.R32F,s.samplingMode=n.NEAREST;const C={[_.R8UNORM]:p,[_.R8UINT]:F,[_.RG8UNORM]:P,[_.RG8UINT]:U,[_.RGBA4UNORM]:m,[_.RGBA8UNORM]:D,[_.RGBA8UNORM_MIPMAP]:L,[_.R16FLOAT]:l,[_.RGBA16FLOAT]:I,[_.R32FLOAT]:s,[_.COUNT]:null},w={[e.DEPTH_COMPONENT16]:N.UNSIGNED_SHORT,[e.DEPTH_COMPONENT24]:N.UNSIGNED_INT,[e.DEPTH_COMPONENT32F]:N.FLOAT,[t.DEPTH24_STENCIL8]:N.UNSIGNED_INT_24_8,[t.DEPTH32F_STENCIL8]:N.FLOAT_32_UNSIGNED_INT_24_8_REV},d={[M.DEPTH16]:new r(e.DEPTH_COMPONENT16),[M.COUNT]:null},c={[A.DEPTH24_STENCIL8]:H(t.DEPTH24_STENCIL8)};function H(T){const R=new O;return R.pixelFormat=a(T)?o.DEPTH_COMPONENT:o.DEPTH_STENCIL,R.dataType=w[T],R.samplingMode=n.NEAREST,R.wrapMode=E.CLAMP_TO_EDGE,R.internalFormat=T,R.hasMipmap=!1,R.isImmutable=!0,R}export{_ as ColorFormat,C as ColorFormats,M as DepthRenderbufferFormat,d as DepthRenderbufferFormats,A as DepthTextureFormat,c as DepthTextureFormats,G as isDepthFormat,i as isDepthTextureFormat};
@@ -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 t}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{RenderPass as s,RenderPassSorting as e}from"./RenderPass.js";import{RenderPassIdentifier as i}from"./RenderPassIdentifier.js";import{ShaderOutput as r}from"../shaderLibrary/ShaderOutput.js";import{VertexNormalPassParameters as a,VertexNormalDrawParameters as n}from"../shaderLibrary/attributes/VertexNormal.glsl.js";class o{constructor(t){const i=t.renderContext.rctx,r=t.techniques;this.opaque=new s(i,r),this.transparent=new s(i,r,e.BackToFront),this.integratedMesh=new s(i,r),this.shadowMap=new s(i,r),this.highlight=new s(i,r),this.highlightIntegratedMesh=new s(i,r),this.highlightShadowMap=new s(i,r),this.viewshedShadowMap=new s(i,r),this.defaultShadowMap=new s(i,r)}}class h extends a{constructor(){super(...arguments),this.slicePlaneLocalOrigin=t(),this.origin=this.slicePlaneLocalOrigin,this.modelTransformation=null}}class c extends n{}class d extends h{constructor(){super(...arguments),this.identifier=i.Material,this.output=r.Color,this.transparent=!1}}class l extends h{constructor(){super(...arguments),this.identifier=i.ShadowMap}}class p extends h{constructor(){super(...arguments),this.identifier=i.Highlight}}class u extends h{constructor(){super(...arguments),this.identifier=i.ViewshedShadowMap}}export{o as AllRenderPasses,c as DrawParameters,p as HighlightPassParameters,d as MaterialPassParameters,h as PassParameters,l as ShadowMapPassParameters,u as ViewshedShadowMapPassParameters};
5
+ import{create as t}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{RenderPass as s,RenderPassSorting as e}from"./RenderPass.js";import{RenderPassIdentifier as i}from"./RenderPassIdentifier.js";import{ShaderOutput as r}from"../shaderLibrary/ShaderOutput.js";import{VertexNormalPassParameters as a,VertexNormalDrawParameters as n}from"../shaderLibrary/attributes/VertexNormal.glsl.js";class h{constructor(t){const i=t.renderContext.rctx,r=t.techniques;this.opaque=new s(i,r),this.transparent=new s(i,r,e.BackToFront),this.integratedMesh=new s(i,r),this.shadowMap=new s(i,r),this.highlight=new s(i,r),this.highlightIntegratedMesh=new s(i,r),this.highlightShadowMap=new s(i,r),this.viewshedShadowMap=new s(i,r),this.defaultShadowMap=new s(i,r)}}class o extends a{constructor(){super(...arguments),this.slicePlaneLocalOrigin=t(),this.origin=this.slicePlaneLocalOrigin}}class c extends n{}class d extends o{constructor(){super(...arguments),this.identifier=i.Material,this.output=r.Color,this.transparent=!1}}class l extends o{constructor(){super(...arguments),this.identifier=i.ShadowMap}}class p extends o{constructor(){super(...arguments),this.identifier=i.Highlight}}class u extends o{constructor(){super(...arguments),this.identifier=i.ViewshedShadowMap}}export{h as AllRenderPasses,c as DrawParameters,p as HighlightPassParameters,d as MaterialPassParameters,o as PassParameters,l as ShadowMapPassParameters,u as ViewshedShadowMapPassParameters};
@@ -2,11 +2,11 @@
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{glsl as e}from"../../shaderModules/glsl.js";function t(t){const a=t.fragment.code;a.add(e`vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG) {
5
+ import{glsl as e}from"../../shaderModules/glsl.js";function t(t){t.code.add(e`vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG) {
6
6
  return ((1.0 - NdotNG) * ambientGround + (1.0 + NdotNG) * ambientSky) * 0.5;
7
- }`),a.add(e`float integratedRadiance(float cosTheta2, float roughness) {
7
+ }`),t.code.add(e`float integratedRadiance(float cosTheta2, float roughness) {
8
8
  return (cosTheta2 - 1.0) / (cosTheta2 * (1.0 - roughness * roughness) - 1.0);
9
- }`),a.add(e`vec3 evaluateSpecularIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float RdotNG, float roughness) {
9
+ }`),t.code.add(e`vec3 evaluateSpecularIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float RdotNG, float roughness) {
10
10
  float cosTheta2 = 1.0 - RdotNG * RdotNG;
11
11
  float intRadTheta = integratedRadiance(cosTheta2, roughness);
12
12
  float ground = RdotNG < 0.0 ? 1.0 - intRadTheta : 1.0 + intRadTheta;
@@ -2,11 +2,11 @@
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{glsl as e}from"../../shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../../shaderModules/Texture2DBindUniform.js";import{blurSizePixels as r}from"../../../effects/ssao/SSAO.js";function t(t,o){const n=t.fragment;o.receiveAmbientOcclusion?(n.uniforms.add(new s("ssaoTex",(e=>e.ssao?.getTexture()))),n.constants.add("blurSizePixelsInverse","float",1/r),n.code.add(e`float evaluateAmbientOcclusionInverse() {
5
+ import{glsl as e}from"../../shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../../shaderModules/Texture2DBindUniform.js";import{blurSizePixels as r}from"../../../effects/ssao/SSAO.js";function t(t,o){o.receiveAmbientOcclusion?(t.uniforms.add(new s("ssaoTex",(e=>e.ssao?.getTexture()))),t.constants.add("blurSizePixelsInverse","float",1/r),t.code.add(e`float evaluateAmbientOcclusionInverse() {
6
6
  vec2 ssaoTextureSizeInverse = 1.0 / vec2(textureSize(ssaoTex, 0));
7
7
  return texture(ssaoTex, gl_FragCoord.xy * blurSizePixelsInverse * ssaoTextureSizeInverse).r;
8
8
  }
9
9
  float evaluateAmbientOcclusion() {
10
10
  return 1.0 - evaluateAmbientOcclusionInverse();
11
- }`)):n.code.add(e`float evaluateAmbientOcclusionInverse() { return 1.0; }
11
+ }`)):t.code.add(e`float evaluateAmbientOcclusionInverse() { return 1.0; }
12
12
  float evaluateAmbientOcclusion() { return 0.0; }`)}export{t as EvaluateAmbientOcclusion};
@@ -2,19 +2,19 @@
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{colorGamma as i}from"../../../../../../colorUtils.js";import"../../../../../../core/has.js";import{EvaluateAmbientLighting as n}from"./EvaluateAmbientLighting.glsl.js";import{EvaluateAmbientOcclusion as e}from"./EvaluateAmbientOcclusion.glsl.js";import{addMainLightDirection as o,addMainLightIntensity as t,applyShading as a}from"./MainLighting.glsl.js";import{PhysicallyBasedRendering as r}from"./PhysicallyBasedRendering.glsl.js";import{PBRMode as l}from"./PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as c}from"./PiUtils.glsl.js";import{BooleanBindUniform as d}from"../../shaderModules/BooleanBindUniform.js";import{FloatBindUniform as s}from"../../shaderModules/FloatBindUniform.js";import{glsl as m,If as g}from"../../shaderModules/glsl.js";import{ambientBoost as h}from"../../../lighting/SceneLighting.js";import{BlackLevelLightSoftCompression as u}from"../../../shaders/BlackLevelLightSoftCompression.glsl.js";function p(i){i.constants.add("ambientBoostFactor","float",h)}function v(i){i.uniforms.add(new s("lightingGlobalFactor",(i=>i.lighting.globalFactor)))}function f(h,f){const L=h.fragment,{pbrMode:b,spherical:C,hasColorTexture:N}=f;h.include(e,f),b!==l.Disabled&&h.include(r,f),h.include(n,f),h.include(c);const R=!(b===l.Schematic&&!N);switch(R&&L.include(u),L.code.add(m`
5
+ import{colorGamma as i}from"../../../../../../colorUtils.js";import"../../../../../../core/has.js";import{EvaluateAmbientLighting as n}from"./EvaluateAmbientLighting.glsl.js";import{EvaluateAmbientOcclusion as e}from"./EvaluateAmbientOcclusion.glsl.js";import{addMainLightDirection as o,addMainLightIntensity as t,applyShading as a}from"./MainLighting.glsl.js";import{PhysicallyBasedRendering as r}from"./PhysicallyBasedRendering.glsl.js";import{PBRMode as l}from"./PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as c}from"./PiUtils.glsl.js";import{BooleanBindUniform as d}from"../../shaderModules/BooleanBindUniform.js";import{FloatBindUniform as s}from"../../shaderModules/FloatBindUniform.js";import{glsl as m,If as g}from"../../shaderModules/glsl.js";import{ambientBoost as h}from"../../../lighting/SceneLighting.js";import{BlackLevelLightSoftCompression as u}from"../../../shaders/BlackLevelLightSoftCompression.glsl.js";import{ToneMapping as p}from"../../../shaders/ToneMapping.glsl.js";function v(i){i.constants.add("ambientBoostFactor","float",h)}function f(i){i.uniforms.add(new s("lightingGlobalFactor",(i=>i.lighting.globalFactor)))}function L(h,L){const b=h.fragment,{pbrMode:C,spherical:N,hasColorTexture:R}=L;b.include(e,L),C!==l.Disabled&&b.include(r,L),h.include(n,L),b.include(c),b.include(p,L);const D=!(C===l.Schematic&&!R);switch(D&&b.include(u),b.code.add(m`
6
6
  const float GAMMA_SRGB = ${m.float(i)};
7
7
  const float INV_GAMMA_SRGB = 0.4761904;
8
- ${g(b!==l.Disabled,"const float GROUND_REFLECTANCE = 0.2;")}
9
- `),p(L),v(L),o(L),L.code.add(m`
8
+ ${g(C!==l.Disabled,"const float GROUND_REFLECTANCE = 0.2;")}
9
+ `),v(b),f(b),o(b),b.code.add(m`
10
10
  float additionalDirectedAmbientLight(vec3 vPosWorld) {
11
- float vndl = dot(${C?m`normalize(vPosWorld)`:m`vec3(0.0, 0.0, 1.0)`}, mainLightDirection);
11
+ float vndl = dot(${N?m`normalize(vPosWorld)`:m`vec3(0.0, 0.0, 1.0)`}, mainLightDirection);
12
12
  return smoothstep(0.0, 1.0, clamp(vndl * 2.5, 0.0, 1.0));
13
13
  }
14
- `),t(L),L.code.add(m`vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {
14
+ `),t(b),b.code.add(m`vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {
15
15
  float additionalAmbientScale = additionalDirectedAmbientLight(vPosWorld);
16
16
  return (1.0 - ambientOcclusion) * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor * mainLightIntensity;
17
- }`),b){case l.Disabled:case l.WaterOnIntegratedMesh:case l.Water:h.include(a),L.code.add(m`vec3 evaluateSceneLighting(vec3 normalWorld, vec3 albedo, float shadow, float ssao, vec3 additionalLight) {
17
+ }`),C){case l.Disabled:case l.WaterOnIntegratedMesh:case l.Water:h.include(a),b.code.add(m`vec3 evaluateSceneLighting(vec3 normalWorld, vec3 albedo, float shadow, float ssao, vec3 additionalLight) {
18
18
  vec3 mainLighting = applyShading(normalWorld, shadow);
19
19
  vec3 ambientLighting = calculateAmbientIrradiance(normalWorld, ssao);
20
20
  vec3 albedoLinear = pow(albedo, vec3(GAMMA_SRGB));
@@ -22,7 +22,7 @@ vec3 totalLight = mainLighting + ambientLighting + additionalLight;
22
22
  totalLight = min(totalLight, vec3(PI));
23
23
  vec3 outColor = vec3((albedoLinear / PI) * totalLight);
24
24
  return pow(outColor, vec3(INV_GAMMA_SRGB));
25
- }`);break;case l.Normal:case l.Schematic:L.code.add(m`const float fillLightIntensity = 0.25;
25
+ }`);break;case l.Normal:case l.Schematic:b.code.add(m`const float fillLightIntensity = 0.25;
26
26
  const float horizonLightDiffusion = 0.4;
27
27
  const float additionalAmbientIrradianceFactor = 0.02;
28
28
  vec3 evaluateSceneLightingPBR(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight,
@@ -38,9 +38,9 @@ inputs.RdotNG = clamp(dot(reflectedView, groundNormal), -1.0, 1.0);
38
38
  inputs.albedoLinear = pow(albedo, vec3(GAMMA_SRGB));
39
39
  inputs.ssao = ssao;
40
40
  inputs.metalness = mrr[0];
41
- inputs.roughness = clamp(mrr[1] * mrr[1], 0.001, 0.99);`),L.code.add(m`inputs.f0 = (0.16 * mrr[2] * mrr[2]) * (1.0 - inputs.metalness) + inputs.albedoLinear * inputs.metalness;
41
+ inputs.roughness = clamp(mrr[1] * mrr[1], 0.001, 0.99);`),b.code.add(m`inputs.f0 = (0.16 * mrr[2] * mrr[2]) * (1.0 - inputs.metalness) + inputs.albedoLinear * inputs.metalness;
42
42
  inputs.f90 = vec3(clamp(dot(inputs.f0, vec3(50.0 * 0.33)), 0.0, 1.0));
43
- inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);`),f.useFillLights?L.uniforms.add(new d("hasFillLights",(i=>i.enableFillLights))):L.constants.add("hasFillLights","bool",!1),L.code.add(m`vec3 ambientDir = vec3(5.0 * groundNormal[1] - groundNormal[0] * groundNormal[2], - 5.0 * groundNormal[0] - groundNormal[2] * groundNormal[1], groundNormal[1] * groundNormal[1] + groundNormal[0] * groundNormal[0]);
43
+ inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);`),L.useFillLights?b.uniforms.add(new d("hasFillLights",(i=>i.enableFillLights))):b.constants.add("hasFillLights","bool",!1),b.code.add(m`vec3 ambientDir = vec3(5.0 * groundNormal[1] - groundNormal[0] * groundNormal[2], - 5.0 * groundNormal[0] - groundNormal[2] * groundNormal[1], groundNormal[1] * groundNormal[1] + groundNormal[0] * groundNormal[0]);
44
44
  ambientDir = ambientDir != vec3(0.0) ? normalize(ambientDir) : normalize(vec3(5.0, -1.0, 0.0));
45
45
  inputs.NdotAmbDir = hasFillLights ? abs(dot(normal, ambientDir)) : 1.0;
46
46
  float NdotL = clamp(dot(normal, mainLightDirection), 0.001, 1.0);
@@ -48,7 +48,7 @@ vec3 mainLightIrradianceComponent = NdotL * (1.0 - shadow) * mainLightIntensity;
48
48
  vec3 fillLightsIrradianceComponent = inputs.NdotAmbDir * mainLightIntensity * fillLightIntensity;
49
49
  vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(normal, ssao) + additionalLight;
50
50
  inputs.skyIrradianceToSurface = ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;
51
- inputs.groundIrradianceToSurface = GROUND_REFLECTANCE * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;`),L.uniforms.add(new s("lightingSpecularStrength",(i=>i.lighting.mainLight.specularStrength)),new s("lightingEnvironmentStrength",(i=>i.lighting.mainLight.environmentStrength))).code.add(m`vec3 horizonRingDir = inputs.RdotNG * groundNormal - reflectedView;
51
+ inputs.groundIrradianceToSurface = GROUND_REFLECTANCE * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;`),b.uniforms.add(new s("lightingSpecularStrength",(i=>i.lighting.mainLight.specularStrength)),new s("lightingEnvironmentStrength",(i=>i.lighting.mainLight.environmentStrength))).code.add(m`vec3 horizonRingDir = inputs.RdotNG * groundNormal - reflectedView;
52
52
  vec3 horizonRingH = normalize(viewDirection + horizonRingDir);
53
53
  inputs.NdotH_Horizon = dot(normal, horizonRingH);
54
54
  float NdotH = clamp(dot(normal, h), 0.0, 1.0);
@@ -58,15 +58,15 @@ vec3 ambientLightRadianceComponent = lightingEnvironmentStrength * calculateAmbi
58
58
  float normalDirectionModifier = mix(1., min(mix(0.1, 2.0, (inputs.NdotNG + 1.) * 0.5), 1.0), clamp(inputs.roughness * 5.0, 0.0 , 1.0));
59
59
  inputs.skyRadianceToSurface = (ambientLightRadianceComponent + horizonLightRadianceComponent) * normalDirectionModifier + mainLightRadianceComponent;
60
60
  inputs.groundRadianceToSurface = 0.5 * GROUND_REFLECTANCE * (ambientLightRadianceComponent + horizonLightRadianceComponent) * normalDirectionModifier + mainLightRadianceComponent;
61
- inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + GROUND_REFLECTANCE);`),L.code.add(m`
61
+ inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + GROUND_REFLECTANCE);`),b.code.add(m`
62
62
  vec3 reflectedColorComponent = evaluateEnvironmentIllumination(inputs);
63
63
  vec3 additionalMaterialReflectanceComponent = inputs.albedoLinear * additionalAmbientIrradiance;
64
- vec3 emissionComponent = _emission.rgb == vec3(0.0) ? _emission.rgb : pow(_emission.rgb, vec3(GAMMA_SRGB));
64
+ vec3 emissionComponent = _emission.rgb == vec3(0.0) ? _emission.rgb : tonemapACES(pow(_emission.rgb, vec3(GAMMA_SRGB)));
65
65
  vec3 outColorLinear = reflectedColorComponent + additionalMaterialReflectanceComponent + emissionComponent;
66
- ${R?m`vec3 outColor = pow(blackLevelSoftCompression(outColorLinear, inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`:m`vec3 outColor = pow(max(vec3(0.0), outColorLinear - 0.005 * inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`}
66
+ ${D?m`vec3 outColor = pow(blackLevelSoftCompression(outColorLinear, inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`:m`vec3 outColor = pow(max(vec3(0.0), outColorLinear - 0.005 * inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`}
67
67
  return outColor;
68
68
  }
69
- `);break;case l.Simplified:case l.TerrainWithWater:o(L),t(L),L.code.add(m`const float roughnessTerrain = 0.5;
69
+ `);break;case l.Simplified:case l.TerrainWithWater:o(b),t(b),b.code.add(m`const float roughnessTerrain = 0.5;
70
70
  const float specularityTerrain = 0.5;
71
71
  const vec3 fresnelReflectionTerrain = vec3(0.04);
72
72
  vec3 evaluatePBRSimplifiedLighting(vec3 n, vec3 c, float shadow, float ssao, vec3 al, vec3 vd, vec3 nup) {
@@ -92,4 +92,4 @@ vec3 specularComponent = specularityTerrain * specularColor * mainLightRadianceC
92
92
  vec3 outColorLinear = outDiffColor + specularComponent;
93
93
  vec3 outColor = pow(outColorLinear, vec3(INV_GAMMA_SRGB));
94
94
  return outColor;
95
- }`);default:case l.COUNT:}}export{f as EvaluateSceneLighting,p as addAmbientBoostFactor,v as addLightingGlobalFactor};
95
+ }`);default:case l.COUNT:}}export{L as EvaluateSceneLighting,v as addAmbientBoostFactor,f as addLightingGlobalFactor};
@@ -2,9 +2,9 @@
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{glsl as t}from"../../shaderModules/glsl.js";function o(o){o.fragment.code.add(t`float normals2FoamIntensity(vec3 n, float waveStrength){
5
+ import{glsl as o}from"../../shaderModules/glsl.js";function t(t){t.code.add(o`float normals2FoamIntensity(vec3 n, float waveStrength){
6
6
  float normalizationFactor = max(0.015, waveStrength);
7
7
  return max((n.x + n.y)*0.3303545/normalizationFactor + 0.3303545, 0.0);
8
- }`)}function n(o){o.fragment.code.add(t`vec3 foamIntensity2FoamColor(float foamIntensityExternal, float foamPixelIntensity, vec3 skyZenitColor, float dayMod){
8
+ }`)}function n(t){t.code.add(o`vec3 foamIntensity2FoamColor(float foamIntensityExternal, float foamPixelIntensity, vec3 skyZenitColor, float dayMod){
9
9
  return foamIntensityExternal * (0.075 * skyZenitColor * pow(foamPixelIntensity, 4.) + 50.* pow(foamPixelIntensity, 23.0)) * dayMod;
10
- }`)}export{n as FoamColor,o as FoamIntensity};
10
+ }`)}export{n as FoamColor,t as FoamIntensity};
@@ -2,7 +2,7 @@
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{colorGamma as o}from"../../../../../../colorUtils.js";import{glsl as r}from"../../shaderModules/glsl.js";function e(e){e.fragment.code.add(r`
5
+ import{colorGamma as o}from"../../../../../../colorUtils.js";import{glsl as r}from"../../shaderModules/glsl.js";function e(e){e.code.add(r`
6
6
  const float GAMMA = ${r.float(o)};
7
7
  const float INV_GAMMA = ${r.float(1/o)};
8
8
 
@@ -2,19 +2,19 @@
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{AnalyticalSkyModel as e}from"./AnalyticalSkyModel.glsl.js";import{PBRMode as o}from"./PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as t}from"./PiUtils.glsl.js";import{glsl as a}from"../../shaderModules/glsl.js";function n(n,r){const l=n.fragment.code;n.include(t),r.pbrMode!==o.Normal&&r.pbrMode!==o.Schematic&&r.pbrMode!==o.Simplified&&r.pbrMode!==o.TerrainWithWater||(l.add(a`float normalDistribution(float NdotH, float roughness)
5
+ import{AnalyticalSkyModel as e}from"./AnalyticalSkyModel.glsl.js";import{PBRMode as o}from"./PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as t}from"./PiUtils.glsl.js";import{glsl as a}from"../../shaderModules/glsl.js";function n(n,r){n.include(t),r.pbrMode!==o.Normal&&r.pbrMode!==o.Schematic&&r.pbrMode!==o.Simplified&&r.pbrMode!==o.TerrainWithWater||(n.code.add(a`float normalDistribution(float NdotH, float roughness)
6
6
  {
7
7
  float a = NdotH * roughness;
8
8
  float b = roughness / (1.0 - NdotH * NdotH + a * a);
9
9
  return b * b * INV_PI;
10
- }`),l.add(a`const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);
10
+ }`),n.code.add(a`const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);
11
11
  const vec4 c1 = vec4( 1.0, 0.0425, 1.040, -0.040);
12
12
  const vec2 c2 = vec2(-1.04, 1.04);
13
13
  vec2 prefilteredDFGAnalytical(float roughness, float NdotV) {
14
14
  vec4 r = roughness * c0 + c1;
15
15
  float a004 = min(r.x * r.x, exp2(-9.28 * NdotV)) * r.x + r.y;
16
16
  return c2 * a004 + r.zw;
17
- }`)),r.pbrMode!==o.Normal&&r.pbrMode!==o.Schematic||(n.include(e),l.add(a`struct PBRShadingInfo
17
+ }`)),r.pbrMode!==o.Normal&&r.pbrMode!==o.Schematic||(n.include(e),n.code.add(a`struct PBRShadingInfo
18
18
  {
19
19
  float NdotV;
20
20
  float LdotH;
@@ -34,7 +34,7 @@ vec3 f90;
34
34
  vec3 diffuseColor;
35
35
  float metalness;
36
36
  float roughness;
37
- };`),l.add(a`vec3 evaluateEnvironmentIllumination(PBRShadingInfo inputs) {
37
+ };`),n.code.add(a`vec3 evaluateEnvironmentIllumination(PBRShadingInfo inputs) {
38
38
  vec3 indirectDiffuse = evaluateDiffuseIlluminationHemisphere(inputs.groundIrradianceToSurface, inputs.skyIrradianceToSurface, inputs.NdotNG);
39
39
  vec3 indirectSpecular = evaluateSpecularIlluminationHemisphere(inputs.groundRadianceToSurface, inputs.skyRadianceToSurface, inputs.RdotNG, inputs.roughness);
40
40
  vec3 diffuseComponent = inputs.diffuseColor * indirectDiffuse * INV_PI;
@@ -42,9 +42,8 @@ vec2 dfg = prefilteredDFGAnalytical(inputs.roughness, inputs.NdotV);
42
42
  vec3 specularColor = inputs.f0 * dfg.x + inputs.f90 * dfg.y;
43
43
  vec3 specularComponent = specularColor * indirectSpecular;
44
44
  return (diffuseComponent + specularComponent);
45
- }`))}function r(e,o){const n=e.fragment.code;e.include(t),n.add(a`
46
- struct PBRShadingWater
47
- {
45
+ }`))}function r(e,o){e.include(t),e.code.add(a`
46
+ struct PBRShadingWater {
48
47
  float NdotL; // cos angle between normal and light direction
49
48
  float NdotV; // cos angle between normal and view direction
50
49
  float NdotH; // cos angle between normal and half vector
@@ -54,16 +53,16 @@ return (diffuseComponent + specularComponent);
54
53
  };
55
54
 
56
55
  float dtrExponent = ${o.useCustomDTRExponentForWater?"2.2":"2.0"};
57
- `),n.add(a`vec3 fresnelReflection(float angle, vec3 f0, float f90) {
56
+ `),e.code.add(a`vec3 fresnelReflection(float angle, vec3 f0, float f90) {
58
57
  return f0 + (f90 - f0) * pow(1.0 - angle, 5.0);
59
- }`),n.add(a`float normalDistributionWater(float NdotH, float roughness) {
58
+ }`),e.code.add(a`float normalDistributionWater(float NdotH, float roughness) {
60
59
  float r2 = roughness * roughness;
61
60
  float NdotH2 = NdotH * NdotH;
62
61
  float denom = pow((NdotH2 * (r2 - 1.0) + 1.0), dtrExponent) * PI;
63
62
  return r2 / denom;
64
- }`),n.add(a`float geometricOcclusionKelemen(float LoH) {
63
+ }`),e.code.add(a`float geometricOcclusionKelemen(float LoH) {
65
64
  return 0.25 / (LoH * LoH);
66
- }`),n.add(a`vec3 brdfSpecularWater(in PBRShadingWater props, float roughness, vec3 F0, float F0Max) {
65
+ }`),e.code.add(a`vec3 brdfSpecularWater(in PBRShadingWater props, float roughness, vec3 F0, float F0Max) {
67
66
  vec3 F = fresnelReflection(props.VdotH, F0, F0Max);
68
67
  float dSun = normalDistributionWater(props.NdotH, roughness);
69
68
  float V = geometricOcclusionKelemen(props.LdotH);
@@ -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
- function t(t){const a=3.141592653589793,n=.3183098861837907;t.vertex.constants.add("PI","float",a),t.fragment.constants.add("PI","float",a),t.fragment.constants.add("LIGHT_NORMALIZATION","float",n),t.fragment.constants.add("INV_PI","float",n),t.fragment.constants.add("HALF_PI","float",1.570796326794897),t.fragment.constants.add("TWO_PI","float",6.28318530717958)}export{t as PiUtils};
5
+ function t(t){const a=3.141592653589793,n=.3183098861837907;t.constants.add("PI","float",a),t.constants.add("LIGHT_NORMALIZATION","float",n),t.constants.add("INV_PI","float",n),t.constants.add("HALF_PI","float",1.570796326794897),t.constants.add("TWO_PI","float",6.28318530717958)}export{t as PiUtils};
@@ -2,7 +2,7 @@
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{IDENTITY as a}from"../../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{create as e}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadShadowMapOrigin as o,calculateUVZShadowPass as s,calculateUVZShadowDraw as t}from"./calculateUVZShadow.js";import{Rgba4FloatEncoding as d}from"../util/RgbaFloat16Encoding.glsl.js";import{glsl as r}from"../../shaderModules/glsl.js";import{Texture2DBindUniform as h}from"../../shaderModules/Texture2DBindUniform.js";import{NoParameters as i}from"../../../../../webgl/NoParameters.js";class c extends o{}class w extends i{constructor(){super(...arguments),this.modelTransformation=a}}class p extends w{constructor(){super(...arguments),this.origin=e()}}function l(a,e){e.receiveShadows&&(a.include(s),u(a))}function v(a,e){e.receiveShadows&&(a.include(t),u(a))}function u(a){const{fragment:e}=a;e.include(d),e.uniforms.add(new h("shadowMap",(a=>a.shadowMap.depthTexture))).code.add(r`float readShadowMapDepth(ivec2 uv, sampler2D _shadowMap) {
5
+ import{create as a}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadShadowMapOrigin as e,calculateUVZShadowPass as o,calculateUVZShadowDraw as s}from"./calculateUVZShadow.glsl.js";import{Rgba4FloatEncoding as d}from"../util/RgbaFloat16Encoding.glsl.js";import{glsl as t}from"../../shaderModules/glsl.js";import{Texture2DBindUniform as r}from"../../shaderModules/Texture2DBindUniform.js";import{NoParameters as h}from"../../../../../webgl/NoParameters.js";class i extends e{}class w extends h{constructor(){super(...arguments),this.origin=a()}}function p(a,e){e.receiveShadows&&(a.include(o),c(a))}function v(a,e){e.receiveShadows&&(a.include(s),c(a))}function c(a){const{fragment:e}=a;e.include(d),e.uniforms.add(new r("shadowMap",(a=>a.shadowMap.depthTexture))).code.add(t`float readShadowMapDepth(ivec2 uv, sampler2D _shadowMap) {
6
6
  return rgba4ToFloat(texelFetch(_shadowMap, uv, 0));
7
7
  }
8
8
  float posIsInShadow(ivec2 uv, float lvposZ, sampler2D _shadowMap) {
@@ -26,9 +26,9 @@ float depthShadow = readShadowMapDepth(iuvShadow, _shadowMap);
26
26
  return depthShadow < uvzShadow.z;
27
27
  }
28
28
  float readShadowMap(const in vec3 _worldPos, float _linearDepth) {
29
- vec3 uvzShadow = calculateUVZShadow(_worldPos, _linearDepth, shadowMap);
29
+ vec3 uvzShadow = calculateUVZShadow(_worldPos, _linearDepth, textureSize(shadowMap,0));
30
30
  if (uvzShadow.z < 0.0) {
31
31
  return 0.0;
32
32
  }
33
33
  return filterShadow(uvzShadow, shadowMap);
34
- }`)}export{v as ReadShadowMapDraw,c as ReadShadowMapDrawParameters,w as ReadShadowMapParameters,l as ReadShadowMapPass,p as ReadShadowMapPassParameters};
34
+ }`)}export{v as ReadShadowMapDraw,i as ReadShadowMapDrawParameters,p as ReadShadowMapPass,w as ReadShadowMapPassParameters};
@@ -2,11 +2,11 @@
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{FoamColor as e}from"./FoamRendering.glsl.js";import{Gamma as o}from"./Gamma.glsl.js";import{PhysicallyBasedRenderingWater as t}from"./PhysicallyBasedRendering.glsl.js";import{distanceFadeStart as r,distanceFadeEnd as i}from"./ScreenSpaceConstants.js";import{ScreenSpaceReflections as n}from"./ScreenSpaceReflections.glsl.js";import{CloudsParallaxShading as a}from"../util/CloudsParallaxShading.glsl.js";import{FloatBindUniform as l}from"../../shaderModules/FloatBindUniform.js";import{glsl as d}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as c}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as s}from"../../shaderModules/Texture2DBindUniform.js";import{ToneMapping as f,ToneMappingFunction as m}from"../../../shaders/ToneMapping.glsl.js";function v(v,u){v.include(t,u),v.include(o),v.include(e),u.cloudReflections&&v.include(a),v.include(n,u);const p=v.fragment;p.include(f,{toneMapping:m.ACES}),p.constants.add("fresnelSky","vec3",[.02,1,15]),p.constants.add("fresnelMaterial","vec2",[.02,.1]),p.constants.add("roughness","float",.015),p.constants.add("foamIntensityExternal","float",1.7),p.constants.add("ssrIntensity","float",.65),p.constants.add("ssrHeightFadeStart","float",r),p.constants.add("ssrHeightFadeEnd","float",i),p.constants.add("waterDiffusion","float",.92),p.constants.add("waterSeaColorMod","float",.8),p.constants.add("correctionViewingPowerFactor","float",.4),p.constants.add("skyZenitColor","vec3",[.52,.68,.9]),p.constants.add("skyColor","vec3",[.67,.79,.9]),p.constants.add("cloudFresnelModifier","vec2",[1.2,.01]),p.code.add(d`PBRShadingWater shadingInfo;
5
+ import{FoamColor as e}from"./FoamRendering.glsl.js";import{Gamma as o}from"./Gamma.glsl.js";import{PhysicallyBasedRenderingWater as t}from"./PhysicallyBasedRendering.glsl.js";import{distanceFadeStart as r,distanceFadeEnd as i}from"./ScreenSpaceConstants.js";import{ScreenSpaceReflections as n}from"./ScreenSpaceReflections.glsl.js";import{CloudsParallaxShading as a}from"../util/CloudsParallaxShading.glsl.js";import{FloatBindUniform as l}from"../../shaderModules/FloatBindUniform.js";import{glsl as d}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as c}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as s}from"../../shaderModules/Texture2DBindUniform.js";import{ToneMapping as f}from"../../../shaders/ToneMapping.glsl.js";function m(m,v){const u=m.fragment;u.include(t,v),u.include(o),u.include(e),v.cloudReflections&&m.include(a),m.include(n,v),u.include(f,v),u.constants.add("fresnelSky","vec3",[.02,1,15]),u.constants.add("fresnelMaterial","vec2",[.02,.1]),u.constants.add("roughness","float",.015),u.constants.add("foamIntensityExternal","float",1.7),u.constants.add("ssrIntensity","float",.65),u.constants.add("ssrHeightFadeStart","float",r),u.constants.add("ssrHeightFadeEnd","float",i),u.constants.add("waterDiffusion","float",.92),u.constants.add("waterSeaColorMod","float",.8),u.constants.add("correctionViewingPowerFactor","float",.4),u.constants.add("skyZenitColor","vec3",[.52,.68,.9]),u.constants.add("skyColor","vec3",[.67,.79,.9]),u.constants.add("cloudFresnelModifier","vec2",[1.2,.01]),u.code.add(d`PBRShadingWater shadingInfo;
6
6
  vec3 getSkyGradientColor(in float cosTheta, in vec3 horizon, in vec3 zenit) {
7
7
  float exponent = pow((1.0 - cosTheta), fresnelSky[2]);
8
8
  return mix(zenit, horizon, exponent);
9
- }`),p.uniforms.add(new l("lightingSpecularStrength",(e=>e.lighting.mainLight.specularStrength)),new l("lightingEnvironmentStrength",(e=>e.lighting.mainLight.environmentStrength))),p.code.add(d`vec3 getSeaColor(in vec3 n, in vec3 v, in vec3 l, vec3 color, in vec3 lightIntensity, in vec3 localUp, in float shadow, float foamIntensity, vec3 viewPosition, vec3 position) {
9
+ }`),u.uniforms.add(new l("lightingSpecularStrength",(e=>e.lighting.mainLight.specularStrength)),new l("lightingEnvironmentStrength",(e=>e.lighting.mainLight.environmentStrength))),u.code.add(d`vec3 getSeaColor(in vec3 n, in vec3 v, in vec3 l, vec3 color, in vec3 lightIntensity, in vec3 localUp, in float shadow, float foamIntensity, vec3 viewPosition, vec3 position) {
10
10
  float reflectionHit = 0.0;
11
11
  float reflectionHitDiffused = 0.0;
12
12
  vec3 seaWaterColor = linearizeGamma(color);
@@ -40,10 +40,10 @@ foam = foamIntensity2FoamColor(foamIntensityExternal, foamIntensity, skyZenitCol
40
40
  }
41
41
  float correctionViewingFactor = pow(max(dot(v, localUp), 0.0), correctionViewingPowerFactor);
42
42
  vec3 normalCorrectedClouds = mix(localUp, n, correctionViewingFactor);
43
- vec3 reflectedWorld = normalize(reflect(-v, normalCorrectedClouds));`),u.cloudReflections&&p.uniforms.add(new l("cloudsOpacity",(e=>e.clouds.opacity))).code.add(d`vec4 cloudsColor = renderClouds(reflectedWorld, position);
43
+ vec3 reflectedWorld = normalize(reflect(-v, normalCorrectedClouds));`),v.cloudReflections&&u.uniforms.add(new l("cloudsOpacity",(e=>e.clouds.opacity))).code.add(d`vec4 cloudsColor = renderClouds(reflectedWorld, position);
44
44
  cloudsColor.a = 1.0 - cloudsColor.a;
45
45
  cloudsColor = pow(cloudsColor, vec4(GAMMA));
46
- cloudsColor *= clamp(fresnelModifier.y * cloudFresnelModifier[0] - cloudFresnelModifier[1], 0.0, 1.0) * cloudsOpacity;`),u.screenSpaceReflections?p.uniforms.add(new c("view",(e=>e.camera.viewMatrix)),new s("lastFrameColorTexture",(e=>e.ssr.lastFrameColor?.getTexture())),new l("fadeFactorSSR",(e=>e.ssr.fadeFactor))).code.add(d`vec3 viewDir = normalize(viewPosition);
46
+ cloudsColor *= clamp(fresnelModifier.y * cloudFresnelModifier[0] - cloudFresnelModifier[1], 0.0, 1.0) * cloudsOpacity;`),v.screenSpaceReflections?u.uniforms.add(new c("view",(e=>e.camera.viewMatrix)),new s("lastFrameColorTexture",(e=>e.ssr.lastFrameColor?.getTexture())),new l("fadeFactorSSR",(e=>e.ssr.fadeFactor))).code.add(d`vec3 viewDir = normalize(viewPosition);
47
47
  vec4 viewNormalVectorCoordinate = view * vec4(n, 0.0);
48
48
  vec3 viewNormal = normalize(viewNormalVectorCoordinate.xyz);
49
49
  vec4 viewUp = view * vec4(localUp, 0.0);
@@ -63,7 +63,7 @@ reflectionHitDiffused * fresnelModifier.y * ssrIntensity;
63
63
  }
64
64
  float seaColorMod = mix(waterSeaColorMod, waterSeaColorMod * 0.5, reflectionHitDiffused);
65
65
  vec3 waterRenderedColor = tonemapACES((1.0 - reflectionHitDiffused) * reflSky + reflectedColor +
66
- reflSea * seaColorMod + specular + foam);`):p.code.add(d`vec3 waterRenderedColor = tonemapACES(reflSky + reflSea * waterSeaColorMod + specular + foam);`),u.cloudReflections?u.screenSpaceReflections?p.code.add(d`return waterRenderedColor * (1.0 - (1.0 - reflectionHit) * cloudsColor.a) + (1.0 - reflectionHit) * cloudsColor.xyz;
67
- }`):p.code.add(d`return waterRenderedColor * (1.0 - cloudsColor.a) + cloudsColor.xyz;
68
- }`):p.code.add(d`return waterRenderedColor;
69
- }`)}export{v as Water};
66
+ reflSea * seaColorMod + specular + foam);`):u.code.add(d`vec3 waterRenderedColor = tonemapACES(reflSky + reflSea * waterSeaColorMod + specular + foam);`),v.cloudReflections?v.screenSpaceReflections?u.code.add(d`return waterRenderedColor * (1.0 - (1.0 - reflectionHit) * cloudsColor.a) + (1.0 - reflectionHit) * cloudsColor.xyz;
67
+ }`):u.code.add(d`return waterRenderedColor * (1.0 - cloudsColor.a) + cloudsColor.xyz;
68
+ }`):u.code.add(d`return waterRenderedColor;
69
+ }`)}export{m as Water};
@@ -2,7 +2,7 @@
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{set as e}from"../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as t}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{s as r}from"../../../../../../chunks/vec42.js";import{create as a}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{FoamIntensity as o}from"./FoamRendering.glsl.js";import{ReadShadowMapPassParameters as m}from"./ReadShadowMap.glsl.js";import{Float2PassUniform as s}from"../../shaderModules/Float2PassUniform.js";import{Float4PassUniform as v}from"../../shaderModules/Float4PassUniform.js";import{glsl as l}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as i}from"../../shaderModules/Texture2DPassUniform.js";function u(t){t.fragment.uniforms.add(new i("texWaveNormal",(e=>e.waveNormal)),new i("texWavePerturbation",(e=>e.wavePerturbation)),new v("waveParams",(e=>r(c,e.waveStrength,e.waveTextureRepeat,e.flowStrength,e.flowOffset))),new s("waveDirection",(t=>e(n,t.waveDirection[0]*t.waveVelocity,t.waveDirection[1]*t.waveVelocity)))),t.include(o),t.fragment.code.add(l`const vec2 FLOW_JUMP = vec2(6.0/25.0, 5.0/24.0);
5
+ import{set as e}from"../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as t}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{s as r}from"../../../../../../chunks/vec42.js";import{create as a}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{FoamIntensity as o}from"./FoamRendering.glsl.js";import{ReadShadowMapPassParameters as m}from"./ReadShadowMap.glsl.js";import{Float2PassUniform as s}from"../../shaderModules/Float2PassUniform.js";import{Float4PassUniform as v}from"../../shaderModules/Float4PassUniform.js";import{glsl as l}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as i}from"../../shaderModules/Texture2DPassUniform.js";function u(t){t.fragment.uniforms.add(new i("texWaveNormal",(e=>e.waveNormal)),new i("texWavePerturbation",(e=>e.wavePerturbation)),new v("waveParams",(e=>r(c,e.waveStrength,e.waveTextureRepeat,e.flowStrength,e.flowOffset))),new s("waveDirection",(t=>e(n,t.waveDirection[0]*t.waveVelocity,t.waveDirection[1]*t.waveVelocity)))),t.fragment.include(o),t.fragment.code.add(l`const vec2 FLOW_JUMP = vec2(6.0/25.0, 5.0/24.0);
6
6
  vec2 textureDenormalized2D(sampler2D _tex, vec2 _uv) {
7
7
  return 2.0 * texture(_tex, _uv).rg - 1.0;
8
8
  }
@@ -0,0 +1,27 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import{create as a}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{Float4BindUniform as e}from"../../shaderModules/Float4BindUniform.js";import{glsl as o}from"../../shaderModules/glsl.js";import{IntegerBindUniform as s}from"../../shaderModules/IntegerBindUniform.js";import{Matrix4sDrawUniform as i}from"../../shaderModules/Matrix4sDrawUniform.js";import{Matrix4sPassUniform as r}from"../../shaderModules/Matrix4sPassUniform.js";import{NoParameters as t}from"../../../../../webgl/NoParameters.js";class d extends t{constructor(){super(...arguments),this.origin=a()}}function c(a){a.fragment.uniforms.add(new r("shadowMapMatrix",((a,e)=>e.shadowMap.getShadowMapMatrices(a.origin)),4)),l(a)}function n(a){a.fragment.uniforms.add(new i("shadowMapMatrix",((a,e)=>e.shadowMap.getShadowMapMatrices(a.origin)),4)),l(a)}function l(a){a.fragment.uniforms.add(new e("cascadeDistances",(a=>a.shadowMap.cascadeDistances)),new s("numCascades",(a=>a.shadowMap.numCascades))).code.add(o`const vec3 invalidShadowmapUVZ = vec3(0.0, 0.0, -1.0);
6
+ vec3 lightSpacePosition(vec3 _vpos, mat4 mat) {
7
+ vec4 lv = mat * vec4(_vpos, 1.0);
8
+ lv.xy /= lv.w;
9
+ return 0.5 * lv.xyz + vec3(0.5);
10
+ }
11
+ vec2 cascadeCoordinates(int i, ivec2 textureSize, vec3 lvpos) {
12
+ float xScale = float(textureSize.y) / float(textureSize.x);
13
+ return vec2((float(i) + lvpos.x) * xScale, lvpos.y);
14
+ }
15
+ vec3 calculateUVZShadow(in vec3 _worldPos, in float _linearDepth, in ivec2 shadowMapSize) {
16
+ int i = _linearDepth < cascadeDistances[1] ? 0 : _linearDepth < cascadeDistances[2] ? 1 : _linearDepth < cascadeDistances[3] ? 2 : 3;
17
+ if (i >= numCascades) {
18
+ return invalidShadowmapUVZ;
19
+ }
20
+ mat4 shadowMatrix = i == 0 ? shadowMapMatrix[0] : i == 1 ? shadowMapMatrix[1] : i == 2 ? shadowMapMatrix[2] : shadowMapMatrix[3];
21
+ vec3 lvpos = lightSpacePosition(_worldPos, shadowMatrix);
22
+ if (lvpos.z >= 1.0 || lvpos.x < 0.0 || lvpos.x > 1.0 || lvpos.y < 0.0 || lvpos.y > 1.0) {
23
+ return invalidShadowmapUVZ;
24
+ }
25
+ vec2 uvShadow = cascadeCoordinates(i, shadowMapSize, lvpos);
26
+ return vec3(uvShadow, lvpos.z);
27
+ }`)}export{d as ReadShadowMapOrigin,n as calculateUVZShadowDraw,c as calculateUVZShadowPass};
@@ -0,0 +1,28 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import{invert as e,translate as r}from"../../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{ReadDepth as a}from"../output/ReadDepth.glsl.js";import{calculateUVZShadowPass as o,calculateUVZShadowDraw as i}from"./calculateUVZShadow.glsl.js";import{CameraSpace as l}from"../util/CameraSpace.glsl.js";import{glsl as c}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as n}from"../../shaderModules/Matrix4BindUniform.js";function p(e){e.include(o),s(e)}function d(e){e.include(i),s(e)}function s(t){t.fragment.include(a),t.include(l),t.fragment.uniforms.add(new n("inverseViewMatrix",(({camera:t})=>e(u,r(u,t.viewMatrix,t.center))))).code.add(c`vec3 calculateUVZShadowAndPixelPosFromDepth(
6
+ in vec2 _uv,
7
+ ivec2 shadowMapSize,
8
+ in sampler2D _depthMap,
9
+ out vec4 currentPixelPos
10
+ ) {
11
+ float depth = depthFromTexture(_depthMap, _uv);
12
+ if (depth >= 1.0 || depth <= 0.0) {
13
+ return invalidShadowmapUVZ;
14
+ }
15
+ float currentPixelDepth = linearizeDepth(depth);
16
+ currentPixelPos = vec4(reconstructPosition(gl_FragCoord.xy, currentPixelDepth), 1.0);
17
+ vec4 worldSpacePos = inverseViewMatrix * currentPixelPos;
18
+ float linearDepth = -currentPixelDepth;
19
+ return calculateUVZShadow(worldSpacePos.xyz, linearDepth, shadowMapSize);
20
+ }
21
+ vec3 calculateUVZShadowFromDepth(
22
+ in vec2 _uv,
23
+ ivec2 shadowMapSize,
24
+ in sampler2D _depthMap
25
+ ) {
26
+ vec4 currentPixelPos;
27
+ return calculateUVZShadowAndPixelPosFromDepth(_uv, shadowMapSize, _depthMap, currentPixelPos);
28
+ }`)}const u=t();export{d as calculateUVZShadowFromDepthDraw,p as calculateUVZShadowFromDepthPass};
@@ -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}from"../../../../../core/mathUtils.js";import{watch as r,syncAndInitial as o}from"../../../../../core/reactiveUtils.js";import{property as s}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{InternalRenderCategory as a}from"../../../webgl.js";import{ColorFormat as m}from"../../core/FBOCacheFormats.js";import{TransparentEnvironment as n}from"../TransparentEnvironment.js";import{B as l,a as u}from"../../../../../chunks/BloomBlur.glsl.js";import{BloomBlurTechnique as c}from"./BloomBlurTechnique.js";import{BloomBlurTechniqueConfiguration as h}from"./BloomBlurTechniqueConfiguration.js";import{B as p}from"../../../../../chunks/BloomComposition.glsl.js";import{BloomCompositionTechnique as b}from"./BloomCompositionTechnique.js";import{BloomCompositionTechniqueConfiguration as _}from"./BloomCompositionTechniqueConfiguration.js";import{blurRadiusPresets as f,lodFactorsPresets as d,normalizePreset as g}from"./BloomPresets.glsl.js";import{RenderRequestType as P}from"../../lib/basicInterfaces.js";import{ColorAttachment1 as T,DepthStencilAttachment as R,FramebufferBit as C}from"../../../../webgl/enums.js";let j=class extends n{constructor(e){super(e),this.consumes={required:[a.TRANSPARENT_ENVIRONMENT,"emissive"]},this._blurHorizontalConfiguration=new h,this._blurVerticalConfiguration=new h,this._compositionConfiguration=new _,this._compositionParameters=new p,this._blurParameters=new l,this._blurScale=3.06,this._bloomResults=new Array}initialize(){this.addHandles([r((()=>this._updateFogParameters()),(()=>{}),o),r((()=>this.view.qualitySettings.bloom),(e=>{e?(this._enable(),this.precompile()):this._disable()}),o)])}destroy(){}_updateFogParameters(){const e=this.view.environment.weather;if("sunny"===e.type||"cloudy"===e.type)this._blurParameters.blurRadius=f[e.type];else{const r="foggy"===e.type?e.fogStrength:e.precipitation;this._blurParameters.blurRadius=t(f.cloudy,f[e.type],r)}this._compositionParameters.lodFactors=d[e.type].far,this._compositionParameters.lodFactorsFront=d[e.type].near,this.requestRender(P.UPDATE)}precompile(){this.techniques.precompile(c,this._blurHorizontalConfiguration),this._blurVerticalConfiguration.bloomStage=u.Vertical,this.techniques.precompile(c,this._blurVerticalConfiguration),this.techniques.precompile(b,this._compositionConfiguration)}render(e){const t=e.find((({name:e})=>e===a.TRANSPARENT_ENVIRONMENT)),r=t.getAttachment(T)?.attachment;if(!r)return t;const o=this.techniques.get(c,this._blurHorizontalConfiguration),s=this.techniques.get(c,this._blurVerticalConfiguration),i=this.techniques.get(b,this._compositionConfiguration);if(!o.compiled||!s.compiled||!i.compiled)return this.requestRender(P.UPDATE),t;const n=t.getTexture(),l=this.fboCache,{fullWidth:u,fullHeight:h}=this.bindParameters.camera,p=this.renderingContext;let _=r,f=u/2,d=h/2;const g=5,C=this._blurParameters.blurRadius;for(let a=0;a<g;a++){const e=l.acquire(f,d,"bloomHorizontal",m.RGBA16FLOAT);this._blurParameters.color=_,this._prepareFBO(e,f,d),p.bindTechnique(o,this.bindParameters,this._blurParameters),p.screen.draw();const t=l.acquire(f,d,"bloomVertical",m.RGBA16FLOAT);this._blurParameters.color=e.getTexture(),this._prepareFBO(t,f,d),p.bindTechnique(s,this.bindParameters,this._blurParameters),p.screen.draw(),e.release(),this._bloomResults[a]=t,f=Math.ceil(f/2),d=Math.ceil(d/2),_=this._bloomResults[a].getTexture(),this._blurParameters.blurRadius*=this._blurScale}this._blurParameters.blurRadius=C,this._compositionParameters.color=n,this._compositionParameters.emission=r,this._compositionParameters.bloomTexture0=this._bloomResults[0].getTexture(),this._compositionParameters.bloomTexture1=this._bloomResults[1].getTexture(),this._compositionParameters.bloomTexture2=this._bloomResults[2].getTexture(),this._compositionParameters.bloomTexture3=this._bloomResults[3].getTexture(),this._compositionParameters.bloomTexture4=this._bloomResults[4].getTexture();const j=this.acquireOutputFramebuffer();return this._prepareFBO(j,u,h),p.bindTechnique(i,this.bindParameters,this._compositionParameters),p.screen.draw(),this._bloomResults.forEach((e=>e.release())),j.attachDepth(t.getAttachment(R)),j.attachColor(t.getAttachment(T),T),j}_prepareFBO(e,t,r){const o=this.renderingContext;o.bindFramebuffer(e.fbo),o.setViewport(0,0,t,r),o.setClearColor(0,0,0,0),o.clear(C.COLOR)}get test(){return{compositionParameters:this._compositionParameters,blurParameters:this._blurParameters,setLodFactors:e=>{this._compositionParameters.lodFactors=g(e)}}}};e([s()],j.prototype,"consumes",void 0),j=e([i("esri.views.3d.webgl-engine.effects.bloom.BloomRenderNode")],j);export{j as BloomRenderNode};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import{lerp as t}from"../../../../../core/mathUtils.js";import{watch as r,syncAndInitial as o}from"../../../../../core/reactiveUtils.js";import{property as s}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{InternalRenderCategory as a}from"../../../webgl.js";import{ColorFormat as m}from"../../core/FBOCacheFormats.js";import{TransparentEnvironment as l}from"../TransparentEnvironment.js";import{B as n,a as u}from"../../../../../chunks/BloomBlur.glsl.js";import{BloomBlurTechnique as c}from"./BloomBlurTechnique.js";import{BloomBlurTechniqueConfiguration as h}from"./BloomBlurTechniqueConfiguration.js";import{B as p}from"../../../../../chunks/BloomComposition.glsl.js";import{BloomCompositionTechnique as b}from"./BloomCompositionTechnique.js";import{blurRadiusPresets as _,lodFactorsPresets as d,normalizePreset as f}from"./BloomPresets.glsl.js";import{RenderRequestType as g}from"../../lib/basicInterfaces.js";import{ColorAttachment1 as P,DepthStencilAttachment as T,FramebufferBit as R}from"../../../../webgl/enums.js";let j=class extends l{constructor(e){super(e),this.consumes={required:[a.TRANSPARENT_ENVIRONMENT,"emissive"]},this._blurHorizontalConfiguration=new h,this._blurVerticalConfiguration=new h,this._compositionParameters=new p,this._blurParameters=new n,this._blurScale=3.06,this._bloomResults=new Array}initialize(){this.addHandles([r((()=>this._updateFogParameters()),(()=>{}),o),r((()=>this.view.qualitySettings.bloom),(e=>{e?(this._enable(),this.precompile()):this._disable()}),o)])}destroy(){}_updateFogParameters(){const e=this.view.environment.weather;if("sunny"===e.type||"cloudy"===e.type)this._blurParameters.blurRadius=_[e.type];else{const r="foggy"===e.type?e.fogStrength:e.precipitation;this._blurParameters.blurRadius=t(_.cloudy,_[e.type],r)}this._compositionParameters.lodFactors=d[e.type].far,this._compositionParameters.lodFactorsFront=d[e.type].near,this.requestRender(g.UPDATE)}precompile(){this.techniques.precompile(c,this._blurHorizontalConfiguration),this._blurVerticalConfiguration.bloomStage=u.Vertical,this.techniques.precompile(c,this._blurVerticalConfiguration),this.techniques.precompile(b)}render(e){const t=e.find((({name:e})=>e===a.TRANSPARENT_ENVIRONMENT)),r=t.getAttachment(P)?.attachment;if(!r)return t;const o=this.techniques.get(c,this._blurHorizontalConfiguration),s=this.techniques.get(c,this._blurVerticalConfiguration),i=this.techniques.get(b);if(!o.compiled||!s.compiled||!i.compiled)return this.requestRender(g.UPDATE),t;const l=t.getTexture(),n=this.fboCache,{fullWidth:u,fullHeight:h}=this.bindParameters.camera,p=this.renderingContext;let _=r,d=u/2,f=h/2;const R=5,j=this._blurParameters.blurRadius;for(let a=0;a<R;a++){const e=n.acquire(d,f,"bloomHorizontal",m.RGBA16FLOAT);this._blurParameters.color=_,this._prepareFBO(e,d,f),p.bindTechnique(o,this.bindParameters,this._blurParameters),p.screen.draw();const t=n.acquire(d,f,"bloomVertical",m.RGBA16FLOAT);this._blurParameters.color=e.getTexture(),this._prepareFBO(t,d,f),p.bindTechnique(s,this.bindParameters,this._blurParameters),p.screen.draw(),e.release(),this._bloomResults[a]=t,d=Math.ceil(d/2),f=Math.ceil(f/2),_=this._bloomResults[a].getTexture(),this._blurParameters.blurRadius*=this._blurScale}this._blurParameters.blurRadius=j,this._compositionParameters.color=l,this._compositionParameters.emission=r,this._compositionParameters.bloomTexture0=this._bloomResults[0].getTexture(),this._compositionParameters.bloomTexture1=this._bloomResults[1].getTexture(),this._compositionParameters.bloomTexture2=this._bloomResults[2].getTexture(),this._compositionParameters.bloomTexture3=this._bloomResults[3].getTexture(),this._compositionParameters.bloomTexture4=this._bloomResults[4].getTexture();const q=this.acquireOutputFramebuffer();return this._prepareFBO(q,u,h),p.bindTechnique(i,this.bindParameters,this._compositionParameters),p.screen.draw(),this._bloomResults.forEach((e=>e.release())),q.attachDepth(t.getAttachment(T)),q.attachColor(t.getAttachment(P),P),q}_prepareFBO(e,t,r){const o=this.renderingContext;o.bindFramebuffer(e.fbo),o.setViewport(0,0,t,r),o.setClearColor(0,0,0,0),o.clear(R.COLOR)}get test(){return{compositionParameters:this._compositionParameters,blurParameters:this._blurParameters,setLodFactors:e=>{this._compositionParameters.lodFactors=f(e)}}}};e([s()],j.prototype,"consumes",void 0),j=e([i("esri.views.3d.webgl-engine.effects.bloom.BloomRenderNode")],j);export{j as BloomRenderNode};
@@ -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{ShaderTechniqueConfiguration as r,parameter as s}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{ToneMappingFunction as o}from"../../shaders/ToneMapping.glsl.js";class t extends r{constructor(){super(...arguments),this.reduced=!1,this.toneMapping=o.ACES}}e([s()],t.prototype,"reduced",void 0);export{t as HazeTechniqueConfiguration};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import{ShaderTechniqueConfiguration as r,parameter as o}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";class s extends r{constructor(){super(...arguments),this.reduced=!1}}e([o()],s.prototype,"reduced",void 0);export{s as HazeTechniqueConfiguration};
@@ -0,0 +1,12 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import{glsl as o}from"../../core/shaderModules/glsl.js";function r(r,e){e.snowCover&&(r.code.add(o`float getSnow(vec3 normal, vec3 normalGround) {
6
+ return smoothstep(0.5, 0.55, dot(normal, normalGround));
7
+ }`),r.code.add(o`vec3 applySnowToMRR(vec3 mrr, float snow) {
8
+ return mix(mrr, vec3(0.0, 1.0, 0.04), snow);
9
+ }
10
+ vec4 snowCoverForEmissions(vec4 emission, float snow) {
11
+ return mix(emission, vec4(0.0), snow);
12
+ }`))}export{r as SnowCover};
@@ -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 i}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{CloudsParameters as h}from"../../environment/CloudsParameters.js";import e from"../../webgl/RenderCamera.js";import{HUDRenderStyle as s}from"../core/shaderLibrary/hud/HUDRenderStyle.js";import{OITPass as r}from"./OITPass.js";import{RenderSlot as g}from"./RenderSlot.js";import{Update as n}from"./Update.js";import{SceneLighting as l}from"../lighting/SceneLighting.js";class a{constructor(i,t){this.width=i,this.height=t}}class o{constructor(i){this.shadowMap=i,this.slot=g.OPAQUE_MATERIAL,this.slicePlane=null,this.hasOccludees=!1,this.enableFillLights=!0,this.oitPass=r.NONE,this.alignPixelEnabled=!1,this.decorations=!0,this.overlayStretch=1,this.viewshedEnabled=!1,this._camera=new e,this._inverseViewport=t(),this._oldLighting=new l,this._newLighting=new l,this._fadedLighting=new l,this._lighting=this._newLighting,this.ssr=new c,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.highlights=new Array,this.highlightOrderMap=new Map,this.highlightMixOrigin=t(),this.highlightMixTexture=null,this.hudRenderStyle=s.Occluded,this.hudOccludedFragmentOpacity=1,this.clouds=new h,this.shadowHighlightsVisible=!1}get camera(){return this._camera}set camera(i){this._camera=i,this._inverseViewport[0]=1/i.fullViewport[2],this._inverseViewport[1]=1/i.fullViewport[3]}get inverseViewport(){return this._inverseViewport}get lighting(){return this._lighting}fadeLighting(){switch(this.clouds.fadeFactor){case 0:this._lighting=this._oldLighting;break;default:this._fadedLighting.lerpLighting(this._oldLighting,this._newLighting,this.clouds.fadeFactor),this._lighting=this._fadedLighting;break;case 1:this._lighting=this._newLighting,this._oldLighting.copyFrom(this._newLighting)}}updateLighting(i,t,h,e){this._oldLighting.copyFrom(this.lighting),this._newLighting.noonFactor=t,this._newLighting.globalFactor=h,this._newLighting.set(i),e===n.FadeWithWeather&&this.clouds.requestFade(),this.fadeLighting()}get highlight(){return null==this.highlightLevel?null:this.highlights[this.highlightLevel]}}class c{constructor(){this.fadeFactor=1,this.reprojectionMatrix=i()}}export{o as BindParameters,a as ViewportSize};
5
+ import{create as i}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{CloudsParameters as h}from"../../environment/CloudsParameters.js";import e from"../../webgl/RenderCamera.js";import{HUDRenderStyle as s}from"../core/shaderLibrary/hud/HUDRenderStyle.js";import{OITPass as r}from"./OITPass.js";import{RenderSlot as g}from"./RenderSlot.js";import{Update as n}from"./Update.js";import{SceneLighting as l}from"../lighting/SceneLighting.js";class o{constructor(i,t){this.width=i,this.height=t}}class a{constructor(i){this.shadowMap=i,this.slot=g.OPAQUE_MATERIAL,this.slicePlane=null,this.hasOccludees=!1,this.enableFillLights=!0,this.oitPass=r.NONE,this.alignPixelEnabled=!1,this.decorations=!0,this.overlayStretch=1,this.viewshedEnabled=!1,this._camera=new e,this._inverseViewport=t(),this._oldLighting=new l,this._newLighting=new l,this._fadedLighting=new l,this._lighting=this._newLighting,this.ssr=new c,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.highlights=new Array,this.highlightOrderMap=new Map,this.highlightMixOrigin=t(),this.highlightMixTexture=null,this.hudRenderStyle=s.Occluded,this.hudOccludedFragmentOpacity=1,this.snowCover=!1,this.clouds=new h,this.shadowHighlightsVisible=!1}get camera(){return this._camera}set camera(i){this._camera=i,this._inverseViewport[0]=1/i.fullViewport[2],this._inverseViewport[1]=1/i.fullViewport[3]}get inverseViewport(){return this._inverseViewport}get lighting(){return this._lighting}fadeLighting(){switch(this.clouds.fadeFactor){case 0:this._lighting=this._oldLighting;break;default:this._fadedLighting.lerpLighting(this._oldLighting,this._newLighting,this.clouds.fadeFactor),this._lighting=this._fadedLighting;break;case 1:this._lighting=this._newLighting,this._oldLighting.copyFrom(this._newLighting)}}updateLighting(i,t,h,e){this._oldLighting.copyFrom(this.lighting),this._newLighting.noonFactor=t,this._newLighting.globalFactor=h,this._newLighting.set(i),e===n.FadeWithWeather&&this.clouds.requestFade(),this.fadeLighting()}get highlight(){return null==this.highlightLevel?null:this.highlights[this.highlightLevel]}}class c{constructor(){this.fadeFactor=1,this.reprojectionMatrix=i()}}export{a as BindParameters,o as ViewportSize};
@@ -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
- var e;!function(e){e[e.Layer=0]="Layer",e[e.Object=1]="Object",e[e.Texture=2]="Texture",e[e.COUNT=3]="COUNT"}(e||(e={}));export{e as ContentObjectType};
5
+ var e;!function(e){e[e.Layer=0]="Layer",e[e.Texture=1]="Texture",e[e.COUNT=2]="COUNT"}(e||(e={}));export{e as ContentObjectType};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import{_ as t}from"../../../../chunks/tslib.es6.js";import{disposeMaybe as e,destroyMaybe as i}from"../../../../core/maybe.js";import{property as r}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";import{multiply as o,fromTranslation as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as h}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as u,a as p}from"../../../../chunks/vec32.js";import{create as c}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{RenderCategory as a}from"../../webgl.js";import f from"../../webgl/RenderNode.js";import{ColorFormat as _}from"../core/FBOCacheFormats.js";import{Default3D as l}from"./DefaultVertexAttributeLocations.js";import{TaskPriority as d}from"../../../support/Scheduler.js";import{Yield as m}from"../../../support/Yield.js";import{PixelFormat as g,PixelType as x,TextureSamplingMode as v}from"../../../webgl/enums.js";import{makePipelineState as w,defaultColorWrite as y}from"../../../webgl/renderState.js";import{Sync as j}from"../../../webgl/Sync.js";import{Texture as b}from"../../../webgl/Texture.js";import{TextureDescriptor as B}from"../../../webgl/TextureDescriptor.js";let P=class extends f{constructor(){super(...arguments),this.produces=a.OPAQUE,this.consumes={required:[a.OPAQUE]},this.running=!1,this.done=!0,this._startQuery=!1,this._origin=c(),this._textureWidth=256,this._uploadBuffer=new Float32Array(3*this._textureWidth),this._counter=0,this._width=0,this._height=0,this._pipeline=w({colorWrite:y})}initialize(){this.view.resourceController.scheduler.registerTask(d.GRAPHICS_CORE,this)}destroy(){this._program=e(this._program);const t=this.gl;this._sync=i(this._sync),this._pixelBuffer&&(t.deleteBuffer(this._pixelBuffer),this._pixelBuffer=null),this._texture=e(this._texture)}precompile(){this._startQuery&&this._ensureShader(this.renderingContext)}render(t){const e=t.find((({name:t})=>t===a.OPAQUE));if(this._sync||!this._startQuery)return e;this._startQuery=!1;const i=this.renderingContext,r=this.gl,s=e.getTexture(r.DEPTH_STENCIL_ATTACHMENT);if(!s)return e;const h=this.view.stage.renderer.fboCache.acquire(this._width,this._height,"hud visibility",_.R32FLOAT);i.bindFramebuffer(h.fbo),i.setPipelineState(this._pipeline);const u=this._ensureShader(i);i.useProgram(u);const p=0;i.bindTexture(s,p),u.setUniform1i("depthTex",p);const c=1;return i.bindTexture(this._texture,c),u.setUniform1i("positionTex",c),o(F,this.camera.viewMatrix,n(F,this._origin)),u.setUniformMatrix4fv("view",F),u.setUniformMatrix4fv("proj",this.camera.projectionMatrix),u.setUniform1i("count",this._counter),i.screen.draw(),this._pixelBuffer||(this._pixelBuffer=r.createBuffer()),r.bindBuffer(r.PIXEL_PACK_BUFFER,this._pixelBuffer),r.bufferData(r.PIXEL_PACK_BUFFER,4*this._width*this._height,r.STREAM_READ),r.readPixels(0,0,this._width,this._height,r.RED,r.FLOAT,0),this._sync=new j(r),h.free(),setTimeout((()=>this.running=!0),0),e}runTask(){if(!this._sync)return void(this.running=!1);try{if(!this._sync.poll())return m}catch(e){return this.running=!1,void(this._sync=i(this._sync))}this.running=!1,this._sync=i(this._sync);const t=this.gl;t.bindBuffer(t.PIXEL_PACK_BUFFER,this._pixelBuffer),this._cpuBuffer=new Float32Array(this._width*this._height),t.getBufferSubData(t.PIXEL_PACK_BUFFER,0,this._cpuBuffer),t.bindBuffer(t.PIXEL_PACK_BUFFER,null),this.done=!0}init(t,e){const i=this._textureWidth;if(this._width=i,this._height=Math.ceil(t/i),this._counter=0,this._texture?.dispose(),0===this._height)return;const r=new B(this._width,this._height);r.pixelFormat=g.RGB,r.dataType=x.FLOAT,r.samplingMode=v.NEAREST,this._texture=new b(this.renderingContext,r),this.done=!1,u(this._origin,Math.fround(e[0]),Math.fround(e[1]),Math.fround(e[2]))}addPosition(t){const e=this._width;if(this._counter>=e*this._height)return-1;const i=this._counter%e;return p(E,t,this._origin),this._uploadBuffer[3*i+0]=E[0],this._uploadBuffer[3*i+1]=E[1],this._uploadBuffer[3*i+2]=E[2],i===e-1&&this._flush(),this._counter++}start(){if(0===this._width||0===this._height)return;const t=this._width;this._counter%t>0&&this._flush(),this._startQuery=!0,this.requestRender()}getOcclusion(t){return this._cpuBuffer?.[t]??-1}_flush(){const t=this._width,e=Math.floor(this._counter/t);this._texture?.updateData(0,0,e,t,1,this._uploadBuffer)}_ensureShader(t){return null!=this._program||(this._program=t.programCache.acquire(T,C,l)),this._program}};t([r()],P.prototype,"running",void 0),t([r()],P.prototype,"done",void 0),P=t([s("esri.views.3d.webgl-engine.lib.GPUPointOcclusionQuery")],P);const T="#version 300 es\nprecision highp float;\nin vec2 position;\n\nvoid main() {\n gl_Position = vec4(position, 0.0, 1.0);\n}",C="#version 300 es\nprecision highp float;\nout highp vec4 fragColor;\n\nuniform highp mat4 proj;\nuniform highp mat4 view;\n\nuniform highp int count;\n\nuniform highp sampler2D depthTex;\nuniform highp sampler2D positionTex;\n\nfloat linearizeDepth(float depth) {\n float depthNdc = depth * 2.0 - 1.0;\n float c1 = proj[3][2];\n float c2 = proj[2][2];\n return -c1 / (depthNdc + c2 + 1e-7);\n}\n\nvoid main() {\n int u = int(floor(gl_FragCoord.x));\n int v = int(floor(gl_FragCoord.y));\n if (u + v * textureSize(positionTex, 0).x >= count) {\n fragColor = vec4(-1);\n return;\n }\n vec4 posWorld = vec4(texelFetch(positionTex, ivec2(u, v), 0).rgb, 1.0);\n\n vec4 posView = view * posWorld;\n vec4 projected = proj * posView;\n\n vec3 clipPos = projected.xyz / projected.w;\n\n if (clipPos.x < -1.0 || clipPos.x > 1.0 || clipPos.y < -1.0 || clipPos.y > 1.0) {\n fragColor = vec4(-1);\n return;\n }\n\n vec3 uvDepth = 0.5 * clipPos + vec3(0.5);\n\n float depth = texture(depthTex, uvDepth.xy).r;\n\n if (uvDepth.z <= depth) {\n fragColor = vec4(0);\n return;\n }\n\n fragColor = vec4(linearizeDepth(depth) - linearizeDepth(uvDepth.z));\n}\n",E=c(),F=h();export{P as GPUPointOcclusionQuery};
@@ -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"../../../../core/has.js";import{generateUID as t}from"../../../../core/uid.js";import{d as r}from"../../../../chunks/vec32.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{projectBuffer as s}from"../../../../geometry/projection/projectBuffer.js";import{Attribute as e}from"./Attribute.js";import{Geometry as n}from"./Geometry.js";import{fromValues as a}from"./LocalOriginFactory.js";import{Object3D as h}from"./Object3D.js";import{gridLocalOriginFactory as m}from"./testUtils.js";import{VertexAttribute as c}from"./VertexAttribute.js";import{WebGLLayer as g}from"./WebGLLayer.js";import{RibbonLineMaterial as f}from"../materials/RibbonLineMaterial.js";import{GeometryType as d}from"./IntersectableGeometry.js";class l{constructor(r){this._originSR=r,this._rootOriginId="root/"+t(),this._origins=new Map,this._objects=new Map,this._gridSize=5e5}getOrigin(t){const i=this._origins.get(this._rootOriginId);if(null==i){const r=m.rootOrigin;if(null!=r)return this._origins.set(this._rootOriginId,a(r[0],r[1],r[2],this._rootOriginId)),this.getOrigin(t);const i=a(t[0]+Math.random()-.5,t[1]+Math.random()-.5,t[2]+Math.random()-.5,this._rootOriginId);return this._origins.set(this._rootOriginId,i),i}const o=this._gridSize,s=Math.round(t[0]/o),e=Math.round(t[1]/o),n=Math.round(t[2]/o),h=`${s}/${e}/${n}`;let c=this._origins.get(h);const g=.5*o;if(r(_,t,i.vec3),_[0]=Math.abs(_[0]),_[1]=Math.abs(_[1]),_[2]=Math.abs(_[2]),_[0]<g&&_[1]<g&&_[2]<g){if(c){const i=Math.max(..._);r(_,t,c.vec3),_[0]=Math.abs(_[0]),_[1]=Math.abs(_[1]),_[2]=Math.abs(_[2]);if(Math.max(..._)<i)return c}return i}return c||(c=a(s*o,e*o,n*o,h),this._origins.set(h,c)),c}_drawOriginBox(t,r=o(1,1,0,1)){const i=window.view,a=i.stage,m=r.toString();if(!this._objects.has(m)){this._material=new f({width:2,color:r});const t=new g(a,{pickable:!1}),i=new h({castShadow:!1});a.add(i),t.add(i),this._objects.set(m,i)}const l=this._objects.get(m),_=[0,1,5,4,0,2,1,7,6,2,0,1,3,7,5,4,6,2,0],p=_.length,j=new Array(3*p),b=new Array,u=.5*this._gridSize;for(let o=0;o<p;o++)j[3*o]=t[0]+(1&_[o]?u:-u),j[3*o+1]=t[1]+(2&_[o]?u:-u),j[3*o+2]=t[2]+(4&_[o]?u:-u),o>0&&b.push(o-1,o);s(j,this._originSR,0,j,i.renderSpatialReference,0,p);const M=new n(this._material,[[c.POSITION,new e(j,b,3,!0)]],null,d.Line);l.addGeometry(M)}get test(){}}const _=i();export{l as GridLocalOriginFactory};
5
+ import"../../../../core/has.js";import{generateUID as t}from"../../../../core/uid.js";import{d as r}from"../../../../chunks/vec32.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{projectBuffer as s}from"../../../../geometry/projection/projectBuffer.js";import{Attribute as e}from"./Attribute.js";import{Geometry as n}from"./Geometry.js";import{fromValues as a}from"./LocalOriginFactory.js";import{Object3D as h}from"./Object3D.js";import{gridLocalOriginFactory as m}from"./testUtils.js";import{VertexAttribute as c}from"./VertexAttribute.js";import{WebGLLayer as g}from"./WebGLLayer.js";import{RibbonLineMaterial as f}from"../materials/RibbonLineMaterial.js";import{GeometryType as d}from"./IntersectableGeometry.js";class l{constructor(r){this._originSR=r,this._rootOriginId="root/"+t(),this._origins=new Map,this._objects=new Map,this._gridSize=5e5}getOrigin(t){const i=this._origins.get(this._rootOriginId);if(null==i){const r=m.rootOrigin;if(null!=r)return this._origins.set(this._rootOriginId,a(r[0],r[1],r[2],this._rootOriginId)),this.getOrigin(t);const i=a(t[0]+Math.random()-.5,t[1]+Math.random()-.5,t[2]+Math.random()-.5,this._rootOriginId);return this._origins.set(this._rootOriginId,i),i}const o=this._gridSize,s=Math.round(t[0]/o),e=Math.round(t[1]/o),n=Math.round(t[2]/o),h=`${s}/${e}/${n}`;let c=this._origins.get(h);const g=.5*o;if(r(_,t,i.vec3),_[0]=Math.abs(_[0]),_[1]=Math.abs(_[1]),_[2]=Math.abs(_[2]),_[0]<g&&_[1]<g&&_[2]<g){if(c){const i=Math.max(..._);r(_,t,c.vec3),_[0]=Math.abs(_[0]),_[1]=Math.abs(_[1]),_[2]=Math.abs(_[2]);if(Math.max(..._)<i)return c}return i}return c||(c=a(s*o,e*o,n*o,h),this._origins.set(h,c)),c}_drawOriginBox(t,r=o(1,1,0,1)){const i=window.view,a=i.stage,m=r.toString();if(!this._objects.has(m)){this._material=new f({width:2,color:r});const t=new g(a,{pickable:!1}),i=new h({castShadow:!1});t.add(i),this._objects.set(m,i)}const l=this._objects.get(m),_=[0,1,5,4,0,2,1,7,6,2,0,1,3,7,5,4,6,2,0],p=_.length,j=new Array(3*p),b=new Array,u=.5*this._gridSize;for(let o=0;o<p;o++)j[3*o]=t[0]+(1&_[o]?u:-u),j[3*o+1]=t[1]+(2&_[o]?u:-u),j[3*o+2]=t[2]+(4&_[o]?u:-u),o>0&&b.push(o-1,o);s(j,this._originSR,0,j,i.renderSpatialReference,0,p);const M=new n(this._material,[[c.POSITION,new e(j,b,3,!0)]],null,d.Line);l.addGeometry(M)}get test(){}}const _=i();export{l as GridLocalOriginFactory};