@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
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import r from"../../../../../core/Error.js";import{makeHandle as t}from"../../../../../core/handleUtils.js";import{destroyMaybe as n}from"../../../../../core/maybe.js";import o from"../../../../../core/Promise.js";import{on as i,watch as a}from"../../../../../core/reactiveUtils.js";import{property as s}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as u}from"../../../../../core/accessorSupport/decorators/subclass.js";import{FeatureLayerViewPerformanceInfo as l}from"../../FeatureLayerViewPerformanceInfo.js";import{Feature3DPipelineWorkerHandle as d}from"./Feature3DPipelineWorkerHandle.js";import{FeaturePipelineRenderManager as p}from"./rendering/FeaturePipelineRenderManager.js";import{emptyHighlightHandle as y}from"../../support/highlightUtils.js";import{LayerViewPerformanceInfo as m}from"../../support/LayerViewPerformanceInfo.js";import{UpdatePolicy as c}from"../../../webgl-engine/lib/UpdatePolicy.js";let h=class extends o{constructor(e){super(e),this._renderer=null,this.graphicsQuery={queryForSymbologySnapping:(e,t)=>{throw new r("featurelayer:unsupported-symbology-snapping","Symbology snapping not supported")},executeQuery:async(e,r)=>await this._workerHandle.executeQuery(e,r),executeQueryForIds:async(e,r)=>await this._workerHandle.executeQueryForIds(e,r),executeQueryForCount:async(e,r)=>await this._workerHandle.executeQueryForCount(e,r),executeQueryForExtent:async(e,r)=>await this._workerHandle.executeQueryForExtent(e,r),executeQueryForLatestObservations:async(e,r)=>await this._workerHandle.executeQueryForLatestObservations(e,r)},this.maximumNumberOfFeatures=1e3}initialize(){if("point"!==this.layerView.layer.geometryType)throw new r("featurelayer:unsupported-geometry-type",`${this.layerView.layer.geometryType} is not supported`);this.addResolvingPromise(this.setup())}destroy(){this.removeAllHandles(),this._workerHandle.destroy(),n(this._renderer)}async setup(){const{layer:e,view:t,uid:n}=this.layerView,{spatialReference:o,renderSpatialReference:s,resourceController:u,renderCoordsHelper:l,elevationProvider:y}=t,m=t.state.viewingMode;if(this._renderer=new p({view:t,layerViewUid:n}),"feature"!==e.type)throw new r("featurelayer:unsupported-layertype","Only FeatureLayer is supported");const c=new d({schedule:e=>u.immediate.schedule(e),layer:e,viewSpatialReference:o,renderSpatialReference:s,viewingMode:m,renderer:this._renderer,elevationProvider:y,renderCoordsHelper:l});this._workerHandle=await c.when(),this.addHandles([this.layerView.view.featureTiles.addClient(),i((()=>this.layerView.view.featureTiles.tiles),"change",(e=>{this._workerHandle.onTileTreeChange(e)}),{onListenerAdd:e=>this._workerHandle.onTileTreeChange({added:e.toArray(),removed:[]}),onListenerRemove:e=>this._workerHandle.onTileTreeChange({added:[],removed:e.toArray()})}),t.elevationProvider.on("elevation-change",(e=>this._workerHandle.onElevationChange(e))),a((()=>this.layerView.fullOpacity),(e=>this._workerHandle.onLayerOpacityChange(e)),{sync:!1}),a((()=>e.renderer),(e=>this._workerHandle.onRendererChange(e)),{sync:!1})])}get legendEnabled(){return!1}get hasAllFeatures(){return!1}get hasAllFeaturesInView(){return!1}get hasFullGeometries(){return!1}get symbologySnappingSupported(){return!1}get scaleVisibilitySuspended(){return!1}get suspendInfo(){return{}}get updating(){return this._workerHandle.updating}get dataUpdating(){return!1}get updatePolicy(){return c.ASYNC}get maximumNumberOfFeaturesExceeded(){return!1}get updatingProgressValue(){return 1}get usedMemory(){return this._renderer?.usedMemory??0}get unloadedMemory(){return 0}get ignoresMemoryFactor(){return!0}get totalFeatures(){return this._renderer?.totalFeatures??0}get performanceInfo(){const e=this.totalFeatures;return new l(new m(this.usedMemory,e,e,this.maximumNumberOfFeatures,0,null),e,e,this.maximumNumberOfFeaturesExceeded,"tiles","n/a")}get suspendResumeExtentMode(){return"computed"}forEachGraphic(e){}findGraphic(e){return null}highlight(e){return y}maskOccludee(e){return t()}async whenGraphicBounds(e,r){return null}computeAttachmentOrigin(e,r){return null}elevationAlignPointsInFeatures(e,t){throw new r("featurelayer:unsupported-elevation-alignment","Elevation alignment not supported")}async doRefresh(e){}setVisibility(e,r){}getMissingAttributesForFeature(e){return null}getHydratedGeometry(e){return null}};e([s()],h.prototype,"layerView",void 0),e([s()],h.prototype,"updating",null),e([s()],h.prototype,"totalFeatures",null),h=e([u("esri.views.3d.layers.graphics.pipeline.Feature3DPipeline")],h);export{h as Feature3DPipeline};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import r from"../../../../../core/Error.js";import{makeHandle as t}from"../../../../../core/handleUtils.js";import{destroyMaybe as n}from"../../../../../core/maybe.js";import o from"../../../../../core/Promise.js";import{on as i,watch as a}from"../../../../../core/reactiveUtils.js";import{property as s}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as u}from"../../../../../core/accessorSupport/decorators/subclass.js";import{FeatureLayerViewPerformanceInfo as l}from"../../FeatureLayerViewPerformanceInfo.js";import{Feature3DPipelineWorkerHandle as d}from"./Feature3DPipelineWorkerHandle.js";import{FeaturePipelineRenderManager as p}from"./rendering/FeaturePipelineRenderManager.js";import{emptyHighlightHandle as y}from"../../support/highlightUtils.js";import{LayerViewPerformanceInfo as m}from"../../support/LayerViewPerformanceInfo.js";import{UpdatePolicy as c}from"../../../webgl-engine/lib/UpdatePolicy.js";let h=class extends o{constructor(e){super(e),this._renderer=null,this.graphicsQuery={queryForSymbologySnapping:(e,t)=>{throw new r("featurelayer:unsupported-symbology-snapping","Symbology snapping not supported")},executeQuery:async(e,r)=>await this._workerHandle.executeQuery(e,r),executeQueryForIds:async(e,r)=>await this._workerHandle.executeQueryForIds(e,r),executeQueryForCount:async(e,r)=>await this._workerHandle.executeQueryForCount(e,r),executeQueryForExtent:async(e,r)=>await this._workerHandle.executeQueryForExtent(e,r),executeQueryForLatestObservations:async(e,r)=>await this._workerHandle.executeQueryForLatestObservations(e,r)},this.maximumNumberOfFeatures=1e3}initialize(){if("point"!==this.layerView.layer.geometryType)throw new r("featurelayer:unsupported-geometry-type",`${this.layerView.layer.geometryType} is not supported`);this.addResolvingPromise(this.setup())}destroy(){this.removeAllHandles(),this._workerHandle.destroy(),n(this._renderer)}async setup(){const e=this.layerView,{layer:t,view:n,uid:o}=e,{spatialReference:s,renderSpatialReference:u,resourceController:l,renderCoordsHelper:y,elevationProvider:m}=n,c=n.state.viewingMode;if(this._renderer=new p({view:n,layerViewUid:o}),"feature"!==t.type)throw new r("featurelayer:unsupported-layertype","Only FeatureLayer is supported");const h=new d({schedule:e=>l.immediate.schedule(e),layer:t,layerView:e,viewSpatialReference:s,renderSpatialReference:u,viewingMode:c,renderer:this._renderer,elevationProvider:m,renderCoordsHelper:y});this._workerHandle=await h.when(),this.addHandles([this.layerView.view.featureTiles.addClient(),i((()=>this.layerView.view.featureTiles.tiles),"change",(e=>{this._workerHandle.onTileTreeChange(e)}),{onListenerAdd:e=>this._workerHandle.onTileTreeChange({added:e.toArray(),removed:[]}),onListenerRemove:e=>this._workerHandle.onTileTreeChange({added:[],removed:e.toArray()})}),n.elevationProvider.on("elevation-change",(e=>this._workerHandle.onElevationChange(e))),a((()=>this.layerView.fullOpacity),(e=>this._workerHandle.onLayerViewOpacityChange(e)),{sync:!1}),a((()=>t.renderer),(e=>this._workerHandle.onRendererChange(e)),{sync:!1})])}get legendEnabled(){return!1}get hasAllFeatures(){return!1}get hasAllFeaturesInView(){return!1}get hasFullGeometries(){return!1}get symbologySnappingSupported(){return!1}get scaleVisibilitySuspended(){return!1}get suspendInfo(){return{}}get updating(){return this._workerHandle.updating}get dataUpdating(){return!1}get updatePolicy(){return c.ASYNC}get maximumNumberOfFeaturesExceeded(){return!1}get updatingProgressValue(){return 1}get usedMemory(){return this._renderer?.usedMemory??0}get unloadedMemory(){return 0}get ignoresMemoryFactor(){return!0}get totalFeatures(){return this._renderer?.totalFeatures??0}get performanceInfo(){const e=this.totalFeatures;return new l(new m(this.usedMemory,e,e,this.maximumNumberOfFeatures,0,null),e,e,this.maximumNumberOfFeaturesExceeded,"tiles","n/a")}get suspendResumeExtentMode(){return"computed"}forEachGraphic(e){}findGraphic(e){return null}highlight(e){return y}maskOccludee(e){return t()}async whenGraphicBounds(e,r){return null}computeAttachmentOrigin(e,r){return null}elevationAlignPointsInFeatures(e,t){throw new r("featurelayer:unsupported-elevation-alignment","Elevation alignment not supported")}async doRefresh(e){}setVisibility(e,r){}getMissingAttributesForFeature(e){return null}getHydratedGeometry(e){return null}};e([s()],h.prototype,"layerView",void 0),e([s()],h.prototype,"updating",null),e([s()],h.prototype,"totalFeatures",null),h=e([u("esri.views.3d.layers.graphics.pipeline.Feature3DPipeline")],h);export{h as Feature3DPipeline};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import t from"../../../../../core/Evented.js";import{throwIfAborted as r}from"../../../../../core/promiseUtils.js";import{watch as a,initial as n}from"../../../../../core/reactiveUtils.js";import{property as i}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as s}from"../../../../../core/accessorSupport/decorators/subclass.js";import o from"../../../../../geometry/Extent.js";import{initializeProjection as c,project as l}from"../../../../../geometry/projection.js";import d from"../../../../../geometry/SpatialReference.js";import{QueryEngine as m}from"../../../../../layers/graphics/data/QueryEngine.js";import u from"../../../../../rest/support/Query.js";import{FeatureProcessingContext as h}from"./FeatureProcessingContext.js";import{joinCommands as y,PipelineCommand as p}from"./PipelineCommand.js";import{Tile3DManager as _}from"./Tile3DManager.js";import{TileActionSynchronizer as f,TileActionType as C}from"./TileActionSynchronizer.js";import{TiledFeatureStore as w}from"./featureSet/TiledFeatureStore.js";import{Tile3DFetcher as g}from"./fetching/Tile3DFetcher.js";import{RenderCommandContext as x}from"./rendering/RenderCommandContext.js";import{createFeatureRendererFromJSON as S}from"./symbolization/Factory.js";import{RenderCoordsHelper as v}from"../../../support/RenderCoordsHelper.js";import{assert as R}from"../../../webgl-engine/lib/Util.js";let j=class extends t.EventedAccessor{constructor(){super(...arguments),this.remoteClient=null,this._featureStore=new w,this._actionSynchronizer=new f(y,(e=>this._createCommand(e))),this._tileManager=null,this._renderer=null,this._fetcher=null,this._queryEngine=null,this._defaultQueryJSON=null,this._mainThreadDelegate=null,this._viewSpatialReference=null,this._renderCommandContext=null,this._context=null}get updating(){return this._tileManager.updating}destroy(){this._featureStore.clear(),this._tileManager?.destroy()}async setup({viewSpatialReference:e,renderSpatialReference:t,viewingMode:r,baseQuery:i,url:s,objectIdField:y,capabilities:p,fieldsIndex:f,timeInfo:C,elevationInfoJSON:w,fullExtent:R}){const j=d.fromJSON(e);this._viewSpatialReference=j;const D=d.fromJSON(t);this._fetcher=new g(this._viewSpatialReference,u.fromJSON(i),s,y,p),this._queryEngine=new m({hasZ:!0,hasM:!1,geometryType:"esriGeometryPoint",objectIdField:y,fieldsIndex:f,availableFields:[y],spatialReference:e,featureStore:this._featureStore,timeInfo:C}),this._mainThreadDelegate={createTexture:async(e,t)=>{const r={data:e,parameters:t};return await this.remoteClient.invoke("createTexture",r,{transferList:[e.buffer]})},releaseTexture:async e=>{const t={uid:e};await this.remoteClient.invoke("releaseTexture",t)},createMaterial:async e=>{const t={materialJSON:e};await this.remoteClient.invoke("createMaterial",t)},destroyMaterial:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyMaterial",t)},createDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("createDirectRenderer",t)},destroyDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyDirectRenderer",t)},createLodRenderer:async(e,t,r)=>{const a={rendererId:e,lodRenderGeometry:t};await this.remoteClient.invoke("createLoDRenderer",a,{transferList:r})},destroyLodRenderer:async e=>{const t={rendererId:e};await this.remoteClient.invoke("destroyLoDRenderer",t)},executeRenderCommands:async e=>{const t={commands:e.commands};await this.remoteClient.invoke("dispatchRenderCommands",t,{transferList:e.transferList})},applyElevationAlignmentTo:async e=>{const t={mapPoints:e};return await this.remoteClient.invoke("applyElevationAlignment",t,{transferList:[e.buffer]})}};const F=v.create(r,D),Q=new x(r,this._mainThreadDelegate);this._renderCommandContext=Q;const E=w??{},I=new h(j,D,this._mainThreadDelegate,F,Q,E);this._context=I,this._renderer=S(null,I),this._defaultQueryJSON=new u({outSpatialReference:j}).toJSON();let b=null;if(null!=R){const e=o.fromJSON(R);await c(e.spatialReference,j),b=l(e,j)}return this._tileManager=new _({loadTile:(e,t)=>this._fetcher.fetch(e,t),synchronizer:this._actionSynchronizer,extent:b}),this.addHandles(a((()=>this.updating),(e=>{this.emit("notify-updating",{updating:e})})),n),null!=this._renderer&&await this._renderer.load(),T}async executeQuery(e,t){return{result:await this._queryEngine.executeQuery(this._ensureQuery(e),t)}}async executeQueryForIds(e,t){const r=await this._queryEngine.executeQueryForIdSet(this._ensureQuery(e),t);return{result:Array.from(r)}}async executeQueryForCount(e,t){return{result:await this._queryEngine.executeQueryForCount(this._ensureQuery(e),t)}}async executeQueryForExtent(e,t){return{result:await this._queryEngine.executeQueryForExtent(this._ensureQuery(e),t)}}async executeQueryForLatestObservations(e,t){return{result:await this._queryEngine.executeQueryForLatestObservations(this._ensureQuery(e),t)}}async onTileTreeChange(e){return await this._tileManager.onTileTreeChange(e),T}async onElevationChange(e){return T}async onLayerOpacityChange(e){const t=this._renderer;if(null==t)return T;const r=await t.createUpdateLayerOpacityCommand(e);return await r.execute(),T}async onRendererChange(e){const{_context:t}=this,r=await this._createDestroyRendererCommand();await r.execute();const a=S(e,t);this._renderer=a,await this._renderer.load();const n=[];this._tileManager.forEachTile((e=>{n.push(a.createAddCommand(e))}));const i=await Promise.all(n),s=t.joinPipelineCommands(i);return await s.execute(),T}async _createDestroyRendererCommand(){const e=this._renderer;if(null==e)return p.create(this._renderCommandContext);const t=await e.createDestroyCommand();return t.appendPipelineStateCommand((()=>{R(this._renderer===e),this._renderer=null})),t}async _createAddFeatureDataCommand(e,t){const a=this._featureStore,n=this._renderer;let i;return i=null!=n?await n.createAddCommand(e):p.create(this._renderCommandContext),r(t),i.appendPipelineStateCommand((()=>{a.addTile(e)})),i}async _createRemoveFeatureDataCommand(e){const t=this._featureStore,r=this._renderer;let a;return a=null!=r?await r.createRemoveCommand(e):p.create(this._renderCommandContext),a.appendPipelineStateCommand((()=>{t.removeTile(e)})),a}async _createUpdateFeatureDataVisibilityCommand(e,t){const a=this._renderer;let n;return n=null!=a?await a.createUpdateVisibilityCommand(e):p.create(this._renderCommandContext),r(t),n}_ensureQuery(e){return e??this._defaultQueryJSON}async _createCommand(e){switch(e.type){case C.ADD:return await this._createAddFeatureDataCommand(e.data);case C.REMOVE:return await this._createRemoveFeatureDataCommand(e.data.id);case C.UPDATE_VISIBILITY:return await this._createUpdateFeatureDataVisibilityCommand(e.data)}}};e([i()],j.prototype,"updating",null),j=e([s("esri.views.3d.layers.graphics.pipeline.Feature3DPipelineWorker")],j);const D=j,T={result:void 0};export{D as default};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import t from"../../../../../core/Evented.js";import{throwIfAborted as r}from"../../../../../core/promiseUtils.js";import{watch as a,initial as n}from"../../../../../core/reactiveUtils.js";import{property as i}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as o}from"../../../../../core/accessorSupport/decorators/subclass.js";import s from"../../../../../geometry/Extent.js";import{initializeProjection as c,project as l}from"../../../../../geometry/projection.js";import d from"../../../../../geometry/SpatialReference.js";import{QueryEngine as m}from"../../../../../layers/graphics/data/QueryEngine.js";import u from"../../../../../rest/support/Query.js";import{FeatureProcessingContext as h}from"./FeatureProcessingContext.js";import{joinCommands as y,PipelineCommand as p}from"./PipelineCommand.js";import{Tile3DManager as f}from"./Tile3DManager.js";import{TileActionSynchronizer as _,TileActionType as C}from"./TileActionSynchronizer.js";import{TiledFeatureStore as w}from"./featureSet/TiledFeatureStore.js";import{Tile3DFetcher as g}from"./fetching/Tile3DFetcher.js";import{RenderCommandContext as x}from"./rendering/RenderCommandContext.js";import{RenderCoordsHelper as S}from"../../../support/RenderCoordsHelper.js";import{assert as R}from"../../../webgl-engine/lib/Util.js";let v=class extends t.EventedAccessor{constructor(){super(...arguments),this.remoteClient=null,this._featureStore=new w,this._actionSynchronizer=new _(y,(e=>this._createCommand(e))),this._tileManager=null,this._renderer=null,this._fetcher=null,this._queryEngine=null,this._defaultQueryJSON=null,this._mainThreadDelegate=null,this._viewSpatialReference=null,this._renderCommandContext=null,this._context=null}get updating(){return this._tileManager.updating}destroy(){this._featureStore.clear(),this._tileManager?.destroy()}async setup({viewSpatialReference:e,renderSpatialReference:t,viewingMode:r,layerInfo:i,layerViewInfo:o}){const y=d.fromJSON(e);this._viewSpatialReference=y;const p=d.fromJSON(t);this._fetcher=new g(this._viewSpatialReference,u.fromJSON(i.baseQuery),i.url,i.objectIdField,i.capabilities),this._queryEngine=new m({hasZ:!0,hasM:!1,geometryType:"esriGeometryPoint",objectIdField:i.objectIdField,fieldsIndex:i.fieldIndex,availableFields:[i.objectIdField],spatialReference:e,featureStore:this._featureStore,timeInfo:i.timeInfo}),this._mainThreadDelegate={createTexture:async(e,t)=>{const r={data:e,parameters:t};return await this.remoteClient.invoke("createTexture",r,{transferList:[e.buffer]})},releaseTexture:async e=>{const t={uid:e};await this.remoteClient.invoke("releaseTexture",t)},createMaterial:async e=>{const t={materialJSON:e};await this.remoteClient.invoke("createMaterial",t)},destroyMaterial:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyMaterial",t)},createDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("createDirectRenderer",t)},destroyDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyDirectRenderer",t)},createLodRenderer:async(e,t,r)=>{const a={rendererId:e,lodRenderGeometry:t};await this.remoteClient.invoke("createLoDRenderer",a,{transferList:r})},destroyLodRenderer:async e=>{const t={rendererId:e};await this.remoteClient.invoke("destroyLoDRenderer",t)},executeRenderCommands:async e=>{const t={commands:e.commands};await this.remoteClient.invoke("dispatchRenderCommands",t,{transferList:e.transferList})},applyElevationAlignmentTo:async e=>{const t={mapPoints:e};return await this.remoteClient.invoke("applyElevationAlignment",t,{transferList:[e.buffer]})}};const _=S.create(r,p),C=new x(r,this._mainThreadDelegate);this._renderCommandContext=C;const w=new h(y,p,this._mainThreadDelegate,_,C,i,o);this._context=w,this._renderer=w.symbolRendererFactory.createSymbolRendererFromJSON(i.renderer),this._defaultQueryJSON=new u({outSpatialReference:y}).toJSON();let R=null;if(null!=i.fullExtent){const e=s.fromJSON(i.fullExtent);await c(e.spatialReference,y),R=l(e,y)}return this._tileManager=new f({loadTile:(e,t)=>this._fetcher.fetch(e,t),synchronizer:this._actionSynchronizer,extent:R}),this.addHandles(a((()=>this.updating),(e=>{this.emit("notify-updating",{updating:e})})),n),null!=this._renderer&&await this._renderer.load(),F}async executeQuery(e,t){return{result:await this._queryEngine.executeQuery(this._ensureQuery(e),t)}}async executeQueryForIds(e,t){const r=await this._queryEngine.executeQueryForIdSet(this._ensureQuery(e),t);return{result:Array.from(r)}}async executeQueryForCount(e,t){return{result:await this._queryEngine.executeQueryForCount(this._ensureQuery(e),t)}}async executeQueryForExtent(e,t){return{result:await this._queryEngine.executeQueryForExtent(this._ensureQuery(e),t)}}async executeQueryForLatestObservations(e,t){return{result:await this._queryEngine.executeQueryForLatestObservations(this._ensureQuery(e),t)}}async onTileTreeChange(e){return await this._tileManager.onTileTreeChange(e),F}async onElevationChange(e){return F}async onLayerViewOpacityChange(e){const{_context:t,_renderer:r}=this;if(t.layerViewInfo.fullOpacity=e,null==r)return F;const a=await r.createUpdateLayerViewOpacityCommand(e);return await a.execute(),F}async onRendererChange(e){const{_context:t}=this,r=await this._createDestroyRendererCommand();await r.execute();const a=t.symbolRendererFactory.createSymbolRendererFromJSON(e);this._renderer=a,await this._renderer.load();const n=[];this._tileManager.forEachTile((e=>{n.push(a.createAddCommand(e))}));const i=await Promise.all(n),o=t.joinPipelineCommands(i);return await o.execute(),F}async _createDestroyRendererCommand(){const e=this._renderer;if(null==e)return p.create(this._renderCommandContext);const t=await e.createDestroyCommand();return t.appendPipelineStateCommand((()=>{R(this._renderer===e),this._renderer=null})),t}async _createAddFeatureDataCommand(e,t){const a=this._featureStore,n=this._renderer;let i;return i=null!=n?await n.createAddCommand(e):p.create(this._renderCommandContext),r(t),i.appendPipelineStateCommand((()=>{a.addTile(e)})),i}async _createRemoveFeatureDataCommand(e){const t=this._featureStore,r=this._renderer;let a;return a=null!=r?await r.createRemoveCommand(e):p.create(this._renderCommandContext),a.appendPipelineStateCommand((()=>{t.removeTile(e)})),a}async _createUpdateFeatureDataVisibilityCommand(e,t){const a=this._renderer;let n;return n=null!=a?await a.createUpdateVisibilityCommand(e):p.create(this._renderCommandContext),r(t),n}_ensureQuery(e){return e??this._defaultQueryJSON}async _createCommand(e){switch(e.type){case C.ADD:return await this._createAddFeatureDataCommand(e.data);case C.REMOVE:return await this._createRemoveFeatureDataCommand(e.data.id);case C.UPDATE_VISIBILITY:return await this._createUpdateFeatureDataVisibilityCommand(e.data)}}};e([i()],v.prototype,"updating",null),v=e([o("esri.views.3d.layers.graphics.pipeline.Feature3DPipelineWorker")],v);const j=v,F={result:void 0};export{j as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../chunks/tslib.es6.js";import r from"../../../../../core/Promise.js";import{property as t}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as o}from"../../../../../core/accessorSupport/decorators/subclass.js";import{WorkerHandle as n}from"../../../../../core/workers/WorkerHandle.js";import a from"../../../../../geometry/Extent.js";import{clone as i}from"../../../../../geometry/support/aaBoundingRect.js";import s from"../../../../../rest/support/FeatureSet.js";import{ElevationContext as d}from"../ElevationContext.js";import{applyElevationAlignment as c}from"./utils.js";let l=class extends r{constructor(e){super(e),this.schedule=null,this._workerUpdating=!0}get updating(){return this._workerUpdating}initialize(){const{layer:e,viewSpatialReference:r,renderSpatialReference:t}=this,o=e.elevationInfo;this._elevationContext=d.fromElevationInfo(o),this._workerHandle=new u(this.schedule,{createTexture:async({data:e,parameters:r})=>({result:await this.renderer.createTexture(e,r),transferList:[]}),releaseTexture:async({uid:e})=>(await this.renderer.releaseTexture(e),y),createMaterial:async({materialJSON:e})=>(await this.renderer.createMaterial(e),y),destroyMaterial:async({materialId:e})=>(await this.renderer.destroyMaterial(e),y),createDirectRenderer:async({materialId:e})=>(await this.renderer.createDirectRenderer(e),y),destroyDirectRenderer:async({materialId:e})=>(await this.renderer.destroyDirectRenderer(e),y),createLoDRenderer:async({rendererId:e,lodRenderGeometry:r},t)=>(await this.renderer.createLoDRenderer(e,r,t?.signal??void 0),y),destroyLoDRenderer:async({rendererId:e},r)=>(await this.renderer.destroyLoDRenderer(e,r?.signal??void 0),y),dispatchRenderCommands:async({commands:e})=>(await this.renderer.executeRenderCommands(e),y),applyElevationAlignment:async({mapPoints:e})=>{const{viewSpatialReference:r,elevationProvider:t,renderCoordsHelper:o}=this,n=c(e,r,this._elevationContext,t,o);return{result:n,transferList:[n.buffer]}}}),this.addResolvingPromise((async()=>{await e.load();const{fullExtent:n}=e;await this._workerHandle.invokeMethod("setup",{url:e.parsedUrl?.path??"",baseQuery:e.createQuery().toJSON(),viewSpatialReference:r.toJSON(),renderSpatialReference:t.toJSON(),viewingMode:this.viewingMode,objectIdField:e.objectIdField,capabilities:e.capabilities,timeInfo:e.timeInfo?.toJSON(),elevationInfoJSON:o?.toJSON(),fieldsIndex:e.fieldsIndex.toJSON(),fullExtent:n?.toJSON()})})()),this.addHandles(this._workerHandle.on("notify-updating",(({updating:e})=>{this._workerUpdating=e})))}onTileTreeChange({added:e,removed:r}){if(0===e.length&&0===r.length)return;const t=e.map(p),o=r.map(p);this._workerHandle.invokeMethod("onTileTreeChange",{added:t,removed:o})}onElevationChange(e){this._workerHandle.invokeMethod("onElevationChange",{context:e.context,spatialReference:e.spatialReference?.toJSON(),extent:i(e.extent)})}onLayerOpacityChange(e){this._workerHandle.invokeMethod("onLayerOpacityChange",e)}onRendererChange(e){const r=e?.toJSON();this._workerHandle.invokeMethod("onRendererChange",r)}async executeQuery(e,r){const t=await this._workerHandle.invokeMethod("executeQuery",e?.toJSON(),r),o=s.fromJSON(t);return this._ensureLayerOnFeatures(o),o}async executeQueryForIds(e,r){return await this._workerHandle.invokeMethod("executeQueryForIds",e?.toJSON(),r)}async executeQueryForCount(e,r){return await this._workerHandle.invokeMethod("executeQueryForCount",e?.toJSON(),r)}async executeQueryForExtent(e,r){const{count:t,extent:o}=await this._workerHandle.invokeMethod("executeQueryForExtent",e?.toJSON(),r);return{count:t,extent:a.fromJSON(o)}}async executeQueryForLatestObservations(e,r){const t=await this._workerHandle.invokeMethod("executeQueryForLatestObservations",e?.toJSON(),r),o=s.fromJSON(t);return this._ensureLayerOnFeatures(o),o}_ensureLayerOnFeatures(e){const{layer:r}=this;for(const t of e.features)t.layer=r,t.sourceLayer=r}};e([t()],l.prototype,"updating",null),e([t({constructOnly:!0})],l.prototype,"schedule",void 0),e([t({constructOnly:!0})],l.prototype,"layer",void 0),e([t({constructOnly:!0})],l.prototype,"viewSpatialReference",void 0),e([t({constructOnly:!0})],l.prototype,"renderSpatialReference",void 0),e([t({constructOnly:!0})],l.prototype,"viewingMode",void 0),e([t({constructOnly:!0})],l.prototype,"renderer",void 0),e([t({constructOnly:!0})],l.prototype,"elevationProvider",void 0),e([t({constructOnly:!0})],l.prototype,"renderCoordsHelper",void 0),e([t()],l.prototype,"_workerUpdating",void 0),l=e([o("esri.views.3d.layers.graphics.pipeline.Feature3DPipelineWorkerHandle")],l);class u extends n{constructor(e,r){super("Feature3DPipelineWorker","setup",{},e,{strategy:"dedicated",client:r})}}function p({id:e,lij:r,extent:t}){return{id:e,lij:r,extent:t}}const y={result:void 0};export{l as Feature3DPipelineWorkerHandle};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import r from"../../../../../core/Promise.js";import{property as t}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/has.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as o}from"../../../../../core/accessorSupport/decorators/subclass.js";import{WorkerHandle as n}from"../../../../../core/workers/WorkerHandle.js";import a from"../../../../../geometry/Extent.js";import{clone as i}from"../../../../../geometry/support/aaBoundingRect.js";import s from"../../../../../rest/support/FeatureSet.js";import{ElevationContext as d}from"../ElevationContext.js";import{applyElevationAlignment as c}from"./utils.js";let l=class extends r{constructor(e){super(e),this.schedule=null,this._workerUpdating=!0}get updating(){return this._workerUpdating}initialize(){const{layer:e,layerView:r,viewSpatialReference:t,renderSpatialReference:o}=this,n=e.elevationInfo;this._elevationContext=d.fromElevationInfo(n),this._workerHandle=new u(this.schedule,{createTexture:async({data:e,parameters:r})=>({result:await this.renderer.createTexture(e,r),transferList:[]}),releaseTexture:async({uid:e})=>(await this.renderer.releaseTexture(e),y),createMaterial:async({materialJSON:e})=>(await this.renderer.createMaterial(e),y),destroyMaterial:async({materialId:e})=>(await this.renderer.destroyMaterial(e),y),createDirectRenderer:async({materialId:e})=>(await this.renderer.createDirectRenderer(e),y),destroyDirectRenderer:async({materialId:e})=>(await this.renderer.destroyDirectRenderer(e),y),createLoDRenderer:async({rendererId:e,lodRenderGeometry:r},t)=>(await this.renderer.createLoDRenderer(e,r,t?.signal??void 0),y),destroyLoDRenderer:async({rendererId:e},r)=>(await this.renderer.destroyLoDRenderer(e,r?.signal??void 0),y),dispatchRenderCommands:async({commands:e})=>(await this.renderer.executeRenderCommands(e),y),applyElevationAlignment:async({mapPoints:e})=>{const{viewSpatialReference:r,elevationProvider:t,renderCoordsHelper:o}=this,n=c(e,r,this._elevationContext,t,o);return{result:n,transferList:[n.buffer]}}}),this.addResolvingPromise((async()=>{await e.load();const a={url:e.parsedUrl?.path??"",baseQuery:e.createQuery().toJSON(),objectIdField:e.objectIdField,capabilities:e.capabilities,fieldIndex:e.fieldsIndex.toJSON(),timeInfo:e.timeInfo?.toJSON(),elevationInfo:n?.toJSON(),fullExtent:e.fullExtent?.toJSON(),renderer:e.renderer?.toJSON()},i={fullOpacity:r.fullOpacity};await this._workerHandle.invokeMethod("setup",{viewSpatialReference:t.toJSON(),renderSpatialReference:o.toJSON(),viewingMode:this.viewingMode,layerInfo:a,layerViewInfo:i})})()),this.addHandles(this._workerHandle.on("notify-updating",(({updating:e})=>{this._workerUpdating=e})))}onTileTreeChange({added:e,removed:r}){if(0===e.length&&0===r.length)return;const t=e.map(p),o=r.map(p);this._workerHandle.invokeMethod("onTileTreeChange",{added:t,removed:o})}onElevationChange(e){this._workerHandle.invokeMethod("onElevationChange",{context:e.context,spatialReference:e.spatialReference?.toJSON(),extent:i(e.extent)})}onLayerViewOpacityChange(e){this._workerHandle.invokeMethod("onLayerViewOpacityChange",e)}onRendererChange(e){const r=e?.toJSON();this._workerHandle.invokeMethod("onRendererChange",r)}async executeQuery(e,r){const t=await this._workerHandle.invokeMethod("executeQuery",e?.toJSON(),r),o=s.fromJSON(t);return this._ensureLayerOnFeatures(o),o}async executeQueryForIds(e,r){return await this._workerHandle.invokeMethod("executeQueryForIds",e?.toJSON(),r)}async executeQueryForCount(e,r){return await this._workerHandle.invokeMethod("executeQueryForCount",e?.toJSON(),r)}async executeQueryForExtent(e,r){const{count:t,extent:o}=await this._workerHandle.invokeMethod("executeQueryForExtent",e?.toJSON(),r);return{count:t,extent:a.fromJSON(o)}}async executeQueryForLatestObservations(e,r){const t=await this._workerHandle.invokeMethod("executeQueryForLatestObservations",e?.toJSON(),r),o=s.fromJSON(t);return this._ensureLayerOnFeatures(o),o}_ensureLayerOnFeatures(e){const{layer:r}=this;for(const t of e.features)t.layer=r,t.sourceLayer=r}};e([t()],l.prototype,"updating",null),e([t({constructOnly:!0})],l.prototype,"schedule",void 0),e([t({constructOnly:!0})],l.prototype,"layer",void 0),e([t({constructOnly:!0})],l.prototype,"layerView",void 0),e([t({constructOnly:!0})],l.prototype,"viewSpatialReference",void 0),e([t({constructOnly:!0})],l.prototype,"renderSpatialReference",void 0),e([t({constructOnly:!0})],l.prototype,"viewingMode",void 0),e([t({constructOnly:!0})],l.prototype,"renderer",void 0),e([t({constructOnly:!0})],l.prototype,"elevationProvider",void 0),e([t({constructOnly:!0})],l.prototype,"renderCoordsHelper",void 0),e([t()],l.prototype,"_workerUpdating",void 0),l=e([o("esri.views.3d.layers.graphics.pipeline.Feature3DPipelineWorkerHandle")],l);class u extends n{constructor(e,r){super("Feature3DPipelineWorker","setup",{},e,{strategy:"dedicated",client:r})}}function p({id:e,lij:r,extent:t}){return{id:e,lij:r,extent:t}}const y={result:void 0};export{l as Feature3DPipelineWorkerHandle};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{PipelineCommand as e}from"./PipelineCommand.js";class n{constructor(e,n,r,t,i,a){this.viewSpatialReference=e,this.renderSpatialReference=n,this.mainThreadDelegate=r,this.renderCoordsHelper=t,this.renderCommandContext=i,this.elevationInfo=a}createPipelineCommand(n=this.renderCommandContext.createRenderCommandBuffer(),r=[]){return new e(this.renderCommandContext,n,r)}joinPipelineCommands(e){if(0===e.length)return this.createPipelineCommand();return e.filter((e=>null!=e)).reduce(((e,n)=>(e.append(n),e)))}}export{n as FeatureProcessingContext};
5
+ import{read as e}from"../../../../../renderers/support/jsonUtils.js";import{PipelineCommand as r}from"./PipelineCommand.js";import{createDefaultIconSymbolLayer as t}from"./symbolization/factoryUtils.js";import{IconSymbolLayerRenderer as o}from"./symbolization/IconSymbolLayerRenderer.js";import{Point3DSymbolRenderer as n}from"./symbolization/Point3DSymbolRenderer.js";import{SimpleFeatureRenderer as i}from"./symbolization/SimpleFeatureRenderer.js";import{UniqueValueFeatureRenderer as s}from"./symbolization/UniqueValueFeatureRenderer.js";class a{constructor(e,r,t,o,n,i,s){this.viewSpatialReference=e,this.renderSpatialReference=r,this.mainThreadDelegate=t,this.renderCoordsHelper=o,this.renderCommandContext=n,this.layerInfo=i,this.layerViewInfo=s,this.symbolRendererFactory=new m(this)}createPipelineCommand(e=this.renderCommandContext.createRenderCommandBuffer(),t=[]){return new r(this.renderCommandContext,e,t)}joinPipelineCommands(e){if(0===e.length)return this.createPipelineCommand();return e.filter((e=>null!=e)).reduce(((e,r)=>(e.append(r),e)))}}class m{constructor(e){this.context=e}createSymbolRendererFromJSON(r){const t=e(r??l)??void 0;if(!t)throw new Error("Failed to create renderer");const o=t.type;switch(o){case"simple":return new i(t,this.context);case"unique-value":return new s(t,this.context);default:return console.warn(`Unable to create symbolrenderer for renderer of ${o}`),this.createSymbolRendererFromJSON(l)}}createSymbolRendererFromSymbol(e){const r=e?.type;switch(r){case"point-3d":return new n(e,this.context);case"picture-marker":return new o(t(),this.context);default:return console.warn(`Unable to create symbolrenderer for symbol of ${r}`),null}}createSymbolRendererFromSymbolLayer(e){const r=e.type;return"icon"===r?new o(e,this.context):(console.warn(`Unable to create symbolrenderer for symbolLayer of ${r}`),null)}}const l={type:"simple"};export{a as FeatureProcessingContext,m as SymbolRendererFactory};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import e from"../../../../../../Color.js";import{create as t}from"../../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{ONES as r}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ZEROS as i}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{defaultPrimitive as n}from"../../../../../../symbols/support/IconSymbol3DLayerResource.js";import{mixinColorAndOpacity as o}from"../../graphicUtils.js";import{namedAnchorToHUDMaterialAnchorPos as a}from"../../placementUtils.js";import{PipelineCommand as l}from"../PipelineCommand.js";import{computeTileCenterRenderCoordinates as s,readObjectIds as c,readMapCoordinates as m,projectToRenderCoordinates as d}from"../featureData/processingUtils.js";import{inputAttributesToAttributesMap as u}from"./symbolizationUtils.js";import{createTextureInfo as y,defaultBoundingBox as p,requiresHalfTexelOffset as C}from"../../../../support/engineContent/sdfPrimitives.js";import{Attribute as _}from"../../../../webgl-engine/lib/Attribute.js";import{VertexAttribute as h}from"../../../../webgl-engine/lib/VertexAttribute.js";class f{constructor(e,t){this._context=null,this._symbolLayer=null,this._draped=!1,this._loaded=!1,this._loadingPromise=null,this._iconTextureID=null,this._materialId=null,this._context=t,this._symbolLayer=e}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}_destroy(){this._iconTextureID=null}async _load(){const e=this._context.renderCommandContext,t=await e.getOrCreateSharedTexture("circle-icon",(()=>y("circle")));this._iconTextureID=t;const r={anchorPosition:a.center,occlusionTest:!0,hasSlicePlane:!1,color:this._getFillColor(),outlineColor:this._getOutlineColor(),outlineSize:1,distanceFieldBoundingBox:p,textureId:t,textureIsSignedDistanceField:!0,sampleSignedDistanceFieldTexelCenter:C("circle")};this._materialId=await e.createMaterial({type:"hud",parameters:r}),await e.createDirectRenderer(this._materialId),this._loaded=!0}async createAddCommand(e){const{_materialId:t,_context:r}=this,{renderCommandContext:i}=r;if(null==t)throw new Error("expected material not to be null");const n=await this._createGeometry(e);if(null==n)return r.createPipelineCommand();const o=s(e,r);return r.createPipelineCommand(i.addDirectRendererGeometry(e.id,n,o))}async _createGeometry(e){const{_materialId:r,_context:i}=this,{mainThreadDelegate:n}=i,{featureCount:o}=e;if(0===o||null==r)return null;const a=c(e),l=m(e),s=await n.applyElevationAlignmentTo(l),y=d(s,i),p=new Float64Array([0,0,1]),C=new Float64Array([255,255,255,255]),f=new Float64Array([24,24]),g=new Float64Array([0,0,0,1]),x=new Float64Array([0,0]),b=new Float64Array([0]),w=new Uint32Array(o);for(let t=0;t<o;++t)w[t]=t;const I=new Uint32Array(o);for(let t=0;t<o;++t)I[t]=0;const P=new _(y,w,3,!0),A=new _(p,I,3,!0),O=new _(x,I,2,!0),D=new _(C,I,4,!0),T=new _(b,I,1,!0),j=new _(f,I,2,!0),F=new _(g,I,4,!0),U=[[h.POSITION,P],[h.NORMAL,A],[h.UV0,O],[h.COLOR,D],[h.ROTATION,T],[h.SIZE,j],[h.CENTEROFFSETANDDISTANCE,F]],v=new Uint8Array(o);e.getVisibilityArray(v);return{attributes:u(U),objectAndLayerIdColor:void 0,transformation:t(),materialId:r,objectIds:a,visibilities:v}}async createRemoveCommand(e){const{_materialId:t,_context:r}=this,i=r.renderCommandContext;return null==t?r.createPipelineCommand():r.createPipelineCommand(i.removeDirectRendererGeometryBuffer(t,e))}async createUpdateVisibilityCommand(e){const{_materialId:t,_context:r}=this,i=r.renderCommandContext;if(null==t)return r.createPipelineCommand();const n=new Uint8Array(e.featureCount);return e.getVisibilityArray(n),r.createPipelineCommand(i.updateVisibility(t,e.id,n))}async createUpdateLayerViewOpacityCommand(e){const{_context:t,_materialId:r}=this,i=t.renderCommandContext;return null==r?t.createPipelineCommand():t.createPipelineCommand(i.updateMaterial({type:"hud",materialId:r,parameters:{color:this._getFillColor(),outlineColor:this._getOutlineColor()}}))}async createUpdateElevationCommand(e){const{_materialId:t,_context:r}=this,{renderCommandContext:i}=r,{featureCount:n,id:o}=e;if(null==t||0===n)return r.createPipelineCommand();const a=await this._createGeometry(e);if(null==a)return r.createPipelineCommand();const l=s(e,r);return r.createPipelineCommand(i.updateDirectRendererGeometry(o,a,l))}async createDestroyCommand(){const{_iconTextureID:e,_context:t}=this,r=t.renderCommandContext;let i;return i=null!=e?await r.releaseSharedTexture("circle-icon"):l.create(r),i.appendPipelineStateCommand((()=>this._destroy())),i}_getOutlineColor(){const t=this._getLayerOpacity(),r=this._symbolLayer,i=r?.outline?.color;if(null!=i){const r=e.toUnitRGB(i),n=i.a*t;return[r[0],r[1],r[2],n]}return[0,0,0,0]}_getFillColor(){if(g(this._getPrimitive()))return w;const e=null==this._getPrimitive(),t=this._symbolLayer?.material?.color;return this._getCombinedOpacityAndColor(t,{hasIntrinsicColor:e})}_getLayerOpacity(){return this._context.layerViewInfo.fullOpacity}_getCombinedOpacity(e,t=b){const r=this._draped?1:this._getLayerOpacity();return e?r*e.a:t.hasIntrinsicColor?r:0}_getCombinedOpacityAndColor(t,i=b){const n=this._getCombinedOpacity(t,i),a=null!=t?e.toUnitRGB(t):r;return o(a,n)}_getPrimitive(){return x(this._symbolLayer)}}function g(e){return null!=e&&("cross"===e||"x"===e)}function x(e){return e.resource?.href?null:e.resource?.primitive??n}const b={hasIntrinsicColor:!1},w=i;export{f as IconSymbolLayerRenderer,b as defaultMaterialOptions,x as getPrimitive,g as isOutlineOnly,w as transparentUnit};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import{identity as e,scale as t}from"../../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{fromArray as i,create as a,ONES as n}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as o}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{computeTranslationToOriginAndRotation as s}from"../../../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{create as l,size as m}from"../../../../../../geometry/support/aaBoundingBox.js";import{defaultPrimitive as d}from"../../../../../../symbols/support/ObjectSymbol3DLayerResource.js";import{objectSymbolLayerPrimitiveBoundingBox as c,objectSymbolLayerSizeWithResourceSize as p}from"../../../../../../symbols/support/symbolLayerUtils3D.js";import{computeObjectScale as u}from"../../graphicUtils.js";import{isValidPrimitive as h}from"../../primitiveObjectSymbolUtils.js";import{PipelineCommand as y}from"../PipelineCommand.js";import{readMapCoordinates as f,readObjectIds as _}from"../featureData/processingUtils.js";import{createPrimitiveGeometry as b}from"./primitiveObjectUtils.js";import{CullFaceOptions as C}from"../../../../webgl-engine/lib/basicInterfaces.js";import{DefaultMaterialParameters as g,isTransparent as x}from"../../../../webgl-engine/materials/DefaultMaterial.js";import{schematicMRRFactors as v}from"../../../../webgl-engine/materials/pbrUtils.js";class w{constructor(e,t){this._loaded=!1,this._loadingPromise=null,this._primitiveMaterialId=null,this._lodRendererId=null,this._context=null,this._symbolLayer=null,this._primitive=null,this._context=t,this._symbolLayer=e}_destroy(){this._lodRendererId=null,this._primitiveMaterialId=null}get loaded(){return this._loaded}get _isPrimitive(){return null!=this._primitive}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const e=this._context.renderCommandContext,t={physicalBasedRenderingEnabled:!0,slicePlaneEnabled:!1,castShadows:!0,isPrimitive:!0,screenSizePerspectiveEnabled:!0},r=this._getLayerOpacity();let i={usePBR:t.physicalBasedRenderingEnabled,isSchematic:!0,mrrFactors:v,ambient:n,diffuse:n,hasSlicePlane:t.slicePlaneEnabled,castShadows:t.castShadows,layerOpacity:r,offsetTransparentBackfaces:!1,screenSizePerspective:{}};if(i.externalColor=o,i.isInstanced=!0,this._isPrimitive){const e=new g;e.layerOpacity=r,i={...i,cullFace:P(x(e))}}const a=await e.createMaterial({type:"default",parameters:i}),s=this._symbolLayer.resource;this._primitive=s&&h(s?.primitive)?s.primitive:d;const l=b(this._primitive,a);this._lodRendererId=await e.createLodRenderer(l),this._primitiveMaterialId=a,this._loaded=!0}async createDestroyCommand(){const{_lodRendererId:e,_primitiveMaterialId:t,_context:r}=this,i=r.renderCommandContext,a=[];return null!=e&&a.push(i.destroyLodRenderer(e)),null!=t&&a.push(i.destroyMaterial(t)),new y(i,i.mergeRenderCommandBuffers(a),[()=>this._destroy()])}async createAddCommand(e){const t=this._context,{renderCommandContext:r,mainThreadDelegate:a}=t;if(null==this._lodRendererId)throw new Error("expected lod renderer id to not be null");const{featureCount:n}=e;if(0===n)return t.createPipelineCommand();const o=this._isPrimitive,s=this._primitive||d,u=l(c(s)),h=i(m(u)),y=i(p(h,{isPrimitive:o,width:100,depth:null,height:null})),b=new Float64Array(16*n),C=new Float64Array(16*n),g=f(e),x=await a.applyElevationAlignmentTo(g);for(let i=0;i<n;++i){const e=i,t=x[3*i+0],r=x[3*i+1],a=x[3*i+2],n=this._computeGlobalTransform(t,r,a,this._context.viewSpatialReference,T),o=this._computeLocalTransform(y,h,j);this._writeMatrixToTypedBuffer(b,e,o),this._writeMatrixToTypedBuffer(C,e,n)}const v=_(e),w=new Uint8Array(n);e.getVisibilityArray(w);const P={featureIds:new Uint32Array(v),visibility:w,localTransforms:b,globalTransforms:C};return t.createPipelineCommand(r.addLodInstances(this._lodRendererId,e.id,P))}async createRemoveCommand(e){const{_context:t,_lodRendererId:r}=this,i=t.renderCommandContext;return null==r?t.createPipelineCommand():t.createPipelineCommand(i.removeLodInstances(r,e))}async createUpdateVisibilityCommand(e){const{_lodRendererId:t,_context:r}=this,i=r.renderCommandContext;if(null==t)return r.createPipelineCommand();const a=new Uint8Array(e.featureCount);return e.getVisibilityArray(a),r.createPipelineCommand(i.updateVisibility(t,e.id,a))}async createUpdateLayerViewOpacityCommand(e){const{_context:t}=this,r=t.renderCommandContext,i=this._primitiveMaterialId;if(null==i)return t.createPipelineCommand();const a=this._getLayerOpacity();let n={layerOpacity:a};if(this._isPrimitive){const e=new g;e.layerOpacity=a,n={...n,cullFace:P(x(e))}}return t.createPipelineCommand(r.updateMaterial({type:"default",materialId:i,parameters:n}))}async createUpdateElevationCommand(e){const{_context:t,_lodRendererId:r}=this,{renderCommandContext:i,mainThreadDelegate:a}=t,{featureCount:n,id:o}=e;if(null==r||0===n)return t.createPipelineCommand();const s=new Float64Array(16*n),l=f(e),m=await a.applyElevationAlignmentTo(l);for(let d=0;d<n;++d){const e=d,t=m[3*d+0],r=m[3*d+1],i=m[3*d+2],a=this._computeGlobalTransform(t,r,i,this._context.viewSpatialReference,T);this._writeMatrixToTypedBuffer(s,e,a)}return t.createPipelineCommand(i.updateLodInstancesData(r,o,s))}_writeMatrixToTypedBuffer(e,t,r){let i=16*t;for(let a=0;a<16;a++)e[i++]=r[a]}_computeGlobalTransform(e,t,r,i,a){return I[0]=e,I[1]=t,I[2]=r,s(i,I,a,this._context.renderSpatialReference),a}_computeLocalTransform(t,r,i){return e(i),this._applyObjectScale(t,r,i),i}_applyObjectScale(e,r,i){const a=u(e,e,r,this._context.renderCoordsHelper.unitInMeters);1===a[0]&&1===a[1]&&1===a[2]||t(i,i,a)}_getLayerOpacity(){return this._context.layerViewInfo.fullOpacity}}function P(e){return e?C.None:C.Back}const I=a(),j=r(),T=r();export{w as ObjectSymbolLayerRenderer};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ class e{constructor(e,o){this._loaded=!1,this._loadingPromise=null,this._context=null,this._symbol=null,this._symbolLayerRenderers=[],this._context=o,this._symbol=e}_destroy(){}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const{_context:e,_symbol:o,_symbolLayerRenderers:t}=this,s=[];for(const a of o.symbolLayers){const o=e.symbolRendererFactory.createSymbolRendererFromSymbolLayer(a);null!=o&&(s.push(o.load()),t.push(o))}await Promise.all(s),this._loaded=!0}async createDestroyCommand(){const{_context:e,_symbolLayerRenderers:o}=this,t=[];for(const a of o)t.push(a.createDestroyCommand());const s=e.joinPipelineCommands(await Promise.all(t));return s.appendPipelineStateCommand((()=>this._destroy())),s}async createAddCommand(e){const{_context:o,_symbolLayerRenderers:t}=this,s=[];for(const a of t)s.push(a.createAddCommand(e));return o.joinPipelineCommands(await Promise.all(s))}async createRemoveCommand(e){const{_context:o,_symbolLayerRenderers:t}=this,s=[];for(const a of t)s.push(a.createRemoveCommand(e));return o.joinPipelineCommands(await Promise.all(s))}async createUpdateVisibilityCommand(e){const{_context:o,_symbolLayerRenderers:t}=this,s=[];for(const a of t)s.push(a.createUpdateVisibilityCommand(e));return o.joinPipelineCommands(await Promise.all(s))}async createUpdateLayerViewOpacityCommand(e){const{_context:o,_symbolLayerRenderers:t}=this,s=[];for(const a of t)s.push(a.createUpdateLayerViewOpacityCommand(e));return o.joinPipelineCommands(await Promise.all(s))}async createUpdateElevationCommand(e){const{_context:o,_symbolLayerRenderers:t}=this,s=[];for(const a of t)s.push(a.createUpdateElevationCommand(e));return o.joinPipelineCommands(await Promise.all(s))}}export{e as Point3DSymbolRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{TestSymbol as t}from"./TestSymbol.js";class e{constructor(t){this._symbol=null,this._featureData=new Map,this._context=t}async load(){this._symbol=new t(this._context)}async createAddCommand(t){const e=this._context,a=await this._provisionSymbol(),n=null==a?e.createPipelineCommand():await a.createAddCommand(t);return n.appendPipelineStateCommand((()=>this._featureData.set(t.id,t))),n}async createRemoveCommand(t){const e=this._context,a=await this._provisionSymbol(),n=null==a?e.createPipelineCommand():await a.createRemoveCommand(t);return n.appendPipelineStateCommand((()=>this._featureData.delete(t))),n}async createUpdateVisibilityCommand(t){const e=this._context,a=await this._provisionSymbol();return null==a?e.createPipelineCommand():await a.createUpdateVisibilityCommand(t)}async createUpdateLayerOpacityCommand(t){const e=this._context,a=await this._provisionSymbol();return null==a?e.createPipelineCommand():await a.createUpdateLayerOpacityCommand(t)}async createUpdateElevationCommand(){const{_featureData:t,_context:e}=this,a=await this._provisionSymbol();if(null==a)return e.createPipelineCommand();const n=[];for(const i of t.values())n.push(a.createUpdateElevationCommand(i));const o=await Promise.all(n);return e.joinPipelineCommands(o)}async createDestroyCommand(){const{_symbol:t,_context:e,_featureData:a}=this;if(!t)return e.createPipelineCommand();const n=[];for(const i of a.keys())n.push(this.createRemoveCommand(i));n.push(t.createDestroyCommand());const o=await Promise.all(n);return e.joinPipelineCommands(o)}async _provisionSymbol(){const t=this._symbol;return t?(t.loaded||await t.load(),t):null}}export{e as SimpleFeatureRenderer};
5
+ class e{constructor(e,t){this._symbol=null,this._featureData=new Map,this._loaded=!1,this._loadingPromise=null,this._renderer=null,this._context=t,this._renderer=e}async load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const{_renderer:e,_context:t}=this;this._symbol=t.symbolRendererFactory.createSymbolRendererFromSymbol(e.symbol),this._loaded=!0}get loaded(){return this._loaded}async createAddCommand(e){const t=this._context,a=await this._provisionSymbol(),n=null==a?t.createPipelineCommand():await a.createAddCommand(e);return n.appendPipelineStateCommand((()=>this._featureData.set(e.id,e))),n}async createRemoveCommand(e){const t=this._context,a=await this._provisionSymbol(),n=null==a?t.createPipelineCommand():await a.createRemoveCommand(e);return n.appendPipelineStateCommand((()=>this._featureData.delete(e))),n}async createUpdateVisibilityCommand(e){const t=this._context,a=await this._provisionSymbol();return null==a?t.createPipelineCommand():await a.createUpdateVisibilityCommand(e)}async createUpdateLayerViewOpacityCommand(e){const t=this._context,a=await this._provisionSymbol();return null==a?t.createPipelineCommand():await a.createUpdateLayerViewOpacityCommand(e)}async createUpdateElevationCommand(){const{_featureData:e,_context:t}=this,a=await this._provisionSymbol();if(null==a)return t.createPipelineCommand();const n=[];for(const i of e.values())n.push(a.createUpdateElevationCommand(i));const o=await Promise.all(n);return t.joinPipelineCommands(o)}async createDestroyCommand(){const{_symbol:e,_context:t,_featureData:a}=this;if(!e)return t.createPipelineCommand();const n=[];for(const i of a.keys())n.push(this.createRemoveCommand(i));n.push(e.createDestroyCommand());const o=await Promise.all(n);return t.joinPipelineCommands(o)}async _provisionSymbol(){const e=this._symbol;return e?(e.loaded||await e.load(),e):null}}export{e as SimpleFeatureRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{PipelineCommand as t}from"../PipelineCommand.js";import{readObjectIds as e}from"../featureData/processingUtils.js";import{TestObjectSymbol as n}from"./TestObjectSymbol.js";import{TestSymbol as a}from"./TestSymbol.js";class o{constructor(t){this._symbols=new Array,this._featureDataPartitioning=new Map,this._context=t}async load(){this._symbols[0]=new a(this._context),this._symbols[1]=new n(this._context)}async createAddCommand(t){const e=this._context,n=this._partition(t),a=await Promise.all(n.map((async({index:t,features:e})=>{const n=await this._provisionSymbol(t);return await(n?.createAddCommand(e))}))),o=e.joinPipelineCommands(a);return o.appendPipelineStateCommand((()=>this._featureDataPartitioning.set(t.id,n))),o}async createRemoveCommand(e){const{_featureDataPartitioning:n,_context:a}=this,o=a.renderCommandContext,s=n.get(e);if(null==s)return new t(o,o.createRenderCommandBuffer(),[]);const i=await Promise.all(s.map((async({index:t,features:e})=>{const n=this._getLoadedSymbol(t);return await(n?.createRemoveCommand(e.id))}))),r=a.joinPipelineCommands(i);return r.appendPipelineStateCommand((()=>n.delete(e))),r}async createUpdateVisibilityCommand(e){const{_featureDataPartitioning:n,_context:a}=this,o=a.renderCommandContext,s=n.get(e.id);if(null==s)return new t(o,o.createRenderCommandBuffer(),[]);const i=await Promise.all(s.map((async({index:t,features:e})=>{const n=this._getLoadedSymbol(t);return await(n?.createUpdateVisibilityCommand(e))})));return a.joinPipelineCommands(i)}async createUpdateLayerOpacityCommand(t){const e=this._context,n=[];for(let o=0;o<this._symbols.length;++o){const e=this._symbols[o];null!=e&&e.loaded&&n.push(e.createUpdateLayerOpacityCommand(t))}const a=await Promise.all(n);return e.joinPipelineCommands(a)}async createUpdateElevationCommand(){const{_featureDataPartitioning:t,_context:e}=this,n=[];for(const o of t.values()){const t=o.map((async({index:t,features:e})=>{const n=this._getLoadedSymbol(t);return await(n?.createUpdateElevationCommand(e))}));n.push(...t)}const a=await Promise.all(n);return e.joinPipelineCommands(a)}async createDestroyCommand(){const{_featureDataPartitioning:t,_context:e}=this,n=[];for(const o of t.keys())n.push(this.createRemoveCommand(o));for(const o of this._symbols)n.push(o.createDestroyCommand());const a=await Promise.all(n);return e.joinPipelineCommands(a)}async _provisionSymbol(t){if(null==t)return null;const e=this._symbols[t];return e?(e.loaded||await e.load(),e):null}_getLoadedSymbol(t){if(null==t)return null;const e=this._symbols[t];return null!=e&&e.loaded?e:null}_partition(t){const n=e(t);if(null==n)throw new Error("unable to fetch objectIds");const{featureCount:a}=t,o=[[],[]];for(let e=0;e<a;++e){o[n[e]%2].push(e)}return o.map(((e,n)=>new s(n,t.subset(new Uint32Array(e))))).filter((t=>t.features.featureCount>0))}}class s{constructor(t,e){this.index=t,this.features=e}}export{o as UniqueValueFeatureRenderer};
5
+ import{PipelineCommand as t}from"../PipelineCommand.js";import{readObjectIds as e}from"../featureData/processingUtils.js";import{createDefaultIconSymbolLayer as n,createDefaultObjectSymbolLayer as a}from"./factoryUtils.js";import{IconSymbolLayerRenderer as o}from"./IconSymbolLayerRenderer.js";import{ObjectSymbolLayerRenderer as i}from"./ObjectSymbolLayerRenderer.js";class s{constructor(t,e){this._symbols=new Array,this._featureDataPartitioning=new Map,this._loaded=!1,this._loadingPromise=null,this._renderer=null,this._context=e,this._renderer=t}async load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){this._symbols[0]=new o(n(),this._context),this._symbols[1]=new i(a(),this._context),this._loaded=!0}get loaded(){return this._loaded}async createAddCommand(t){const e=this._context,n=this._partition(t),a=await Promise.all(n.map((async({index:t,features:e})=>{const n=await this._provisionSymbol(t);return await(n?.createAddCommand(e))}))),o=e.joinPipelineCommands(a);return o.appendPipelineStateCommand((()=>this._featureDataPartitioning.set(t.id,n))),o}async createRemoveCommand(e){const{_featureDataPartitioning:n,_context:a}=this,o=a.renderCommandContext,i=n.get(e);if(null==i)return new t(o,o.createRenderCommandBuffer(),[]);const s=await Promise.all(i.map((async({index:t,features:e})=>{const n=this._getLoadedSymbol(t);return await(n?.createRemoveCommand(e.id))}))),r=a.joinPipelineCommands(s);return r.appendPipelineStateCommand((()=>n.delete(e))),r}async createUpdateVisibilityCommand(e){const{_featureDataPartitioning:n,_context:a}=this,o=a.renderCommandContext,i=n.get(e.id);if(null==i)return new t(o,o.createRenderCommandBuffer(),[]);const s=await Promise.all(i.map((async({index:t,features:e})=>{const n=this._getLoadedSymbol(t);return await(n?.createUpdateVisibilityCommand(e))})));return a.joinPipelineCommands(s)}async createUpdateLayerViewOpacityCommand(t){const e=this._context,n=[];for(let o=0;o<this._symbols.length;++o){const e=this._symbols[o];null!=e&&e.loaded&&n.push(e.createUpdateLayerViewOpacityCommand(t))}const a=await Promise.all(n);return e.joinPipelineCommands(a)}async createUpdateElevationCommand(){const{_featureDataPartitioning:t,_context:e}=this,n=[];for(const o of t.values()){const t=o.map((async({index:t,features:e})=>{const n=this._getLoadedSymbol(t);return await(n?.createUpdateElevationCommand(e))}));n.push(...t)}const a=await Promise.all(n);return e.joinPipelineCommands(a)}async createDestroyCommand(){const{_featureDataPartitioning:t,_context:e}=this,n=[];for(const o of t.keys())n.push(this.createRemoveCommand(o));for(const o of this._symbols)n.push(o.createDestroyCommand());const a=await Promise.all(n);return e.joinPipelineCommands(a)}async _provisionSymbol(t){if(null==t)return null;const e=this._symbols[t];return e?(e.loaded||await e.load(),e):null}_getLoadedSymbol(t){if(null==t)return null;const e=this._symbols[t];return null!=e&&e.loaded?e:null}_partition(t){const n=e(t);if(null==n)throw new Error("unable to fetch objectIds");const{featureCount:a}=t,o=[[],[]];for(let e=0;e<a;++e){o[n[e]%2].push(e)}return o.map(((e,n)=>new r(n,t.subset(new Uint32Array(e))))).filter((t=>t.features.featureCount>0))}}class r{constructor(t,e){this.index=t,this.features=e}}export{s as UniqueValueFeatureRenderer};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import o from"../../../../../../Color.js";import r from"../../../../../../symbols/IconSymbol3DLayer.js";import m from"../../../../../../symbols/ObjectSymbol3DLayer.js";import{Symbol3DMaterial as e}from"../../../../../../symbols/support/Symbol3DMaterial.js";function t(){return new r({material:new e({color:new o("red")})})}function n(){return new m}export{t as createDefaultIconSymbolLayer,n as createDefaultObjectSymbolLayer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../../../core/has.js";import{inputAttributesToAttributesMap as e}from"./symbolizationUtils.js";import{cloneAttributeData as t}from"../../../../webgl-engine/lib/AttributeArray.js";import{createConeGeometryData as n}from"../../../../webgl-engine/lib/GeometryUtil.js";import{VertexAttribute as i}from"../../../../webgl-engine/lib/VertexAttribute.js";function r(t,i){const r=(t,n,r=!1)=>({levels:t.map((t=>{const s=e(n(t.tesselation));r&&a(s);return{components:[{attributes:s,objectAndLayerIdColor:void 0,transformation:null,materialId:i,visibilities:new Uint8Array([1]),objectIds:new Uint32Array([-1])}],minScreenSpaceRadius:t.minScreenSpaceRadius}}))});switch(t){case"cone":return r(o,(e=>n(1,.5,e,!1)),!0);case"sphere":case"cube":case"inverted-cone":case"cylinder":case"tetrahedron":case"diamond":throw new Error("not implemented");default:return}}function a(e){const t=e,n=t.get(i.POSITION).data,r=t.get(i.NORMAL).data;if(r){const t=s(e,i.NORMAL).data;for(let e=0;e<r.length;e+=3){const n=r[e+1];t[e+1]=-r[e+2],t[e+2]=n}}if(n){const t=s(e,i.POSITION).data;for(let e=0;e<n.length;e+=3){const i=n[e+1];t[e+1]=-n[e+2],t[e+2]=i}}}function s(e,n){let i=e.get(n);return i&&!i.exclusive&&(i={...i,exclusive:!0,data:t(i.data)},e.set(n,i)),i}const o=[{tesselation:6,minScreenSpaceRadius:0},{tesselation:18,minScreenSpaceRadius:7},{tesselation:64,minScreenSpaceRadius:65}];export{r as createPrimitiveGeometry};
5
+ import"../../../../../../core/has.js";import{inputAttributesToAttributesMap as e}from"./symbolizationUtils.js";import{cloneAttributeData as t}from"../../../../webgl-engine/lib/AttributeArray.js";import{createPolySphereData as n,createConeGeometryData as i}from"../../../../webgl-engine/lib/GeometryUtil.js";import{VertexAttribute as a}from"../../../../webgl-engine/lib/VertexAttribute.js";function s(t,a){const s=(t,n,i=!1)=>({levels:t.map((t=>{const s=e(n(t.tesselation));i&&r(s);return{components:[{attributes:s,objectAndLayerIdColor:void 0,transformation:null,materialId:a,visibilities:new Uint8Array([1]),objectIds:new Uint32Array([-1])}],minScreenSpaceRadius:t.minScreenSpaceRadius}}))});switch(t){case"cone":return s(c,(e=>i(1,.5,e,!1)),!0);case"sphere":return s([{tesselation:0,minScreenSpaceRadius:0},{tesselation:1,minScreenSpaceRadius:8},{tesselation:2,minScreenSpaceRadius:16},{tesselation:3,minScreenSpaceRadius:50},{tesselation:4,minScreenSpaceRadius:250}],(e=>n(.5,e,!0)));case"cube":case"inverted-cone":case"cylinder":case"tetrahedron":case"diamond":throw new Error("not implemented");default:return}}function r(e){const t=e,n=t.get(a.POSITION).data,i=t.get(a.NORMAL).data;if(i){const t=o(e,a.NORMAL).data;for(let e=0;e<i.length;e+=3){const n=i[e+1];t[e+1]=-i[e+2],t[e+2]=n}}if(n){const t=o(e,a.POSITION).data;for(let e=0;e<n.length;e+=3){const i=n[e+1];t[e+1]=-n[e+2],t[e+2]=i}}}function o(e,n){let i=e.get(n);return i&&!i.exclusive&&(i={...i,exclusive:!0,data:t(i.data)},e.set(n,i)),i}const c=[{tesselation:6,minScreenSpaceRadius:0},{tesselation:18,minScreenSpaceRadius:7},{tesselation:64,minScreenSpaceRadius:65}];export{s as createPrimitiveGeometry};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../../chunks/tslib.es6.js";import{invert as t,transpose as r}from"../../../../../../core/libs/gl-matrix-2/math/mat3.js";import{clone as o}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{p as s,I as i}from"../../../../../../chunks/vec32.js";import{freeze as a,ZEROS as l}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{v as n}from"../../../../../../chunks/vec42.js";import{freeze as h,fromValues as u}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{EmissiveSourceMode as p}from"../../../../../../symbols/support/materialUtils.js";import{ColorMixModeEnum as c}from"../../../../layers/support/symbolColorUtils.js";import{OverlayContent as d}from"../../../../terrain/OverlayContent.js";import{ComponentTechnique as m}from"./ComponentTechnique.js";import{ComponentTechniqueConfiguration as g,IntegratedMeshMode as f}from"./ComponentTechniqueConfiguration.js";import{ComponentDataType as x}from"./shader/ComponentData.glsl.js";import{VertexDiscardMode as v}from"./shader/VertexDiscardMode.js";import{MaterialBase as b,parameter as M,parameterBlock as y,MaterialParameterBlock as T}from"../../../core/material/MaterialBase.js";import{RenderPassIdentifier as w}from"../../../core/renderPasses/RenderPassIdentifier.js";import{ShaderOutput as O,isColorEmission as C}from"../../../core/shaderLibrary/ShaderOutput.js";import{NormalType as S}from"../../../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{EmissionSource as N}from"../../../core/shaderLibrary/output/Emissions.glsl.js";import{NormalsDoubleSidedMode as P}from"../../../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as j}from"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{EllipsoidMode as D}from"../../../core/shaderLibrary/util/EllipsoidMode.js";import{TwoVectorPosition as A}from"../../../core/util/TwoVectorPosition.js";import{AlphaDiscardMode as q,CullFaceOptions as R}from"../../../lib/basicInterfaces.js";import{OITPass as I}from"../../../lib/OITPass.js";import{advancedMRRFactors as E}from"../../../materials/pbrUtils.js";import{defaultHighlightName as F}from"../../../../../support/HighlightDefaults.js";import{alphaCutoff as B}from"../../../../../../webscene/support/AlphaCutoff.js";class W extends b{constructor(e,s){super(),this.toMapSpace=s,this.baseColor=h(1,1,1,1),this.usePBR=!1,this.hasParametersFromSource=!1,this.mrrFactors=E,this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.normalTexture=null,this.occlusionTexture=null,this.emissionTexture=null,this.emissiveBaseColor=a(0,0,0),this.emissiveStrength=1,this.emissiveSource=p.Emissive,this.commonMaterialParameters=new H,this.componentParameters=new V,this.objectOpacity=1,this.textureAlphaCutoff=B,this.alphaDiscardMode=q.Opaque,this.isIntegratedMesh=!1,this.polygonOffsetEnabled=!1,this.ellipsoidMode=D.Earth,this.hasOccludees=!1;const i=new A(e.position),l=o(e.rotationScale);t(l,l),r(l,l),this.transformNormalGlobalFromModel=l,this.transformWorldFromModelTL=i.low,this.transformWorldFromModelTH=i.high,this.transformWorldFromModelRS=e.rotationScale}dispose(){this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.emissionTexture=null,this.occlusionTexture=null,this.normalTexture=null}get hasEmissions(){return null!=this.emissionTexture||!s(this.emissiveBaseColor,l)}get texture(){return this.baseColorTexture?.glTexture}get textureMetallicRoughness(){return this.metallicRoughnessTexture?.glTexture}get textureEmissive(){return this.emissionTexture?.glTexture}get textureOcclusion(){return this.occlusionTexture?.glTexture}get textureNormal(){return this.normalTexture?.glTexture}acquireTechnique(e,t,r,o){const s=new g(e.context.spherical);s.hasVertexColors=o.colors,s.hasNormals=o.hasNormals,s.textureCoordinateType=o.textureCoordinates,s.hasMetallicRoughnessTexture=null!=this.metallicRoughnessTexture,s.hasOcclusionTexture=null!=this.occlusionTexture,s.hasNormalTexture=null!=this.normalTexture,s.oitPass=t.identifier===w.Material&&null!=r.oitPass?r.oitPass:I.NONE,s.terrainDepthTest=t.identifier===w.Material&&r.terrainDepthTest,s.cullAboveTerrain=t.identifier===w.Material&&r.cullAboveTerrain,s.ellipsoidMode=this.ellipsoidMode,s.componentData=this.componentParameters.type,s.cullFace=this.commonMaterialParameters.cullFace,s.doubleSidedMode=this.commonMaterialParameters.doubleSided?P.View:P.None,s.hasColorTexture=null!=this.baseColorTexture;const i=this._computeWhichMaterialPass();if(s.blendingEnabled=i===k.Transparent||i===k.OpaqueAndTransparent,s.alphaDiscardMode=this.alphaDiscardMode,s.integratedMeshMode=this.isIntegratedMesh?G(r)?z(r)?f.ColorOverlayWithWater:f.ColorOverlay:f.NoOverlay:f.None,s.hasPolygonOffset=this.polygonOffsetEnabled,s.pbrMode=s.integratedMeshMode===f.ColorOverlayWithWater?j.WaterOnIntegratedMesh:this.usePBR?this.hasParametersFromSource?o.shadeNormals&&this.isIntegratedMesh?j.Disabled:j.Schematic:j.Normal:j.Disabled,s.emissionSource=this.hasEmissions?null!=this.emissionTexture?N.Texture:s.pbrMode===j.Normal?N.SymbolColor:N.None:N.None,s.shadeNormals=o.shadeNormals,s.normalType=s.hasNormals?S.Compressed:S.ScreenDerivative,s.hasSlicePlane=null!=r.slicePlane&&this.commonMaterialParameters.hasSlicePlane,s.receiveAmbientOcclusion=s.hasOccludees=s.receiveShadows=s.screenSpaceReflections=s.cloudReflections=s.hasHighlightMixTexture=!1,t.identifier===w.ShadowMap)s.output=O.Shadow,s.vertexDiscardMode=v.None;else if(t.identifier===w.ViewshedShadowMap)s.output=O.ViewshedShadow,s.vertexDiscardMode=v.None;else if(t.identifier===w.Highlight)s.output=O.Highlight,s.vertexDiscardMode=v.None,s.hasHighlightMixTexture=null!=r.highlightMixTexture;else{switch(i===k.OpaqueAndTransparent?s.vertexDiscardMode=t.transparent?v.Opaque:v.Transparent:s.vertexDiscardMode=v.None,s.hasBloom=C(t.output),s.output=t.output,t.output){case O.Color:case O.ColorEmission:s.receiveAmbientOcclusion=o.applySSAO&&null!=r.ssao?.getTexture(),s.hasOccludees=r.hasOccludees,s.receiveShadows=r.shadowMap.ready,s.screenSpaceReflections=null!=r.ssr.lastFrameColor,s.cloudReflections=null!=r.clouds.data?.cubeMap?.colorTexture;break;case O.ObjectAndLayerIdColor:s.objectAndLayerIdColor=!0}s.snowCover=this.hasSnowCover(r)}const a=e.get(m,s);return this._setClean(),a}hasSnowCover(e){return null!=e.weather&&e.weatherVisible&&"snowy"===e.weather.type&&"enabled"===e.weather.snowCover}submit(e,t,r){if(this.objectOpacity<=0)return;const{componentData:o,renderable:s}=r,{geometry:i}=s,a=s.meta.cameraDepthSquared;o.updateHighlights(t.highlights);const{geometryRanges:l,highlightRangesMap:n,shadowmapRanges:h}=o;switch(this._computeWhichMaterialPass()){case k.Opaque:e.opaque.submitDraw(this,i,l,a);break;case k.Transparent:e.transparent.submitDraw(this,i,l,a);break;case k.OpaqueAndTransparent:e.opaque.submitDraw(this,i,l,a),e.transparent.submitDraw(this,i,l,a);break;case k.IntegratedMesh:e.integratedMesh.submitDraw(this,i,l,a),U(t)&&e.highlightIntegratedMesh.submitDraw(this,i,l,a)}if(this.componentParameters.castShadows!==L.None){if(null!=n)for(const t of n)t[0]===F&&e.highlightShadowMap.submitDraw(this,i,t[1],a,t[0]);null!=h&&e.defaultShadowMap.submitDraw(this,i,h,a),e.shadowMap.submitDraw(this,i,l,a)}if(null!=n)for(const u of n)e.highlight.submitDraw(this,i,u[1],a,u[0]);t.viewshedEnabled&&e.viewshedShadowMap.submitDraw(this,i,l,a)}_computeWhichMaterialPass(){if(this.isIntegratedMesh)return k.IntegratedMesh;if(this.objectOpacity<1)return k.Transparent;if(this.componentParameters.opaqueOverride===L.All)return k.Opaque;if(this.baseColor[3]<1||this.alphaDiscardMode===q.Blend||this.alphaDiscardMode===q.MaskBlend)return k.Transparent;switch(this.componentParameters.transparent){case L.None:return k.Opaque;case L.All:return k.Transparent;case L.Some:return k.OpaqueAndTransparent}}}var k,L;e([M({vectorOps:n})],W.prototype,"baseColor",void 0),e([M()],W.prototype,"usePBR",void 0),e([M()],W.prototype,"hasParametersFromSource",void 0),e([M({vectorOps:i})],W.prototype,"mrrFactors",void 0),e([M({dispose:!0})],W.prototype,"baseColorTexture",void 0),e([M({dispose:!0})],W.prototype,"metallicRoughnessTexture",void 0),e([M({dispose:!0})],W.prototype,"normalTexture",void 0),e([M({dispose:!0})],W.prototype,"occlusionTexture",void 0),e([M({dispose:!0})],W.prototype,"emissionTexture",void 0),e([M({vectorOps:i})],W.prototype,"emissiveBaseColor",void 0),e([M()],W.prototype,"emissiveStrength",void 0),e([M()],W.prototype,"emissiveSource",void 0),e([y()],W.prototype,"commonMaterialParameters",void 0),e([y()],W.prototype,"componentParameters",void 0),e([M()],W.prototype,"objectOpacity",void 0),e([M()],W.prototype,"textureAlphaCutoff",void 0),e([M()],W.prototype,"alphaDiscardMode",void 0),e([M()],W.prototype,"isIntegratedMesh",void 0),e([M()],W.prototype,"polygonOffsetEnabled",void 0),e([M()],W.prototype,"ellipsoidMode",void 0),e([M()],W.prototype,"hasOccludees",void 0),function(e){e[e.Opaque=0]="Opaque",e[e.Transparent=1]="Transparent",e[e.OpaqueAndTransparent=2]="OpaqueAndTransparent",e[e.IntegratedMesh=3]="IntegratedMesh"}(k||(k={}));class H extends T{constructor(){super(...arguments),this.doubleSided=!1,this.cullFace=R.Back,this.hasSlicePlane=!0}}e([M()],H.prototype,"doubleSided",void 0),e([M()],H.prototype,"cullFace",void 0),e([M()],H.prototype,"hasSlicePlane",void 0);class V extends T{constructor(){super(...arguments),this.externalColor=u(1,1,1,1),this.externalColorMixMode=c.Multiply,this.castShadows=L.All}get transparent(){return this.externalColor[3]<1?L.All:L.None}get opaqueOverride(){return this.externalColorMixMode===c.Replace&&1===this.externalColor[3]?L.All:L.None}get visible(){return this.externalColor[3]>0?L.All:L.None}get type(){return x.Uniform}}e([M({vectorOps:n})],V.prototype,"externalColor",void 0),e([M()],V.prototype,"externalColorMixMode",void 0),e([M()],V.prototype,"castShadows",void 0),function(e){e[e.All=0]="All",e[e.Some=1]="Some",e[e.None=2]="None"}(L||(L={}));class _ extends T{constructor(){super(...arguments),this.texture=null,this.transparent=L.None,this.opaqueOverride=L.None,this.castShadows=L.None}get type(){return x.Varying}}function U(e){return null!=e.overlay?.getTexture(d.Highlight)}function z(e){return null!=e.overlay?.getTexture(d.WaterNormal)}function G(e){return null!=e.overlay?.getTexture(d.ColorNoRasterImage)}e([M()],_.prototype,"texture",void 0),e([M()],_.prototype,"transparent",void 0),e([M()],_.prototype,"opaqueOverride",void 0),e([M()],_.prototype,"castShadows",void 0);export{H as CommonMaterialParameters,W as ComponentMaterial,L as ComponentParameterSummary,V as ComponentParametersUniform,_ as ComponentParametersVarying};
5
+ import{_ as e}from"../../../../../../chunks/tslib.es6.js";import{invert as t,transpose as r}from"../../../../../../core/libs/gl-matrix-2/math/mat3.js";import{clone as o}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{p as s,I as i}from"../../../../../../chunks/vec32.js";import{freeze as a,ZEROS as l}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{v as n}from"../../../../../../chunks/vec42.js";import{freeze as h,fromValues as u}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{EmissiveSourceMode as p}from"../../../../../../symbols/support/materialUtils.js";import{ColorMixModeEnum as c}from"../../../../layers/support/symbolColorUtils.js";import{OverlayContent as d}from"../../../../terrain/OverlayContent.js";import{ComponentTechnique as m}from"./ComponentTechnique.js";import{ComponentTechniqueConfiguration as g,IntegratedMeshMode as f}from"./ComponentTechniqueConfiguration.js";import{ComponentDataType as x}from"./shader/ComponentData.glsl.js";import{VertexDiscardMode as v}from"./shader/VertexDiscardMode.js";import{MaterialBase as M,parameter as b,parameterBlock as y,MaterialParameterBlock as T}from"../../../core/material/MaterialBase.js";import{RenderPassIdentifier as O}from"../../../core/renderPasses/RenderPassIdentifier.js";import{ShaderOutput as C,isColorEmission as S}from"../../../core/shaderLibrary/ShaderOutput.js";import{NormalType as w}from"../../../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{EmissionSource as N}from"../../../core/shaderLibrary/output/Emissions.glsl.js";import{NormalsDoubleSidedMode as P}from"../../../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as j}from"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{EllipsoidMode as D}from"../../../core/shaderLibrary/util/EllipsoidMode.js";import{TwoVectorPosition as A}from"../../../core/util/TwoVectorPosition.js";import{AlphaDiscardMode as q,CullFaceOptions as R}from"../../../lib/basicInterfaces.js";import{OITPass as I}from"../../../lib/OITPass.js";import{advancedMRRFactors as E}from"../../../materials/pbrUtils.js";import{defaultHighlightName as F}from"../../../../../support/HighlightDefaults.js";import{alphaCutoff as B}from"../../../../../../webscene/support/AlphaCutoff.js";class W extends M{constructor(e,s){super(),this.toMapSpace=s,this.baseColor=h(1,1,1,1),this.usePBR=!1,this.hasParametersFromSource=!1,this.mrrFactors=E,this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.normalTexture=null,this.occlusionTexture=null,this.emissionTexture=null,this.emissiveBaseColor=a(0,0,0),this.emissiveStrength=1,this.emissiveSource=p.Emissive,this.commonMaterialParameters=new H,this.componentParameters=new V,this.objectOpacity=1,this.textureAlphaCutoff=B,this.alphaDiscardMode=q.Opaque,this.isIntegratedMesh=!1,this.polygonOffsetEnabled=!1,this.ellipsoidMode=D.Earth,this.hasOccludees=!1;const i=new A(e.position),l=o(e.rotationScale);t(l,l),r(l,l),this.transformNormalGlobalFromModel=l,this.transformWorldFromModelTL=i.low,this.transformWorldFromModelTH=i.high,this.transformWorldFromModelRS=e.rotationScale}dispose(){this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.emissionTexture=null,this.occlusionTexture=null,this.normalTexture=null}get hasEmissions(){return null!=this.emissionTexture||!s(this.emissiveBaseColor,l)}get texture(){return this.baseColorTexture?.glTexture}get textureMetallicRoughness(){return this.metallicRoughnessTexture?.glTexture}get textureEmissive(){return this.emissionTexture?.glTexture}get textureOcclusion(){return this.occlusionTexture?.glTexture}get textureNormal(){return this.normalTexture?.glTexture}acquireTechnique(e,t,r,o){const s=new g(e.context.spherical);s.hasVertexColors=o.colors,s.hasNormals=o.hasNormals,s.textureCoordinateType=o.textureCoordinates,s.hasMetallicRoughnessTexture=null!=this.metallicRoughnessTexture,s.hasOcclusionTexture=null!=this.occlusionTexture,s.hasNormalTexture=null!=this.normalTexture,s.oitPass=t.identifier===O.Material&&null!=r.oitPass?r.oitPass:I.NONE,s.terrainDepthTest=t.identifier===O.Material&&r.terrainDepthTest,s.cullAboveTerrain=t.identifier===O.Material&&r.cullAboveTerrain,s.ellipsoidMode=this.ellipsoidMode,s.componentData=this.componentParameters.type,s.cullFace=this.commonMaterialParameters.cullFace,s.doubleSidedMode=this.commonMaterialParameters.doubleSided?P.View:P.None,s.hasColorTexture=null!=this.baseColorTexture;const i=this._computeWhichMaterialPass();if(s.blendingEnabled=i===k.Transparent||i===k.OpaqueAndTransparent,s.alphaDiscardMode=this.alphaDiscardMode,s.integratedMeshMode=this.isIntegratedMesh?G(r)?z(r)?f.ColorOverlayWithWater:f.ColorOverlay:f.NoOverlay:f.None,s.hasPolygonOffset=this.polygonOffsetEnabled,s.pbrMode=s.integratedMeshMode===f.ColorOverlayWithWater?j.WaterOnIntegratedMesh:this.usePBR?this.hasParametersFromSource?o.shadeNormals&&this.isIntegratedMesh?j.Disabled:j.Schematic:j.Normal:j.Disabled,s.emissionSource=this.hasEmissions?null!=this.emissionTexture?N.Texture:s.pbrMode===j.Normal?N.SymbolColor:N.None:N.None,s.shadeNormals=o.shadeNormals,s.normalType=s.hasNormals?w.Compressed:w.ScreenDerivative,s.hasSlicePlane=null!=r.slicePlane&&this.commonMaterialParameters.hasSlicePlane,s.receiveAmbientOcclusion=s.hasOccludees=s.receiveShadows=s.screenSpaceReflections=s.cloudReflections=s.hasHighlightMixTexture=!1,t.identifier===O.ShadowMap)s.output=C.Shadow,s.vertexDiscardMode=v.None;else if(t.identifier===O.ViewshedShadowMap)s.output=C.ViewshedShadow,s.vertexDiscardMode=v.None;else if(t.identifier===O.Highlight)s.output=C.Highlight,s.vertexDiscardMode=v.None,s.hasHighlightMixTexture=null!=r.highlightMixTexture;else{switch(i===k.OpaqueAndTransparent?s.vertexDiscardMode=t.transparent?v.Opaque:v.Transparent:s.vertexDiscardMode=v.None,s.hasBloom=S(t.output),s.output=t.output,t.output){case C.Color:case C.ColorEmission:s.receiveAmbientOcclusion=o.applySSAO&&null!=r.ssao?.getTexture(),s.hasOccludees=r.hasOccludees,s.receiveShadows=r.shadowMap.ready,s.screenSpaceReflections=null!=r.ssr.lastFrameColor,s.cloudReflections=null!=r.clouds.data?.cubeMap?.colorTexture;break;case C.ObjectAndLayerIdColor:s.objectAndLayerIdColor=!0}s.snowCover=r.snowCover}const a=e.get(m,s);return this._setClean(),a}submit(e,t,r){if(this.objectOpacity<=0)return;const{componentData:o,renderable:s}=r,{geometry:i}=s,a=s.meta.cameraDepthSquared;o.updateHighlights(t.highlights);const{geometryRanges:l,highlightRangesMap:n,shadowmapRanges:h}=o;switch(this._computeWhichMaterialPass()){case k.Opaque:e.opaque.submitDraw(this,i,l,a);break;case k.Transparent:e.transparent.submitDraw(this,i,l,a);break;case k.OpaqueAndTransparent:e.opaque.submitDraw(this,i,l,a),e.transparent.submitDraw(this,i,l,a);break;case k.IntegratedMesh:e.integratedMesh.submitDraw(this,i,l,a),U(t)&&e.highlightIntegratedMesh.submitDraw(this,i,l,a)}if(this.componentParameters.castShadows!==L.None){if(null!=n)for(const t of n)t[0]===F&&e.highlightShadowMap.submitDraw(this,i,t[1],a,t[0]);null!=h&&e.defaultShadowMap.submitDraw(this,i,h,a),e.shadowMap.submitDraw(this,i,l,a)}if(null!=n)for(const u of n)e.highlight.submitDraw(this,i,u[1],a,u[0]);t.viewshedEnabled&&e.viewshedShadowMap.submitDraw(this,i,l,a)}_computeWhichMaterialPass(){if(this.isIntegratedMesh)return k.IntegratedMesh;if(this.objectOpacity<1)return k.Transparent;if(this.componentParameters.opaqueOverride===L.All)return k.Opaque;if(this.baseColor[3]<1||this.alphaDiscardMode===q.Blend||this.alphaDiscardMode===q.MaskBlend)return k.Transparent;switch(this.componentParameters.transparent){case L.None:return k.Opaque;case L.All:return k.Transparent;case L.Some:return k.OpaqueAndTransparent}}}var k,L;e([b({vectorOps:n})],W.prototype,"baseColor",void 0),e([b()],W.prototype,"usePBR",void 0),e([b()],W.prototype,"hasParametersFromSource",void 0),e([b({vectorOps:i})],W.prototype,"mrrFactors",void 0),e([b({dispose:!0})],W.prototype,"baseColorTexture",void 0),e([b({dispose:!0})],W.prototype,"metallicRoughnessTexture",void 0),e([b({dispose:!0})],W.prototype,"normalTexture",void 0),e([b({dispose:!0})],W.prototype,"occlusionTexture",void 0),e([b({dispose:!0})],W.prototype,"emissionTexture",void 0),e([b({vectorOps:i})],W.prototype,"emissiveBaseColor",void 0),e([b()],W.prototype,"emissiveStrength",void 0),e([b()],W.prototype,"emissiveSource",void 0),e([y()],W.prototype,"commonMaterialParameters",void 0),e([y()],W.prototype,"componentParameters",void 0),e([b()],W.prototype,"objectOpacity",void 0),e([b()],W.prototype,"textureAlphaCutoff",void 0),e([b()],W.prototype,"alphaDiscardMode",void 0),e([b()],W.prototype,"isIntegratedMesh",void 0),e([b()],W.prototype,"polygonOffsetEnabled",void 0),e([b()],W.prototype,"ellipsoidMode",void 0),e([b()],W.prototype,"hasOccludees",void 0),function(e){e[e.Opaque=0]="Opaque",e[e.Transparent=1]="Transparent",e[e.OpaqueAndTransparent=2]="OpaqueAndTransparent",e[e.IntegratedMesh=3]="IntegratedMesh"}(k||(k={}));class H extends T{constructor(){super(...arguments),this.doubleSided=!1,this.cullFace=R.Back,this.hasSlicePlane=!0}}e([b()],H.prototype,"doubleSided",void 0),e([b()],H.prototype,"cullFace",void 0),e([b()],H.prototype,"hasSlicePlane",void 0);class V extends T{constructor(){super(...arguments),this.externalColor=u(1,1,1,1),this.externalColorMixMode=c.Multiply,this.castShadows=L.All}get transparent(){return this.externalColor[3]<1?L.All:L.None}get opaqueOverride(){return this.externalColorMixMode===c.Replace&&1===this.externalColor[3]?L.All:L.None}get visible(){return this.externalColor[3]>0?L.All:L.None}get type(){return x.Uniform}}e([b({vectorOps:n})],V.prototype,"externalColor",void 0),e([b()],V.prototype,"externalColorMixMode",void 0),e([b()],V.prototype,"castShadows",void 0),function(e){e[e.All=0]="All",e[e.Some=1]="Some",e[e.None=2]="None"}(L||(L={}));class _ extends T{constructor(){super(...arguments),this.texture=null,this.transparent=L.None,this.opaqueOverride=L.None,this.castShadows=L.None}get type(){return x.Varying}}function U(e){return null!=e.overlay?.getTexture(d.Highlight)}function z(e){return null!=e.overlay?.getTexture(d.WaterNormal)}function G(e){return null!=e.overlay?.getTexture(d.ColorNoRasterImage)}e([b()],_.prototype,"texture",void 0),e([b()],_.prototype,"transparent",void 0),e([b()],_.prototype,"opaqueOverride",void 0),e([b()],_.prototype,"castShadows",void 0);export{H as CommonMaterialParameters,W as ComponentMaterial,L as ComponentParameterSummary,V as ComponentParametersUniform,_ as ComponentParametersVarying};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../../../../geometry/support/Ellipsoid.js";import"../../../../../terrain/OverlayContent.js";import"./ComponentData.glsl.js";import"./VertexDiscardMode.js";import"../../../../core/shaderLibrary/ForwardLinearDepth.glsl.js";import"../../../../core/shaderLibrary/ShaderOutput.js";import"../../../../core/shaderLibrary/Slice.glsl.js";import"../../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexColor.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexPosition.glsl.js";import"../../../../core/shaderLibrary/output/OutputDepth.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlightOverlay.js";import"../../../../core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../../../../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../../../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../../../../core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import"../../../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import"../../../../core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import"../../../../core/shaderLibrary/terrain/Overlay.glsl.js";import"../../../../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../../../../core/shaderLibrary/util/EllipsoidMode.js";import"../../../../core/shaderModules/glsl.js";import"../../../../core/shaderModules/Texture2DBindUniform.js";import"../../../../core/shaderModules/Texture2DPassUniform.js";import"../../../../shaders/OutputColorHighlightOID.glsl.js";import"../../../../../../webgl/ShaderBuilder.js";import"../../../../../../../webscene/support/AlphaCutoff.js";export{b as build}from"../../../../../../../chunks/ComponentShader.glsl.js";
5
+ import"../../../../../../../geometry/support/Ellipsoid.js";import"../../../../../terrain/OverlayContent.js";import"./ComponentData.glsl.js";import"./VertexDiscardMode.js";import"../../../../core/shaderLibrary/ForwardLinearDepth.glsl.js";import"../../../../core/shaderLibrary/ShaderOutput.js";import"../../../../core/shaderLibrary/Slice.glsl.js";import"../../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexColor.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexPosition.glsl.js";import"../../../../core/shaderLibrary/output/OutputDepth.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlightOverlay.js";import"../../../../core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../../../../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../../../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../../../../core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import"../../../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import"../../../../core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import"../../../../core/shaderLibrary/terrain/Overlay.glsl.js";import"../../../../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../../../../core/shaderLibrary/util/EllipsoidMode.js";import"../../../../core/shaderModules/glsl.js";import"../../../../core/shaderModules/Texture2DBindUniform.js";import"../../../../core/shaderModules/Texture2DPassUniform.js";import"../../../../effects/weather/SnowCover.glsl.js";import"../../../../shaders/OutputColorHighlightOID.glsl.js";import"../../../../../../webgl/ShaderBuilder.js";import"../../../../../../../webscene/support/AlphaCutoff.js";export{b as build}from"../../../../../../../chunks/ComponentShader.glsl.js";
@@ -2,11 +2,11 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as e}from"../../shaderModules/glsl.js";function t(t){const a=t.fragment.code;a.add(e`vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG) {
5
+ import{glsl as e}from"../../shaderModules/glsl.js";function t(t){t.code.add(e`vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG) {
6
6
  return ((1.0 - NdotNG) * ambientGround + (1.0 + NdotNG) * ambientSky) * 0.5;
7
- }`),a.add(e`float integratedRadiance(float cosTheta2, float roughness) {
7
+ }`),t.code.add(e`float integratedRadiance(float cosTheta2, float roughness) {
8
8
  return (cosTheta2 - 1.0) / (cosTheta2 * (1.0 - roughness * roughness) - 1.0);
9
- }`),a.add(e`vec3 evaluateSpecularIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float RdotNG, float roughness) {
9
+ }`),t.code.add(e`vec3 evaluateSpecularIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float RdotNG, float roughness) {
10
10
  float cosTheta2 = 1.0 - RdotNG * RdotNG;
11
11
  float intRadTheta = integratedRadiance(cosTheta2, roughness);
12
12
  float ground = RdotNG < 0.0 ? 1.0 - intRadTheta : 1.0 + intRadTheta;
@@ -2,11 +2,11 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as e}from"../../shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../../shaderModules/Texture2DBindUniform.js";import{blurSizePixels as r}from"../../../effects/ssao/SSAO.js";function t(t,o){const n=t.fragment;o.receiveAmbientOcclusion?(n.uniforms.add(new s("ssaoTex",(e=>e.ssao?.getTexture()))),n.constants.add("blurSizePixelsInverse","float",1/r),n.code.add(e`float evaluateAmbientOcclusionInverse() {
5
+ import{glsl as e}from"../../shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../../shaderModules/Texture2DBindUniform.js";import{blurSizePixels as r}from"../../../effects/ssao/SSAO.js";function t(t,o){o.receiveAmbientOcclusion?(t.uniforms.add(new s("ssaoTex",(e=>e.ssao?.getTexture()))),t.constants.add("blurSizePixelsInverse","float",1/r),t.code.add(e`float evaluateAmbientOcclusionInverse() {
6
6
  vec2 ssaoTextureSizeInverse = 1.0 / vec2(textureSize(ssaoTex, 0));
7
7
  return texture(ssaoTex, gl_FragCoord.xy * blurSizePixelsInverse * ssaoTextureSizeInverse).r;
8
8
  }
9
9
  float evaluateAmbientOcclusion() {
10
10
  return 1.0 - evaluateAmbientOcclusionInverse();
11
- }`)):n.code.add(e`float evaluateAmbientOcclusionInverse() { return 1.0; }
11
+ }`)):t.code.add(e`float evaluateAmbientOcclusionInverse() { return 1.0; }
12
12
  float evaluateAmbientOcclusion() { return 0.0; }`)}export{t as EvaluateAmbientOcclusion};
@@ -2,19 +2,19 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{colorGamma as i}from"../../../../../../colorUtils.js";import"../../../../../../core/has.js";import{EvaluateAmbientLighting as n}from"./EvaluateAmbientLighting.glsl.js";import{EvaluateAmbientOcclusion as e}from"./EvaluateAmbientOcclusion.glsl.js";import{addMainLightDirection as o,addMainLightIntensity as t,applyShading as a}from"./MainLighting.glsl.js";import{PhysicallyBasedRendering as r}from"./PhysicallyBasedRendering.glsl.js";import{PBRMode as l}from"./PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as c}from"./PiUtils.glsl.js";import{BooleanBindUniform as d}from"../../shaderModules/BooleanBindUniform.js";import{FloatBindUniform as s}from"../../shaderModules/FloatBindUniform.js";import{glsl as m,If as g}from"../../shaderModules/glsl.js";import{ambientBoost as h}from"../../../lighting/SceneLighting.js";import{BlackLevelLightSoftCompression as u}from"../../../shaders/BlackLevelLightSoftCompression.glsl.js";function p(i){i.constants.add("ambientBoostFactor","float",h)}function v(i){i.uniforms.add(new s("lightingGlobalFactor",(i=>i.lighting.globalFactor)))}function f(h,f){const L=h.fragment,{pbrMode:b,spherical:C,hasColorTexture:R}=f;h.include(e,f),b!==l.Disabled&&h.include(r,f),h.include(n,f),h.include(c);const G=!(b===l.Schematic&&!R);switch(G&&L.include(u),L.code.add(m`
5
+ import{colorGamma as i}from"../../../../../../colorUtils.js";import"../../../../../../core/has.js";import{EvaluateAmbientLighting as n}from"./EvaluateAmbientLighting.glsl.js";import{EvaluateAmbientOcclusion as e}from"./EvaluateAmbientOcclusion.glsl.js";import{addMainLightDirection as o,addMainLightIntensity as t,applyShading as a}from"./MainLighting.glsl.js";import{PhysicallyBasedRendering as r}from"./PhysicallyBasedRendering.glsl.js";import{PBRMode as l}from"./PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as c}from"./PiUtils.glsl.js";import{BooleanBindUniform as d}from"../../shaderModules/BooleanBindUniform.js";import{FloatBindUniform as s}from"../../shaderModules/FloatBindUniform.js";import{glsl as m,If as g}from"../../shaderModules/glsl.js";import{ambientBoost as h}from"../../../lighting/SceneLighting.js";import{BlackLevelLightSoftCompression as u}from"../../../shaders/BlackLevelLightSoftCompression.glsl.js";import{ToneMapping as p}from"../../../shaders/ToneMapping.glsl.js";function v(i){i.constants.add("ambientBoostFactor","float",h)}function f(i){i.uniforms.add(new s("lightingGlobalFactor",(i=>i.lighting.globalFactor)))}function L(h,L){const b=h.fragment,{pbrMode:C,spherical:N,hasColorTexture:R}=L;b.include(e,L),C!==l.Disabled&&b.include(r,L),h.include(n,L),b.include(c),b.include(p,L);const D=!(C===l.Schematic&&!R);switch(D&&b.include(u),b.code.add(m`
6
6
  const float GAMMA_SRGB = ${m.float(i)};
7
7
  const float INV_GAMMA_SRGB = 0.4761904;
8
- ${g(b!==l.Disabled,"const float GROUND_REFLECTANCE = 0.2;")}
9
- `),p(L),v(L),o(L),L.code.add(m`
8
+ ${g(C!==l.Disabled,"const float GROUND_REFLECTANCE = 0.2;")}
9
+ `),v(b),f(b),o(b),b.code.add(m`
10
10
  float additionalDirectedAmbientLight(vec3 vPosWorld) {
11
- float vndl = dot(${C?m`normalize(vPosWorld)`:m`vec3(0.0, 0.0, 1.0)`}, mainLightDirection);
11
+ float vndl = dot(${N?m`normalize(vPosWorld)`:m`vec3(0.0, 0.0, 1.0)`}, mainLightDirection);
12
12
  return smoothstep(0.0, 1.0, clamp(vndl * 2.5, 0.0, 1.0));
13
13
  }
14
- `),t(L),L.code.add(m`vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {
14
+ `),t(b),b.code.add(m`vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {
15
15
  float additionalAmbientScale = additionalDirectedAmbientLight(vPosWorld);
16
16
  return (1.0 - ambientOcclusion) * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor * mainLightIntensity;
17
- }`),b){case l.Disabled:case l.WaterOnIntegratedMesh:case l.Water:h.include(a),L.code.add(m`vec3 evaluateSceneLighting(vec3 normalWorld, vec3 albedo, float shadow, float ssao, vec3 additionalLight) {
17
+ }`),C){case l.Disabled:case l.WaterOnIntegratedMesh:case l.Water:h.include(a),b.code.add(m`vec3 evaluateSceneLighting(vec3 normalWorld, vec3 albedo, float shadow, float ssao, vec3 additionalLight) {
18
18
  vec3 mainLighting = applyShading(normalWorld, shadow);
19
19
  vec3 ambientLighting = calculateAmbientIrradiance(normalWorld, ssao);
20
20
  vec3 albedoLinear = pow(albedo, vec3(GAMMA_SRGB));
@@ -22,24 +22,25 @@ vec3 totalLight = mainLighting + ambientLighting + additionalLight;
22
22
  totalLight = min(totalLight, vec3(PI));
23
23
  vec3 outColor = vec3((albedoLinear / PI) * totalLight);
24
24
  return pow(outColor, vec3(INV_GAMMA_SRGB));
25
- }`);break;case l.Normal:case l.Schematic:L.code.add(m`const float fillLightIntensity = 0.25;
25
+ }`);break;case l.Normal:case l.Schematic:b.code.add(m`const float fillLightIntensity = 0.25;
26
26
  const float horizonLightDiffusion = 0.4;
27
27
  const float additionalAmbientIrradianceFactor = 0.02;
28
- vec3 evaluateSceneLightingPBR(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight, vec3 viewDir, vec3 normalGround, vec3 mrr, vec4 _emission, float additionalAmbientIrradiance)
29
- {
28
+ vec3 evaluateSceneLightingPBR(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight,
29
+ vec3 viewDir, vec3 groundNormal, vec3 mrr, vec4 _emission,
30
+ float additionalAmbientIrradiance) {
30
31
  vec3 viewDirection = -viewDir;
31
32
  vec3 h = normalize(viewDirection + mainLightDirection);
32
33
  PBRShadingInfo inputs;
33
34
  inputs.NdotV = clamp(abs(dot(normal, viewDirection)), 0.001, 1.0);
34
- inputs.NdotNG = clamp(dot(normal, normalGround), -1.0, 1.0);
35
+ inputs.NdotNG = clamp(dot(normal, groundNormal), -1.0, 1.0);
35
36
  vec3 reflectedView = normalize(reflect(viewDirection, normal));
36
- inputs.RdotNG = clamp(dot(reflectedView, normalGround), -1.0, 1.0);
37
+ inputs.RdotNG = clamp(dot(reflectedView, groundNormal), -1.0, 1.0);
37
38
  inputs.albedoLinear = pow(albedo, vec3(GAMMA_SRGB));
38
39
  inputs.ssao = ssao;
39
40
  inputs.metalness = mrr[0];
40
- inputs.roughness = clamp(mrr[1] * mrr[1], 0.001, 0.99);`),L.code.add(m`inputs.f0 = (0.16 * mrr[2] * mrr[2]) * (1.0 - inputs.metalness) + inputs.albedoLinear * inputs.metalness;
41
+ inputs.roughness = clamp(mrr[1] * mrr[1], 0.001, 0.99);`),b.code.add(m`inputs.f0 = (0.16 * mrr[2] * mrr[2]) * (1.0 - inputs.metalness) + inputs.albedoLinear * inputs.metalness;
41
42
  inputs.f90 = vec3(clamp(dot(inputs.f0, vec3(50.0 * 0.33)), 0.0, 1.0));
42
- inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);`),f.useFillLights?L.uniforms.add(new d("hasFillLights",(i=>i.enableFillLights))):L.constants.add("hasFillLights","bool",!1),L.code.add(m`vec3 ambientDir = vec3(5.0 * normalGround[1] - normalGround[0] * normalGround[2], - 5.0 * normalGround[0] - normalGround[2] * normalGround[1], normalGround[1] * normalGround[1] + normalGround[0] * normalGround[0]);
43
+ inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);`),L.useFillLights?b.uniforms.add(new d("hasFillLights",(i=>i.enableFillLights))):b.constants.add("hasFillLights","bool",!1),b.code.add(m`vec3 ambientDir = vec3(5.0 * groundNormal[1] - groundNormal[0] * groundNormal[2], - 5.0 * groundNormal[0] - groundNormal[2] * groundNormal[1], groundNormal[1] * groundNormal[1] + groundNormal[0] * groundNormal[0]);
43
44
  ambientDir = ambientDir != vec3(0.0) ? normalize(ambientDir) : normalize(vec3(5.0, -1.0, 0.0));
44
45
  inputs.NdotAmbDir = hasFillLights ? abs(dot(normal, ambientDir)) : 1.0;
45
46
  float NdotL = clamp(dot(normal, mainLightDirection), 0.001, 1.0);
@@ -47,7 +48,7 @@ vec3 mainLightIrradianceComponent = NdotL * (1.0 - shadow) * mainLightIntensity;
47
48
  vec3 fillLightsIrradianceComponent = inputs.NdotAmbDir * mainLightIntensity * fillLightIntensity;
48
49
  vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(normal, ssao) + additionalLight;
49
50
  inputs.skyIrradianceToSurface = ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;
50
- inputs.groundIrradianceToSurface = GROUND_REFLECTANCE * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;`),L.uniforms.add(new s("lightingSpecularStrength",(i=>i.lighting.mainLight.specularStrength)),new s("lightingEnvironmentStrength",(i=>i.lighting.mainLight.environmentStrength))).code.add(m`vec3 horizonRingDir = inputs.RdotNG * normalGround - reflectedView;
51
+ inputs.groundIrradianceToSurface = GROUND_REFLECTANCE * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;`),b.uniforms.add(new s("lightingSpecularStrength",(i=>i.lighting.mainLight.specularStrength)),new s("lightingEnvironmentStrength",(i=>i.lighting.mainLight.environmentStrength))).code.add(m`vec3 horizonRingDir = inputs.RdotNG * groundNormal - reflectedView;
51
52
  vec3 horizonRingH = normalize(viewDirection + horizonRingDir);
52
53
  inputs.NdotH_Horizon = dot(normal, horizonRingH);
53
54
  float NdotH = clamp(dot(normal, h), 0.0, 1.0);
@@ -57,15 +58,15 @@ vec3 ambientLightRadianceComponent = lightingEnvironmentStrength * calculateAmbi
57
58
  float normalDirectionModifier = mix(1., min(mix(0.1, 2.0, (inputs.NdotNG + 1.) * 0.5), 1.0), clamp(inputs.roughness * 5.0, 0.0 , 1.0));
58
59
  inputs.skyRadianceToSurface = (ambientLightRadianceComponent + horizonLightRadianceComponent) * normalDirectionModifier + mainLightRadianceComponent;
59
60
  inputs.groundRadianceToSurface = 0.5 * GROUND_REFLECTANCE * (ambientLightRadianceComponent + horizonLightRadianceComponent) * normalDirectionModifier + mainLightRadianceComponent;
60
- inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + GROUND_REFLECTANCE);`),L.code.add(m`
61
+ inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + GROUND_REFLECTANCE);`),b.code.add(m`
61
62
  vec3 reflectedColorComponent = evaluateEnvironmentIllumination(inputs);
62
63
  vec3 additionalMaterialReflectanceComponent = inputs.albedoLinear * additionalAmbientIrradiance;
63
- vec3 emissionComponent = _emission.rgb == vec3(0.0) ? _emission.rgb : pow(_emission.rgb, vec3(GAMMA_SRGB));
64
+ vec3 emissionComponent = _emission.rgb == vec3(0.0) ? _emission.rgb : tonemapACES(pow(_emission.rgb, vec3(GAMMA_SRGB)));
64
65
  vec3 outColorLinear = reflectedColorComponent + additionalMaterialReflectanceComponent + emissionComponent;
65
- ${G?m`vec3 outColor = pow(blackLevelSoftCompression(outColorLinear, inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`:m`vec3 outColor = pow(max(vec3(0.0), outColorLinear - 0.005 * inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`}
66
+ ${D?m`vec3 outColor = pow(blackLevelSoftCompression(outColorLinear, inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`:m`vec3 outColor = pow(max(vec3(0.0), outColorLinear - 0.005 * inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`}
66
67
  return outColor;
67
68
  }
68
- `);break;case l.Simplified:case l.TerrainWithWater:o(L),t(L),L.code.add(m`const float roughnessTerrain = 0.5;
69
+ `);break;case l.Simplified:case l.TerrainWithWater:o(b),t(b),b.code.add(m`const float roughnessTerrain = 0.5;
69
70
  const float specularityTerrain = 0.5;
70
71
  const vec3 fresnelReflectionTerrain = vec3(0.04);
71
72
  vec3 evaluatePBRSimplifiedLighting(vec3 n, vec3 c, float shadow, float ssao, vec3 al, vec3 vd, vec3 nup) {
@@ -91,4 +92,4 @@ vec3 specularComponent = specularityTerrain * specularColor * mainLightRadianceC
91
92
  vec3 outColorLinear = outDiffColor + specularComponent;
92
93
  vec3 outColor = pow(outColorLinear, vec3(INV_GAMMA_SRGB));
93
94
  return outColor;
94
- }`);default:case l.COUNT:}}export{f as EvaluateSceneLighting,p as addAmbientBoostFactor,v as addLightingGlobalFactor};
95
+ }`);default:case l.COUNT:}}export{L as EvaluateSceneLighting,v as addAmbientBoostFactor,f as addLightingGlobalFactor};
@@ -2,9 +2,9 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as t}from"../../shaderModules/glsl.js";function o(o){o.fragment.code.add(t`float normals2FoamIntensity(vec3 n, float waveStrength){
5
+ import{glsl as o}from"../../shaderModules/glsl.js";function t(t){t.code.add(o`float normals2FoamIntensity(vec3 n, float waveStrength){
6
6
  float normalizationFactor = max(0.015, waveStrength);
7
7
  return max((n.x + n.y)*0.3303545/normalizationFactor + 0.3303545, 0.0);
8
- }`)}function n(o){o.fragment.code.add(t`vec3 foamIntensity2FoamColor(float foamIntensityExternal, float foamPixelIntensity, vec3 skyZenitColor, float dayMod){
8
+ }`)}function n(t){t.code.add(o`vec3 foamIntensity2FoamColor(float foamIntensityExternal, float foamPixelIntensity, vec3 skyZenitColor, float dayMod){
9
9
  return foamIntensityExternal * (0.075 * skyZenitColor * pow(foamPixelIntensity, 4.) + 50.* pow(foamPixelIntensity, 23.0)) * dayMod;
10
- }`)}export{n as FoamColor,o as FoamIntensity};
10
+ }`)}export{n as FoamColor,t as FoamIntensity};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{colorGamma as o}from"../../../../../../colorUtils.js";import{glsl as r}from"../../shaderModules/glsl.js";function e(e){e.fragment.code.add(r`
5
+ import{colorGamma as o}from"../../../../../../colorUtils.js";import{glsl as r}from"../../shaderModules/glsl.js";function e(e){e.code.add(r`
6
6
  const float GAMMA = ${r.float(o)};
7
7
  const float INV_GAMMA = ${r.float(1/o)};
8
8
 
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{Float3BindUniform as i}from"../../shaderModules/Float3BindUniform.js";import{glsl as n}from"../../shaderModules/glsl.js";function t(n){n.uniforms.add(new i("mainLightDirection",(i=>i.lighting.mainLight.direction)))}function o(n){n.uniforms.add(new i("mainLightIntensity",(i=>i.lighting.mainLight.intensity)))}function a(i){t(i.fragment),o(i.fragment),i.fragment.code.add(n`vec3 applyShading(vec3 shadingNormalWorld, float shadow) {
6
- float dotVal = clamp(dot(shadingNormalWorld, mainLightDirection), 0.0, 1.0);
5
+ import{Float3BindUniform as i}from"../../shaderModules/Float3BindUniform.js";import{glsl as n}from"../../shaderModules/glsl.js";function t(n){n.uniforms.add(new i("mainLightDirection",(i=>i.lighting.mainLight.direction)))}function a(n){n.uniforms.add(new i("mainLightIntensity",(i=>i.lighting.mainLight.intensity)))}function o(i){t(i.fragment),a(i.fragment),i.fragment.code.add(n`vec3 applyShading(vec3 shadingNormal, float shadow) {
6
+ float dotVal = clamp(dot(shadingNormal, mainLightDirection), 0.0, 1.0);
7
7
  return mainLightIntensity * ((1.0 - shadow) * dotVal);
8
- }`)}export{t as addMainLightDirection,o as addMainLightIntensity,a as applyShading};
8
+ }`)}export{t as addMainLightDirection,a as addMainLightIntensity,o as applyShading};
@@ -2,19 +2,19 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{AnalyticalSkyModel as e}from"./AnalyticalSkyModel.glsl.js";import{PBRMode as o}from"./PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as t}from"./PiUtils.glsl.js";import{glsl as a}from"../../shaderModules/glsl.js";function n(n,r){const l=n.fragment.code;n.include(t),r.pbrMode!==o.Normal&&r.pbrMode!==o.Schematic&&r.pbrMode!==o.Simplified&&r.pbrMode!==o.TerrainWithWater||(l.add(a`float normalDistribution(float NdotH, float roughness)
5
+ import{AnalyticalSkyModel as e}from"./AnalyticalSkyModel.glsl.js";import{PBRMode as o}from"./PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as t}from"./PiUtils.glsl.js";import{glsl as a}from"../../shaderModules/glsl.js";function n(n,r){n.include(t),r.pbrMode!==o.Normal&&r.pbrMode!==o.Schematic&&r.pbrMode!==o.Simplified&&r.pbrMode!==o.TerrainWithWater||(n.code.add(a`float normalDistribution(float NdotH, float roughness)
6
6
  {
7
7
  float a = NdotH * roughness;
8
8
  float b = roughness / (1.0 - NdotH * NdotH + a * a);
9
9
  return b * b * INV_PI;
10
- }`),l.add(a`const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);
10
+ }`),n.code.add(a`const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);
11
11
  const vec4 c1 = vec4( 1.0, 0.0425, 1.040, -0.040);
12
12
  const vec2 c2 = vec2(-1.04, 1.04);
13
13
  vec2 prefilteredDFGAnalytical(float roughness, float NdotV) {
14
14
  vec4 r = roughness * c0 + c1;
15
15
  float a004 = min(r.x * r.x, exp2(-9.28 * NdotV)) * r.x + r.y;
16
16
  return c2 * a004 + r.zw;
17
- }`)),r.pbrMode!==o.Normal&&r.pbrMode!==o.Schematic||(n.include(e),l.add(a`struct PBRShadingInfo
17
+ }`)),r.pbrMode!==o.Normal&&r.pbrMode!==o.Schematic||(n.include(e),n.code.add(a`struct PBRShadingInfo
18
18
  {
19
19
  float NdotV;
20
20
  float LdotH;
@@ -34,7 +34,7 @@ vec3 f90;
34
34
  vec3 diffuseColor;
35
35
  float metalness;
36
36
  float roughness;
37
- };`),l.add(a`vec3 evaluateEnvironmentIllumination(PBRShadingInfo inputs) {
37
+ };`),n.code.add(a`vec3 evaluateEnvironmentIllumination(PBRShadingInfo inputs) {
38
38
  vec3 indirectDiffuse = evaluateDiffuseIlluminationHemisphere(inputs.groundIrradianceToSurface, inputs.skyIrradianceToSurface, inputs.NdotNG);
39
39
  vec3 indirectSpecular = evaluateSpecularIlluminationHemisphere(inputs.groundRadianceToSurface, inputs.skyRadianceToSurface, inputs.RdotNG, inputs.roughness);
40
40
  vec3 diffuseComponent = inputs.diffuseColor * indirectDiffuse * INV_PI;
@@ -42,9 +42,8 @@ vec2 dfg = prefilteredDFGAnalytical(inputs.roughness, inputs.NdotV);
42
42
  vec3 specularColor = inputs.f0 * dfg.x + inputs.f90 * dfg.y;
43
43
  vec3 specularComponent = specularColor * indirectSpecular;
44
44
  return (diffuseComponent + specularComponent);
45
- }`))}function r(e,o){const n=e.fragment.code;e.include(t),n.add(a`
46
- struct PBRShadingWater
47
- {
45
+ }`))}function r(e,o){e.include(t),e.code.add(a`
46
+ struct PBRShadingWater {
48
47
  float NdotL; // cos angle between normal and light direction
49
48
  float NdotV; // cos angle between normal and view direction
50
49
  float NdotH; // cos angle between normal and half vector
@@ -54,16 +53,16 @@ return (diffuseComponent + specularComponent);
54
53
  };
55
54
 
56
55
  float dtrExponent = ${o.useCustomDTRExponentForWater?"2.2":"2.0"};
57
- `),n.add(a`vec3 fresnelReflection(float angle, vec3 f0, float f90) {
56
+ `),e.code.add(a`vec3 fresnelReflection(float angle, vec3 f0, float f90) {
58
57
  return f0 + (f90 - f0) * pow(1.0 - angle, 5.0);
59
- }`),n.add(a`float normalDistributionWater(float NdotH, float roughness) {
58
+ }`),e.code.add(a`float normalDistributionWater(float NdotH, float roughness) {
60
59
  float r2 = roughness * roughness;
61
60
  float NdotH2 = NdotH * NdotH;
62
61
  float denom = pow((NdotH2 * (r2 - 1.0) + 1.0), dtrExponent) * PI;
63
62
  return r2 / denom;
64
- }`),n.add(a`float geometricOcclusionKelemen(float LoH) {
63
+ }`),e.code.add(a`float geometricOcclusionKelemen(float LoH) {
65
64
  return 0.25 / (LoH * LoH);
66
- }`),n.add(a`vec3 brdfSpecularWater(in PBRShadingWater props, float roughness, vec3 F0, float F0Max) {
65
+ }`),e.code.add(a`vec3 brdfSpecularWater(in PBRShadingWater props, float roughness, vec3 F0, float F0Max) {
67
66
  vec3 F = fresnelReflection(props.VdotH, F0, F0Max);
68
67
  float dSun = normalDistributionWater(props.NdotH, roughness);
69
68
  float V = geometricOcclusionKelemen(props.LdotH);
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- function t(t){const a=3.141592653589793,n=.3183098861837907;t.vertex.constants.add("PI","float",a),t.fragment.constants.add("PI","float",a),t.fragment.constants.add("LIGHT_NORMALIZATION","float",n),t.fragment.constants.add("INV_PI","float",n),t.fragment.constants.add("HALF_PI","float",1.570796326794897),t.fragment.constants.add("TWO_PI","float",6.28318530717958)}export{t as PiUtils};
5
+ function t(t){const a=3.141592653589793,n=.3183098861837907;t.constants.add("PI","float",a),t.constants.add("LIGHT_NORMALIZATION","float",n),t.constants.add("INV_PI","float",n),t.constants.add("HALF_PI","float",1.570796326794897),t.constants.add("TWO_PI","float",6.28318530717958)}export{t as PiUtils};