@arcgis/core 4.33.0-next.20250428 → 4.33.0-next.20250430

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 (292) 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/{9a1c058d3ecd1db0e996.js → 0c338364cb55afdbd580.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{4351b3e54b309935faed.js → 173737c60fa54f7d82bb.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{90dc783a617ff053e862.js → 181ad3cee0b30a72e7c7.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{6d230c55cde66ee905b3.js → 1a0d4b7de2f98ff9cc01.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/2433b22749a088735262.js +1 -0
  15. package/assets/esri/core/workers/chunks/278280121528fa1059de.js +1 -0
  16. package/assets/esri/core/workers/chunks/2ad47c0ba1680f7d5e03.js +1 -0
  17. package/assets/esri/core/workers/chunks/2c3920ad82b9d86c3f05.js +1 -0
  18. package/assets/esri/core/workers/chunks/{4da99f058cca83937e9b.js → 2c92f6f268aa2de5432c.js} +1 -1
  19. package/assets/esri/core/workers/chunks/37619d28b0441199c320.js +1 -0
  20. package/assets/esri/core/workers/chunks/{92836e3a2c5226296fec.js → 3a205f87f100832ef9f5.js} +1 -1
  21. package/assets/esri/core/workers/chunks/543eb46b55cacd6e1dbc.js.LICENSE.txt +1 -1
  22. package/assets/esri/core/workers/chunks/{2fd5b48976cefe7cc0ab.js → 581180668e0229dcdc14.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{c054198c6438cb57f188.js → 5c2299f22a69e58cc4dd.js} +1 -1
  24. package/assets/esri/core/workers/chunks/60eb6dd09080da5653a1.js +1 -0
  25. package/assets/esri/core/workers/chunks/6210346dc9d064ac90af.js +1 -0
  26. package/assets/esri/core/workers/chunks/{3cf001abca8ad933bccf.js → 670a66617249f2d15a62.js} +2 -2
  27. package/assets/esri/core/workers/chunks/{3cf001abca8ad933bccf.js.LICENSE.txt → 670a66617249f2d15a62.js.LICENSE.txt} +1 -1
  28. package/assets/esri/core/workers/chunks/6b9110ec7da0fef1be31.js +1 -0
  29. package/assets/esri/core/workers/chunks/710e03feaa25e357f17a.js +1 -0
  30. package/assets/esri/core/workers/chunks/{a6de903f22f76d875005.js → 7496c4c33c2d8f60a434.js} +1 -1
  31. package/assets/esri/core/workers/chunks/7b4523ab392966624d97.js +2 -0
  32. package/assets/esri/core/workers/chunks/{30551c1d3e4fa7be86c1.js.LICENSE.txt → 7b4523ab392966624d97.js.LICENSE.txt} +1 -1
  33. package/assets/esri/core/workers/chunks/{50ffb2620cdbcfd75723.js → 81b3351ea9627bb631d4.js} +1 -1
  34. package/assets/esri/core/workers/chunks/84d7ed2cf5fe23a0888f.js +1 -0
  35. package/assets/esri/core/workers/chunks/84f972d7851d982701a0.js +319 -0
  36. package/assets/esri/core/workers/chunks/{f52e597dca4b32a81881.js → 867c6c5b2ee1db977c99.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{c5d786166a5609b85276.js → 8a87c181b85d0b86b9bb.js} +2 -2
  38. package/assets/esri/core/workers/chunks/{c5d786166a5609b85276.js.LICENSE.txt → 8a87c181b85d0b86b9bb.js.LICENSE.txt} +1 -1
  39. package/assets/esri/core/workers/chunks/{a0c51c4c30a5f749dfc6.js → 8bf2e2fe5e3e8b4a1fa0.js} +1 -1
  40. package/assets/esri/core/workers/chunks/8c8d812a7f2d29c29676.js +1 -0
  41. package/assets/esri/core/workers/chunks/{213adc87c843d627c5d6.js → 8f2e0277c66247bd40b4.js} +1 -1
  42. package/assets/esri/core/workers/chunks/8fc5b1c17e841362dd15.js +1 -0
  43. package/assets/esri/core/workers/chunks/9cac00d4bfac14aaae12.js +1 -0
  44. package/assets/esri/core/workers/chunks/{a600194cfe26aedc21dd.js → 9d32f41f8f69b8a507c3.js} +1 -1
  45. package/assets/esri/core/workers/chunks/ac9c6779771ec855da79.js.LICENSE.txt +1 -1
  46. package/assets/esri/core/workers/chunks/{899f197556b6ced6eddf.js → ad9b4e0164706c53b872.js} +2 -2
  47. package/assets/esri/core/workers/chunks/{9661ee8569ee208e6237.js → ada9694498549f56dff1.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{1a6d2d090b643a87408a.js → b780c7062b1b18a5ae19.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{72097a8247101018dcdf.js → ba4aafa8dfa76006c3e7.js} +1 -1
  50. package/assets/esri/core/workers/chunks/c2594024d72133d3ed7b.js +2 -0
  51. package/assets/esri/core/workers/chunks/{e524462c63834fae7e01.js.LICENSE.txt → c2594024d72133d3ed7b.js.LICENSE.txt} +1 -1
  52. package/assets/esri/core/workers/chunks/{360c8cff7c3b25d2b2d2.js → c607d618b64d3accecc4.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{b8b8425e8b1246cdc86d.js → c6b0dda0540c9db12d0e.js} +1 -1
  54. package/assets/esri/core/workers/chunks/c819535525e9a27bae1f.js +39 -0
  55. package/assets/esri/core/workers/chunks/{87dcfbbcf290e0fa5c0f.js → cb25b45a6b385e60c68d.js} +315 -378
  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/d92ea6b0674f34206ab6.js +1 -0
  61. package/assets/esri/core/workers/chunks/{345993291540433d3d92.js → e93222c65bd28203ddf7.js} +1 -1
  62. package/assets/esri/core/workers/chunks/f1222bf7232c4a168312.js +1 -0
  63. package/assets/esri/themes/base/widgets/_Legend.scss +2 -1
  64. package/assets/esri/themes/base/widgets/_SelectionList.scss +5 -17
  65. package/assets/esri/themes/dark/main.css +1 -1
  66. package/assets/esri/themes/light/main.css +1 -1
  67. package/assets/esri/themes/light/view.css +1 -1
  68. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  69. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  70. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  71. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  72. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  73. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  74. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  75. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  76. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  77. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  78. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  79. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  80. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  81. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  82. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  83. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  84. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  85. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  86. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  87. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  88. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  89. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  90. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  91. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  92. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  93. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  94. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  95. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  96. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  97. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  98. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  99. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  100. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  101. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  102. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  103. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  104. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  105. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  106. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  107. package/chunks/BloomBlur.glsl.js +1 -1
  108. package/chunks/BloomComposition.glsl.js +2 -2
  109. package/chunks/ChapmanAtmosphere.glsl.js +1 -1
  110. package/chunks/CloudsComposition.glsl.js +1 -1
  111. package/chunks/ComponentShader.glsl.js +43 -39
  112. package/chunks/DefaultMaterial.glsl.js +22 -22
  113. package/chunks/Fog.glsl.js +3 -3
  114. package/chunks/Haze.glsl.js +1 -1
  115. package/chunks/Path.glsl.js +22 -18
  116. package/chunks/RealisticTree.glsl.js +9 -9
  117. package/chunks/RibbonLine.glsl.js +1 -1
  118. package/chunks/ShadowCastAccumulate.glsl.js +5 -5
  119. package/chunks/ShadowHighlight.glsl.js +4 -4
  120. package/chunks/Terrain.glsl.js +1 -1
  121. package/chunks/Viewshed.glsl.js +1 -1
  122. package/core/Collection.js +1 -1
  123. package/core/CollectionFlattener.js +1 -1
  124. package/core/MemCache.js +1 -1
  125. package/geometry/support/PolylineBuilder.js +1 -1
  126. package/geometry/support/curves/bezierCurveUtils.js +5 -0
  127. package/geometry/support/curves/circleUtils.js +5 -0
  128. package/geometry/support/curves/circularArcUtils.js +5 -0
  129. package/geometry/support/curves/closestPointOnCurve.js +5 -0
  130. package/geometry/support/curves/curveUtils.js +5 -0
  131. package/geometry/support/curves/densifyCurvedGeometry.js +5 -0
  132. package/geometry/support/curves/ellipticArc4Utils.js +5 -0
  133. package/geometry/support/curves/ellipticArc7Utils.js +5 -0
  134. package/geometry/support/curves/mathUtils.js +5 -0
  135. package/geometry/support/curves/splitCurveAtPoint.js +5 -0
  136. package/identity/IdentityManagerBase.js +1 -1
  137. package/interfaces.d.ts +485 -20
  138. package/layers/LinkChartLayer.js +1 -1
  139. package/layers/VideoLayer.js +1 -1
  140. package/package.json +3 -3
  141. package/portal/schemas/definitions.js +1 -1
  142. package/request.js +1 -1
  143. package/rest/knowledgeGraph/GraphAddNamedTypesResult.js +5 -0
  144. package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.js +5 -0
  145. package/rest/knowledgeGraph/wasmInterface/WasmDataModelWrapperInterfaces.js +1 -1
  146. package/rest/knowledgeGraph/wasmInterface/updateToWasmEncodedFactories.js +1 -1
  147. package/rest/knowledgeGraph/wasmInterface/wasmToDataModelChangeResponseFactories.js +5 -0
  148. package/rest/knowledgeGraph/wasmInterface/wasmUtils.js +1 -1
  149. package/rest/knowledgeGraphService.js +1 -1
  150. package/rest/networks/circuits/alterCircuit.js +5 -0
  151. package/rest/networks/circuits/createCircuit.js +5 -0
  152. package/rest/networks/circuits/deleteCircuits.js +5 -0
  153. package/rest/networks/circuits/queryCircuits.js +5 -0
  154. package/rest/networks/circuits/support/CircuitVerifyResult.js +5 -0
  155. package/rest/networks/circuits/support/CreateAlterCircuitParameters.js +5 -0
  156. package/rest/networks/circuits/support/DeleteCircuitsParameters.js +5 -0
  157. package/rest/networks/circuits/support/QueryCircuitsParameters.js +5 -0
  158. package/rest/networks/circuits/support/QueryCircuitsResult.js +5 -0
  159. package/rest/networks/circuits/support/VerifyCircuitsParameters.js +5 -0
  160. package/rest/networks/circuits/support/VerifyCircuitsResult.js +5 -0
  161. package/rest/networks/circuits/verifyCircuits.js +5 -0
  162. package/smartMapping/renderers/support/spikeUtils.js +1 -1
  163. package/support/revision.js +1 -1
  164. package/symbols/cim/CIMOperators.js +1 -1
  165. package/symbols/cim/effects/EffectSuppress.js +5 -0
  166. package/symbols/cim/effects/EffectTaperedPolygon.js +1 -1
  167. package/views/2d/layers/MediaLayerView2D.js +1 -1
  168. package/views/2d/layers/TileLayerView2D.js +1 -1
  169. package/views/2d/layers/VideoLayerView2D.js +1 -1
  170. package/views/2d/layers/graphics/GraphicStoreItem.js +1 -1
  171. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  172. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
  173. package/views/3d/environment/ChapmanAtmosphereTechniqueConfiguration.js +1 -1
  174. package/views/3d/environment/EnvironmentManager.js +1 -1
  175. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  176. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  177. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  178. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  179. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  180. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  181. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  182. package/views/3d/layers/graphics/pipeline/Feature3DPipeline.js +1 -1
  183. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorker.js +1 -1
  184. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorkerHandle.js +1 -1
  185. package/views/3d/layers/graphics/pipeline/FeatureProcessingContext.js +1 -1
  186. package/views/3d/layers/graphics/pipeline/symbolization/IconSymbolLayerRenderer.js +5 -0
  187. package/views/3d/layers/graphics/pipeline/symbolization/ObjectSymbolLayerRenderer.js +5 -0
  188. package/views/3d/layers/graphics/pipeline/symbolization/Point3DSymbolRenderer.js +5 -0
  189. package/views/3d/layers/graphics/pipeline/symbolization/SimpleFeatureRenderer.js +1 -1
  190. package/views/3d/layers/graphics/pipeline/symbolization/UniqueValueFeatureRenderer.js +1 -1
  191. package/views/3d/layers/graphics/pipeline/symbolization/factoryUtils.js +5 -0
  192. package/views/3d/layers/graphics/pipeline/symbolization/primitiveObjectUtils.js +1 -1
  193. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  194. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  195. package/views/3d/webgl-engine/core/shaderLibrary/shading/AnalyticalSkyModel.glsl.js +3 -3
  196. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js +2 -2
  197. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +20 -19
  198. package/views/3d/webgl-engine/core/shaderLibrary/shading/FoamRendering.glsl.js +3 -3
  199. package/views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js +1 -1
  200. package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +3 -3
  201. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +10 -11
  202. package/views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js +1 -1
  203. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +30 -125
  204. package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +8 -8
  205. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +1 -1
  206. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js +27 -0
  207. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js +28 -0
  208. package/views/3d/webgl-engine/effects/RenderNodes.js +1 -1
  209. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  210. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  211. package/views/3d/webgl-engine/effects/haze/HazeTechniqueConfiguration.js +1 -1
  212. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  213. package/views/3d/webgl-engine/effects/weather/SnowCover.glsl.js +12 -0
  214. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  215. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  216. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  217. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  218. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  219. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  220. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  221. package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
  222. package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
  223. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  224. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  225. package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
  226. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  227. package/views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js +9 -9
  228. package/views/3d/webgl-engine/shaders/Path.glsl.js +1 -1
  229. package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
  230. package/views/3d/webgl-engine/shaders/ReadShadowMapConfiguration.js +1 -1
  231. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  232. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
  233. package/views/3d/webgl-engine/shaders/ShadowCastAccumulate.glsl.js +1 -1
  234. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
  235. package/views/3d/webgl-engine/shaders/ToneMapping.glsl.js +2 -20
  236. package/views/VideoView.js +1 -1
  237. package/views/support/LayerViewManager.js +1 -1
  238. package/webscene/support/FeatureReference.d.ts +4 -0
  239. package/webscene/support/FeatureReference.js +5 -0
  240. package/webscene/support/FeatureReferenceGlobalId.d.ts +4 -0
  241. package/webscene/support/FeatureReferenceGlobalId.js +5 -0
  242. package/webscene/support/FeatureReferenceId.d.ts +4 -0
  243. package/webscene/support/FeatureReferenceId.js +5 -0
  244. package/webscene/support/FeatureReferenceObjectId.d.ts +4 -0
  245. package/webscene/support/FeatureReferenceObjectId.js +5 -0
  246. package/webscene/support/LayerReference.d.ts +4 -0
  247. package/webscene/support/LayerReference.js +5 -0
  248. package/webscene/support/SlideElements.js +1 -1
  249. package/webscene/support/SlidePopupInfo.d.ts +4 -0
  250. package/webscene/support/SlidePopupInfo.js +5 -0
  251. package/webscene/support/featureReferenceUtils.js +5 -0
  252. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
  253. package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js +1 -1
  254. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  255. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  256. package/widgets/FeatureForm/EditableInput.js +1 -1
  257. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  258. package/widgets/FeatureForm.js +1 -1
  259. package/widgets/FeatureTable.js +1 -1
  260. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  261. package/widgets/VideoPlayer.js +1 -1
  262. package/widgets/support/SelectionList/FeatureItem.js +1 -1
  263. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  264. package/widgets/support/SelectionList.js +1 -1
  265. package/assets/esri/core/workers/chunks/27482132abb939a1cdb7.js +0 -1
  266. package/assets/esri/core/workers/chunks/2e3019ce49e972a815ca.js +0 -1
  267. package/assets/esri/core/workers/chunks/30551c1d3e4fa7be86c1.js +0 -2
  268. package/assets/esri/core/workers/chunks/3293b4041c222299428f.js +0 -1
  269. package/assets/esri/core/workers/chunks/335b539893569e3d7b82.js +0 -1
  270. package/assets/esri/core/workers/chunks/53eaad20c4f55dae21e0.js +0 -1
  271. package/assets/esri/core/workers/chunks/5ac3096139e3eafd0e1d.js +0 -1
  272. package/assets/esri/core/workers/chunks/626ba3a7dee952308566.js +0 -1
  273. package/assets/esri/core/workers/chunks/76575d2c1c56e37c1315.js +0 -319
  274. package/assets/esri/core/workers/chunks/7c4746f60332620f75c5.js +0 -1
  275. package/assets/esri/core/workers/chunks/8221f2e540abe1e0f048.js +0 -1
  276. package/assets/esri/core/workers/chunks/ae156b99e60a2bf940e4.js +0 -1
  277. package/assets/esri/core/workers/chunks/bf4947fe446dcb477031.js +0 -1
  278. package/assets/esri/core/workers/chunks/c6b08fdc0421258efcf5.js +0 -1
  279. package/assets/esri/core/workers/chunks/cd2927b922444880566d.js +0 -1
  280. package/assets/esri/core/workers/chunks/d3a74087e076a3ae76ca.js +0 -1
  281. package/assets/esri/core/workers/chunks/d44e99b4bb1cec6a922b.js +0 -1
  282. package/assets/esri/core/workers/chunks/e524462c63834fae7e01.js +0 -2
  283. package/assets/esri/core/workers/chunks/e64bc4533405af8554ae.js +0 -1
  284. package/assets/esri/core/workers/chunks/e64e0c3240f8e577a61c.js +0 -39
  285. package/assets/esri/core/workers/chunks/fd36b7aaf0d8e0c84471.js +0 -1
  286. package/geometry/support/curveUtils.js +0 -5
  287. package/geometry/support/densifyUtils.js +0 -5
  288. package/views/3d/layers/graphics/pipeline/symbolization/Factory.js +0 -5
  289. package/views/3d/layers/graphics/pipeline/symbolization/TestObjectSymbol.js +0 -5
  290. package/views/3d/layers/graphics/pipeline/symbolization/TestSymbol.js +0 -5
  291. package/views/3d/webgl-engine/effects/bloom/BloomCompositionTechniqueConfiguration.js +0 -5
  292. package/widgets/support/InteractiveAnalysisViewModel.js +0 -5
@@ -1,144 +1,62 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[7944],{6625:(e,t,r)=>{var i;r.d(t,{d:()=>i}),function(e){e[e.TextureDescriptor=0]="TextureDescriptor",e[e.Texture=1]="Texture",e[e.Renderbuffer=2]="Renderbuffer"}(i||(i={}))},10688:(e,t,r)=>{r.d(t,{kA:()=>M,a8:()=>A,eU:()=>S});var i=r(40876),o=(r(44208),r(38954)),n=r(51850),a=r(87317),s=r(91829),l=r(59469),c=r(23205),d=r(14314),u=r(31821);function h(e,t){const r=e.fragment,i=void 0!==t.lightingSphericalHarmonicsOrder?t.lightingSphericalHarmonicsOrder:2;0===i?(r.uniforms.add(new c.d("lightingAmbientSH0",(({lighting:e})=>(0,o.i)(m,e.sh.r[0],e.sh.g[0],e.sh.b[0])))),r.code.add(u.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
2
- vec3 ambientLight = 0.282095 * lightingAmbientSH0;
3
- return ambientLight * (1.0 - ambientOcclusion);
4
- }`)):1===i?(r.uniforms.add(new d.I("lightingAmbientSH_R",(({lighting:e})=>(0,a.s)(p,e.sh.r[0],e.sh.r[1],e.sh.r[2],e.sh.r[3]))),new d.I("lightingAmbientSH_G",(({lighting:e})=>(0,a.s)(p,e.sh.g[0],e.sh.g[1],e.sh.g[2],e.sh.g[3]))),new d.I("lightingAmbientSH_B",(({lighting:e})=>(0,a.s)(p,e.sh.b[0],e.sh.b[1],e.sh.b[2],e.sh.b[3])))),r.code.add(u.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
5
- vec4 sh0 = vec4(
6
- 0.282095,
7
- 0.488603 * normal.x,
8
- 0.488603 * normal.z,
9
- 0.488603 * normal.y
10
- );
11
- vec3 ambientLight = vec3(
12
- dot(lightingAmbientSH_R, sh0),
13
- dot(lightingAmbientSH_G, sh0),
14
- dot(lightingAmbientSH_B, sh0)
15
- );
16
- return ambientLight * (1.0 - ambientOcclusion);
17
- }`)):2===i&&(r.uniforms.add(new c.d("lightingAmbientSH0",(({lighting:e})=>(0,o.i)(m,e.sh.r[0],e.sh.g[0],e.sh.b[0]))),new d.I("lightingAmbientSH_R1",(({lighting:e})=>(0,a.s)(p,e.sh.r[1],e.sh.r[2],e.sh.r[3],e.sh.r[4]))),new d.I("lightingAmbientSH_G1",(({lighting:e})=>(0,a.s)(p,e.sh.g[1],e.sh.g[2],e.sh.g[3],e.sh.g[4]))),new d.I("lightingAmbientSH_B1",(({lighting:e})=>(0,a.s)(p,e.sh.b[1],e.sh.b[2],e.sh.b[3],e.sh.b[4]))),new d.I("lightingAmbientSH_R2",(({lighting:e})=>(0,a.s)(p,e.sh.r[5],e.sh.r[6],e.sh.r[7],e.sh.r[8]))),new d.I("lightingAmbientSH_G2",(({lighting:e})=>(0,a.s)(p,e.sh.g[5],e.sh.g[6],e.sh.g[7],e.sh.g[8]))),new d.I("lightingAmbientSH_B2",(({lighting:e})=>(0,a.s)(p,e.sh.b[5],e.sh.b[6],e.sh.b[7],e.sh.b[8])))),r.code.add(u.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
18
- vec3 ambientLight = 0.282095 * lightingAmbientSH0;
19
- vec4 sh1 = vec4(
20
- 0.488603 * normal.x,
21
- 0.488603 * normal.z,
22
- 0.488603 * normal.y,
23
- 1.092548 * normal.x * normal.y
24
- );
25
- vec4 sh2 = vec4(
26
- 1.092548 * normal.y * normal.z,
27
- 0.315392 * (3.0 * normal.z * normal.z - 1.0),
28
- 1.092548 * normal.x * normal.z,
29
- 0.546274 * (normal.x * normal.x - normal.y * normal.y)
30
- );
31
- ambientLight += vec3(
32
- dot(lightingAmbientSH_R1, sh1),
33
- dot(lightingAmbientSH_G1, sh1),
34
- dot(lightingAmbientSH_B1, sh1)
35
- );
36
- ambientLight += vec3(
37
- dot(lightingAmbientSH_R2, sh2),
38
- dot(lightingAmbientSH_G2, sh2),
39
- dot(lightingAmbientSH_B2, sh2)
40
- );
41
- return ambientLight * (1.0 - ambientOcclusion);
42
- }`),t.pbrMode!==l.A9.Normal&&t.pbrMode!==l.A9.Schematic||r.code.add(u.H`const vec3 skyTransmittance = vec3(0.9, 0.9, 1.0);
43
- vec3 calculateAmbientRadiance(float ambientOcclusion)
44
- {
45
- vec3 ambientLight = 1.2 * (0.282095 * lightingAmbientSH0) - 0.2;
46
- return ambientLight *= (1.0 - ambientOcclusion) * skyTransmittance;
47
- }`))}const m=(0,n.vt)(),p=(0,s.vt)();var f=r(85417),v=r(98619),g=r(22393),_=r(89786),T=r(32976),x=r(33094);r(34727),(0,n.vt)();const E=.4;function b(e){e.code.add(u.H`float mapChannel(float x, vec2 p) {
48
- return (x < p.x) ? mix(0.0, p.y, x/p.x) : mix(p.y, 1.0, (x - p.x) / (1.0 - p.x) );
49
- }`),e.code.add(u.H`vec3 blackLevelSoftCompression(vec3 color, float averageAmbientRadiance) {
50
- vec2 p = vec2(0.02, 0.0075) * averageAmbientRadiance;
51
- return vec3(mapChannel(color.x, p), mapChannel(color.y, p), mapChannel(color.z, p));
52
- }`)}function A(e){e.constants.add("ambientBoostFactor","float",E)}function S(e){e.uniforms.add(new x.U("lightingGlobalFactor",(e=>e.lighting.globalFactor)))}function M(e,t){const r=e.fragment,{pbrMode:o,spherical:n,hasColorTexture:a}=t;e.include(f.n,t),o!==l.A9.Disabled&&e.include(g.c,t),e.include(h,t),e.include(_.p);const s=!(o===l.A9.Schematic&&!a);switch(s&&r.include(b),r.code.add(u.H`
53
- const float GAMMA_SRGB = ${u.H.float(i.Tf)};
54
- const float INV_GAMMA_SRGB = 0.4761904;
55
- ${(0,u.If)(o!==l.A9.Disabled,"const float GROUND_REFLECTANCE = 0.2;")}
56
- `),A(r),S(r),(0,v.Gc)(r),r.code.add(u.H`
57
- float additionalDirectedAmbientLight(vec3 vPosWorld) {
58
- float vndl = dot(${n?u.H`normalize(vPosWorld)`:u.H`vec3(0.0, 0.0, 1.0)`}, mainLightDirection);
59
- return smoothstep(0.0, 1.0, clamp(vndl * 2.5, 0.0, 1.0));
60
- }
61
- `),(0,v.O4)(r),r.code.add(u.H`vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {
62
- float additionalAmbientScale = additionalDirectedAmbientLight(vPosWorld);
63
- return (1.0 - ambientOcclusion) * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor * mainLightIntensity;
64
- }`),o){case l.A9.Disabled:case l.A9.WaterOnIntegratedMesh:case l.A9.Water:e.include(v.Vt),r.code.add(u.H`vec3 evaluateSceneLighting(vec3 normalWorld, vec3 albedo, float shadow, float ssao, vec3 additionalLight) {
65
- vec3 mainLighting = applyShading(normalWorld, shadow);
66
- vec3 ambientLighting = calculateAmbientIrradiance(normalWorld, ssao);
67
- vec3 albedoLinear = pow(albedo, vec3(GAMMA_SRGB));
68
- vec3 totalLight = mainLighting + ambientLighting + additionalLight;
69
- totalLight = min(totalLight, vec3(PI));
70
- vec3 outColor = vec3((albedoLinear / PI) * totalLight);
71
- return pow(outColor, vec3(INV_GAMMA_SRGB));
72
- }`);break;case l.A9.Normal:case l.A9.Schematic:r.code.add(u.H`const float fillLightIntensity = 0.25;
73
- const float horizonLightDiffusion = 0.4;
74
- const float additionalAmbientIrradianceFactor = 0.02;
75
- vec3 evaluateSceneLightingPBR(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight, vec3 viewDir, vec3 normalGround, vec3 mrr, vec4 _emission, float additionalAmbientIrradiance)
76
- {
77
- vec3 viewDirection = -viewDir;
78
- vec3 h = normalize(viewDirection + mainLightDirection);
79
- PBRShadingInfo inputs;
80
- inputs.NdotV = clamp(abs(dot(normal, viewDirection)), 0.001, 1.0);
81
- inputs.NdotNG = clamp(dot(normal, normalGround), -1.0, 1.0);
82
- vec3 reflectedView = normalize(reflect(viewDirection, normal));
83
- inputs.RdotNG = clamp(dot(reflectedView, normalGround), -1.0, 1.0);
84
- inputs.albedoLinear = pow(albedo, vec3(GAMMA_SRGB));
85
- inputs.ssao = ssao;
86
- inputs.metalness = mrr[0];
87
- inputs.roughness = clamp(mrr[1] * mrr[1], 0.001, 0.99);`),r.code.add(u.H`inputs.f0 = (0.16 * mrr[2] * mrr[2]) * (1.0 - inputs.metalness) + inputs.albedoLinear * inputs.metalness;
88
- inputs.f90 = vec3(clamp(dot(inputs.f0, vec3(50.0 * 0.33)), 0.0, 1.0));
89
- inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);`),t.useFillLights?r.uniforms.add(new T.o("hasFillLights",(e=>e.enableFillLights))):r.constants.add("hasFillLights","bool",!1),r.code.add(u.H`vec3 ambientDir = vec3(5.0 * normalGround[1] - normalGround[0] * normalGround[2], - 5.0 * normalGround[0] - normalGround[2] * normalGround[1], normalGround[1] * normalGround[1] + normalGround[0] * normalGround[0]);
90
- ambientDir = ambientDir != vec3(0.0) ? normalize(ambientDir) : normalize(vec3(5.0, -1.0, 0.0));
91
- inputs.NdotAmbDir = hasFillLights ? abs(dot(normal, ambientDir)) : 1.0;
92
- float NdotL = clamp(dot(normal, mainLightDirection), 0.001, 1.0);
93
- vec3 mainLightIrradianceComponent = NdotL * (1.0 - shadow) * mainLightIntensity;
94
- vec3 fillLightsIrradianceComponent = inputs.NdotAmbDir * mainLightIntensity * fillLightIntensity;
95
- vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(normal, ssao) + additionalLight;
96
- inputs.skyIrradianceToSurface = ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;
97
- inputs.groundIrradianceToSurface = GROUND_REFLECTANCE * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;`),r.uniforms.add(new x.U("lightingSpecularStrength",(e=>e.lighting.mainLight.specularStrength)),new x.U("lightingEnvironmentStrength",(e=>e.lighting.mainLight.environmentStrength))).code.add(u.H`vec3 horizonRingDir = inputs.RdotNG * normalGround - reflectedView;
98
- vec3 horizonRingH = normalize(viewDirection + horizonRingDir);
99
- inputs.NdotH_Horizon = dot(normal, horizonRingH);
100
- float NdotH = clamp(dot(normal, h), 0.0, 1.0);
101
- vec3 mainLightRadianceComponent = lightingSpecularStrength * normalDistribution(NdotH, inputs.roughness) * mainLightIntensity * (1.0 - shadow);
102
- vec3 horizonLightRadianceComponent = lightingEnvironmentStrength * normalDistribution(inputs.NdotH_Horizon, min(inputs.roughness + horizonLightDiffusion, 1.0)) * mainLightIntensity * fillLightIntensity;
103
- vec3 ambientLightRadianceComponent = lightingEnvironmentStrength * calculateAmbientRadiance(ssao) + additionalLight;
104
- 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));
105
- inputs.skyRadianceToSurface = (ambientLightRadianceComponent + horizonLightRadianceComponent) * normalDirectionModifier + mainLightRadianceComponent;
106
- inputs.groundRadianceToSurface = 0.5 * GROUND_REFLECTANCE * (ambientLightRadianceComponent + horizonLightRadianceComponent) * normalDirectionModifier + mainLightRadianceComponent;
107
- inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + GROUND_REFLECTANCE);`),r.code.add(u.H`
108
- vec3 reflectedColorComponent = evaluateEnvironmentIllumination(inputs);
109
- vec3 additionalMaterialReflectanceComponent = inputs.albedoLinear * additionalAmbientIrradiance;
110
- vec3 emissionComponent = _emission.rgb == vec3(0.0) ? _emission.rgb : pow(_emission.rgb, vec3(GAMMA_SRGB));
111
- vec3 outColorLinear = reflectedColorComponent + additionalMaterialReflectanceComponent + emissionComponent;
112
- ${s?u.H`vec3 outColor = pow(blackLevelSoftCompression(outColorLinear, inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`:u.H`vec3 outColor = pow(max(vec3(0.0), outColorLinear - 0.005 * inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`}
113
- return outColor;
114
- }
115
- `);break;case l.A9.Simplified:case l.A9.TerrainWithWater:(0,v.Gc)(r),(0,v.O4)(r),r.code.add(u.H`const float roughnessTerrain = 0.5;
116
- const float specularityTerrain = 0.5;
117
- const vec3 fresnelReflectionTerrain = vec3(0.04);
118
- vec3 evaluatePBRSimplifiedLighting(vec3 n, vec3 c, float shadow, float ssao, vec3 al, vec3 vd, vec3 nup) {
119
- vec3 viewDirection = -vd;
120
- vec3 h = normalize(viewDirection + mainLightDirection);
121
- float NdotL = clamp(dot(n, mainLightDirection), 0.001, 1.0);
122
- float NdotV = clamp(abs(dot(n, viewDirection)), 0.001, 1.0);
123
- float NdotH = clamp(dot(n, h), 0.0, 1.0);
124
- float NdotNG = clamp(dot(n, nup), -1.0, 1.0);
125
- vec3 albedoLinear = pow(c, vec3(GAMMA_SRGB));
126
- float lightness = 0.3 * albedoLinear[0] + 0.5 * albedoLinear[1] + 0.2 * albedoLinear[2];
127
- vec3 f0 = (0.85 * lightness + 0.15) * fresnelReflectionTerrain;
128
- vec3 f90 = vec3(clamp(dot(f0, vec3(50.0 * 0.33)), 0.0, 1.0));
129
- vec3 mainLightIrradianceComponent = (1. - shadow) * NdotL * mainLightIntensity;
130
- vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(n, ssao) + al;
131
- vec3 ambientSky = ambientLightIrradianceComponent + mainLightIrradianceComponent;
132
- vec3 indirectDiffuse = ((1.0 - NdotNG) * mainLightIrradianceComponent + (1.0 + NdotNG ) * ambientSky) * 0.5;
133
- vec3 outDiffColor = albedoLinear * (1.0 - f0) * indirectDiffuse / PI;
134
- vec3 mainLightRadianceComponent = normalDistribution(NdotH, roughnessTerrain) * mainLightIntensity;
135
- vec2 dfg = prefilteredDFGAnalytical(roughnessTerrain, NdotV);
136
- vec3 specularColor = f0 * dfg.x + f90 * dfg.y;
137
- vec3 specularComponent = specularityTerrain * specularColor * mainLightRadianceComponent;
138
- vec3 outColorLinear = outDiffColor + specularComponent;
139
- vec3 outColor = pow(outColorLinear, vec3(INV_GAMMA_SRGB));
140
- return outColor;
141
- }`);default:case l.A9.COUNT:}}(0,n.vt)()},11725:(e,t,r)=>{r.d(t,{im:()=>h,m$:()=>i});var i,o,n=r(24326),a=r(51850),s=r(49255),l=r(39341),c=r(35256),d=r(43616),u=r(65786);class h{constructor(e,t){this.id=(0,n.c)(),this.supportsEdges=!1,this._renderPriority=0,this.vertexAttributeLocations=l.D,this._pp0=(0,a.fA)(0,0,1),this._pp1=(0,a.fA)(0,0,0),this._parameters=new t,(0,d.MB)(this._parameters,e),this.validateParameters(this._parameters)}get parameters(){return this._parameters}update(e){return!1}setParameters(e,t=!0){(0,d.MB)(this._parameters,e)&&(this.validateParameters(this._parameters),t&&this._parametersChanged())}validateParameters(e){}shouldRender(e){return this.visible&&this.isVisibleForOutput(e.output)&&(!this.parameters.isDecoration||e.bind.decorations)&&!!(this.parameters.renderOccluded&e.renderOccludedMask)}isVisibleForOutput(e){return!0}get renderPriority(){return this._renderPriority}set renderPriority(e){e!==this._renderPriority&&(this._renderPriority=e,this._parametersChanged())}_parametersChanged(){this.repository?.materialChanged(this)}queryRenderOccludedState(e){return this.visible&&this.parameters.renderOccluded===e}get hasEmissions(){return!1}getConfiguration(e,t,r=new c.E){return r.output=e,r.hasHighlightMixTexture=e===s.V.Highlight&&null!=t.highlightMixTexture,r}intersectDraped(e,t,r,i,o,n){return this._pp0[0]=this._pp1[0]=i[0],this._pp0[1]=this._pp1[1]=i[1],this.intersect(e,t,r,this._pp0,this._pp1,o)}}(o=i||(i={}))[o.None=0]="None",o[o.Occlude=1]="Occlude",o[o.Transparent=2]="Transparent",o[o.OccludeAndTransparent=4]="OccludeAndTransparent",o[o.OccludeAndTransparentStencil=8]="OccludeAndTransparentStencil",o[o.Opaque=16]="Opaque",u.Y},11964:(e,t,r)=>{r.d(t,{Cr:()=>c,H6:()=>h,_I:()=>u,kb:()=>d,vt:()=>l});var i=r(34727),o=r(4341),n=r(38954),a=r(51850),s=r(32114);function l(e){return e?{origin:(0,a.o8)(e.origin),vector:(0,a.o8)(e.vector)}:{origin:(0,a.vt)(),vector:(0,a.vt)()}}function c(e,t,r=l()){return(0,n.c)(r.origin,e),(0,n.d)(r.vector,t,e),r}function d(e,t){const r=(0,n.d)(s.rq.get(),t,e.origin),o=(0,n.f)(e.vector,r),a=(0,n.f)(e.vector,e.vector),l=(0,i.qE)(o/a,0,1),c=(0,n.d)(s.rq.get(),(0,n.h)(s.rq.get(),e.vector,l),r);return(0,n.f)(c,c)}function u(e,t,r){return h(e,t,0,1,r)}function h(e,t,r,o,a){const{vector:l,origin:c}=e,d=(0,n.d)(s.rq.get(),t,c),u=(0,n.f)(l,d)/(0,n.k)(l);return(0,n.h)(a,l,(0,i.qE)(u,r,o)),(0,n.g)(a,a,e.origin)}(0,a.vt)(),(0,a.vt)(),new o.I((()=>l()))},12541:(e,t,r)=>{r.d(t,{CR:()=>c,Eo:()=>g,FV:()=>f,Kv:()=>m,QE:()=>s,QJ:()=>d,Qp:()=>h,mq:()=>v,re:()=>p,tl:()=>u,tr:()=>l});var i=r(49186),o=r(53966),n=r(63907);const a=()=>o.A.getLogger("esri/views/webgl/textureUtils");function s(e){(null!=e.width&&e.width<0||null!=e.height&&e.height<0||null!=e.depth&&e.depth<0)&&a().error("Negative dimension parameters are not allowed!")}function l(e){return e in n.H0}function c(e){return e in n.SB}function d(e){return e in n.iE}function u(e){return null!=e&&e in n.CQ}function h(e){return null!=e&&"type"in e&&"compressed"===e.type}function m(e){return null!=e&&!h(e)&&!function(e){return null!=e&&"byteLength"in e}(e)}function p(e){return e===n.Ap.TEXTURE_3D||e===n.Ap.TEXTURE_2D_ARRAY}function f(e,t,r,i=1){let o=Math.max(t,r);return e===n.Ap.TEXTURE_3D&&(o=Math.max(o,i)),Math.floor(Math.log2(o))+1}function v(e){if(null!=e.internalFormat)return e.internalFormat;switch(e.dataType){case n.ld.FLOAT:switch(e.pixelFormat){case n.Ab.RGBA:return n.H0.RGBA32F;case n.Ab.RGB:return n.H0.RGB32F;default:throw new i.A("texture:unknown-format","Unable to derive format")}case n.ld.UNSIGNED_BYTE:switch(e.pixelFormat){case n.Ab.RGBA:return n.H0.RGBA8;case n.Ab.RGB:return n.H0.RGB8}}const{pixelFormat:t}=e;return e.internalFormat=t===n.j7.DEPTH_STENCIL?n.iE.DEPTH24_STENCIL8:t===n.j7.DEPTH_COMPONENT?n.SB.DEPTH_COMPONENT24:t,e.internalFormat}function g(e){let t="width"in e?e.width:e.codedWidth,r="height"in e?e.height:e.codedHeight;return e instanceof HTMLVideoElement&&(t=e.videoWidth,r=e.videoHeight),{width:t,height:r,depth:1}}},12791:(e,t,r)=>{r.d(t,{x:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"sampler2D",i.c.Bind,((r,i)=>r.bindTexture(e,t(i))))}}},13464:(e,t,r)=>{var i;r.d(t,{N:()=>i}),function(e){e[e.INTEGRATED_MESH=0]="INTEGRATED_MESH",e[e.OPAQUE_TERRAIN=1]="OPAQUE_TERRAIN",e[e.OPAQUE_MATERIAL=2]="OPAQUE_MATERIAL",e[e.OPAQUE_MATERIAL_WITHOUT_NORMALS=3]="OPAQUE_MATERIAL_WITHOUT_NORMALS",e[e.TRANSPARENT_MATERIAL=4]="TRANSPARENT_MATERIAL",e[e.TRANSPARENT_MATERIAL_WITHOUT_NORMALS=5]="TRANSPARENT_MATERIAL_WITHOUT_NORMALS",e[e.TRANSPARENT_TERRAIN=6]="TRANSPARENT_TERRAIN",e[e.TRANSPARENT_MATERIAL_WITHOUT_DEPTH=7]="TRANSPARENT_MATERIAL_WITHOUT_DEPTH",e[e.OCCLUDED_TERRAIN=8]="OCCLUDED_TERRAIN",e[e.OCCLUDER_MATERIAL=9]="OCCLUDER_MATERIAL",e[e.TRANSPARENT_OCCLUDER_MATERIAL=10]="TRANSPARENT_OCCLUDER_MATERIAL",e[e.OCCLUSION_PIXELS=11]="OCCLUSION_PIXELS",e[e.HUD_MATERIAL=12]="HUD_MATERIAL",e[e.LABEL_MATERIAL=13]="LABEL_MATERIAL",e[e.LINE_CALLOUTS=14]="LINE_CALLOUTS",e[e.LINE_CALLOUTS_HUD_DEPTH=15]="LINE_CALLOUTS_HUD_DEPTH",e[e.OVERLAY=16]="OVERLAY",e[e.DRAPED_MATERIAL=17]="DRAPED_MATERIAL",e[e.DRAPED_WATER=18]="DRAPED_WATER",e[e.VOXEL=19]="VOXEL",e[e.MAX_SLOTS=20]="MAX_SLOTS"}(i||(i={}))},14113:(e,t,r)=>{r.d(t,{N5:()=>l});var i=r(49186),o=(r(44208),r(53966)),n=r(69270);const a=()=>o.A.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class s{constructor(){this._includedModules=new Map}include(e,t){this._includedModules.has(e)?this._includedModules.get(e):(this._includedModules.set(e,t),e(this.builder,t))}}class l extends s{constructor(){super(...arguments),this.vertex=new h,this.fragment=new h,this.attributes=new m,this.varyings=new p,this.extensions=new f,this.outputs=new v}get fragmentUniforms(){return this.fragment.uniforms.entries}get builder(){return this}generate(e,t=!1){const r=this.extensions.generateSource(e),i=this.attributes.generateSource(e),o=this.varyings.generateSource(e),n="vertex"===e?this.vertex:this.fragment,a=n.uniforms.generateSource(),s=n.code.generateSource(),l=n.main.generateSource(t),c="vertex"===e?T:_,d=n.constants.generateSource(),u=this.outputs.generateSource(e);return`#version 300 es\n${r.join("\n")}\n${c}\n${d.join("\n")}\n${a.join("\n")}\n${i.join("\n")}\n${o.join("\n")}\n${u.join("\n")}\n${s.join("\n")}\n${l.join("\n")}`}generateBind(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Bind];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Bind];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return t=>{for(let o=0;o<i;++o)r[o](e,t)}}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Pass];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Pass];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return(t,o)=>{for(let n=0;n<i;++n)r[n](e,t,o)}}generateBindDraw(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Draw];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Draw];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return(t,o,n)=>{for(let a=0;a<i;++a)r[a](e,n,t,o)}}}class c{constructor(e){this._stage=e,this._entries=new Map}add(...e){for(const t of e)this._add(t);return this._stage}get(e){return this._entries.get(e)}_add(e){if(null!=e){if(this._entries.has(e.name)&&!this._entries.get(e.name).equals(e))throw new i.A("shaderbuilder:duplicate-uniform",`Duplicate uniform name ${e.name} for different uniform type`);this._entries.set(e.name,e)}else a().error(`Trying to add null Uniform from ${(new Error).stack}.`)}generateSource(){return Array.from(this._entries.values()).map((({name:e,arraySize:t,type:r})=>null!=t?`uniform ${r} ${e}[${t}];`:`uniform ${r} ${e};`))}get entries(){return Array.from(this._entries.values())}}class d{constructor(e){this._stage=e,this._bodies=new Array}add(e){return this._bodies.push(e),this._stage}generateSource(e){if(this._bodies.length>0)return[`void main() {\n ${this._bodies.join("\n")||""} \n}`];if(e)throw new i.A("shaderbuilder:missing-main","Shader does not contain main function body.");return[]}}class u{constructor(e){this._stage=e,this._entries=new Array}add(e){return this._entries.push(e),this._stage}generateSource(){return this._entries}}class h extends s{constructor(){super(...arguments),this.uniforms=new c(this),this.main=new d(this),this.code=new u(this),this.constants=new g(this)}get builder(){return this}}class m{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map((e=>`in ${e[1]} ${e[0]};`))}}class p{constructor(){this._entries=new Map}add(e,t,r){this._entries.has(e)?a().warn(`Ignoring duplicate varying ${t} ${e}`):this._entries.set(e,{type:t,invariant:r?.invariant??!1})}generateSource(e){const t=new Array;return this._entries.forEach(((r,i)=>t.push((r.invariant&&"vertex"===e?"invariant ":"")+("vertex"===e?"out":"in")+` ${r.type} ${i};`))),t}}class f{constructor(){this._entries=new Set}add(e){this._entries.add(e)}generateSource(e){const t="vertex"===e?f.ALLOWLIST_VERTEX:f.ALLOWLIST_FRAGMENT;return Array.from(this._entries).filter((e=>t.includes(e))).map((e=>`#extension ${e} : enable`))}static{this.ALLOWLIST_FRAGMENT=["GL_EXT_shader_texture_lod","GL_OES_standard_derivatives"]}static{this.ALLOWLIST_VERTEX=[]}}class v{constructor(){this._entries=new Map}add(e,t,r=0){const i=this._entries.get(r);i?.name!==e||i?.type!==t?this._entries.set(r,{name:e,type:t}):a().warn(`Fragment shader output location ${r} occupied`)}static{this.DEFAULT_TYPE="vec4"}static{this.DEFAULT_NAME="fragColor"}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:v.DEFAULT_NAME,type:v.DEFAULT_TYPE});const t=new Array;return this._entries.forEach(((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`))),t}}class g{constructor(e){this._stage=e,this._entries=new Set}add(e,t,r){let i="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":i=g._numberToFloatStr(r);break;case"int":i=g._numberToIntStr(r);break;case"bool":i=r.toString();break;case"vec2":i=`vec2(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])})`;break;case"vec3":i=`vec3(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])}, ${g._numberToFloatStr(r[2])})`;break;case"vec4":i=`vec4(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])}, ${g._numberToFloatStr(r[2])}, ${g._numberToFloatStr(r[3])})`;break;case"ivec2":i=`ivec2(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])})`;break;case"ivec3":i=`ivec3(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])})`;break;case"ivec4":i=`ivec4(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])}, ${g._numberToIntStr(r[3])})`;break;case"uvec2":i=`uvec2(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])})`;break;case"uvec3":i=`uvec3(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])})`;break;case"uvec4":i=`uvec4(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])}, ${g._numberToIntStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":i=`${t}(${Array.prototype.map.call(r,(e=>g._numberToFloatStr(e))).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${i};`),this._stage}static _numberToIntStr(e){return e.toFixed(0)}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const _="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n#else\n precision mediump float;\n precision mediump int;\n precision mediump sampler2D;\n precision mediump usampler2D;\n precision mediump sampler2DArray;\n#endif",T="precision highp float;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n\n invariant gl_Position;\n "},14314:(e,t,r)=>{r.d(t,{I:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec4",i.c.Bind,((r,i)=>r.setUniform4fv(e,t(i))))}}},15581:(e,t,r)=>{r.d(t,{S:()=>T,b:()=>v,g:()=>g});var i=r(37585),o=r(48163),n=r(82048),a=r(52540),s=r(34845),l=r(77108),c=r(47286),d=r(33094),u=r(20304),h=r(31821),m=r(63761),p=r(14113);const f=16;function v(){const e=new p.N5,t=e.fragment;return e.include(n.c),e.include(s.Ir),t.include(a.E),t.uniforms.add(new d.U("radius",(e=>g(e.camera)))).code.add(h.H`vec3 sphere[16] = vec3[16](
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[6179],{3800:(e,t,r)=>{r.d(t,{Bz:()=>g,G:()=>v}),r(9093),r(51850);var i=r(14314),o=r(31821),n=r(35818),a=r(69270),s=r(74333);class c extends s.n{constructor(e,t,r){super(e,"mat4",a.c.Draw,((r,i,o,n)=>r.setUniformMatrix4fv(e,t(i,o,n))),r)}}class l extends s.n{constructor(e,t,r){super(e,"mat4",a.c.Pass,((r,i,o)=>r.setUniformMatrix4fv(e,t(i,o))),r)}}var d=r(65786);function u(e){e.fragment.uniforms.add(new l("shadowMapMatrix",((e,t)=>t.shadowMap.getShadowMapMatrices(e.origin)),4)),m(e)}function h(e){e.fragment.uniforms.add(new c("shadowMapMatrix",((e,t)=>t.shadowMap.getShadowMapMatrices(e.origin)),4)),m(e)}function m(e){e.fragment.uniforms.add(new i.I("cascadeDistances",(e=>e.shadowMap.cascadeDistances)),new n.W("numCascades",(e=>e.shadowMap.numCascades))).code.add(o.H`const vec3 invalidShadowmapUVZ = vec3(0.0, 0.0, -1.0);
2
+ vec3 lightSpacePosition(vec3 _vpos, mat4 mat) {
3
+ vec4 lv = mat * vec4(_vpos, 1.0);
4
+ lv.xy /= lv.w;
5
+ return 0.5 * lv.xyz + vec3(0.5);
6
+ }
7
+ vec2 cascadeCoordinates(int i, ivec2 textureSize, vec3 lvpos) {
8
+ float xScale = float(textureSize.y) / float(textureSize.x);
9
+ return vec2((float(i) + lvpos.x) * xScale, lvpos.y);
10
+ }
11
+ vec3 calculateUVZShadow(in vec3 _worldPos, in float _linearDepth, in ivec2 shadowMapSize) {
12
+ int i = _linearDepth < cascadeDistances[1] ? 0 : _linearDepth < cascadeDistances[2] ? 1 : _linearDepth < cascadeDistances[3] ? 2 : 3;
13
+ if (i >= numCascades) {
14
+ return invalidShadowmapUVZ;
15
+ }
16
+ mat4 shadowMatrix = i == 0 ? shadowMapMatrix[0] : i == 1 ? shadowMapMatrix[1] : i == 2 ? shadowMapMatrix[2] : shadowMapMatrix[3];
17
+ vec3 lvpos = lightSpacePosition(_worldPos, shadowMatrix);
18
+ if (lvpos.z >= 1.0 || lvpos.x < 0.0 || lvpos.x > 1.0 || lvpos.y < 0.0 || lvpos.y > 1.0) {
19
+ return invalidShadowmapUVZ;
20
+ }
21
+ vec2 uvShadow = cascadeCoordinates(i, shadowMapSize, lvpos);
22
+ return vec3(uvShadow, lvpos.z);
23
+ }`)}d.Y;var p=r(80730),f=r(12791);function v(e,t){t.receiveShadows&&(e.include(u),_(e))}function g(e,t){t.receiveShadows&&(e.include(h),_(e))}function _(e){const{fragment:t}=e;t.include(p.U),t.uniforms.add(new f.x("shadowMap",(e=>e.shadowMap.depthTexture))).code.add(o.H`float readShadowMapDepth(ivec2 uv, sampler2D _shadowMap) {
24
+ return rgba4ToFloat(texelFetch(_shadowMap, uv, 0));
25
+ }
26
+ float posIsInShadow(ivec2 uv, float lvposZ, sampler2D _shadowMap) {
27
+ return readShadowMapDepth(uv, _shadowMap) < lvposZ ? 1.0 : 0.0;
28
+ }
29
+ float filterShadow(vec3 uvzShadow, sampler2D _shadowMap) {
30
+ ivec2 texSize = textureSize(_shadowMap, 0);
31
+ vec2 uv = uvzShadow.xy;
32
+ vec2 st = fract(uv * vec2(texSize) + vec2(0.5));
33
+ ivec2 base = ivec2(uv * vec2(texSize) - vec2(0.5));
34
+ float s00 = posIsInShadow(ivec2(base.x, base.y ), uvzShadow.z, _shadowMap);
35
+ float s10 = posIsInShadow(ivec2(base.x + 1, base.y ), uvzShadow.z, _shadowMap);
36
+ float s11 = posIsInShadow(ivec2(base.x + 1, base.y + 1), uvzShadow.z, _shadowMap);
37
+ float s01 = posIsInShadow(ivec2(base.x, base.y + 1), uvzShadow.z, _shadowMap);
38
+ return mix(mix(s00, s10, st.x), mix(s01, s11, st.x), st.y);
39
+ }
40
+ bool posIsInShadowF(vec3 uvzShadow, sampler2D _shadowMap) {
41
+ ivec2 texSize = textureSize(_shadowMap, 0);
42
+ ivec2 iuvShadow = ivec2(uvzShadow.xy * vec2(texSize));
43
+ float depthShadow = readShadowMapDepth(iuvShadow, _shadowMap);
44
+ return depthShadow < uvzShadow.z;
45
+ }
46
+ float readShadowMap(const in vec3 _worldPos, float _linearDepth) {
47
+ vec3 uvzShadow = calculateUVZShadow(_worldPos, _linearDepth, textureSize(shadowMap,0));
48
+ if (uvzShadow.z < 0.0) {
49
+ return 0.0;
50
+ }
51
+ return filterShadow(uvzShadow, shadowMap);
52
+ }`)}d.Y},6625:(e,t,r)=>{var i;r.d(t,{d:()=>i}),function(e){e[e.TextureDescriptor=0]="TextureDescriptor",e[e.Texture=1]="Texture",e[e.Renderbuffer=2]="Renderbuffer"}(i||(i={}))},10906:(e,t,r)=>{r.d(t,{b:()=>o});var i=r(31821);function o(e,t){t.snowCover&&(e.code.add(i.H`float getSnow(vec3 normal, vec3 normalGround) {
53
+ return smoothstep(0.5, 0.55, dot(normal, normalGround));
54
+ }`),e.code.add(i.H`vec3 applySnowToMRR(vec3 mrr, float snow) {
55
+ return mix(mrr, vec3(0.0, 1.0, 0.04), snow);
56
+ }
57
+ vec4 snowCoverForEmissions(vec4 emission, float snow) {
58
+ return mix(emission, vec4(0.0), snow);
59
+ }`))}},11725:(e,t,r)=>{r.d(t,{im:()=>h,m$:()=>i});var i,o,n=r(24326),a=r(51850),s=r(49255),c=r(39341),l=r(35256),d=r(43616),u=r(65786);class h{constructor(e,t){this.id=(0,n.c)(),this.supportsEdges=!1,this._renderPriority=0,this.vertexAttributeLocations=c.D,this._pp0=(0,a.fA)(0,0,1),this._pp1=(0,a.fA)(0,0,0),this._parameters=new t,(0,d.MB)(this._parameters,e),this.validateParameters(this._parameters)}get parameters(){return this._parameters}update(e){return!1}setParameters(e,t=!0){(0,d.MB)(this._parameters,e)&&(this.validateParameters(this._parameters),t&&this._parametersChanged())}validateParameters(e){}shouldRender(e){return this.visible&&this.isVisibleForOutput(e.output)&&(!this.parameters.isDecoration||e.bind.decorations)&&!!(this.parameters.renderOccluded&e.renderOccludedMask)}isVisibleForOutput(e){return!0}get renderPriority(){return this._renderPriority}set renderPriority(e){e!==this._renderPriority&&(this._renderPriority=e,this._parametersChanged())}_parametersChanged(){this.repository?.materialChanged(this)}queryRenderOccludedState(e){return this.visible&&this.parameters.renderOccluded===e}get hasEmissions(){return!1}getConfiguration(e,t,r=new l.E){return r.output=e,r.hasHighlightMixTexture=e===s.V.Highlight&&null!=t.highlightMixTexture,r}intersectDraped(e,t,r,i,o,n){return this._pp0[0]=this._pp1[0]=i[0],this._pp0[1]=this._pp1[1]=i[1],this.intersect(e,t,r,this._pp0,this._pp1,o)}}(o=i||(i={}))[o.None=0]="None",o[o.Occlude=1]="Occlude",o[o.Transparent=2]="Transparent",o[o.OccludeAndTransparent=4]="OccludeAndTransparent",o[o.OccludeAndTransparentStencil=8]="OccludeAndTransparentStencil",o[o.Opaque=16]="Opaque",u.Y},11964:(e,t,r)=>{r.d(t,{Cr:()=>l,H6:()=>h,_I:()=>u,kb:()=>d,vt:()=>c});var i=r(34727),o=r(4341),n=r(38954),a=r(51850),s=r(32114);function c(e){return e?{origin:(0,a.o8)(e.origin),vector:(0,a.o8)(e.vector)}:{origin:(0,a.vt)(),vector:(0,a.vt)()}}function l(e,t,r=c()){return(0,n.c)(r.origin,e),(0,n.d)(r.vector,t,e),r}function d(e,t){const r=(0,n.d)(s.rq.get(),t,e.origin),o=(0,n.f)(e.vector,r),a=(0,n.f)(e.vector,e.vector),c=(0,i.qE)(o/a,0,1),l=(0,n.d)(s.rq.get(),(0,n.h)(s.rq.get(),e.vector,c),r);return(0,n.f)(l,l)}function u(e,t,r){return h(e,t,0,1,r)}function h(e,t,r,o,a){const{vector:c,origin:l}=e,d=(0,n.d)(s.rq.get(),t,l),u=(0,n.f)(c,d)/(0,n.k)(c);return(0,n.h)(a,c,(0,i.qE)(u,r,o)),(0,n.g)(a,a,e.origin)}(0,a.vt)(),(0,a.vt)(),new o.I((()=>c()))},12541:(e,t,r)=>{r.d(t,{CR:()=>l,Eo:()=>g,FV:()=>f,Kv:()=>m,QE:()=>s,QJ:()=>d,Qp:()=>h,mq:()=>v,re:()=>p,tl:()=>u,tr:()=>c});var i=r(49186),o=r(53966),n=r(63907);const a=()=>o.A.getLogger("esri/views/webgl/textureUtils");function s(e){(null!=e.width&&e.width<0||null!=e.height&&e.height<0||null!=e.depth&&e.depth<0)&&a().error("Negative dimension parameters are not allowed!")}function c(e){return e in n.H0}function l(e){return e in n.SB}function d(e){return e in n.iE}function u(e){return null!=e&&e in n.CQ}function h(e){return null!=e&&"type"in e&&"compressed"===e.type}function m(e){return null!=e&&!h(e)&&!function(e){return null!=e&&"byteLength"in e}(e)}function p(e){return e===n.Ap.TEXTURE_3D||e===n.Ap.TEXTURE_2D_ARRAY}function f(e,t,r,i=1){let o=Math.max(t,r);return e===n.Ap.TEXTURE_3D&&(o=Math.max(o,i)),Math.floor(Math.log2(o))+1}function v(e){if(null!=e.internalFormat)return e.internalFormat;switch(e.dataType){case n.ld.FLOAT:switch(e.pixelFormat){case n.Ab.RGBA:return n.H0.RGBA32F;case n.Ab.RGB:return n.H0.RGB32F;default:throw new i.A("texture:unknown-format","Unable to derive format")}case n.ld.UNSIGNED_BYTE:switch(e.pixelFormat){case n.Ab.RGBA:return n.H0.RGBA8;case n.Ab.RGB:return n.H0.RGB8}}const{pixelFormat:t}=e;return e.internalFormat=t===n.j7.DEPTH_STENCIL?n.iE.DEPTH24_STENCIL8:t===n.j7.DEPTH_COMPONENT?n.SB.DEPTH_COMPONENT24:t,e.internalFormat}function g(e){let t="width"in e?e.width:e.codedWidth,r="height"in e?e.height:e.codedHeight;return e instanceof HTMLVideoElement&&(t=e.videoWidth,r=e.videoHeight),{width:t,height:r,depth:1}}},12791:(e,t,r)=>{r.d(t,{x:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"sampler2D",i.c.Bind,((r,i)=>r.bindTexture(e,t(i))))}}},13464:(e,t,r)=>{var i;r.d(t,{N:()=>i}),function(e){e[e.INTEGRATED_MESH=0]="INTEGRATED_MESH",e[e.OPAQUE_TERRAIN=1]="OPAQUE_TERRAIN",e[e.OPAQUE_MATERIAL=2]="OPAQUE_MATERIAL",e[e.OPAQUE_MATERIAL_WITHOUT_NORMALS=3]="OPAQUE_MATERIAL_WITHOUT_NORMALS",e[e.TRANSPARENT_MATERIAL=4]="TRANSPARENT_MATERIAL",e[e.TRANSPARENT_MATERIAL_WITHOUT_NORMALS=5]="TRANSPARENT_MATERIAL_WITHOUT_NORMALS",e[e.TRANSPARENT_TERRAIN=6]="TRANSPARENT_TERRAIN",e[e.TRANSPARENT_MATERIAL_WITHOUT_DEPTH=7]="TRANSPARENT_MATERIAL_WITHOUT_DEPTH",e[e.OCCLUDED_TERRAIN=8]="OCCLUDED_TERRAIN",e[e.OCCLUDER_MATERIAL=9]="OCCLUDER_MATERIAL",e[e.TRANSPARENT_OCCLUDER_MATERIAL=10]="TRANSPARENT_OCCLUDER_MATERIAL",e[e.OCCLUSION_PIXELS=11]="OCCLUSION_PIXELS",e[e.HUD_MATERIAL=12]="HUD_MATERIAL",e[e.LABEL_MATERIAL=13]="LABEL_MATERIAL",e[e.LINE_CALLOUTS=14]="LINE_CALLOUTS",e[e.LINE_CALLOUTS_HUD_DEPTH=15]="LINE_CALLOUTS_HUD_DEPTH",e[e.OVERLAY=16]="OVERLAY",e[e.DRAPED_MATERIAL=17]="DRAPED_MATERIAL",e[e.DRAPED_WATER=18]="DRAPED_WATER",e[e.VOXEL=19]="VOXEL",e[e.MAX_SLOTS=20]="MAX_SLOTS"}(i||(i={}))},14113:(e,t,r)=>{r.d(t,{N5:()=>c});var i=r(49186),o=(r(44208),r(53966)),n=r(69270);const a=()=>o.A.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class s{constructor(){this._includedModules=new Map}include(e,t){this._includedModules.has(e)?this._includedModules.get(e):(this._includedModules.set(e,t),e(this.builder,t))}}class c extends s{constructor(){super(...arguments),this.vertex=new h,this.fragment=new h,this.attributes=new m,this.varyings=new p,this.extensions=new f,this.outputs=new v}get fragmentUniforms(){return this.fragment.uniforms.entries}get builder(){return this}generate(e,t=!1){const r=this.extensions.generateSource(e),i=this.attributes.generateSource(e),o=this.varyings.generateSource(e),n="vertex"===e?this.vertex:this.fragment,a=n.uniforms.generateSource(),s=n.code.generateSource(),c=n.main.generateSource(t),l="vertex"===e?T:_,d=n.constants.generateSource(),u=this.outputs.generateSource(e);return`#version 300 es\n${r.join("\n")}\n${l}\n${d.join("\n")}\n${a.join("\n")}\n${i.join("\n")}\n${o.join("\n")}\n${u.join("\n")}\n${s.join("\n")}\n${c.join("\n")}`}generateBind(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Bind];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Bind];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return t=>{for(let o=0;o<i;++o)r[o](e,t)}}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Pass];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Pass];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return(t,o)=>{for(let n=0;n<i;++n)r[n](e,t,o)}}generateBindDraw(e){const t=new Map;this.vertex.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Draw];r&&t.set(e.name,r)})),this.fragment.uniforms.entries.forEach((e=>{const r=e.bind[n.c.Draw];r&&t.set(e.name,r)}));const r=Array.from(t.values()),i=r.length;return(t,o,n)=>{for(let a=0;a<i;++a)r[a](e,n,t,o)}}}class l{constructor(e){this._stage=e,this._entries=new Map}add(...e){for(const t of e)this._add(t);return this._stage}get(e){return this._entries.get(e)}_add(e){if(null!=e){if(this._entries.has(e.name)&&!this._entries.get(e.name).equals(e))throw new i.A("shaderbuilder:duplicate-uniform",`Duplicate uniform name ${e.name} for different uniform type`);this._entries.set(e.name,e)}else a().error(`Trying to add null Uniform from ${(new Error).stack}.`)}generateSource(){return Array.from(this._entries.values()).map((({name:e,arraySize:t,type:r})=>null!=t?`uniform ${r} ${e}[${t}];`:`uniform ${r} ${e};`))}get entries(){return Array.from(this._entries.values())}}class d{constructor(e){this._stage=e,this._bodies=new Array}add(e){return this._bodies.push(e),this._stage}generateSource(e){if(this._bodies.length>0)return[`void main() {\n ${this._bodies.join("\n")||""} \n}`];if(e)throw new i.A("shaderbuilder:missing-main","Shader does not contain main function body.");return[]}}class u{constructor(e){this._stage=e,this._entries=new Array}add(e){return this._entries.push(e),this._stage}generateSource(){return this._entries}}class h extends s{constructor(){super(...arguments),this.uniforms=new l(this),this.main=new d(this),this.code=new u(this),this.constants=new g(this)}get builder(){return this}}class m{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map((e=>`in ${e[1]} ${e[0]};`))}}class p{constructor(){this._entries=new Map}add(e,t,r){this._entries.has(e)?a().warn(`Ignoring duplicate varying ${t} ${e}`):this._entries.set(e,{type:t,invariant:r?.invariant??!1})}generateSource(e){const t=new Array;return this._entries.forEach(((r,i)=>t.push((r.invariant&&"vertex"===e?"invariant ":"")+("vertex"===e?"out":"in")+` ${r.type} ${i};`))),t}}class f{constructor(){this._entries=new Set}add(e){this._entries.add(e)}generateSource(e){const t="vertex"===e?f.ALLOWLIST_VERTEX:f.ALLOWLIST_FRAGMENT;return Array.from(this._entries).filter((e=>t.includes(e))).map((e=>`#extension ${e} : enable`))}static{this.ALLOWLIST_FRAGMENT=["GL_EXT_shader_texture_lod","GL_OES_standard_derivatives"]}static{this.ALLOWLIST_VERTEX=[]}}class v{constructor(){this._entries=new Map}add(e,t,r=0){const i=this._entries.get(r);i?.name!==e||i?.type!==t?this._entries.set(r,{name:e,type:t}):a().warn(`Fragment shader output location ${r} occupied`)}static{this.DEFAULT_TYPE="vec4"}static{this.DEFAULT_NAME="fragColor"}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:v.DEFAULT_NAME,type:v.DEFAULT_TYPE});const t=new Array;return this._entries.forEach(((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`))),t}}class g{constructor(e){this._stage=e,this._entries=new Set}add(e,t,r){let i="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":i=g._numberToFloatStr(r);break;case"int":i=g._numberToIntStr(r);break;case"bool":i=r.toString();break;case"vec2":i=`vec2(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])})`;break;case"vec3":i=`vec3(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])}, ${g._numberToFloatStr(r[2])})`;break;case"vec4":i=`vec4(${g._numberToFloatStr(r[0])}, ${g._numberToFloatStr(r[1])}, ${g._numberToFloatStr(r[2])}, ${g._numberToFloatStr(r[3])})`;break;case"ivec2":i=`ivec2(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])})`;break;case"ivec3":i=`ivec3(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])})`;break;case"ivec4":i=`ivec4(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])}, ${g._numberToIntStr(r[3])})`;break;case"uvec2":i=`uvec2(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])})`;break;case"uvec3":i=`uvec3(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])})`;break;case"uvec4":i=`uvec4(${g._numberToIntStr(r[0])}, ${g._numberToIntStr(r[1])}, ${g._numberToIntStr(r[2])}, ${g._numberToIntStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":i=`${t}(${Array.prototype.map.call(r,(e=>g._numberToFloatStr(e))).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${i};`),this._stage}static _numberToIntStr(e){return e.toFixed(0)}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const _="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n#else\n precision mediump float;\n precision mediump int;\n precision mediump sampler2D;\n precision mediump usampler2D;\n precision mediump sampler2DArray;\n#endif",T="precision highp float;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n\n invariant gl_Position;\n "},14314:(e,t,r)=>{r.d(t,{I:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec4",i.c.Bind,((r,i)=>r.setUniform4fv(e,t(i))))}}},15581:(e,t,r)=>{r.d(t,{S:()=>T,b:()=>v,g:()=>g});var i=r(37585),o=r(48163),n=r(82048),a=r(52540),s=r(34845),c=r(77108),l=r(47286),d=r(33094),u=r(20304),h=r(31821),m=r(63761),p=r(14113);const f=16;function v(){const e=new p.N5,t=e.fragment;return e.include(n.c),e.include(s.Ir),t.include(a.E),t.uniforms.add(new d.U("radius",(e=>g(e.camera)))).code.add(h.H`vec3 sphere[16] = vec3[16](
142
60
  vec3(0.186937, 0.0, 0.0),
143
61
  vec3(0.700542, 0.0, 0.0),
144
62
  vec3(-0.864858, -0.481795, -0.111713),
@@ -164,7 +82,7 @@ vec3 v = Q - C;
164
82
  float vv = dot(v, v);
165
83
  float vn = dot(normalize(v), n_C);
166
84
  return fallOffFunction(vv, vn, 0.1);
167
- }`),t.uniforms.add(new m.N("normalMap",(e=>e.normalTexture)),new m.N("depthMap",(e=>e.depthTexture)),new u.m("projScale",(e=>e.projScale)),new m.N("rnm",(e=>e.noiseTexture)),new c.G("rnmScale",((e,t)=>(0,i.hZ)(_,t.camera.fullWidth/e.noiseTexture.descriptor.width,t.camera.fullHeight/e.noiseTexture.descriptor.height))),new u.m("intensity",(e=>e.intensity)),new l.E("screenSize",(e=>(0,i.hZ)(_,e.camera.fullWidth,e.camera.fullHeight)))),e.outputs.add("fragOcclusion","float"),t.main.add(h.H`
85
+ }`),t.uniforms.add(new m.N("normalMap",(e=>e.normalTexture)),new m.N("depthMap",(e=>e.depthTexture)),new u.m("projScale",(e=>e.projScale)),new m.N("rnm",(e=>e.noiseTexture)),new l.G("rnmScale",((e,t)=>(0,i.hZ)(_,t.camera.fullWidth/e.noiseTexture.descriptor.width,t.camera.fullHeight/e.noiseTexture.descriptor.height))),new u.m("intensity",(e=>e.intensity)),new c.E("screenSize",(e=>(0,i.hZ)(_,e.camera.fullWidth,e.camera.fullHeight)))),e.outputs.add("fragOcclusion","float"),t.main.add(h.H`
168
86
  float depth = depthFromTexture(depthMap, uv);
169
87
 
170
88
  // Early out if depth is out of range, such as in the sky
@@ -219,29 +137,29 @@ return fallOffFunction(vv, vn, 0.1);
219
137
  // Anti-tone map to reduce contrast and drag dark region farther: (x^0.2 + 1.2 * x^4) / 2.2
220
138
  A = (pow(A, 0.2) + 1.2 * A * A * A * A) / 2.2;
221
139
 
222
- fragOcclusion = A;`),e}function g(e){return Math.max(10,20*e.computeScreenPixelSizeAtDist(Math.abs(4*e.relativeElevation)))}const _=(0,o.vt)(),T=Object.freeze(Object.defineProperty({__proto__:null,build:v,getRadius:g},Symbol.toStringTag,{value:"Module"}))},17352:(e,t,r)=>{r.d(t,{b:()=>j,f:()=>x}),r(44208);var i=r(53966),o=r(34727),n=r(4341),a=r(58083),s=r(9093),l=r(38954),c=r(51850),d=r(19419),u=r(88582),h=r(11964),m=r(240),p=r(71351),f=r(44280),v=r(32114);const g=()=>i.A.getLogger("esri.views.3d.support.geometryUtils.boundedPlane");function _(e=H){return{plane:(0,m.vt)(e.plane),origin:(0,c.o8)(e.origin),basis1:(0,c.o8)(e.basis1),basis2:(0,c.o8)(e.basis2)}}function T(e,t=_()){return x(e.origin,e.basis1,e.basis2,t)}function x(e,t,r,i=_()){return(0,l.c)(i.origin,e),(0,l.c)(i.basis1,t),(0,l.c)(i.basis2,r),E(i),function(e,t){Math.abs((0,l.f)(e.basis1,e.basis2)/((0,l.l)(e.basis1)*(0,l.l)(e.basis2)))>1e-6&&g().warn(t,"Provided basis vectors are not perpendicular"),Math.abs((0,l.f)(e.basis1,N(e)))>1e-6&&g().warn(t,"Basis vectors and plane normal are not perpendicular"),Math.abs(-(0,l.f)(N(e),e.origin)-e.plane[3])>1e-6&&g().warn(t,"Plane offset is not consistent with plane origin")}(i,"fromValues()"),i}function E(e){(0,m.mR)(e.basis2,e.basis1,e.origin,e.plane)}function b(e,t,r){e!==r&&T(e,r);const i=(0,l.h)(v.rq.get(),N(e),t);return(0,l.g)(r.origin,r.origin,i),r.plane[3]-=t,r}function A(e,t=_()){const r=(e[2]-e[0])/2,i=(e[3]-e[1])/2;return(0,l.i)(t.origin,e[0]+r,e[1]+i,0),(0,l.i)(t.basis1,r,0,0),(0,l.i)(t.basis2,0,i,0),(0,m.fA)(0,0,1,0,t.plane),t}function S(e,t,r){return!!(0,m.Ui)(e.plane,t,r)&&y(e,r)}function M(e,t,r){const i=F.get();L(e,t,i,F.get());let n=Number.POSITIVE_INFINITY;for(const a of z){const s=D(e,a,B.get()),c=v.rq.get();if((0,m.T7)(i,s,c)){const e=(0,l.o)(v.rq.get(),t.origin,c),i=Math.abs((0,o.XM)((0,l.f)(t.direction,e)));i<n&&(n=i,(0,l.c)(r,c))}}return n===Number.POSITIVE_INFINITY?w(e,t,r):r}function w(e,t,r){if(S(e,t,r))return r;const i=F.get(),o=F.get();L(e,t,i,o);let n=Number.POSITIVE_INFINITY;for(const a of z){const s=D(e,a,B.get()),c=v.rq.get();if((0,m.gv)(i,s,c)){const e=(0,p.kb)(t,c);if(!(0,m.Tj)(o,c))continue;e<n&&(n=e,(0,l.c)(r,c))}}return I(e,t.origin)<n&&C(e,t.origin,r),r}function C(e,t,r){const i=(0,m._I)(e.plane,t,v.rq.get()),o=(0,h.H6)(P(e,e.basis1),i,-1,1,v.rq.get()),n=(0,h.H6)(P(e,e.basis2),i,-1,1,v.rq.get());return(0,l.d)(r,(0,l.g)(v.rq.get(),o,n),e.origin),r}function R(e,t,r){const{origin:i,basis1:o,basis2:n}=e,a=(0,l.d)(v.rq.get(),t,i),s=(0,f.gr)(o,a),c=(0,f.gr)(n,a),d=(0,f.gr)(N(e),a);return(0,l.i)(r,s,c,d)}function I(e,t){const r=R(e,t,v.rq.get()),{basis1:i,basis2:o}=e,n=(0,l.l)(i),a=(0,l.l)(o),s=Math.max(Math.abs(r[0])-n,0),c=Math.max(Math.abs(r[1])-a,0),d=r[2];return s*s+c*c+d*d}function O(e,t){const r=-e.plane[3];return(0,f.gr)(N(e),t)-r}function N(e){return(0,m.Qj)(e.plane)}function y(e,t){const r=(0,l.d)(v.rq.get(),t,e.origin),i=(0,l.k)(e.basis1),o=(0,l.k)(e.basis2),n=(0,l.f)(e.basis1,r),a=(0,l.f)(e.basis2,r);return-n-i<0&&n-i<0&&-a-o<0&&a-o<0}function P(e,t){const r=B.get();return(0,l.c)(r.origin,e.origin),(0,l.c)(r.vector,t),r}function D(e,t,r){const{basis1:i,basis2:o,origin:n}=e,a=(0,l.h)(v.rq.get(),i,t.origin[0]),s=(0,l.h)(v.rq.get(),o,t.origin[1]);(0,l.g)(r.origin,a,s),(0,l.g)(r.origin,r.origin,n);const c=(0,l.h)(v.rq.get(),i,t.direction[0]),d=(0,l.h)(v.rq.get(),o,t.direction[1]);return(0,l.h)(r.vector,(0,l.g)(c,c,d),2),r}function L(e,t,r,i){const o=N(e);(0,m.mR)(o,t.direction,t.origin,r),(0,m.mR)((0,m.Qj)(r),o,t.origin,i)}const H={plane:(0,m.vt)(),origin:(0,c.fA)(0,0,0),basis1:(0,c.fA)(1,0,0),basis2:(0,c.fA)(0,1,0)},F=new n.I(m.vt),B=new n.I(h.vt),G=(0,c.vt)(),U=new n.I((()=>_())),z=[{origin:[-1,-1],direction:[1,0]},{origin:[1,-1],direction:[0,1]},{origin:[1,1],direction:[-1,0]},{origin:[-1,1],direction:[0,-1]}],V=(0,s.vt)(),W=(0,s.vt)(),j=Object.freeze(Object.defineProperty({__proto__:null,BoundedPlaneClass:class{constructor(){this.plane=(0,m.vt)(),this.origin=(0,c.vt)(),this.basis1=(0,c.vt)(),this.basis2=(0,c.vt)()}},altitudeAt:O,axisAt:function(e,t,r,i){return function(e,t,r){switch(t){case u._.X:(0,l.c)(r,e.basis1),(0,l.n)(r,r);break;case u._.Y:(0,l.c)(r,e.basis2),(0,l.n)(r,r);break;case u._.Z:(0,l.c)(r,N(e))}return r}(e,r,i)},cameraFrustumCoverage:function(e,t){return(t-e)/t},closestPoint:w,closestPointOnSilhouette:M,copy:T,copyWithoutVerify:function(e,t){(0,l.c)(t.origin,e.origin),(0,l.c)(t.basis1,e.basis1),(0,l.c)(t.basis2,e.basis2),(0,m.C)(t.plane,e.plane)},create:_,distance:function(e,t){return Math.sqrt(I(e,t))},distance2:I,distanceToSilhouette:function(e,t){let r=Number.NEGATIVE_INFINITY;for(const i of z){const o=D(e,i,B.get()),n=(0,h.kb)(o,t);n>r&&(r=n)}return Math.sqrt(r)},elevate:b,equals:function(e,t){return(0,l.p)(e.basis1,t.basis1)&&(0,l.p)(e.basis2,t.basis2)&&(0,l.p)(e.origin,t.origin)},extrusionContainsPoint:function(e,t){return(0,m.Tj)(e.plane,t)&&y(e,t)},fromAABoundingRect:A,fromValues:x,getExtent:function(e,t){const r=e.basis1[0],i=e.basis2[1],[o,n]=e.origin;return(0,d.fA)(o-r,n-i,o+r,n+i,t)},intersectRay:S,intersectRayClosestSilhouette:function(e,t,r){if(S(e,t,r))return r;const i=M(e,t,v.rq.get());return(0,l.g)(r,t.origin,(0,l.h)(v.rq.get(),t.direction,(0,l.j)(t.origin,i)/(0,l.l)(t.direction))),r},normal:N,projectPoint:C,projectPointLocal:R,rotate:function(e,t,r,i){return e!==i&&T(e,i),(0,a.$0)(W,t,r),(0,l.t)(i.basis1,e.basis1,W),(0,l.t)(i.basis2,e.basis2,W),E(i),i},setAltitudeAt:function(e,t,r,i){const o=O(e,t),n=(0,l.h)(G,N(e),r-o);return(0,l.g)(i,t,n),i},setExtent:function(e,t,r){return A(t,r),b(r,O(e,e.origin),r),r},transform:function(e,t,r){return e!==r&&T(e,r),(0,a.B8)(V,t),(0,a.mg)(V,V),(0,l.t)(r.basis1,e.basis1,V),(0,l.t)(r.basis2,e.basis2,V),(0,l.t)((0,m.Qj)(r.plane),(0,m.Qj)(e.plane),V),(0,l.t)(r.origin,e.origin,t),(0,m.mP)(r.plane,r.plane,r.origin),r},up:H,updateUnboundedPlane:E,wrap:function(e,t,r){const i=U.get();return i.origin=e,i.basis1=t,i.basis2=r,i.plane=(0,m.LV)(0,0,0,0),E(i),i}},Symbol.toStringTag,{value:"Module"}))},20304:(e,t,r)=>{r.d(t,{m:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"float",i.c.Pass,((r,i,o)=>r.setUniform1f(e,t(i,o))))}}},20693:(e,t,r)=>{r.d(t,{yu:()=>p,Nz:()=>T,NB:()=>f,S7:()=>_});var i=r(58083),o=r(9093),n=r(38954),a=r(51850),s=r(23205),l=r(40710),c=r(33094),d=r(58029),u=r(69270),h=r(74333);class m extends h.n{constructor(e,t){super(e,"mat4",u.c.Draw,((r,i,o)=>r.setUniformMatrix4fv(e,t(i,o))))}}function p(e,t){t.instancedDoublePrecision?e.constants.add("cameraPosition","vec3",a.uY):e.uniforms.add(new l.W("cameraPosition",((e,t)=>(0,n.i)(g,t.camera.viewInverseTransposeMatrix[3]-e.origin[0],t.camera.viewInverseTransposeMatrix[7]-e.origin[1],t.camera.viewInverseTransposeMatrix[11]-e.origin[2]))))}function f(e,t){if(!t.instancedDoublePrecision)return void e.uniforms.add(new d.F("proj",(e=>e.camera.projectionMatrix)),new m("view",((e,t)=>(0,i.Tl)(v,t.camera.viewMatrix,e.origin))),new l.W("localOrigin",(e=>e.origin)));const r=({camera:e})=>(0,n.i)(g,e.viewInverseTransposeMatrix[3],e.viewInverseTransposeMatrix[7],e.viewInverseTransposeMatrix[11]);e.uniforms.add(new d.F("proj",(e=>e.camera.projectionMatrix)),new d.F("view",(e=>(0,i.Tl)(v,e.camera.viewMatrix,r(e)))),new s.d("localOrigin",(e=>r(e))))}const v=(0,o.vt)(),g=(0,a.vt)();function _(e){e.uniforms.add(new d.F("viewNormal",(e=>e.camera.viewInverseTransposeMatrix)))}function T(e){e.uniforms.add(new c.U("pixelRatio",(e=>e.camera.pixelRatio/e.overlayStretch)))}},21231:(e,t,r)=>{r.d(t,{g:()=>p});var i=r(49186),o=(r(44208),r(53966)),n=r(97768),a=r(74887),s=r(94656),l=r(63907),c=r(6625),d=r(67171),u=r(12541);class h extends d.R{constructor(e,t){switch(super(),this.context=e,Object.assign(this,t),this.internalFormat){case l.H0.R16F:case l.H0.R32F:case l.H0.R8_SNORM:case l.H0.R8:this.pixelFormat=l.Ab.RED;break;case l.H0.R8I:case l.H0.R8UI:case l.H0.R16I:case l.H0.R16UI:case l.H0.R32I:case l.H0.R32UI:this.pixelFormat=l.Ab.RED_INTEGER}}static validate(e,t){return new h(e,t)}}const m=()=>o.A.getLogger("esri/views/webgl/Texture");let p=class e{static{this.TEXTURE_UNIT_FOR_UPDATES=0}static{this.compressionWorkerHandle=null}constructor(e,t=null,r=null){if(this.type=c.d.Texture,this._glName=null,this._samplingModeDirty=!1,this._wrapModeDirty=!1,this._wasImmutablyAllocated=!1,"context"in e)this._descriptor=e,r=t;else{const r=h.validate(e,t);if(!r)throw new i.A("texture:invalid-descriptor","Texture descriptor invalid");this._descriptor=r}this._descriptor.target===l.Ap.TEXTURE_CUBE_MAP?this._setDataCubeMap(r):this.setData(r)}get glName(){return this._glName}get descriptor(){return this._descriptor}get usedMemory(){return(0,d.e)(this._descriptor)}get cachedMemory(){return this.usedMemory}get isDirty(){return this._samplingModeDirty||this._wrapModeDirty}get isCompressing(){return null!==this._compressionAbortController}dispose(){this.abortCompression(),this._descriptor.context.gl&&this._glName&&(this._descriptor.context.instanceCounter.decrement(l.vt.Texture,this),this._descriptor.context.unbindTexture(this),this._descriptor.context.gl.deleteTexture(this._glName),this._glName=null)}release(){this.dispose()}resize(e,t){const r=this._descriptor;if(r.width!==e||r.height!==t){if(this._wasImmutablyAllocated)throw new i.A("texture:immutable-resize","Immutable textures can't be resized!");r.width=e,r.height=t,this._descriptor.target===l.Ap.TEXTURE_CUBE_MAP?this._setDataCubeMap(null):this.setData(null)}}enableCompression(e,t){this._descriptor.compressionHandle=e,this._descriptor.compressionCallback=t}disableCompression(){this._descriptor.compressionHandle=null,this._descriptor.compressionCallback=null}setData(e){this.abortCompression(),!(0,u.Qp)(e)&&this._descriptor.internalFormat&&this._descriptor.internalFormat in l.CQ&&(this._descriptor.internalFormat=void 0),this._setData(e),!(0,u.Qp)(e)&&this._descriptor.compressionHandle&&this._compressOnWorker(e)}updateData(t,r,o,n,a,s,l=0){s||m().error("An attempt to use uninitialized data!"),this._glName||m().error("An attempt to update uninitialized texture!");const c=this._descriptor;c.internalFormat=(0,u.mq)(c);const{context:d,pixelFormat:h,dataType:p,target:f,isImmutable:v}=c;if(v&&!this._wasImmutablyAllocated)throw new i.A("texture:uninitialized","Cannot update immutable texture before allocation!");const g=d.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES,!0);(r<0||o<0||r+n>c.width||o+a>c.height)&&m().error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage();const{gl:_}=d;l&&(n&&a||m().warn("Must pass width and height if `UNPACK_SKIP_ROWS` is used"),_.pixelStorei(_.UNPACK_SKIP_ROWS,l)),(0,u.Kv)(s)?_.texSubImage2D(f,t,r,o,n,a,h,p,s):(0,u.Qp)(s)?_.compressedTexSubImage2D(f,t,r,o,n,a,c.internalFormat,s.levels[t]):_.texSubImage2D(f,t,r,o,n,a,h,p,s),l&&_.pixelStorei(_.UNPACK_SKIP_ROWS,0),d.bindTexture(g,e.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(t,r,o,n,a,s,l,c){c||m().error("An attempt to use uninitialized data!"),this._glName||m().error("An attempt to update an uninitialized texture!");const d=this._descriptor;d.internalFormat=(0,u.mq)(d);const{context:h,pixelFormat:p,dataType:f,isImmutable:v,target:g}=d;if(v&&!this._wasImmutablyAllocated)throw new i.A("texture:uninitialized","Cannot update immutable texture before allocation!");(0,u.re)(g)||m().warn("Attempting to set 3D texture data on a non-3D texture");const _=h.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);h.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),(r<0||o<0||n<0||r+a>d.width||o+s>d.height||n+l>d.depth)&&m().error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage();const{gl:T}=h;if((0,u.Qp)(c))c=c.levels[t],T.compressedTexSubImage3D(g,t,r,o,n,a,s,l,d.internalFormat,c);else{const e=c;T.texSubImage3D(g,t,r,o,n,a,s,l,p,f,e)}h.bindTexture(_,e.TEXTURE_UNIT_FOR_UPDATES)}generateMipmap(){const t=this._descriptor;if(0===t.width||0===t.height)return;if(!t.hasMipmap){if(this._wasImmutablyAllocated)throw new i.A("texture:immutable-change","Cannot add mipmaps to immutable texture after allocation");t.hasMipmap=!0,this._samplingModeDirty=!0,(0,u.QE)(t)}t.samplingMode===l.Cj.LINEAR?(this._samplingModeDirty=!0,t.samplingMode=l.Cj.LINEAR_MIPMAP_NEAREST):t.samplingMode===l.Cj.NEAREST&&(this._samplingModeDirty=!0,t.samplingMode=l.Cj.NEAREST_MIPMAP_NEAREST);const r=this._descriptor.context.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),this._descriptor.context.gl.generateMipmap(t.target),this._descriptor.context.bindTexture(r,e.TEXTURE_UNIT_FOR_UPDATES)}clearMipmap(){const e=this._descriptor;if(e.hasMipmap){if(this._wasImmutablyAllocated)throw new i.A("texture:immutable-change","Cannot delete mipmaps to immutable texture after allocation");e.hasMipmap=!1,this._samplingModeDirty=!0,(0,u.QE)(e)}e.samplingMode===l.Cj.LINEAR_MIPMAP_NEAREST?(this._samplingModeDirty=!0,e.samplingMode=l.Cj.LINEAR):e.samplingMode===l.Cj.NEAREST_MIPMAP_NEAREST&&(this._samplingModeDirty=!0,e.samplingMode=l.Cj.NEAREST)}setSamplingMode(e){e!==this._descriptor.samplingMode&&(this._descriptor.samplingMode=e,this._samplingModeDirty=!0)}setWrapMode(e){e!==this._descriptor.wrapMode&&(this._descriptor.wrapMode=e,(0,u.QE)(this._descriptor),this._wrapModeDirty=!0)}applyChanges(){this._samplingModeDirty&&(this._applySamplingMode(),this._samplingModeDirty=!1),this._wrapModeDirty&&(this._applyWrapMode(),this._wrapModeDirty=!1)}abortCompression(){this.isCompressing&&(this._compressionAbortController=(0,n.DC)(this._compressionAbortController))}_setData(t,r){const o=this._descriptor,n=o.context?.gl;if(!n)return;(0,s.Y2)(n),this._glName||(this._glName=n.createTexture(),o.context.instanceCounter.increment(l.vt.Texture,this)),(0,u.QE)(o);const a=o.context.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);o.context.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),this._configurePixelStorage(),(0,s.Y2)(n);const c=r??o.target,d=(0,u.re)(c);if((0,u.Kv)(t))this._setDataFromTexImageSource(t,c);else{const{width:e,height:r,depth:a}=o;if(null==e||null==r)throw new i.A("texture:missing-size","Width and height must be specified!");if(d&&null==a)throw new i.A("texture:missing-depth","Depth must be specified!");if(o.internalFormat=(0,u.mq)(o),o.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(c,o.internalFormat,o.hasMipmap,e,r,a),(0,u.Qp)(t)){if(!(0,u.tl)(o.internalFormat))throw new i.A("texture:format-mismatch","Attempting to use compressed data with an uncompressed format!");this._setDataFromCompressedSource(t,o.internalFormat,c)}else this._texImage(c,0,o.internalFormat,e,r,a,t),(0,s.Y2)(n),o.hasMipmap&&this.generateMipmap()}this._applySamplingMode(),this._applyWrapMode(),this._applyAnisotropicFilteringParameters(),(0,s.Y2)(n),o.context.bindTexture(a,e.TEXTURE_UNIT_FOR_UPDATES)}_setDataCubeMap(e=null){for(let t=l.Ap.TEXTURE_CUBE_MAP_POSITIVE_X;t<=l.Ap.TEXTURE_CUBE_MAP_NEGATIVE_Z;t++)this._setData(e,t)}_configurePixelStorage(){const e=this._descriptor.context.gl,{unpackAlignment:t,flipped:r,preMultiplyAlpha:i}=this._descriptor;e.pixelStorei(e.UNPACK_ALIGNMENT,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,r?1:0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i?1:0)}_setDataFromTexImageSource(e,t){const{gl:r}=this._descriptor.context,i=this._descriptor;i.internalFormat=(0,u.mq)(i);const o=(0,u.re)(t),{width:n,height:a,depth:l}=(0,u.Eo)(e);i.width&&i.height,i.width||(i.width=n),i.height||(i.height=a),o&&i.depth,o&&(i.depth=l),i.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(t,i.internalFormat,i.hasMipmap,n,a,l),this._texImage(t,0,i.internalFormat,n,a,l,e),(0,s.Y2)(r),i.hasMipmap&&(this.generateMipmap(),(0,s.Y2)(r))}_setDataFromCompressedSource(e,t,r){const i=this._descriptor,{width:o,height:n,depth:a}=i,s=e.levels,c=(0,u.FV)(r,o,n,a),d=Math.min(c,s.length)-1;this._descriptor.context.gl.texParameteri(i.target,l.H3.MAX_LEVEL,d),this._forEachMipmapLevel(((e,i,o,n)=>{const a=s[Math.min(e,s.length-1)];this._compressedTexImage(r,e,t,i,o,n,a)}),d)}_texStorage(e,t,r,o,n,a){const{gl:s}=this._descriptor.context;if(!(0,u.tr)(t)&&!(0,u.CR)(t)&&!(0,u.QJ)(t))throw new i.A("texture:missing-format","Immutable textures must have a sized internal format");if(!this._descriptor.isImmutable)return;const l=r?(0,u.FV)(e,o,n,a):1;if((0,u.re)(e)){if(null==a)throw new i.A("texture:missing-depth","Missing depth dimension for 3D texture upload");s.texStorage3D(e,l,t,o,n,a)}else s.texStorage2D(e,l,t,o,n);this._wasImmutablyAllocated=!0}_texImage(e,t,r,o,n,a,s){const l=this._descriptor.context.gl,c=(0,u.re)(e),{isImmutable:d,pixelFormat:h,dataType:m}=this._descriptor;if(d){if(null!=s){const r=s;if(c){if(null==a)throw new i.A("texture:missing-depth","Missing depth dimension for 3D texture upload");l.texSubImage3D(e,t,0,0,0,o,n,a,h,m,r)}else l.texSubImage2D(e,t,0,0,o,n,h,m,r)}}else{const d=s;if(c){if(null==a)throw new i.A("texture:missing-depth","Missing depth dimension for 3D texture upload");l.texImage3D(e,t,r,o,n,a,0,h,m,d)}else l.texImage2D(e,t,r,o,n,0,h,m,d)}}_compressedTexImage(e,t,r,o,n,a,s){const l=this._descriptor.context.gl,c=(0,u.re)(e);if(this._descriptor.isImmutable){if(null!=s)if(c){if(null==a)throw new i.A("texture:missing-depth","Missing depth dimension for 3D texture upload");l.compressedTexSubImage3D(e,t,0,0,0,o,n,a,r,s)}else l.compressedTexSubImage2D(e,t,0,0,o,n,r,s)}else if(c){if(null==a)throw new i.A("texture:missing-depth","Missing depth dimension for 3D texture upload");l.compressedTexImage3D(e,t,r,o,n,a,0,s)}else l.compressedTexImage2D(e,t,r,o,n,0,s)}async _compressOnWorker(t){if(!e.compressionWorkerHandle||!e.compressionWorkerHandle.isCompressible(t))return;const r=!!this._descriptor.context.capabilities.compressedTextureETC,i=!!this._descriptor.context.capabilities.compressedTextureS3TC;if(r||i){const o=new AbortController;this._compressionAbortController=o;const n=this._descriptor.compressionHandle;n.increment();const s=this._descriptor.compressionCallback,l={data:await createImageBitmap(t,{imageOrientation:this.descriptor.flipped?"flipY":"none"}),width:t.width,height:t.height,premultiplyAlpha:this._descriptor.preMultiplyAlpha,hasMipmap:this._descriptor.hasMipmap,hasETC:!!r,hasS3TC:!!i};e.compressionWorkerHandle.invoke(l,this._compressionAbortController.signal).then((e=>{e&&this.isCompressing&&this.glName&&(this._descriptor.internalFormat=e.internalFormat,this._setData(e.compressedTexture),s?.()),o===this._compressionAbortController&&(this._compressionAbortController=null),n.decrement()})).catch((e=>{(0,a.zf)(e)||o!==this._compressionAbortController||(this._compressionAbortController=null),n.decrement()}))}}_forEachMipmapLevel(e,t=1/0){let{width:r,height:o,depth:n,hasMipmap:a,target:s}=this._descriptor;const c=s===l.Ap.TEXTURE_3D;if(null==r||null==o||c&&null==n)throw new i.A("texture:missing-size","Missing texture dimensions for mipmap calculation");for(let i=0;e(i,r,o,n),a&&(1!==r||1!==o||c&&1!==n)&&!(i>=t);++i)r=Math.max(1,r>>1),o=Math.max(1,o>>1),c&&(n=Math.max(1,n>>1))}_applySamplingMode(){const e=this._descriptor,t=e.context?.gl;let r=e.samplingMode,i=e.samplingMode;r===l.Cj.LINEAR_MIPMAP_NEAREST||r===l.Cj.LINEAR_MIPMAP_LINEAR?(r=l.Cj.LINEAR,e.hasMipmap||(i=l.Cj.LINEAR)):r!==l.Cj.NEAREST_MIPMAP_NEAREST&&r!==l.Cj.NEAREST_MIPMAP_LINEAR||(r=l.Cj.NEAREST,e.hasMipmap||(i=l.Cj.NEAREST)),t.texParameteri(e.target,t.TEXTURE_MAG_FILTER,r),t.texParameteri(e.target,t.TEXTURE_MIN_FILTER,i)}_applyWrapMode(){const e=this._descriptor,t=e.context?.gl;"number"==typeof e.wrapMode?(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode)):(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode.s),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode.t))}_applyAnisotropicFilteringParameters(){const e=this._descriptor,t=e.context.capabilities.textureFilterAnisotropic;t&&e.context.gl.texParameterf(e.target,t.TEXTURE_MAX_ANISOTROPY,e.maxAnisotropy??1)}}},22393:(e,t,r)=>{r.d(t,{c:()=>s});var i=r(31821);function o(e){const t=e.fragment.code;t.add(i.H`vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG) {
140
+ fragOcclusion = A;`),e}function g(e){return Math.max(10,20*e.computeScreenPixelSizeAtDist(Math.abs(4*e.relativeElevation)))}const _=(0,o.vt)(),T=Object.freeze(Object.defineProperty({__proto__:null,build:v,getRadius:g},Symbol.toStringTag,{value:"Module"}))},16396:(e,t,r)=>{r.d(t,{ou:()=>l}),r(77690),r(29242),r(58083),r(9093);var i=r(38954),o=r(51850),n=r(97937),a=r(24151),s=r(57005);const c=new class{constructor(e=0){this.offset=e,this.sphere=(0,n.c)(),this.tmpVertex=(0,o.vt)()}applyToVertex(e,t,r){const o=this.objectTransform.transform,n=(0,i.i)(d,e,t,r),a=(0,i.t)(n,n,o),s=this.offset/(0,i.l)(a);(0,i.b)(a,a,a,s);const c=this.objectTransform.inverse;return(0,i.t)(this.tmpVertex,a,c),this.tmpVertex}applyToMinMax(e,t){const r=this.offset/(0,i.l)(e);(0,i.b)(e,e,e,r);const o=this.offset/(0,i.l)(t);(0,i.b)(t,t,t,o)}applyToAabb(e){const t=this.offset/Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]+=e[0]*t,e[1]+=e[1]*t,e[2]+=e[2]*t;const r=this.offset/Math.sqrt(e[3]*e[3]+e[4]*e[4]+e[5]*e[5]);return e[3]+=e[3]*r,e[4]+=e[4]*r,e[5]+=e[5]*r,e}applyToBoundingSphere(e){const t=(0,i.l)((0,n.a)(e)),r=this.offset/t;return(0,i.b)((0,n.a)(this.sphere),(0,n.a)(e),(0,n.a)(e),r),this.sphere[3]=e[3]+e[3]*this.offset/t,this.sphere}};function l(e){return null!=e?(c.offset=e,c):null}new class{constructor(e=0){this.componentLocalOriginLength=0,this._totalOffset=0,this._offset=0,this._tmpVertex=(0,o.vt)(),this._tmpMbs=(0,n.c)(),this._tmpObb=new s.ab,this._resetOffset(e)}_resetOffset(e){this._offset=e,this._totalOffset=e}set offset(e){this._resetOffset(e)}get offset(){return this._offset}set componentOffset(e){this._totalOffset=this._offset+e}set localOrigin(e){this.componentLocalOriginLength=(0,i.l)(e)}applyToVertex(e,t,r){const o=(0,i.i)(d,e,t,r),n=(0,i.i)(u,e,t,r+this.componentLocalOriginLength),a=this._totalOffset/(0,i.l)(n);return(0,i.b)(this._tmpVertex,o,n,a),this._tmpVertex}applyToAabb(e){const t=this.componentLocalOriginLength,r=e[0],i=e[1],o=e[2]+t,n=e[3],a=e[4],s=e[5]+t,c=Math.abs(r),l=Math.abs(i),d=Math.abs(o),u=Math.abs(n),h=Math.abs(a),m=Math.abs(s),p=.5*(1+Math.sign(r*n))*Math.min(c,u),f=.5*(1+Math.sign(i*a))*Math.min(l,h),v=.5*(1+Math.sign(o*s))*Math.min(d,m),g=Math.max(c,u),_=Math.max(l,h),T=Math.max(d,m),x=Math.sqrt(p*p+f*f+v*v),E=Math.sign(c+r),b=Math.sign(l+i),A=Math.sign(d+o),S=Math.sign(u+n),M=Math.sign(h+a),w=Math.sign(m+s),C=this._totalOffset;if(x<C)return e[0]-=(1-E)*C,e[1]-=(1-b)*C,e[2]-=(1-A)*C,e[3]+=S*C,e[4]+=M*C,e[5]+=w*C,e;const R=C/Math.sqrt(g*g+_*_+T*T),I=C/x,O=I-R,N=-O;return e[0]+=r*(E*N+I),e[1]+=i*(b*N+I),e[2]+=o*(A*N+I),e[3]+=n*(S*O+R),e[4]+=a*(M*O+R),e[5]+=s*(w*O+R),e}applyToMbs(e){const t=(0,i.l)((0,n.a)(e)),r=this._totalOffset/t;return(0,i.b)((0,n.a)(this._tmpMbs),(0,n.a)(e),(0,n.a)(e),r),this._tmpMbs[3]=e[3]+e[3]*this._totalOffset/t,this._tmpMbs}applyToObb(e){return(0,s.gm)(e,this._totalOffset,this._totalOffset,a.RT.Global,this._tmpObb),this._tmpObb}},new class{constructor(e=0){this.offset=e,this.tmpVertex=(0,o.vt)()}applyToVertex(e,t,r){const o=(0,i.i)(d,e,t,r),n=(0,i.g)(u,o,this.localOrigin),a=this.offset/(0,i.l)(n);return(0,i.b)(this.tmpVertex,o,n,a),this.tmpVertex}applyToAabb(e){const t=h,r=m,i=p;for(let o=0;o<3;++o)t[o]=e[0+o]+this.localOrigin[o],r[o]=e[3+o]+this.localOrigin[o],i[o]=t[o];const o=this.applyToVertex(t[0],t[1],t[2]);for(let t=0;t<3;++t)e[t]=o[t],e[t+3]=o[t];const n=t=>{const r=this.applyToVertex(t[0],t[1],t[2]);for(let t=0;t<3;++t)e[t]=Math.min(e[t],r[t]),e[t+3]=Math.max(e[t+3],r[t])};for(let e=1;e<8;++e){for(let o=0;o<3;++o)i[o]=e&1<<o?r[o]:t[o];n(i)}let a=0;for(let e=0;e<3;++e)t[e]*r[e]<0&&(a|=1<<e);if(0!==a&&7!==a)for(let e=0;e<8;++e)if(!(a&e)){for(let o=0;o<3;++o)i[o]=a&1<<o?0:e&1<<o?t[o]:r[o];n(i)}for(let t=0;t<3;++t)e[t]-=this.localOrigin[t],e[t+3]-=this.localOrigin[t];return e}};const d=(0,o.vt)(),u=(0,o.vt)(),h=(0,o.vt)(),m=(0,o.vt)(),p=(0,o.vt)()},17352:(e,t,r)=>{r.d(t,{b:()=>j,f:()=>x}),r(44208);var i=r(53966),o=r(34727),n=r(4341),a=r(58083),s=r(9093),c=r(38954),l=r(51850),d=r(19419),u=r(88582),h=r(11964),m=r(240),p=r(71351),f=r(44280),v=r(32114);const g=()=>i.A.getLogger("esri.views.3d.support.geometryUtils.boundedPlane");function _(e=H){return{plane:(0,m.vt)(e.plane),origin:(0,l.o8)(e.origin),basis1:(0,l.o8)(e.basis1),basis2:(0,l.o8)(e.basis2)}}function T(e,t=_()){return x(e.origin,e.basis1,e.basis2,t)}function x(e,t,r,i=_()){return(0,c.c)(i.origin,e),(0,c.c)(i.basis1,t),(0,c.c)(i.basis2,r),E(i),function(e,t){Math.abs((0,c.f)(e.basis1,e.basis2)/((0,c.l)(e.basis1)*(0,c.l)(e.basis2)))>1e-6&&g().warn(t,"Provided basis vectors are not perpendicular"),Math.abs((0,c.f)(e.basis1,N(e)))>1e-6&&g().warn(t,"Basis vectors and plane normal are not perpendicular"),Math.abs(-(0,c.f)(N(e),e.origin)-e.plane[3])>1e-6&&g().warn(t,"Plane offset is not consistent with plane origin")}(i,"fromValues()"),i}function E(e){(0,m.mR)(e.basis2,e.basis1,e.origin,e.plane)}function b(e,t,r){e!==r&&T(e,r);const i=(0,c.h)(v.rq.get(),N(e),t);return(0,c.g)(r.origin,r.origin,i),r.plane[3]-=t,r}function A(e,t=_()){const r=(e[2]-e[0])/2,i=(e[3]-e[1])/2;return(0,c.i)(t.origin,e[0]+r,e[1]+i,0),(0,c.i)(t.basis1,r,0,0),(0,c.i)(t.basis2,0,i,0),(0,m.fA)(0,0,1,0,t.plane),t}function S(e,t,r){return!!(0,m.Ui)(e.plane,t,r)&&y(e,r)}function M(e,t,r){const i=F.get();D(e,t,i,F.get());let n=Number.POSITIVE_INFINITY;for(const a of z){const s=L(e,a,B.get()),l=v.rq.get();if((0,m.T7)(i,s,l)){const e=(0,c.o)(v.rq.get(),t.origin,l),i=Math.abs((0,o.XM)((0,c.f)(t.direction,e)));i<n&&(n=i,(0,c.c)(r,l))}}return n===Number.POSITIVE_INFINITY?w(e,t,r):r}function w(e,t,r){if(S(e,t,r))return r;const i=F.get(),o=F.get();D(e,t,i,o);let n=Number.POSITIVE_INFINITY;for(const a of z){const s=L(e,a,B.get()),l=v.rq.get();if((0,m.gv)(i,s,l)){const e=(0,p.kb)(t,l);if(!(0,m.Tj)(o,l))continue;e<n&&(n=e,(0,c.c)(r,l))}}return I(e,t.origin)<n&&C(e,t.origin,r),r}function C(e,t,r){const i=(0,m._I)(e.plane,t,v.rq.get()),o=(0,h.H6)(P(e,e.basis1),i,-1,1,v.rq.get()),n=(0,h.H6)(P(e,e.basis2),i,-1,1,v.rq.get());return(0,c.d)(r,(0,c.g)(v.rq.get(),o,n),e.origin),r}function R(e,t,r){const{origin:i,basis1:o,basis2:n}=e,a=(0,c.d)(v.rq.get(),t,i),s=(0,f.gr)(o,a),l=(0,f.gr)(n,a),d=(0,f.gr)(N(e),a);return(0,c.i)(r,s,l,d)}function I(e,t){const r=R(e,t,v.rq.get()),{basis1:i,basis2:o}=e,n=(0,c.l)(i),a=(0,c.l)(o),s=Math.max(Math.abs(r[0])-n,0),l=Math.max(Math.abs(r[1])-a,0),d=r[2];return s*s+l*l+d*d}function O(e,t){const r=-e.plane[3];return(0,f.gr)(N(e),t)-r}function N(e){return(0,m.Qj)(e.plane)}function y(e,t){const r=(0,c.d)(v.rq.get(),t,e.origin),i=(0,c.k)(e.basis1),o=(0,c.k)(e.basis2),n=(0,c.f)(e.basis1,r),a=(0,c.f)(e.basis2,r);return-n-i<0&&n-i<0&&-a-o<0&&a-o<0}function P(e,t){const r=B.get();return(0,c.c)(r.origin,e.origin),(0,c.c)(r.vector,t),r}function L(e,t,r){const{basis1:i,basis2:o,origin:n}=e,a=(0,c.h)(v.rq.get(),i,t.origin[0]),s=(0,c.h)(v.rq.get(),o,t.origin[1]);(0,c.g)(r.origin,a,s),(0,c.g)(r.origin,r.origin,n);const l=(0,c.h)(v.rq.get(),i,t.direction[0]),d=(0,c.h)(v.rq.get(),o,t.direction[1]);return(0,c.h)(r.vector,(0,c.g)(l,l,d),2),r}function D(e,t,r,i){const o=N(e);(0,m.mR)(o,t.direction,t.origin,r),(0,m.mR)((0,m.Qj)(r),o,t.origin,i)}const H={plane:(0,m.vt)(),origin:(0,l.fA)(0,0,0),basis1:(0,l.fA)(1,0,0),basis2:(0,l.fA)(0,1,0)},F=new n.I(m.vt),B=new n.I(h.vt),U=(0,l.vt)(),G=new n.I((()=>_())),z=[{origin:[-1,-1],direction:[1,0]},{origin:[1,-1],direction:[0,1]},{origin:[1,1],direction:[-1,0]},{origin:[-1,1],direction:[0,-1]}],V=(0,s.vt)(),W=(0,s.vt)(),j=Object.freeze(Object.defineProperty({__proto__:null,BoundedPlaneClass:class{constructor(){this.plane=(0,m.vt)(),this.origin=(0,l.vt)(),this.basis1=(0,l.vt)(),this.basis2=(0,l.vt)()}},altitudeAt:O,axisAt:function(e,t,r,i){return function(e,t,r){switch(t){case u._.X:(0,c.c)(r,e.basis1),(0,c.n)(r,r);break;case u._.Y:(0,c.c)(r,e.basis2),(0,c.n)(r,r);break;case u._.Z:(0,c.c)(r,N(e))}return r}(e,r,i)},cameraFrustumCoverage:function(e,t){return(t-e)/t},closestPoint:w,closestPointOnSilhouette:M,copy:T,copyWithoutVerify:function(e,t){(0,c.c)(t.origin,e.origin),(0,c.c)(t.basis1,e.basis1),(0,c.c)(t.basis2,e.basis2),(0,m.C)(t.plane,e.plane)},create:_,distance:function(e,t){return Math.sqrt(I(e,t))},distance2:I,distanceToSilhouette:function(e,t){let r=Number.NEGATIVE_INFINITY;for(const i of z){const o=L(e,i,B.get()),n=(0,h.kb)(o,t);n>r&&(r=n)}return Math.sqrt(r)},elevate:b,equals:function(e,t){return(0,c.p)(e.basis1,t.basis1)&&(0,c.p)(e.basis2,t.basis2)&&(0,c.p)(e.origin,t.origin)},extrusionContainsPoint:function(e,t){return(0,m.Tj)(e.plane,t)&&y(e,t)},fromAABoundingRect:A,fromValues:x,getExtent:function(e,t){const r=e.basis1[0],i=e.basis2[1],[o,n]=e.origin;return(0,d.fA)(o-r,n-i,o+r,n+i,t)},intersectRay:S,intersectRayClosestSilhouette:function(e,t,r){if(S(e,t,r))return r;const i=M(e,t,v.rq.get());return(0,c.g)(r,t.origin,(0,c.h)(v.rq.get(),t.direction,(0,c.j)(t.origin,i)/(0,c.l)(t.direction))),r},normal:N,projectPoint:C,projectPointLocal:R,rotate:function(e,t,r,i){return e!==i&&T(e,i),(0,a.$0)(W,t,r),(0,c.t)(i.basis1,e.basis1,W),(0,c.t)(i.basis2,e.basis2,W),E(i),i},setAltitudeAt:function(e,t,r,i){const o=O(e,t),n=(0,c.h)(U,N(e),r-o);return(0,c.g)(i,t,n),i},setExtent:function(e,t,r){return A(t,r),b(r,O(e,e.origin),r),r},transform:function(e,t,r){return e!==r&&T(e,r),(0,a.B8)(V,t),(0,a.mg)(V,V),(0,c.t)(r.basis1,e.basis1,V),(0,c.t)(r.basis2,e.basis2,V),(0,c.t)((0,m.Qj)(r.plane),(0,m.Qj)(e.plane),V),(0,c.t)(r.origin,e.origin,t),(0,m.mP)(r.plane,r.plane,r.origin),r},up:H,updateUnboundedPlane:E,wrap:function(e,t,r){const i=G.get();return i.origin=e,i.basis1=t,i.basis2=r,i.plane=(0,m.LV)(0,0,0,0),E(i),i}},Symbol.toStringTag,{value:"Module"}))},20304:(e,t,r)=>{r.d(t,{m:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"float",i.c.Pass,((r,i,o)=>r.setUniform1f(e,t(i,o))))}}},20693:(e,t,r)=>{r.d(t,{yu:()=>p,Nz:()=>T,NB:()=>f,S7:()=>_});var i=r(58083),o=r(9093),n=r(38954),a=r(51850),s=r(23205),c=r(40710),l=r(33094),d=r(58029),u=r(69270),h=r(74333);class m extends h.n{constructor(e,t){super(e,"mat4",u.c.Draw,((r,i,o)=>r.setUniformMatrix4fv(e,t(i,o))))}}function p(e,t){t.instancedDoublePrecision?e.constants.add("cameraPosition","vec3",a.uY):e.uniforms.add(new c.W("cameraPosition",((e,t)=>(0,n.i)(g,t.camera.viewInverseTransposeMatrix[3]-e.origin[0],t.camera.viewInverseTransposeMatrix[7]-e.origin[1],t.camera.viewInverseTransposeMatrix[11]-e.origin[2]))))}function f(e,t){if(!t.instancedDoublePrecision)return void e.uniforms.add(new d.F("proj",(e=>e.camera.projectionMatrix)),new m("view",((e,t)=>(0,i.Tl)(v,t.camera.viewMatrix,e.origin))),new c.W("localOrigin",(e=>e.origin)));const r=({camera:e})=>(0,n.i)(g,e.viewInverseTransposeMatrix[3],e.viewInverseTransposeMatrix[7],e.viewInverseTransposeMatrix[11]);e.uniforms.add(new d.F("proj",(e=>e.camera.projectionMatrix)),new d.F("view",(e=>(0,i.Tl)(v,e.camera.viewMatrix,r(e)))),new s.d("localOrigin",(e=>r(e))))}const v=(0,o.vt)(),g=(0,a.vt)();function _(e){e.uniforms.add(new d.F("viewNormal",(e=>e.camera.viewInverseTransposeMatrix)))}function T(e){e.uniforms.add(new l.U("pixelRatio",(e=>e.camera.pixelRatio/e.overlayStretch)))}},21231:(e,t,r)=>{r.d(t,{g:()=>p});var i=r(49186),o=(r(44208),r(53966)),n=r(97768),a=r(74887),s=r(94656),c=r(63907),l=r(6625),d=r(67171),u=r(12541);class h extends d.R{constructor(e,t){switch(super(),this.context=e,Object.assign(this,t),this.internalFormat){case c.H0.R16F:case c.H0.R32F:case c.H0.R8_SNORM:case c.H0.R8:this.pixelFormat=c.Ab.RED;break;case c.H0.R8I:case c.H0.R8UI:case c.H0.R16I:case c.H0.R16UI:case c.H0.R32I:case c.H0.R32UI:this.pixelFormat=c.Ab.RED_INTEGER}}static validate(e,t){return new h(e,t)}}const m=()=>o.A.getLogger("esri/views/webgl/Texture");let p=class e{static{this.TEXTURE_UNIT_FOR_UPDATES=0}static{this.compressionWorkerHandle=null}constructor(e,t=null,r=null){if(this.type=l.d.Texture,this._glName=null,this._samplingModeDirty=!1,this._wrapModeDirty=!1,this._wasImmutablyAllocated=!1,"context"in e)this._descriptor=e,r=t;else{const r=h.validate(e,t);if(!r)throw new i.A("texture:invalid-descriptor","Texture descriptor invalid");this._descriptor=r}this._descriptor.target===c.Ap.TEXTURE_CUBE_MAP?this._setDataCubeMap(r):this.setData(r)}get glName(){return this._glName}get descriptor(){return this._descriptor}get usedMemory(){return(0,d.e)(this._descriptor)}get cachedMemory(){return this.usedMemory}get isDirty(){return this._samplingModeDirty||this._wrapModeDirty}get isCompressing(){return null!==this._compressionAbortController}dispose(){this.abortCompression(),this._descriptor.context.gl&&this._glName&&(this._descriptor.context.instanceCounter.decrement(c.vt.Texture,this),this._descriptor.context.unbindTexture(this),this._descriptor.context.gl.deleteTexture(this._glName),this._glName=null)}release(){this.dispose()}resize(e,t){const r=this._descriptor;if(r.width!==e||r.height!==t){if(this._wasImmutablyAllocated)throw new i.A("texture:immutable-resize","Immutable textures can't be resized!");r.width=e,r.height=t,this._descriptor.target===c.Ap.TEXTURE_CUBE_MAP?this._setDataCubeMap(null):this.setData(null)}}enableCompression(e,t){this._descriptor.compressionHandle=e,this._descriptor.compressionCallback=t}disableCompression(){this._descriptor.compressionHandle=null,this._descriptor.compressionCallback=null}setData(e){this.abortCompression(),!(0,u.Qp)(e)&&this._descriptor.internalFormat&&this._descriptor.internalFormat in c.CQ&&(this._descriptor.internalFormat=void 0),this._setData(e),!(0,u.Qp)(e)&&this._descriptor.compressionHandle&&this._compressOnWorker(e)}updateData(t,r,o,n,a,s,c=0){s||m().error("An attempt to use uninitialized data!"),this._glName||m().error("An attempt to update uninitialized texture!");const l=this._descriptor;l.internalFormat=(0,u.mq)(l);const{context:d,pixelFormat:h,dataType:p,target:f,isImmutable:v}=l;if(v&&!this._wasImmutablyAllocated)throw new i.A("texture:uninitialized","Cannot update immutable texture before allocation!");const g=d.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES,!0);(r<0||o<0||r+n>l.width||o+a>l.height)&&m().error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage();const{gl:_}=d;c&&(n&&a||m().warn("Must pass width and height if `UNPACK_SKIP_ROWS` is used"),_.pixelStorei(_.UNPACK_SKIP_ROWS,c)),(0,u.Kv)(s)?_.texSubImage2D(f,t,r,o,n,a,h,p,s):(0,u.Qp)(s)?_.compressedTexSubImage2D(f,t,r,o,n,a,l.internalFormat,s.levels[t]):_.texSubImage2D(f,t,r,o,n,a,h,p,s),c&&_.pixelStorei(_.UNPACK_SKIP_ROWS,0),d.bindTexture(g,e.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(t,r,o,n,a,s,c,l){l||m().error("An attempt to use uninitialized data!"),this._glName||m().error("An attempt to update an uninitialized texture!");const d=this._descriptor;d.internalFormat=(0,u.mq)(d);const{context:h,pixelFormat:p,dataType:f,isImmutable:v,target:g}=d;if(v&&!this._wasImmutablyAllocated)throw new i.A("texture:uninitialized","Cannot update immutable texture before allocation!");(0,u.re)(g)||m().warn("Attempting to set 3D texture data on a non-3D texture");const _=h.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);h.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),(r<0||o<0||n<0||r+a>d.width||o+s>d.height||n+c>d.depth)&&m().error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage();const{gl:T}=h;if((0,u.Qp)(l))l=l.levels[t],T.compressedTexSubImage3D(g,t,r,o,n,a,s,c,d.internalFormat,l);else{const e=l;T.texSubImage3D(g,t,r,o,n,a,s,c,p,f,e)}h.bindTexture(_,e.TEXTURE_UNIT_FOR_UPDATES)}generateMipmap(){const t=this._descriptor;if(0===t.width||0===t.height)return;if(!t.hasMipmap){if(this._wasImmutablyAllocated)throw new i.A("texture:immutable-change","Cannot add mipmaps to immutable texture after allocation");t.hasMipmap=!0,this._samplingModeDirty=!0,(0,u.QE)(t)}t.samplingMode===c.Cj.LINEAR?(this._samplingModeDirty=!0,t.samplingMode=c.Cj.LINEAR_MIPMAP_NEAREST):t.samplingMode===c.Cj.NEAREST&&(this._samplingModeDirty=!0,t.samplingMode=c.Cj.NEAREST_MIPMAP_NEAREST);const r=this._descriptor.context.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),this._descriptor.context.gl.generateMipmap(t.target),this._descriptor.context.bindTexture(r,e.TEXTURE_UNIT_FOR_UPDATES)}clearMipmap(){const e=this._descriptor;if(e.hasMipmap){if(this._wasImmutablyAllocated)throw new i.A("texture:immutable-change","Cannot delete mipmaps to immutable texture after allocation");e.hasMipmap=!1,this._samplingModeDirty=!0,(0,u.QE)(e)}e.samplingMode===c.Cj.LINEAR_MIPMAP_NEAREST?(this._samplingModeDirty=!0,e.samplingMode=c.Cj.LINEAR):e.samplingMode===c.Cj.NEAREST_MIPMAP_NEAREST&&(this._samplingModeDirty=!0,e.samplingMode=c.Cj.NEAREST)}setSamplingMode(e){e!==this._descriptor.samplingMode&&(this._descriptor.samplingMode=e,this._samplingModeDirty=!0)}setWrapMode(e){e!==this._descriptor.wrapMode&&(this._descriptor.wrapMode=e,(0,u.QE)(this._descriptor),this._wrapModeDirty=!0)}applyChanges(){this._samplingModeDirty&&(this._applySamplingMode(),this._samplingModeDirty=!1),this._wrapModeDirty&&(this._applyWrapMode(),this._wrapModeDirty=!1)}abortCompression(){this.isCompressing&&(this._compressionAbortController=(0,n.DC)(this._compressionAbortController))}_setData(t,r){const o=this._descriptor,n=o.context?.gl;if(!n)return;(0,s.Y2)(n),this._glName||(this._glName=n.createTexture(),o.context.instanceCounter.increment(c.vt.Texture,this)),(0,u.QE)(o);const a=o.context.bindTexture(this,e.TEXTURE_UNIT_FOR_UPDATES);o.context.setActiveTexture(e.TEXTURE_UNIT_FOR_UPDATES),this._configurePixelStorage(),(0,s.Y2)(n);const l=r??o.target,d=(0,u.re)(l);if((0,u.Kv)(t))this._setDataFromTexImageSource(t,l);else{const{width:e,height:r,depth:a}=o;if(null==e||null==r)throw new i.A("texture:missing-size","Width and height must be specified!");if(d&&null==a)throw new i.A("texture:missing-depth","Depth must be specified!");if(o.internalFormat=(0,u.mq)(o),o.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(l,o.internalFormat,o.hasMipmap,e,r,a),(0,u.Qp)(t)){if(!(0,u.tl)(o.internalFormat))throw new i.A("texture:format-mismatch","Attempting to use compressed data with an uncompressed format!");this._setDataFromCompressedSource(t,o.internalFormat,l)}else this._texImage(l,0,o.internalFormat,e,r,a,t),(0,s.Y2)(n),o.hasMipmap&&this.generateMipmap()}this._applySamplingMode(),this._applyWrapMode(),this._applyAnisotropicFilteringParameters(),(0,s.Y2)(n),o.context.bindTexture(a,e.TEXTURE_UNIT_FOR_UPDATES)}_setDataCubeMap(e=null){for(let t=c.Ap.TEXTURE_CUBE_MAP_POSITIVE_X;t<=c.Ap.TEXTURE_CUBE_MAP_NEGATIVE_Z;t++)this._setData(e,t)}_configurePixelStorage(){const e=this._descriptor.context.gl,{unpackAlignment:t,flipped:r,preMultiplyAlpha:i}=this._descriptor;e.pixelStorei(e.UNPACK_ALIGNMENT,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,r?1:0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i?1:0)}_setDataFromTexImageSource(e,t){const{gl:r}=this._descriptor.context,i=this._descriptor;i.internalFormat=(0,u.mq)(i);const o=(0,u.re)(t),{width:n,height:a,depth:c}=(0,u.Eo)(e);i.width&&i.height,i.width||(i.width=n),i.height||(i.height=a),o&&i.depth,o&&(i.depth=c),i.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(t,i.internalFormat,i.hasMipmap,n,a,c),this._texImage(t,0,i.internalFormat,n,a,c,e),(0,s.Y2)(r),i.hasMipmap&&(this.generateMipmap(),(0,s.Y2)(r))}_setDataFromCompressedSource(e,t,r){const i=this._descriptor,{width:o,height:n,depth:a}=i,s=e.levels,l=(0,u.FV)(r,o,n,a),d=Math.min(l,s.length)-1;this._descriptor.context.gl.texParameteri(i.target,c.H3.MAX_LEVEL,d),this._forEachMipmapLevel(((e,i,o,n)=>{const a=s[Math.min(e,s.length-1)];this._compressedTexImage(r,e,t,i,o,n,a)}),d)}_texStorage(e,t,r,o,n,a){const{gl:s}=this._descriptor.context;if(!(0,u.tr)(t)&&!(0,u.CR)(t)&&!(0,u.QJ)(t))throw new i.A("texture:missing-format","Immutable textures must have a sized internal format");if(!this._descriptor.isImmutable)return;const c=r?(0,u.FV)(e,o,n,a):1;if((0,u.re)(e)){if(null==a)throw new i.A("texture:missing-depth","Missing depth dimension for 3D texture upload");s.texStorage3D(e,c,t,o,n,a)}else s.texStorage2D(e,c,t,o,n);this._wasImmutablyAllocated=!0}_texImage(e,t,r,o,n,a,s){const c=this._descriptor.context.gl,l=(0,u.re)(e),{isImmutable:d,pixelFormat:h,dataType:m}=this._descriptor;if(d){if(null!=s){const r=s;if(l){if(null==a)throw new i.A("texture:missing-depth","Missing depth dimension for 3D texture upload");c.texSubImage3D(e,t,0,0,0,o,n,a,h,m,r)}else c.texSubImage2D(e,t,0,0,o,n,h,m,r)}}else{const d=s;if(l){if(null==a)throw new i.A("texture:missing-depth","Missing depth dimension for 3D texture upload");c.texImage3D(e,t,r,o,n,a,0,h,m,d)}else c.texImage2D(e,t,r,o,n,0,h,m,d)}}_compressedTexImage(e,t,r,o,n,a,s){const c=this._descriptor.context.gl,l=(0,u.re)(e);if(this._descriptor.isImmutable){if(null!=s)if(l){if(null==a)throw new i.A("texture:missing-depth","Missing depth dimension for 3D texture upload");c.compressedTexSubImage3D(e,t,0,0,0,o,n,a,r,s)}else c.compressedTexSubImage2D(e,t,0,0,o,n,r,s)}else if(l){if(null==a)throw new i.A("texture:missing-depth","Missing depth dimension for 3D texture upload");c.compressedTexImage3D(e,t,r,o,n,a,0,s)}else c.compressedTexImage2D(e,t,r,o,n,0,s)}async _compressOnWorker(t){if(!e.compressionWorkerHandle||!e.compressionWorkerHandle.isCompressible(t))return;const r=!!this._descriptor.context.capabilities.compressedTextureETC,i=!!this._descriptor.context.capabilities.compressedTextureS3TC;if(r||i){const o=new AbortController;this._compressionAbortController=o;const n=this._descriptor.compressionHandle;n.increment();const s=this._descriptor.compressionCallback,c={data:await createImageBitmap(t,{imageOrientation:this.descriptor.flipped?"flipY":"none"}),width:t.width,height:t.height,premultiplyAlpha:this._descriptor.preMultiplyAlpha,hasMipmap:this._descriptor.hasMipmap,hasETC:!!r,hasS3TC:!!i};e.compressionWorkerHandle.invoke(c,this._compressionAbortController.signal).then((e=>{e&&this.isCompressing&&this.glName&&(this._descriptor.internalFormat=e.internalFormat,this._setData(e.compressedTexture),s?.()),o===this._compressionAbortController&&(this._compressionAbortController=null),n.decrement()})).catch((e=>{(0,a.zf)(e)||o!==this._compressionAbortController||(this._compressionAbortController=null),n.decrement()}))}}_forEachMipmapLevel(e,t=1/0){let{width:r,height:o,depth:n,hasMipmap:a,target:s}=this._descriptor;const l=s===c.Ap.TEXTURE_3D;if(null==r||null==o||l&&null==n)throw new i.A("texture:missing-size","Missing texture dimensions for mipmap calculation");for(let i=0;e(i,r,o,n),a&&(1!==r||1!==o||l&&1!==n)&&!(i>=t);++i)r=Math.max(1,r>>1),o=Math.max(1,o>>1),l&&(n=Math.max(1,n>>1))}_applySamplingMode(){const e=this._descriptor,t=e.context?.gl;let r=e.samplingMode,i=e.samplingMode;r===c.Cj.LINEAR_MIPMAP_NEAREST||r===c.Cj.LINEAR_MIPMAP_LINEAR?(r=c.Cj.LINEAR,e.hasMipmap||(i=c.Cj.LINEAR)):r!==c.Cj.NEAREST_MIPMAP_NEAREST&&r!==c.Cj.NEAREST_MIPMAP_LINEAR||(r=c.Cj.NEAREST,e.hasMipmap||(i=c.Cj.NEAREST)),t.texParameteri(e.target,t.TEXTURE_MAG_FILTER,r),t.texParameteri(e.target,t.TEXTURE_MIN_FILTER,i)}_applyWrapMode(){const e=this._descriptor,t=e.context?.gl;"number"==typeof e.wrapMode?(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode)):(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode.s),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode.t))}_applyAnisotropicFilteringParameters(){const e=this._descriptor,t=e.context.capabilities.textureFilterAnisotropic;t&&e.context.gl.texParameterf(e.target,t.TEXTURE_MAX_ANISOTROPY,e.maxAnisotropy??1)}}},22393:(e,t,r)=>{r.d(t,{c:()=>s});var i=r(31821);function o(e){e.code.add(i.H`vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG) {
223
141
  return ((1.0 - NdotNG) * ambientGround + (1.0 + NdotNG) * ambientSky) * 0.5;
224
- }`),t.add(i.H`float integratedRadiance(float cosTheta2, float roughness) {
142
+ }`),e.code.add(i.H`float integratedRadiance(float cosTheta2, float roughness) {
225
143
  return (cosTheta2 - 1.0) / (cosTheta2 * (1.0 - roughness * roughness) - 1.0);
226
- }`),t.add(i.H`vec3 evaluateSpecularIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float RdotNG, float roughness) {
144
+ }`),e.code.add(i.H`vec3 evaluateSpecularIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float RdotNG, float roughness) {
227
145
  float cosTheta2 = 1.0 - RdotNG * RdotNG;
228
146
  float intRadTheta = integratedRadiance(cosTheta2, roughness);
229
147
  float ground = RdotNG < 0.0 ? 1.0 - intRadTheta : 1.0 + intRadTheta;
230
148
  float sky = 2.0 - ground;
231
149
  return (ground * ambientGround + sky * ambientSky) * 0.5;
232
- }`)}var n=r(59469),a=r(89786);function s(e,t){const r=e.fragment.code;e.include(a.p),t.pbrMode!==n.A9.Normal&&t.pbrMode!==n.A9.Schematic&&t.pbrMode!==n.A9.Simplified&&t.pbrMode!==n.A9.TerrainWithWater||(r.add(i.H`float normalDistribution(float NdotH, float roughness)
150
+ }`)}var n=r(59469),a=r(89786);function s(e,t){e.include(a.p),t.pbrMode!==n.A9.Normal&&t.pbrMode!==n.A9.Schematic&&t.pbrMode!==n.A9.Simplified&&t.pbrMode!==n.A9.TerrainWithWater||(e.code.add(i.H`float normalDistribution(float NdotH, float roughness)
233
151
  {
234
152
  float a = NdotH * roughness;
235
153
  float b = roughness / (1.0 - NdotH * NdotH + a * a);
236
154
  return b * b * INV_PI;
237
- }`),r.add(i.H`const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);
155
+ }`),e.code.add(i.H`const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);
238
156
  const vec4 c1 = vec4( 1.0, 0.0425, 1.040, -0.040);
239
157
  const vec2 c2 = vec2(-1.04, 1.04);
240
158
  vec2 prefilteredDFGAnalytical(float roughness, float NdotV) {
241
159
  vec4 r = roughness * c0 + c1;
242
160
  float a004 = min(r.x * r.x, exp2(-9.28 * NdotV)) * r.x + r.y;
243
161
  return c2 * a004 + r.zw;
244
- }`)),t.pbrMode!==n.A9.Normal&&t.pbrMode!==n.A9.Schematic||(e.include(o),r.add(i.H`struct PBRShadingInfo
162
+ }`)),t.pbrMode!==n.A9.Normal&&t.pbrMode!==n.A9.Schematic||(e.include(o),e.code.add(i.H`struct PBRShadingInfo
245
163
  {
246
164
  float NdotV;
247
165
  float LdotH;
@@ -261,7 +179,7 @@ vec3 f90;
261
179
  vec3 diffuseColor;
262
180
  float metalness;
263
181
  float roughness;
264
- };`),r.add(i.H`vec3 evaluateEnvironmentIllumination(PBRShadingInfo inputs) {
182
+ };`),e.code.add(i.H`vec3 evaluateEnvironmentIllumination(PBRShadingInfo inputs) {
265
183
  vec3 indirectDiffuse = evaluateDiffuseIlluminationHemisphere(inputs.groundIrradianceToSurface, inputs.skyIrradianceToSurface, inputs.NdotNG);
266
184
  vec3 indirectSpecular = evaluateSpecularIlluminationHemisphere(inputs.groundRadianceToSurface, inputs.skyRadianceToSurface, inputs.RdotNG, inputs.roughness);
267
185
  vec3 diffuseComponent = inputs.diffuseColor * indirectDiffuse * INV_PI;
@@ -269,138 +187,14 @@ vec2 dfg = prefilteredDFGAnalytical(inputs.roughness, inputs.NdotV);
269
187
  vec3 specularColor = inputs.f0 * dfg.x + inputs.f90 * dfg.y;
270
188
  vec3 specularComponent = specularColor * indirectSpecular;
271
189
  return (diffuseComponent + specularComponent);
272
- }`))}},22911:(e,t,r)=>{r.d(t,{NL:()=>f,ZX:()=>i});var i,o,n=r(49255),a=r(99208),s=r(40710),l=r(33079),c=r(28421),d=r(20304),u=r(31821),h=r(15976),m=r(63761),p=(r(25634),r(69270));function f(e,t){if(!(0,n.RN)(t.output))return;const{emissionSource:r,hasEmissiveTextureTransform:o,bindType:f}=t,v=r===i.Texture;v&&(e.include(a.r,t),e.fragment.uniforms.add(f===p.c.Pass?new m.N("texEmission",(e=>e.textureEmissive)):new h.o("texEmission",(e=>e.textureEmissive))));const g=r===i.EmissiveColor||v;g&&e.fragment.uniforms.add(f===p.c.Pass?new l.t("emissiveBaseColor",(e=>e.emissiveBaseColor)):new s.W("emissiveBaseColor",(e=>e.emissiveBaseColor)));const _=r!==i.None;_&&e.fragment.uniforms.add(f===p.c.Pass?new d.m("emissiveStrength",(e=>e.emissiveStrength)):new c.J("emissiveStrength",(e=>e.emissiveStrength)));const T=r===i.SymbolColor;e.fragment.code.add(u.H`
190
+ }`))}},22911:(e,t,r)=>{r.d(t,{NL:()=>f,ZX:()=>i});var i,o,n=r(49255),a=r(99208),s=r(40710),c=r(33079),l=r(28421),d=r(20304),u=r(31821),h=r(15976),m=r(63761),p=(r(25634),r(69270));function f(e,t){if(!(0,n.RN)(t.output))return;const{emissionSource:r,hasEmissiveTextureTransform:o,bindType:f}=t,v=r===i.Texture;v&&(e.include(a.r,t),e.fragment.uniforms.add(f===p.c.Pass?new m.N("texEmission",(e=>e.textureEmissive)):new h.o("texEmission",(e=>e.textureEmissive))));const g=r===i.EmissiveColor||v;g&&e.fragment.uniforms.add(f===p.c.Pass?new c.t("emissiveBaseColor",(e=>e.emissiveBaseColor)):new s.W("emissiveBaseColor",(e=>e.emissiveBaseColor)));const _=r!==i.None;_&&e.fragment.uniforms.add(f===p.c.Pass?new d.m("emissiveStrength",(e=>e.emissiveStrength)):new l.J("emissiveStrength",(e=>e.emissiveStrength)));const T=r===i.SymbolColor;e.fragment.code.add(u.H`
273
191
  vec4 getEmissions(vec3 symbolColor) {
274
192
  vec4 emissions = ${g?"vec4(emissiveBaseColor, 1.0)":T?"vec4(symbolColor, 1.0)":"vec4(0.0)"};
275
193
  ${(0,u.If)(v,`emissions *= textureLookup(texEmission, ${o?"emissiveUV":"vuv0"});\n emissions.w = emissions.rgb == vec3(0.0) ? 0.0: emissions.w;`)}
276
194
  ${(0,u.If)(_,"emissions.rgb *= emissiveStrength;")}
277
195
  return emissions;
278
196
  }
279
- `)}(o=i||(i={}))[o.None=0]="None",o[o.SymbolColor=1]="SymbolColor",o[o.EmissiveColor=2]="EmissiveColor",o[o.Texture=3]="Texture",o[o.COUNT=4]="COUNT"},23205:(e,t,r)=>{r.d(t,{d:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec3",i.c.Bind,((r,i)=>r.setUniform3fv(e,t(i))))}}},25618:(e,t,r)=>{r.d(t,{Bz:()=>v,G:()=>f}),r(9093),r(51850);var i=r(52540),o=r(34845),n=r(80730),a=r(14314),s=r(31821),l=r(35818),c=r(69270),d=r(74333);class u extends d.n{constructor(e,t,r){super(e,"mat4",c.c.Draw,((r,i,o,n)=>r.setUniformMatrix4fv(e,t(i,o,n))),r)}}class h extends d.n{constructor(e,t,r){super(e,"mat4",c.c.Pass,((r,i,o)=>r.setUniformMatrix4fv(e,t(i,o))),r)}}var m=r(12791),p=r(65786);function f(e,t){t.receiveShadows&&(e.fragment.uniforms.add(new h("shadowMapMatrix",((e,t)=>t.shadowMap.getShadowMapMatrices(e.origin)),4)),g(e,t))}function v(e,t){t.receiveShadows&&(e.fragment.uniforms.add(new u("shadowMapMatrix",((e,t)=>t.shadowMap.getShadowMapMatrices(e.origin)),4)),g(e,t))}function g(e,t){const{fragment:r}=e;r.include(n.U);const c=t.worldPositionFromDepthMap??!1;c&&(r.include(i.E),e.include(o.Ir)),r.uniforms.add(new m.x("shadowMap",(e=>e.shadowMap.depthTexture)),new l.W("numCascades",(e=>e.shadowMap.numCascades)),new a.I("cascadeDistances",(e=>e.shadowMap.cascadeDistances))),r.code.add(s.H`
280
- // Private
281
-
282
- int chooseCascade(float depth, out mat4 mat) {
283
- // choose correct cascade
284
- vec4 distance = cascadeDistances;
285
- int i = depth < distance[1] ? 0 : depth < distance[2] ? 1 : depth < distance[3] ? 2 : 3;
286
-
287
- mat = i == 0 ? shadowMapMatrix[0] : i == 1 ? shadowMapMatrix[1] : i == 2 ? shadowMapMatrix[2] : shadowMapMatrix[3];
288
-
289
- return i;
290
- }
291
-
292
- vec3 lightSpacePosition(vec3 _vpos, mat4 mat) {
293
- vec4 lv = mat * vec4(_vpos, 1.0);
294
- lv.xy /= lv.w;
295
- return 0.5 * lv.xyz + vec3(0.5);
296
- }
297
-
298
- vec2 cascadeCoordinates(int i, ivec2 textureSize, vec3 lvpos) {
299
- float xScale = float(textureSize.y) / float(textureSize.x);
300
- return vec2((float(i) + lvpos.x) * xScale, lvpos.y);
301
- }
302
-
303
- float readShadowMapDepth(ivec2 uv, sampler2D _shadowMap) {
304
- return rgba4ToFloat(texelFetch(_shadowMap, uv, 0));
305
- }
306
-
307
- float posIsInShadow(ivec2 uv, float lvposZ, sampler2D _shadowMap) {
308
- return readShadowMapDepth(uv, _shadowMap) < lvposZ ? 1.0 : 0.0;
309
- }
310
-
311
- float filterShadow(vec3 uvzShadow, sampler2D _shadowMap) {
312
- ivec2 texSize = textureSize(_shadowMap, 0);
313
- vec2 uv = uvzShadow.xy;
314
- vec2 st = fract(uv * vec2(texSize) + vec2(0.5));
315
- ivec2 base = ivec2(uv * vec2(texSize) - vec2(0.5));
316
-
317
- float s00 = posIsInShadow(ivec2(base.x, base.y ), uvzShadow.z, _shadowMap);
318
- float s10 = posIsInShadow(ivec2(base.x + 1, base.y ), uvzShadow.z, _shadowMap);
319
- float s11 = posIsInShadow(ivec2(base.x + 1, base.y + 1), uvzShadow.z, _shadowMap);
320
- float s01 = posIsInShadow(ivec2(base.x, base.y + 1), uvzShadow.z, _shadowMap);
321
-
322
- return mix(mix(s00, s10, st.x), mix(s01, s11, st.x), st.y);
323
- }
324
-
325
- // Public
326
-
327
- bool posIsInShadowF(vec3 uvzShadow, sampler2D _shadowMap) {
328
- ivec2 texSize = textureSize(_shadowMap, 0);
329
- ivec2 iuvShadow = ivec2(uvzShadow.xy * vec2(texSize));
330
-
331
- float depthShadow = readShadowMapDepth(iuvShadow, _shadowMap);
332
- return depthShadow < uvzShadow.z;
333
- }
334
-
335
- const vec3 invalidShadowmapUVZ = vec3(0.0,0.0,-1.0);
336
-
337
- // Returns a uvzShadow: uv in shadowMap texture and z in lvpos
338
- vec3 calculateShadowmapUVZ(
339
- in vec3 _worldPos,
340
- in float _linearDepth,
341
- in sampler2D _shadowMap
342
- )
343
- {
344
- mat4 shadowMatrix;
345
- int i = chooseCascade(_linearDepth, shadowMatrix);
346
- if (i >= numCascades) {
347
- return invalidShadowmapUVZ;
348
- }
349
-
350
- vec3 lvpos = lightSpacePosition(_worldPos, shadowMatrix);
351
-
352
- // vertex completely outside? -> no shadow
353
- if (lvpos.z >= 1.0 || lvpos.x < 0.0 || lvpos.x > 1.0 || lvpos.y < 0.0 || lvpos.y > 1.0) {
354
- return invalidShadowmapUVZ;
355
- }
356
-
357
- // calc coord in cascade texture
358
- ivec2 texSize = textureSize(_shadowMap, 0);
359
- vec2 uvShadow = cascadeCoordinates(i, texSize, lvpos);
360
- return vec3(uvShadow, lvpos.z);
361
- }
362
-
363
- ${(0,s.If)(c,s.H`
364
- vec3 calculateShadowmapUVZFromDepthMap_currentPixelPos(
365
- in vec2 _uv,
366
- in sampler2D _shadowMap,
367
- in sampler2D _depthMap,
368
- out vec4 currentPixelPos
369
- ) {
370
- // 1.0 is the clear value of depthMap, which means nothing has been drawn there and we should discard
371
- float depth = depthFromTexture(_depthMap, _uv);
372
- if (depth >= 1.0 || depth <= 0.0) {
373
- return invalidShadowmapUVZ;
374
- }
375
-
376
- float currentPixelDepth = linearizeDepth(depth);
377
- currentPixelPos = vec4(reconstructPosition(gl_FragCoord.xy, currentPixelDepth), 1.0);
378
- vec4 worldSpacePos = inverseViewMatrix * currentPixelPos;
379
-
380
- float linearDepth = -currentPixelDepth;
381
-
382
- return calculateShadowmapUVZ(worldSpacePos.xyz, linearDepth, _shadowMap);
383
- }
384
-
385
- vec3 calculateShadowmapUVZFromDepthMap(
386
- in vec2 _uv,
387
- in sampler2D _shadowMap,
388
- in sampler2D _depthMap
389
- ) {
390
- vec4 currentPixelPos;
391
- return calculateShadowmapUVZFromDepthMap_currentPixelPos(_uv, _shadowMap, _depthMap, currentPixelPos);
392
- }
393
- `)}
394
-
395
- float readShadowMap(const in vec3 _worldPos, float _linearDepth) {
396
- vec3 uvzShadow = calculateShadowmapUVZ(_worldPos, _linearDepth, shadowMap);
397
- if (uvzShadow.z < 0.0) {
398
- return 0.0;
399
- }
400
-
401
- return filterShadow(uvzShadow, shadowMap);
402
- }
403
- `)}p.Y,p.Y},25634:(e,t,r)=>{r.d(t,{m8:()=>l,NV:()=>d});var i=r(97768),o=r(74887),n=r(89192);class a{constructor(e){this._material=e.material,this._techniques=e.techniques,this._output=e.output}dispose(){}get _stippleTextures(){return this._techniques.context.stippleTextures}get _markerTextures(){return this._techniques.context.markerTextures}getTechnique(e,t){return this._techniques.get(e,this._material.getConfiguration(this._output,t))}ensureResources(e){return n.Am.LOADED}}var s=r(65786);class l extends a{constructor(e){super(e),this._numLoading=0,this._disposed=!1,this._textures=e.textures,this.updateTexture(e.textureId),this._acquire(e.normalTextureId,(e=>this._textureNormal=e)),this._acquire(e.emissiveTextureId,(e=>this._textureEmissive=e)),this._acquire(e.occlusionTextureId,(e=>this._textureOcclusion=e)),this._acquire(e.metallicRoughnessTextureId,(e=>this._textureMetallicRoughness=e))}dispose(){super.dispose(),this._texture=(0,i.Gz)(this._texture),this._textureNormal=(0,i.Gz)(this._textureNormal),this._textureEmissive=(0,i.Gz)(this._textureEmissive),this._textureOcclusion=(0,i.Gz)(this._textureOcclusion),this._textureMetallicRoughness=(0,i.Gz)(this._textureMetallicRoughness),this._disposed=!0}ensureResources(e){return 0===this._numLoading?n.Am.LOADED:n.Am.LOADING}get textureBindParameters(){return new d(this._texture?.glTexture??null,this._textureNormal?.glTexture??null,this._textureEmissive?.glTexture??null,this._textureOcclusion?.glTexture??null,this._textureMetallicRoughness?.glTexture??null)}updateTexture(e){null!=this._texture&&e===this._texture.id||(this._texture=(0,i.Gz)(this._texture),this._acquire(e,(e=>this._texture=e)))}_acquire(e,t){if(null==e)return void t(null);const r=this._textures.acquire(e);if((0,o.$X)(r))return++this._numLoading,void r.then((e=>{if(this._disposed)return(0,i.Gz)(e),void t(null);t(e)})).finally((()=>--this._numLoading));t(r)}}class c extends s.Y{constructor(e=null){super(),this.textureEmissive=e}}class d extends c{constructor(e,t,r,i,o,n,a){super(r),this.texture=e,this.textureNormal=t,this.textureOcclusion=i,this.textureMetallicRoughness=o,this.scale=n,this.normalTextureTransformMatrix=a}}},26857:(e,t,r)=>{r.d(t,{b:()=>l});var i=r(90237),o=r(69622),n=r(10107),a=(r(44208),r(53966),r(87811),r(40608));let s=class extends o.A{constructor(){super(...arguments),this.SCENEVIEW_HITTEST_RETURN_INTERSECTOR=!1,this.DECONFLICTOR_SHOW_VISIBLE=!1,this.DECONFLICTOR_SHOW_INVISIBLE=!1,this.DECONFLICTOR_SHOW_GRID=!1,this.LABELS_SHOW_BORDER=!1,this.TEXT_SHOW_BASELINE=!1,this.TEXT_SHOW_BORDER=!1,this.OVERLAY_DRAW_DEBUG_TEXTURE=!1,this.OVERLAY_SHOW_CENTER=!1,this.SHOW_POI=!1,this.TESTS_DISABLE_OPTIMIZATIONS=!1,this.TESTS_DISABLE_FAST_UPDATES=!1,this.DRAW_MESH_GEOMETRY_NORMALS=!1,this.FEATURE_TILE_FETCH_SHOW_TILES=!1,this.FEATURE_TILE_TREE_SHOW_TILES=!1,this.TERRAIN_TILE_TREE_SHOW_TILES=!1,this.I3S_TREE_SHOW_TILES=!1,this.I3S_SHOW_MODIFICATIONS=!1,this.LOD_INSTANCE_RENDERER_DISABLE_UPDATES=!1,this.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL=!1,this.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES=!1,this.LINE_WIREFRAMES=!1}};(0,i._)([(0,n.MZ)()],s.prototype,"SCENEVIEW_HITTEST_RETURN_INTERSECTOR",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DECONFLICTOR_SHOW_VISIBLE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DECONFLICTOR_SHOW_INVISIBLE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DECONFLICTOR_SHOW_GRID",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LABELS_SHOW_BORDER",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TEXT_SHOW_BASELINE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TEXT_SHOW_BORDER",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"OVERLAY_DRAW_DEBUG_TEXTURE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"OVERLAY_SHOW_CENTER",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"SHOW_POI",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TESTS_DISABLE_OPTIMIZATIONS",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TESTS_DISABLE_FAST_UPDATES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DRAW_MESH_GEOMETRY_NORMALS",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"FEATURE_TILE_FETCH_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"FEATURE_TILE_TREE_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TERRAIN_TILE_TREE_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"I3S_TREE_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"I3S_SHOW_MODIFICATIONS",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LOD_INSTANCE_RENDERER_DISABLE_UPDATES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LINE_WIREFRAMES",void 0),s=(0,i._)([(0,a.$)("esri.views.3d.support.debugFlags")],s);const l=new s},27950:(e,t,r)=>{r.d(t,{N:()=>a});var i=r(66104),o=r(63365),n=r(31821);function a(e){e.include(o.a),e.code.add(n.H`
197
+ `)}(o=i||(i={}))[o.None=0]="None",o[o.SymbolColor=1]="SymbolColor",o[o.EmissiveColor=2]="EmissiveColor",o[o.Texture=3]="Texture",o[o.COUNT=4]="COUNT"},23205:(e,t,r)=>{r.d(t,{d:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec3",i.c.Bind,((r,i)=>r.setUniform3fv(e,t(i))))}}},25634:(e,t,r)=>{r.d(t,{m8:()=>c,NV:()=>d});var i=r(97768),o=r(74887),n=r(89192);class a{constructor(e){this._material=e.material,this._techniques=e.techniques,this._output=e.output}dispose(){}get _stippleTextures(){return this._techniques.context.stippleTextures}get _markerTextures(){return this._techniques.context.markerTextures}getTechnique(e,t){return this._techniques.get(e,this._material.getConfiguration(this._output,t))}ensureResources(e){return n.Am.LOADED}}var s=r(65786);class c extends a{constructor(e){super(e),this._numLoading=0,this._disposed=!1,this._textures=e.textures,this.updateTexture(e.textureId),this._acquire(e.normalTextureId,(e=>this._textureNormal=e)),this._acquire(e.emissiveTextureId,(e=>this._textureEmissive=e)),this._acquire(e.occlusionTextureId,(e=>this._textureOcclusion=e)),this._acquire(e.metallicRoughnessTextureId,(e=>this._textureMetallicRoughness=e))}dispose(){super.dispose(),this._texture=(0,i.Gz)(this._texture),this._textureNormal=(0,i.Gz)(this._textureNormal),this._textureEmissive=(0,i.Gz)(this._textureEmissive),this._textureOcclusion=(0,i.Gz)(this._textureOcclusion),this._textureMetallicRoughness=(0,i.Gz)(this._textureMetallicRoughness),this._disposed=!0}ensureResources(e){return 0===this._numLoading?n.Am.LOADED:n.Am.LOADING}get textureBindParameters(){return new d(this._texture?.glTexture??null,this._textureNormal?.glTexture??null,this._textureEmissive?.glTexture??null,this._textureOcclusion?.glTexture??null,this._textureMetallicRoughness?.glTexture??null)}updateTexture(e){null!=this._texture&&e===this._texture.id||(this._texture=(0,i.Gz)(this._texture),this._acquire(e,(e=>this._texture=e)))}_acquire(e,t){if(null==e)return void t(null);const r=this._textures.acquire(e);if((0,o.$X)(r))return++this._numLoading,void r.then((e=>{if(this._disposed)return(0,i.Gz)(e),void t(null);t(e)})).finally((()=>--this._numLoading));t(r)}}class l extends s.Y{constructor(e=null){super(),this.textureEmissive=e}}class d extends l{constructor(e,t,r,i,o,n,a){super(r),this.texture=e,this.textureNormal=t,this.textureOcclusion=i,this.textureMetallicRoughness=o,this.scale=n,this.normalTextureTransformMatrix=a}}},26857:(e,t,r)=>{r.d(t,{b:()=>c});var i=r(90237),o=r(69622),n=r(10107),a=(r(44208),r(53966),r(87811),r(40608));let s=class extends o.A{constructor(){super(...arguments),this.SCENEVIEW_HITTEST_RETURN_INTERSECTOR=!1,this.DECONFLICTOR_SHOW_VISIBLE=!1,this.DECONFLICTOR_SHOW_INVISIBLE=!1,this.DECONFLICTOR_SHOW_GRID=!1,this.LABELS_SHOW_BORDER=!1,this.TEXT_SHOW_BASELINE=!1,this.TEXT_SHOW_BORDER=!1,this.OVERLAY_DRAW_DEBUG_TEXTURE=!1,this.OVERLAY_SHOW_CENTER=!1,this.SHOW_POI=!1,this.TESTS_DISABLE_OPTIMIZATIONS=!1,this.TESTS_DISABLE_FAST_UPDATES=!1,this.DRAW_MESH_GEOMETRY_NORMALS=!1,this.FEATURE_TILE_FETCH_SHOW_TILES=!1,this.FEATURE_TILE_TREE_SHOW_TILES=!1,this.TERRAIN_TILE_TREE_SHOW_TILES=!1,this.I3S_TREE_SHOW_TILES=!1,this.I3S_SHOW_MODIFICATIONS=!1,this.LOD_INSTANCE_RENDERER_DISABLE_UPDATES=!1,this.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL=!1,this.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES=!1,this.LINE_WIREFRAMES=!1}};(0,i._)([(0,n.MZ)()],s.prototype,"SCENEVIEW_HITTEST_RETURN_INTERSECTOR",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DECONFLICTOR_SHOW_VISIBLE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DECONFLICTOR_SHOW_INVISIBLE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DECONFLICTOR_SHOW_GRID",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LABELS_SHOW_BORDER",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TEXT_SHOW_BASELINE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TEXT_SHOW_BORDER",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"OVERLAY_DRAW_DEBUG_TEXTURE",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"OVERLAY_SHOW_CENTER",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"SHOW_POI",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TESTS_DISABLE_OPTIMIZATIONS",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TESTS_DISABLE_FAST_UPDATES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"DRAW_MESH_GEOMETRY_NORMALS",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"FEATURE_TILE_FETCH_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"FEATURE_TILE_TREE_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"TERRAIN_TILE_TREE_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"I3S_TREE_SHOW_TILES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"I3S_SHOW_MODIFICATIONS",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LOD_INSTANCE_RENDERER_DISABLE_UPDATES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES",void 0),(0,i._)([(0,n.MZ)()],s.prototype,"LINE_WIREFRAMES",void 0),s=(0,i._)([(0,a.$)("esri.views.3d.support.debugFlags")],s);const c=new s},27950:(e,t,r)=>{r.d(t,{N:()=>a});var i=r(66104),o=r(63365),n=r(31821);function a(e){e.include(o.a),e.code.add(n.H`
404
198
  vec3 mixExternalColor(vec3 internalColor, vec3 textureColor, vec3 externalColor, int mode) {
405
199
  // workaround for artifacts in macOS using Intel Iris Pro
406
200
  // see: https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/10475
@@ -440,10 +234,10 @@ return (diffuseComponent + specularComponent);
440
234
  // multiply or tint (or something invalid)
441
235
  return allMixed;
442
236
  }
443
- `)}},28421:(e,t,r)=>{r.d(t,{J:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"float",i.c.Draw,((r,i,o)=>r.setUniform1f(e,t(i,o))))}}},28491:(e,t,r)=>{r.d(t,{D:()=>z,b:()=>U});var i=r(91829),o=r(46686),n=r(32680),a=r(49255),s=r(76591),l=r(76597),c=r(60864),d=r(96336),u=r(71955),h=r(53466),m=r(92700),p=r(72824),f=r(35640),v=r(40261),g=r(77695),_=r(85417),T=r(10688),x=r(98619),E=r(62602),b=r(22393),A=r(59469),S=r(25618),M=r(96598),w=r(51406),C=r(42398),R=r(58614),I=r(27950),O=r(20693),N=r(33079),y=r(71988),P=r(20304),D=r(31821),L=r(63761),H=r(46540),F=r(60517),B=r(14113),G=r(49788);function U(e){const t=new B.N5,{attributes:r,vertex:U,fragment:z,varyings:V}=t,{output:W,normalType:j,offsetBackfaces:k,instancedColor:q,spherical:Y,receiveShadows:$,snowCover:X,pbrMode:Z,textureAlphaPremultiplied:J,instancedDoublePrecision:K,hasVertexColors:Q,hasVertexTangents:ee,hasColorTexture:te,hasNormalTexture:re,hasNormalTextureTransform:ie,hasColorTextureTransform:oe,hasBloom:ne}=e;if((0,O.NB)(U,e),r.add(H.r.POSITION,"vec3"),V.add("vpos","vec3",{invariant:!0}),t.include(C.A,e),t.include(c.B,e),t.include(f.G,e),t.include(w.q2,e),!(0,a.RN)(W))return t.include(v.E,e),t;t.include(w.Sx,e),t.include(w.MU,e),t.include(w.O1,e),t.include(w.QM,e),(0,O.yu)(U,e),t.include(d.Y,e),t.include(l.d,e);const ae=j===d.W.Attribute||j===d.W.Compressed;return ae&&k&&t.include(n.M),t.include(g.W,e),t.include(p.Mh,e),q&&t.attributes.add(H.r.INSTANCECOLOR,"vec4"),V.add("vPositionLocal","vec3"),t.include(h.U,e),t.include(o.oD,e),t.include(u.K,e),t.include(m.c,e),U.uniforms.add(new y.E("externalColor",(e=>"ignore"===e.colorMixMode?i.Un:e.externalColor))),V.add("vcolorExt","vec4"),t.include(M.Z,e),U.main.add(D.H`
237
+ `)}},28421:(e,t,r)=>{r.d(t,{J:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"float",i.c.Draw,((r,i,o)=>r.setUniform1f(e,t(i,o))))}}},28491:(e,t,r)=>{r.d(t,{D:()=>V,b:()=>z});var i=r(91829),o=r(46686),n=r(32680),a=r(49255),s=r(76591),c=r(76597),l=r(60864),d=r(96336),u=r(71955),h=r(53466),m=r(92700),p=r(72824),f=r(35640),v=r(40261),g=r(77695),_=r(85417),T=r(89390),x=r(98619),E=r(62602),b=r(22393),A=r(59469),S=r(3800),M=r(96598),w=r(51406),C=r(42398),R=r(58614),I=r(27950),O=r(20693),N=r(33079),y=r(71988),P=r(20304),L=r(31821),D=r(63761),H=r(10906),F=r(46540),B=r(60517),U=r(14113),G=r(49788);function z(e){const t=new U.N5,{attributes:r,vertex:z,fragment:V,varyings:W}=t,{output:j,normalType:k,offsetBackfaces:$,instancedColor:q,spherical:Y,receiveShadows:X,snowCover:Z,pbrMode:J,textureAlphaPremultiplied:K,instancedDoublePrecision:Q,hasVertexColors:ee,hasVertexTangents:te,hasColorTexture:re,hasNormalTexture:ie,hasNormalTextureTransform:oe,hasColorTextureTransform:ne,hasBloom:ae}=e;if((0,O.NB)(z,e),r.add(F.r.POSITION,"vec3"),W.add("vpos","vec3",{invariant:!0}),t.include(C.A,e),t.include(l.B,e),t.include(f.G,e),t.include(w.q2,e),!(0,a.RN)(j))return t.include(v.E,e),t;t.include(w.Sx,e),t.include(w.MU,e),t.include(w.O1,e),t.include(w.QM,e),(0,O.yu)(z,e),t.include(d.Y,e),t.include(c.d,e);const se=k===d.W.Attribute||k===d.W.Compressed;return se&&$&&t.include(n.M),t.include(g.W,e),t.include(p.Mh,e),q&&t.attributes.add(F.r.INSTANCECOLOR,"vec4"),W.add("vPositionLocal","vec3"),t.include(h.U,e),t.include(o.oD,e),t.include(u.K,e),t.include(m.c,e),z.uniforms.add(new y.E("externalColor",(e=>"ignore"===e.colorMixMode?i.Un:e.externalColor))),W.add("vcolorExt","vec4"),t.include(M.Z,e),z.main.add(L.H`
444
238
  forwardNormalizedVertexColor();
445
239
  vcolorExt = externalColor;
446
- ${(0,D.If)(q,"vcolorExt *= instanceColor * 0.003921568627451;")}
240
+ ${(0,L.If)(q,"vcolorExt *= instanceColor * 0.003921568627451;")}
447
241
  vcolorExt *= vvColor();
448
242
  vcolorExt *= getSymbolColor();
449
243
  forwardColorMixMode();
@@ -451,11 +245,11 @@ return (diffuseComponent + specularComponent);
451
245
  vpos = getVertexInLocalOriginSpace();
452
246
  vPositionLocal = vpos - view[3].xyz;
453
247
  vpos = subtractOrigin(vpos);
454
- ${(0,D.If)(ae,"vNormalWorld = dpNormal(vvLocalNormal(normalModel()));")}
248
+ ${(0,L.If)(se,"vNormalWorld = dpNormal(vvLocalNormal(normalModel()));")}
455
249
  vpos = addVerticalOffset(vpos, localOrigin);
456
- ${(0,D.If)(ee,"vTangent = dpTransformVertexTangent(tangent);")}
250
+ ${(0,L.If)(te,"vTangent = dpTransformVertexTangent(tangent);")}
457
251
  gl_Position = transformPosition(proj, view, vpos);
458
- ${(0,D.If)(ae&&k,"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);")}
252
+ ${(0,L.If)(se&&$,"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);")}
459
253
 
460
254
  forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
461
255
  forwardLinearDepth();
@@ -466,18 +260,18 @@ return (diffuseComponent + specularComponent);
466
260
  forwardOcclusionUV();
467
261
  forwardMetallicRoughnessUV();
468
262
 
469
- if (vcolorExt.a < ${D.H.float(G.Q)}) {
263
+ if (vcolorExt.a < ${L.H.float(G.Q)}) {
470
264
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
471
265
  }
472
- `),t.include(T.kA,e),t.include(_.n,e),t.include(R.S,e),t.include(K?S.G:S.Bz,e),t.fragment.include(s.HQ,e),t.include(F.z,e),(0,O.yu)(z,e),z.uniforms.add(U.uniforms.get("localOrigin"),new N.t("ambient",(e=>e.ambient)),new N.t("diffuse",(e=>e.diffuse)),new P.m("opacity",(e=>e.opacity)),new P.m("layerOpacity",(e=>e.layerOpacity))),te&&z.uniforms.add(new L.N("tex",(e=>e.texture))),t.include(A._Z,e),t.include(b.c,e),z.include(I.N),t.include(E.r,e),(0,T.a8)(z),(0,T.eU)(z),(0,x.O4)(z),z.main.add(D.H`
266
+ `),t.include(T.kA,e),V.include(_.n,e),t.include(R.S,e),t.include(Q?S.G:S.Bz,e),V.include(s.HQ,e),t.include(B.z,e),(0,O.yu)(V,e),V.uniforms.add(z.uniforms.get("localOrigin"),new N.t("ambient",(e=>e.ambient)),new N.t("diffuse",(e=>e.diffuse)),new P.m("opacity",(e=>e.opacity)),new P.m("layerOpacity",(e=>e.layerOpacity))),re&&V.uniforms.add(new D.N("tex",(e=>e.texture))),t.include(A._Z,e),V.include(b.c,e),V.include(I.N),t.include(E.r,e),V.include(H.b,e),(0,T.a8)(V),(0,T.eU)(V),(0,x.O4)(V),V.main.add(L.H`
473
267
  discardBySlice(vpos);
474
268
  discardByTerrainDepth();
475
- ${te?D.H`
476
- vec4 texColor = texture(tex, ${oe?"colorUV":"vuv0"});
477
- ${(0,D.If)(J,"texColor.rgb /= texColor.a;")}
478
- discardOrAdjustAlpha(texColor);`:D.H`vec4 texColor = vec4(1.0);`}
269
+ ${re?L.H`
270
+ vec4 texColor = texture(tex, ${ne?"colorUV":"vuv0"});
271
+ ${(0,L.If)(K,"texColor.rgb /= texColor.a;")}
272
+ discardOrAdjustAlpha(texColor);`:L.H`vec4 texColor = vec4(1.0);`}
479
273
  shadingParams.viewDirection = normalize(vpos - cameraPosition);
480
- ${j===d.W.ScreenDerivative?D.H`vec3 normal = screenDerivativeNormal(vPositionLocal);`:D.H`shadingParams.normalView = vNormalWorld;
274
+ ${k===d.W.ScreenDerivative?L.H`vec3 normal = screenDerivativeNormal(vPositionLocal);`:L.H`shadingParams.normalView = vNormalWorld;
481
275
  vec3 normal = shadingNormal(shadingParams);`}
482
276
  applyPBRFactors();
483
277
  float ssao = evaluateAmbientOcclusionInverse() * getBakedOcclusion();
@@ -485,37 +279,37 @@ return (diffuseComponent + specularComponent);
485
279
  vec3 posWorld = vpos + localOrigin;
486
280
 
487
281
  float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
488
- float shadow = ${$?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth))":(0,D.If)(Y,"lightingGlobalFactor * (1.0 - additionalAmbientScale)","0.0")};
282
+ float shadow = ${X?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth))":(0,L.If)(Y,"lightingGlobalFactor * (1.0 - additionalAmbientScale)","0.0")};
489
283
 
490
284
  vec3 matColor = max(ambient, diffuse);
491
- vec3 albedo = mixExternalColor(${(0,D.If)(Q,"vColor.rgb *")} matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
492
- float opacity_ = layerOpacity * mixExternalOpacity(${(0,D.If)(Q,"vColor.a * ")} opacity, texColor.a, vcolorExt.a, int(colorMixMode));
493
- ${re?`mat3 tangentSpace = computeTangentSpace(${ee?"normal":"normal, vpos, vuv0"});\n vec3 shadingNormal = computeTextureNormal(tangentSpace, ${ie?"normalUV":"vuv0"});`:"vec3 shadingNormal = normal;"}
285
+ vec3 albedo = mixExternalColor(${(0,L.If)(ee,"vColor.rgb *")} matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
286
+ float opacity_ = layerOpacity * mixExternalOpacity(${(0,L.If)(ee,"vColor.a * ")} opacity, texColor.a, vcolorExt.a, int(colorMixMode));
287
+ ${ie?`mat3 tangentSpace = computeTangentSpace(${te?"normal":"normal, vpos, vuv0"});\n vec3 shadingNormal = computeTextureNormal(tangentSpace, ${oe?"normalUV":"vuv0"});`:"vec3 shadingNormal = normal;"}
494
288
  vec3 normalGround = ${Y?"normalize(posWorld);":"vec3(0.0, 0.0, 1.0);"}
495
289
 
496
- ${(0,D.If)(X,D.H`
497
- float snow = smoothstep(0.5, 0.55, dot(normal, normalGround));
290
+ ${(0,L.If)(Z,L.H`
291
+ float snow = getSnow(normal, normalGround);
498
292
  albedo = mix(albedo, vec3(1), snow);
499
293
  shadingNormal = mix(shadingNormal, normal, snow);
500
294
  ssao = mix(ssao, 1.0, snow);`)}
501
295
 
502
296
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
503
297
 
504
- ${Z===A.A9.Normal||Z===A.A9.Schematic?D.H`
298
+ ${J===A.A9.Normal||J===A.A9.Schematic?L.H`
505
299
  float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
506
- vec4 emission = ${ne?"vec4(0.0)":"getEmissions(albedo)"};
507
- ${(0,D.If)(X,"mrr = mix(mrr, vec3(0.0, 1.0, 0.04), snow);\n emission = mix(emission, vec4(0.0), snow);")}
508
- vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:D.H`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
300
+ vec4 emission = ${ae?"vec4(0.0)":"getEmissions(albedo)"};
301
+ ${(0,L.If)(Z,"mrr = applySnowToMRR(mrr, snow);\n emission = snowCoverForEmissions(emission, snow);")}
302
+ vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:L.H`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
509
303
  vec4 finalColor = vec4(shadedColor, opacity_);
510
- outputColorHighlightOID(finalColor, vpos, albedo);
511
- `),t}const z=Object.freeze(Object.defineProperty({__proto__:null,build:U},Symbol.toStringTag,{value:"Module"}))},29920:(e,t,r)=>{r.d(t,{j:()=>s});var i=r(3694),o=r(38954),n=r(51850),a=r(620);class s{constructor(e,t,r){this.primitiveIndices=e,this._numIndexPerPrimitive=t,this.position=r,this._children=void 0,(0,a.vA)(e.length>=1),(0,a.vA)(3===r.size||4===r.size);const{data:i,size:s,indices:c}=r;(0,a.vA)(c.length%this._numIndexPerPrimitive==0),(0,a.vA)(c.length>=e.length*this._numIndexPerPrimitive);const d=e.length;let u=s*c[this._numIndexPerPrimitive*e[0]];l.clear(),l.push(u);const h=(0,n.fA)(i[u],i[u+1],i[u+2]),m=(0,n.o8)(h);for(let t=0;t<d;++t){const r=this._numIndexPerPrimitive*e[t];for(let e=0;e<this._numIndexPerPrimitive;++e){u=s*c[r+e],l.push(u);let t=i[u];h[0]=Math.min(t,h[0]),m[0]=Math.max(t,m[0]),t=i[u+1],h[1]=Math.min(t,h[1]),m[1]=Math.max(t,m[1]),t=i[u+2],h[2]=Math.min(t,h[2]),m[2]=Math.max(t,m[2])}}this.bbMin=h,this.bbMax=m;const p=(0,o.m)((0,n.vt)(),this.bbMin,this.bbMax,.5);this.radius=.5*Math.max(Math.max(m[0]-h[0],m[1]-h[1]),m[2]-h[2]);let f=this.radius*this.radius;for(let e=0;e<l.length;++e){u=l.at(e);const t=i[u]-p[0],r=i[u+1]-p[1],o=i[u+2]-p[2],n=t*t+r*r+o*o;if(n<=f)continue;const a=Math.sqrt(n),s=.5*(a-this.radius);this.radius=this.radius+s,f=this.radius*this.radius;const c=s/a;p[0]+=t*c,p[1]+=r*c,p[2]+=o*c}this.center=p,l.clear()}getChildren(){if(this._children||(0,o.s)(this.bbMin,this.bbMax)<=1)return this._children;const e=(0,o.m)((0,n.vt)(),this.bbMin,this.bbMax,.5),t=this.primitiveIndices.length,r=new Uint8Array(t),i=new Array(8);for(let e=0;e<8;++e)i[e]=0;const{data:a,size:l,indices:c}=this.position;for(let o=0;o<t;++o){let t=0;const n=this._numIndexPerPrimitive*this.primitiveIndices[o];let s=l*c[n],d=a[s],u=a[s+1],h=a[s+2];for(let e=1;e<this._numIndexPerPrimitive;++e){s=l*c[n+e];const t=a[s],r=a[s+1],i=a[s+2];t<d&&(d=t),r<u&&(u=r),i<h&&(h=i)}d<e[0]&&(t|=1),u<e[1]&&(t|=2),h<e[2]&&(t|=4),r[o]=t,++i[t]}let d=0;for(let e=0;e<8;++e)i[e]>0&&++d;if(d<2)return;const u=new Array(8);for(let e=0;e<8;++e)u[e]=i[e]>0?new Uint32Array(i[e]):void 0;for(let e=0;e<8;++e)i[e]=0;for(let e=0;e<t;++e){const t=r[e];u[t][i[t]++]=this.primitiveIndices[e]}this._children=new Array;for(let e=0;e<8;++e)void 0!==u[e]&&this._children.push(new s(u[e],this._numIndexPerPrimitive,this.position));return this._children}static prune(){l.prune()}}const l=new i.A({deallocator:null})},31006:(e,t,r)=>{r.d(t,{g:()=>U}),r(44208);var i=r(49186),o=r(65529),n=r(97768),a=r(74887),s=r(34275),l=r(84952),c=r(38969),d=r(99677),u=r(56058),h=r(89192),m=r(2741);let p;var f=r(92993),v=r(63907),g=r(21231),_=r(42293);let T=null,x=null;async function E(){return null==x&&(p??=(async()=>{const e=await r.e(9321).then(r.bind(r,49321)),t=await e.default({locateFile:e=>(0,m.s)(`esri/libs/basisu/${e}`)});return t.initializeBasis(),t})(),x=p,T=await x),x}function b(e,t,r,i,o){const n=(0,_.IB)(t?v.CQ.COMPRESSED_RGBA8_ETC2_EAC:v.CQ.COMPRESSED_RGB8_ETC2),a=o&&e>1?(4**e-1)/(3*4**(e-1)):1;return Math.ceil(r*i*n*a)}function A(e){return e.getNumImages()>=1&&!e.isUASTC()}function S(e){return e.getFaces()>=1&&e.isETC1S()}function M(e,t,r,i,o,n,a,s){const{compressedTextureETC:l,compressedTextureS3TC:c}=e.capabilities,[d,u]=l?i?[f.n.ETC2_RGBA,v.CQ.COMPRESSED_RGBA8_ETC2_EAC]:[f.n.ETC1_RGB,v.CQ.COMPRESSED_RGB8_ETC2]:c?i?[f.n.BC3_RGBA,v.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT]:[f.n.BC1_RGB,v.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT]:[f.n.RGBA32,v.Ab.RGBA],h=t.hasMipmap?r:Math.min(1,r),m=[];for(let e=0;e<h;e++)m.push(new Uint8Array(a(e,d))),s(e,d,m[e]);return t.internalFormat=u,t.hasMipmap=m.length>1,t.samplingMode=t.hasMipmap?v.Cj.LINEAR_MIPMAP_LINEAR:v.Cj.LINEAR,t.width=o,t.height=n,new g.g(e,t,{type:"compressed",levels:m})}var w,C=r(24326);class R{constructor(){this.id=(0,C.c)()}}!function(e){e[e.Layer=0]="Layer",e[e.Object=1]="Object",e[e.Texture=2]="Texture",e[e.COUNT=3]="COUNT"}(w||(w={}));var I=r(53966);const O=()=>I.A.getLogger("esri.views.3d.webgl-engine.lib.DDSUtil");function N(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}const y=N("DXT1"),P=N("DXT3"),D=N("DXT5");function L(e,t){return t=16*Math.floor(t/16),Math.min(16*Math.round(e/16),t)}function H(e,{maxPreferredTextureSize:t,maxTextureSize:r}){const i=Math.max(e.width,e.height),o=e.width*e.height,n=t*t;if(i<=r&&o<=n)return e;const a=Math.min(Math.sqrt(n/o),r/i);return F(e,L(Math.round(e.width*a),r),L(Math.round(e.height*a),r))}function F(e,t,r){if(e instanceof ImageData)return F(function(e){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const r=t.getContext("2d");if(null==r)throw new i.A("texture:context-failed","Failed to create 2d context from HTMLCanvasElement");return r.putImageData(e,0,0),t}(e),t,r);const o=document.createElement("canvas");return o.width=t,o.height=r,o.getContext("2d").drawImage(e,0,0,o.width,o.height),o}var B=r(620),G=r(67171);class U extends R{constructor(e,t){super(),this._data=e,this.type=w.Texture,this.events=new o.A,this._parameters={...V,...t},this._startPreload(e)}dispose(){this.unload(),this._data=this.update=void 0}_startPreload(e){e instanceof HTMLVideoElement?(this.update=t=>this._update(e,t),this._startPreloadVideoElement(e)):e instanceof HTMLImageElement&&this._startPreloadImageElement(e)}_startPreloadVideoElement(e){if(!((0,l.w8)(e.src)||"auto"===e.preload&&e.crossOrigin)){e.preload="auto",e.crossOrigin="anonymous";const t=e.paused;if(e.src=e.src,t&&e.autoplay){const t=[];(0,c.i)(e,(e=>t.push(e))).then((()=>{e.play()})).finally((()=>t.forEach((e=>e.remove()))))}}}_startPreloadImageElement(e){(0,l.DB)(e.src)||(0,l.w8)(e.src)||e.crossOrigin||(e.crossOrigin="anonymous",e.src=e.src)}_createDescriptor(e){const t=new G.R;return t.wrapMode=this._parameters.wrap??v.pF.REPEAT,t.flipped=!this._parameters.noUnpackFlip,t.samplingMode=this._parameters.mipmap?v.Cj.LINEAR_MIPMAP_LINEAR:v.Cj.LINEAR,t.hasMipmap=!!this._parameters.mipmap,t.preMultiplyAlpha=!!this._parameters.preMultiplyAlpha,t.maxAnisotropy=this._parameters.maxAnisotropy??(this._parameters.mipmap?e.parameters.maxMaxAnisotropy:1),t}get glTexture(){return this._glTexture??this._emptyTexture}get loaded(){return null!=this._glTexture}get usedMemory(){return this._glTexture?.usedMemory||function(e,t){if(null==e)return 0;if((0,s.mw)(e)||(0,s.mg)(e))return t.encoding===h.JS.KTX2_ENCODING?function(e,t){if(null==T)return e.byteLength;const r=new T.KTX2File(new Uint8Array(e)),i=S(r)?b(r.getLevels(),r.getHasAlpha(),r.getWidth(),r.getHeight(),t):0;return r.close(),r.delete(),i}(e,!!t.mipmap):t.encoding===h.JS.BASIS_ENCODING?function(e,t){if(null==T)return e.byteLength;const r=new T.BasisFile(new Uint8Array(e)),i=A(r)?b(r.getNumLevels(0),r.getHasAlpha(),r.getImageWidth(0,0),r.getImageHeight(0,0),t):0;return r.close(),r.delete(),i}(e,!!t.mipmap):e.byteLength;const{width:r,height:i}=e instanceof Image||e instanceof ImageData||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement?z(e):t;return(t.mipmap?4/3:1)*r*i*(t.components||4)||0}(this._data,this._parameters)}load(e){if(this._loadingPromise)return this._loadingPromise;if(this._glTexture)return this._glTexture;const t=this._data;return null==t?(this._glTexture=new g.g(e,this._createDescriptor(e),null),this._glTexture):(this._emptyTexture=e.emptyTexture,this._parameters.reloadable||(this._data=void 0),"string"==typeof t?this._loadFromURL(e,t):t instanceof Image?this._loadFromImageElement(e,t):t instanceof HTMLVideoElement?this._loadFromVideoElement(e,t):t instanceof ImageData||t instanceof HTMLCanvasElement?this._loadFromImage(e,t):(0,s.mg)(t)&&this._parameters.encoding===h.JS.DDS_ENCODING?this._loadFromDDSData(e,t):(0,s.mw)(t)&&this._parameters.encoding===h.JS.DDS_ENCODING?this._loadFromDDSData(e,new Uint8Array(t)):((0,s.mw)(t)||(0,s.mg)(t))&&this._parameters.encoding===h.JS.KTX2_ENCODING?this._loadFromKTX2(e,t):((0,s.mw)(t)||(0,s.mg)(t))&&this._parameters.encoding===h.JS.BASIS_ENCODING?this._loadFromBasis(e,t):(0,s.mg)(t)?this._loadFromPixelData(e,t):(0,s.mw)(t)?this._loadFromPixelData(e,new Uint8Array(t)):null)}_update(e,t){return null==this._glTexture||e.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||t===e.currentTime?t:(this._glTexture.setData(e),this._glTexture.descriptor.hasMipmap&&this._glTexture.generateMipmap(),this._parameters.updateCallback&&this._parameters.updateCallback(),e.currentTime)}_loadFromDDSData(e,t){return this._glTexture=function(e,t,r){const i=function(e,t){const r=new Int32Array(e.buffer,e.byteOffset,31);if(542327876!==r[0])return O().error("Invalid magic number in DDS header"),null;if(!(4&r[20]))return O().error("Unsupported format, must contain a FourCC code"),null;const i=r[21];let o,n;switch(i){case y:o=8,n=v.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT;break;case P:o=16,n=v.CQ.COMPRESSED_RGBA_S3TC_DXT3_EXT;break;case D:o=16,n=v.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT;break;default:return O().error("Unsupported FourCC code:",function(e){return String.fromCharCode(255&e,e>>8&255,e>>16&255,e>>24&255)}(i)),null}let a=1,s=r[4],l=r[3];(3&s||3&l)&&(O().warn("Rounding up compressed texture size to nearest multiple of 4."),s=s+3&-4,l=l+3&-4);const c=s,d=l;let u,h;131072&r[2]&&!1!==t&&(a=Math.max(1,r[7]));let m=e.byteOffset+r[1]+4;const p=[];for(let t=0;t<a;++t)h=(s+3>>2)*(l+3>>2)*o,u=new Uint8Array(e.buffer,m,h),p.push(u),m+=h,s=Math.max(1,s>>1),l=Math.max(1,l>>1);return{textureData:{type:"compressed",levels:p},internalFormat:n,width:c,height:d}}(r,t.hasMipmap??!1);if(null==i)throw new Error("DDS texture data is null");const{textureData:o,internalFormat:n,width:a,height:s}=i;return t.samplingMode=o.levels.length>1?v.Cj.LINEAR_MIPMAP_LINEAR:v.Cj.LINEAR,t.hasMipmap=o.levels.length>1,t.internalFormat=n,t.width=a,t.height=s,new g.g(e,t,o)}(e,this._createDescriptor(e),t),this._emptyTexture=null,this._glTexture}_loadFromKTX2(e,t){return this._loadAsync((()=>async function(e,t,r){null==T&&(T=await E());const i=new T.KTX2File(new Uint8Array(r));if(!S(i))return null;i.startTranscoding();const o=M(e,t,i.getLevels(),i.getHasAlpha(),i.getWidth(),i.getHeight(),((e,t)=>i.getImageTranscodedSizeInBytes(e,0,0,t)),((e,t,r)=>i.transcodeImage(r,e,0,0,t,0,-1,-1)));return i.close(),i.delete(),o}(e,this._createDescriptor(e),t).then((e=>(this._glTexture=e,e)))))}_loadFromBasis(e,t){return this._loadAsync((()=>async function(e,t,r){null==T&&(T=await E());const i=new T.BasisFile(new Uint8Array(r));if(!A(i))return null;i.startTranscoding();const o=M(e,t,i.getNumLevels(0),i.getHasAlpha(),i.getImageWidth(0,0),i.getImageHeight(0,0),((e,t)=>i.getImageTranscodedSizeInBytes(0,e,t)),((e,t,r)=>i.transcodeImage(r,0,e,t,0,0)));return i.close(),i.delete(),o}(e,this._createDescriptor(e),t).then((e=>(this._glTexture=e,e)))))}_loadFromPixelData(e,t){(0,B.vA)(this._parameters.width>0&&this._parameters.height>0);const r=this._createDescriptor(e);return r.pixelFormat=1===this._parameters.components?v.Ab.LUMINANCE:3===this._parameters.components?v.Ab.RGB:v.Ab.RGBA,r.width=this._parameters.width??0,r.height=this._parameters.height??0,this._glTexture=new g.g(e,r,t),this._glTexture}_loadFromURL(e,t){return this._loadAsync((async r=>{const i=await(0,d.D)(t,{signal:r});return(0,a.Te)(r),this._loadFromImage(e,i)}))}_loadFromImageElement(e,t){return t.complete?this._loadFromImage(e,t):this._loadAsync((async r=>{const i=await(0,u.Sx)(t,t.src,!1,r);return(0,a.Te)(r),this._loadFromImage(e,i)}))}_loadFromVideoElement(e,t){return t.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA?this._loadFromImage(e,t):this._loadFromVideoElementAsync(e,t)}_loadFromVideoElementAsync(e,t){return this._loadAsync((r=>new Promise(((o,s)=>{const l=()=>{t.removeEventListener("loadeddata",c),t.removeEventListener("error",d),(0,n.xt)(u)},c=()=>{t.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&(l(),o(this._loadFromImage(e,t)))},d=e=>{l(),s(e||new i.A("texture:load-error","Failed to load video"))};t.addEventListener("loadeddata",c),t.addEventListener("error",d);const u=(0,a.u7)(r,(()=>d((0,a.NK)())))}))))}_loadFromImage(e,t){let r=t;r instanceof HTMLVideoElement||(r=H(r,e.parameters));const i=z(r);this._parameters.width=i.width,this._parameters.height=i.height;const o=this._createDescriptor(e);return o.pixelFormat=3===this._parameters.components?v.Ab.RGB:v.Ab.RGBA,o.width=i.width,o.height=i.height,o.compressionHandle=this._parameters.compressionHandle,o.compressionCallback=this._parameters.compressionCallback,this._glTexture=new g.g(e,o,r),this._emptyTexture=null,this.events.emit("loaded"),this._glTexture}_loadAsync(e){const t=new AbortController;this._loadingController=t;const r=e(t.signal);this._loadingPromise=r;const i=()=>{this._loadingController===t&&(this._loadingController=null),this._loadingPromise===r&&(this._loadingPromise=null),this._emptyTexture=null};return r.then(i,i),r}unload(){if(this._glTexture=(0,n.WD)(this._glTexture),this._emptyTexture=null,null!=this._loadingController){const e=this._loadingController;this._loadingController=null,this._loadingPromise=null,e.abort()}this.events.emit("unloaded")}get parameters(){return this._parameters}}function z(e){return e instanceof HTMLVideoElement?{width:e.videoWidth,height:e.videoHeight}:e}const V={wrap:{s:v.pF.REPEAT,t:v.pF.REPEAT},mipmap:!0,noUnpackFlip:!1,preMultiplyAlpha:!1}},32680:(e,t,r)=>{r.d(t,{M:()=>o});var i=r(31821);function o(e){e.vertex.code.add(i.H`vec4 offsetBackfacingClipPosition(vec4 posClip, vec3 posWorld, vec3 normalWorld, vec3 camPosWorld) {
304
+ outputColorHighlightOID(finalColor, vpos, albedo ${(0,L.If)(Z,", snow")});
305
+ `),t}const V=Object.freeze(Object.defineProperty({__proto__:null,build:z},Symbol.toStringTag,{value:"Module"}))},29920:(e,t,r)=>{r.d(t,{j:()=>s});var i=r(3694),o=r(38954),n=r(51850),a=r(620);class s{constructor(e,t,r){this.primitiveIndices=e,this._numIndexPerPrimitive=t,this.position=r,this._children=void 0,(0,a.vA)(e.length>=1),(0,a.vA)(3===r.size||4===r.size);const{data:i,size:s,indices:l}=r;(0,a.vA)(l.length%this._numIndexPerPrimitive==0),(0,a.vA)(l.length>=e.length*this._numIndexPerPrimitive);const d=e.length;let u=s*l[this._numIndexPerPrimitive*e[0]];c.clear(),c.push(u);const h=(0,n.fA)(i[u],i[u+1],i[u+2]),m=(0,n.o8)(h);for(let t=0;t<d;++t){const r=this._numIndexPerPrimitive*e[t];for(let e=0;e<this._numIndexPerPrimitive;++e){u=s*l[r+e],c.push(u);let t=i[u];h[0]=Math.min(t,h[0]),m[0]=Math.max(t,m[0]),t=i[u+1],h[1]=Math.min(t,h[1]),m[1]=Math.max(t,m[1]),t=i[u+2],h[2]=Math.min(t,h[2]),m[2]=Math.max(t,m[2])}}this.bbMin=h,this.bbMax=m;const p=(0,o.m)((0,n.vt)(),this.bbMin,this.bbMax,.5);this.radius=.5*Math.max(Math.max(m[0]-h[0],m[1]-h[1]),m[2]-h[2]);let f=this.radius*this.radius;for(let e=0;e<c.length;++e){u=c.at(e);const t=i[u]-p[0],r=i[u+1]-p[1],o=i[u+2]-p[2],n=t*t+r*r+o*o;if(n<=f)continue;const a=Math.sqrt(n),s=.5*(a-this.radius);this.radius=this.radius+s,f=this.radius*this.radius;const l=s/a;p[0]+=t*l,p[1]+=r*l,p[2]+=o*l}this.center=p,c.clear()}getChildren(){if(this._children||(0,o.s)(this.bbMin,this.bbMax)<=1)return this._children;const e=(0,o.m)((0,n.vt)(),this.bbMin,this.bbMax,.5),t=this.primitiveIndices.length,r=new Uint8Array(t),i=new Array(8);for(let e=0;e<8;++e)i[e]=0;const{data:a,size:c,indices:l}=this.position;for(let o=0;o<t;++o){let t=0;const n=this._numIndexPerPrimitive*this.primitiveIndices[o];let s=c*l[n],d=a[s],u=a[s+1],h=a[s+2];for(let e=1;e<this._numIndexPerPrimitive;++e){s=c*l[n+e];const t=a[s],r=a[s+1],i=a[s+2];t<d&&(d=t),r<u&&(u=r),i<h&&(h=i)}d<e[0]&&(t|=1),u<e[1]&&(t|=2),h<e[2]&&(t|=4),r[o]=t,++i[t]}let d=0;for(let e=0;e<8;++e)i[e]>0&&++d;if(d<2)return;const u=new Array(8);for(let e=0;e<8;++e)u[e]=i[e]>0?new Uint32Array(i[e]):void 0;for(let e=0;e<8;++e)i[e]=0;for(let e=0;e<t;++e){const t=r[e];u[t][i[t]++]=this.primitiveIndices[e]}this._children=new Array;for(let e=0;e<8;++e)void 0!==u[e]&&this._children.push(new s(u[e],this._numIndexPerPrimitive,this.position));return this._children}static prune(){c.prune()}}const c=new i.A({deallocator:null})},31006:(e,t,r)=>{r.d(t,{g:()=>G}),r(44208);var i=r(49186),o=r(65529),n=r(97768),a=r(74887),s=r(34275),c=r(84952),l=r(38969),d=r(99677),u=r(56058),h=r(89192),m=r(2741);let p;var f=r(92993),v=r(63907),g=r(21231),_=r(42293);let T=null,x=null;async function E(){return null==x&&(p??=(async()=>{const e=await r.e(9321).then(r.bind(r,49321)),t=await e.default({locateFile:e=>(0,m.s)(`esri/libs/basisu/${e}`)});return t.initializeBasis(),t})(),x=p,T=await x),x}function b(e,t,r,i,o){const n=(0,_.IB)(t?v.CQ.COMPRESSED_RGBA8_ETC2_EAC:v.CQ.COMPRESSED_RGB8_ETC2),a=o&&e>1?(4**e-1)/(3*4**(e-1)):1;return Math.ceil(r*i*n*a)}function A(e){return e.getNumImages()>=1&&!e.isUASTC()}function S(e){return e.getFaces()>=1&&e.isETC1S()}function M(e,t,r,i,o,n,a,s){const{compressedTextureETC:c,compressedTextureS3TC:l}=e.capabilities,[d,u]=c?i?[f.n.ETC2_RGBA,v.CQ.COMPRESSED_RGBA8_ETC2_EAC]:[f.n.ETC1_RGB,v.CQ.COMPRESSED_RGB8_ETC2]:l?i?[f.n.BC3_RGBA,v.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT]:[f.n.BC1_RGB,v.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT]:[f.n.RGBA32,v.Ab.RGBA],h=t.hasMipmap?r:Math.min(1,r),m=[];for(let e=0;e<h;e++)m.push(new Uint8Array(a(e,d))),s(e,d,m[e]);return t.internalFormat=u,t.hasMipmap=m.length>1,t.samplingMode=t.hasMipmap?v.Cj.LINEAR_MIPMAP_LINEAR:v.Cj.LINEAR,t.width=o,t.height=n,new g.g(e,t,{type:"compressed",levels:m})}var w,C=r(24326);class R{constructor(){this.id=(0,C.c)()}}!function(e){e[e.Layer=0]="Layer",e[e.Object=1]="Object",e[e.Texture=2]="Texture",e[e.COUNT=3]="COUNT"}(w||(w={}));var I=r(53966);const O=()=>I.A.getLogger("esri.views.3d.webgl-engine.lib.DDSUtil");function N(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}const y=N("DXT1"),P=N("DXT3"),L=N("DXT5");function D(e,t){return t=16*Math.floor(t/16),Math.min(16*Math.round(e/16),t)}function H(e,{maxPreferredTextureSize:t,maxTextureSize:r}){const i=Math.max(e.width,e.height),o=e.width*e.height,n=t*t;if(i<=r&&o<=n)return e;const a=Math.min(Math.sqrt(n/o),r/i);return F(e,D(Math.round(e.width*a),r),D(Math.round(e.height*a),r))}function F(e,t,r){if(e instanceof ImageData)return F(function(e){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const r=t.getContext("2d");if(null==r)throw new i.A("texture:context-failed","Failed to create 2d context from HTMLCanvasElement");return r.putImageData(e,0,0),t}(e),t,r);const o=document.createElement("canvas");return o.width=t,o.height=r,o.getContext("2d").drawImage(e,0,0,o.width,o.height),o}var B=r(620),U=r(67171);class G extends R{constructor(e,t){super(),this._data=e,this.type=w.Texture,this.events=new o.A,this._parameters={...V,...t},this._startPreload(e)}dispose(){this.unload(),this._data=this.update=void 0}_startPreload(e){e instanceof HTMLVideoElement?(this.update=t=>this._update(e,t),this._startPreloadVideoElement(e)):e instanceof HTMLImageElement&&this._startPreloadImageElement(e)}_startPreloadVideoElement(e){if(!((0,c.w8)(e.src)||"auto"===e.preload&&e.crossOrigin)){e.preload="auto",e.crossOrigin="anonymous";const t=e.paused;if(e.src=e.src,t&&e.autoplay){const t=[];(0,l.i)(e,(e=>t.push(e))).then((()=>{e.play()})).finally((()=>t.forEach((e=>e.remove()))))}}}_startPreloadImageElement(e){(0,c.DB)(e.src)||(0,c.w8)(e.src)||e.crossOrigin||(e.crossOrigin="anonymous",e.src=e.src)}_createDescriptor(e){const t=new U.R;return t.wrapMode=this._parameters.wrap??v.pF.REPEAT,t.flipped=!this._parameters.noUnpackFlip,t.samplingMode=this._parameters.mipmap?v.Cj.LINEAR_MIPMAP_LINEAR:v.Cj.LINEAR,t.hasMipmap=!!this._parameters.mipmap,t.preMultiplyAlpha=!!this._parameters.preMultiplyAlpha,t.maxAnisotropy=this._parameters.maxAnisotropy??(this._parameters.mipmap?e.parameters.maxMaxAnisotropy:1),t}get glTexture(){return this._glTexture??this._emptyTexture}get loaded(){return null!=this._glTexture}get usedMemory(){return this._glTexture?.usedMemory||function(e,t){if(null==e)return 0;if((0,s.mw)(e)||(0,s.mg)(e))return t.encoding===h.JS.KTX2_ENCODING?function(e,t){if(null==T)return e.byteLength;const r=new T.KTX2File(new Uint8Array(e)),i=S(r)?b(r.getLevels(),r.getHasAlpha(),r.getWidth(),r.getHeight(),t):0;return r.close(),r.delete(),i}(e,!!t.mipmap):t.encoding===h.JS.BASIS_ENCODING?function(e,t){if(null==T)return e.byteLength;const r=new T.BasisFile(new Uint8Array(e)),i=A(r)?b(r.getNumLevels(0),r.getHasAlpha(),r.getImageWidth(0,0),r.getImageHeight(0,0),t):0;return r.close(),r.delete(),i}(e,!!t.mipmap):e.byteLength;const{width:r,height:i}=e instanceof Image||e instanceof ImageData||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement?z(e):t;return(t.mipmap?4/3:1)*r*i*(t.components||4)||0}(this._data,this._parameters)}load(e){if(this._loadingPromise)return this._loadingPromise;if(this._glTexture)return this._glTexture;const t=this._data;return null==t?(this._glTexture=new g.g(e,this._createDescriptor(e),null),this._glTexture):(this._emptyTexture=e.emptyTexture,this._parameters.reloadable||(this._data=void 0),"string"==typeof t?this._loadFromURL(e,t):t instanceof Image?this._loadFromImageElement(e,t):t instanceof HTMLVideoElement?this._loadFromVideoElement(e,t):t instanceof ImageData||t instanceof HTMLCanvasElement?this._loadFromImage(e,t):(0,s.mg)(t)&&this._parameters.encoding===h.JS.DDS_ENCODING?this._loadFromDDSData(e,t):(0,s.mw)(t)&&this._parameters.encoding===h.JS.DDS_ENCODING?this._loadFromDDSData(e,new Uint8Array(t)):((0,s.mw)(t)||(0,s.mg)(t))&&this._parameters.encoding===h.JS.KTX2_ENCODING?this._loadFromKTX2(e,t):((0,s.mw)(t)||(0,s.mg)(t))&&this._parameters.encoding===h.JS.BASIS_ENCODING?this._loadFromBasis(e,t):(0,s.mg)(t)?this._loadFromPixelData(e,t):(0,s.mw)(t)?this._loadFromPixelData(e,new Uint8Array(t)):null)}_update(e,t){return null==this._glTexture||e.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||t===e.currentTime?t:(this._glTexture.setData(e),this._glTexture.descriptor.hasMipmap&&this._glTexture.generateMipmap(),this._parameters.updateCallback&&this._parameters.updateCallback(),e.currentTime)}_loadFromDDSData(e,t){return this._glTexture=function(e,t,r){const i=function(e,t){const r=new Int32Array(e.buffer,e.byteOffset,31);if(542327876!==r[0])return O().error("Invalid magic number in DDS header"),null;if(!(4&r[20]))return O().error("Unsupported format, must contain a FourCC code"),null;const i=r[21];let o,n;switch(i){case y:o=8,n=v.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT;break;case P:o=16,n=v.CQ.COMPRESSED_RGBA_S3TC_DXT3_EXT;break;case L:o=16,n=v.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT;break;default:return O().error("Unsupported FourCC code:",function(e){return String.fromCharCode(255&e,e>>8&255,e>>16&255,e>>24&255)}(i)),null}let a=1,s=r[4],c=r[3];(3&s||3&c)&&(O().warn("Rounding up compressed texture size to nearest multiple of 4."),s=s+3&-4,c=c+3&-4);const l=s,d=c;let u,h;131072&r[2]&&!1!==t&&(a=Math.max(1,r[7]));let m=e.byteOffset+r[1]+4;const p=[];for(let t=0;t<a;++t)h=(s+3>>2)*(c+3>>2)*o,u=new Uint8Array(e.buffer,m,h),p.push(u),m+=h,s=Math.max(1,s>>1),c=Math.max(1,c>>1);return{textureData:{type:"compressed",levels:p},internalFormat:n,width:l,height:d}}(r,t.hasMipmap??!1);if(null==i)throw new Error("DDS texture data is null");const{textureData:o,internalFormat:n,width:a,height:s}=i;return t.samplingMode=o.levels.length>1?v.Cj.LINEAR_MIPMAP_LINEAR:v.Cj.LINEAR,t.hasMipmap=o.levels.length>1,t.internalFormat=n,t.width=a,t.height=s,new g.g(e,t,o)}(e,this._createDescriptor(e),t),this._emptyTexture=null,this._glTexture}_loadFromKTX2(e,t){return this._loadAsync((()=>async function(e,t,r){null==T&&(T=await E());const i=new T.KTX2File(new Uint8Array(r));if(!S(i))return null;i.startTranscoding();const o=M(e,t,i.getLevels(),i.getHasAlpha(),i.getWidth(),i.getHeight(),((e,t)=>i.getImageTranscodedSizeInBytes(e,0,0,t)),((e,t,r)=>i.transcodeImage(r,e,0,0,t,0,-1,-1)));return i.close(),i.delete(),o}(e,this._createDescriptor(e),t).then((e=>(this._glTexture=e,e)))))}_loadFromBasis(e,t){return this._loadAsync((()=>async function(e,t,r){null==T&&(T=await E());const i=new T.BasisFile(new Uint8Array(r));if(!A(i))return null;i.startTranscoding();const o=M(e,t,i.getNumLevels(0),i.getHasAlpha(),i.getImageWidth(0,0),i.getImageHeight(0,0),((e,t)=>i.getImageTranscodedSizeInBytes(0,e,t)),((e,t,r)=>i.transcodeImage(r,0,e,t,0,0)));return i.close(),i.delete(),o}(e,this._createDescriptor(e),t).then((e=>(this._glTexture=e,e)))))}_loadFromPixelData(e,t){(0,B.vA)(this._parameters.width>0&&this._parameters.height>0);const r=this._createDescriptor(e);return r.pixelFormat=1===this._parameters.components?v.Ab.LUMINANCE:3===this._parameters.components?v.Ab.RGB:v.Ab.RGBA,r.width=this._parameters.width??0,r.height=this._parameters.height??0,this._glTexture=new g.g(e,r,t),this._glTexture}_loadFromURL(e,t){return this._loadAsync((async r=>{const i=await(0,d.D)(t,{signal:r});return(0,a.Te)(r),this._loadFromImage(e,i)}))}_loadFromImageElement(e,t){return t.complete?this._loadFromImage(e,t):this._loadAsync((async r=>{const i=await(0,u.Sx)(t,t.src,!1,r);return(0,a.Te)(r),this._loadFromImage(e,i)}))}_loadFromVideoElement(e,t){return t.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA?this._loadFromImage(e,t):this._loadFromVideoElementAsync(e,t)}_loadFromVideoElementAsync(e,t){return this._loadAsync((r=>new Promise(((o,s)=>{const c=()=>{t.removeEventListener("loadeddata",l),t.removeEventListener("error",d),(0,n.xt)(u)},l=()=>{t.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&(c(),o(this._loadFromImage(e,t)))},d=e=>{c(),s(e||new i.A("texture:load-error","Failed to load video"))};t.addEventListener("loadeddata",l),t.addEventListener("error",d);const u=(0,a.u7)(r,(()=>d((0,a.NK)())))}))))}_loadFromImage(e,t){let r=t;r instanceof HTMLVideoElement||(r=H(r,e.parameters));const i=z(r);this._parameters.width=i.width,this._parameters.height=i.height;const o=this._createDescriptor(e);return o.pixelFormat=3===this._parameters.components?v.Ab.RGB:v.Ab.RGBA,o.width=i.width,o.height=i.height,o.compressionHandle=this._parameters.compressionHandle,o.compressionCallback=this._parameters.compressionCallback,this._glTexture=new g.g(e,o,r),this._emptyTexture=null,this.events.emit("loaded"),this._glTexture}_loadAsync(e){const t=new AbortController;this._loadingController=t;const r=e(t.signal);this._loadingPromise=r;const i=()=>{this._loadingController===t&&(this._loadingController=null),this._loadingPromise===r&&(this._loadingPromise=null),this._emptyTexture=null};return r.then(i,i),r}unload(){if(this._glTexture=(0,n.WD)(this._glTexture),this._emptyTexture=null,null!=this._loadingController){const e=this._loadingController;this._loadingController=null,this._loadingPromise=null,e.abort()}this.events.emit("unloaded")}get parameters(){return this._parameters}}function z(e){return e instanceof HTMLVideoElement?{width:e.videoWidth,height:e.videoHeight}:e}const V={wrap:{s:v.pF.REPEAT,t:v.pF.REPEAT},mipmap:!0,noUnpackFlip:!1,preMultiplyAlpha:!1}},32680:(e,t,r)=>{r.d(t,{M:()=>o});var i=r(31821);function o(e){e.vertex.code.add(i.H`vec4 offsetBackfacingClipPosition(vec4 posClip, vec3 posWorld, vec3 normalWorld, vec3 camPosWorld) {
512
306
  vec3 camToVert = posWorld - camPosWorld;
513
307
  bool isBackface = dot(camToVert, normalWorld) > 0.0;
514
308
  if (isBackface) {
515
309
  posClip.z += 0.0000003 * posClip.w;
516
310
  }
517
311
  return posClip;
518
- }`)}},32976:(e,t,r)=>{r.d(t,{o:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"bool",i.c.Bind,((r,i)=>r.setUniform1b(e,t(i))))}}},33524:(e,t,r)=>{r.d(t,{K_:()=>p,Yf:()=>c,aB:()=>m,ez:()=>l,m6:()=>f,xt:()=>u,z5:()=>d});var i=r(49255),o=r(59643),n=r(63907),a=r(90644);const s=(0,a.p3)(n.dn.ONE,n.dn.ZERO,n.dn.ONE,n.dn.ONE_MINUS_SRC_ALPHA);function l(e){return e===o.Y.FrontFace?null:s}function c(e){switch(e){case o.Y.NONE:return a.T8;case o.Y.ColorAlpha:return s;case o.Y.FrontFace:case o.Y.COUNT:return null}}function d(e){if(e.draped)return null;switch(e.oitPass){case o.Y.NONE:case o.Y.FrontFace:return e.writeDepth?a.Uy:null;case o.Y.ColorAlpha:case o.Y.COUNT:return null}}const u=5e5,h={factor:-1,units:-2};function m(e){return e?h:null}function p(e,t=n.MT.LESS){return e===o.Y.NONE||e===o.Y.FrontFace?t:n.MT.LEQUAL}function f(e,t){const r=(0,i.LG)(t);return e===o.Y.ColorAlpha?r?{buffers:[n.r6,n.yI,n.Fq]}:{buffers:[n.r6,n.yI]}:r?{buffers:[n.r6,n.yI]}:null}},33752:(e,t,r)=>{r.d(t,{EM:()=>g,dO:()=>v,em:()=>f});var i=r(29242),o=r(9093),n=r(51850),a=r(26425),s=r(40710),l=r(33079),c=r(31821),d=r(98353),u=r(35644),h=r(40095),m=r(46540),p=r(65786);function f(e,t){const{attributes:r,vertex:i,varyings:o,fragment:n}=e;i.include(a.u,t),r.add(m.r.POSITION,"vec3"),o.add("vPositionWorldCameraRelative","vec3"),o.add("vPosition_view","vec3",{invariant:!0}),i.uniforms.add(new l.t("transformWorldFromViewTH",(e=>e.transformWorldFromViewTH)),new l.t("transformWorldFromViewTL",(e=>e.transformWorldFromViewTL)),new u.k("transformViewFromCameraRelativeRS",(e=>e.transformViewFromCameraRelativeRS)),new h.X("transformProjFromView",(e=>e.transformProjFromView)),new d.h("transformWorldFromModelRS",(e=>e.transformWorldFromModelRS)),new s.W("transformWorldFromModelTH",(e=>e.transformWorldFromModelTH)),new s.W("transformWorldFromModelTL",(e=>e.transformWorldFromModelTL))),i.code.add(c.H`vec3 positionWorldCameraRelative() {
312
+ }`)}},32976:(e,t,r)=>{r.d(t,{o:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"bool",i.c.Bind,((r,i)=>r.setUniform1b(e,t(i))))}}},33524:(e,t,r)=>{r.d(t,{K_:()=>p,Yf:()=>l,aB:()=>m,ez:()=>c,m6:()=>f,xt:()=>u,z5:()=>d});var i=r(49255),o=r(59643),n=r(63907),a=r(90644);const s=(0,a.p3)(n.dn.ONE,n.dn.ZERO,n.dn.ONE,n.dn.ONE_MINUS_SRC_ALPHA);function c(e){return e===o.Y.FrontFace?null:s}function l(e){switch(e){case o.Y.NONE:return a.T8;case o.Y.ColorAlpha:return s;case o.Y.FrontFace:case o.Y.COUNT:return null}}function d(e){if(e.draped)return null;switch(e.oitPass){case o.Y.NONE:case o.Y.FrontFace:return e.writeDepth?a.Uy:null;case o.Y.ColorAlpha:case o.Y.COUNT:return null}}const u=5e5,h={factor:-1,units:-2};function m(e){return e?h:null}function p(e,t=n.MT.LESS){return e===o.Y.NONE||e===o.Y.FrontFace?t:n.MT.LEQUAL}function f(e,t){const r=(0,i.LG)(t);return e===o.Y.ColorAlpha?r?{buffers:[n.r6,n.yI,n.Fq]}:{buffers:[n.r6,n.yI]}:r?{buffers:[n.r6,n.yI]}:null}},33752:(e,t,r)=>{r.d(t,{EM:()=>g,dO:()=>v,em:()=>f});var i=r(29242),o=r(9093),n=r(51850),a=r(26425),s=r(40710),c=r(33079),l=r(31821),d=r(98353),u=r(35644),h=r(40095),m=r(46540),p=r(65786);function f(e,t){const{attributes:r,vertex:i,varyings:o,fragment:n}=e;i.include(a.u,t),r.add(m.r.POSITION,"vec3"),o.add("vPositionWorldCameraRelative","vec3"),o.add("vPosition_view","vec3",{invariant:!0}),i.uniforms.add(new c.t("transformWorldFromViewTH",(e=>e.transformWorldFromViewTH)),new c.t("transformWorldFromViewTL",(e=>e.transformWorldFromViewTL)),new u.k("transformViewFromCameraRelativeRS",(e=>e.transformViewFromCameraRelativeRS)),new h.X("transformProjFromView",(e=>e.transformProjFromView)),new d.h("transformWorldFromModelRS",(e=>e.transformWorldFromModelRS)),new s.W("transformWorldFromModelTH",(e=>e.transformWorldFromModelTH)),new s.W("transformWorldFromModelTL",(e=>e.transformWorldFromModelTL))),i.code.add(l.H`vec3 positionWorldCameraRelative() {
519
313
  vec3 rotatedModelPosition = transformWorldFromModelRS * position;
520
314
  vec3 transform_CameraRelativeFromModel = dpAdd(
521
315
  transformWorldFromModelTL,
@@ -524,29 +318,29 @@ transformWorldFromModelTH,
524
318
  -transformWorldFromViewTH
525
319
  );
526
320
  return transform_CameraRelativeFromModel + rotatedModelPosition;
527
- }`),i.code.add(c.H`
321
+ }`),i.code.add(l.H`
528
322
  void forwardPosition(float fOffset) {
529
323
  vPositionWorldCameraRelative = positionWorldCameraRelative();
530
324
  if (fOffset != 0.0) {
531
- vPositionWorldCameraRelative += fOffset * ${t.spherical?c.H`normalize(transformWorldFromViewTL + vPositionWorldCameraRelative)`:c.H`vec3(0.0, 0.0, 1.0)`};
325
+ vPositionWorldCameraRelative += fOffset * ${t.spherical?l.H`normalize(transformWorldFromViewTL + vPositionWorldCameraRelative)`:l.H`vec3(0.0, 0.0, 1.0)`};
532
326
  }
533
327
 
534
328
  vPosition_view = transformViewFromCameraRelativeRS * vPositionWorldCameraRelative;
535
329
  gl_Position = transformProjFromView * vec4(vPosition_view, 1.0);
536
330
  }
537
- `),n.uniforms.add(new l.t("transformWorldFromViewTL",(e=>e.transformWorldFromViewTL))),i.code.add(c.H`vec3 positionWorld() {
331
+ `),n.uniforms.add(new c.t("transformWorldFromViewTL",(e=>e.transformWorldFromViewTL))),i.code.add(l.H`vec3 positionWorld() {
538
332
  return transformWorldFromViewTL + vPositionWorldCameraRelative;
539
- }`),n.code.add(c.H`vec3 positionWorld() {
333
+ }`),n.code.add(l.H`vec3 positionWorld() {
540
334
  return transformWorldFromViewTL + vPositionWorldCameraRelative;
541
- }`)}class v extends p.Y{constructor(){super(...arguments),this.transformWorldFromViewTH=(0,n.vt)(),this.transformWorldFromViewTL=(0,n.vt)(),this.transformViewFromCameraRelativeRS=(0,i.vt)(),this.transformProjFromView=(0,o.vt)()}}class g extends p.Y{constructor(){super(...arguments),this.transformWorldFromModelRS=(0,i.vt)(),this.transformWorldFromModelTH=(0,n.vt)(),this.transformWorldFromModelTL=(0,n.vt)()}}},34845:(e,t,r)=>{r.d(t,{Ir:()=>d});var i=r(37585),o=r(48163),n=r(87317),a=r(91829),s=r(77108),l=r(14314),c=r(31821);function d(e){e.fragment.uniforms.add(new l.I("projInfo",(e=>function(e){const t=e.projectionMatrix;return 0===t[11]?(0,n.s)(u,2/(e.fullWidth*t[0]),2/(e.fullHeight*t[5]),(1+t[12])/t[0],(1+t[13])/t[5]):(0,n.s)(u,-2/(e.fullWidth*t[0]),-2/(e.fullHeight*t[5]),(1-t[8])/t[0],(1-t[9])/t[5])}(e.camera)))),e.fragment.uniforms.add(new s.E("zScale",(e=>0===e.camera.projectionMatrix[11]?(0,i.hZ)(h,0,1):(0,i.hZ)(h,1,0)))),e.fragment.code.add(c.H`vec3 reconstructPosition(vec2 fragCoord, float depth) {
335
+ }`)}class v extends p.Y{constructor(){super(...arguments),this.transformWorldFromViewTH=(0,n.vt)(),this.transformWorldFromViewTL=(0,n.vt)(),this.transformViewFromCameraRelativeRS=(0,i.vt)(),this.transformProjFromView=(0,o.vt)()}}class g extends p.Y{constructor(){super(...arguments),this.transformWorldFromModelRS=(0,i.vt)(),this.transformWorldFromModelTH=(0,n.vt)(),this.transformWorldFromModelTL=(0,n.vt)()}}},34845:(e,t,r)=>{r.d(t,{Ir:()=>d});var i=r(37585),o=r(48163),n=r(87317),a=r(91829),s=r(77108),c=r(14314),l=r(31821);function d(e){e.fragment.uniforms.add(new c.I("projInfo",(e=>function(e){const t=e.projectionMatrix;return 0===t[11]?(0,n.s)(u,2/(e.fullWidth*t[0]),2/(e.fullHeight*t[5]),(1+t[12])/t[0],(1+t[13])/t[5]):(0,n.s)(u,-2/(e.fullWidth*t[0]),-2/(e.fullHeight*t[5]),(1-t[8])/t[0],(1-t[9])/t[5])}(e.camera)))),e.fragment.uniforms.add(new s.E("zScale",(e=>0===e.camera.projectionMatrix[11]?(0,i.hZ)(h,0,1):(0,i.hZ)(h,1,0)))),e.fragment.code.add(l.H`vec3 reconstructPosition(vec2 fragCoord, float depth) {
542
336
  return vec3((fragCoord * projInfo.xy + projInfo.zw) * (zScale.x * depth + zScale.y), depth);
543
- }`)}const u=(0,a.vt)(),h=(0,o.vt)()},35256:(e,t,r)=>{r.d(t,{E:()=>c});var i=r(90237),o=r(49255),n=r(51976);class a extends n.K{constructor(){super(...arguments),this.instancedDoublePrecision=!1,this.hasModelTransformation=!1}}var s=r(59643),l=r(69270);class c extends a{constructor(){super(...arguments),this.output=o.V.Color,this.oitPass=s.Y.NONE,this.hasSlicePlane=!1,this.hasHighlightMixTexture=!1,this.bindType=l.c.Pass,this.writeDepth=!0}}(0,i._)([(0,n.W)({count:o.V.COUNT})],c.prototype,"output",void 0),(0,i._)([(0,n.W)({count:s.Y.COUNT})],c.prototype,"oitPass",void 0),(0,i._)([(0,n.W)()],c.prototype,"hasSlicePlane",void 0),(0,i._)([(0,n.W)()],c.prototype,"hasHighlightMixTexture",void 0)},35640:(e,t,r)=>{r.d(t,{G:()=>c,V:()=>u});var i=r(87317),o=r(91829),n=r(52587),a=r(20693),s=r(71988),l=r(31821);function c(e,t){const r=e.vertex;t.hasVerticalOffset?(u(r),t.hasScreenSizePerspective&&(e.include(n.Y6),(0,n.OH)(r),(0,a.yu)(e.vertex,t)),r.code.add(l.H`
337
+ }`)}const u=(0,a.vt)(),h=(0,o.vt)()},35256:(e,t,r)=>{r.d(t,{E:()=>l});var i=r(90237),o=r(49255),n=r(51976);class a extends n.K{constructor(){super(...arguments),this.instancedDoublePrecision=!1,this.hasModelTransformation=!1}}var s=r(59643),c=r(69270);class l extends a{constructor(){super(...arguments),this.output=o.V.Color,this.oitPass=s.Y.NONE,this.hasSlicePlane=!1,this.hasHighlightMixTexture=!1,this.bindType=c.c.Pass,this.writeDepth=!0}}(0,i._)([(0,n.W)({count:o.V.COUNT})],l.prototype,"output",void 0),(0,i._)([(0,n.W)({count:s.Y.COUNT})],l.prototype,"oitPass",void 0),(0,i._)([(0,n.W)()],l.prototype,"hasSlicePlane",void 0),(0,i._)([(0,n.W)()],l.prototype,"hasHighlightMixTexture",void 0)},35640:(e,t,r)=>{r.d(t,{G:()=>l,V:()=>u});var i=r(87317),o=r(91829),n=r(52587),a=r(20693),s=r(71988),c=r(31821);function l(e,t){const r=e.vertex;t.hasVerticalOffset?(u(r),t.hasScreenSizePerspective&&(e.include(n.Y6),(0,n.OH)(r),(0,a.yu)(e.vertex,t)),r.code.add(c.H`
544
338
  vec3 calculateVerticalOffset(vec3 worldPos, vec3 localOrigin) {
545
339
  float viewDistance = length((view * vec4(worldPos, 1.0)).xyz);
546
- ${t.spherical?l.H`vec3 worldNormal = normalize(worldPos + localOrigin);`:l.H`vec3 worldNormal = vec3(0.0, 0.0, 1.0);`}
547
- ${t.hasScreenSizePerspective?l.H`
340
+ ${t.spherical?c.H`vec3 worldNormal = normalize(worldPos + localOrigin);`:c.H`vec3 worldNormal = vec3(0.0, 0.0, 1.0);`}
341
+ ${t.hasScreenSizePerspective?c.H`
548
342
  float cosAngle = dot(worldNormal, normalize(worldPos - cameraPosition));
549
- float verticalOffsetScreenHeight = screenSizePerspectiveScaleFloat(verticalOffset.x, abs(cosAngle), viewDistance, screenSizePerspectiveAlignment);`:l.H`
343
+ float verticalOffsetScreenHeight = screenSizePerspectiveScaleFloat(verticalOffset.x, abs(cosAngle), viewDistance, screenSizePerspectiveAlignment);`:c.H`
550
344
  float verticalOffsetScreenHeight = verticalOffset.x;`}
551
345
  // Screen sized offset in world space, used for example for line callouts
552
346
  float worldOffset = clamp(verticalOffsetScreenHeight * verticalOffset.y * viewDistance, verticalOffset.z, verticalOffset.w);
@@ -556,12 +350,12 @@ return vec3((fragCoord * projInfo.xy + projInfo.zw) * (zScale.x * depth + zScale
556
350
  vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) {
557
351
  return worldPos + calculateVerticalOffset(worldPos, localOrigin);
558
352
  }
559
- `)):r.code.add(l.H`vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) { return worldPos; }`)}const d=(0,o.vt)();function u(e){e.uniforms.add(new s.E("verticalOffset",((e,t)=>{const{minWorldLength:r,maxWorldLength:o,screenLength:n}=e.verticalOffset,a=Math.tan(.5*t.camera.fovY)/(.5*t.camera.fullViewport[3]),s=t.camera.pixelRatio||1;return(0,i.s)(d,n*s,a,r,o)})))}},35818:(e,t,r)=>{r.d(t,{W:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"int",i.c.Bind,((r,i)=>r.setUniform1i(e,t(i))))}}},36782:(e,t,r)=>{r.d(t,{g:()=>a});var i=r(49255),o=r(31821),n=r(46540);function a(e,t){if(t.output!==i.V.ObjectAndLayerIdColor)return e.vertex.code.add(o.H`void forwardObjectAndLayerIdColor() {}`),void e.fragment.code.add(o.H`void outputObjectAndLayerIdColor() {}`);const r=t.objectAndLayerIdColorInstanced;e.varyings.add("objectAndLayerIdColorVarying","vec4"),e.attributes.add(r?n.r.INSTANCEOBJECTANDLAYERIDCOLOR:n.r.OLIDCOLOR,"vec4"),e.vertex.code.add(o.H`
353
+ `)):r.code.add(c.H`vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) { return worldPos; }`)}const d=(0,o.vt)();function u(e){e.uniforms.add(new s.E("verticalOffset",((e,t)=>{const{minWorldLength:r,maxWorldLength:o,screenLength:n}=e.verticalOffset,a=Math.tan(.5*t.camera.fovY)/(.5*t.camera.fullViewport[3]),s=t.camera.pixelRatio||1;return(0,i.s)(d,n*s,a,r,o)})))}},35818:(e,t,r)=>{r.d(t,{W:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"int",i.c.Bind,((r,i)=>r.setUniform1i(e,t(i))))}}},36782:(e,t,r)=>{r.d(t,{g:()=>a});var i=r(49255),o=r(31821),n=r(46540);function a(e,t){if(t.output!==i.V.ObjectAndLayerIdColor)return e.vertex.code.add(o.H`void forwardObjectAndLayerIdColor() {}`),void e.fragment.code.add(o.H`void outputObjectAndLayerIdColor() {}`);const r=t.objectAndLayerIdColorInstanced;e.varyings.add("objectAndLayerIdColorVarying","vec4"),e.attributes.add(r?n.r.INSTANCEOBJECTANDLAYERIDCOLOR:n.r.OLIDCOLOR,"vec4"),e.vertex.code.add(o.H`
560
354
  void forwardObjectAndLayerIdColor() {
561
355
  objectAndLayerIdColorVarying = ${r?"instanceObjectAndLayerIdColor":"objectAndLayerIdColor"} * 0.003921568627451;
562
356
  }`),e.fragment.code.add(o.H`void outputObjectAndLayerIdColor() {
563
357
  fragColor = objectAndLayerIdColorVarying;
564
- }`)}},38969:(e,t,r)=>{r.d(t,{i:()=>o});var i=r(37955);function o(e,t){return new Promise(((r,o)=>{e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA?r():(t((0,i.Oo)(e,"canplay",r)),t((0,i.Oo)(e,"error",o)))}))}},39341:(e,t,r)=>{r.d(t,{D:()=>o});var i=r(46540);const o=new Map([[i.r.POSITION,0],[i.r.NORMAL,1],[i.r.NORMALCOMPRESSED,1],[i.r.UV0,2],[i.r.UVI,2],[i.r.COLOR,3],[i.r.COLORFEATUREATTRIBUTE,3],[i.r.SIZE,4],[i.r.TANGENT,4],[i.r.CENTEROFFSETANDDISTANCE,5],[i.r.SYMBOLCOLOR,5],[i.r.FEATUREATTRIBUTE,6],[i.r.INSTANCEFEATUREATTRIBUTE,6],[i.r.INSTANCECOLOR,7],[i.r.OLIDCOLOR,7],[i.r.INSTANCEOBJECTANDLAYERIDCOLOR,7],[i.r.ROTATION,8],[i.r.INSTANCEMODEL,8],[i.r.INSTANCEMODELNORMAL,12],[i.r.INSTANCEMODELORIGINHI,11],[i.r.INSTANCEMODELORIGINLO,15]])},40095:(e,t,r)=>{r.d(t,{X:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"mat4",i.c.Pass,((r,i,o)=>r.setUniformMatrix4fv(e,t(i,o))))}}},40261:(e,t,r)=>{r.d(t,{E:()=>x});var i=r(46686),o=r(49255),n=r(76591),a=r(76597),s=r(96336),l=r(36782),c=r(53466),d=r(72824),u=r(80730),h=r(31821);function m(e,t){switch(t.output){case o.V.Shadow:case o.V.ShadowHighlight:case o.V.ShadowExcludeHighlight:case o.V.ViewshedShadow:e.outputs.add("oFragDepth","vec4",0),e.fragment.include(u.U),e.fragment.code.add(h.H`float _calculateFragDepth(const in float depth) {
358
+ }`)}},38969:(e,t,r)=>{r.d(t,{i:()=>o});var i=r(37955);function o(e,t){return new Promise(((r,o)=>{e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA?r():(t((0,i.Oo)(e,"canplay",r)),t((0,i.Oo)(e,"error",o)))}))}},39341:(e,t,r)=>{r.d(t,{D:()=>o});var i=r(46540);const o=new Map([[i.r.POSITION,0],[i.r.NORMAL,1],[i.r.NORMALCOMPRESSED,1],[i.r.UV0,2],[i.r.UVI,2],[i.r.COLOR,3],[i.r.COLORFEATUREATTRIBUTE,3],[i.r.SIZE,4],[i.r.TANGENT,4],[i.r.CENTEROFFSETANDDISTANCE,5],[i.r.SYMBOLCOLOR,5],[i.r.FEATUREATTRIBUTE,6],[i.r.INSTANCEFEATUREATTRIBUTE,6],[i.r.INSTANCECOLOR,7],[i.r.OLIDCOLOR,7],[i.r.INSTANCEOBJECTANDLAYERIDCOLOR,7],[i.r.ROTATION,8],[i.r.INSTANCEMODEL,8],[i.r.INSTANCEMODELNORMAL,12],[i.r.INSTANCEMODELORIGINHI,11],[i.r.INSTANCEMODELORIGINLO,15]])},40095:(e,t,r)=>{r.d(t,{X:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"mat4",i.c.Pass,((r,i,o)=>r.setUniformMatrix4fv(e,t(i,o))))}}},40261:(e,t,r)=>{r.d(t,{E:()=>x});var i=r(46686),o=r(49255),n=r(76591),a=r(76597),s=r(96336),c=r(36782),l=r(53466),d=r(72824),u=r(80730),h=r(31821);function m(e,t){switch(t.output){case o.V.Shadow:case o.V.ShadowHighlight:case o.V.ShadowExcludeHighlight:case o.V.ViewshedShadow:e.outputs.add("oFragDepth","vec4",0),e.fragment.include(u.U),e.fragment.code.add(h.H`float _calculateFragDepth(const in float depth) {
565
359
  const float SLOPE_SCALE = 2.0;
566
360
  const float BIAS = 20.0 * .000015259;
567
361
  float m = max(abs(dFdx(depth)), abs(dFdy(depth)));
@@ -570,14 +364,14 @@ return depth + SLOPE_SCALE * m + BIAS;
570
364
  void outputDepth(float _linearDepth) {
571
365
  float fragDepth = _calculateFragDepth(_linearDepth);
572
366
  oFragDepth = floatToRgba4(fragDepth);
573
- }`)}}var p=r(42593),f=r(42398),v=r(58614),g=r(20693),_=r(63761),T=r(89192);function x(e,t){const{vertex:r,fragment:u,varyings:x}=e,{hasColorTexture:E,alphaDiscardMode:b}=t,A=E&&b!==T.sf.Opaque,{output:S,normalType:M,hasColorTextureTransform:w}=t;switch(S){case o.V.Depth:(0,g.NB)(r,t),e.include(a.d,t),u.include(n.HQ,t),e.include(c.U,t),A&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
367
+ }`)}}var p=r(42593),f=r(42398),v=r(58614),g=r(20693),_=r(63761),T=r(89192);function x(e,t){const{vertex:r,fragment:u,varyings:x}=e,{hasColorTexture:E,alphaDiscardMode:b}=t,A=E&&b!==T.sf.Opaque,{output:S,normalType:M,hasColorTextureTransform:w}=t;switch(S){case o.V.Depth:(0,g.NB)(r,t),e.include(a.d,t),u.include(n.HQ,t),e.include(l.U,t),A&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
574
368
  vpos = subtractOrigin(vpos);
575
369
  vpos = addVerticalOffset(vpos, localOrigin);
576
370
  gl_Position = transformPosition(proj, view, vpos);
577
371
  forwardTextureCoordinates();`),e.include(v.S,t),u.main.add(h.H`
578
372
  discardBySlice(vpos);
579
373
  ${(0,h.If)(A,h.H`vec4 texColor = texture(tex, ${w?"colorUV":"vuv0"});
580
- discardOrAdjustAlpha(texColor);`)}`);break;case o.V.Shadow:case o.V.ShadowHighlight:case o.V.ShadowExcludeHighlight:case o.V.ViewshedShadow:case o.V.ObjectAndLayerIdColor:(0,g.NB)(r,t),e.include(a.d,t),e.include(c.U,t),e.include(f.A,t),e.include(m,t),u.include(n.HQ,t),e.include(l.g,t),(0,i.xJ)(e),x.add("depth","float",{invariant:!0}),A&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
374
+ discardOrAdjustAlpha(texColor);`)}`);break;case o.V.Shadow:case o.V.ShadowHighlight:case o.V.ShadowExcludeHighlight:case o.V.ViewshedShadow:case o.V.ObjectAndLayerIdColor:(0,g.NB)(r,t),e.include(a.d,t),e.include(l.U,t),e.include(f.A,t),e.include(m,t),u.include(n.HQ,t),e.include(c.g,t),(0,i.xJ)(e),x.add("depth","float",{invariant:!0}),A&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
581
375
  vpos = subtractOrigin(vpos);
582
376
  vpos = addVerticalOffset(vpos, localOrigin);
583
377
  gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);
@@ -586,7 +380,7 @@ forwardObjectAndLayerIdColor();`),e.include(v.S,t),u.main.add(h.H`
586
380
  discardBySlice(vpos);
587
381
  ${(0,h.If)(A,h.H`vec4 texColor = texture(tex, ${w?"colorUV":"vuv0"});
588
382
  discardOrAdjustAlpha(texColor);`)}
589
- ${S===o.V.ObjectAndLayerIdColor?h.H`outputObjectAndLayerIdColor();`:h.H`outputDepth(depth);`}`);break;case o.V.Normal:{(0,g.NB)(r,t),e.include(a.d,t),e.include(s.Y,t),e.include(d.Mh,t),e.include(c.U,t),e.include(f.A,t),A&&u.uniforms.add(new _.N("tex",(e=>e.texture))),M===s.W.ScreenDerivative&&x.add("vPositionView","vec3",{invariant:!0});const i=M===s.W.Attribute||M===s.W.Compressed;r.main.add(h.H`
383
+ ${S===o.V.ObjectAndLayerIdColor?h.H`outputObjectAndLayerIdColor();`:h.H`outputDepth(depth);`}`);break;case o.V.Normal:{(0,g.NB)(r,t),e.include(a.d,t),e.include(s.Y,t),e.include(d.Mh,t),e.include(l.U,t),e.include(f.A,t),A&&u.uniforms.add(new _.N("tex",(e=>e.texture))),M===s.W.ScreenDerivative&&x.add("vPositionView","vec3",{invariant:!0});const i=M===s.W.Attribute||M===s.W.Compressed;r.main.add(h.H`
590
384
  vpos = getVertexInLocalOriginSpace();
591
385
  ${i?h.H`vNormalWorld = dpNormalView(vvLocalNormal(normalModel()));`:h.H`vPositionView = (view * vec4(vpos, 1.0)).xyz;`}
592
386
  vpos = subtractOrigin(vpos);
@@ -601,7 +395,7 @@ forwardObjectAndLayerIdColor();`),e.include(v.S,t),u.main.add(h.H`
601
395
  if (gl_FrontFacing == false){
602
396
  normal = -normal;
603
397
  }`}
604
- fragColor = vec4(0.5 + 0.5 * normal, 1.0);`);break}case o.V.Highlight:(0,g.NB)(r,t),e.include(a.d,t),e.include(c.U,t),e.include(f.A,t),A&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
398
+ fragColor = vec4(0.5 + 0.5 * normal, 1.0);`);break}case o.V.Highlight:(0,g.NB)(r,t),e.include(a.d,t),e.include(l.U,t),e.include(f.A,t),A&&u.uniforms.add(new _.N("tex",(e=>e.texture))),r.main.add(h.H`vpos = getVertexInLocalOriginSpace();
605
399
  vpos = subtractOrigin(vpos);
606
400
  vpos = addVerticalOffset(vpos, localOrigin);
607
401
  gl_Position = transformPosition(proj, view, vpos);
@@ -609,7 +403,7 @@ forwardTextureCoordinates();`),u.include(n.HQ,t),e.include(v.S,t),e.include(p.Q,
609
403
  discardBySlice(vpos);
610
404
  ${(0,h.If)(A,h.H`vec4 texColor = texture(tex, ${w?"colorUV":"vuv0"});
611
405
  discardOrAdjustAlpha(texColor);`)}
612
- calculateOcclusionAndOutputHighlight();`)}}},42293:(e,t,r)=>{r.d(t,{IB:()=>o}),r(44208),r(94656);var i=r(63907);function o(e){switch(e){case i.Ab.ALPHA:case i.Ab.LUMINANCE:case i.Ab.RED:case i.Ab.RED_INTEGER:case i.H0.R8:case i.H0.R8I:case i.H0.R8UI:case i.H0.R8_SNORM:case i.Xo.STENCIL_INDEX8:return 1;case i.Ab.LUMINANCE_ALPHA:case i.Ab.RG:case i.Ab.RG_INTEGER:case i.H0.RGBA4:case i.H0.R16F:case i.H0.R16I:case i.H0.R16UI:case i.H0.RG8:case i.H0.RG8I:case i.H0.RG8UI:case i.H0.RG8_SNORM:case i.H0.RGB565:case i.H0.RGB5_A1:case i.SB.DEPTH_COMPONENT16:return 2;case i.Ab.RGB:case i.Ab.RGB_INTEGER:case i.H0.RGB8:case i.H0.RGB8I:case i.H0.RGB8UI:case i.H0.RGB8_SNORM:case i.H0.SRGB8:case i.SB.DEPTH_COMPONENT24:return 3;case i.Ab.RGBA:case i.Ab.RGBA_INTEGER:case i.H0.RGBA8:case i.H0.R32F:case i.H0.R11F_G11F_B10F:case i.H0.RG16F:case i.H0.R32I:case i.H0.R32UI:case i.H0.RG16I:case i.H0.RG16UI:case i.H0.RGBA8I:case i.H0.RGBA8UI:case i.H0.RGBA8_SNORM:case i.H0.SRGB8_ALPHA8:case i.H0.RGB9_E5:case i.H0.RGB10_A2UI:case i.H0.RGB10_A2:case i.SB.DEPTH_COMPONENT32F:case i.iE.DEPTH24_STENCIL8:return 4;case i.iE.DEPTH32F_STENCIL8:return 5;case i.H0.RGB16F:case i.H0.RGB16I:case i.H0.RGB16UI:return 6;case i.H0.RG32F:case i.H0.RG32I:case i.H0.RG32UI:case i.H0.RGBA16F:case i.H0.RGBA16I:case i.H0.RGBA16UI:return 8;case i.H0.RGB32F:case i.H0.RGB32I:case i.H0.RGB32UI:return 12;case i.H0.RGBA32F:case i.H0.RGBA32I:case i.H0.RGBA32UI:return 16;case i.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT:case i.CQ.COMPRESSED_RGBA_S3TC_DXT1_EXT:return.5;case i.CQ.COMPRESSED_RGBA_S3TC_DXT3_EXT:case i.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT:return 1;case i.CQ.COMPRESSED_R11_EAC:case i.CQ.COMPRESSED_SIGNED_R11_EAC:case i.CQ.COMPRESSED_RGB8_ETC2:case i.CQ.COMPRESSED_SRGB8_ETC2:case i.CQ.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:case i.CQ.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return.5;case i.CQ.COMPRESSED_RG11_EAC:case i.CQ.COMPRESSED_SIGNED_RG11_EAC:case i.CQ.COMPRESSED_RGBA8_ETC2_EAC:case i.CQ.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return 1}return 0}r(62298)},42398:(e,t,r)=>{r.d(t,{A:()=>p});var i=r(33079),o=r(71988),n=r(69270),a=r(74333);class s extends a.n{constructor(e,t,r){super(e,"vec4",n.c.Pass,((r,i,o)=>r.setUniform4fv(e,t(i,o))),r)}}class l extends a.n{constructor(e,t,r){super(e,"float",n.c.Pass,((r,i,o)=>r.setUniform1fv(e,t(i,o))),r)}}var c=r(31821),d=r(35644),u=r(46540),h=r(78662);r(11725),h.Gd;const m=8;function p(e,t){const{vertex:r,attributes:n}=e;t.hasVvInstancing&&(t.vvSize||t.vvColor)&&n.add(u.r.INSTANCEFEATUREATTRIBUTE,"vec4"),t.vvSize?(r.uniforms.add(new i.t("vvSizeMinSize",(e=>e.vvSize.minSize))),r.uniforms.add(new i.t("vvSizeMaxSize",(e=>e.vvSize.maxSize))),r.uniforms.add(new i.t("vvSizeOffset",(e=>e.vvSize.offset))),r.uniforms.add(new i.t("vvSizeFactor",(e=>e.vvSize.factor))),r.uniforms.add(new i.t("vvSizeFallback",(e=>e.vvSize.fallback))),r.uniforms.add(new d.k("vvSymbolRotationMatrix",(e=>e.vvSymbolRotationMatrix))),r.uniforms.add(new i.t("vvSymbolAnchor",(e=>e.vvSymbolAnchor))),r.code.add(c.H`vec3 vvScale(vec4 _featureAttribute) {
406
+ calculateOcclusionAndOutputHighlight();`)}}},42293:(e,t,r)=>{r.d(t,{IB:()=>o}),r(44208),r(94656);var i=r(63907);function o(e){switch(e){case i.Ab.ALPHA:case i.Ab.LUMINANCE:case i.Ab.RED:case i.Ab.RED_INTEGER:case i.H0.R8:case i.H0.R8I:case i.H0.R8UI:case i.H0.R8_SNORM:case i.Xo.STENCIL_INDEX8:return 1;case i.Ab.LUMINANCE_ALPHA:case i.Ab.RG:case i.Ab.RG_INTEGER:case i.H0.RGBA4:case i.H0.R16F:case i.H0.R16I:case i.H0.R16UI:case i.H0.RG8:case i.H0.RG8I:case i.H0.RG8UI:case i.H0.RG8_SNORM:case i.H0.RGB565:case i.H0.RGB5_A1:case i.SB.DEPTH_COMPONENT16:return 2;case i.Ab.RGB:case i.Ab.RGB_INTEGER:case i.H0.RGB8:case i.H0.RGB8I:case i.H0.RGB8UI:case i.H0.RGB8_SNORM:case i.H0.SRGB8:case i.SB.DEPTH_COMPONENT24:return 3;case i.Ab.RGBA:case i.Ab.RGBA_INTEGER:case i.H0.RGBA8:case i.H0.R32F:case i.H0.R11F_G11F_B10F:case i.H0.RG16F:case i.H0.R32I:case i.H0.R32UI:case i.H0.RG16I:case i.H0.RG16UI:case i.H0.RGBA8I:case i.H0.RGBA8UI:case i.H0.RGBA8_SNORM:case i.H0.SRGB8_ALPHA8:case i.H0.RGB9_E5:case i.H0.RGB10_A2UI:case i.H0.RGB10_A2:case i.SB.DEPTH_COMPONENT32F:case i.iE.DEPTH24_STENCIL8:return 4;case i.iE.DEPTH32F_STENCIL8:return 5;case i.H0.RGB16F:case i.H0.RGB16I:case i.H0.RGB16UI:return 6;case i.H0.RG32F:case i.H0.RG32I:case i.H0.RG32UI:case i.H0.RGBA16F:case i.H0.RGBA16I:case i.H0.RGBA16UI:return 8;case i.H0.RGB32F:case i.H0.RGB32I:case i.H0.RGB32UI:return 12;case i.H0.RGBA32F:case i.H0.RGBA32I:case i.H0.RGBA32UI:return 16;case i.CQ.COMPRESSED_RGB_S3TC_DXT1_EXT:case i.CQ.COMPRESSED_RGBA_S3TC_DXT1_EXT:return.5;case i.CQ.COMPRESSED_RGBA_S3TC_DXT3_EXT:case i.CQ.COMPRESSED_RGBA_S3TC_DXT5_EXT:return 1;case i.CQ.COMPRESSED_R11_EAC:case i.CQ.COMPRESSED_SIGNED_R11_EAC:case i.CQ.COMPRESSED_RGB8_ETC2:case i.CQ.COMPRESSED_SRGB8_ETC2:case i.CQ.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:case i.CQ.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return.5;case i.CQ.COMPRESSED_RG11_EAC:case i.CQ.COMPRESSED_SIGNED_RG11_EAC:case i.CQ.COMPRESSED_RGBA8_ETC2_EAC:case i.CQ.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return 1}return 0}r(62298)},42398:(e,t,r)=>{r.d(t,{A:()=>p});var i=r(33079),o=r(71988),n=r(69270),a=r(74333);class s extends a.n{constructor(e,t,r){super(e,"vec4",n.c.Pass,((r,i,o)=>r.setUniform4fv(e,t(i,o))),r)}}class c extends a.n{constructor(e,t,r){super(e,"float",n.c.Pass,((r,i,o)=>r.setUniform1fv(e,t(i,o))),r)}}var l=r(31821),d=r(35644),u=r(46540),h=r(78662);r(11725),h.Gd;const m=8;function p(e,t){const{vertex:r,attributes:n}=e;t.hasVvInstancing&&(t.vvSize||t.vvColor)&&n.add(u.r.INSTANCEFEATUREATTRIBUTE,"vec4"),t.vvSize?(r.uniforms.add(new i.t("vvSizeMinSize",(e=>e.vvSize.minSize))),r.uniforms.add(new i.t("vvSizeMaxSize",(e=>e.vvSize.maxSize))),r.uniforms.add(new i.t("vvSizeOffset",(e=>e.vvSize.offset))),r.uniforms.add(new i.t("vvSizeFactor",(e=>e.vvSize.factor))),r.uniforms.add(new i.t("vvSizeFallback",(e=>e.vvSize.fallback))),r.uniforms.add(new d.k("vvSymbolRotationMatrix",(e=>e.vvSymbolRotationMatrix))),r.uniforms.add(new i.t("vvSymbolAnchor",(e=>e.vvSymbolAnchor))),r.code.add(l.H`vec3 vvScale(vec4 _featureAttribute) {
613
407
  if (isnan(_featureAttribute.x)) {
614
408
  return vvSizeFallback;
615
409
  }
@@ -617,14 +411,14 @@ return clamp(vvSizeOffset + _featureAttribute.x * vvSizeFactor, vvSizeMinSize, v
617
411
  }
618
412
  vec4 vvTransformPosition(vec3 position, vec4 _featureAttribute) {
619
413
  return vec4(vvSymbolRotationMatrix * ( vvScale(_featureAttribute) * (position + vvSymbolAnchor)), 1.0);
620
- }`),r.code.add(c.H`
414
+ }`),r.code.add(l.H`
621
415
  const float eps = 1.192092896e-07;
622
416
  vec4 vvTransformNormal(vec3 _normal, vec4 _featureAttribute) {
623
417
  vec3 scale = max(vvScale(_featureAttribute), eps);
624
418
  return vec4(vvSymbolRotationMatrix * _normal / scale, 1.0);
625
419
  }
626
420
 
627
- ${t.hasVvInstancing?c.H`
421
+ ${t.hasVvInstancing?l.H`
628
422
  vec4 vvLocalNormal(vec3 _normal) {
629
423
  return vvTransformNormal(_normal, instanceFeatureAttribute);
630
424
  }
@@ -632,8 +426,8 @@ return vec4(vvSymbolRotationMatrix * ( vvScale(_featureAttribute) * (position +
632
426
  vec4 localPosition() {
633
427
  return vvTransformPosition(position, instanceFeatureAttribute);
634
428
  }`:""}
635
- `)):r.code.add(c.H`vec4 localPosition() { return vec4(position, 1.0); }
636
- vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }`),t.vvColor?(r.constants.add("vvColorNumber","int",m),r.uniforms.add(new l("vvColorValues",(e=>e.vvColor.values),m),new s("vvColorColors",(e=>e.vvColor.colors),m),new o.E("vvColorFallback",(e=>e.vvColor.fallback))),r.code.add(c.H`
429
+ `)):r.code.add(l.H`vec4 localPosition() { return vec4(position, 1.0); }
430
+ vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }`),t.vvColor?(r.constants.add("vvColorNumber","int",m),r.uniforms.add(new c("vvColorValues",(e=>e.vvColor.values),m),new s("vvColorColors",(e=>e.vvColor.colors),m),new o.E("vvColorFallback",(e=>e.vvColor.fallback))),r.code.add(l.H`
637
431
  vec4 interpolateVVColor(float value) {
638
432
  if (isnan(value)) {
639
433
  return vvColorFallback;
@@ -656,11 +450,11 @@ vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }`),t.vvColor?(r.c
656
450
  return interpolateVVColor(featureAttribute.y);
657
451
  }
658
452
 
659
- ${t.hasVvInstancing?c.H`
453
+ ${t.hasVvInstancing?l.H`
660
454
  vec4 vvColor() {
661
455
  return vvGetColor(instanceFeatureAttribute);
662
456
  }`:"vec4 vvColor() { return vec4(1.0); }"}
663
- `)):r.code.add(c.H`vec4 vvColor() { return vec4(1.0); }`)}},42593:(e,t,r)=>{r.d(t,{Q:()=>h});var i=r(31821);function o(e){const{fragment:t}=e;t.code.add(i.H`uint readChannelBits(uint channel, int highlightLevel) {
457
+ `)):r.code.add(l.H`vec4 vvColor() { return vec4(1.0); }`)}},42593:(e,t,r)=>{r.d(t,{Q:()=>h});var i=r(31821);function o(e){const{fragment:t}=e;t.code.add(i.H`uint readChannelBits(uint channel, int highlightLevel) {
664
458
  int llc = (highlightLevel & 3) << 1;
665
459
  return (channel >> llc) & 3u;
666
460
  }
@@ -670,7 +464,7 @@ return texel[lic];
670
464
  }
671
465
  uint readLevelBits(uvec2 texel, int highlightLevel) {
672
466
  return readChannelBits(readChannel(texel, highlightLevel), highlightLevel);
673
- }`)}var n=r(49255),a=r(69270),s=r(74333);class l extends s.n{constructor(e,t){super(e,"ivec2",a.c.Bind,((r,i)=>r.setUniform2iv(e,t(i))))}}var c=r(35818),d=r(12791);class u extends s.n{constructor(e,t){super(e,"usampler2D",a.c.Bind,((r,i)=>r.bindTexture(e,t(i))))}}function h(e,t){const{fragment:r}=e,{output:a,draped:s,hasHighlightMixTexture:h}=t;a===n.V.Highlight?(r.uniforms.add(new c.W("highlightLevel",(e=>e.highlightLevel??0)),new l("highlightMixOrigin",(e=>e.highlightMixOrigin))),e.outputs.add("fragHighlight","uvec2",0),e.include(o),h?r.uniforms.add(new u("highlightMixTexture",(e=>e.highlightMixTexture))).code.add(i.H`uvec2 getAccumulatedHighlight() {
467
+ }`)}var n=r(49255),a=r(69270),s=r(74333);class c extends s.n{constructor(e,t){super(e,"ivec2",a.c.Bind,((r,i)=>r.setUniform2iv(e,t(i))))}}var l=r(35818),d=r(12791);class u extends s.n{constructor(e,t){super(e,"usampler2D",a.c.Bind,((r,i)=>r.bindTexture(e,t(i))))}}function h(e,t){const{fragment:r}=e,{output:a,draped:s,hasHighlightMixTexture:h}=t;a===n.V.Highlight?(r.uniforms.add(new l.W("highlightLevel",(e=>e.highlightLevel??0)),new c("highlightMixOrigin",(e=>e.highlightMixOrigin))),e.outputs.add("fragHighlight","uvec2",0),e.include(o),h?r.uniforms.add(new u("highlightMixTexture",(e=>e.highlightMixTexture))).code.add(i.H`uvec2 getAccumulatedHighlight() {
674
468
  return texelFetch(highlightMixTexture, ivec2(gl_FragCoord.xy) - highlightMixOrigin, 0).rg;
675
469
  }
676
470
  void outputHighlight(bool occluded) {
@@ -700,21 +494,21 @@ float sceneDepth = texelFetch(depthTexture, ivec2(gl_FragCoord.xy), 0).x;
700
494
  return gl_FragCoord.z > sceneDepth + 5e-7;
701
495
  }`),r.code.add(i.H`void calculateOcclusionAndOutputHighlight() {
702
496
  outputHighlight(isHighlightOccluded());
703
- }`)):r.code.add(i.H`void calculateOcclusionAndOutputHighlight() {}`)}},43616:(e,t,r)=>{r.d(t,{MB:()=>s,Um:()=>l,kE:()=>a});var i=r(4576),o=r(34727),n=r(77194);function a(e,t,r,i,a){let s=(r.screenLength||0)*e.pixelRatio;null!=a&&(s=(0,n.hs)(s,i,t,a));const l=s*Math.tan(.5*e.fovY)/(.5*e.fullHeight);return(0,o.qE)(l*t,r.minWorldLength||0,null!=r.maxWorldLength?r.maxWorldLength:1/0)}function s(e,t){let r=!1;for(const o in t){const n=t[o];void 0!==n&&(Array.isArray(n)?Array.isArray(e[o])&&(0,i.aI)(n,e[o])||(e[o]=n.slice(),r=!0):e[o]!==n&&(r=!0,e[o]=n))}return r}const l={multiply:1,ignore:2,replace:3,tint:4}},46686:(e,t,r)=>{r.d(t,{i$:()=>c,oD:()=>d,xJ:()=>l});var i=r(49255),o=r(33752),n=r(77108),a=r(31821);function s(e){e.varyings.add("linearDepth","float",{invariant:!0})}function l(e){e.vertex.uniforms.add(new n.E("nearFar",(e=>e.camera.nearFar)))}function c(e){e.vertex.code.add(a.H`float calculateLinearDepth(vec2 nearFar,float z) {
497
+ }`)):r.code.add(i.H`void calculateOcclusionAndOutputHighlight() {}`)}},43616:(e,t,r)=>{r.d(t,{MB:()=>s,Um:()=>c,kE:()=>a});var i=r(4576),o=r(34727),n=r(77194);function a(e,t,r,i,a){let s=(r.screenLength||0)*e.pixelRatio;null!=a&&(s=(0,n.hs)(s,i,t,a));const c=s*Math.tan(.5*e.fovY)/(.5*e.fullHeight);return(0,o.qE)(c*t,r.minWorldLength||0,null!=r.maxWorldLength?r.maxWorldLength:1/0)}function s(e,t){let r=!1;for(const o in t){const n=t[o];void 0!==n&&(Array.isArray(n)?Array.isArray(e[o])&&(0,i.aI)(n,e[o])||(e[o]=n.slice(),r=!0):e[o]!==n&&(r=!0,e[o]=n))}return r}const c={multiply:1,ignore:2,replace:3,tint:4}},46140:(e,t,r)=>{r.d(t,{R:()=>o});var i=r(49186);let o=class e{constructor(e,t,r=""){this.major=e,this.minor=t,this._context=r}lessThan(e,t){return this.major<e||e===this.major&&this.minor<t}greaterEqual(e,t){return!this.lessThan(e,t)}validate(e){if(this.major!==e.major){const t=this._context&&this._context+":",r=this._context&&this._context+" ";throw new i.A(t+"unsupported-version",`Required major ${r}version is '${this.major}', but got '\${version.major}.\${version.minor}'`,{version:e})}}clone(){return new e(this.major,this.minor,this._context)}static parse(t,r=""){const[o,n]=t.split("."),a=/^\s*\d+\s*$/;if(!o?.match||!a.test(o))throw new i.A((r&&r+":")+"invalid-version","Expected major version to be a number, but got '${version}'",{version:t});if(!n?.match||!a.test(n))throw new i.A((r&&r+":")+"invalid-version","Expected minor version to be a number, but got '${version}'",{version:t});const s=parseInt(o,10),c=parseInt(n,10);return new e(s,c,r)}}},46686:(e,t,r)=>{r.d(t,{i$:()=>l,oD:()=>d,xJ:()=>c});var i=r(49255),o=r(33752),n=r(77108),a=r(31821);function s(e){e.varyings.add("linearDepth","float",{invariant:!0})}function c(e){e.vertex.uniforms.add(new n.E("nearFar",(e=>e.camera.nearFar)))}function l(e){e.vertex.code.add(a.H`float calculateLinearDepth(vec2 nearFar,float z) {
704
498
  return (-z - nearFar[0]) / (nearFar[1] - nearFar[0]);
705
- }`)}function d(e,t){const{vertex:r}=e;switch(t.output){case i.V.Color:case i.V.ColorEmission:if(t.receiveShadows)return s(e),void r.code.add(a.H`void forwardLinearDepth() { linearDepth = gl_Position.w; }`);break;case i.V.Shadow:case i.V.ShadowHighlight:case i.V.ShadowExcludeHighlight:case i.V.ViewshedShadow:return e.include(o.em,t),s(e),l(e),c(e),void r.code.add(a.H`void forwardLinearDepth() {
499
+ }`)}function d(e,t){const{vertex:r}=e;switch(t.output){case i.V.Color:case i.V.ColorEmission:if(t.receiveShadows)return s(e),void r.code.add(a.H`void forwardLinearDepth() { linearDepth = gl_Position.w; }`);break;case i.V.Shadow:case i.V.ShadowHighlight:case i.V.ShadowExcludeHighlight:case i.V.ViewshedShadow:return e.include(o.em,t),s(e),c(e),l(e),void r.code.add(a.H`void forwardLinearDepth() {
706
500
  linearDepth = calculateLinearDepth(nearFar, vPosition_view.z);
707
- }`)}r.code.add(a.H`void forwardLinearDepth() {}`)}},47286:(e,t,r)=>{r.d(t,{G:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec2",i.c.Pass,((r,i,o)=>r.setUniform2fv(e,t(i,o))))}}},49788:(e,t,r)=>{r.d(t,{Q:()=>i});const i=1/255.5},51406:(e,t,r)=>{r.d(t,{MU:()=>c,O1:()=>d,QM:()=>u,Sx:()=>l,q2:()=>s});var i=r(29242),o=r(53466),n=r(31821),a=r(35644);function s(e,t){t.hasColorTextureTransform?(e.varyings.add("colorUV","vec2"),e.vertex.uniforms.add(new a.k("colorTextureTransformMatrix",(e=>e.colorTextureTransformMatrix??i.zK))).code.add(n.H`void forwardColorUV(){
501
+ }`)}r.code.add(a.H`void forwardLinearDepth() {}`)}},47286:(e,t,r)=>{r.d(t,{G:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec2",i.c.Pass,((r,i,o)=>r.setUniform2fv(e,t(i,o))))}}},49788:(e,t,r)=>{r.d(t,{Q:()=>i});const i=1/255.5},51406:(e,t,r)=>{r.d(t,{MU:()=>l,O1:()=>d,QM:()=>u,Sx:()=>c,q2:()=>s});var i=r(29242),o=r(53466),n=r(31821),a=r(35644);function s(e,t){t.hasColorTextureTransform?(e.varyings.add("colorUV","vec2"),e.vertex.uniforms.add(new a.k("colorTextureTransformMatrix",(e=>e.colorTextureTransformMatrix??i.zK))).code.add(n.H`void forwardColorUV(){
708
502
  colorUV = (colorTextureTransformMatrix * vec3(vuv0, 1.0)).xy;
709
- }`)):e.vertex.code.add(n.H`void forwardColorUV(){}`)}function l(e,t){t.hasNormalTextureTransform&&t.textureCoordinateType!==o.I.None?(e.varyings.add("normalUV","vec2"),e.vertex.uniforms.add(new a.k("normalTextureTransformMatrix",(e=>e.normalTextureTransformMatrix??i.zK))).code.add(n.H`void forwardNormalUV(){
503
+ }`)):e.vertex.code.add(n.H`void forwardColorUV(){}`)}function c(e,t){t.hasNormalTextureTransform&&t.textureCoordinateType!==o.I.None?(e.varyings.add("normalUV","vec2"),e.vertex.uniforms.add(new a.k("normalTextureTransformMatrix",(e=>e.normalTextureTransformMatrix??i.zK))).code.add(n.H`void forwardNormalUV(){
710
504
  normalUV = (normalTextureTransformMatrix * vec3(vuv0, 1.0)).xy;
711
- }`)):e.vertex.code.add(n.H`void forwardNormalUV(){}`)}function c(e,t){t.hasEmissionTextureTransform&&t.textureCoordinateType!==o.I.None?(e.varyings.add("emissiveUV","vec2"),e.vertex.uniforms.add(new a.k("emissiveTextureTransformMatrix",(e=>e.emissiveTextureTransformMatrix??i.zK))).code.add(n.H`void forwardEmissiveUV(){
505
+ }`)):e.vertex.code.add(n.H`void forwardNormalUV(){}`)}function l(e,t){t.hasEmissionTextureTransform&&t.textureCoordinateType!==o.I.None?(e.varyings.add("emissiveUV","vec2"),e.vertex.uniforms.add(new a.k("emissiveTextureTransformMatrix",(e=>e.emissiveTextureTransformMatrix??i.zK))).code.add(n.H`void forwardEmissiveUV(){
712
506
  emissiveUV = (emissiveTextureTransformMatrix * vec3(vuv0, 1.0)).xy;
713
507
  }`)):e.vertex.code.add(n.H`void forwardEmissiveUV(){}`)}function d(e,t){t.hasOcclusionTextureTransform&&t.textureCoordinateType!==o.I.None?(e.varyings.add("occlusionUV","vec2"),e.vertex.uniforms.add(new a.k("occlusionTextureTransformMatrix",(e=>e.occlusionTextureTransformMatrix??i.zK))).code.add(n.H`void forwardOcclusionUV(){
714
508
  occlusionUV = (occlusionTextureTransformMatrix * vec3(vuv0, 1.0)).xy;
715
509
  }`)):e.vertex.code.add(n.H`void forwardOcclusionUV(){}`)}function u(e,t){t.hasMetallicRoughnessTextureTransform&&t.textureCoordinateType!==o.I.None?(e.varyings.add("metallicRoughnessUV","vec2"),e.vertex.uniforms.add(new a.k("metallicRoughnessTextureTransformMatrix",(e=>e.metallicRoughnessTextureTransformMatrix??i.zK))).code.add(n.H`void forwardMetallicRoughnessUV(){
716
510
  metallicRoughnessUV = (metallicRoughnessTextureTransformMatrix * vec3(vuv0, 1.0)).xy;
717
- }`)):e.vertex.code.add(n.H`void forwardMetallicRoughnessUV(){}`)}},51768:(e,t,r)=>{r.d(t,{$U:()=>Se});var i=r(38954),o=r(51850),n=r(67222),a=r(24151),s=r(1843),l=r(49255),c=r(96336),d=r(22911),u=r(62602),h=r(59469),m=r(16943),p=r(89192),f=r(25634),v=r(11725),g=r(33524),_=r(70328),T=r(75039),x=r(620),E=r(46540);class b{constructor(e=!1,t=!0){this.isVerticalRay=e,this.normalRequired=t}}const A=(0,_.vt)();function S(e,t,r,o,n,a){if(!e.visible)return;const s=(0,i.a)(B,o,r),l=(e,t,r)=>{a(e,r,t,!1)},c=new b(!1,t.options.normalRequired);if(e.boundingInfo){(0,x.vA)(e.type===T.d.Mesh);const i=t.tolerance;w(e.boundingInfo,r,s,i,n,c,l)}else{const t=e.attributes.get(E.r.POSITION),o=t.indices;!function(e,t,r,o,n,a,s,l,c,d){const u=t,h=G,m=Math.abs(u[0]),p=Math.abs(u[1]),f=Math.abs(u[2]),v=m>=p?m>=f?0:2:p>=f?1:2,g=v,_=u[g]<0?2:1,T=(v+_)%3,x=(v+(3-_))%3,E=u[T]/u[g],b=u[x]/u[g],A=1/u[g],S=I,M=O,w=N,{normalRequired:C}=c;for(let t=r;t<o;++t){const r=3*t,o=s*n[r];(0,i.i)(h[0],a[o+0],a[o+1],a[o+2]);const c=s*n[r+1];(0,i.i)(h[1],a[c+0],a[c+1],a[c+2]);const u=s*n[r+2];(0,i.i)(h[2],a[u+0],a[u+1],a[u+2]),l&&((0,i.c)(h[0],l.applyToVertex(h[0][0],h[0][1],h[0][2],t)),(0,i.c)(h[1],l.applyToVertex(h[1][0],h[1][1],h[1][2],t)),(0,i.c)(h[2],l.applyToVertex(h[2][0],h[2][1],h[2][2],t))),(0,i.a)(S,h[0],e),(0,i.a)(M,h[1],e),(0,i.a)(w,h[2],e);const m=S[T]-E*S[g],p=S[x]-b*S[g],f=M[T]-E*M[g],v=M[x]-b*M[g],_=w[T]-E*w[g],R=w[x]-b*w[g],I=_*v-R*f,O=m*R-p*_,N=f*p-v*m;if((I<0||O<0||N<0)&&(I>0||O>0||N>0))continue;const y=I+O+N;if(0===y)continue;const D=I*(A*S[g])+O*(A*M[g])+N*(A*w[g]);if(D*Math.sign(y)<0)continue;const L=D/y;L>=0&&d(L,t,C?P(h):null)}}(r,s,0,o.length/3,o,t.data,t.stride,n,c,l)}}const M=(0,o.vt)();function w(e,t,r,o,n,a,s){if(null==e)return;const l=function(e,t){return(0,i.i)(t,1/e[0],1/e[1],1/e[2])}(r,M);if((0,_.Ne)(A,e.bbMin),(0,_.vI)(A,e.bbMax),null!=n&&n.applyToAabb(A),function(e,t,r,i){return function(e,t,r,i){const o=(e[0]-i-t[0])*r[0],n=(e[3]+i-t[0])*r[0];let a=Math.min(o,n),s=Math.max(o,n);const l=(e[1]-i-t[1])*r[1],c=(e[4]+i-t[1])*r[1];if(s=Math.min(s,Math.max(l,c)),s<0)return!1;if(a=Math.max(a,Math.min(l,c)),a>s)return!1;const d=(e[2]-i-t[2])*r[2],u=(e[5]+i-t[2])*r[2];return s=Math.min(s,Math.max(d,u)),!(s<0)&&(a=Math.max(a,Math.min(d,u)),!(a>s)&&a<1/0)}(e,t,r,i)}(A,t,l,o)){const{primitiveIndices:i,position:l}=e,c=i?i.length:l.indices.length/3;if(c>H){const i=e.getChildren();if(void 0!==i){for(const e of i)w(e,t,r,o,n,a,s);return}}!function(e,t,r,i,o,n,a,s,l,c,d){const u=e[0],h=e[1],m=e[2],p=t[0],f=t[1],v=t[2],{normalRequired:g}=c;for(let e=0;e<i;++e){const t=s[e],r=3*t,i=a*o[r];let c=n[i],_=n[i+1],T=n[i+2];const x=a*o[r+1];let E=n[x],b=n[x+1],A=n[x+2];const S=a*o[r+2];let M=n[S],w=n[S+1],R=n[S+2];null!=l&&([c,_,T]=l.applyToVertex(c,_,T,e),[E,b,A]=l.applyToVertex(E,b,A,e),[M,w,R]=l.applyToVertex(M,w,R,e));const I=E-c,O=b-_,N=A-T,P=M-c,D=w-_,L=R-T,H=f*L-D*v,B=v*P-L*p,G=p*D-P*f,U=I*H+O*B+N*G;if(Math.abs(U)<=F)continue;const z=u-c,V=h-_,W=m-T,j=z*H+V*B+W*G;if(U>0){if(j<0||j>U)continue}else if(j>0||j<U)continue;const k=V*N-O*W,q=W*I-N*z,Y=z*O-I*V,$=p*k+f*q+v*Y;if(U>0){if($<0||j+$>U)continue}else if($>0||j+$<U)continue;const X=(P*k+D*q+L*Y)/U;X>=0&&d(X,t,g?y(I,O,N,P,D,L,C):null)}}(t,r,0,c,l.indices,l.data,l.stride,i,n,a,s)}}const C=(0,o.vt)();function R(e,t,r,i,o,n,a,s){const l=e[0],c=e[1],d=e[2],u=t[0],h=t[1],m=t[2];for(let e=r;e<i;++e){const t=3*e,r=t+1,i=t+2,p=n*t,f=o[p],v=o[p+1],g=o[p+2],_=n*r,T=n*i,x=o[_]-f,E=o[_+1]-v,b=o[_+2]-g,A=o[T]-f,S=o[T+1]-v,M=o[T+2]-g,w=h*M-S*m,R=m*A-M*u,I=u*S-A*h,O=x*w+E*R+b*I;if(Math.abs(O)<=F)continue;const N=l-f,P=c-v,D=d-g,L=N*w+P*R+D*I;if(O>0){if(L<0||L>O)continue}else if(L>0||L<O)continue;const H=P*b-E*D,B=D*x-b*N,G=N*E-x*P,U=u*H+h*B+m*G;if(O>0){if(U<0||L+U>O)continue}else if(U>0||L+U<O)continue;const z=(A*H+S*B+M*G)/O;z>=0&&s(z,e,a?y(x,E,b,A,S,M,C):null)}}const I=(0,o.vt)(),O=(0,o.vt)(),N=(0,o.vt)();function y(e,t,r,o,n,a,s){return(0,i.i)(D,e,t,r),(0,i.i)(L,o,n,a),(0,i.e)(s,D,L),(0,i.n)(s,s),s}function P(e){return(0,i.a)(D,e[1],e[0]),(0,i.a)(L,e[2],e[0]),(0,i.e)(C,D,L),(0,i.n)(C,C),C}const D=(0,o.vt)(),L=(0,o.vt)(),H=1e3,F=1e-7,B=(0,o.vt)(),G=[(0,o.vt)(),(0,o.vt)(),(0,o.vt)()];var U=r(13464),z=(r(77690),r(29242),r(58083),r(9093),r(97937)),V=r(57005);const W=new class{constructor(e=0){this.offset=e,this.sphere=(0,z.c)(),this.tmpVertex=(0,o.vt)()}applyToVertex(e,t,r){const o=this.objectTransform.transform,n=(0,i.i)(j,e,t,r),a=(0,i.t)(n,n,o),s=this.offset/(0,i.l)(a);(0,i.b)(a,a,a,s);const l=this.objectTransform.inverse;return(0,i.t)(this.tmpVertex,a,l),this.tmpVertex}applyToMinMax(e,t){const r=this.offset/(0,i.l)(e);(0,i.b)(e,e,e,r);const o=this.offset/(0,i.l)(t);(0,i.b)(t,t,t,o)}applyToAabb(e){const t=this.offset/Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]+=e[0]*t,e[1]+=e[1]*t,e[2]+=e[2]*t;const r=this.offset/Math.sqrt(e[3]*e[3]+e[4]*e[4]+e[5]*e[5]);return e[3]+=e[3]*r,e[4]+=e[4]*r,e[5]+=e[5]*r,e}applyToBoundingSphere(e){const t=(0,i.l)((0,z.a)(e)),r=this.offset/t;return(0,i.b)((0,z.a)(this.sphere),(0,z.a)(e),(0,z.a)(e),r),this.sphere[3]=e[3]+e[3]*this.offset/t,this.sphere}};new class{constructor(e=0){this.componentLocalOriginLength=0,this._totalOffset=0,this._offset=0,this._tmpVertex=(0,o.vt)(),this._tmpMbs=(0,z.c)(),this._tmpObb=new V.ab,this._resetOffset(e)}_resetOffset(e){this._offset=e,this._totalOffset=e}set offset(e){this._resetOffset(e)}get offset(){return this._offset}set componentOffset(e){this._totalOffset=this._offset+e}set localOrigin(e){this.componentLocalOriginLength=(0,i.l)(e)}applyToVertex(e,t,r){const o=(0,i.i)(j,e,t,r),n=(0,i.i)(k,e,t,r+this.componentLocalOriginLength),a=this._totalOffset/(0,i.l)(n);return(0,i.b)(this._tmpVertex,o,n,a),this._tmpVertex}applyToAabb(e){const t=this.componentLocalOriginLength,r=e[0],i=e[1],o=e[2]+t,n=e[3],a=e[4],s=e[5]+t,l=Math.abs(r),c=Math.abs(i),d=Math.abs(o),u=Math.abs(n),h=Math.abs(a),m=Math.abs(s),p=.5*(1+Math.sign(r*n))*Math.min(l,u),f=.5*(1+Math.sign(i*a))*Math.min(c,h),v=.5*(1+Math.sign(o*s))*Math.min(d,m),g=Math.max(l,u),_=Math.max(c,h),T=Math.max(d,m),x=Math.sqrt(p*p+f*f+v*v),E=Math.sign(l+r),b=Math.sign(c+i),A=Math.sign(d+o),S=Math.sign(u+n),M=Math.sign(h+a),w=Math.sign(m+s),C=this._totalOffset;if(x<C)return e[0]-=(1-E)*C,e[1]-=(1-b)*C,e[2]-=(1-A)*C,e[3]+=S*C,e[4]+=M*C,e[5]+=w*C,e;const R=C/Math.sqrt(g*g+_*_+T*T),I=C/x,O=I-R,N=-O;return e[0]+=r*(E*N+I),e[1]+=i*(b*N+I),e[2]+=o*(A*N+I),e[3]+=n*(S*O+R),e[4]+=a*(M*O+R),e[5]+=s*(w*O+R),e}applyToMbs(e){const t=(0,i.l)((0,z.a)(e)),r=this._totalOffset/t;return(0,i.b)((0,z.a)(this._tmpMbs),(0,z.a)(e),(0,z.a)(e),r),this._tmpMbs[3]=e[3]+e[3]*this._totalOffset/t,this._tmpMbs}applyToObb(e){return(0,V.gm)(e,this._totalOffset,this._totalOffset,a.RT.Global,this._tmpObb),this._tmpObb}},new class{constructor(e=0){this.offset=e,this.tmpVertex=(0,o.vt)()}applyToVertex(e,t,r){const o=(0,i.i)(j,e,t,r),n=(0,i.g)(k,o,this.localOrigin),a=this.offset/(0,i.l)(n);return(0,i.b)(this.tmpVertex,o,n,a),this.tmpVertex}applyToAabb(e){const t=q,r=Y,i=$;for(let o=0;o<3;++o)t[o]=e[0+o]+this.localOrigin[o],r[o]=e[3+o]+this.localOrigin[o],i[o]=t[o];const o=this.applyToVertex(t[0],t[1],t[2]);for(let t=0;t<3;++t)e[t]=o[t],e[t+3]=o[t];const n=t=>{const r=this.applyToVertex(t[0],t[1],t[2]);for(let t=0;t<3;++t)e[t]=Math.min(e[t],r[t]),e[t+3]=Math.max(e[t+3],r[t])};for(let e=1;e<8;++e){for(let o=0;o<3;++o)i[o]=e&1<<o?r[o]:t[o];n(i)}let a=0;for(let e=0;e<3;++e)t[e]*r[e]<0&&(a|=1<<e);if(0!==a&&7!==a)for(let e=0;e<8;++e)if(!(a&e)){for(let o=0;o<3;++o)i[o]=a&1<<o?0:e&1<<o?t[o]:r[o];n(i)}for(let t=0;t<3;++t)e[t]-=this.localOrigin[t],e[t+3]-=this.localOrigin[t];return e}};const j=(0,o.vt)(),k=(0,o.vt)(),q=(0,o.vt)(),Y=(0,o.vt)(),$=(0,o.vt)();var X=r(13030),Z=r(59907);class J{constructor(e){this.vertexBufferLayout=e}elementCount(e){return e.get(E.r.POSITION).indices.length}write(e,t,r,i,o,n){return(0,Z.SA)(r,i,this.vertexBufferLayout,e,t,o,n)}intersect(e,t,r,o,n,a,s){const l=this.vertexBufferLayout.createView(e).getField(E.r.POSITION,X.xs);if(null==l)return;const c=(0,i.a)(K,a,n),d=l.count/3,u=o.options.normalRequired;R(n,c,0,d,l.typedBuffer,l.typedBufferStride,u,((e,t,r)=>{s(e,r,t,!1)}))}}const K=(0,o.vt)();var Q=r(43616),ee=r(91829),te=r(72824),re=r(97220),ie=r(98958),oe=r(59643),ne=r(63907);ne.MT.LESS,ne.MT.ALWAYS;const ae={mask:255},se={function:{func:ne.MT.ALWAYS,ref:p.dd.OutlineVisualElementMask,mask:p.dd.OutlineVisualElementMask},operation:{fail:ne.eA.KEEP,zFail:ne.eA.KEEP,zPass:ne.eA.ZERO}},le={function:{func:ne.MT.ALWAYS,ref:p.dd.OutlineVisualElementMask,mask:p.dd.OutlineVisualElementMask},operation:{fail:ne.eA.KEEP,zFail:ne.eA.KEEP,zPass:ne.eA.REPLACE}};ne.MT.EQUAL,p.dd.OutlineVisualElementMask,p.dd.OutlineVisualElementMask,ne.eA.KEEP,ne.eA.KEEP,ne.eA.KEEP,ne.MT.NOTEQUAL,p.dd.OutlineVisualElementMask,p.dd.OutlineVisualElementMask,ne.eA.KEEP,ne.eA.KEEP,ne.eA.KEEP;var ce=r(74810),de=r(28491),ue=r(90644),he=r(49788);class me extends te.Zo{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=ce.mb,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=p.s2.Back,this.isInstanced=!1,this.hasInstancedColor=!1,this.emissiveStrength=0,this.emissiveSource=n.YJ.Color,this.emissiveBaseColor=o.uY,this.instancedDoublePrecision=!1,this.normalType=c.W.Attribute,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=(0,o.CN)(.2,.2,.2),this.diffuse=(0,o.CN)(.8,.8,.8),this.externalColor=(0,ee.fA)(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=(0,o.vt)(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.modelTransformation=null,this.drivenOpacity=!1,this.writeDepth=!0,this.customDepthTest=p.it.Less,this.textureAlphaMode=p.sf.Blend,this.textureAlphaCutoff=he.Q,this.textureAlphaPremultiplied=!1,this.renderOccluded=v.m$.Occlude,this.isDecoration=!1}}te.gy;class pe extends ie.w{constructor(e,t,i=new re.$(de.D,(()=>r.e(5141).then(r.bind(r,5141))))){super(e,t,i),this.type="DefaultMaterialTechnique"}_makePipeline(e,t){const{oitPass:r,output:i,transparent:o,cullFace:n,customDepthTest:a,hasOccludees:s,enableOffset:c}=e,d=r===oe.Y.NONE,u=r===oe.Y.FrontFace;return(0,ue.Ey)({blending:(0,l.RN)(i)&&o?(0,g.Yf)(r):null,culling:ve(e)?(0,ue.Xt)(n):null,depthTest:{func:(0,g.K_)(r,fe(a))},depthWrite:(0,g.z5)(e),drawBuffers:i===l.V.Depth?{buffers:[ne.Hr.NONE]}:(0,g.m6)(r,i),colorWrite:ue.kn,stencilWrite:s?ae:null,stencilTest:s?t?le:se:null,polygonOffset:d||u?null:(0,g.aB)(c)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e){return e?this._occludeePipelineState:super.getPipeline()}}function fe(e){return e===p.it.Lequal?ne.MT.LEQUAL:ne.MT.LESS}function ve(e){return e.cullFace!==p.s2.None||!e.hasSlicePlane&&!e.transparent&&!e.doubleSidedMode}var ge=r(90237),_e=r(53466),Te=r(51976),xe=r(35256);class Ee extends xe.E{constructor(e){super(),this.spherical=e,this.alphaDiscardMode=p.sf.Opaque,this.doubleSidedMode=u.W.None,this.pbrMode=h.A9.Disabled,this.cullFace=p.s2.None,this.normalType=c.W.Attribute,this.customDepthTest=p.it.Less,this.emissionSource=d.ZX.None,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.hasVerticalOffset=!1,this.hasColorTexture=!1,this.hasMetallicRoughnessTexture=!1,this.hasOcclusionTexture=!1,this.hasNormalTexture=!1,this.hasScreenSizePerspective=!1,this.hasVertexTangents=!1,this.hasOccludees=!1,this.instancedDoublePrecision=!1,this.hasModelTransformation=!1,this.offsetBackfaces=!1,this.vvSize=!1,this.vvColor=!1,this.receiveShadows=!1,this.receiveAmbientOcclusion=!1,this.textureAlphaPremultiplied=!1,this.instanced=!1,this.instancedColor=!1,this.writeDepth=!0,this.transparent=!1,this.enableOffset=!0,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.snowCover=!1,this.hasBloom=!1,this.hasColorTextureTransform=!1,this.hasEmissionTextureTransform=!1,this.hasNormalTextureTransform=!1,this.hasOcclusionTextureTransform=!1,this.hasMetallicRoughnessTextureTransform=!1,this.occlusionPass=!1,this.hasVvInstancing=!0,this.useCustomDTRExponentForWater=!1,this.useFillLights=!0,this.draped=!1}get textureCoordinateType(){return this.hasColorTexture||this.hasMetallicRoughnessTexture||this.emissionSource===d.ZX.Texture||this.hasOcclusionTexture||this.hasNormalTexture?_e.I.Default:_e.I.None}get objectAndLayerIdColorInstanced(){return this.instanced}get discardInvisibleFragments(){return this.transparent}}(0,ge._)([(0,Te.W)({count:p.sf.COUNT})],Ee.prototype,"alphaDiscardMode",void 0),(0,ge._)([(0,Te.W)({count:u.W.COUNT})],Ee.prototype,"doubleSidedMode",void 0),(0,ge._)([(0,Te.W)({count:h.A9.COUNT})],Ee.prototype,"pbrMode",void 0),(0,ge._)([(0,Te.W)({count:p.s2.COUNT})],Ee.prototype,"cullFace",void 0),(0,ge._)([(0,Te.W)({count:c.W.COUNT})],Ee.prototype,"normalType",void 0),(0,ge._)([(0,Te.W)({count:p.it.COUNT})],Ee.prototype,"customDepthTest",void 0),(0,ge._)([(0,Te.W)({count:d.ZX.COUNT})],Ee.prototype,"emissionSource",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasVertexColors",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasSymbolColors",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasVerticalOffset",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasColorTexture",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasMetallicRoughnessTexture",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasOcclusionTexture",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasNormalTexture",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasScreenSizePerspective",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasVertexTangents",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasOccludees",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"instancedDoublePrecision",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasModelTransformation",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"offsetBackfaces",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"vvSize",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"vvColor",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"receiveShadows",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"receiveAmbientOcclusion",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"textureAlphaPremultiplied",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"instanced",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"instancedColor",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"writeDepth",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"transparent",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"enableOffset",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"terrainDepthTest",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"cullAboveTerrain",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"snowCover",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasBloom",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasColorTextureTransform",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasEmissionTextureTransform",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasNormalTextureTransform",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasOcclusionTextureTransform",void 0),(0,ge._)([(0,Te.W)()],Ee.prototype,"hasMetallicRoughnessTextureTransform",void 0);var be=r(57323);class Ae extends pe{constructor(e,t){super(e,t,new re.$(be.R,(()=>r.e(9933).then(r.bind(r,39933))))),this.type="RealisticTreeTechnique"}}class Se extends v.im{constructor(e,t){super(e,we),this.materialType="default",this.supportsEdges=!0,this.produces=new Map([[U.N.OPAQUE_MATERIAL,e=>((0,l.iq)(e)||(0,l.PJ)(e))&&!this.transparent],[U.N.TRANSPARENT_MATERIAL,e=>((0,l.iq)(e)||(0,l.PJ)(e))&&this.transparent&&this.parameters.writeDepth],[U.N.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>((0,l.XY)(e)||(0,l.PJ)(e))&&this.transparent&&!this.parameters.writeDepth]]),this._vertexBufferLayout=function(e){const t=(0,s.BP)().vec3f(E.r.POSITION);return e.normalType===c.W.Compressed?t.vec2i16(E.r.NORMALCOMPRESSED,{glNormalized:!0}):t.vec3f(E.r.NORMAL),e.hasVertexTangents&&t.vec4f(E.r.TANGENT),(e.textureId||e.normalTextureId||e.metallicRoughnessTextureId||e.emissiveTextureId||e.occlusionTextureId)&&t.vec2f16(E.r.UV0),e.hasVertexColors&&t.vec4u8(E.r.COLOR),e.hasSymbolColors&&t.vec4u8(E.r.SYMBOLCOLOR),(0,m.E)()&&t.vec4u8(E.r.OLIDCOLOR),t}(this.parameters),this._configuration=new Ee(t.spherical)}isVisibleForOutput(e){return e!==l.V.Shadow&&e!==l.V.ShadowExcludeHighlight&&e!==l.V.ShadowHighlight||this.parameters.castShadows}get visible(){const{layerOpacity:e,colorMixMode:t,opacity:r,externalColor:i}=this.parameters;return e*("replace"===t?1:r)*("ignore"===t?1:i[3])>=he.Q}get _hasEmissiveBase(){return!!this.parameters.emissiveTextureId||!(0,i.p)(this.parameters.emissiveBaseColor,o.uY)}get hasEmissions(){return this.parameters.emissiveStrength>0&&(this.parameters.emissiveSource===n.YJ.Emissive&&this._hasEmissiveBase||this.parameters.emissiveSource===n.YJ.Color)}getConfiguration(e,t){const{parameters:r,_configuration:i}=this,{treeRendering:o,doubleSided:a,doubleSidedType:s}=r;return super.getConfiguration(e,t,this._configuration),i.hasNormalTexture=!o&&!!r.normalTextureId,i.hasColorTexture=!!r.textureId,i.hasVertexTangents=!o&&r.hasVertexTangents,i.instanced=r.isInstanced,i.instancedDoublePrecision=r.instancedDoublePrecision,i.vvSize=!!r.vvSize,i.hasVerticalOffset=null!=r.verticalOffset,i.hasScreenSizePerspective=null!=r.screenSizePerspective,i.hasSlicePlane=r.hasSlicePlane,i.alphaDiscardMode=r.textureAlphaMode,i.normalType=o?c.W.Attribute:r.normalType,i.transparent=this.transparent,i.writeDepth=r.writeDepth,null!=r.customDepthTest&&(i.customDepthTest=r.customDepthTest),i.hasOccludees=t.hasOccludees,i.cullFace=r.hasSlicePlane?p.s2.None:r.cullFace,i.cullAboveTerrain=t.cullAboveTerrain,i.hasModelTransformation=!o&&null!=r.modelTransformation,i.hasVertexColors=r.hasVertexColors,i.hasSymbolColors=r.hasSymbolColors,i.doubleSidedMode=o?u.W.WindingOrder:a&&"normal"===s?u.W.View:a&&"winding-order"===s?u.W.WindingOrder:u.W.None,i.instancedColor=r.hasInstancedColor,(0,l.RN)(e)?(i.terrainDepthTest=t.terrainDepthTest,i.receiveShadows=r.receiveShadows,i.receiveAmbientOcclusion=r.receiveAmbientOcclusion&&null!=t.ssao):(i.terrainDepthTest=!1,i.receiveShadows=i.receiveAmbientOcclusion=!1),i.vvColor=!!r.vvColor,i.textureAlphaPremultiplied=!!r.textureAlphaPremultiplied,i.pbrMode=r.usePBR?r.isSchematic?h.A9.Schematic:h.A9.Normal:h.A9.Disabled,i.hasMetallicRoughnessTexture=!o&&!!r.metallicRoughnessTextureId,i.emissionSource=o?d.ZX.None:null!=r.emissiveTextureId&&r.emissiveSource===n.YJ.Emissive?d.ZX.Texture:r.usePBR?r.emissiveSource===n.YJ.Emissive?d.ZX.EmissiveColor:d.ZX.SymbolColor:d.ZX.None,i.hasOcclusionTexture=!o&&!!r.occlusionTextureId,i.offsetBackfaces=!(!this.transparent||!r.offsetTransparentBackfaces),i.oitPass=t.oitPass,i.enableOffset=t.camera.relativeElevation<g.xt,i.snowCover=function(e){return null!=e.weather&&e.weatherVisible&&"snowy"===e.weather.type&&"enabled"===e.weather.snowCover}(t),i.hasBloom=(0,l.LG)(e),i.hasColorTextureTransform=!!r.colorTextureTransformMatrix,i.hasNormalTextureTransform=!!r.normalTextureTransformMatrix,i.hasEmissionTextureTransform=!!r.emissiveTextureTransformMatrix,i.hasOcclusionTextureTransform=!!r.occlusionTextureTransformMatrix,i.hasMetallicRoughnessTextureTransform=!!r.metallicRoughnessTextureTransformMatrix,i}intersect(e,t,r,o,n,s){if(null!=this.parameters.verticalOffset){const e=r.camera;(0,i.i)(ye,t[12],t[13],t[14]);let s=null;switch(r.viewingMode){case a.RT.Global:s=(0,i.n)(Oe,ye);break;case a.RT.Local:s=(0,i.c)(Oe,Ie)}let l=0;const c=(0,i.d)(Pe,ye,e.eye),d=(0,i.l)(c),u=(0,i.h)(c,c,1/d);let h=null;this.parameters.screenSizePerspective&&(h=(0,i.f)(s,u)),l+=(0,Q.kE)(e,d,this.parameters.verticalOffset,h??0,this.parameters.screenSizePerspective),(0,i.h)(s,s,l),(0,i.q)(Ne,s,r.transform.inverseRotation),o=(0,i.d)(Ce,o,Ne),n=(0,i.d)(Re,n,Ne)}var l;S(e,r,o,n,null!=(l=r.verticalOffset)?(W.offset=l,W):null,s)}createGLMaterial(e){return new Me(e)}createBufferWriter(){return new J(this._vertexBufferLayout)}get transparent(){const{parameters:{drivenOpacity:e,opacity:t,externalColor:[r,i,o,n],layerOpacity:a,texture:s,textureId:l,textureAlphaMode:c,colorMixMode:d}}=this;return e||t<1&&"replace"!==d||n<1&&"ignore"!==d||a<1||(null!=s||null!=l)&&c!==p.sf.Opaque&&c!==p.sf.Mask&&"replace"!==d}}class Me extends f.m8{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});const t=this._material.parameters;this.updateTexture(t.textureId);const r=e.camera.viewInverseTransposeMatrix;return(0,i.i)(t.origin,r[3],r[7],r[11]),this._material.setParameters(this.textureBindParameters),this.getTechnique(t.treeRendering?Ae:pe,e)}}class we extends me{constructor(){super(...arguments),this.treeRendering=!1,this.hasVertexTangents=!1}}const Ce=(0,o.vt)(),Re=(0,o.vt)(),Ie=(0,o.fA)(0,0,1),Oe=(0,o.vt)(),Ne=(0,o.vt)(),ye=(0,o.vt)(),Pe=(0,o.vt)()},51976:(e,t,r)=>{r.d(t,{K:()=>s,W:()=>l});var i=r(49186),o=r(4576);class n{constructor(e){this._bits=[...e]}equals(e){return(0,o.aI)(this._bits,e.bits)}get code(){return this._code??=String.fromCharCode(...this._bits),this._code}get bits(){return this._bits}}var a=r(65786);class s extends a.Y{constructor(){super(),this._parameterBits=this._parameterBits?.map((()=>0))??[],this._parameterNames??=[]}get key(){return this._key??=new n(this._parameterBits),this._key}decode(e=this.key){const t=this._parameterBits;this._parameterBits=[...e.bits];const r=this._parameterNames.map((e=>` ${e}: ${this[e]}`)).join("\n");return this._parameterBits=t,r}}function l(e={}){return(t,r)=>{t.hasOwnProperty("_parameterNames")||Object.defineProperty(t,"_parameterNames",{value:t._parameterNames?.slice()??[],configurable:!0,writable:!0}),t.hasOwnProperty("_parameterBits")||Object.defineProperty(t,"_parameterBits",{value:t._parameterBits?.slice()??[0],configurable:!0,writable:!0}),t._parameterNames.push(r);const o=e.count||2,n=Math.ceil(Math.log2(o)),a=t._parameterBits;let s=0;for(;a[s]+n>16;)s++,s>=a.length&&a.push(0);const l=a[s],c=(1<<n)-1<<l;a[s]+=n,e.count?Object.defineProperty(t,r,{get(){return(this._parameterBits[s]&c)>>l},set(t){if(this[r]!==t){if(this._key=null,this._parameterBits[s]=this._parameterBits[s]&~c|+t<<l&c,"number"!=typeof t)throw new i.A("internal:invalid-shader-configuration",`Configuration value for ${r} must be a number, got ${typeof t}`);if(null==e.count)throw new i.A("internal:invalid-shader-configuration",`Configuration value for ${r} must provide a count option`)}}}):Object.defineProperty(t,r,{get(){return!!((this._parameterBits[s]&c)>>l)},set(e){if(this[r]!==e&&(this._key=null,this._parameterBits[s]=this._parameterBits[s]&~c|+e<<l&c,"boolean"!=typeof e))throw new i.A("internal:invalid-shader-configuration",`Configuration value for ${r} must be boolean, got ${typeof e}`)}})}}},52540:(e,t,r)=>{r.d(t,{E:()=>s});var i=r(37585),o=r(48163),n=r(77108),a=r(31821);function s(e){e.uniforms.add(new n.E("zProjectionMap",(e=>function(e){const t=e.projectionMatrix;return(0,i.hZ)(l,t[14],t[10])}(e.camera)))),e.code.add(a.H`float linearizeDepth(float depth) {
511
+ }`)):e.vertex.code.add(n.H`void forwardMetallicRoughnessUV(){}`)}},51976:(e,t,r)=>{r.d(t,{K:()=>s,W:()=>c});var i=r(49186),o=r(4576);class n{constructor(e){this._bits=[...e]}equals(e){return(0,o.aI)(this._bits,e.bits)}get code(){return this._code??=String.fromCharCode(...this._bits),this._code}get bits(){return this._bits}}var a=r(65786);class s extends a.Y{constructor(){super(),this._parameterBits=this._parameterBits?.map((()=>0))??[],this._parameterNames??=[]}get key(){return this._key??=new n(this._parameterBits),this._key}decode(e=this.key){const t=this._parameterBits;this._parameterBits=[...e.bits];const r=this._parameterNames.map((e=>` ${e}: ${this[e]}`)).join("\n");return this._parameterBits=t,r}}function c(e={}){return(t,r)=>{t.hasOwnProperty("_parameterNames")||Object.defineProperty(t,"_parameterNames",{value:t._parameterNames?.slice()??[],configurable:!0,writable:!0}),t.hasOwnProperty("_parameterBits")||Object.defineProperty(t,"_parameterBits",{value:t._parameterBits?.slice()??[0],configurable:!0,writable:!0}),t._parameterNames.push(r);const o=e.count||2,n=Math.ceil(Math.log2(o)),a=t._parameterBits;let s=0;for(;a[s]+n>16;)s++,s>=a.length&&a.push(0);const c=a[s],l=(1<<n)-1<<c;a[s]+=n,e.count?Object.defineProperty(t,r,{get(){return(this._parameterBits[s]&l)>>c},set(t){if(this[r]!==t){if(this._key=null,this._parameterBits[s]=this._parameterBits[s]&~l|+t<<c&l,"number"!=typeof t)throw new i.A("internal:invalid-shader-configuration",`Configuration value for ${r} must be a number, got ${typeof t}`);if(null==e.count)throw new i.A("internal:invalid-shader-configuration",`Configuration value for ${r} must provide a count option`)}}}):Object.defineProperty(t,r,{get(){return!!((this._parameterBits[s]&l)>>c)},set(e){if(this[r]!==e&&(this._key=null,this._parameterBits[s]=this._parameterBits[s]&~l|+e<<c&l,"boolean"!=typeof e))throw new i.A("internal:invalid-shader-configuration",`Configuration value for ${r} must be boolean, got ${typeof e}`)}})}}},52540:(e,t,r)=>{r.d(t,{E:()=>s});var i=r(37585),o=r(48163),n=r(77108),a=r(31821);function s(e){e.uniforms.add(new n.E("zProjectionMap",(e=>function(e){const t=e.projectionMatrix;return(0,i.hZ)(c,t[14],t[10])}(e.camera)))),e.code.add(a.H`float linearizeDepth(float depth) {
718
512
  float depthNdc = depth * 2.0 - 1.0;
719
513
  float c1 = zProjectionMap[0];
720
514
  float c2 = zProjectionMap[1];
@@ -725,7 +519,7 @@ float depth = texelFetch(depthTexture, iuv, 0).r;
725
519
  return depth;
726
520
  }`),e.code.add(a.H`float linearDepthFromTexture(sampler2D depthTexture, vec2 uv) {
727
521
  return linearizeDepth(depthFromTexture(depthTexture, uv));
728
- }`)}const l=(0,o.vt)()},52587:(e,t,r)=>{r.d(t,{OH:()=>c,Y6:()=>s,pM:()=>l});var i=r(38954),o=r(51850),n=r(33079),a=r(31821);function s(e){e.vertex.code.add(a.H`float screenSizePerspectiveViewAngleDependentFactor(float absCosAngle) {
522
+ }`)}const c=(0,o.vt)()},52587:(e,t,r)=>{r.d(t,{OH:()=>l,Y6:()=>s,pM:()=>c});var i=r(38954),o=r(51850),n=r(33079),a=r(31821);function s(e){e.vertex.code.add(a.H`float screenSizePerspectiveViewAngleDependentFactor(float absCosAngle) {
729
523
  return absCosAngle * absCosAngle * absCosAngle;
730
524
  }`),e.vertex.code.add(a.H`vec3 screenSizePerspectiveScaleFactor(float absCosAngle, float distanceToCamera, vec3 params) {
731
525
  return vec3(
@@ -744,18 +538,18 @@ screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params)
744
538
  return mix(size * clamp(factor.x, factor.z, 1.0), size, factor.y);
745
539
  }`),e.vertex.code.add(a.H`vec2 screenSizePerspectiveScaleVec2(vec2 size, float absCosAngle, float distanceToCamera, vec3 params) {
746
540
  return applyScreenSizePerspectiveScaleFactorVec2(size, screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params));
747
- }`)}function l(e){e.uniforms.add(new n.t("screenSizePerspective",(e=>d(e.screenSizePerspective))))}function c(e){e.uniforms.add(new n.t("screenSizePerspectiveAlignment",(e=>d(e.screenSizePerspectiveAlignment||e.screenSizePerspective))))}function d(e){return(0,i.i)(u,e.parameters.divisor,e.parameters.offset,e.minScaleFactor)}const u=(0,o.vt)()},53466:(e,t,r)=>{r.d(t,{I:()=>i,U:()=>l});var i,o,n=r(21818),a=r(31821),s=r(46540);function l(e,t){switch(t.textureCoordinateType){case i.Default:return e.attributes.add(s.r.UV0,"vec2"),e.varyings.add("vuv0","vec2"),void e.vertex.code.add(a.H`void forwardTextureCoordinates() { vuv0 = uv0; }`);case i.Atlas:return e.attributes.add(s.r.UV0,"vec2"),e.attributes.add(s.r.UVREGION,"vec4"),e.varyings.add("vuv0","vec2"),e.varyings.add("vuvRegion","vec4"),void e.vertex.code.add(a.H`void forwardTextureCoordinates() {
541
+ }`)}function c(e){e.uniforms.add(new n.t("screenSizePerspective",(e=>d(e.screenSizePerspective))))}function l(e){e.uniforms.add(new n.t("screenSizePerspectiveAlignment",(e=>d(e.screenSizePerspectiveAlignment||e.screenSizePerspective))))}function d(e){return(0,i.i)(u,e.parameters.divisor,e.parameters.offset,e.minScaleFactor)}const u=(0,o.vt)()},53466:(e,t,r)=>{r.d(t,{I:()=>i,U:()=>c});var i,o,n=r(21818),a=r(31821),s=r(46540);function c(e,t){switch(t.textureCoordinateType){case i.Default:return e.attributes.add(s.r.UV0,"vec2"),e.varyings.add("vuv0","vec2"),void e.vertex.code.add(a.H`void forwardTextureCoordinates() { vuv0 = uv0; }`);case i.Atlas:return e.attributes.add(s.r.UV0,"vec2"),e.attributes.add(s.r.UVREGION,"vec4"),e.varyings.add("vuv0","vec2"),e.varyings.add("vuvRegion","vec4"),void e.vertex.code.add(a.H`void forwardTextureCoordinates() {
748
542
  vuv0 = uv0;
749
543
  vuvRegion = uvRegion;
750
- }`);default:(0,n.Xb)(t.textureCoordinateType);case i.None:return void e.vertex.code.add(a.H`void forwardTextureCoordinates() {}`);case i.COUNT:return}}(o=i||(i={}))[o.None=0]="None",o[o.Default=1]="Default",o[o.Atlas=2]="Atlas",o[o.COUNT=3]="COUNT"},57323:(e,t,r)=>{r.d(t,{R:()=>H,b:()=>L});var i=r(46686),o=r(32680),n=r(49255),a=r(76591),s=r(76597),l=r(60864),c=r(96336),d=r(71955),u=r(53466),h=r(92700),m=r(35640),p=r(40261),f=r(85417),v=r(10688),g=r(98619),_=r(22393),T=r(59469),x=r(25618),E=r(96598),b=r(42398),A=r(58614),S=r(27950),M=r(20693),w=r(33079),C=r(71988),R=r(20304),I=r(31821),O=r(63761),N=r(46540),y=r(60517),P=r(14113),D=r(49788);function L(e){const t=new P.N5,{attributes:r,vertex:L,fragment:H,varyings:F}=t,{output:B,offsetBackfaces:G,instancedColor:U,pbrMode:z,snowCover:V,spherical:W,hasBloom:j}=e,k=z===T.A9.Normal||z===T.A9.Schematic;if((0,M.NB)(L,e),r.add(N.r.POSITION,"vec3"),F.add("vpos","vec3",{invariant:!0}),t.include(b.A,e),t.include(l.B,e),t.include(m.G,e),t.include(E.Z,e),(0,n.RN)(B)&&((0,M.yu)(t.vertex,e),t.include(c.Y,e),t.include(s.d,e),G&&t.include(o.M),U&&t.attributes.add(N.r.INSTANCECOLOR,"vec4"),F.add("vNormalWorld","vec3"),F.add("localvpos","vec3",{invariant:!0}),t.include(u.U,e),t.include(i.oD,e),t.include(d.K,e),t.include(h.c,e),L.uniforms.add(new C.E("externalColor",(e=>e.externalColor))),F.add("vcolorExt","vec4"),L.main.add(I.H`
544
+ }`);default:(0,n.Xb)(t.textureCoordinateType);case i.None:return void e.vertex.code.add(a.H`void forwardTextureCoordinates() {}`);case i.COUNT:return}}(o=i||(i={}))[o.None=0]="None",o[o.Default=1]="Default",o[o.Atlas=2]="Atlas",o[o.COUNT=3]="COUNT"},57323:(e,t,r)=>{r.d(t,{R:()=>H,b:()=>D});var i=r(46686),o=r(32680),n=r(49255),a=r(76591),s=r(76597),c=r(60864),l=r(96336),d=r(71955),u=r(53466),h=r(92700),m=r(35640),p=r(40261),f=r(85417),v=r(89390),g=r(98619),_=r(22393),T=r(59469),x=r(3800),E=r(96598),b=r(42398),A=r(58614),S=r(27950),M=r(20693),w=r(33079),C=r(71988),R=r(20304),I=r(31821),O=r(63761),N=r(46540),y=r(60517),P=r(14113),L=r(49788);function D(e){const t=new P.N5,{attributes:r,vertex:D,fragment:H,varyings:F}=t,{output:B,offsetBackfaces:U,instancedColor:G,pbrMode:z,snowCover:V,spherical:W,hasBloom:j}=e,k=z===T.A9.Normal||z===T.A9.Schematic;if((0,M.NB)(D,e),r.add(N.r.POSITION,"vec3"),F.add("vpos","vec3",{invariant:!0}),t.include(b.A,e),t.include(c.B,e),t.include(m.G,e),t.include(E.Z,e),(0,n.RN)(B)&&((0,M.yu)(t.vertex,e),t.include(l.Y,e),t.include(s.d,e),U&&t.include(o.M),G&&t.attributes.add(N.r.INSTANCECOLOR,"vec4"),F.add("vNormalWorld","vec3"),F.add("localvpos","vec3",{invariant:!0}),t.include(u.U,e),t.include(i.oD,e),t.include(d.K,e),t.include(h.c,e),D.uniforms.add(new C.E("externalColor",(e=>e.externalColor))),F.add("vcolorExt","vec4"),D.main.add(I.H`
751
545
  forwardNormalizedVertexColor();
752
546
  vcolorExt = externalColor;
753
- ${(0,I.If)(U,"vcolorExt *= instanceColor * 0.003921568627451;")}
547
+ ${(0,I.If)(G,"vcolorExt *= instanceColor * 0.003921568627451;")}
754
548
  vcolorExt *= vvColor();
755
549
  vcolorExt *= getSymbolColor();
756
550
  forwardColorMixMode();
757
551
 
758
- bool alphaCut = vcolorExt.a < ${I.H.float(D.Q)};
552
+ bool alphaCut = vcolorExt.a < ${I.H.float(L.Q)};
759
553
  vpos = getVertexInLocalOriginSpace();
760
554
  localvpos = vpos - view[3].xyz;
761
555
  vpos = subtractOrigin(vpos);
@@ -768,8 +562,8 @@ vuvRegion = uvRegion;
768
562
  forwardTextureCoordinates();
769
563
 
770
564
  gl_Position = alphaCut ? vec4(1e38, 1e38, 1e38, 1.0) :
771
- ${(0,I.If)(G,"offsetBackfacingClipPosition(basePosition, vpos, vNormalWorld, cameraPosition);","basePosition;")}
772
- `)),(0,n.RN)(B)){const{hasColorTexture:r,hasColorTextureTransform:i,receiveShadows:o}=e;t.include(v.kA,e),t.include(f.n,e),t.include(A.S,e),t.include(e.instancedDoublePrecision?x.G:x.Bz,e),t.fragment.include(a.HQ,e),t.include(y.z,e),(0,M.yu)(t.fragment,e),(0,g.Gc)(H),(0,v.a8)(H),(0,v.eU)(H),H.uniforms.add(L.uniforms.get("localOrigin"),L.uniforms.get("view"),new w.t("ambient",(e=>e.ambient)),new w.t("diffuse",(e=>e.diffuse)),new R.m("opacity",(e=>e.opacity)),new R.m("layerOpacity",(e=>e.layerOpacity))),r&&H.uniforms.add(new O.N("tex",(e=>e.texture))),t.include(T._Z,e),t.include(_.c,e),H.include(S.N),(0,g.O4)(H),H.main.add(I.H`
565
+ ${(0,I.If)(U,"offsetBackfacingClipPosition(basePosition, vpos, vNormalWorld, cameraPosition);","basePosition;")}
566
+ `)),(0,n.RN)(B)){const{hasColorTexture:r,hasColorTextureTransform:i,receiveShadows:o}=e;t.include(v.kA,e),H.include(f.n,e),t.include(A.S,e),t.include(e.instancedDoublePrecision?x.G:x.Bz,e),H.include(a.HQ,e),t.include(y.z,e),(0,M.yu)(H,e),(0,g.Gc)(H),(0,v.a8)(H),(0,v.eU)(H),H.uniforms.add(D.uniforms.get("localOrigin"),D.uniforms.get("view"),new w.t("ambient",(e=>e.ambient)),new w.t("diffuse",(e=>e.diffuse)),new R.m("opacity",(e=>e.opacity)),new R.m("layerOpacity",(e=>e.layerOpacity))),r&&H.uniforms.add(new O.N("tex",(e=>e.texture))),t.include(T._Z,e),H.include(_.c,e),H.include(S.N),(0,g.O4)(H),H.main.add(I.H`
773
567
  discardBySlice(vpos);
774
568
  discardByTerrainDepth();
775
569
  vec4 texColor = ${r?`texture(tex, ${i?"colorUV":"vuv0"})`:" vec4(1.0)"};
@@ -797,27 +591,27 @@ vuvRegion = uvRegion;
797
591
  additionalLight += backLightFactor * mainLightIntensity;`}
798
592
  ${(0,I.If)(k,`vec3 normalGround = ${W?"normalize(vpos + localOrigin)":"vec3(0.0, 0.0, 1.0)"};`)}
799
593
  ${k?I.H`float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
800
- ${(0,I.If)(V,I.H`mrr = vec3(0.0, 1.0, 0.04);`)}
594
+ ${(0,I.If)(V,I.H`mrr = applySnowToMRR(mrr, 1.0)`)}
801
595
  vec4 emission = ${V||j?"vec4(0.0)":"getEmissions(albedo)"};
802
596
  vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:I.H`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
803
597
  vec4 finalColor = vec4(shadedColor, opacity_);
804
- outputColorHighlightOID(finalColor, vpos, albedo);`)}return t.include(p.E,e),t}const H=Object.freeze(Object.defineProperty({__proto__:null,build:L},Symbol.toStringTag,{value:"Module"}))},57917:(e,t,r)=>{r.d(t,{S:()=>n});var i=r(34275),o=r(20498);function n(e){if(e.length<i.y9)return Array.from(e);if(Array.isArray(e))return Float64Array.from(e);if(!("BYTES_PER_ELEMENT"in e))return Array.from(e);switch(e.BYTES_PER_ELEMENT){case 1:return Uint8Array.from(e);case 2:return(0,i.LW)(e)?(0,o.pX)().from(e):(0,i.jq)(e)?Uint16Array.from(e):Int16Array.from(e);case 4:return Float32Array.from(e);default:return Float64Array.from(e)}}},58614:(e,t,r)=>{r.d(t,{S:()=>s}),r(28421);var i=r(20304),o=r(31821),n=r(89192),a=r(49788);function s(e,t){!function(e,t,r){const i=e.fragment,s=t.alphaDiscardMode,l=s===n.sf.Blend;s!==n.sf.Mask&&s!==n.sf.MaskBlend||i.uniforms.add(r),i.code.add(o.H`
598
+ outputColorHighlightOID(finalColor, vpos, albedo ${(0,I.If)(V,", 1.0")});`)}return t.include(p.E,e),t}const H=Object.freeze(Object.defineProperty({__proto__:null,build:D},Symbol.toStringTag,{value:"Module"}))},57917:(e,t,r)=>{r.d(t,{S:()=>n});var i=r(34275),o=r(20498);function n(e){if(e.length<i.y9)return Array.from(e);if(Array.isArray(e))return Float64Array.from(e);if(!("BYTES_PER_ELEMENT"in e))return Array.from(e);switch(e.BYTES_PER_ELEMENT){case 1:return Uint8Array.from(e);case 2:return(0,i.LW)(e)?(0,o.pX)().from(e):(0,i.jq)(e)?Uint16Array.from(e):Int16Array.from(e);case 4:return Float32Array.from(e);default:return Float64Array.from(e)}}},58614:(e,t,r)=>{r.d(t,{S:()=>s}),r(28421);var i=r(20304),o=r(31821),n=r(89192),a=r(49788);function s(e,t){!function(e,t,r){const i=e.fragment,s=t.alphaDiscardMode,c=s===n.sf.Blend;s!==n.sf.Mask&&s!==n.sf.MaskBlend||i.uniforms.add(r),i.code.add(o.H`
805
599
  void discardOrAdjustAlpha(inout vec4 color) {
806
- ${s===n.sf.Opaque?"color.a = 1.0;":`if (color.a < ${l?o.H.float(a.Q):"textureAlphaCutoff"}) {\n discard;\n } ${(0,o.If)(s===n.sf.Mask,"else { color.a = 1.0; }")}`}
600
+ ${s===n.sf.Opaque?"color.a = 1.0;":`if (color.a < ${c?o.H.float(a.Q):"textureAlphaCutoff"}) {\n discard;\n } ${(0,o.If)(s===n.sf.Mask,"else { color.a = 1.0; }")}`}
807
601
  }
808
- `)}(e,t,new i.m("textureAlphaCutoff",(e=>e.textureAlphaCutoff)))}},59469:(e,t,r)=>{r.d(t,{A9:()=>i,_Z:()=>m});var i,o,n=r(99208),a=r(40710),s=r(33079),l=r(31821),c=r(15976),d=r(63761),u=(r(74810),r(69270)),h=r(65786);function m(e,t){const r=t.pbrMode,o=e.fragment;if(r!==i.Schematic&&r!==i.Disabled&&r!==i.Normal)return void o.code.add(l.H`void applyPBRFactors() {}`);if(r===i.Disabled)return void o.code.add(l.H`void applyPBRFactors() {}
809
- float getBakedOcclusion() { return 1.0; }`);if(r===i.Schematic)return void o.code.add(l.H`vec3 mrr = vec3(0.0, 0.6, 0.2);
602
+ `)}(e,t,new i.m("textureAlphaCutoff",(e=>e.textureAlphaCutoff)))}},59469:(e,t,r)=>{r.d(t,{A9:()=>i,_Z:()=>m});var i,o,n=r(99208),a=r(40710),s=r(33079),c=r(31821),l=r(15976),d=r(63761),u=(r(74810),r(69270)),h=r(65786);function m(e,t){const r=t.pbrMode,o=e.fragment;if(r!==i.Schematic&&r!==i.Disabled&&r!==i.Normal)return void o.code.add(c.H`void applyPBRFactors() {}`);if(r===i.Disabled)return void o.code.add(c.H`void applyPBRFactors() {}
603
+ float getBakedOcclusion() { return 1.0; }`);if(r===i.Schematic)return void o.code.add(c.H`vec3 mrr = vec3(0.0, 0.6, 0.2);
810
604
  float occlusion = 1.0;
811
605
  void applyPBRFactors() {}
812
- float getBakedOcclusion() { return 1.0; }`);const{hasMetallicRoughnessTexture:h,hasMetallicRoughnessTextureTransform:m,hasOcclusionTexture:p,hasOcclusionTextureTransform:f,bindType:v}=t;(h||p)&&e.include(n.r,t),o.code.add(l.H`vec3 mrr;
813
- float occlusion;`),h&&o.uniforms.add(v===u.c.Pass?new d.N("texMetallicRoughness",(e=>e.textureMetallicRoughness)):new c.o("texMetallicRoughness",(e=>e.textureMetallicRoughness))),p&&o.uniforms.add(v===u.c.Pass?new d.N("texOcclusion",(e=>e.textureOcclusion)):new c.o("texOcclusion",(e=>e.textureOcclusion))),o.uniforms.add(v===u.c.Pass?new s.t("mrrFactors",(e=>e.mrrFactors)):new a.W("mrrFactors",(e=>e.mrrFactors))),o.code.add(l.H`
814
- ${(0,l.If)(h,l.H`void applyMetallicRoughness(vec2 uv) {
606
+ float getBakedOcclusion() { return 1.0; }`);const{hasMetallicRoughnessTexture:h,hasMetallicRoughnessTextureTransform:m,hasOcclusionTexture:p,hasOcclusionTextureTransform:f,bindType:v}=t;(h||p)&&e.include(n.r,t),o.code.add(c.H`vec3 mrr;
607
+ float occlusion;`),h&&o.uniforms.add(v===u.c.Pass?new d.N("texMetallicRoughness",(e=>e.textureMetallicRoughness)):new l.o("texMetallicRoughness",(e=>e.textureMetallicRoughness))),p&&o.uniforms.add(v===u.c.Pass?new d.N("texOcclusion",(e=>e.textureOcclusion)):new l.o("texOcclusion",(e=>e.textureOcclusion))),o.uniforms.add(v===u.c.Pass?new s.t("mrrFactors",(e=>e.mrrFactors)):new a.W("mrrFactors",(e=>e.mrrFactors))),o.code.add(c.H`
608
+ ${(0,c.If)(h,c.H`void applyMetallicRoughness(vec2 uv) {
815
609
  vec3 metallicRoughness = textureLookup(texMetallicRoughness, uv).rgb;
816
610
  mrr[0] *= metallicRoughness.b;
817
611
  mrr[1] *= metallicRoughness.g;
818
612
  }`)}
819
613
 
820
- ${(0,l.If)(p,"void applyOcclusion(vec2 uv) { occlusion *= textureLookup(texOcclusion, uv).r; }")}
614
+ ${(0,c.If)(p,"void applyOcclusion(vec2 uv) { occlusion *= textureLookup(texOcclusion, uv).r; }")}
821
615
 
822
616
  float getBakedOcclusion() {
823
617
  return ${p?"occlusion":"1.0"};
@@ -827,24 +621,24 @@ float occlusion;`),h&&o.uniforms.add(v===u.c.Pass?new d.N("texMetallicRoughness"
827
621
  mrr = mrrFactors;
828
622
  occlusion = 1.0;
829
623
 
830
- ${(0,l.If)(h,`applyMetallicRoughness(${m?"metallicRoughnessUV":"vuv0"});`)}
831
- ${(0,l.If)(p,`applyOcclusion(${f?"occlusionUV":"vuv0"});`)}
624
+ ${(0,c.If)(h,`applyMetallicRoughness(${m?"metallicRoughnessUV":"vuv0"});`)}
625
+ ${(0,c.If)(p,`applyOcclusion(${f?"occlusionUV":"vuv0"});`)}
832
626
  }
833
- `)}(o=i||(i={}))[o.Disabled=0]="Disabled",o[o.Normal=1]="Normal",o[o.Schematic=2]="Schematic",o[o.Water=3]="Water",o[o.WaterOnIntegratedMesh=4]="WaterOnIntegratedMesh",o[o.Simplified=5]="Simplified",o[o.TerrainWithWater=6]="TerrainWithWater",o[o.COUNT=7]="COUNT",h.Y},59643:(e,t,r)=>{var i;r.d(t,{Y:()=>i}),function(e){e[e.NONE=0]="NONE",e[e.ColorAlpha=1]="ColorAlpha",e[e.FrontFace=2]="FrontFace",e[e.COUNT=3]="COUNT"}(i||(i={}))},59907:(e,t,r)=>{r.d(t,{Hk:()=>m,Pq:()=>h,SA:()=>_,Ut:()=>u,p1:()=>p,tb:()=>f,uO:()=>l,vx:()=>g}),r(38954);var i=r(51850),o=r(58083),n=r(13030),a=r(620),s=r(46540);function l(e,t,r,i=1){const{data:o,indices:n}=e,a=t.typedBuffer,s=t.typedBufferStride,l=n.length;if(r*=s,1===i)for(let e=0;e<l;++e)a[r]=o[n[e]],r+=s;else for(let e=0;e<l;++e){const t=o[n[e]];for(let e=0;e<i;e++)a[r]=t,r+=s}}function c(e,t,r){const{data:i,indices:o}=e,n=t.typedBuffer,a=t.typedBufferStride,s=o.length;r*=a;for(let e=0;e<s;++e){const t=2*o[e];n[r]=i[t],n[r+1]=i[t+1],r+=a}}function d(e,t,r,i=1){const{data:o,indices:n}=e,a=t.typedBuffer,s=t.typedBufferStride,l=n.length;if(r*=s,1===i)for(let e=0;e<l;++e){const t=3*n[e];a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],r+=s}else for(let e=0;e<l;++e){const t=3*n[e];for(let e=0;e<i;++e)a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],r+=s}}function u(e,t,r,i=1){const{data:o,indices:n}=e,a=t.typedBuffer,s=t.typedBufferStride,l=n.length;if(r*=s,1===i)for(let e=0;e<l;++e){const t=4*n[e];a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],a[r+3]=o[t+3],r+=s}else for(let e=0;e<l;++e){const t=4*n[e];for(let e=0;e<i;++e)a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],a[r+3]=o[t+3],r+=s}}function h(e,t,r){const i=e.typedBuffer,o=e.typedBufferStride;t*=o;for(let e=0;e<r;++e)i[t]=0,i[t+1]=0,i[t+2]=0,i[t+3]=0,t+=o}function m(e,t,r,i,n=1){if(!t)return void d(e,r,i,n);const{data:a,indices:s}=e,l=r.typedBuffer,c=r.typedBufferStride,u=s.length,h=t[0],m=t[1],p=t[2],f=t[4],v=t[5],g=t[6],_=t[8],T=t[9],x=t[10],E=t[12],b=t[13],A=t[14];i*=c;let S=0,M=0,w=0;const C=(0,o.tZ)(t)?e=>{S=a[e]+E,M=a[e+1]+b,w=a[e+2]+A}:e=>{const t=a[e],r=a[e+1],i=a[e+2];S=h*t+f*r+_*i+E,M=m*t+v*r+T*i+b,w=p*t+g*r+x*i+A};if(1===n)for(let e=0;e<u;++e)C(3*s[e]),l[i]=S,l[i+1]=M,l[i+2]=w,i+=c;else for(let e=0;e<u;++e){C(3*s[e]);for(let e=0;e<n;++e)l[i]=S,l[i+1]=M,l[i+2]=w,i+=c}}function p(e,t,r,i,n=1){if(!t)return void d(e,r,i,n);const{data:a,indices:s}=e,l=t,c=r.typedBuffer,u=r.typedBufferStride,h=s.length,m=l[0],p=l[1],f=l[2],v=l[4],g=l[5],_=l[6],T=l[8],x=l[9],E=l[10],b=!(0,o.ut)(l),A=1e-6,S=1-A;i*=u;let M=0,w=0,C=0;const R=(0,o.tZ)(l)?e=>{M=a[e],w=a[e+1],C=a[e+2]}:e=>{const t=a[e],r=a[e+1],i=a[e+2];M=m*t+v*r+T*i,w=p*t+g*r+x*i,C=f*t+_*r+E*i};if(1===n)if(b)for(let e=0;e<h;++e){R(3*s[e]);const t=M*M+w*w+C*C;if(t<S&&t>A){const e=1/Math.sqrt(t);c[i]=M*e,c[i+1]=w*e,c[i+2]=C*e}else c[i]=M,c[i+1]=w,c[i+2]=C;i+=u}else for(let e=0;e<h;++e)R(3*s[e]),c[i]=M,c[i+1]=w,c[i+2]=C,i+=u;else for(let e=0;e<h;++e){if(R(3*s[e]),b){const e=M*M+w*w+C*C;if(e<S&&e>A){const t=1/Math.sqrt(e);M*=t,w*=t,C*=t}}for(let e=0;e<n;++e)c[i]=M,c[i+1]=w,c[i+2]=C,i+=u}}function f(e,t,r,i,o=1){const{data:n,indices:a}=e,s=r.typedBuffer,l=r.typedBufferStride,c=a.length;if(i*=l,t!==n.length||4!==t)if(1!==o)if(4!==t)for(let e=0;e<c;++e){const t=3*a[e];for(let e=0;e<o;++e)s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=255,i+=l}else for(let e=0;e<c;++e){const t=4*a[e];for(let e=0;e<o;++e)s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=n[t+3],i+=l}else{if(4===t){for(let e=0;e<c;++e){const t=4*a[e];s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=n[t+3],i+=l}return}for(let e=0;e<c;++e){const t=3*a[e];s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=255,i+=l}}else{s[i]=n[0],s[i+1]=n[1],s[i+2]=n[2],s[i+3]=n[3];const e=new Uint32Array(r.typedBuffer.buffer,r.start),t=l/4,a=e[i/=4];i+=t;const d=c*o;for(let r=1;r<d;++r)e[i]=a,i+=t}}function v(e,t,r){const{data:i,indices:o}=e,n=t.typedBuffer,a=t.typedBufferStride,s=o.length,l=i[0];r*=a;for(let e=0;e<s;++e)n[r]=l,r+=a}function g(e,t,r,i,o=1){const n=t.typedBuffer,a=t.typedBufferStride;if(i*=a,1===o)for(let t=0;t<r;++t)n[i]=e[0],n[i+1]=e[1],n[i+2]=e[2],n[i+3]=e[3],i+=a;else for(let t=0;t<r;++t)for(let t=0;t<o;++t)n[i]=e[0],n[i+1]=e[1],n[i+2]=e[2],n[i+3]=e[3],i+=a}function _(e,t,r,i,o,a,l){let c={numItems:0,numVerticesPerItem:0};for(const d of r.fields.keys()){const r=e.get(d),u=r?.indices;if(r&&u)d===s.r.POSITION&&(c={numItems:1,numVerticesPerItem:u.length}),T(d,r,i,o,a,l);else if(d===s.r.OLIDCOLOR&&null!=t){const r=e.get(s.r.POSITION)?.indices;if(r){const e=r.length;g(t,a.getField(d,n.XP),e,l)}}}return c}function T(e,t,r,i,l,h){switch(e){case s.r.POSITION:{(0,a.vA)(3===t.size);const i=l.getField(e,n.xs);(0,a.vA)(!!i,`No buffer view for ${e}`),m(t,r,i,h);break}case s.r.NORMAL:{(0,a.vA)(3===t.size);const r=l.getField(e,n.xs);(0,a.vA)(!!r,`No buffer view for ${e}`),p(t,i,r,h);break}case s.r.NORMALCOMPRESSED:case s.r.PROFILERIGHT:case s.r.PROFILEUP:{(0,a.vA)(2===t.size);const r=l.getField(e,n.mJ);(0,a.vA)(!!r,`No buffer view for ${e}`),c(t,r,h);break}case s.r.UV0:{(0,a.vA)(2===t.size);const r=l.getField(e,n.ZD)??l.getField(e,n.gH);(0,a.vA)(!!r,`No buffer view for ${e}`),c(t,r,h);break}case s.r.UVI:{(0,a.vA)(2===t.size);const r=l.getField(e,n.mJ);(0,a.vA)(!!r,`No buffer view for ${e}`),c(t,r,h);break}case s.r.COLOR:case s.r.SYMBOLCOLOR:{const r=l.getField(e,n.XP);(0,a.vA)(!!r,`No buffer view for ${e}`),(0,a.vA)(3===t.size||4===t.size),f(t,t.size,r,h);break}case s.r.SIZEFEATUREATTRIBUTE:{const r=l.getField(e,n.Y$);(0,a.vA)(!!r,`No buffer view for ${e}`),(0,a.vA)(1===t.size),v(t,r,h);break}case s.r.COLORFEATUREATTRIBUTE:case s.r.OPACITYFEATUREATTRIBUTE:{const r=l.getField(e,n.XW)??l.getField(e,n.Y$);(0,a.vA)(!!r,`No buffer view for ${e}`),(0,a.vA)(1===t.size),v(t,r,h);break}case s.r.TANGENT:{(0,a.vA)(4===t.size);const i=l.getField(e,n.Eq);(0,a.vA)(!!i,`No buffer view for ${e}`),function(e,t,r,i,n=1){if(!t)return void u(e,r,i,n);const{data:a,indices:s}=e,l=t,c=r.typedBuffer,d=r.typedBufferStride,h=s.length,m=l[0],p=l[1],f=l[2],v=l[4],g=l[5],_=l[6],T=l[8],x=l[9],E=l[10],b=!(0,o.ut)(l),A=1e-6,S=1-A;if(i*=d,1===n)for(let e=0;e<h;++e){const t=4*s[e],r=a[t],o=a[t+1],n=a[t+2],l=a[t+3];let u=m*r+v*o+T*n,h=p*r+g*o+x*n,M=f*r+_*o+E*n;if(b){const e=u*u+h*h+M*M;if(e<S&&e>A){const t=1/Math.sqrt(e);u*=t,h*=t,M*=t}}c[i]=u,c[i+1]=h,c[i+2]=M,c[i+3]=l,i+=d}else for(let e=0;e<h;++e){const t=4*s[e],r=a[t],o=a[t+1],l=a[t+2],u=a[t+3];let h=m*r+v*o+T*l,M=p*r+g*o+x*l,w=f*r+_*o+E*l;if(b){const e=h*h+M*M+w*w;if(e<S&&e>A){const t=1/Math.sqrt(e);h*=t,M*=t,w*=t}}for(let e=0;e<n;++e)c[i]=h,c[i+1]=M,c[i+2]=w,c[i+3]=u,i+=d}}(t,r,i,h);break}case s.r.PROFILEVERTEXANDNORMAL:{(0,a.vA)(4===t.size);const r=l.getField(e,n.jz)??l.getField(e,n.Eq);(0,a.vA)(!!r,`No buffer view for ${e}`),u(t,r,h);break}case s.r.PROFILEAUXDATA:{(0,a.vA)(3===t.size);const r=l.getField(e,n.EC)??l.getField(e,n.xs);(0,a.vA)(!!r,`No buffer view for ${e}`),d(t,r,h);break}}}(0,i.vt)()},60517:(e,t,r)=>{r.d(t,{z:()=>d});var i=r(49255),o=r(22911),n=r(42593),a=r(63365),s=r(31821),l=r(59643),c=r(49788);function d(e,t){e.include(n.Q,t),e.include(o.NL,t),e.fragment.include(a.a);const r=t.output===i.V.ObjectAndLayerIdColor,d=(0,i.LG)(t.output),u=(0,i.RN)(t.output)&&t.oitPass===l.Y.ColorAlpha,h=(0,i.RN)(t.output)&&t.oitPass!==l.Y.ColorAlpha,m=t.discardInvisibleFragments;let p=0;(h||d||u)&&e.outputs.add("fragColor","vec4",p++),d&&e.outputs.add("fragEmission","vec4",p++),u&&e.outputs.add("fragAlpha","float",p++),e.fragment.code.add(s.H`
834
- void outputColorHighlightOID(vec4 finalColor, const in vec3 vWorldPosition, vec3 emissiveBaseColor) {
835
- ${(0,s.If)(r,"finalColor.a = 1.0;")}
627
+ `)}(o=i||(i={}))[o.Disabled=0]="Disabled",o[o.Normal=1]="Normal",o[o.Schematic=2]="Schematic",o[o.Water=3]="Water",o[o.WaterOnIntegratedMesh=4]="WaterOnIntegratedMesh",o[o.Simplified=5]="Simplified",o[o.TerrainWithWater=6]="TerrainWithWater",o[o.COUNT=7]="COUNT",h.Y},59643:(e,t,r)=>{var i;r.d(t,{Y:()=>i}),function(e){e[e.NONE=0]="NONE",e[e.ColorAlpha=1]="ColorAlpha",e[e.FrontFace=2]="FrontFace",e[e.COUNT=3]="COUNT"}(i||(i={}))},59907:(e,t,r)=>{r.d(t,{Hk:()=>m,Pq:()=>h,SA:()=>_,Ut:()=>u,p1:()=>p,tb:()=>f,uO:()=>c,vx:()=>g}),r(38954);var i=r(51850),o=r(58083),n=r(13030),a=r(620),s=r(46540);function c(e,t,r,i=1){const{data:o,indices:n}=e,a=t.typedBuffer,s=t.typedBufferStride,c=n.length;if(r*=s,1===i)for(let e=0;e<c;++e)a[r]=o[n[e]],r+=s;else for(let e=0;e<c;++e){const t=o[n[e]];for(let e=0;e<i;e++)a[r]=t,r+=s}}function l(e,t,r){const{data:i,indices:o}=e,n=t.typedBuffer,a=t.typedBufferStride,s=o.length;r*=a;for(let e=0;e<s;++e){const t=2*o[e];n[r]=i[t],n[r+1]=i[t+1],r+=a}}function d(e,t,r,i=1){const{data:o,indices:n}=e,a=t.typedBuffer,s=t.typedBufferStride,c=n.length;if(r*=s,1===i)for(let e=0;e<c;++e){const t=3*n[e];a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],r+=s}else for(let e=0;e<c;++e){const t=3*n[e];for(let e=0;e<i;++e)a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],r+=s}}function u(e,t,r,i=1){const{data:o,indices:n}=e,a=t.typedBuffer,s=t.typedBufferStride,c=n.length;if(r*=s,1===i)for(let e=0;e<c;++e){const t=4*n[e];a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],a[r+3]=o[t+3],r+=s}else for(let e=0;e<c;++e){const t=4*n[e];for(let e=0;e<i;++e)a[r]=o[t],a[r+1]=o[t+1],a[r+2]=o[t+2],a[r+3]=o[t+3],r+=s}}function h(e,t,r){const i=e.typedBuffer,o=e.typedBufferStride;t*=o;for(let e=0;e<r;++e)i[t]=0,i[t+1]=0,i[t+2]=0,i[t+3]=0,t+=o}function m(e,t,r,i,n=1){if(!t)return void d(e,r,i,n);const{data:a,indices:s}=e,c=r.typedBuffer,l=r.typedBufferStride,u=s.length,h=t[0],m=t[1],p=t[2],f=t[4],v=t[5],g=t[6],_=t[8],T=t[9],x=t[10],E=t[12],b=t[13],A=t[14];i*=l;let S=0,M=0,w=0;const C=(0,o.tZ)(t)?e=>{S=a[e]+E,M=a[e+1]+b,w=a[e+2]+A}:e=>{const t=a[e],r=a[e+1],i=a[e+2];S=h*t+f*r+_*i+E,M=m*t+v*r+T*i+b,w=p*t+g*r+x*i+A};if(1===n)for(let e=0;e<u;++e)C(3*s[e]),c[i]=S,c[i+1]=M,c[i+2]=w,i+=l;else for(let e=0;e<u;++e){C(3*s[e]);for(let e=0;e<n;++e)c[i]=S,c[i+1]=M,c[i+2]=w,i+=l}}function p(e,t,r,i,n=1){if(!t)return void d(e,r,i,n);const{data:a,indices:s}=e,c=t,l=r.typedBuffer,u=r.typedBufferStride,h=s.length,m=c[0],p=c[1],f=c[2],v=c[4],g=c[5],_=c[6],T=c[8],x=c[9],E=c[10],b=!(0,o.ut)(c),A=1e-6,S=1-A;i*=u;let M=0,w=0,C=0;const R=(0,o.tZ)(c)?e=>{M=a[e],w=a[e+1],C=a[e+2]}:e=>{const t=a[e],r=a[e+1],i=a[e+2];M=m*t+v*r+T*i,w=p*t+g*r+x*i,C=f*t+_*r+E*i};if(1===n)if(b)for(let e=0;e<h;++e){R(3*s[e]);const t=M*M+w*w+C*C;if(t<S&&t>A){const e=1/Math.sqrt(t);l[i]=M*e,l[i+1]=w*e,l[i+2]=C*e}else l[i]=M,l[i+1]=w,l[i+2]=C;i+=u}else for(let e=0;e<h;++e)R(3*s[e]),l[i]=M,l[i+1]=w,l[i+2]=C,i+=u;else for(let e=0;e<h;++e){if(R(3*s[e]),b){const e=M*M+w*w+C*C;if(e<S&&e>A){const t=1/Math.sqrt(e);M*=t,w*=t,C*=t}}for(let e=0;e<n;++e)l[i]=M,l[i+1]=w,l[i+2]=C,i+=u}}function f(e,t,r,i,o=1){const{data:n,indices:a}=e,s=r.typedBuffer,c=r.typedBufferStride,l=a.length;if(i*=c,t!==n.length||4!==t)if(1!==o)if(4!==t)for(let e=0;e<l;++e){const t=3*a[e];for(let e=0;e<o;++e)s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=255,i+=c}else for(let e=0;e<l;++e){const t=4*a[e];for(let e=0;e<o;++e)s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=n[t+3],i+=c}else{if(4===t){for(let e=0;e<l;++e){const t=4*a[e];s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=n[t+3],i+=c}return}for(let e=0;e<l;++e){const t=3*a[e];s[i]=n[t],s[i+1]=n[t+1],s[i+2]=n[t+2],s[i+3]=255,i+=c}}else{s[i]=n[0],s[i+1]=n[1],s[i+2]=n[2],s[i+3]=n[3];const e=new Uint32Array(r.typedBuffer.buffer,r.start),t=c/4,a=e[i/=4];i+=t;const d=l*o;for(let r=1;r<d;++r)e[i]=a,i+=t}}function v(e,t,r){const{data:i,indices:o}=e,n=t.typedBuffer,a=t.typedBufferStride,s=o.length,c=i[0];r*=a;for(let e=0;e<s;++e)n[r]=c,r+=a}function g(e,t,r,i,o=1){const n=t.typedBuffer,a=t.typedBufferStride;if(i*=a,1===o)for(let t=0;t<r;++t)n[i]=e[0],n[i+1]=e[1],n[i+2]=e[2],n[i+3]=e[3],i+=a;else for(let t=0;t<r;++t)for(let t=0;t<o;++t)n[i]=e[0],n[i+1]=e[1],n[i+2]=e[2],n[i+3]=e[3],i+=a}function _(e,t,r,i,o,a,c){let l={numItems:0,numVerticesPerItem:0};for(const d of r.fields.keys()){const r=e.get(d),u=r?.indices;if(r&&u)d===s.r.POSITION&&(l={numItems:1,numVerticesPerItem:u.length}),T(d,r,i,o,a,c);else if(d===s.r.OLIDCOLOR&&null!=t){const r=e.get(s.r.POSITION)?.indices;if(r){const e=r.length;g(t,a.getField(d,n.XP),e,c)}}}return l}function T(e,t,r,i,c,h){switch(e){case s.r.POSITION:{(0,a.vA)(3===t.size);const i=c.getField(e,n.xs);(0,a.vA)(!!i,`No buffer view for ${e}`),m(t,r,i,h);break}case s.r.NORMAL:{(0,a.vA)(3===t.size);const r=c.getField(e,n.xs);(0,a.vA)(!!r,`No buffer view for ${e}`),p(t,i,r,h);break}case s.r.NORMALCOMPRESSED:case s.r.PROFILERIGHT:case s.r.PROFILEUP:{(0,a.vA)(2===t.size);const r=c.getField(e,n.mJ);(0,a.vA)(!!r,`No buffer view for ${e}`),l(t,r,h);break}case s.r.UV0:{(0,a.vA)(2===t.size);const r=c.getField(e,n.ZD)??c.getField(e,n.gH);(0,a.vA)(!!r,`No buffer view for ${e}`),l(t,r,h);break}case s.r.UVI:{(0,a.vA)(2===t.size);const r=c.getField(e,n.mJ);(0,a.vA)(!!r,`No buffer view for ${e}`),l(t,r,h);break}case s.r.COLOR:case s.r.SYMBOLCOLOR:{const r=c.getField(e,n.XP);(0,a.vA)(!!r,`No buffer view for ${e}`),(0,a.vA)(3===t.size||4===t.size),f(t,t.size,r,h);break}case s.r.SIZEFEATUREATTRIBUTE:{const r=c.getField(e,n.Y$);(0,a.vA)(!!r,`No buffer view for ${e}`),(0,a.vA)(1===t.size),v(t,r,h);break}case s.r.COLORFEATUREATTRIBUTE:case s.r.OPACITYFEATUREATTRIBUTE:{const r=c.getField(e,n.XW)??c.getField(e,n.Y$);(0,a.vA)(!!r,`No buffer view for ${e}`),(0,a.vA)(1===t.size),v(t,r,h);break}case s.r.TANGENT:{(0,a.vA)(4===t.size);const i=c.getField(e,n.Eq);(0,a.vA)(!!i,`No buffer view for ${e}`),function(e,t,r,i,n=1){if(!t)return void u(e,r,i,n);const{data:a,indices:s}=e,c=t,l=r.typedBuffer,d=r.typedBufferStride,h=s.length,m=c[0],p=c[1],f=c[2],v=c[4],g=c[5],_=c[6],T=c[8],x=c[9],E=c[10],b=!(0,o.ut)(c),A=1e-6,S=1-A;if(i*=d,1===n)for(let e=0;e<h;++e){const t=4*s[e],r=a[t],o=a[t+1],n=a[t+2],c=a[t+3];let u=m*r+v*o+T*n,h=p*r+g*o+x*n,M=f*r+_*o+E*n;if(b){const e=u*u+h*h+M*M;if(e<S&&e>A){const t=1/Math.sqrt(e);u*=t,h*=t,M*=t}}l[i]=u,l[i+1]=h,l[i+2]=M,l[i+3]=c,i+=d}else for(let e=0;e<h;++e){const t=4*s[e],r=a[t],o=a[t+1],c=a[t+2],u=a[t+3];let h=m*r+v*o+T*c,M=p*r+g*o+x*c,w=f*r+_*o+E*c;if(b){const e=h*h+M*M+w*w;if(e<S&&e>A){const t=1/Math.sqrt(e);h*=t,M*=t,w*=t}}for(let e=0;e<n;++e)l[i]=h,l[i+1]=M,l[i+2]=w,l[i+3]=u,i+=d}}(t,r,i,h);break}case s.r.PROFILEVERTEXANDNORMAL:{(0,a.vA)(4===t.size);const r=c.getField(e,n.jz)??c.getField(e,n.Eq);(0,a.vA)(!!r,`No buffer view for ${e}`),u(t,r,h);break}case s.r.PROFILEAUXDATA:{(0,a.vA)(3===t.size);const r=c.getField(e,n.EC)??c.getField(e,n.xs);(0,a.vA)(!!r,`No buffer view for ${e}`),d(t,r,h);break}}}(0,i.vt)()},60517:(e,t,r)=>{r.d(t,{z:()=>d});var i=r(49255),o=r(22911),n=r(42593),a=r(63365),s=r(31821),c=r(59643),l=r(49788);function d(e,t){e.include(n.Q,t),e.include(o.NL,t),e.fragment.include(a.a);const{output:r,oitPass:d,discardInvisibleFragments:u,snowCover:h}=t,m=r===i.V.ObjectAndLayerIdColor,p=(0,i.LG)(r),f=(0,i.RN)(r)&&d===c.Y.ColorAlpha,v=(0,i.RN)(r)&&d!==c.Y.ColorAlpha;let g=0;(v||p||f)&&e.outputs.add("fragColor","vec4",g++),p&&e.outputs.add("fragEmission","vec4",g++),f&&e.outputs.add("fragAlpha","float",g++),e.fragment.code.add(s.H`
628
+ void outputColorHighlightOID(vec4 finalColor, const in vec3 vWorldPosition, vec3 emissiveBaseColor ${(0,s.If)(h,", float snow")}) {
629
+ ${(0,s.If)(m,"finalColor.a = 1.0;")}
836
630
 
837
- ${(0,s.If)(m,`if (finalColor.a < ${s.H.float(c.Q)}) { discard; }`)}
631
+ ${(0,s.If)(u,`if (finalColor.a < ${s.H.float(l.Q)}) { discard; }`)}
838
632
 
839
633
  finalColor = applySlice(finalColor, vWorldPosition);
840
- ${(0,s.If)(u,s.H`fragColor = premultiplyAlpha(finalColor);
634
+ ${(0,s.If)(f,s.H`fragColor = premultiplyAlpha(finalColor);
841
635
  fragAlpha = finalColor.a;`)}
842
- ${(0,s.If)(h,"fragColor = finalColor;")}
843
- ${(0,s.If)(d,"fragEmission = finalColor.a * getEmissions(emissiveBaseColor);")}
636
+ ${(0,s.If)(v,"fragColor = finalColor;")}
637
+ ${(0,s.If)(p,`fragEmission = ${(0,s.If)(h,"mix(finalColor.a * getEmissions(emissiveBaseColor), vec4(0.0), snow);","finalColor.a * getEmissions(emissiveBaseColor);")}`)}
844
638
  calculateOcclusionAndOutputHighlight();
845
- ${(0,s.If)(r,"outputObjectAndLayerIdColor();")}
639
+ ${(0,s.If)(m,"outputObjectAndLayerIdColor();")}
846
640
  }
847
- `)}},60864:(e,t,r)=>{r.d(t,{B:()=>x});var i=r(77690),o=r(29242),n=r(9093),a=r(38954),s=r(51850),l=r(49255),c=r(26425),d=r(20693),u=r(23205),h=r(31821),m=r(35644),p=r(40095),f=r(46540);function v(e,t){const r=e.length;for(let i=0;i<r;++i)_[0]=e[i],t[i]=_[0];return t}function g(e,t){const r=e.length;for(let i=0;i<r;++i)_[0]=e[i],_[1]=e[i]-_[0],t[i]=_[1];return t}const _=new Float32Array(2);r(65786).Y;const T=(0,o.vt)();function x(e,t){const{hasModelTransformation:r,instancedDoublePrecision:o,instanced:s,output:_,hasVertexTangents:x}=t;r&&(e.vertex.uniforms.add(new p.X("model",(e=>e.modelTransformation??n.zK))),e.vertex.uniforms.add(new m.k("normalLocalOriginFromModel",(e=>((0,i.Ge)(T,e.modelTransformation??n.zK),T))))),s&&o&&(e.attributes.add(f.r.INSTANCEMODELORIGINHI,"vec3"),e.attributes.add(f.r.INSTANCEMODELORIGINLO,"vec3"),e.attributes.add(f.r.INSTANCEMODEL,"mat3"),e.attributes.add(f.r.INSTANCEMODELNORMAL,"mat3"));const b=e.vertex;o&&(b.include(c.u,t),b.uniforms.add(new u.d("viewOriginHi",(e=>v((0,a.i)(E,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),E))),new u.d("viewOriginLo",(e=>g((0,a.i)(E,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),E))))),b.code.add(h.H`
641
+ `)}},60864:(e,t,r)=>{r.d(t,{B:()=>x});var i=r(77690),o=r(29242),n=r(9093),a=r(38954),s=r(51850),c=r(49255),l=r(26425),d=r(20693),u=r(23205),h=r(31821),m=r(35644),p=r(40095),f=r(46540);function v(e,t){const r=e.length;for(let i=0;i<r;++i)_[0]=e[i],t[i]=_[0];return t}function g(e,t){const r=e.length;for(let i=0;i<r;++i)_[0]=e[i],_[1]=e[i]-_[0],t[i]=_[1];return t}const _=new Float32Array(2);r(65786).Y;const T=(0,o.vt)();function x(e,t){const{hasModelTransformation:r,instancedDoublePrecision:o,instanced:s,output:_,hasVertexTangents:x}=t;r&&(e.vertex.uniforms.add(new p.X("model",(e=>e.modelTransformation??n.zK))),e.vertex.uniforms.add(new m.k("normalLocalOriginFromModel",(e=>((0,i.Ge)(T,e.modelTransformation??n.zK),T))))),s&&o&&(e.attributes.add(f.r.INSTANCEMODELORIGINHI,"vec3"),e.attributes.add(f.r.INSTANCEMODELORIGINLO,"vec3"),e.attributes.add(f.r.INSTANCEMODEL,"mat3"),e.attributes.add(f.r.INSTANCEMODELNORMAL,"mat3"));const b=e.vertex;o&&(b.include(l.u,t),b.uniforms.add(new u.d("viewOriginHi",(e=>v((0,a.i)(E,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),E))),new u.d("viewOriginLo",(e=>g((0,a.i)(E,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),E))))),b.code.add(h.H`
848
642
  vec3 getVertexInLocalOriginSpace() {
849
643
  return ${r?o?"(model * vec4(instanceModel * localPosition().xyz, 1.0)).xyz":"(model * localPosition()).xyz":o?"instanceModel * localPosition().xyz":"localPosition().xyz"};
850
644
  }
@@ -859,7 +653,7 @@ float occlusion;`),h&&o.uniforms.add(v===u.c.Pass?new d.N("texMetallicRoughness"
859
653
  vec3 dpNormal(vec4 _normal) {
860
654
  return normalize(${r?o?"normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz)":"normalLocalOriginFromModel * _normal.xyz":o?"instanceModelNormal * _normal.xyz":"_normal.xyz"});
861
655
  }
862
- `),_===l.V.Normal&&((0,d.S7)(b),b.code.add(h.H`
656
+ `),_===c.V.Normal&&((0,d.S7)(b),b.code.add(h.H`
863
657
  vec3 dpNormalView(vec4 _normal) {
864
658
  return normalize((viewNormal * ${r?o?"vec4(normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz), 1.0)":"vec4(normalLocalOriginFromModel * _normal.xyz, 1.0)":o?"vec4(instanceModelNormal * _normal.xyz, 1.0)":"_normal"}).xyz);
865
659
  }
@@ -893,18 +687,18 @@ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
893
687
  }
894
688
  float rgb2v(vec3 c) {
895
689
  return max(c.x, max(c.y, c.z));
896
- }`)}},63761:(e,t,r)=>{r.d(t,{N:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"sampler2D",i.c.Pass,((r,i,o)=>r.bindTexture(e,t(i,o))))}}},65786:(e,t,r)=>{r.d(t,{Y:()=>i});const i=class{};new i},67171:(e,t,r)=>{r.d(t,{R:()=>a,e:()=>s});var i=r(63907),o=r(6625),n=r(42293);class a{constructor(e=0,t=e){this.width=e,this.height=t,this.type=o.d.TextureDescriptor,this.target=i.Ap.TEXTURE_2D,this.pixelFormat=i.Ab.RGBA,this.dataType=i.ld.UNSIGNED_BYTE,this.samplingMode=i.Cj.LINEAR,this.wrapMode=i.pF.REPEAT,this.maxAnisotropy=1,this.flipped=!1,this.hasMipmap=!1,this.isOpaque=!1,this.unpackAlignment=4,this.preMultiplyAlpha=!1,this.depth=1,this.isImmutable=!1}}function s(e){return e.width<=0||e.height<=0||e.depth<=0?0:Math.round(e.width*e.height*e.depth*(e.hasMipmap?4/3:1)*(null==e.internalFormat?4:(0,n.IB)(e.internalFormat))*(e.target===i.Ap.TEXTURE_CUBE_MAP?6:1))}},68259:(e,t,r)=>{r.d(t,{t:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec2",i.c.Draw,((r,i,o,n)=>r.setUniform2fv(e,t(i,o,n))))}}},71955:(e,t,r)=>{r.d(t,{K:()=>d});var i=r(42583),o=r(31821),n=r(69270),a=r(74333);class s extends a.n{constructor(e,t){super(e,"int",n.c.Pass,((r,i,o)=>r.setUniform1i(e,t(i,o))))}}var l=r(46540),c=r(43616);function d(e,t){t.hasSymbolColors?(e.include(i.A),e.attributes.add(l.r.SYMBOLCOLOR,"vec4"),e.varyings.add("colorMixMode","mediump float"),e.vertex.code.add(o.H`int symbolColorMixMode;
690
+ }`)}},63761:(e,t,r)=>{r.d(t,{N:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"sampler2D",i.c.Pass,((r,i,o)=>r.bindTexture(e,t(i,o))))}}},65786:(e,t,r)=>{r.d(t,{Y:()=>i});const i=class{};new i},67171:(e,t,r)=>{r.d(t,{R:()=>a,e:()=>s});var i=r(63907),o=r(6625),n=r(42293);class a{constructor(e=0,t=e){this.width=e,this.height=t,this.type=o.d.TextureDescriptor,this.target=i.Ap.TEXTURE_2D,this.pixelFormat=i.Ab.RGBA,this.dataType=i.ld.UNSIGNED_BYTE,this.samplingMode=i.Cj.LINEAR,this.wrapMode=i.pF.REPEAT,this.maxAnisotropy=1,this.flipped=!1,this.hasMipmap=!1,this.isOpaque=!1,this.unpackAlignment=4,this.preMultiplyAlpha=!1,this.depth=1,this.isImmutable=!1}}function s(e){return e.width<=0||e.height<=0||e.depth<=0?0:Math.round(e.width*e.height*e.depth*(e.hasMipmap?4/3:1)*(null==e.internalFormat?4:(0,n.IB)(e.internalFormat))*(e.target===i.Ap.TEXTURE_CUBE_MAP?6:1))}},68259:(e,t,r)=>{r.d(t,{t:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec2",i.c.Draw,((r,i,o,n)=>r.setUniform2fv(e,t(i,o,n))))}}},71955:(e,t,r)=>{r.d(t,{K:()=>d});var i=r(42583),o=r(31821),n=r(69270),a=r(74333);class s extends a.n{constructor(e,t){super(e,"int",n.c.Pass,((r,i,o)=>r.setUniform1i(e,t(i,o))))}}var c=r(46540),l=r(43616);function d(e,t){t.hasSymbolColors?(e.include(i.A),e.attributes.add(c.r.SYMBOLCOLOR,"vec4"),e.varyings.add("colorMixMode","mediump float"),e.vertex.code.add(o.H`int symbolColorMixMode;
897
691
  vec4 getSymbolColor() {
898
692
  return decodeSymbolColor(symbolColor, symbolColorMixMode) * 0.003921568627451;
899
693
  }
900
694
  void forwardColorMixMode() {
901
695
  colorMixMode = float(symbolColorMixMode) + 0.5;
902
- }`)):(e.fragment.uniforms.add(new s("colorMixMode",(e=>c.Um[e.colorMixMode]))),e.vertex.code.add(o.H`vec4 getSymbolColor() { return vec4(1.0); }
903
- void forwardColorMixMode() {}`))}},71988:(e,t,r)=>{r.d(t,{E:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec4",i.c.Pass,((r,i,o)=>r.setUniform4fv(e,t(i,o))))}}},72824:(e,t,r)=>{r.d(t,{Mh:()=>u,Zo:()=>h,gy:()=>m});var i=r(21818),o=r(29242),n=r(91829),a=r(96336),s=r(33752),l=r(31821),c=r(98353),d=r(35644);function u(e,t){switch(t.normalType){case a.W.Attribute:case a.W.Compressed:e.include(a.Y,t),e.varyings.add("vNormalWorld","vec3"),e.varyings.add("vNormalView","vec3"),e.vertex.uniforms.add(new c.h("transformNormalGlobalFromModel",(e=>e.transformNormalGlobalFromModel)),new d.k("transformNormalViewFromGlobal",(e=>e.transformNormalViewFromGlobal))),e.vertex.code.add(l.H`void forwardNormal() {
696
+ }`)):(e.fragment.uniforms.add(new s("colorMixMode",(e=>l.Um[e.colorMixMode]))),e.vertex.code.add(o.H`vec4 getSymbolColor() { return vec4(1.0); }
697
+ void forwardColorMixMode() {}`))}},71988:(e,t,r)=>{r.d(t,{E:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec4",i.c.Pass,((r,i,o)=>r.setUniform4fv(e,t(i,o))))}}},72824:(e,t,r)=>{r.d(t,{Mh:()=>u,Zo:()=>h,gy:()=>m});var i=r(21818),o=r(29242),n=r(91829),a=r(96336),s=r(33752),c=r(31821),l=r(98353),d=r(35644);function u(e,t){switch(t.normalType){case a.W.Attribute:case a.W.Compressed:e.include(a.Y,t),e.varyings.add("vNormalWorld","vec3"),e.varyings.add("vNormalView","vec3"),e.vertex.uniforms.add(new l.h("transformNormalGlobalFromModel",(e=>e.transformNormalGlobalFromModel)),new d.k("transformNormalViewFromGlobal",(e=>e.transformNormalViewFromGlobal))),e.vertex.code.add(c.H`void forwardNormal() {
904
698
  vNormalWorld = transformNormalGlobalFromModel * normalModel();
905
699
  vNormalView = transformNormalViewFromGlobal * vNormalWorld;
906
- }`);break;case a.W.ScreenDerivative:e.vertex.code.add(l.H`void forwardNormal() {}`);break;default:(0,i.Xb)(t.normalType);case a.W.COUNT:}}class h extends s.dO{constructor(){super(...arguments),this.transformNormalViewFromGlobal=(0,o.vt)()}}class m extends s.EM{constructor(){super(...arguments),this.transformNormalGlobalFromModel=(0,o.vt)(),this.toMapSpace=(0,n.vt)()}}},74810:(e,t,r)=>{r.d(t,{Bt:()=>s,Jr:()=>n,SY:()=>l,mb:()=>a});var i=r(38954),o=r(51850);function n({normalTexture:e,metallicRoughnessTexture:t,metallicFactor:r,roughnessFactor:n,emissiveTexture:a,emissiveFactor:s,occlusionTexture:l}){return null==e&&null==t&&null==a&&(null==s||(0,i.p)(s,o.uY))&&null==l&&(null==n||1===n)&&(null==r||1===r)}const a=(0,o.CN)(1,1,.5),s=(0,o.CN)(0,.6,.2),l=(0,o.CN)(0,1,.2)},75039:(e,t,r)=>{var i;r.d(t,{d:()=>i}),function(e){e[e.Mesh=0]="Mesh",e[e.Point=1]="Point",e[e.Line=2]="Line"}(i||(i={}))},76591:(e,t,r)=>{r.d(t,{HQ:()=>c,rA:()=>d});var i=r(58083),o=r(9093),n=r(38954),a=r(51850),s=r(40710),l=(r(33079),r(31821));function c(e,t){!function(e,t,...r){h(e,t,...r),t.hasSlicePlane?e.code.add("\n void discardBySlice(vec3 pos) {\n if (sliceByPlane(pos)) {\n discard;\n }\n }\n\n vec4 applySliceOutline(vec4 color, vec3 pos) {\n SliceFactors factors = calculateSliceFactors(pos);\n\n factors.front /= 2.0 * fwidth(factors.front);\n factors.side0 /= 2.0 * fwidth(factors.side0);\n factors.side1 /= 2.0 * fwidth(factors.side1);\n factors.side2 /= 2.0 * fwidth(factors.side2);\n factors.side3 /= 2.0 * fwidth(factors.side3);\n\n // return after calling fwidth, to avoid aliasing caused by discontinuities in the input to fwidth\n if (sliceByFactors(factors)) {\n return color;\n }\n\n float outlineFactor = (1.0 - step(0.5, factors.front))\n * (1.0 - step(0.5, factors.side0))\n * (1.0 - step(0.5, factors.side1))\n * (1.0 - step(0.5, factors.side2))\n * (1.0 - step(0.5, factors.side3));\n\n return mix(color, vec4(vec3(0.0), color.a), outlineFactor * 0.3);\n }\n\n vec4 applySlice(vec4 color, vec3 pos) {\n return sliceEnabled() ? applySliceOutline(color, pos) : color;\n }\n "):e.code.add(l.H`void discardBySlice(vec3 pos) { }
907
- vec4 applySlice(vec4 color, vec3 pos) { return color; }`)}(e,t,new s.W("slicePlaneOrigin",((e,r)=>v(t,e,r))),new s.W("slicePlaneBasis1",((e,r)=>g(t,e,r,r.slicePlane?.basis1))),new s.W("slicePlaneBasis2",((e,r)=>g(t,e,r,r.slicePlane?.basis2))))}function d(e,t){h(e,t,new s.W("slicePlaneOrigin",((e,r)=>v(t,e,r))),new s.W("slicePlaneBasis1",((e,r)=>g(t,e,r,r.slicePlane?.basis1))),new s.W("slicePlaneBasis2",((e,r)=>g(t,e,r,r.slicePlane?.basis2))))}r(65786).Y;const u=l.H`struct SliceFactors {
700
+ }`);break;case a.W.ScreenDerivative:e.vertex.code.add(c.H`void forwardNormal() {}`);break;default:(0,i.Xb)(t.normalType);case a.W.COUNT:}}class h extends s.dO{constructor(){super(...arguments),this.transformNormalViewFromGlobal=(0,o.vt)()}}class m extends s.EM{constructor(){super(...arguments),this.transformNormalGlobalFromModel=(0,o.vt)(),this.toMapSpace=(0,n.vt)()}}},74810:(e,t,r)=>{r.d(t,{Bt:()=>s,Jr:()=>n,SY:()=>c,mb:()=>a});var i=r(38954),o=r(51850);function n({normalTexture:e,metallicRoughnessTexture:t,metallicFactor:r,roughnessFactor:n,emissiveTexture:a,emissiveFactor:s,occlusionTexture:c}){return null==e&&null==t&&null==a&&(null==s||(0,i.p)(s,o.uY))&&null==c&&(null==n||1===n)&&(null==r||1===r)}const a=(0,o.CN)(1,1,.5),s=(0,o.CN)(0,.6,.2),c=(0,o.CN)(0,1,.2)},75039:(e,t,r)=>{var i;r.d(t,{d:()=>i}),function(e){e[e.Mesh=0]="Mesh",e[e.Point=1]="Point",e[e.Line=2]="Line"}(i||(i={}))},76591:(e,t,r)=>{r.d(t,{HQ:()=>l,rA:()=>d});var i=r(58083),o=r(9093),n=r(38954),a=r(51850),s=r(40710),c=(r(33079),r(31821));function l(e,t){!function(e,t,...r){h(e,t,...r),t.hasSlicePlane?e.code.add("\n void discardBySlice(vec3 pos) {\n if (sliceByPlane(pos)) {\n discard;\n }\n }\n\n vec4 applySliceOutline(vec4 color, vec3 pos) {\n SliceFactors factors = calculateSliceFactors(pos);\n\n factors.front /= 2.0 * fwidth(factors.front);\n factors.side0 /= 2.0 * fwidth(factors.side0);\n factors.side1 /= 2.0 * fwidth(factors.side1);\n factors.side2 /= 2.0 * fwidth(factors.side2);\n factors.side3 /= 2.0 * fwidth(factors.side3);\n\n // return after calling fwidth, to avoid aliasing caused by discontinuities in the input to fwidth\n if (sliceByFactors(factors)) {\n return color;\n }\n\n float outlineFactor = (1.0 - step(0.5, factors.front))\n * (1.0 - step(0.5, factors.side0))\n * (1.0 - step(0.5, factors.side1))\n * (1.0 - step(0.5, factors.side2))\n * (1.0 - step(0.5, factors.side3));\n\n return mix(color, vec4(vec3(0.0), color.a), outlineFactor * 0.3);\n }\n\n vec4 applySlice(vec4 color, vec3 pos) {\n return sliceEnabled() ? applySliceOutline(color, pos) : color;\n }\n "):e.code.add(c.H`void discardBySlice(vec3 pos) { }
701
+ vec4 applySlice(vec4 color, vec3 pos) { return color; }`)}(e,t,new s.W("slicePlaneOrigin",((e,r)=>v(t,e,r))),new s.W("slicePlaneBasis1",((e,r)=>g(t,e,r,r.slicePlane?.basis1))),new s.W("slicePlaneBasis2",((e,r)=>g(t,e,r,r.slicePlane?.basis2))))}function d(e,t){h(e,t,new s.W("slicePlaneOrigin",((e,r)=>v(t,e,r))),new s.W("slicePlaneBasis1",((e,r)=>g(t,e,r,r.slicePlane?.basis1))),new s.W("slicePlaneBasis2",((e,r)=>g(t,e,r,r.slicePlane?.basis2))))}r(65786).Y;const u=c.H`struct SliceFactors {
908
702
  float front;
909
703
  float side0;
910
704
  float side1;
@@ -942,23 +736,23 @@ return sliceEnabled() && sliceByFactors(calculateSliceFactors(pos));
942
736
  }
943
737
  bool rejectBySlice(vec3 pos) {
944
738
  return sliceByPlane(pos);
945
- }`;function h(e,t,...r){t.hasSlicePlane?(e.uniforms.add(...r),e.code.add(u)):e.code.add("bool rejectBySlice(vec3 pos) { return false; }")}function m(e,t,r){return e.instancedDoublePrecision?(0,n.i)(_,r.camera.viewInverseTransposeMatrix[3],r.camera.viewInverseTransposeMatrix[7],r.camera.viewInverseTransposeMatrix[11]):t.slicePlaneLocalOrigin}function p(e,t){return null!=e?(0,n.d)(T,t.origin,e):t.origin}function f(e,t,r){return e.hasSliceTranslatedView?null!=t?(0,i.Tl)(E,r.camera.viewMatrix,t):r.camera.viewMatrix:null}function v(e,t,r){if(null==r.slicePlane)return a.uY;const i=m(e,t,r),o=p(i,r.slicePlane),s=f(e,i,r);return null!=s?(0,n.t)(T,o,s):o}function g(e,t,r,i){if(null==i||null==r.slicePlane)return a.uY;const o=m(e,t,r),s=p(o,r.slicePlane),l=f(e,o,r);return null!=l?((0,n.g)(x,i,s),(0,n.t)(T,s,l),(0,n.t)(x,x,l),(0,n.d)(x,x,T)):i}const _=(0,a.vt)(),T=(0,a.vt)(),x=(0,a.vt)(),E=(0,o.vt)()},76597:(e,t,r)=>{r.d(t,{d:()=>n});var i=r(46686),o=r(31821);function n(e){(0,i.i$)(e),e.vertex.code.add(o.H`vec4 transformPositionWithDepth(mat4 proj, mat4 view, vec3 pos, vec2 nearFar, out float depth) {
739
+ }`;function h(e,t,...r){t.hasSlicePlane?(e.uniforms.add(...r),e.code.add(u)):e.code.add("bool rejectBySlice(vec3 pos) { return false; }")}function m(e,t,r){return e.instancedDoublePrecision?(0,n.i)(_,r.camera.viewInverseTransposeMatrix[3],r.camera.viewInverseTransposeMatrix[7],r.camera.viewInverseTransposeMatrix[11]):t.slicePlaneLocalOrigin}function p(e,t){return null!=e?(0,n.d)(T,t.origin,e):t.origin}function f(e,t,r){return e.hasSliceTranslatedView?null!=t?(0,i.Tl)(E,r.camera.viewMatrix,t):r.camera.viewMatrix:null}function v(e,t,r){if(null==r.slicePlane)return a.uY;const i=m(e,t,r),o=p(i,r.slicePlane),s=f(e,i,r);return null!=s?(0,n.t)(T,o,s):o}function g(e,t,r,i){if(null==i||null==r.slicePlane)return a.uY;const o=m(e,t,r),s=p(o,r.slicePlane),c=f(e,o,r);return null!=c?((0,n.g)(x,i,s),(0,n.t)(T,s,c),(0,n.t)(x,x,c),(0,n.d)(x,x,T)):i}const _=(0,a.vt)(),T=(0,a.vt)(),x=(0,a.vt)(),E=(0,o.vt)()},76597:(e,t,r)=>{r.d(t,{d:()=>n});var i=r(46686),o=r(31821);function n(e){(0,i.i$)(e),e.vertex.code.add(o.H`vec4 transformPositionWithDepth(mat4 proj, mat4 view, vec3 pos, vec2 nearFar, out float depth) {
946
740
  vec4 eye = view * vec4(pos, 1.0);
947
741
  depth = calculateLinearDepth(nearFar,eye.z);
948
742
  return proj * eye;
949
743
  }`),e.vertex.code.add(o.H`vec4 transformPosition(mat4 proj, mat4 view, vec3 pos) {
950
744
  return proj * (view * vec4(pos, 1.0));
951
- }`)}},77108:(e,t,r)=>{r.d(t,{E:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec2",i.c.Bind,((r,i)=>r.setUniform2fv(e,t(i))))}}},77194:(e,t,r)=>{r.d(t,{MD:()=>l,cJ:()=>s,hs:()=>c,m0:()=>a});var i=r(34727),o=(r(17352),r(97937));function n(e,t,r){const i=r.parameters;return d.scale=Math.min(i.divisor/(t-i.offset),1),d.factor=function(e){return Math.abs(e*e*e)}(e),d}function a(e,t){return(0,i.Cc)(e*Math.max(t.scale,t.minScaleFactor),e,t.factor)}function s(e,t,r,i){i.scale=function(e,t,r){const i=n(e,t,r);return i.minScaleFactor=0,a(1,i)}(e,t,r),i.factor=0,i.minScaleFactor=r.minScaleFactor}function l(e,t,r=[0,0]){const i=Math.min(Math.max(t.scale,t.minScaleFactor),1);return r[0]=e[0]*i,r[1]=e[1]*i,r}function c(e,t,r,i){return a(e,n(t,r,i))}r(24151),(0,i.kU)(10),(0,i.kU)(12),(0,i.kU)(70),(0,i.kU)(40);const d={scale:0,factor:0,minScaleFactor:0};(0,o.c)()},77695:(e,t,r)=>{r.d(t,{W:()=>f});var i=r(29242),o=r(48163),n=r(53466),a=r(99208),s=r(62602),l=r(47286),c=r(31821),d=r(35644),u=r(15976),h=r(63761),m=r(46540),p=r(69270);function f(e,t){const r=e.fragment,{hasVertexTangents:f,doubleSidedMode:v,hasNormalTexture:g,textureCoordinateType:_,bindType:T,hasNormalTextureTransform:x}=t;f?(e.attributes.add(m.r.TANGENT,"vec4"),e.varyings.add("vTangent","vec4"),v===s.W.WindingOrder?r.code.add(c.H`mat3 computeTangentSpace(vec3 normal) {
745
+ }`)}},77108:(e,t,r)=>{r.d(t,{E:()=>n});var i=r(69270),o=r(74333);class n extends o.n{constructor(e,t){super(e,"vec2",i.c.Bind,((r,i)=>r.setUniform2fv(e,t(i))))}}},77194:(e,t,r)=>{r.d(t,{MD:()=>c,cJ:()=>s,hs:()=>l,m0:()=>a});var i=r(34727),o=(r(17352),r(97937));function n(e,t,r){const i=r.parameters;return d.scale=Math.min(i.divisor/(t-i.offset),1),d.factor=function(e){return Math.abs(e*e*e)}(e),d}function a(e,t){return(0,i.Cc)(e*Math.max(t.scale,t.minScaleFactor),e,t.factor)}function s(e,t,r,i){i.scale=function(e,t,r){const i=n(e,t,r);return i.minScaleFactor=0,a(1,i)}(e,t,r),i.factor=0,i.minScaleFactor=r.minScaleFactor}function c(e,t,r=[0,0]){const i=Math.min(Math.max(t.scale,t.minScaleFactor),1);return r[0]=e[0]*i,r[1]=e[1]*i,r}function l(e,t,r,i){return a(e,n(t,r,i))}r(24151),(0,i.kU)(10),(0,i.kU)(12),(0,i.kU)(70),(0,i.kU)(40);const d={scale:0,factor:0,minScaleFactor:0};(0,o.c)()},77695:(e,t,r)=>{r.d(t,{W:()=>f});var i=r(29242),o=r(48163),n=r(53466),a=r(99208),s=r(62602),c=r(47286),l=r(31821),d=r(35644),u=r(15976),h=r(63761),m=r(46540),p=r(69270);function f(e,t){const r=e.fragment,{hasVertexTangents:f,doubleSidedMode:v,hasNormalTexture:g,textureCoordinateType:_,bindType:T,hasNormalTextureTransform:x}=t;f?(e.attributes.add(m.r.TANGENT,"vec4"),e.varyings.add("vTangent","vec4"),v===s.W.WindingOrder?r.code.add(l.H`mat3 computeTangentSpace(vec3 normal) {
952
746
  float tangentHeadedness = gl_FrontFacing ? vTangent.w : -vTangent.w;
953
747
  vec3 tangent = normalize(gl_FrontFacing ? vTangent.xyz : -vTangent.xyz);
954
748
  vec3 bitangent = cross(normal, tangent) * tangentHeadedness;
955
749
  return mat3(tangent, bitangent, normal);
956
- }`):r.code.add(c.H`mat3 computeTangentSpace(vec3 normal) {
750
+ }`):r.code.add(l.H`mat3 computeTangentSpace(vec3 normal) {
957
751
  float tangentHeadedness = vTangent.w;
958
752
  vec3 tangent = normalize(vTangent.xyz);
959
753
  vec3 bitangent = cross(normal, tangent) * tangentHeadedness;
960
754
  return mat3(tangent, bitangent, normal);
961
- }`)):r.code.add(c.H`mat3 computeTangentSpace(vec3 normal, vec3 pos, vec2 st) {
755
+ }`)):r.code.add(l.H`mat3 computeTangentSpace(vec3 normal, vec3 pos, vec2 st) {
962
756
  vec3 Q1 = dFdx(pos);
963
757
  vec3 Q2 = dFdy(pos);
964
758
  vec2 stx = dFdx(st);
@@ -969,12 +763,12 @@ T = T - normal * dot(normal, T);
969
763
  T *= inversesqrt(max(dot(T,T), 1.e-10));
970
764
  vec3 B = sign(det) * cross(normal, T);
971
765
  return mat3(T, B, normal);
972
- }`),g&&_!==n.I.None&&(e.include(a.r,t),r.uniforms.add(T===p.c.Pass?new h.N("normalTexture",(e=>e.textureNormal)):new u.o("normalTexture",(e=>e.textureNormal))),x&&(r.uniforms.add(new l.G("scale",(e=>e.scale??o.Un))),r.uniforms.add(new d.k("normalTextureTransformMatrix",(e=>e.normalTextureTransformMatrix??i.zK)))),r.code.add(c.H`vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) {
973
- vec3 rawNormal = textureLookup(normalTexture, uv).rgb * 2.0 - 1.0;`),x&&r.code.add(c.H`mat3 normalRotation = mat3(normalTextureTransformMatrix[0][0]/scale[0], normalTextureTransformMatrix[0][1]/scale[1], 0.0,
766
+ }`),g&&_!==n.I.None&&(e.include(a.r,t),r.uniforms.add(T===p.c.Pass?new h.N("normalTexture",(e=>e.textureNormal)):new u.o("normalTexture",(e=>e.textureNormal))),x&&(r.uniforms.add(new c.G("scale",(e=>e.scale??o.Un))),r.uniforms.add(new d.k("normalTextureTransformMatrix",(e=>e.normalTextureTransformMatrix??i.zK)))),r.code.add(l.H`vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) {
767
+ vec3 rawNormal = textureLookup(normalTexture, uv).rgb * 2.0 - 1.0;`),x&&r.code.add(l.H`mat3 normalRotation = mat3(normalTextureTransformMatrix[0][0]/scale[0], normalTextureTransformMatrix[0][1]/scale[1], 0.0,
974
768
  normalTextureTransformMatrix[1][0]/scale[0], normalTextureTransformMatrix[1][1]/scale[1], 0.0,
975
769
  0.0, 0.0, 0.0 );
976
- rawNormal.xy = (normalRotation * vec3(rawNormal.x, rawNormal.y, 1.0)).xy;`),r.code.add(c.H`return tangentSpace * rawNormal;
977
- }`))}},78662:(e,t,r)=>{r.d(t,{Gd:()=>u,VC:()=>h}),r(44208);var i,o,n,a=r(34727),s=(r(77690),r(29242),r(58083),r(9093)),l=r(38954),c=r(51850),d=(r(87317),r(91829),r(31756),r(26857),r(65786));(n=i||(i={}))[n.Undefined=0]="Undefined",n[n.DefinedSize=1]="DefinedSize",n[n.DefinedScale=2]="DefinedScale",function(e){e[e.Undefined=0]="Undefined",e[e.DefinedAngle=1]="DefinedAngle"}(o||(o={}));class u extends d.Y{constructor(e){super(),this.vvSize=e?.size??null,this.vvColor=e?.color??null,this.vvOpacity=e?.opacity??null}}function h(e,t,r){if(!t.vvSize)return(0,l.i)(e,1,1,1),e;if(Number.isNaN(r[0]))return(0,l.c)(e,t.vvSize.fallback);for(let i=0;i<3;++i){const o=t.vvSize.offset[i]+r[0]*t.vvSize.factor[i];e[i]=(0,a.qE)(o,t.vvSize.minSize[i],t.vvSize.maxSize[i])}return e}(0,s.vt)(),(0,c.vt)(),(0,s.vt)()},80730:(e,t,r)=>{r.d(t,{U:()=>o});var i=r(31821);function o(e){e.code.add(i.H`const float MAX_RGBA4_FLOAT =
770
+ rawNormal.xy = (normalRotation * vec3(rawNormal.x, rawNormal.y, 1.0)).xy;`),r.code.add(l.H`return tangentSpace * rawNormal;
771
+ }`))}},78662:(e,t,r)=>{r.d(t,{Gd:()=>u,VC:()=>h}),r(44208);var i,o,n,a=r(34727),s=(r(77690),r(29242),r(58083),r(9093)),c=r(38954),l=r(51850),d=(r(87317),r(91829),r(31756),r(26857),r(65786));(n=i||(i={}))[n.Undefined=0]="Undefined",n[n.DefinedSize=1]="DefinedSize",n[n.DefinedScale=2]="DefinedScale",function(e){e[e.Undefined=0]="Undefined",e[e.DefinedAngle=1]="DefinedAngle"}(o||(o={}));class u extends d.Y{constructor(e){super(),this.vvSize=e?.size??null,this.vvColor=e?.color??null,this.vvOpacity=e?.opacity??null}}function h(e,t,r){if(!t.vvSize)return(0,c.i)(e,1,1,1),e;if(Number.isNaN(r[0]))return(0,c.c)(e,t.vvSize.fallback);for(let i=0;i<3;++i){const o=t.vvSize.offset[i]+r[0]*t.vvSize.factor[i];e[i]=(0,a.qE)(o,t.vvSize.minSize[i],t.vvSize.maxSize[i])}return e}(0,s.vt)(),(0,l.vt)(),(0,s.vt)()},80730:(e,t,r)=>{r.d(t,{U:()=>o});var i=r(31821);function o(e){e.code.add(i.H`const float MAX_RGBA4_FLOAT =
978
772
  15.0 / 16.0 +
979
773
  15.0 / 16.0 / 16.0 +
980
774
  15.0 / 16.0 / 16.0 / 16.0 +
@@ -997,15 +791,158 @@ return dot(rgba, RGBA4_2_FLOAT_FACTORS);
997
791
  }`)}},82048:(e,t,r)=>{r.d(t,{c:()=>n});var i=r(31821),o=r(46540);function n(e,t=!0){e.attributes.add(o.r.POSITION,"vec2"),t&&e.varyings.add("uv","vec2"),e.vertex.main.add(i.H`
998
792
  gl_Position = vec4(position, 0.0, 1.0);
999
793
  ${t?i.H`uv = position * 0.5 + vec2(0.5);`:""}
1000
- `)}},85417:(e,t,r)=>{r.d(t,{n:()=>ee});var i,o,n,a=r(31821),s=r(12791),l=r(90237),c=r(34727),d=r(97768),u=r(36708),h=r(78659),m=r(10107),p=(r(44208),r(53966),r(87811),r(40608)),f=r(37585);r(9093),r(48353),r(9762),(n=i||(i={})).OPAQUE="opaque-color",n.TRANSPARENT="transparent-color",n.COMPOSITE="composite-color",n.FINAL="final-color",function(e){e.SSAO="ssao",e.LASERLINES="laserline-color",e.ANTIALIASING="aa-color",e.HIGHLIGHTS="highlight-color",e.MAGNIFIER="magnifier-color",e.OCCLUDED="occluded-color",e.VIEWSHED="viewshed-color",e.OPAQUE_ENVIRONMENT="opaque-environment-color",e.TRANSPARENT_ENVIRONMENT="transparent-environment-color",e.FOCUSAREA="focusarea",e.FOCUSAREA_COLOR="focusarea-color"}(o||(o={}));var v=r(69622),g=r(49186),_=r(89192);let T=class extends v.A{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=i.COMPOSITE,this.requireGeometryDepth=!1,this._dirty=!0}initialize(){this.addHandles([(0,u.wB)((()=>this.view.ready),(e=>{e&&this.view.stage?.renderer.addRenderNode(this)}),u.Vh)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new g.A("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view.stage.renderView.renderingContext.gl}get techniques(){return this.view.stage.renderView.techniques}acquireOutputFramebuffer(){const e=this._frameBuffer?.getTexture()?.descriptor,t=this.view.stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return t.fbo?.initializeAndBind(),t}bindRenderTarget(){return this._frameBuffer?.fbo?.initializeAndBind(),this._frameBuffer}requestRender(e){e===_.C7.UPDATE&&this.view.stage?.renderView.requestRender(e),this._dirty=!0}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view.stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view.stage.renderView.renderingContext}get renderContext(){return this.view.stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find((({name:e})=>e===this.produces));try{return this.render(e)}finally{this._frameBuffer=null}}};(0,l._)([(0,m.MZ)({constructOnly:!0})],T.prototype,"view",void 0),(0,l._)([(0,m.MZ)({constructOnly:!0})],T.prototype,"consumes",void 0),(0,l._)([(0,m.MZ)()],T.prototype,"produces",void 0),(0,l._)([(0,m.MZ)({readOnly:!0})],T.prototype,"techniques",null),T=(0,l._)([(0,p.$)("esri.views.3d.webgl.RenderNode")],T);const x=T;var E=r(63907);r(42293);var b,A,S,M,w=r(67171),C=r(12541);(M=b||(b={}))[M.R8UNORM=0]="R8UNORM",M[M.R8UINT=1]="R8UINT",M[M.RG8UNORM=2]="RG8UNORM",M[M.RG8UINT=3]="RG8UINT",M[M.RGBA4UNORM=4]="RGBA4UNORM",M[M.RGBA8UNORM=5]="RGBA8UNORM",M[M.RGBA8UNORM_MIPMAP=6]="RGBA8UNORM_MIPMAP",M[M.R16FLOAT=7]="R16FLOAT",M[M.RGBA16FLOAT=8]="RGBA16FLOAT",M[M.COUNT=9]="COUNT",function(e){e[e.DEPTH16=9]="DEPTH16",e[e.COUNT=10]="COUNT"}(A||(A={})),function(e){e[e.DEPTH24_STENCIL8=10]="DEPTH24_STENCIL8"}(S||(S={}));const R=new w.R;R.pixelFormat=E.Ab.RED,R.internalFormat=E.H0.R8,R.wrapMode=E.pF.CLAMP_TO_EDGE;const I=new w.R;I.pixelFormat=E.Ab.RED_INTEGER,I.internalFormat=E.H0.R8UI,I.wrapMode=E.pF.CLAMP_TO_EDGE,I.samplingMode=E.Cj.NEAREST;const O=new w.R;O.pixelFormat=E.Ab.RG,O.internalFormat=E.H0.RG8,O.wrapMode=E.pF.CLAMP_TO_EDGE;const N=new w.R;N.pixelFormat=E.Ab.RG_INTEGER,N.internalFormat=E.H0.RG8UI,N.wrapMode=E.pF.CLAMP_TO_EDGE,N.samplingMode=E.Cj.NEAREST;const y=new w.R;y.internalFormat=E.H0.RGBA4,y.dataType=E.ld.UNSIGNED_SHORT_4_4_4_4,y.wrapMode=E.pF.CLAMP_TO_EDGE;(new w.R).wrapMode=E.pF.CLAMP_TO_EDGE;const P=new w.R;P.wrapMode=E.pF.CLAMP_TO_EDGE,P.samplingMode=E.Cj.LINEAR_MIPMAP_LINEAR,P.hasMipmap=!0,P.maxAnisotropy=8;const D=new w.R;D.pixelFormat=E.Ab.RED,D.dataType=E.ld.HALF_FLOAT,D.internalFormat=E.H0.R16F,D.samplingMode=E.Cj.NEAREST;const L=new w.R;L.dataType=E.ld.HALF_FLOAT,L.internalFormat=E.H0.RGBA16F,L.wrapMode=E.pF.CLAMP_TO_EDGE,b.R8UNORM,b.R8UINT,b.RG8UNORM,b.RG8UINT,b.RGBA4UNORM,b.RGBA8UNORM,b.RGBA8UNORM_MIPMAP,b.R16FLOAT,b.RGBA16FLOAT,b.COUNT;const H={[E.SB.DEPTH_COMPONENT16]:E.ld.UNSIGNED_SHORT,[E.SB.DEPTH_COMPONENT24]:E.ld.UNSIGNED_INT,[E.SB.DEPTH_COMPONENT32F]:E.ld.FLOAT,[E.iE.DEPTH24_STENCIL8]:E.ld.UNSIGNED_INT_24_8,[E.iE.DEPTH32F_STENCIL8]:E.ld.FLOAT_32_UNSIGNED_INT_24_8_REV};A.DEPTH16,new class{constructor(e,t=0,r=t){this.internalFormat=e,this.width=t,this.height=r,this.multisampled=!1,this.samples=1}}(E.SB.DEPTH_COMPONENT16),A.COUNT,S.DEPTH24_STENCIL8,function(e){const t=new w.R;t.pixelFormat=(0,C.CR)(e)?E.j7.DEPTH_COMPONENT:E.j7.DEPTH_STENCIL,t.dataType=H[e],t.samplingMode=E.Cj.NEAREST,t.wrapMode=E.pF.CLAMP_TO_EDGE,t.internalFormat=e,t.hasMipmap=!1,t.isImmutable=!0}(E.iE.DEPTH24_STENCIL8);var F=r(97220),B=r(98958),G=r(95774),U=r(90644);class z extends B.w{constructor(e,t){super(e,t,new F.$(G.S,(()=>r.e(9384).then(r.bind(r,59384)))))}initializePipeline(){return(0,U.Ey)({colorWrite:U.kn})}}var V=r(48163),W=r(65786);class j extends W.Y{constructor(){super(...arguments),this.projScale=1}}class k extends j{constructor(){super(...arguments),this.intensity=1}}class q extends W.Y{}class Y extends q{constructor(){super(...arguments),this.blurSize=(0,V.vt)()}}var $=r(15581);class X extends B.w{constructor(e,t){super(e,t,new F.$($.S,(()=>r.e(191).then(r.bind(r,90191)))))}initializePipeline(){return(0,U.Ey)({colorWrite:U.kn})}}var Z=r(21231);const J=2;let K=class extends x{constructor(e){super(e),this.consumes={required:["normals"]},this.produces=o.SSAO,this.isEnabled=()=>!1,this._enableTime=(0,h.l5)(0),this._passParameters=new k,this._drawParameters=new Y}initialize(){const e=Uint8Array.from(atob("eXKEvZaUc66cjIKElE1jlJ6MjJ6Ufkl+jn2fcXp5jBx7c6KEflSGiXuXeW6OWs+tfqZ2Yot2Y7Zzfo2BhniEj3xoiXuXj4eGZpqEaHKDWjSMe7palFlzc3BziYOGlFVzg6Zzg7CUY5JrjFF7eYJ4jIKEcyyEonSXe7qUfqZ7j3xofqZ2c4R5lFZ5Y0WUbppoe1l2cIh2ezyUho+BcHN2cG6DbpqJhqp2e1GcezhrdldzjFGUcyxjc3aRjDyEc1h7Sl17c6aMjH92pb6Mjpd4dnqBjMOEhqZleIOBYzB7gYx+fnqGjJuEkWlwnCx7fGl+c4hjfGyRe5qMlNOMfnqGhIWHc6OMi4GDc6aMfqZuc6aMzqJzlKZ+lJ6Me3qRfoFue0WUhoR5UraEa6qMkXiPjMOMlJOGe7JrUqKMjK6MeYRzdod+Sl17boiPc6qEeYBlcIh2c1WEe7GDiWCDa0WMjEmMdod+Y0WcdntzhmN8WjyMjKJjiXtzgYxYaGd+a89zlEV7e2GJfnd+lF1rcK5zc4p5cHuBhL6EcXp5eYB7fnh8iX6HjIKEeaxuiYOGc66RfG2Ja5hzjlGMjEmMe9OEgXuPfHyGhPeEdl6JY02McGuMfnqGhFiMa3WJfnx2l4hwcG1uhmN8c0WMc39og1GBbrCEjE2EZY+JcIh2cIuGhIWHe0mEhIVrc09+gY5+eYBlnCyMhGCDl3drfmmMgX15aGd+gYx+fnuRfnhzY1SMsluJfnd+hm98WtNrcIuGh4SEj0qPdkqOjFF7jNNjdnqBgaqUjMt7boeBhnZ4jDR7c5pze4GGjEFrhLqMjHyMc0mUhKZze4WEa117kWlwbpqJjHZ2eX2Bc09zeId+e0V7WlF7jHJ2l72BfId8l3eBgXyBe897jGl7c66cgW+Xc76EjKNbgaSEjGx4fId8jFFjgZB8cG6DhlFziZhrcIh2fH6HgUqBgXiPY8dahGFzjEmMhEFre2dxhoBzc5SGfleGe6alc7aUeYBlhKqUdlp+cH5za4OEczxza0Gcc4J2jHZ5iXuXjH2Jh5yRjH2JcFx+hImBjH+MpddCl3dreZeJjIt8ZW18bm1zjoSEeIOBlF9oh3N7hlqBY4+UeYFwhLJjeYFwaGd+gUqBYxiEYot2fqZ2ondzhL6EYyiEY02Ea0VjgZB8doaGjHxoc66cjEGEiXuXiXWMiZhreHx8frGMe75rY02Ec5pzfnhzlEp4a3VzjM+EhFFza3mUY7Zza1V5e2iMfGyRcziEhDyEkXZ2Y4OBnCx7g5t2eyBjgV6EhEFrcIh2dod+c4Z+nJ5zjm15jEmUeYxijJp7nL6clIpjhoR5WrZraGd+fnuRa6pzlIiMg6ZzfHx5foh+eX1ufnB5eX1ufnB5aJt7UqKMjIh+e3aBfm5lbYSBhGFze6J4c39oc0mUc4Z+e0V7fKFVe0WEdoaGY02Ec4Z+Y02EZYWBfH6HgU1+gY5+hIWUgW+XjJ57ebWRhFVScHuBfJ6PhBx7WqJzlM+Ujpd4gHZziX6HjHmEgZN+lJt5boiPe2GJgX+GjIGJgHZzeaxufnB5hF2JtdN7jJ57hp57hK6ElFVzg6ZzbmiEbndzhIWHe3uJfoFue3qRhJd2j3xoc65zlE1jc3p8lE1jhniEgXJ7e657vZaUc3qBh52BhIF4aHKDa9drgY5+c52GWqZzbpqJe8tjnM+UhIeMfo2BfGl+hG1zSmmMjKJjZVaGgX15c1lze0mEp4OHa3mUhIWHhDyclJ6MeYOJkXiPc0VzhFiMlKaEboSJa5Jze41re3qRhn+HZYWBe0mEc4p5fnORbox5lEp4hGFjhGGEjJuEc1WEhLZjeHeGa7KlfHx2hLaMeX1ugY5+hIWHhKGPjMN7c1WEho1zhoBzZYx7fnhzlJt5exyUhFFziXtzfmmMa6qMYyiEiXxweV12kZSMeWqXSl17fnhzxmmMrVGEe1mcc4p5eHeGjK6MgY5+doaGa6pzlGV7g1qBh4KHkXiPeW6OaKqafqZ2eXZ5e1V7jGd7boSJc3BzhJd2e0mcYot2h1RoY8dahK6EQmWEWjx7e1l2lL6UgXyBdnR4eU9zc0VreX1umqaBhld7fo2Bc6KEc5Z+hDyEcIeBWtNrfHyGe5qMhMuMe5qMhEGEbVVupcNzg3aHhIF4boeBe0mEdlptc39ofFl5Y8uUlJOGiYt2UmGEcyxjjGx4jFF7a657ZYWBnElzhp57iXtrgZN+tfOEhIOBjE2HgU1+e8tjjKNbiWCDhE15gUqBgYN7fnqGc66ce9d7iYSBj0qPcG6DnGGcT3eGa6qMZY+JlIiMl4hwc3aRdnqBlGV7eHJ2hLZjfnuRhDyEeX6MSk17g6Z+c6aUjHmEhIF4gXyBc76EZW18fGl+fkl+jCxrhoVwhDyUhIqGlL2DlI6EhJd2tdN7eYORhEGMa2Faa6pzc3Bzc4R5lIRznM+UY9eMhDycc5Z+c4p5c4iGY117pb6MgXuPrbJafnx2eYOJeXZ5e657hDyEcziElKZjfoB5eHeGj4WRhGGEe6KGeX1utTStc76EhFGJnCyMa5hzfH6HnNeceYB7hmN8gYuMhIVrczSMgYF8h3N7c5pza5hzjJqEYIRdgYuMlL2DeYRzhGGEeX1uhLaEc4iGeZ1zdl6JhrVteX6Me2iMfm5lWqJzSpqEa6pzdnmchHx2c6OMhNdrhoR5g3aHczxzeW52gV6Ejm15frGMc0Vzc4Z+l3drfniJe+9rWq5rlF1rhGGEhoVwe9OEfoh+e7pac09+c3qBY0lrhDycdnp2lJ6MiYOGhGCDc3aRlL2DlJt5doaGdnp2gYF8gWeOjF2Uc4R5c5Z+jEmMe7KEc4mEeYJ4dmyBe0mcgXiPbqJ7eYB7fmGGiYSJjICGlF1reZ2PnElzbpqJfH6Hc39oe4WEc5eJhK6EhqyJc3qBgZB8c09+hEmEaHKDhFGJc5SGiXWMUpaEa89zc6OMnCyMiXtrho+Be5qMc7KEjJ57dmN+hKGPjICGbmiEe7prdod+hGCDdnmchBx7eX6MkXZ2hGGEa657hm98jFFjY5JreYOJgY2EjHZ2a295Y3FajJ6Mc1J+YzB7e4WBjF2Uc4R5eV12gYxzg1qBeId+c9OUc5pzjFFjgY5+hFiMlIaPhoR5lIpjjIKBlNdSe7KEeX2BfrGMhIqGc65zjE2UhK6EklZ+QmWEeziMWqZza3VzdnR4foh+gYF8n3iJiZhrnKp7gYF8eId+lJ6Me1lrcIuGjKJjhmN8c66MjFF7a6prjJ6UnJ5zezyUfruRWlF7nI5zfHyGe657h4SEe8tjhBx7jFFjc09+c39ojICMeZeJeXt+YzRzjHZ2c0WEcIeBeXZ5onSXkVR+gYJ+eYFwdldzgYF7eX2BjJ6UiXuXlE1jh4SEe1mchLJjc4Z+hqZ7eXZ5bm1zlL6Ue5p7iWeGhKqUY5pzjKJjcIeBe8t7gXyBYIRdlEp4a3mGnK6EfmmMZpqEfFl5gYxzjKZuhGFjhoKGhHx2fnx2eXuMe3aBiWeGvbKMe6KGa5hzYzB7gZOBlGV7hmN8hqZlYot2Y117a6pzc6KEfId8foB5rctrfneJfJ6PcHN2hFiMc5pzjH92c0VzgY2EcElzdmCBlFVzg1GBc65zY4OBboeBcHiBeYJ4ewxzfHx5lIRzlEmEnLKEbk1zfJ6PhmN8eYBljBiEnMOEiXxwezyUcIeBe76EdsKEeX2BdnR4jGWUrXWMjGd7fkl+j4WRlEGMa5Jzho+BhDyEfnqMeXt+g3aHlE1jczClhNN7ZW18eHx8hGFjZW18iXWMjKJjhH57gYuMcIuGWjyMe4ZtjJuExmmMj4WRdntzi4GDhFFzYIRdnGGcjJp7Y0F7e4WEkbCGiX57fnSHa657a6prhBCMe3Z+SmmMjH92eHJ2hK6EY1FzexhrvbKMnI5za4OEfnd+eXuMhImBe897hLaMjN+EfG+BeIOBhF1+eZeJi4GDkXZ2eXKEgZ6Ejpd4c2GHa1V5e5KUfqZuhCx7jKp7lLZrg11+hHx2hFWUoot2nI5zgbh5mo9zvZaUe3qRbqKMfqZ2kbCGhFiM"),(e=>e.charCodeAt(0))),t=new w.R;t.wrapMode=E.pF.CLAMP_TO_EDGE,t.pixelFormat=E.Ab.RGB,t.wrapMode=E.pF.REPEAT,t.hasMipmap=!0,t.width=32,t.height=32,this._passParameters.noiseTexture=new Z.g(this.renderingContext,t,e),this.techniques.precompile(X),this.techniques.precompile(z),this.addHandles((0,u.wB)((()=>this.isEnabled()),(()=>this._enableTime=(0,h.l5)(0))))}destroy(){this._passParameters.noiseTexture=(0,d.WD)(this._passParameters.noiseTexture)}render(e){const t=this.bindParameters,r=e.find((({name:e})=>"normals"===e)),i=r?.getTexture(),n=r?.getTexture(E.nI),a=this.fboCache,s=t.camera,l=s.fullViewport[2],d=s.fullViewport[3],u=Math.round(l/J),m=Math.round(d/J),p=this.techniques.get(X),v=this.techniques.get(z);if(!p.compiled||!v.compiled)return this._enableTime=(0,h.l5)(performance.now()),this.requestRender(_.C7.UPDATE),a.acquire(u,m,o.SSAO,b.R8UNORM);0===this._enableTime&&(this._enableTime=(0,h.l5)(performance.now()));const g=this.renderingContext,T=this.view.qualitySettings.fadeDuration,x=s.relativeElevation,A=(0,c.qE)((5e5-x)/2e5,0,1),S=T>0?Math.min(T,performance.now()-this._enableTime)/T:1,M=S*A;this._passParameters.normalTexture=i,this._passParameters.depthTexture=n,this._passParameters.projScale=1/s.computeScreenPixelSizeAtDist(1),this._passParameters.intensity=4*Q/(0,$.g)(s)**6*M;const w=a.acquire(l,d,"ssao input",b.RG8UNORM);g.bindFramebuffer(w.fbo),g.setViewport(0,0,l,d),g.bindTechnique(p,t,this._passParameters,this._drawParameters),g.screen.draw();const C=a.acquire(u,m,"ssao blur",b.R8UNORM);g.bindFramebuffer(C.fbo),this._drawParameters.colorTexture=w.getTexture(),(0,f.hZ)(this._drawParameters.blurSize,0,J/d),g.bindTechnique(v,t,this._passParameters,this._drawParameters),g.setViewport(0,0,u,m),g.screen.draw(),w.release();const R=a.acquire(u,m,o.SSAO,b.R8UNORM);return g.bindFramebuffer(R.fbo),g.setViewport(0,0,l,d),g.setClearColor(1,1,1,0),g.clear(E.NV.COLOR),this._drawParameters.colorTexture=C.getTexture(),(0,f.hZ)(this._drawParameters.blurSize,J/l,0),g.bindTechnique(v,t,this._passParameters,this._drawParameters),g.setViewport(0,0,u,m),g.screen.draw(),g.setViewport4fv(s.fullViewport),C.release(),S<1&&this.requestRender(_.C7.UPDATE),R}};(0,l._)([(0,m.MZ)()],K.prototype,"consumes",void 0),(0,l._)([(0,m.MZ)()],K.prototype,"produces",void 0),(0,l._)([(0,m.MZ)({constructOnly:!0})],K.prototype,"isEnabled",void 0),K=(0,l._)([(0,p.$)("esri.views.3d.webgl-engine.effects.ssao.SSAO")],K);const Q=.5;function ee(e,t){const r=e.fragment;t.receiveAmbientOcclusion?(r.uniforms.add(new s.x("ssaoTex",(e=>e.ssao?.getTexture()))),r.constants.add("blurSizePixelsInverse","float",1/J),r.code.add(a.H`float evaluateAmbientOcclusionInverse() {
794
+ `)}},85417:(e,t,r)=>{r.d(t,{n:()=>ee});var i,o,n,a=r(31821),s=r(12791),c=r(90237),l=r(34727),d=r(97768),u=r(36708),h=r(78659),m=r(10107),p=(r(44208),r(53966),r(87811),r(40608)),f=r(37585);r(9093),r(48353),r(9762),(n=i||(i={})).OPAQUE="opaque-color",n.TRANSPARENT="transparent-color",n.COMPOSITE="composite-color",n.FINAL="final-color",function(e){e.SSAO="ssao",e.LASERLINES="laserline-color",e.ANTIALIASING="aa-color",e.HIGHLIGHTS="highlight-color",e.MAGNIFIER="magnifier-color",e.OCCLUDED="occluded-color",e.VIEWSHED="viewshed-color",e.OPAQUE_ENVIRONMENT="opaque-environment-color",e.TRANSPARENT_ENVIRONMENT="transparent-environment-color",e.FOCUSAREA="focusarea",e.FOCUSAREA_COLOR="focusarea-color"}(o||(o={}));var v=r(69622),g=r(49186),_=r(89192);let T=class extends v.A{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=i.COMPOSITE,this.requireGeometryDepth=!1,this._dirty=!0}initialize(){this.addHandles([(0,u.wB)((()=>this.view.ready),(e=>{e&&this.view.stage?.renderer.addRenderNode(this)}),u.Vh)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new g.A("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view.stage.renderView.renderingContext.gl}get techniques(){return this.view.stage.renderView.techniques}acquireOutputFramebuffer(){const e=this._frameBuffer?.getTexture()?.descriptor,t=this.view.stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return t.fbo?.initializeAndBind(),t}bindRenderTarget(){return this._frameBuffer?.fbo?.initializeAndBind(),this._frameBuffer}requestRender(e){e===_.C7.UPDATE&&this.view.stage?.renderView.requestRender(e),this._dirty=!0}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view.stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view.stage.renderView.renderingContext}get renderContext(){return this.view.stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find((({name:e})=>e===this.produces));try{return this.render(e)}finally{this._frameBuffer=null}}};(0,c._)([(0,m.MZ)({constructOnly:!0})],T.prototype,"view",void 0),(0,c._)([(0,m.MZ)({constructOnly:!0})],T.prototype,"consumes",void 0),(0,c._)([(0,m.MZ)()],T.prototype,"produces",void 0),(0,c._)([(0,m.MZ)({readOnly:!0})],T.prototype,"techniques",null),T=(0,c._)([(0,p.$)("esri.views.3d.webgl.RenderNode")],T);const x=T;var E=r(63907);r(42293);var b,A,S,M,w=r(67171),C=r(12541);(M=b||(b={}))[M.R8UNORM=0]="R8UNORM",M[M.R8UINT=1]="R8UINT",M[M.RG8UNORM=2]="RG8UNORM",M[M.RG8UINT=3]="RG8UINT",M[M.RGBA4UNORM=4]="RGBA4UNORM",M[M.RGBA8UNORM=5]="RGBA8UNORM",M[M.RGBA8UNORM_MIPMAP=6]="RGBA8UNORM_MIPMAP",M[M.R16FLOAT=7]="R16FLOAT",M[M.RGBA16FLOAT=8]="RGBA16FLOAT",M[M.COUNT=9]="COUNT",function(e){e[e.DEPTH16=9]="DEPTH16",e[e.COUNT=10]="COUNT"}(A||(A={})),function(e){e[e.DEPTH24_STENCIL8=10]="DEPTH24_STENCIL8"}(S||(S={}));const R=new w.R;R.pixelFormat=E.Ab.RED,R.internalFormat=E.H0.R8,R.wrapMode=E.pF.CLAMP_TO_EDGE;const I=new w.R;I.pixelFormat=E.Ab.RED_INTEGER,I.internalFormat=E.H0.R8UI,I.wrapMode=E.pF.CLAMP_TO_EDGE,I.samplingMode=E.Cj.NEAREST;const O=new w.R;O.pixelFormat=E.Ab.RG,O.internalFormat=E.H0.RG8,O.wrapMode=E.pF.CLAMP_TO_EDGE;const N=new w.R;N.pixelFormat=E.Ab.RG_INTEGER,N.internalFormat=E.H0.RG8UI,N.wrapMode=E.pF.CLAMP_TO_EDGE,N.samplingMode=E.Cj.NEAREST;const y=new w.R;y.internalFormat=E.H0.RGBA4,y.dataType=E.ld.UNSIGNED_SHORT_4_4_4_4,y.wrapMode=E.pF.CLAMP_TO_EDGE;(new w.R).wrapMode=E.pF.CLAMP_TO_EDGE;const P=new w.R;P.wrapMode=E.pF.CLAMP_TO_EDGE,P.samplingMode=E.Cj.LINEAR_MIPMAP_LINEAR,P.hasMipmap=!0,P.maxAnisotropy=8;const L=new w.R;L.pixelFormat=E.Ab.RED,L.dataType=E.ld.HALF_FLOAT,L.internalFormat=E.H0.R16F,L.samplingMode=E.Cj.NEAREST;const D=new w.R;D.dataType=E.ld.HALF_FLOAT,D.internalFormat=E.H0.RGBA16F,D.wrapMode=E.pF.CLAMP_TO_EDGE,b.R8UNORM,b.R8UINT,b.RG8UNORM,b.RG8UINT,b.RGBA4UNORM,b.RGBA8UNORM,b.RGBA8UNORM_MIPMAP,b.R16FLOAT,b.RGBA16FLOAT,b.COUNT;const H={[E.SB.DEPTH_COMPONENT16]:E.ld.UNSIGNED_SHORT,[E.SB.DEPTH_COMPONENT24]:E.ld.UNSIGNED_INT,[E.SB.DEPTH_COMPONENT32F]:E.ld.FLOAT,[E.iE.DEPTH24_STENCIL8]:E.ld.UNSIGNED_INT_24_8,[E.iE.DEPTH32F_STENCIL8]:E.ld.FLOAT_32_UNSIGNED_INT_24_8_REV};A.DEPTH16,new class{constructor(e,t=0,r=t){this.internalFormat=e,this.width=t,this.height=r,this.multisampled=!1,this.samples=1}}(E.SB.DEPTH_COMPONENT16),A.COUNT,S.DEPTH24_STENCIL8,function(e){const t=new w.R;t.pixelFormat=(0,C.CR)(e)?E.j7.DEPTH_COMPONENT:E.j7.DEPTH_STENCIL,t.dataType=H[e],t.samplingMode=E.Cj.NEAREST,t.wrapMode=E.pF.CLAMP_TO_EDGE,t.internalFormat=e,t.hasMipmap=!1,t.isImmutable=!0}(E.iE.DEPTH24_STENCIL8);var F=r(97220),B=r(98958),U=r(95774),G=r(90644);class z extends B.w{constructor(e,t){super(e,t,new F.$(U.S,(()=>r.e(9384).then(r.bind(r,59384)))))}initializePipeline(){return(0,G.Ey)({colorWrite:G.kn})}}var V=r(48163),W=r(65786);class j extends W.Y{constructor(){super(...arguments),this.projScale=1}}class k extends j{constructor(){super(...arguments),this.intensity=1}}class $ extends W.Y{}class q extends ${constructor(){super(...arguments),this.blurSize=(0,V.vt)()}}var Y=r(15581);class X extends B.w{constructor(e,t){super(e,t,new F.$(Y.S,(()=>r.e(191).then(r.bind(r,90191)))))}initializePipeline(){return(0,G.Ey)({colorWrite:G.kn})}}var Z=r(21231);const J=2;let K=class extends x{constructor(e){super(e),this.consumes={required:["normals"]},this.produces=o.SSAO,this.isEnabled=()=>!1,this._enableTime=(0,h.l5)(0),this._passParameters=new k,this._drawParameters=new q}initialize(){const e=Uint8Array.from(atob("eXKEvZaUc66cjIKElE1jlJ6MjJ6Ufkl+jn2fcXp5jBx7c6KEflSGiXuXeW6OWs+tfqZ2Yot2Y7Zzfo2BhniEj3xoiXuXj4eGZpqEaHKDWjSMe7palFlzc3BziYOGlFVzg6Zzg7CUY5JrjFF7eYJ4jIKEcyyEonSXe7qUfqZ7j3xofqZ2c4R5lFZ5Y0WUbppoe1l2cIh2ezyUho+BcHN2cG6DbpqJhqp2e1GcezhrdldzjFGUcyxjc3aRjDyEc1h7Sl17c6aMjH92pb6Mjpd4dnqBjMOEhqZleIOBYzB7gYx+fnqGjJuEkWlwnCx7fGl+c4hjfGyRe5qMlNOMfnqGhIWHc6OMi4GDc6aMfqZuc6aMzqJzlKZ+lJ6Me3qRfoFue0WUhoR5UraEa6qMkXiPjMOMlJOGe7JrUqKMjK6MeYRzdod+Sl17boiPc6qEeYBlcIh2c1WEe7GDiWCDa0WMjEmMdod+Y0WcdntzhmN8WjyMjKJjiXtzgYxYaGd+a89zlEV7e2GJfnd+lF1rcK5zc4p5cHuBhL6EcXp5eYB7fnh8iX6HjIKEeaxuiYOGc66RfG2Ja5hzjlGMjEmMe9OEgXuPfHyGhPeEdl6JY02McGuMfnqGhFiMa3WJfnx2l4hwcG1uhmN8c0WMc39og1GBbrCEjE2EZY+JcIh2cIuGhIWHe0mEhIVrc09+gY5+eYBlnCyMhGCDl3drfmmMgX15aGd+gYx+fnuRfnhzY1SMsluJfnd+hm98WtNrcIuGh4SEj0qPdkqOjFF7jNNjdnqBgaqUjMt7boeBhnZ4jDR7c5pze4GGjEFrhLqMjHyMc0mUhKZze4WEa117kWlwbpqJjHZ2eX2Bc09zeId+e0V7WlF7jHJ2l72BfId8l3eBgXyBe897jGl7c66cgW+Xc76EjKNbgaSEjGx4fId8jFFjgZB8cG6DhlFziZhrcIh2fH6HgUqBgXiPY8dahGFzjEmMhEFre2dxhoBzc5SGfleGe6alc7aUeYBlhKqUdlp+cH5za4OEczxza0Gcc4J2jHZ5iXuXjH2Jh5yRjH2JcFx+hImBjH+MpddCl3dreZeJjIt8ZW18bm1zjoSEeIOBlF9oh3N7hlqBY4+UeYFwhLJjeYFwaGd+gUqBYxiEYot2fqZ2ondzhL6EYyiEY02Ea0VjgZB8doaGjHxoc66cjEGEiXuXiXWMiZhreHx8frGMe75rY02Ec5pzfnhzlEp4a3VzjM+EhFFza3mUY7Zza1V5e2iMfGyRcziEhDyEkXZ2Y4OBnCx7g5t2eyBjgV6EhEFrcIh2dod+c4Z+nJ5zjm15jEmUeYxijJp7nL6clIpjhoR5WrZraGd+fnuRa6pzlIiMg6ZzfHx5foh+eX1ufnB5eX1ufnB5aJt7UqKMjIh+e3aBfm5lbYSBhGFze6J4c39oc0mUc4Z+e0V7fKFVe0WEdoaGY02Ec4Z+Y02EZYWBfH6HgU1+gY5+hIWUgW+XjJ57ebWRhFVScHuBfJ6PhBx7WqJzlM+Ujpd4gHZziX6HjHmEgZN+lJt5boiPe2GJgX+GjIGJgHZzeaxufnB5hF2JtdN7jJ57hp57hK6ElFVzg6ZzbmiEbndzhIWHe3uJfoFue3qRhJd2j3xoc65zlE1jc3p8lE1jhniEgXJ7e657vZaUc3qBh52BhIF4aHKDa9drgY5+c52GWqZzbpqJe8tjnM+UhIeMfo2BfGl+hG1zSmmMjKJjZVaGgX15c1lze0mEp4OHa3mUhIWHhDyclJ6MeYOJkXiPc0VzhFiMlKaEboSJa5Jze41re3qRhn+HZYWBe0mEc4p5fnORbox5lEp4hGFjhGGEjJuEc1WEhLZjeHeGa7KlfHx2hLaMeX1ugY5+hIWHhKGPjMN7c1WEho1zhoBzZYx7fnhzlJt5exyUhFFziXtzfmmMa6qMYyiEiXxweV12kZSMeWqXSl17fnhzxmmMrVGEe1mcc4p5eHeGjK6MgY5+doaGa6pzlGV7g1qBh4KHkXiPeW6OaKqafqZ2eXZ5e1V7jGd7boSJc3BzhJd2e0mcYot2h1RoY8dahK6EQmWEWjx7e1l2lL6UgXyBdnR4eU9zc0VreX1umqaBhld7fo2Bc6KEc5Z+hDyEcIeBWtNrfHyGe5qMhMuMe5qMhEGEbVVupcNzg3aHhIF4boeBe0mEdlptc39ofFl5Y8uUlJOGiYt2UmGEcyxjjGx4jFF7a657ZYWBnElzhp57iXtrgZN+tfOEhIOBjE2HgU1+e8tjjKNbiWCDhE15gUqBgYN7fnqGc66ce9d7iYSBj0qPcG6DnGGcT3eGa6qMZY+JlIiMl4hwc3aRdnqBlGV7eHJ2hLZjfnuRhDyEeX6MSk17g6Z+c6aUjHmEhIF4gXyBc76EZW18fGl+fkl+jCxrhoVwhDyUhIqGlL2DlI6EhJd2tdN7eYORhEGMa2Faa6pzc3Bzc4R5lIRznM+UY9eMhDycc5Z+c4p5c4iGY117pb6MgXuPrbJafnx2eYOJeXZ5e657hDyEcziElKZjfoB5eHeGj4WRhGGEe6KGeX1utTStc76EhFGJnCyMa5hzfH6HnNeceYB7hmN8gYuMhIVrczSMgYF8h3N7c5pza5hzjJqEYIRdgYuMlL2DeYRzhGGEeX1uhLaEc4iGeZ1zdl6JhrVteX6Me2iMfm5lWqJzSpqEa6pzdnmchHx2c6OMhNdrhoR5g3aHczxzeW52gV6Ejm15frGMc0Vzc4Z+l3drfniJe+9rWq5rlF1rhGGEhoVwe9OEfoh+e7pac09+c3qBY0lrhDycdnp2lJ6MiYOGhGCDc3aRlL2DlJt5doaGdnp2gYF8gWeOjF2Uc4R5c5Z+jEmMe7KEc4mEeYJ4dmyBe0mcgXiPbqJ7eYB7fmGGiYSJjICGlF1reZ2PnElzbpqJfH6Hc39oe4WEc5eJhK6EhqyJc3qBgZB8c09+hEmEaHKDhFGJc5SGiXWMUpaEa89zc6OMnCyMiXtrho+Be5qMc7KEjJ57dmN+hKGPjICGbmiEe7prdod+hGCDdnmchBx7eX6MkXZ2hGGEa657hm98jFFjY5JreYOJgY2EjHZ2a295Y3FajJ6Mc1J+YzB7e4WBjF2Uc4R5eV12gYxzg1qBeId+c9OUc5pzjFFjgY5+hFiMlIaPhoR5lIpjjIKBlNdSe7KEeX2BfrGMhIqGc65zjE2UhK6EklZ+QmWEeziMWqZza3VzdnR4foh+gYF8n3iJiZhrnKp7gYF8eId+lJ6Me1lrcIuGjKJjhmN8c66MjFF7a6prjJ6UnJ5zezyUfruRWlF7nI5zfHyGe657h4SEe8tjhBx7jFFjc09+c39ojICMeZeJeXt+YzRzjHZ2c0WEcIeBeXZ5onSXkVR+gYJ+eYFwdldzgYF7eX2BjJ6UiXuXlE1jh4SEe1mchLJjc4Z+hqZ7eXZ5bm1zlL6Ue5p7iWeGhKqUY5pzjKJjcIeBe8t7gXyBYIRdlEp4a3mGnK6EfmmMZpqEfFl5gYxzjKZuhGFjhoKGhHx2fnx2eXuMe3aBiWeGvbKMe6KGa5hzYzB7gZOBlGV7hmN8hqZlYot2Y117a6pzc6KEfId8foB5rctrfneJfJ6PcHN2hFiMc5pzjH92c0VzgY2EcElzdmCBlFVzg1GBc65zY4OBboeBcHiBeYJ4ewxzfHx5lIRzlEmEnLKEbk1zfJ6PhmN8eYBljBiEnMOEiXxwezyUcIeBe76EdsKEeX2BdnR4jGWUrXWMjGd7fkl+j4WRlEGMa5Jzho+BhDyEfnqMeXt+g3aHlE1jczClhNN7ZW18eHx8hGFjZW18iXWMjKJjhH57gYuMcIuGWjyMe4ZtjJuExmmMj4WRdntzi4GDhFFzYIRdnGGcjJp7Y0F7e4WEkbCGiX57fnSHa657a6prhBCMe3Z+SmmMjH92eHJ2hK6EY1FzexhrvbKMnI5za4OEfnd+eXuMhImBe897hLaMjN+EfG+BeIOBhF1+eZeJi4GDkXZ2eXKEgZ6Ejpd4c2GHa1V5e5KUfqZuhCx7jKp7lLZrg11+hHx2hFWUoot2nI5zgbh5mo9zvZaUe3qRbqKMfqZ2kbCGhFiM"),(e=>e.charCodeAt(0))),t=new w.R;t.wrapMode=E.pF.CLAMP_TO_EDGE,t.pixelFormat=E.Ab.RGB,t.wrapMode=E.pF.REPEAT,t.hasMipmap=!0,t.width=32,t.height=32,this._passParameters.noiseTexture=new Z.g(this.renderingContext,t,e),this.techniques.precompile(X),this.techniques.precompile(z),this.addHandles((0,u.wB)((()=>this.isEnabled()),(()=>this._enableTime=(0,h.l5)(0))))}destroy(){this._passParameters.noiseTexture=(0,d.WD)(this._passParameters.noiseTexture)}render(e){const t=e.find((({name:e})=>"normals"===e)),r=t?.getTexture(),i=t?.getTexture(E.nI);if(!r||!i)return;const n=this.techniques.get(X),a=this.techniques.get(z);if(!n.compiled||!a.compiled)return this._enableTime=(0,h.l5)(performance.now()),void this.requestRender(_.C7.UPDATE);0===this._enableTime&&(this._enableTime=(0,h.l5)(performance.now()));const s=this.renderingContext,c=this.view.qualitySettings.fadeDuration,d=this.bindParameters,u=d.camera,m=u.relativeElevation,p=(0,l.qE)((5e5-m)/2e5,0,1),v=c>0?Math.min(c,performance.now()-this._enableTime)/c:1,g=v*p;this._passParameters.normalTexture=r,this._passParameters.depthTexture=i,this._passParameters.projScale=1/u.computeScreenPixelSizeAtDist(1),this._passParameters.intensity=4*Q/(0,Y.g)(u)**6*g;const T=u.fullViewport[2],x=u.fullViewport[3],A=this.fboCache.acquire(T,x,"ssao input",b.RG8UNORM);s.bindFramebuffer(A.fbo),s.setViewport(0,0,T,x),s.bindTechnique(n,d,this._passParameters,this._drawParameters),s.screen.draw();const S=Math.round(T/J),M=Math.round(x/J),w=this.fboCache.acquire(S,M,"ssao blur",b.R8UNORM);s.bindFramebuffer(w.fbo),this._drawParameters.colorTexture=A.getTexture(),(0,f.hZ)(this._drawParameters.blurSize,0,J/x),s.bindTechnique(a,d,this._passParameters,this._drawParameters),s.setViewport(0,0,S,M),s.screen.draw(),A.release();const C=this.fboCache.acquire(S,M,o.SSAO,b.R8UNORM);return s.bindFramebuffer(C.fbo),s.setViewport(0,0,T,x),s.setClearColor(1,1,1,0),s.clear(E.NV.COLOR),this._drawParameters.colorTexture=w.getTexture(),(0,f.hZ)(this._drawParameters.blurSize,J/T,0),s.bindTechnique(a,d,this._passParameters,this._drawParameters),s.setViewport(0,0,S,M),s.screen.draw(),s.setViewport4fv(u.fullViewport),w.release(),v<1&&this.requestRender(_.C7.UPDATE),C}};(0,c._)([(0,m.MZ)()],K.prototype,"consumes",void 0),(0,c._)([(0,m.MZ)()],K.prototype,"produces",void 0),(0,c._)([(0,m.MZ)({constructOnly:!0})],K.prototype,"isEnabled",void 0),K=(0,c._)([(0,p.$)("esri.views.3d.webgl-engine.effects.ssao.SSAO")],K);const Q=.5;function ee(e,t){t.receiveAmbientOcclusion?(e.uniforms.add(new s.x("ssaoTex",(e=>e.ssao?.getTexture()))),e.constants.add("blurSizePixelsInverse","float",1/J),e.code.add(a.H`float evaluateAmbientOcclusionInverse() {
1001
795
  vec2 ssaoTextureSizeInverse = 1.0 / vec2(textureSize(ssaoTex, 0));
1002
796
  return texture(ssaoTex, gl_FragCoord.xy * blurSizePixelsInverse * ssaoTextureSizeInverse).r;
1003
797
  }
1004
798
  float evaluateAmbientOcclusion() {
1005
799
  return 1.0 - evaluateAmbientOcclusionInverse();
1006
- }`)):r.code.add(a.H`float evaluateAmbientOcclusionInverse() { return 1.0; }
1007
- float evaluateAmbientOcclusion() { return 0.0; }`)}},87170:(e,t,r)=>{r.d(t,{V:()=>w});var i=r(24326),o=r(9093),n=r(38954),a=r(97146),s=r(57917),l=r(29920),c=r(51850),d=r(4341),u=r(11964);function h(e,t,r){return(0,n.d)(m,t,e),(0,n.d)(p,r,e),.5*(0,n.l)((0,n.e)(m,m,p))}r(32114),new d.I(u.vt),new d.I((()=>{return e?{p0:(0,c.o8)(e.p0),p1:(0,c.o8)(e.p1),p2:(0,c.o8)(e.p2)}:{p0:(0,c.vt)(),p1:(0,c.vt)(),p2:(0,c.vt)()};var e}));const m=(0,c.vt)(),p=(0,c.vt)(),f=(0,c.vt)(),v=(0,c.vt)(),g=(0,c.vt)(),_=(0,c.vt)();var T=r(75039),x=r(89192);class E{constructor(){this.uid=(0,i.c)()}}class b extends E{constructor(e){super(),this.highlightName=e,this.channel=x.Mg.Highlight}}var A=r(620),S=r(46540),M=r(94656);class w{constructor(e,t,r=null,o=T.d.Mesh,n=null,s=-1){this.material=e,this.mapPositions=r,this.type=o,this.objectAndLayerIdColor=n,this.edgeIndicesLength=s,this.highlights=new Set,this._highlightOptionsCounts=new Map,this.id=(0,i.c)(),this.visible=!0,this._attributes=new Map,this._boundingInfo=null;for(const[e,r]of t)this._attributes.set(e,{...r,indices:(0,a.Dg)(r.indices)}),e===S.r.POSITION&&(this.edgeIndicesLength=this.edgeIndicesLength<0?this._attributes.get(e).indices.length:this.edgeIndicesLength)}instantiate(e={}){const t=new w(e.material||this.material,[],this.mapPositions,this.type,this.objectAndLayerIdColor,this.edgeIndicesLength);return this._attributes.forEach(((e,r)=>{e.exclusive=!1,t._attributes.set(r,e)})),t._boundingInfo=this._boundingInfo,t.transformation=e.transformation||this.transformation,t}get attributes(){return this._attributes}getMutableAttribute(e){let t=this._attributes.get(e);return t&&!t.exclusive&&(t={...t,exclusive:!0,data:(0,s.S)(t.data)},this._attributes.set(e,t)),t}setAttributeData(e,t){const r=this._attributes.get(e);r?this._attributes.set(e,{...r,exclusive:!0,data:t}):(0,M.en)()&&console.warn(`Setting undefined attribute ${e} data`)}get indexCount(){const e=this._attributes.values().next().value?.indices;return e?.length??0}get faceCount(){return this.indexCount/3}get boundingInfo(){return this._boundingInfo??=this._calculateBoundingInfo(),this._boundingInfo}computeAttachmentOrigin(e){return!!(this.type===T.d.Mesh?this._computeAttachmentOriginTriangles(e):this.type===T.d.Line?this._computeAttachmentOriginLines(e):this._computeAttachmentOriginPoints(e))&&(null!=this._transformation&&(0,n.t)(e,e,this._transformation),!0)}_computeAttachmentOriginTriangles(e){return function(e,t){if(!e)return!1;const{size:r,data:i,indices:o}=e;(0,n.i)(t,0,0,0),(0,n.i)(_,0,0,0);let a=0,s=0;for(let e=0;e<o.length-2;e+=3){const l=o[e]*r,c=o[e+1]*r,d=o[e+2]*r;(0,n.i)(f,i[l],i[l+1],i[l+2]),(0,n.i)(v,i[c],i[c+1],i[c+2]),(0,n.i)(g,i[d],i[d+1],i[d+2]);const u=h(f,v,g);u?((0,n.g)(f,f,v),(0,n.g)(f,f,g),(0,n.h)(f,f,1/3*u),(0,n.g)(t,t,f),a+=u):((0,n.g)(_,_,f),(0,n.g)(_,_,v),(0,n.g)(_,_,g),s+=3)}return!(0===s&&0===a||(0!==a?((0,n.h)(t,t,1/a),0):0===s||((0,n.h)(t,_,1/s),0)))}(this.attributes.get(S.r.POSITION),e)}_computeAttachmentOriginLines(e){const t=this.attributes.get(S.r.POSITION);return function(e,t,r){if(!e)return!1;(0,n.i)(r,0,0,0),(0,n.i)(_,0,0,0);let i=0,o=0;const{size:a,data:s,indices:l}=e,c=l.length-1,d=c+(t?2:0);for(let e=0;e<d;e+=2){const t=e<c?e+1:0,d=l[e<c?e:c]*a,u=l[t]*a;f[0]=s[d],f[1]=s[d+1],f[2]=s[d+2],v[0]=s[u],v[1]=s[u+1],v[2]=s[u+2],(0,n.h)(f,(0,n.g)(f,f,v),.5);const h=(0,n.F)(f,v);h>0?((0,n.g)(r,r,(0,n.h)(f,f,h)),i+=h):0===i&&((0,n.g)(_,_,f),o++)}return 0!==i?((0,n.h)(r,r,1/i),!0):0!==o&&((0,n.h)(r,_,1/o),!0)}(t,function(e,t){return!(!("isClosed"in e)||!e.isClosed)&&t.indices.length>2}(this.material.parameters,t),e)}_computeAttachmentOriginPoints(e){return function(e,t){if(!e)return!1;const{size:r,data:i,indices:o}=e;(0,n.i)(t,0,0,0);let a=-1,s=0;for(let e=0;e<o.length;e++){const n=o[e]*r;a!==n&&(t[0]+=i[n],t[1]+=i[n+1],t[2]+=i[n+2],s++),a=n}return s>1&&(0,n.h)(t,t,1/s),s>0}(this.attributes.get(S.r.POSITION),e)}invalidateBoundingInfo(){this._boundingInfo=null}_calculateBoundingInfo(){const e=this.attributes.get(S.r.POSITION);if(!e||0===e.indices.length)return null;const t=this.type===T.d.Mesh?3:1;(0,A.vA)(e.indices.length%t==0,"Indexing error: "+e.indices.length+" not divisible by "+t);const r=(0,a.tM)(e.indices.length/t);return new l.j(r,t,e)}get transformation(){return this._transformation??o.zK}set transformation(e){this._transformation=e&&e!==o.zK?(0,o.o8)(e):null}get highlightNames(){return this._highlightOptionsCounts}get hasHighlights(){return this._highlightOptionsCounts.size>0}foreachHighlightOptions(e){this._highlightOptionsCounts.forEach(((t,r)=>e(r)))}allocateIdAndHighlight(e){const t=new b(e);return this.addHighlight(t)}addHighlight(e){this.highlights.add(e);const{highlightName:t}=e,r=(this._highlightOptionsCounts.get(t)??0)+1;return this._highlightOptionsCounts.set(t,r),e}removeHighlight(e){if(this.highlights.delete(e)){const{highlightName:t}=e,r=this._highlightOptionsCounts.get(t)??0;r<=1?this._highlightOptionsCounts.delete(t):this._highlightOptionsCounts.set(t,r-1)}}}},89192:(e,t,r)=>{var i,o,n,a,s,l,c,d;r.d(t,{Am:()=>a,C7:()=>n,JS:()=>d,Mg:()=>l,dd:()=>s,it:()=>o,s2:()=>i,sf:()=>c}),function(e){e[e.None=0]="None",e[e.Front=1]="Front",e[e.Back=2]="Back",e[e.COUNT=3]="COUNT"}(i||(i={})),function(e){e[e.Less=0]="Less",e[e.Lequal=1]="Lequal",e[e.COUNT=2]="COUNT"}(o||(o={})),function(e){e[e.BACKGROUND=0]="BACKGROUND",e[e.UPDATE=1]="UPDATE"}(n||(n={})),function(e){e[e.NOT_LOADED=0]="NOT_LOADED",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED"}(a||(a={})),function(e){e[e.IntegratedMeshMaskExcluded=1]="IntegratedMeshMaskExcluded",e[e.OutlineVisualElementMask=2]="OutlineVisualElementMask"}(s||(s={})),function(e){e[e.Highlight=0]="Highlight",e[e.MaskOccludee=1]="MaskOccludee"}(l||(l={})),function(e){e[e.Blend=0]="Blend",e[e.Opaque=1]="Opaque",e[e.Mask=2]="Mask",e[e.MaskBlend=3]="MaskBlend",e[e.COUNT=4]="COUNT"}(c||(c={})),function(e){e.DDS_ENCODING="image/vnd-ms.dds",e.KTX2_ENCODING="image/ktx2",e.BASIS_ENCODING="image/x.basis"}(d||(d={}))},89786:(e,t,r)=>{function i(e){const t=3.141592653589793,r=.3183098861837907;e.vertex.constants.add("PI","float",t),e.fragment.constants.add("PI","float",t),e.fragment.constants.add("LIGHT_NORMALIZATION","float",r),e.fragment.constants.add("INV_PI","float",r),e.fragment.constants.add("HALF_PI","float",1.570796326794897),e.fragment.constants.add("TWO_PI","float",6.28318530717958)}r.d(t,{p:()=>i})},90644:(e,t,r)=>{r.d(t,{Ey:()=>A,RC:()=>s,T8:()=>l,Uy:()=>h,Xt:()=>u,kn:()=>m,p3:()=>a});var i=r(89192),o=r(63907);function n(e,t,r=o.Tb.ADD,i=[0,0,0,0]){return{srcRgb:e,srcAlpha:e,dstRgb:t,dstAlpha:t,opRgb:r,opAlpha:r,color:{r:i[0],g:i[1],b:i[2],a:i[3]}}}function a(e,t,r,i,n=o.Tb.ADD,a=o.Tb.ADD,s=[0,0,0,0]){return{srcRgb:e,srcAlpha:t,dstRgb:r,dstAlpha:i,opRgb:n,opAlpha:a,color:{r:s[0],g:s[1],b:s[2],a:s[3]}}}n(o.dn.ZERO,o.dn.ONE_MINUS_SRC_ALPHA),n(o.dn.ONE,o.dn.ZERO),n(o.dn.ONE,o.dn.ONE);const s=n(o.dn.ONE,o.dn.ONE_MINUS_SRC_ALPHA),l=a(o.dn.SRC_ALPHA,o.dn.ONE,o.dn.ONE_MINUS_SRC_ALPHA,o.dn.ONE_MINUS_SRC_ALPHA),c={face:o.Y7.BACK,mode:o.Ac.CCW},d={face:o.Y7.FRONT,mode:o.Ac.CCW},u=e=>e===i.s2.Back?c:e===i.s2.Front?d:null,h={zNear:0,zFar:1},m={r:!0,g:!0,b:!0,a:!0};function p(e){return w.intern(e)}function f(e){return R.intern(e)}function v(e){return O.intern(e)}function g(e){return y.intern(e)}function _(e){return D.intern(e)}function T(e){return H.intern(e)}function x(e){return B.intern(e)}function E(e){return U.intern(e)}function b(e){return V.intern(e)}function A(e){return j.intern(e)}class S{constructor(e,t){this._makeKey=e,this._makeRef=t,this._interns=new Map}intern(e){if(!e)return null;const t=this._makeKey(e),r=this._interns;return r.has(t)||r.set(t,this._makeRef(e)),r.get(t)??null}}function M(e){return"["+e.join(",")+"]"}const w=new S(C,(e=>({__tag:"Blending",...e})));function C(e){return e?M([e.srcRgb,e.srcAlpha,e.dstRgb,e.dstAlpha,e.opRgb,e.opAlpha,e.color.r,e.color.g,e.color.b,e.color.a]):null}const R=new S(I,(e=>({__tag:"Culling",...e})));function I(e){return e?M([e.face,e.mode]):null}const O=new S(N,(e=>({__tag:"PolygonOffset",...e})));function N(e){return e?M([e.factor,e.units]):null}const y=new S(P,(e=>({__tag:"DepthTest",...e})));function P(e){return e?M([e.func]):null}const D=new S(L,(e=>({__tag:"StencilTest",...e})));function L(e){return e?M([e.function.func,e.function.ref,e.function.mask,e.operation.fail,e.operation.zFail,e.operation.zPass]):null}const H=new S(F,(e=>({__tag:"DepthWrite",...e})));function F(e){return e?M([e.zNear,e.zFar]):null}const B=new S(G,(e=>({__tag:"ColorWrite",...e})));function G(e){return e?M([e.r,e.g,e.b,e.a]):null}const U=new S(z,(e=>({__tag:"StencilWrite",...e})));function z(e){return e?M([e.mask]):null}const V=new S(W,(e=>({__tag:"DrawBuffers",...e})));function W(e){return e?M(e.buffers):null}const j=new S((function(e){return e?M([C(e.blending),I(e.culling),N(e.polygonOffset),P(e.depthTest),L(e.stencilTest),F(e.depthWrite),G(e.colorWrite),z(e.stencilWrite),W(e.drawBuffers)]):null}),(e=>({blending:p(e.blending),culling:f(e.culling),polygonOffset:v(e.polygonOffset),depthTest:g(e.depthTest),stencilTest:_(e.stencilTest),depthWrite:T(e.depthWrite),colorWrite:x(e.colorWrite),stencilWrite:E(e.stencilWrite),drawBuffers:b(e.drawBuffers)})))},92700:(e,t,r)=>{r.d(t,{c:()=>n});var i=r(31821),o=r(46540);function n(e,t){t.hasVertexColors?(e.attributes.add(o.r.COLOR,"vec4"),e.varyings.add("vColor","vec4"),e.vertex.code.add(i.H`void forwardVertexColor() { vColor = color; }`),e.vertex.code.add(i.H`void forwardNormalizedVertexColor() { vColor = color * 0.003921568627451; }`)):e.vertex.code.add(i.H`void forwardVertexColor() {}
1008
- void forwardNormalizedVertexColor() {}`)}},92993:(e,t,r)=>{var i;r.d(t,{n:()=>i}),function(e){e[e.ETC1_RGB=0]="ETC1_RGB",e[e.ETC2_RGBA=1]="ETC2_RGBA",e[e.BC1_RGB=2]="BC1_RGB",e[e.BC3_RGBA=3]="BC3_RGBA",e[e.BC4_R=4]="BC4_R",e[e.BC5_RG=5]="BC5_RG",e[e.BC7_M6_RGB=6]="BC7_M6_RGB",e[e.BC7_M5_RGBA=7]="BC7_M5_RGBA",e[e.PVRTC1_4_RGB=8]="PVRTC1_4_RGB",e[e.PVRTC1_4_RGBA=9]="PVRTC1_4_RGBA",e[e.ASTC_4x4_RGBA=10]="ASTC_4x4_RGBA",e[e.ATC_RGB=11]="ATC_RGB",e[e.ATC_RGBA=12]="ATC_RGBA",e[e.FXT1_RGB=17]="FXT1_RGB",e[e.PVRTC2_4_RGB=18]="PVRTC2_4_RGB",e[e.PVRTC2_4_RGBA=19]="PVRTC2_4_RGBA",e[e.ETC2_EAC_R11=20]="ETC2_EAC_R11",e[e.ETC2_EAC_RG11=21]="ETC2_EAC_RG11",e[e.RGBA32=13]="RGBA32",e[e.RGB565=14]="RGB565",e[e.BGR565=15]="BGR565",e[e.RGBA4444=16]="RGBA4444"}(i||(i={}))},94656:(e,t,r)=>{r.d(t,{Y2:()=>d,en:()=>c});var i=r(49186),o=r(44208),n=r(53966),a=r(63907);const s=()=>n.A.getLogger("esri.views.webgl.checkWebGLError"),l=!!(0,o.A)("enable-feature:webgl-debug");function c(){return l}function d(e){if(c()){const t=e.getError();if(t){const e=function(e){switch(e){case a.bh.INVALID_ENUM:return"Invalid Enum. An unacceptable value has been specified for an enumerated argument.";case a.bh.INVALID_VALUE:return"Invalid Value. A numeric argument is out of range.";case a.bh.INVALID_OPERATION:return"Invalid Operation. The specified command is not allowed for the current state.";case a.bh.INVALID_FRAMEBUFFER_OPERATION:return"Invalid Framebuffer operation. The currently bound framebuffer is not framebuffer complete when trying to render to or to read from it.";case a.bh.OUT_OF_MEMORY:return"Out of memory. Not enough memory is left to execute the command.";case a.bh.CONTEXT_LOST_WEBGL:return"WebGL context has been lost";default:return"Unknown error"}}(t),r=(new Error).stack;s().error(new i.A("webgl-error","WebGL error occurred",{message:e,stack:r}))}}}},95774:(e,t,r)=>{r.d(t,{S:()=>m,b:()=>h});var i=r(82048),o=r(52540),n=r(68259),a=r(20304),s=r(31821),l=r(15976),c=r(63761),d=r(14113);const u=4;function h(){const e=new d.N5,t=e.fragment;e.include(i.c);const r=(u+1)/2,h=1/(2*r*r);return t.include(o.E),t.uniforms.add(new c.N("depthMap",(e=>e.depthTexture)),new l.o("tex",(e=>e.colorTexture)),new n.t("blurSize",(e=>e.blurSize)),new a.m("projScale",((e,t)=>{const r=t.camera.distance;return r>5e4?Math.max(0,e.projScale-(r-5e4)):e.projScale}))),t.code.add(s.H`
800
+ }`)):e.code.add(a.H`float evaluateAmbientOcclusionInverse() { return 1.0; }
801
+ float evaluateAmbientOcclusion() { return 0.0; }`)}},87170:(e,t,r)=>{r.d(t,{V:()=>w});var i=r(24326),o=r(9093),n=r(38954),a=r(97146),s=r(57917),c=r(29920),l=r(51850),d=r(4341),u=r(11964);function h(e,t,r){return(0,n.d)(m,t,e),(0,n.d)(p,r,e),.5*(0,n.l)((0,n.e)(m,m,p))}r(32114),new d.I(u.vt),new d.I((()=>{return e?{p0:(0,l.o8)(e.p0),p1:(0,l.o8)(e.p1),p2:(0,l.o8)(e.p2)}:{p0:(0,l.vt)(),p1:(0,l.vt)(),p2:(0,l.vt)()};var e}));const m=(0,l.vt)(),p=(0,l.vt)(),f=(0,l.vt)(),v=(0,l.vt)(),g=(0,l.vt)(),_=(0,l.vt)();var T=r(75039),x=r(89192);class E{constructor(){this.uid=(0,i.c)()}}class b extends E{constructor(e){super(),this.highlightName=e,this.channel=x.Mg.Highlight}}var A=r(620),S=r(46540),M=r(94656);class w{constructor(e,t,r=null,o=T.d.Mesh,n=null,s=-1){this.material=e,this.mapPositions=r,this.type=o,this.objectAndLayerIdColor=n,this.edgeIndicesLength=s,this.highlights=new Set,this._highlightOptionsCounts=new Map,this.id=(0,i.c)(),this.visible=!0,this._attributes=new Map,this._boundingInfo=null;for(const[e,r]of t)this._attributes.set(e,{...r,indices:(0,a.Dg)(r.indices)}),e===S.r.POSITION&&(this.edgeIndicesLength=this.edgeIndicesLength<0?this._attributes.get(e).indices.length:this.edgeIndicesLength)}instantiate(e={}){const t=new w(e.material||this.material,[],this.mapPositions,this.type,this.objectAndLayerIdColor,this.edgeIndicesLength);return this._attributes.forEach(((e,r)=>{e.exclusive=!1,t._attributes.set(r,e)})),t._boundingInfo=this._boundingInfo,t.transformation=e.transformation||this.transformation,t}get attributes(){return this._attributes}getMutableAttribute(e){let t=this._attributes.get(e);return t&&!t.exclusive&&(t={...t,exclusive:!0,data:(0,s.S)(t.data)},this._attributes.set(e,t)),t}setAttributeData(e,t){const r=this._attributes.get(e);r?this._attributes.set(e,{...r,exclusive:!0,data:t}):(0,M.en)()&&console.warn(`Setting undefined attribute ${e} data`)}get indexCount(){const e=this._attributes.values().next().value?.indices;return e?.length??0}get faceCount(){return this.indexCount/3}get boundingInfo(){return this._boundingInfo??=this._calculateBoundingInfo(),this._boundingInfo}computeAttachmentOrigin(e){return!!(this.type===T.d.Mesh?this._computeAttachmentOriginTriangles(e):this.type===T.d.Line?this._computeAttachmentOriginLines(e):this._computeAttachmentOriginPoints(e))&&(null!=this._transformation&&(0,n.t)(e,e,this._transformation),!0)}_computeAttachmentOriginTriangles(e){return function(e,t){if(!e)return!1;const{size:r,data:i,indices:o}=e;(0,n.i)(t,0,0,0),(0,n.i)(_,0,0,0);let a=0,s=0;for(let e=0;e<o.length-2;e+=3){const c=o[e]*r,l=o[e+1]*r,d=o[e+2]*r;(0,n.i)(f,i[c],i[c+1],i[c+2]),(0,n.i)(v,i[l],i[l+1],i[l+2]),(0,n.i)(g,i[d],i[d+1],i[d+2]);const u=h(f,v,g);u?((0,n.g)(f,f,v),(0,n.g)(f,f,g),(0,n.h)(f,f,1/3*u),(0,n.g)(t,t,f),a+=u):((0,n.g)(_,_,f),(0,n.g)(_,_,v),(0,n.g)(_,_,g),s+=3)}return!(0===s&&0===a||(0!==a?((0,n.h)(t,t,1/a),0):0===s||((0,n.h)(t,_,1/s),0)))}(this.attributes.get(S.r.POSITION),e)}_computeAttachmentOriginLines(e){const t=this.attributes.get(S.r.POSITION);return function(e,t,r){if(!e)return!1;(0,n.i)(r,0,0,0),(0,n.i)(_,0,0,0);let i=0,o=0;const{size:a,data:s,indices:c}=e,l=c.length-1,d=l+(t?2:0);for(let e=0;e<d;e+=2){const t=e<l?e+1:0,d=c[e<l?e:l]*a,u=c[t]*a;f[0]=s[d],f[1]=s[d+1],f[2]=s[d+2],v[0]=s[u],v[1]=s[u+1],v[2]=s[u+2],(0,n.h)(f,(0,n.g)(f,f,v),.5);const h=(0,n.F)(f,v);h>0?((0,n.g)(r,r,(0,n.h)(f,f,h)),i+=h):0===i&&((0,n.g)(_,_,f),o++)}return 0!==i?((0,n.h)(r,r,1/i),!0):0!==o&&((0,n.h)(r,_,1/o),!0)}(t,function(e,t){return!(!("isClosed"in e)||!e.isClosed)&&t.indices.length>2}(this.material.parameters,t),e)}_computeAttachmentOriginPoints(e){return function(e,t){if(!e)return!1;const{size:r,data:i,indices:o}=e;(0,n.i)(t,0,0,0);let a=-1,s=0;for(let e=0;e<o.length;e++){const n=o[e]*r;a!==n&&(t[0]+=i[n],t[1]+=i[n+1],t[2]+=i[n+2],s++),a=n}return s>1&&(0,n.h)(t,t,1/s),s>0}(this.attributes.get(S.r.POSITION),e)}invalidateBoundingInfo(){this._boundingInfo=null}_calculateBoundingInfo(){const e=this.attributes.get(S.r.POSITION);if(!e||0===e.indices.length)return null;const t=this.type===T.d.Mesh?3:1;(0,A.vA)(e.indices.length%t==0,"Indexing error: "+e.indices.length+" not divisible by "+t);const r=(0,a.tM)(e.indices.length/t);return new c.j(r,t,e)}get transformation(){return this._transformation??o.zK}set transformation(e){this._transformation=e&&e!==o.zK?(0,o.o8)(e):null}get highlightNames(){return this._highlightOptionsCounts}get hasHighlights(){return this._highlightOptionsCounts.size>0}foreachHighlightOptions(e){this._highlightOptionsCounts.forEach(((t,r)=>e(r)))}allocateIdAndHighlight(e){const t=new b(e);return this.addHighlight(t)}addHighlight(e){this.highlights.add(e);const{highlightName:t}=e,r=(this._highlightOptionsCounts.get(t)??0)+1;return this._highlightOptionsCounts.set(t,r),e}removeHighlight(e){if(this.highlights.delete(e)){const{highlightName:t}=e,r=this._highlightOptionsCounts.get(t)??0;r<=1?this._highlightOptionsCounts.delete(t):this._highlightOptionsCounts.set(t,r-1)}}}},88076:(e,t,r)=>{r.d(t,{$U:()=>ge,fs:()=>Te,ty:()=>xe});var i=r(38954),o=r(51850),n=r(67222),a=r(24151),s=r(1843),c=r(49255),l=r(96336),d=r(22911),u=r(62602),h=r(59469),m=r(16943),p=r(89192),f=r(25634),v=r(11725),g=r(33524),_=r(70328),T=r(75039),x=r(620),E=r(46540);class b{constructor(e=!1,t=!0){this.isVerticalRay=e,this.normalRequired=t}}const A=(0,_.vt)();function S(e,t,r,o,n,a){if(!e.visible)return;const s=(0,i.a)(B,o,r),c=(e,t,r)=>{a(e,r,t,!1)},l=new b(!1,t.options.normalRequired);if(e.boundingInfo){(0,x.vA)(e.type===T.d.Mesh);const i=t.tolerance;w(e.boundingInfo,r,s,i,n,l,c)}else{const t=e.attributes.get(E.r.POSITION),o=t.indices;!function(e,t,r,o,n,a,s,c,l,d){const u=t,h=U,m=Math.abs(u[0]),p=Math.abs(u[1]),f=Math.abs(u[2]),v=m>=p?m>=f?0:2:p>=f?1:2,g=v,_=u[g]<0?2:1,T=(v+_)%3,x=(v+(3-_))%3,E=u[T]/u[g],b=u[x]/u[g],A=1/u[g],S=I,M=O,w=N,{normalRequired:C}=l;for(let t=r;t<o;++t){const r=3*t,o=s*n[r];(0,i.i)(h[0],a[o+0],a[o+1],a[o+2]);const l=s*n[r+1];(0,i.i)(h[1],a[l+0],a[l+1],a[l+2]);const u=s*n[r+2];(0,i.i)(h[2],a[u+0],a[u+1],a[u+2]),c&&((0,i.c)(h[0],c.applyToVertex(h[0][0],h[0][1],h[0][2],t)),(0,i.c)(h[1],c.applyToVertex(h[1][0],h[1][1],h[1][2],t)),(0,i.c)(h[2],c.applyToVertex(h[2][0],h[2][1],h[2][2],t))),(0,i.a)(S,h[0],e),(0,i.a)(M,h[1],e),(0,i.a)(w,h[2],e);const m=S[T]-E*S[g],p=S[x]-b*S[g],f=M[T]-E*M[g],v=M[x]-b*M[g],_=w[T]-E*w[g],R=w[x]-b*w[g],I=_*v-R*f,O=m*R-p*_,N=f*p-v*m;if((I<0||O<0||N<0)&&(I>0||O>0||N>0))continue;const y=I+O+N;if(0===y)continue;const L=I*(A*S[g])+O*(A*M[g])+N*(A*w[g]);if(L*Math.sign(y)<0)continue;const D=L/y;D>=0&&d(D,t,C?P(h):null)}}(r,s,0,o.length/3,o,t.data,t.stride,n,l,c)}}const M=(0,o.vt)();function w(e,t,r,o,n,a,s){if(null==e)return;const c=function(e,t){return(0,i.i)(t,1/e[0],1/e[1],1/e[2])}(r,M);if((0,_.Ne)(A,e.bbMin),(0,_.vI)(A,e.bbMax),null!=n&&n.applyToAabb(A),function(e,t,r,i){return function(e,t,r,i){const o=(e[0]-i-t[0])*r[0],n=(e[3]+i-t[0])*r[0];let a=Math.min(o,n),s=Math.max(o,n);const c=(e[1]-i-t[1])*r[1],l=(e[4]+i-t[1])*r[1];if(s=Math.min(s,Math.max(c,l)),s<0)return!1;if(a=Math.max(a,Math.min(c,l)),a>s)return!1;const d=(e[2]-i-t[2])*r[2],u=(e[5]+i-t[2])*r[2];return s=Math.min(s,Math.max(d,u)),!(s<0)&&(a=Math.max(a,Math.min(d,u)),!(a>s)&&a<1/0)}(e,t,r,i)}(A,t,c,o)){const{primitiveIndices:i,position:c}=e,l=i?i.length:c.indices.length/3;if(l>H){const i=e.getChildren();if(void 0!==i){for(const e of i)w(e,t,r,o,n,a,s);return}}!function(e,t,r,i,o,n,a,s,c,l,d){const u=e[0],h=e[1],m=e[2],p=t[0],f=t[1],v=t[2],{normalRequired:g}=l;for(let e=0;e<i;++e){const t=s[e],r=3*t,i=a*o[r];let l=n[i],_=n[i+1],T=n[i+2];const x=a*o[r+1];let E=n[x],b=n[x+1],A=n[x+2];const S=a*o[r+2];let M=n[S],w=n[S+1],R=n[S+2];null!=c&&([l,_,T]=c.applyToVertex(l,_,T,e),[E,b,A]=c.applyToVertex(E,b,A,e),[M,w,R]=c.applyToVertex(M,w,R,e));const I=E-l,O=b-_,N=A-T,P=M-l,L=w-_,D=R-T,H=f*D-L*v,B=v*P-D*p,U=p*L-P*f,G=I*H+O*B+N*U;if(Math.abs(G)<=F)continue;const z=u-l,V=h-_,W=m-T,j=z*H+V*B+W*U;if(G>0){if(j<0||j>G)continue}else if(j>0||j<G)continue;const k=V*N-O*W,$=W*I-N*z,q=z*O-I*V,Y=p*k+f*$+v*q;if(G>0){if(Y<0||j+Y>G)continue}else if(Y>0||j+Y<G)continue;const X=(P*k+L*$+D*q)/G;X>=0&&d(X,t,g?y(I,O,N,P,L,D,C):null)}}(t,r,0,l,c.indices,c.data,c.stride,i,n,a,s)}}const C=(0,o.vt)();function R(e,t,r,i,o,n,a,s){const c=e[0],l=e[1],d=e[2],u=t[0],h=t[1],m=t[2];for(let e=r;e<i;++e){const t=3*e,r=t+1,i=t+2,p=n*t,f=o[p],v=o[p+1],g=o[p+2],_=n*r,T=n*i,x=o[_]-f,E=o[_+1]-v,b=o[_+2]-g,A=o[T]-f,S=o[T+1]-v,M=o[T+2]-g,w=h*M-S*m,R=m*A-M*u,I=u*S-A*h,O=x*w+E*R+b*I;if(Math.abs(O)<=F)continue;const N=c-f,P=l-v,L=d-g,D=N*w+P*R+L*I;if(O>0){if(D<0||D>O)continue}else if(D>0||D<O)continue;const H=P*b-E*L,B=L*x-b*N,U=N*E-x*P,G=u*H+h*B+m*U;if(O>0){if(G<0||D+G>O)continue}else if(G>0||D+G<O)continue;const z=(A*H+S*B+M*U)/O;z>=0&&s(z,e,a?y(x,E,b,A,S,M,C):null)}}const I=(0,o.vt)(),O=(0,o.vt)(),N=(0,o.vt)();function y(e,t,r,o,n,a,s){return(0,i.i)(L,e,t,r),(0,i.i)(D,o,n,a),(0,i.e)(s,L,D),(0,i.n)(s,s),s}function P(e){return(0,i.a)(L,e[1],e[0]),(0,i.a)(D,e[2],e[0]),(0,i.e)(C,L,D),(0,i.n)(C,C),C}const L=(0,o.vt)(),D=(0,o.vt)(),H=1e3,F=1e-7,B=(0,o.vt)(),U=[(0,o.vt)(),(0,o.vt)(),(0,o.vt)()];var G=r(13464),z=r(16396),V=r(13030),W=r(59907);class j{constructor(e){this.vertexBufferLayout=e}elementCount(e){return e.get(E.r.POSITION).indices.length}write(e,t,r,i,o,n){return(0,W.SA)(r,i,this.vertexBufferLayout,e,t,o,n)}intersect(e,t,r,o,n,a,s){const c=this.vertexBufferLayout.createView(e).getField(E.r.POSITION,V.xs);if(null==c)return;const l=(0,i.a)(k,a,n),d=c.count/3,u=o.options.normalRequired;R(n,l,0,d,c.typedBuffer,c.typedBufferStride,u,((e,t,r)=>{s(e,r,t,!1)}))}}const k=(0,o.vt)();var $=r(43616),q=r(91829),Y=r(72824),X=r(97220),Z=r(98958),J=r(59643),K=r(63907);K.MT.LESS,K.MT.ALWAYS;const Q={mask:255},ee={function:{func:K.MT.ALWAYS,ref:p.dd.OutlineVisualElementMask,mask:p.dd.OutlineVisualElementMask},operation:{fail:K.eA.KEEP,zFail:K.eA.KEEP,zPass:K.eA.ZERO}},te={function:{func:K.MT.ALWAYS,ref:p.dd.OutlineVisualElementMask,mask:p.dd.OutlineVisualElementMask},operation:{fail:K.eA.KEEP,zFail:K.eA.KEEP,zPass:K.eA.REPLACE}};K.MT.EQUAL,p.dd.OutlineVisualElementMask,p.dd.OutlineVisualElementMask,K.eA.KEEP,K.eA.KEEP,K.eA.KEEP,K.MT.NOTEQUAL,p.dd.OutlineVisualElementMask,p.dd.OutlineVisualElementMask,K.eA.KEEP,K.eA.KEEP,K.eA.KEEP;var re=r(74810),ie=r(28491),oe=r(90644),ne=r(49788);class ae extends Y.Zo{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=re.mb,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=p.s2.Back,this.isInstanced=!1,this.hasInstancedColor=!1,this.emissiveStrength=0,this.emissiveSource=n.YJ.Color,this.emissiveBaseColor=o.uY,this.instancedDoublePrecision=!1,this.normalType=l.W.Attribute,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=(0,o.CN)(.2,.2,.2),this.diffuse=(0,o.CN)(.8,.8,.8),this.externalColor=(0,q.fA)(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=(0,o.vt)(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.modelTransformation=null,this.drivenOpacity=!1,this.writeDepth=!0,this.customDepthTest=p.it.Less,this.textureAlphaMode=p.sf.Blend,this.textureAlphaCutoff=ne.Q,this.textureAlphaPremultiplied=!1,this.renderOccluded=v.m$.Occlude,this.isDecoration=!1}}Y.gy;class se extends Z.w{constructor(e,t,i=new X.$(ie.D,(()=>r.e(5141).then(r.bind(r,5141))))){super(e,t,i),this.type="DefaultMaterialTechnique"}_makePipeline(e,t){const{oitPass:r,output:i,transparent:o,cullFace:n,customDepthTest:a,hasOccludees:s,enableOffset:l}=e,d=r===J.Y.NONE,u=r===J.Y.FrontFace;return(0,oe.Ey)({blending:(0,c.RN)(i)&&o?(0,g.Yf)(r):null,culling:le(e)?(0,oe.Xt)(n):null,depthTest:{func:(0,g.K_)(r,ce(a))},depthWrite:(0,g.z5)(e),drawBuffers:i===c.V.Depth?{buffers:[K.Hr.NONE]}:(0,g.m6)(r,i),colorWrite:oe.kn,stencilWrite:s?Q:null,stencilTest:s?t?te:ee:null,polygonOffset:d||u?null:(0,g.aB)(l)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e){return e?this._occludeePipelineState:super.getPipeline()}}function ce(e){return e===p.it.Lequal?K.MT.LEQUAL:K.MT.LESS}function le(e){return e.cullFace!==p.s2.None||!e.hasSlicePlane&&!e.transparent&&!e.doubleSidedMode}var de=r(90237),ue=r(53466),he=r(51976),me=r(35256);class pe extends me.E{constructor(e){super(),this.spherical=e,this.alphaDiscardMode=p.sf.Opaque,this.doubleSidedMode=u.W.None,this.pbrMode=h.A9.Disabled,this.cullFace=p.s2.None,this.normalType=l.W.Attribute,this.customDepthTest=p.it.Less,this.emissionSource=d.ZX.None,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.hasVerticalOffset=!1,this.hasColorTexture=!1,this.hasMetallicRoughnessTexture=!1,this.hasOcclusionTexture=!1,this.hasNormalTexture=!1,this.hasScreenSizePerspective=!1,this.hasVertexTangents=!1,this.hasOccludees=!1,this.instancedDoublePrecision=!1,this.hasModelTransformation=!1,this.offsetBackfaces=!1,this.vvSize=!1,this.vvColor=!1,this.receiveShadows=!1,this.receiveAmbientOcclusion=!1,this.textureAlphaPremultiplied=!1,this.instanced=!1,this.instancedColor=!1,this.writeDepth=!0,this.transparent=!1,this.enableOffset=!0,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.snowCover=!1,this.hasBloom=!1,this.hasColorTextureTransform=!1,this.hasEmissionTextureTransform=!1,this.hasNormalTextureTransform=!1,this.hasOcclusionTextureTransform=!1,this.hasMetallicRoughnessTextureTransform=!1,this.occlusionPass=!1,this.hasVvInstancing=!0,this.useCustomDTRExponentForWater=!1,this.useFillLights=!0,this.draped=!1}get textureCoordinateType(){return this.hasColorTexture||this.hasMetallicRoughnessTexture||this.emissionSource===d.ZX.Texture||this.hasOcclusionTexture||this.hasNormalTexture?ue.I.Default:ue.I.None}get objectAndLayerIdColorInstanced(){return this.instanced}get discardInvisibleFragments(){return this.transparent}}(0,de._)([(0,he.W)({count:p.sf.COUNT})],pe.prototype,"alphaDiscardMode",void 0),(0,de._)([(0,he.W)({count:u.W.COUNT})],pe.prototype,"doubleSidedMode",void 0),(0,de._)([(0,he.W)({count:h.A9.COUNT})],pe.prototype,"pbrMode",void 0),(0,de._)([(0,he.W)({count:p.s2.COUNT})],pe.prototype,"cullFace",void 0),(0,de._)([(0,he.W)({count:l.W.COUNT})],pe.prototype,"normalType",void 0),(0,de._)([(0,he.W)({count:p.it.COUNT})],pe.prototype,"customDepthTest",void 0),(0,de._)([(0,he.W)({count:d.ZX.COUNT})],pe.prototype,"emissionSource",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasVertexColors",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasSymbolColors",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasVerticalOffset",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasColorTexture",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasMetallicRoughnessTexture",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasOcclusionTexture",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasNormalTexture",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasScreenSizePerspective",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasVertexTangents",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasOccludees",void 0),(0,de._)([(0,he.W)()],pe.prototype,"instancedDoublePrecision",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasModelTransformation",void 0),(0,de._)([(0,he.W)()],pe.prototype,"offsetBackfaces",void 0),(0,de._)([(0,he.W)()],pe.prototype,"vvSize",void 0),(0,de._)([(0,he.W)()],pe.prototype,"vvColor",void 0),(0,de._)([(0,he.W)()],pe.prototype,"receiveShadows",void 0),(0,de._)([(0,he.W)()],pe.prototype,"receiveAmbientOcclusion",void 0),(0,de._)([(0,he.W)()],pe.prototype,"textureAlphaPremultiplied",void 0),(0,de._)([(0,he.W)()],pe.prototype,"instanced",void 0),(0,de._)([(0,he.W)()],pe.prototype,"instancedColor",void 0),(0,de._)([(0,he.W)()],pe.prototype,"writeDepth",void 0),(0,de._)([(0,he.W)()],pe.prototype,"transparent",void 0),(0,de._)([(0,he.W)()],pe.prototype,"enableOffset",void 0),(0,de._)([(0,he.W)()],pe.prototype,"terrainDepthTest",void 0),(0,de._)([(0,he.W)()],pe.prototype,"cullAboveTerrain",void 0),(0,de._)([(0,he.W)()],pe.prototype,"snowCover",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasBloom",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasColorTextureTransform",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasEmissionTextureTransform",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasNormalTextureTransform",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasOcclusionTextureTransform",void 0),(0,de._)([(0,he.W)()],pe.prototype,"hasMetallicRoughnessTextureTransform",void 0);var fe=r(57323);class ve extends se{constructor(e,t){super(e,t,new X.$(fe.R,(()=>r.e(9933).then(r.bind(r,39933))))),this.type="RealisticTreeTechnique"}}class ge extends v.im{constructor(e,t){super(e,Te),this.materialType="default",this.supportsEdges=!0,this.produces=new Map([[G.N.OPAQUE_MATERIAL,e=>((0,c.iq)(e)||(0,c.PJ)(e))&&!this.transparent],[G.N.TRANSPARENT_MATERIAL,e=>((0,c.iq)(e)||(0,c.PJ)(e))&&this.transparent&&this.parameters.writeDepth],[G.N.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>((0,c.XY)(e)||(0,c.PJ)(e))&&this.transparent&&!this.parameters.writeDepth]]),this._vertexBufferLayout=function(e){const t=(0,s.BP)().vec3f(E.r.POSITION);return e.normalType===l.W.Compressed?t.vec2i16(E.r.NORMALCOMPRESSED,{glNormalized:!0}):t.vec3f(E.r.NORMAL),e.hasVertexTangents&&t.vec4f(E.r.TANGENT),(e.textureId||e.normalTextureId||e.metallicRoughnessTextureId||e.emissiveTextureId||e.occlusionTextureId)&&t.vec2f16(E.r.UV0),e.hasVertexColors&&t.vec4u8(E.r.COLOR),e.hasSymbolColors&&t.vec4u8(E.r.SYMBOLCOLOR),(0,m.E)()&&t.vec4u8(E.r.OLIDCOLOR),t}(this.parameters),this._configuration=new pe(t.spherical)}isVisibleForOutput(e){return e!==c.V.Shadow&&e!==c.V.ShadowExcludeHighlight&&e!==c.V.ShadowHighlight||this.parameters.castShadows}get visible(){const{layerOpacity:e,colorMixMode:t,opacity:r,externalColor:i}=this.parameters;return e*("replace"===t?1:r)*("ignore"===t?1:i[3])>=ne.Q}get _hasEmissiveBase(){return!!this.parameters.emissiveTextureId||!(0,i.p)(this.parameters.emissiveBaseColor,o.uY)}get hasEmissions(){return this.parameters.emissiveStrength>0&&(this.parameters.emissiveSource===n.YJ.Emissive&&this._hasEmissiveBase||this.parameters.emissiveSource===n.YJ.Color)}getConfiguration(e,t){const{parameters:r,_configuration:i}=this,{treeRendering:o,doubleSided:a,doubleSidedType:s}=r;return super.getConfiguration(e,t,this._configuration),i.hasNormalTexture=!o&&!!r.normalTextureId,i.hasColorTexture=!!r.textureId,i.hasVertexTangents=!o&&r.hasVertexTangents,i.instanced=r.isInstanced,i.instancedDoublePrecision=r.instancedDoublePrecision,i.vvSize=!!r.vvSize,i.hasVerticalOffset=null!=r.verticalOffset,i.hasScreenSizePerspective=null!=r.screenSizePerspective,i.hasSlicePlane=r.hasSlicePlane,i.alphaDiscardMode=r.textureAlphaMode,i.normalType=o?l.W.Attribute:r.normalType,i.transparent=this.transparent,i.writeDepth=r.writeDepth,null!=r.customDepthTest&&(i.customDepthTest=r.customDepthTest),i.hasOccludees=t.hasOccludees,i.cullFace=r.hasSlicePlane?p.s2.None:r.cullFace,i.cullAboveTerrain=t.cullAboveTerrain,i.hasModelTransformation=!o&&null!=r.modelTransformation,i.hasVertexColors=r.hasVertexColors,i.hasSymbolColors=r.hasSymbolColors,i.doubleSidedMode=o?u.W.WindingOrder:a&&"normal"===s?u.W.View:a&&"winding-order"===s?u.W.WindingOrder:u.W.None,i.instancedColor=r.hasInstancedColor,(0,c.RN)(e)?(i.terrainDepthTest=t.terrainDepthTest,i.receiveShadows=r.receiveShadows,i.receiveAmbientOcclusion=r.receiveAmbientOcclusion&&null!=t.ssao):(i.terrainDepthTest=!1,i.receiveShadows=i.receiveAmbientOcclusion=!1),i.vvColor=!!r.vvColor,i.textureAlphaPremultiplied=!!r.textureAlphaPremultiplied,i.pbrMode=r.usePBR?r.isSchematic?h.A9.Schematic:h.A9.Normal:h.A9.Disabled,i.hasMetallicRoughnessTexture=!o&&!!r.metallicRoughnessTextureId,i.emissionSource=o?d.ZX.None:null!=r.emissiveTextureId&&r.emissiveSource===n.YJ.Emissive?d.ZX.Texture:r.usePBR?r.emissiveSource===n.YJ.Emissive?d.ZX.EmissiveColor:d.ZX.SymbolColor:d.ZX.None,i.hasOcclusionTexture=!o&&!!r.occlusionTextureId,i.offsetBackfaces=!(!this.transparent||!r.offsetTransparentBackfaces),i.oitPass=t.oitPass,i.enableOffset=t.camera.relativeElevation<g.xt,i.snowCover=t.snowCover,i.hasBloom=(0,c.LG)(e),i.hasColorTextureTransform=!!r.colorTextureTransformMatrix,i.hasNormalTextureTransform=!!r.normalTextureTransformMatrix,i.hasEmissionTextureTransform=!!r.emissiveTextureTransformMatrix,i.hasOcclusionTextureTransform=!!r.occlusionTextureTransformMatrix,i.hasMetallicRoughnessTextureTransform=!!r.metallicRoughnessTextureTransformMatrix,i}intersect(e,t,r,o,n,s){if(null!=this.parameters.verticalOffset){const e=r.camera;(0,i.i)(we,t[12],t[13],t[14]);let s=null;switch(r.viewingMode){case a.RT.Global:s=(0,i.n)(Se,we);break;case a.RT.Local:s=(0,i.c)(Se,Ae)}let c=0;const l=(0,i.d)(Ce,we,e.eye),d=(0,i.l)(l),u=(0,i.h)(l,l,1/d);let h=null;this.parameters.screenSizePerspective&&(h=(0,i.f)(s,u)),c+=(0,$.kE)(e,d,this.parameters.verticalOffset,h??0,this.parameters.screenSizePerspective),(0,i.h)(s,s,c),(0,i.q)(Me,s,r.transform.inverseRotation),o=(0,i.d)(Ee,o,Me),n=(0,i.d)(be,n,Me)}S(e,r,o,n,(0,z.ou)(r.verticalOffset),s)}createGLMaterial(e){return new _e(e)}createBufferWriter(){return new j(this._vertexBufferLayout)}get transparent(){return xe(this.parameters)}}class _e extends f.m8{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});const t=this._material.parameters;this.updateTexture(t.textureId);const r=e.camera.viewInverseTransposeMatrix;return(0,i.i)(t.origin,r[3],r[7],r[11]),this._material.setParameters(this.textureBindParameters),this.getTechnique(t.treeRendering?ve:se,e)}}class Te extends ae{constructor(){super(...arguments),this.treeRendering=!1,this.hasVertexTangents=!1}}function xe(e){const{drivenOpacity:t,opacity:r,externalColor:[i,o,n,a],layerOpacity:s,texture:c,textureId:l,textureAlphaMode:d,colorMixMode:u}=e;return t||r<1&&"replace"!==u||a<1&&"ignore"!==u||s<1||(null!=c||null!=l)&&d!==p.sf.Opaque&&d!==p.sf.Mask&&"replace"!==u}const Ee=(0,o.vt)(),be=(0,o.vt)(),Ae=(0,o.fA)(0,0,1),Se=(0,o.vt)(),Me=(0,o.vt)(),we=(0,o.vt)(),Ce=(0,o.vt)()},89192:(e,t,r)=>{var i,o,n,a,s,c,l,d;r.d(t,{Am:()=>a,C7:()=>n,JS:()=>d,Mg:()=>c,dd:()=>s,it:()=>o,s2:()=>i,sf:()=>l}),function(e){e[e.None=0]="None",e[e.Front=1]="Front",e[e.Back=2]="Back",e[e.COUNT=3]="COUNT"}(i||(i={})),function(e){e[e.Less=0]="Less",e[e.Lequal=1]="Lequal",e[e.COUNT=2]="COUNT"}(o||(o={})),function(e){e[e.BACKGROUND=0]="BACKGROUND",e[e.UPDATE=1]="UPDATE"}(n||(n={})),function(e){e[e.NOT_LOADED=0]="NOT_LOADED",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED"}(a||(a={})),function(e){e[e.IntegratedMeshMaskExcluded=1]="IntegratedMeshMaskExcluded",e[e.OutlineVisualElementMask=2]="OutlineVisualElementMask"}(s||(s={})),function(e){e[e.Highlight=0]="Highlight",e[e.MaskOccludee=1]="MaskOccludee"}(c||(c={})),function(e){e[e.Blend=0]="Blend",e[e.Opaque=1]="Opaque",e[e.Mask=2]="Mask",e[e.MaskBlend=3]="MaskBlend",e[e.COUNT=4]="COUNT"}(l||(l={})),function(e){e.DDS_ENCODING="image/vnd-ms.dds",e.KTX2_ENCODING="image/ktx2",e.BASIS_ENCODING="image/x.basis"}(d||(d={}))},89390:(e,t,r)=>{r.d(t,{kA:()=>w,a8:()=>S,eU:()=>M});var i=r(40876),o=(r(44208),r(38954)),n=r(51850),a=r(87317),s=r(91829),c=r(59469),l=r(23205),d=r(14314),u=r(31821);function h(e,t){const r=e.fragment,i=void 0!==t.lightingSphericalHarmonicsOrder?t.lightingSphericalHarmonicsOrder:2;0===i?(r.uniforms.add(new l.d("lightingAmbientSH0",(({lighting:e})=>(0,o.i)(m,e.sh.r[0],e.sh.g[0],e.sh.b[0])))),r.code.add(u.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
802
+ vec3 ambientLight = 0.282095 * lightingAmbientSH0;
803
+ return ambientLight * (1.0 - ambientOcclusion);
804
+ }`)):1===i?(r.uniforms.add(new d.I("lightingAmbientSH_R",(({lighting:e})=>(0,a.s)(p,e.sh.r[0],e.sh.r[1],e.sh.r[2],e.sh.r[3]))),new d.I("lightingAmbientSH_G",(({lighting:e})=>(0,a.s)(p,e.sh.g[0],e.sh.g[1],e.sh.g[2],e.sh.g[3]))),new d.I("lightingAmbientSH_B",(({lighting:e})=>(0,a.s)(p,e.sh.b[0],e.sh.b[1],e.sh.b[2],e.sh.b[3])))),r.code.add(u.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
805
+ vec4 sh0 = vec4(
806
+ 0.282095,
807
+ 0.488603 * normal.x,
808
+ 0.488603 * normal.z,
809
+ 0.488603 * normal.y
810
+ );
811
+ vec3 ambientLight = vec3(
812
+ dot(lightingAmbientSH_R, sh0),
813
+ dot(lightingAmbientSH_G, sh0),
814
+ dot(lightingAmbientSH_B, sh0)
815
+ );
816
+ return ambientLight * (1.0 - ambientOcclusion);
817
+ }`)):2===i&&(r.uniforms.add(new l.d("lightingAmbientSH0",(({lighting:e})=>(0,o.i)(m,e.sh.r[0],e.sh.g[0],e.sh.b[0]))),new d.I("lightingAmbientSH_R1",(({lighting:e})=>(0,a.s)(p,e.sh.r[1],e.sh.r[2],e.sh.r[3],e.sh.r[4]))),new d.I("lightingAmbientSH_G1",(({lighting:e})=>(0,a.s)(p,e.sh.g[1],e.sh.g[2],e.sh.g[3],e.sh.g[4]))),new d.I("lightingAmbientSH_B1",(({lighting:e})=>(0,a.s)(p,e.sh.b[1],e.sh.b[2],e.sh.b[3],e.sh.b[4]))),new d.I("lightingAmbientSH_R2",(({lighting:e})=>(0,a.s)(p,e.sh.r[5],e.sh.r[6],e.sh.r[7],e.sh.r[8]))),new d.I("lightingAmbientSH_G2",(({lighting:e})=>(0,a.s)(p,e.sh.g[5],e.sh.g[6],e.sh.g[7],e.sh.g[8]))),new d.I("lightingAmbientSH_B2",(({lighting:e})=>(0,a.s)(p,e.sh.b[5],e.sh.b[6],e.sh.b[7],e.sh.b[8])))),r.code.add(u.H`vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {
818
+ vec3 ambientLight = 0.282095 * lightingAmbientSH0;
819
+ vec4 sh1 = vec4(
820
+ 0.488603 * normal.x,
821
+ 0.488603 * normal.z,
822
+ 0.488603 * normal.y,
823
+ 1.092548 * normal.x * normal.y
824
+ );
825
+ vec4 sh2 = vec4(
826
+ 1.092548 * normal.y * normal.z,
827
+ 0.315392 * (3.0 * normal.z * normal.z - 1.0),
828
+ 1.092548 * normal.x * normal.z,
829
+ 0.546274 * (normal.x * normal.x - normal.y * normal.y)
830
+ );
831
+ ambientLight += vec3(
832
+ dot(lightingAmbientSH_R1, sh1),
833
+ dot(lightingAmbientSH_G1, sh1),
834
+ dot(lightingAmbientSH_B1, sh1)
835
+ );
836
+ ambientLight += vec3(
837
+ dot(lightingAmbientSH_R2, sh2),
838
+ dot(lightingAmbientSH_G2, sh2),
839
+ dot(lightingAmbientSH_B2, sh2)
840
+ );
841
+ return ambientLight * (1.0 - ambientOcclusion);
842
+ }`),t.pbrMode!==c.A9.Normal&&t.pbrMode!==c.A9.Schematic||r.code.add(u.H`const vec3 skyTransmittance = vec3(0.9, 0.9, 1.0);
843
+ vec3 calculateAmbientRadiance(float ambientOcclusion)
844
+ {
845
+ vec3 ambientLight = 1.2 * (0.282095 * lightingAmbientSH0) - 0.2;
846
+ return ambientLight *= (1.0 - ambientOcclusion) * skyTransmittance;
847
+ }`))}const m=(0,n.vt)(),p=(0,s.vt)();var f=r(85417),v=r(98619),g=r(22393),_=r(89786),T=r(32976),x=r(33094);r(34727),(0,n.vt)();const E=.4;function b(e){e.code.add(u.H`float mapChannel(float x, vec2 p) {
848
+ return (x < p.x) ? mix(0.0, p.y, x/p.x) : mix(p.y, 1.0, (x - p.x) / (1.0 - p.x) );
849
+ }`),e.code.add(u.H`vec3 blackLevelSoftCompression(vec3 color, float averageAmbientRadiance) {
850
+ vec2 p = vec2(0.02, 0.0075) * averageAmbientRadiance;
851
+ return vec3(mapChannel(color.x, p), mapChannel(color.y, p), mapChannel(color.z, p));
852
+ }`)}function A(e){e.code.add(u.H`vec3 tonemapACES(vec3 x) {
853
+ return clamp((x * (2.51 * x + 0.03)) / (x * (2.43 * x + 0.59) + 0.14), 0.0, 1.0);
854
+ }`)}function S(e){e.constants.add("ambientBoostFactor","float",E)}function M(e){e.uniforms.add(new x.U("lightingGlobalFactor",(e=>e.lighting.globalFactor)))}function w(e,t){const r=e.fragment,{pbrMode:o,spherical:n,hasColorTexture:a}=t;r.include(f.n,t),o!==c.A9.Disabled&&r.include(g.c,t),e.include(h,t),r.include(_.p),r.include(A,t);const s=!(o===c.A9.Schematic&&!a);switch(s&&r.include(b),r.code.add(u.H`
855
+ const float GAMMA_SRGB = ${u.H.float(i.Tf)};
856
+ const float INV_GAMMA_SRGB = 0.4761904;
857
+ ${(0,u.If)(o!==c.A9.Disabled,"const float GROUND_REFLECTANCE = 0.2;")}
858
+ `),S(r),M(r),(0,v.Gc)(r),r.code.add(u.H`
859
+ float additionalDirectedAmbientLight(vec3 vPosWorld) {
860
+ float vndl = dot(${n?u.H`normalize(vPosWorld)`:u.H`vec3(0.0, 0.0, 1.0)`}, mainLightDirection);
861
+ return smoothstep(0.0, 1.0, clamp(vndl * 2.5, 0.0, 1.0));
862
+ }
863
+ `),(0,v.O4)(r),r.code.add(u.H`vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {
864
+ float additionalAmbientScale = additionalDirectedAmbientLight(vPosWorld);
865
+ return (1.0 - ambientOcclusion) * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor * mainLightIntensity;
866
+ }`),o){case c.A9.Disabled:case c.A9.WaterOnIntegratedMesh:case c.A9.Water:e.include(v.Vt),r.code.add(u.H`vec3 evaluateSceneLighting(vec3 normalWorld, vec3 albedo, float shadow, float ssao, vec3 additionalLight) {
867
+ vec3 mainLighting = applyShading(normalWorld, shadow);
868
+ vec3 ambientLighting = calculateAmbientIrradiance(normalWorld, ssao);
869
+ vec3 albedoLinear = pow(albedo, vec3(GAMMA_SRGB));
870
+ vec3 totalLight = mainLighting + ambientLighting + additionalLight;
871
+ totalLight = min(totalLight, vec3(PI));
872
+ vec3 outColor = vec3((albedoLinear / PI) * totalLight);
873
+ return pow(outColor, vec3(INV_GAMMA_SRGB));
874
+ }`);break;case c.A9.Normal:case c.A9.Schematic:r.code.add(u.H`const float fillLightIntensity = 0.25;
875
+ const float horizonLightDiffusion = 0.4;
876
+ const float additionalAmbientIrradianceFactor = 0.02;
877
+ vec3 evaluateSceneLightingPBR(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight,
878
+ vec3 viewDir, vec3 groundNormal, vec3 mrr, vec4 _emission,
879
+ float additionalAmbientIrradiance) {
880
+ vec3 viewDirection = -viewDir;
881
+ vec3 h = normalize(viewDirection + mainLightDirection);
882
+ PBRShadingInfo inputs;
883
+ inputs.NdotV = clamp(abs(dot(normal, viewDirection)), 0.001, 1.0);
884
+ inputs.NdotNG = clamp(dot(normal, groundNormal), -1.0, 1.0);
885
+ vec3 reflectedView = normalize(reflect(viewDirection, normal));
886
+ inputs.RdotNG = clamp(dot(reflectedView, groundNormal), -1.0, 1.0);
887
+ inputs.albedoLinear = pow(albedo, vec3(GAMMA_SRGB));
888
+ inputs.ssao = ssao;
889
+ inputs.metalness = mrr[0];
890
+ inputs.roughness = clamp(mrr[1] * mrr[1], 0.001, 0.99);`),r.code.add(u.H`inputs.f0 = (0.16 * mrr[2] * mrr[2]) * (1.0 - inputs.metalness) + inputs.albedoLinear * inputs.metalness;
891
+ inputs.f90 = vec3(clamp(dot(inputs.f0, vec3(50.0 * 0.33)), 0.0, 1.0));
892
+ inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);`),t.useFillLights?r.uniforms.add(new T.o("hasFillLights",(e=>e.enableFillLights))):r.constants.add("hasFillLights","bool",!1),r.code.add(u.H`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]);
893
+ ambientDir = ambientDir != vec3(0.0) ? normalize(ambientDir) : normalize(vec3(5.0, -1.0, 0.0));
894
+ inputs.NdotAmbDir = hasFillLights ? abs(dot(normal, ambientDir)) : 1.0;
895
+ float NdotL = clamp(dot(normal, mainLightDirection), 0.001, 1.0);
896
+ vec3 mainLightIrradianceComponent = NdotL * (1.0 - shadow) * mainLightIntensity;
897
+ vec3 fillLightsIrradianceComponent = inputs.NdotAmbDir * mainLightIntensity * fillLightIntensity;
898
+ vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(normal, ssao) + additionalLight;
899
+ inputs.skyIrradianceToSurface = ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;
900
+ inputs.groundIrradianceToSurface = GROUND_REFLECTANCE * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;`),r.uniforms.add(new x.U("lightingSpecularStrength",(e=>e.lighting.mainLight.specularStrength)),new x.U("lightingEnvironmentStrength",(e=>e.lighting.mainLight.environmentStrength))).code.add(u.H`vec3 horizonRingDir = inputs.RdotNG * groundNormal - reflectedView;
901
+ vec3 horizonRingH = normalize(viewDirection + horizonRingDir);
902
+ inputs.NdotH_Horizon = dot(normal, horizonRingH);
903
+ float NdotH = clamp(dot(normal, h), 0.0, 1.0);
904
+ vec3 mainLightRadianceComponent = lightingSpecularStrength * normalDistribution(NdotH, inputs.roughness) * mainLightIntensity * (1.0 - shadow);
905
+ vec3 horizonLightRadianceComponent = lightingEnvironmentStrength * normalDistribution(inputs.NdotH_Horizon, min(inputs.roughness + horizonLightDiffusion, 1.0)) * mainLightIntensity * fillLightIntensity;
906
+ vec3 ambientLightRadianceComponent = lightingEnvironmentStrength * calculateAmbientRadiance(ssao) + additionalLight;
907
+ 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));
908
+ inputs.skyRadianceToSurface = (ambientLightRadianceComponent + horizonLightRadianceComponent) * normalDirectionModifier + mainLightRadianceComponent;
909
+ inputs.groundRadianceToSurface = 0.5 * GROUND_REFLECTANCE * (ambientLightRadianceComponent + horizonLightRadianceComponent) * normalDirectionModifier + mainLightRadianceComponent;
910
+ inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + GROUND_REFLECTANCE);`),r.code.add(u.H`
911
+ vec3 reflectedColorComponent = evaluateEnvironmentIllumination(inputs);
912
+ vec3 additionalMaterialReflectanceComponent = inputs.albedoLinear * additionalAmbientIrradiance;
913
+ vec3 emissionComponent = _emission.rgb == vec3(0.0) ? _emission.rgb : tonemapACES(pow(_emission.rgb, vec3(GAMMA_SRGB)));
914
+ vec3 outColorLinear = reflectedColorComponent + additionalMaterialReflectanceComponent + emissionComponent;
915
+ ${s?u.H`vec3 outColor = pow(blackLevelSoftCompression(outColorLinear, inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`:u.H`vec3 outColor = pow(max(vec3(0.0), outColorLinear - 0.005 * inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`}
916
+ return outColor;
917
+ }
918
+ `);break;case c.A9.Simplified:case c.A9.TerrainWithWater:(0,v.Gc)(r),(0,v.O4)(r),r.code.add(u.H`const float roughnessTerrain = 0.5;
919
+ const float specularityTerrain = 0.5;
920
+ const vec3 fresnelReflectionTerrain = vec3(0.04);
921
+ vec3 evaluatePBRSimplifiedLighting(vec3 n, vec3 c, float shadow, float ssao, vec3 al, vec3 vd, vec3 nup) {
922
+ vec3 viewDirection = -vd;
923
+ vec3 h = normalize(viewDirection + mainLightDirection);
924
+ float NdotL = clamp(dot(n, mainLightDirection), 0.001, 1.0);
925
+ float NdotV = clamp(abs(dot(n, viewDirection)), 0.001, 1.0);
926
+ float NdotH = clamp(dot(n, h), 0.0, 1.0);
927
+ float NdotNG = clamp(dot(n, nup), -1.0, 1.0);
928
+ vec3 albedoLinear = pow(c, vec3(GAMMA_SRGB));
929
+ float lightness = 0.3 * albedoLinear[0] + 0.5 * albedoLinear[1] + 0.2 * albedoLinear[2];
930
+ vec3 f0 = (0.85 * lightness + 0.15) * fresnelReflectionTerrain;
931
+ vec3 f90 = vec3(clamp(dot(f0, vec3(50.0 * 0.33)), 0.0, 1.0));
932
+ vec3 mainLightIrradianceComponent = (1. - shadow) * NdotL * mainLightIntensity;
933
+ vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(n, ssao) + al;
934
+ vec3 ambientSky = ambientLightIrradianceComponent + mainLightIrradianceComponent;
935
+ vec3 indirectDiffuse = ((1.0 - NdotNG) * mainLightIrradianceComponent + (1.0 + NdotNG ) * ambientSky) * 0.5;
936
+ vec3 outDiffColor = albedoLinear * (1.0 - f0) * indirectDiffuse / PI;
937
+ vec3 mainLightRadianceComponent = normalDistribution(NdotH, roughnessTerrain) * mainLightIntensity;
938
+ vec2 dfg = prefilteredDFGAnalytical(roughnessTerrain, NdotV);
939
+ vec3 specularColor = f0 * dfg.x + f90 * dfg.y;
940
+ vec3 specularComponent = specularityTerrain * specularColor * mainLightRadianceComponent;
941
+ vec3 outColorLinear = outDiffColor + specularComponent;
942
+ vec3 outColor = pow(outColorLinear, vec3(INV_GAMMA_SRGB));
943
+ return outColor;
944
+ }`);default:case c.A9.COUNT:}}(0,n.vt)()},89786:(e,t,r)=>{function i(e){const t=.3183098861837907;e.constants.add("PI","float",3.141592653589793),e.constants.add("LIGHT_NORMALIZATION","float",t),e.constants.add("INV_PI","float",t),e.constants.add("HALF_PI","float",1.570796326794897),e.constants.add("TWO_PI","float",6.28318530717958)}r.d(t,{p:()=>i})},90644:(e,t,r)=>{r.d(t,{Ey:()=>A,RC:()=>s,T8:()=>c,Uy:()=>h,Xt:()=>u,kn:()=>m,p3:()=>a});var i=r(89192),o=r(63907);function n(e,t,r=o.Tb.ADD,i=[0,0,0,0]){return{srcRgb:e,srcAlpha:e,dstRgb:t,dstAlpha:t,opRgb:r,opAlpha:r,color:{r:i[0],g:i[1],b:i[2],a:i[3]}}}function a(e,t,r,i,n=o.Tb.ADD,a=o.Tb.ADD,s=[0,0,0,0]){return{srcRgb:e,srcAlpha:t,dstRgb:r,dstAlpha:i,opRgb:n,opAlpha:a,color:{r:s[0],g:s[1],b:s[2],a:s[3]}}}n(o.dn.ZERO,o.dn.ONE_MINUS_SRC_ALPHA),n(o.dn.ONE,o.dn.ZERO),n(o.dn.ONE,o.dn.ONE);const s=n(o.dn.ONE,o.dn.ONE_MINUS_SRC_ALPHA),c=a(o.dn.SRC_ALPHA,o.dn.ONE,o.dn.ONE_MINUS_SRC_ALPHA,o.dn.ONE_MINUS_SRC_ALPHA),l={face:o.Y7.BACK,mode:o.Ac.CCW},d={face:o.Y7.FRONT,mode:o.Ac.CCW},u=e=>e===i.s2.Back?l:e===i.s2.Front?d:null,h={zNear:0,zFar:1},m={r:!0,g:!0,b:!0,a:!0};function p(e){return w.intern(e)}function f(e){return R.intern(e)}function v(e){return O.intern(e)}function g(e){return y.intern(e)}function _(e){return L.intern(e)}function T(e){return H.intern(e)}function x(e){return B.intern(e)}function E(e){return G.intern(e)}function b(e){return V.intern(e)}function A(e){return j.intern(e)}class S{constructor(e,t){this._makeKey=e,this._makeRef=t,this._interns=new Map}intern(e){if(!e)return null;const t=this._makeKey(e),r=this._interns;return r.has(t)||r.set(t,this._makeRef(e)),r.get(t)??null}}function M(e){return"["+e.join(",")+"]"}const w=new S(C,(e=>({__tag:"Blending",...e})));function C(e){return e?M([e.srcRgb,e.srcAlpha,e.dstRgb,e.dstAlpha,e.opRgb,e.opAlpha,e.color.r,e.color.g,e.color.b,e.color.a]):null}const R=new S(I,(e=>({__tag:"Culling",...e})));function I(e){return e?M([e.face,e.mode]):null}const O=new S(N,(e=>({__tag:"PolygonOffset",...e})));function N(e){return e?M([e.factor,e.units]):null}const y=new S(P,(e=>({__tag:"DepthTest",...e})));function P(e){return e?M([e.func]):null}const L=new S(D,(e=>({__tag:"StencilTest",...e})));function D(e){return e?M([e.function.func,e.function.ref,e.function.mask,e.operation.fail,e.operation.zFail,e.operation.zPass]):null}const H=new S(F,(e=>({__tag:"DepthWrite",...e})));function F(e){return e?M([e.zNear,e.zFar]):null}const B=new S(U,(e=>({__tag:"ColorWrite",...e})));function U(e){return e?M([e.r,e.g,e.b,e.a]):null}const G=new S(z,(e=>({__tag:"StencilWrite",...e})));function z(e){return e?M([e.mask]):null}const V=new S(W,(e=>({__tag:"DrawBuffers",...e})));function W(e){return e?M(e.buffers):null}const j=new S((function(e){return e?M([C(e.blending),I(e.culling),N(e.polygonOffset),P(e.depthTest),D(e.stencilTest),F(e.depthWrite),U(e.colorWrite),z(e.stencilWrite),W(e.drawBuffers)]):null}),(e=>({blending:p(e.blending),culling:f(e.culling),polygonOffset:v(e.polygonOffset),depthTest:g(e.depthTest),stencilTest:_(e.stencilTest),depthWrite:T(e.depthWrite),colorWrite:x(e.colorWrite),stencilWrite:E(e.stencilWrite),drawBuffers:b(e.drawBuffers)})))},92700:(e,t,r)=>{r.d(t,{c:()=>n});var i=r(31821),o=r(46540);function n(e,t){t.hasVertexColors?(e.attributes.add(o.r.COLOR,"vec4"),e.varyings.add("vColor","vec4"),e.vertex.code.add(i.H`void forwardVertexColor() { vColor = color; }`),e.vertex.code.add(i.H`void forwardNormalizedVertexColor() { vColor = color * 0.003921568627451; }`)):e.vertex.code.add(i.H`void forwardVertexColor() {}
945
+ void forwardNormalizedVertexColor() {}`)}},92993:(e,t,r)=>{var i;r.d(t,{n:()=>i}),function(e){e[e.ETC1_RGB=0]="ETC1_RGB",e[e.ETC2_RGBA=1]="ETC2_RGBA",e[e.BC1_RGB=2]="BC1_RGB",e[e.BC3_RGBA=3]="BC3_RGBA",e[e.BC4_R=4]="BC4_R",e[e.BC5_RG=5]="BC5_RG",e[e.BC7_M6_RGB=6]="BC7_M6_RGB",e[e.BC7_M5_RGBA=7]="BC7_M5_RGBA",e[e.PVRTC1_4_RGB=8]="PVRTC1_4_RGB",e[e.PVRTC1_4_RGBA=9]="PVRTC1_4_RGBA",e[e.ASTC_4x4_RGBA=10]="ASTC_4x4_RGBA",e[e.ATC_RGB=11]="ATC_RGB",e[e.ATC_RGBA=12]="ATC_RGBA",e[e.FXT1_RGB=17]="FXT1_RGB",e[e.PVRTC2_4_RGB=18]="PVRTC2_4_RGB",e[e.PVRTC2_4_RGBA=19]="PVRTC2_4_RGBA",e[e.ETC2_EAC_R11=20]="ETC2_EAC_R11",e[e.ETC2_EAC_RG11=21]="ETC2_EAC_RG11",e[e.RGBA32=13]="RGBA32",e[e.RGB565=14]="RGB565",e[e.BGR565=15]="BGR565",e[e.RGBA4444=16]="RGBA4444"}(i||(i={}))},94656:(e,t,r)=>{r.d(t,{Y2:()=>d,en:()=>l});var i=r(49186),o=r(44208),n=r(53966),a=r(63907);const s=()=>n.A.getLogger("esri.views.webgl.checkWebGLError"),c=!!(0,o.A)("enable-feature:webgl-debug");function l(){return c}function d(e){if(l()){const t=e.getError();if(t){const e=function(e){switch(e){case a.bh.INVALID_ENUM:return"Invalid Enum. An unacceptable value has been specified for an enumerated argument.";case a.bh.INVALID_VALUE:return"Invalid Value. A numeric argument is out of range.";case a.bh.INVALID_OPERATION:return"Invalid Operation. The specified command is not allowed for the current state.";case a.bh.INVALID_FRAMEBUFFER_OPERATION:return"Invalid Framebuffer operation. The currently bound framebuffer is not framebuffer complete when trying to render to or to read from it.";case a.bh.OUT_OF_MEMORY:return"Out of memory. Not enough memory is left to execute the command.";case a.bh.CONTEXT_LOST_WEBGL:return"WebGL context has been lost";default:return"Unknown error"}}(t),r=(new Error).stack;s().error(new i.A("webgl-error","WebGL error occurred",{message:e,stack:r}))}}}},95774:(e,t,r)=>{r.d(t,{S:()=>m,b:()=>h});var i=r(82048),o=r(52540),n=r(68259),a=r(20304),s=r(31821),c=r(15976),l=r(63761),d=r(14113);const u=4;function h(){const e=new d.N5,t=e.fragment;e.include(i.c);const r=(u+1)/2,h=1/(2*r*r);return t.include(o.E),t.uniforms.add(new l.N("depthMap",(e=>e.depthTexture)),new c.o("tex",(e=>e.colorTexture)),new n.t("blurSize",(e=>e.blurSize)),new a.m("projScale",((e,t)=>{const r=t.camera.distance;return r>5e4?Math.max(0,e.projScale-(r-5e4)):e.projScale}))),t.code.add(s.H`
1009
946
  void blurFunction(vec2 uv, float r, float center_d, float sharpness, inout float wTotal, inout float bTotal) {
1010
947
  float c = texture(tex, uv).r;
1011
948
  float d = linearDepthFromTexture(depthMap, uv);
@@ -1028,15 +965,15 @@ void forwardNormalizedVertexColor() {}`)}},92993:(e,t,r)=>{var i;r.d(t,{n:()=>i}
1028
965
  vec2 uvOffset = uv + rf * blurSize;
1029
966
  blurFunction(uvOffset, rf, center_d, sharpness, w_total, b);
1030
967
  }
1031
- fragBlur = b / w_total;`),e}const m=Object.freeze(Object.defineProperty({__proto__:null,build:h},Symbol.toStringTag,{value:"Module"}))},96598:(e,t,r)=>{r.d(t,{Z:()=>a});var i=r(52540),o=r(31821),n=r(12791);function a(e,{occlusionPass:t,terrainDepthTest:r,cullAboveTerrain:a}){const{vertex:s,fragment:l,varyings:c}=e;if(!r)return s.code.add("void forwardViewPosDepth(vec3 pos) {}"),void l.code.add(`${t?"bool":"void"} discardByTerrainDepth() { ${(0,o.If)(t,"return false;")}}`);c.add("viewPosDepth","float",{invariant:!0}),s.code.add("void forwardViewPosDepth(vec3 pos) {\n viewPosDepth = pos.z;\n }"),l.include(i.E),l.uniforms.add(new n.x("terrainDepthTexture",(e=>e.terrainDepth?.attachment))).code.add(o.H`
968
+ fragBlur = b / w_total;`),e}const m=Object.freeze(Object.defineProperty({__proto__:null,build:h},Symbol.toStringTag,{value:"Module"}))},96598:(e,t,r)=>{r.d(t,{Z:()=>a});var i=r(52540),o=r(31821),n=r(12791);function a(e,{occlusionPass:t,terrainDepthTest:r,cullAboveTerrain:a}){const{vertex:s,fragment:c,varyings:l}=e;if(!r)return s.code.add("void forwardViewPosDepth(vec3 pos) {}"),void c.code.add(`${t?"bool":"void"} discardByTerrainDepth() { ${(0,o.If)(t,"return false;")}}`);l.add("viewPosDepth","float",{invariant:!0}),s.code.add("void forwardViewPosDepth(vec3 pos) {\n viewPosDepth = pos.z;\n }"),c.include(i.E),c.uniforms.add(new n.x("terrainDepthTexture",(e=>e.terrainDepth?.attachment))).code.add(o.H`
1032
969
  ${t?"bool":"void"} discardByTerrainDepth() {
1033
970
  float depth = texelFetch(terrainDepthTexture, ivec2(gl_FragCoord.xy), 0).r;
1034
971
  float linearDepth = linearizeDepth(depth);
1035
972
  ${t?"return viewPosDepth < linearDepth && depth < 1.0;":`if(viewPosDepth ${a?">":"<="} linearDepth) discard;`}
1036
- }`)}},97220:(e,t,r)=>{r.d(t,{$:()=>i});class i{constructor(e,t){this._module=e,this._load=t}get(){return this._module}async reload(){return this._module=await this._load(),this._module}}},98619:(e,t,r)=>{r.d(t,{Gc:()=>n,O4:()=>a,Vt:()=>s});var i=r(23205),o=r(31821);function n(e){e.uniforms.add(new i.d("mainLightDirection",(e=>e.lighting.mainLight.direction)))}function a(e){e.uniforms.add(new i.d("mainLightIntensity",(e=>e.lighting.mainLight.intensity)))}function s(e){n(e.fragment),a(e.fragment),e.fragment.code.add(o.H`vec3 applyShading(vec3 shadingNormalWorld, float shadow) {
1037
- float dotVal = clamp(dot(shadingNormalWorld, mainLightDirection), 0.0, 1.0);
973
+ }`)}},97220:(e,t,r)=>{r.d(t,{$:()=>i});class i{constructor(e,t){this._module=e,this._load=t}get(){return this._module}async reload(){return this._module=await this._load(),this._module}}},98619:(e,t,r)=>{r.d(t,{Gc:()=>n,O4:()=>a,Vt:()=>s});var i=r(23205),o=r(31821);function n(e){e.uniforms.add(new i.d("mainLightDirection",(e=>e.lighting.mainLight.direction)))}function a(e){e.uniforms.add(new i.d("mainLightIntensity",(e=>e.lighting.mainLight.intensity)))}function s(e){n(e.fragment),a(e.fragment),e.fragment.code.add(o.H`vec3 applyShading(vec3 shadingNormal, float shadow) {
974
+ float dotVal = clamp(dot(shadingNormal, mainLightDirection), 0.0, 1.0);
1038
975
  return mainLightIntensity * ((1.0 - shadow) * dotVal);
1039
- }`)}},98958:(e,t,r)=>{r.d(t,{w:()=>d});var i=r(53966),o=r(97768),n=r(39341),a=(r(44208),r(94656));class s{constructor(e,t,r){this._context=e,this._locations=r,this._textures=new Map,this._glProgram=e.programCache.acquire(t.generate("vertex",!0),t.generate("fragment",!0),r),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=t.generateBind(this),this.bindPass=t.generateBindPass(this),this.bindDraw=t.generateBindDraw(this)}dispose(){this._glProgram.dispose()}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(e,t){this._glProgram.setUniform1i(e,t?1:0)}setUniform1i(e,t){this._glProgram.setUniform1i(e,t)}setUniform1f(e,t){this._glProgram.setUniform1f(e,t)}setUniform2fv(e,t){this._glProgram.setUniform2fv(e,t)}setUniform3fv(e,t){this._glProgram.setUniform3fv(e,t)}setUniform4fv(e,t){this._glProgram.setUniform4fv(e,t)}setUniformMatrix3fv(e,t){this._glProgram.setUniformMatrix3fv(e,t)}setUniformMatrix4fv(e,t){this._glProgram.setUniformMatrix4fv(e,t)}setUniform1fv(e,t){this._glProgram.setUniform1fv(e,t)}setUniform1iv(e,t){this._glProgram.setUniform1iv(e,t)}setUniform2iv(e,t){this._glProgram.setUniform2iv(e,t)}setUniform3iv(e,t){this._glProgram.setUniform3iv(e,t)}setUniform4iv(e,t){this._glProgram.setUniform4iv(e,t)}assertCompatibleVertexAttributeLocations(e){e.locations!==this._locations&&console.error("VertexAttributeLocations are incompatible")}stop(){this._textures.clear()}bindTexture(e,t){t?.glName||((0,a.en)()&&console.error(`Texture sampler ${e} has no given Texture in ${(new Error).stack} `),t=this._context.emptyTexture);const r=this._ensureTextureUnit(e,t);this._context.useProgram(this),this.setUniform1i(e,r.unit),this._context.bindTexture(t,r.unit)}_ensureTextureUnit(e,t){let r=this._textures.get(e);return null==r?(r={texture:t,unit:this._textures.size},this._textures.set(e,r)):r.texture=t,r}}var l=r(63907),c=r(90644);class d{constructor(e,t,r,a=n.D){this.locations=a,this.primitiveType=l.WR.TRIANGLES,this.key=t.key,this._program=new s(e.rctx,r.get().build(t),a),this._pipeline=this.initializePipeline(t),this.reload=async n=>{n&&await r.reload(),this.key.equals(t.key)||i.A.getLogger("esri.views.3d.webgl.ShaderTechnique").warn("Configuration was changed after construction, cannot reload shader.",r),(0,o.WD)(this._program),this._program=new s(e.rctx,r.get().build(t),a),this._pipeline=this.initializePipeline(t)}}destroy(){this._program=(0,o.WD)(this._program),this._pipeline=null}get program(){return this._program}get compiled(){return this.program.compiled}ensureAttributeLocations(e){this.program.assertCompatibleVertexAttributeLocations(e)}getPipeline(e,t){return this._pipeline}initializePipeline(e){return(0,c.Ey)({blending:c.RC,colorWrite:c.kn})}}},99208:(e,t,r)=>{r.d(t,{r:()=>a});var i=r(53466),o=r(31821);function n(e){e.fragment.code.add(o.H`vec4 textureAtlasLookup(sampler2D tex, vec2 textureCoordinates, vec4 atlasRegion) {
976
+ }`)}},98958:(e,t,r)=>{r.d(t,{w:()=>d});var i=r(53966),o=r(97768),n=r(39341),a=(r(44208),r(94656));class s{constructor(e,t,r){this._context=e,this._locations=r,this._textures=new Map,this._glProgram=e.programCache.acquire(t.generate("vertex",!0),t.generate("fragment",!0),r),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=t.generateBind(this),this.bindPass=t.generateBindPass(this),this.bindDraw=t.generateBindDraw(this)}dispose(){this._glProgram.dispose()}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(e,t){this._glProgram.setUniform1i(e,t?1:0)}setUniform1i(e,t){this._glProgram.setUniform1i(e,t)}setUniform1f(e,t){this._glProgram.setUniform1f(e,t)}setUniform2fv(e,t){this._glProgram.setUniform2fv(e,t)}setUniform3fv(e,t){this._glProgram.setUniform3fv(e,t)}setUniform4fv(e,t){this._glProgram.setUniform4fv(e,t)}setUniformMatrix3fv(e,t){this._glProgram.setUniformMatrix3fv(e,t)}setUniformMatrix4fv(e,t){this._glProgram.setUniformMatrix4fv(e,t)}setUniform1fv(e,t){this._glProgram.setUniform1fv(e,t)}setUniform1iv(e,t){this._glProgram.setUniform1iv(e,t)}setUniform2iv(e,t){this._glProgram.setUniform2iv(e,t)}setUniform3iv(e,t){this._glProgram.setUniform3iv(e,t)}setUniform4iv(e,t){this._glProgram.setUniform4iv(e,t)}assertCompatibleVertexAttributeLocations(e){e.locations!==this._locations&&console.error("VertexAttributeLocations are incompatible")}stop(){this._textures.clear()}bindTexture(e,t){t?.glName||((0,a.en)()&&console.error(`Texture sampler ${e} has no given Texture in ${(new Error).stack} `),t=this._context.emptyTexture);const r=this._ensureTextureUnit(e,t);this._context.useProgram(this),this.setUniform1i(e,r.unit),this._context.bindTexture(t,r.unit)}_ensureTextureUnit(e,t){let r=this._textures.get(e);return null==r?(r={texture:t,unit:this._textures.size},this._textures.set(e,r)):r.texture=t,r}}var c=r(63907),l=r(90644);class d{constructor(e,t,r,a=n.D){this.locations=a,this.primitiveType=c.WR.TRIANGLES,this.key=t.key,this._program=new s(e.rctx,r.get().build(t),a),this._pipeline=this.initializePipeline(t),this.reload=async n=>{n&&await r.reload(),this.key.equals(t.key)||i.A.getLogger("esri.views.3d.webgl.ShaderTechnique").warn("Configuration was changed after construction, cannot reload shader.",r),(0,o.WD)(this._program),this._program=new s(e.rctx,r.get().build(t),a),this._pipeline=this.initializePipeline(t)}}destroy(){this._program=(0,o.WD)(this._program),this._pipeline=null}get program(){return this._program}get compiled(){return this.program.compiled}ensureAttributeLocations(e){this.program.assertCompatibleVertexAttributeLocations(e)}getPipeline(e,t){return this._pipeline}initializePipeline(e){return(0,l.Ey)({blending:l.RC,colorWrite:l.kn})}}},99208:(e,t,r)=>{r.d(t,{r:()=>a});var i=r(53466),o=r(31821);function n(e){e.fragment.code.add(o.H`vec4 textureAtlasLookup(sampler2D tex, vec2 textureCoordinates, vec4 atlasRegion) {
1040
977
  vec2 atlasScale = atlasRegion.zw - atlasRegion.xy;
1041
978
  vec2 uvAtlas = fract(textureCoordinates) * atlasScale + atlasRegion.xy;
1042
979
  float maxdUV = 0.125;