@arcgis/core 5.2.0-next.13 → 5.2.0-next.15

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 (433) hide show
  1. package/arcgisGlobal.d.ts +3 -3
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/{34544c79ce568f30a094.js → 011a4d4201696fa10408.js} +1 -1
  4. package/assets/esri/core/workers/chunks/01ba5319cac3e0f14205.js +1 -0
  5. package/assets/esri/core/workers/chunks/03354e9256b2f77fd4f2.js +1 -0
  6. package/assets/esri/core/workers/chunks/0436fe89adc78696251c.js +1 -0
  7. package/assets/esri/core/workers/chunks/079b412d07d02504f1db.js +1 -0
  8. package/assets/esri/core/workers/chunks/{81808c3aead7dfac3049.js → 07ca020796c57cefda62.js} +1 -1
  9. package/assets/esri/core/workers/chunks/0826d36dfbfa28442b70.js +1 -0
  10. package/assets/esri/core/workers/chunks/0b45d34938fa7862f746.js +1 -0
  11. package/assets/esri/core/workers/chunks/{7ad09ac5793e8d47b4b2.js → 0b55fc5050e718371e05.js} +1 -1
  12. package/assets/esri/core/workers/chunks/0bf72e9d0a6deceeb406.js +1 -0
  13. package/assets/esri/core/workers/chunks/11c3b1e8ca21ad62fdd1.js +1 -0
  14. package/assets/esri/core/workers/chunks/152f1c08197955224ad3.js +1 -0
  15. package/assets/esri/core/workers/chunks/1a0903b1d2d5101977c6.js +1 -0
  16. package/assets/esri/core/workers/chunks/1bd49e8d2657c72bf3f9.js +1 -0
  17. package/assets/esri/core/workers/chunks/1d81e667a580c5cdeda1.js +262 -0
  18. package/assets/esri/core/workers/chunks/1effde6a39ef0d4af525.js +1 -0
  19. package/assets/esri/core/workers/chunks/25c1f5e2561986330b80.js +1 -0
  20. package/assets/esri/core/workers/chunks/2bc4aff77c830061e16e.js +1 -0
  21. package/assets/esri/core/workers/chunks/2c3fc2805f6de0963789.js +1 -0
  22. package/assets/esri/core/workers/chunks/2c4f10eaf02ef090ee8f.js +1 -0
  23. package/assets/esri/core/workers/chunks/314bc1b356d43bfa72a8.js +1 -0
  24. package/assets/esri/core/workers/chunks/3526ab3b1f87c24ae6f8.js +1 -0
  25. package/assets/esri/core/workers/chunks/{8c443c52c846a096a250.js → 36dd3ad3ef2fbfc15cbd.js} +1 -1
  26. package/assets/esri/core/workers/chunks/39a10b2092a98083f4cf.js +1 -0
  27. package/assets/esri/core/workers/chunks/{5075e85e1eafd431a8c0.js → 39c994536ce6c1e5c956.js} +1 -1
  28. package/assets/esri/core/workers/chunks/3b74749db78bcba2bc16.js +1 -0
  29. package/assets/esri/core/workers/chunks/3bd32387af52fa48d747.js +1 -0
  30. package/assets/esri/core/workers/chunks/3d83ac791212b81c9d11.js +1 -0
  31. package/assets/esri/core/workers/chunks/3dc6e9494af16f7b8009.js +1 -0
  32. package/assets/esri/core/workers/chunks/3ecb906322a6a5c8c93b.js +1 -0
  33. package/assets/esri/core/workers/chunks/3f67162456a1f02190fa.js +1 -0
  34. package/assets/esri/core/workers/chunks/{d63f532dd7d60ee8ef2c.js → 42e5e00610f281ca8ffa.js} +1 -1
  35. package/assets/esri/core/workers/chunks/44d0ca9d4c5f1722688c.js +1 -0
  36. package/assets/esri/core/workers/chunks/{73c355b895fd6a34fcb8.js → 45b560ca01fb566ba560.js} +1 -1
  37. package/assets/esri/core/workers/chunks/47d630561f3fce5c63c4.js +1 -0
  38. package/assets/esri/core/workers/chunks/4cc78493805671708a9b.js +1 -0
  39. package/assets/esri/core/workers/chunks/{e25bcfdd8f20f8a08b19.js → 4d57c771af4137f74bfb.js} +1 -1
  40. package/assets/esri/core/workers/chunks/4e4419282c4bf7ee4678.js +1 -0
  41. package/assets/esri/core/workers/chunks/4e59e5a5d0ff887ff899.js +1 -0
  42. package/assets/esri/core/workers/chunks/4e788fc6cb2ea936f676.js +1 -0
  43. package/assets/esri/core/workers/chunks/4efef5fa8bf23aaf34cd.js +1 -0
  44. package/assets/esri/core/workers/chunks/4f51963815b0d53ffbd9.js +1 -0
  45. package/assets/esri/core/workers/chunks/5100b5a6a506c704dfaf.js +1 -0
  46. package/assets/esri/core/workers/chunks/511b9c12a7479d39dac0.js +1 -0
  47. package/assets/esri/core/workers/chunks/52afd43bbe23e358efb5.js +1 -0
  48. package/assets/esri/core/workers/chunks/{2a5176533e78a92d8e5b.js → 57b7e5fde972d3ad7884.js} +1 -1
  49. package/assets/esri/core/workers/chunks/57e04b7ec238f7b24274.js +1 -0
  50. package/assets/esri/core/workers/chunks/5aba23584e0b230c75f5.js +1 -0
  51. package/assets/esri/core/workers/chunks/5d8924fdcdb473d261cd.js +1 -0
  52. package/assets/esri/core/workers/chunks/62de9e83331fb10aac6a.js +2 -0
  53. package/assets/esri/core/workers/chunks/{9fee0110dc7fee4c95e2.js → 641cddee377599916de2.js} +2 -2
  54. package/assets/esri/core/workers/chunks/65cc9a48ac95523f7aa8.js +1 -0
  55. package/assets/esri/core/workers/chunks/66392ff750c28064040a.js +1 -0
  56. package/assets/esri/core/workers/chunks/668d84dc512b3085a960.js +1 -0
  57. package/assets/esri/core/workers/chunks/{d3c760109a70a71448c5.js → 67773a9f031d9f1d672f.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{26dca1d387183282276a.js → 6a1b6f8c868f8edce1d7.js} +1 -1
  59. package/assets/esri/core/workers/chunks/6f5a82388a5eb5fcf1b7.js +1 -0
  60. package/assets/esri/core/workers/chunks/718d2d430c1a5a940b83.js +1 -0
  61. package/assets/esri/core/workers/chunks/71c996e1ae84d9daddf2.js +1 -0
  62. package/assets/esri/core/workers/chunks/73b0edabddbb72fe1104.js +1 -0
  63. package/assets/esri/core/workers/chunks/753e0b21e57c12c742ee.js +1 -0
  64. package/assets/esri/core/workers/chunks/764c8ba14ab74b66b391.js +1 -0
  65. package/assets/esri/core/workers/chunks/{1996f0a930abdd97b855.js → 7a8ed08cd173963b3112.js} +1 -1
  66. package/assets/esri/core/workers/chunks/7ee76504e7fea389a1c9.js +1 -0
  67. package/assets/esri/core/workers/chunks/7f849c8255140be6097f.js +1 -0
  68. package/assets/esri/core/workers/chunks/{cc697c4d9cdc116373dc.js → 81726d997a2d34449bb2.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{74e1826ad9e2c4fd3b42.js → 81883bca8a79ee2ddb00.js} +1 -1
  70. package/assets/esri/core/workers/chunks/85505a8b8b0794656d06.js +1 -0
  71. package/assets/esri/core/workers/chunks/859bc873e7af911a518f.js +1 -0
  72. package/assets/esri/core/workers/chunks/{8407c91cce31e087b41b.js → 886ae23a1d8fa21e531f.js} +1 -1
  73. package/assets/esri/core/workers/chunks/8927fb4aa68f7e541a39.js +30 -0
  74. package/assets/esri/core/workers/chunks/{3ff7aa216cd794d951e8.js → 8e99f937fd36cf2cd05f.js} +1 -1
  75. package/assets/esri/core/workers/chunks/8eda85fc01a71aedd9e4.js +1 -0
  76. package/assets/esri/core/workers/chunks/8f25d91ea7b99597124e.js +1 -0
  77. package/assets/esri/core/workers/chunks/92341f36a8b15f34bcca.js +1 -0
  78. package/assets/esri/core/workers/chunks/{c357c0a08b99c1e7f290.js → 9331969046f2b277d620.js} +1 -1
  79. package/assets/esri/core/workers/chunks/93d08d82ceab19e314f8.js +1 -0
  80. package/assets/esri/core/workers/chunks/97d2bdbea39cbcf8fd0f.js +1 -0
  81. package/assets/esri/core/workers/chunks/9f93c29af2a18f7cb160.js +1 -0
  82. package/assets/esri/core/workers/chunks/a0208e35b217808777c4.js +1 -0
  83. package/assets/esri/core/workers/chunks/{f25bb204cf6727f6fdef.js → a0876a52a3c2ad849370.js} +1 -1
  84. package/assets/esri/core/workers/chunks/a18cb809dd56c5537b3b.js +1 -0
  85. package/assets/esri/core/workers/chunks/a4f3bcfabd4ad127abf2.js +1 -0
  86. package/assets/esri/core/workers/chunks/{5437a1c05c1bd2175981.js → a63bba226de6c5e464b0.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{7dcf804e1918b94fa4e1.js → a98905bf6050ad3b8721.js} +1 -1
  88. package/assets/esri/core/workers/chunks/a9f29ff36a7ae5bae686.js +1 -0
  89. package/assets/esri/core/workers/chunks/aa5f36d7ed59c625ba78.js +1 -0
  90. package/assets/esri/core/workers/chunks/b045bffb4f2eb9203183.js +1 -0
  91. package/assets/esri/core/workers/chunks/{de541ad390a8d258d2e6.js → b102beeeb7a919f68b51.js} +1 -1
  92. package/assets/esri/core/workers/chunks/b590402170ae289290d7.js +1 -0
  93. package/assets/esri/core/workers/chunks/b75a4753cea6544da8bb.js +1 -0
  94. package/assets/esri/core/workers/chunks/{1a527c0740d9f4fa0791.js → bc547cf814d6703cef59.js} +1 -1
  95. package/assets/esri/core/workers/chunks/bcc097271f5cdf0a97a7.js +1 -0
  96. package/assets/esri/core/workers/chunks/bd36c57dd0cd28dee55f.js +30 -0
  97. package/assets/esri/core/workers/chunks/be1d2c3a61e6447fbbc7.js +1 -0
  98. package/assets/esri/core/workers/chunks/bf6ae205fbfbfcd1a0ee.js +1 -0
  99. package/assets/esri/core/workers/chunks/bfd1aef8ac795e1ce227.js +1 -0
  100. package/assets/esri/core/workers/chunks/c148ad0ea9258046ac1f.js +1 -0
  101. package/assets/esri/core/workers/chunks/{0f75c19d8e296a32e329.js → c2cd80b712f29e8cbb8d.js} +1 -1
  102. package/assets/esri/core/workers/chunks/c8460bdf60aca749ed05.js +30 -0
  103. package/assets/esri/core/workers/chunks/c9057b0ad2c2bae4a8ce.js +1 -0
  104. package/assets/esri/core/workers/chunks/cc0efa716b8414a44398.js +1 -0
  105. package/assets/esri/core/workers/chunks/{8f6833671c071b522923.js → cd66bd30f654fe571e57.js} +1 -1
  106. package/assets/esri/core/workers/chunks/cf41a66fb97c1076fb34.js +1 -0
  107. package/assets/esri/core/workers/chunks/cf8ce21dc649021e97f6.js +1 -0
  108. package/assets/esri/core/workers/chunks/d3be4d914fc99a1d686c.js +1 -0
  109. package/assets/esri/core/workers/chunks/{6675d56f49d07a97dc40.js → dd0c1cf921369e2bc48b.js} +1 -1
  110. package/assets/esri/core/workers/chunks/df18b0a653b328d8d052.js +1 -0
  111. package/assets/esri/core/workers/chunks/{89e09276086745aa21fa.js → e4e2f479c0c45ae1b2c3.js} +1 -1
  112. package/assets/esri/core/workers/chunks/e656fd5ecf9ac059a87b.js +1 -0
  113. package/assets/esri/core/workers/chunks/e73bb7c8de7412d9975c.js +1 -0
  114. package/assets/esri/core/workers/chunks/{7a474ce61cf484df87b4.js → e80376832050a4b6d28a.js} +1 -1
  115. package/assets/esri/core/workers/chunks/e8546ab510fc9515bd23.js +1 -0
  116. package/assets/esri/core/workers/chunks/e9acc05b0cf9e05f31a8.js +1 -0
  117. package/assets/esri/core/workers/chunks/{58a7cdebc3d182c15ec6.js → eb91dc957c328674e119.js} +1 -1
  118. package/assets/esri/core/workers/chunks/{87c2d4d58c2487324fb7.js → ed2a1c371dfc5d4a744e.js} +31 -31
  119. package/assets/esri/core/workers/chunks/f0832b413612c77a62ca.js +1 -0
  120. package/assets/esri/core/workers/chunks/f116331c6eca937aac8e.js +1 -0
  121. package/assets/esri/core/workers/chunks/{3b837b512999e6ab24bc.js → f148666308071bdb185a.js} +1 -1
  122. package/assets/esri/core/workers/chunks/f23e995320674b32e142.js +1 -0
  123. package/assets/esri/core/workers/chunks/f334bf192dff5af10a70.js +1 -0
  124. package/assets/esri/core/workers/chunks/f76b1fc36f5606cac2c8.js +1 -0
  125. package/assets/esri/core/workers/chunks/{893c0d28a5bf3f9f29f1.js → f93facf47aba9b128fcc.js} +1 -1
  126. package/assets/esri/core/workers/chunks/f955b35337a08f9f747d.js +1 -0
  127. package/assets/esri/core/workers/chunks/fa1336b60278017d2525.js +1 -0
  128. package/assets/esri/core/workers/chunks/fccc34b86454c56f27ab.js +1 -0
  129. package/assets/esri/core/workers/chunks/fea3b6bef761ef78630e.js +1 -0
  130. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  131. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  132. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
  133. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
  134. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +5 -1
  135. package/assets/esri/themes/dark/main.css +1 -1
  136. package/assets/esri/themes/light/main.css +1 -1
  137. package/assets/esri/themes/light/view.css +1 -1
  138. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis.json +1 -1
  139. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_en.json +1 -1
  140. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_fr.json +1 -1
  141. package/chunks/Component.glsl.js +8 -8
  142. package/chunks/GaussianSplatComposition.glsl.js +1 -1
  143. package/chunks/GlobalIlluminationBlur.glsl.js +12 -12
  144. package/chunks/OITBlend.glsl.js +1 -24
  145. package/chunks/OITBlendEmission.glsl.js +9 -9
  146. package/chunks/OITDimOpaque.glsl.js +3 -9
  147. package/chunks/arcgis-knowledge-client-core-simd.js +1 -1
  148. package/chunks/arcgis-knowledge-client-core.js +1 -1
  149. package/chunks/bundle2.js +1 -1
  150. package/chunks/lyr3DMain.js +1 -1
  151. package/config.js +1 -1
  152. package/core/promiseUtils.d.ts +1 -1
  153. package/core/promiseUtils.js +1 -1
  154. package/core/reactiveUtils.d.ts +410 -109
  155. package/core/units.js +1 -1
  156. package/form/types.d.ts +1 -1
  157. package/geometry/Mesh.d.ts +220 -95
  158. package/geometry/operators/support/projectionZScaling.js +1 -1
  159. package/geometry/support/MeshGeoreferencedVertexSpace.d.ts +35 -13
  160. package/geometry/support/MeshLocalVertexSpace.d.ts +32 -8
  161. package/geometry/support/MeshVertexAttributes.d.ts +6 -2
  162. package/geometry/support/heightModelInfoUtils.js +1 -1
  163. package/geometry/support/zscale.js +1 -1
  164. package/graphic/{AnnotationGraphicOrigin.d.ts → AnnotationFeatureGraphicOrigin.d.ts} +9 -9
  165. package/graphic/{AnnotationGraphicOrigin.js → AnnotationFeatureGraphicOrigin.js} +1 -1
  166. package/interfaces.d.ts +3 -3
  167. package/kernel.js +1 -1
  168. package/layers/{AnnotationLayer.d.ts → AnnotationFeatureLayer.d.ts} +24 -24
  169. package/layers/AnnotationFeatureLayer.js +2 -0
  170. package/layers/GaussianSplatLayer.d.ts +4 -1
  171. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  172. package/layers/graphics/data/QueryEngine.js +1 -1
  173. package/layers/graphics/data/queryUtils.js +1 -1
  174. package/layers/graphics/sources/MemorySource.js +1 -1
  175. package/layers/graphics/sources/parquet/ParquetFileStatistics.js +1 -1
  176. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  177. package/layers/graphics/sources/support/parquetIdUtils.js +1 -1
  178. package/layers/mixins/OperationalLayer.js +1 -1
  179. package/layers/save/featureLayerUtils.js +1 -1
  180. package/layers/support/AnnotationSublayer.d.ts +7 -7
  181. package/layers/support/ExportImageServiceParameters.js +1 -1
  182. package/layers/support/FeatureEffect.d.ts +3 -2
  183. package/layers/support/arcgisLayers.js +1 -1
  184. package/layers/support/fetchService.js +1 -1
  185. package/layers/support/layerUtils.js +1 -1
  186. package/layers/support/layersLoader.js +1 -1
  187. package/layers/support/layersMapping.js +1 -1
  188. package/layers/support/parquetUtils.js +1 -1
  189. package/layers/support/schemaValidator.js +1 -1
  190. package/layers/types.d.ts +1 -1
  191. package/networks/Network.js +1 -1
  192. package/networks/UtilityNetwork.js +1 -1
  193. package/networks/support/networkFieldUtils.js +1 -1
  194. package/package.json +3 -3
  195. package/portal/schemas/definitions.js +1 -1
  196. package/portal/schemas/gaussianSplatLayerItem.js +2 -0
  197. package/portal/schemas/integratedMesh3DTilesLayerItem.js +1 -1
  198. package/portal/support/loadUtils.js +1 -1
  199. package/renderers/support/types.d.ts +1 -1
  200. package/renderers/visualVariables/RotationVariable.d.ts +1 -16
  201. package/renderers/visualVariables/RotationVariable.js +1 -1
  202. package/rest/knowledgeGraph/ReplicaDefinition.d.ts +0 -2
  203. package/rest/knowledgeGraph/ServiceDefinition.d.ts +1 -1
  204. package/rest/knowledgeGraph/wasmInterface/replicaToWasmEncodedFactories.js +1 -1
  205. package/rest/knowledgeGraph/wasmInterface/wasmToReplicaFactories.js +1 -1
  206. package/rest/knowledgeGraphService.js +1 -1
  207. package/rest/networks/support/QueryAssociationsParameters.d.ts +2 -2
  208. package/rest/networks/support/SynthesizeAssociationGeometriesParameters.d.ts +2 -2
  209. package/rest/networks/support/TraceParameters.d.ts +2 -2
  210. package/rest/print.js +1 -1
  211. package/rest/support/AttributeBinsQuery.js +1 -1
  212. package/rest/support/Query.js +1 -1
  213. package/rest/support/TopFeaturesQuery.js +1 -1
  214. package/support/revision.js +1 -1
  215. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +1 -1
  216. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  217. package/views/2d/engine/webgl/util/createMatcher.js +1 -1
  218. package/views/2d/layerViewModuleImportUtils.js +1 -1
  219. package/views/2d/layers/AnnotationFeatureLayerView2D.js +2 -0
  220. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  221. package/views/2d/layers/TileLayerView2D.js +1 -1
  222. package/views/2d/layers/features/sources/strategies/support/queryAdapters.js +1 -1
  223. package/views/2d/layers/support/annodime/annotationSchema.js +1 -1
  224. package/views/2d/types.d.ts +2 -2
  225. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  226. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  227. package/views/3d/interactive/visualElements/DrapedVisualElementResources.js +1 -1
  228. package/views/3d/layerViewModuleImportUtils.js +1 -1
  229. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  230. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  231. package/views/3d/support/GaussianSplatSortWorker.js +1 -1
  232. package/views/3d/support/GaussianSplatWorkerHandle.js +1 -1
  233. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  234. package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
  235. package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
  236. package/views/3d/terrain/Tile.js +1 -1
  237. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  238. package/views/3d/types.d.ts +1 -1
  239. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBuffer.glsl.js +7 -7
  240. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +29 -20
  241. package/views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js +2 -2
  242. package/views/3d/webgl-engine/core/shaderLibrary/util/EmissionDimming.glsl.js +1 -1
  243. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatTextureFetch.glsl.js +6 -8
  244. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
  245. package/views/3d/webgl-engine/effects/fog/FogTechniqueConfiguration.js +1 -1
  246. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlur.glsl.js +1 -1
  247. package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
  248. package/views/3d/webgl-engine/effects/glow/GlowBlurTechniqueConfiguration.js +1 -1
  249. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechniqueConfiguration.js +1 -1
  250. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  251. package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
  252. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  253. package/views/3d/webgl-engine/effects/transparency/OITBlendEmission.glsl.js +1 -1
  254. package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechnique.js +1 -1
  255. package/views/3d/webgl-engine/effects/transparency/OITBlendFragmentTechniqueConfiguration.js +2 -0
  256. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  257. package/views/3d/webgl-engine/effects/transparency/OITBlendTechniqueConfiguration.js +1 -1
  258. package/views/3d/webgl-engine/effects/transparency/OITDimOpaque.glsl.js +1 -1
  259. package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechnique.js +1 -1
  260. package/views/3d/webgl-engine/effects/transparency/oitBlendFragment.glsl.js +2 -0
  261. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  262. package/views/3d/webgl-engine/lib/Material.js +1 -1
  263. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  264. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TexelFormatInfo.js +2 -0
  265. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBufferFieldCreation.js +1 -1
  266. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBufferLayout.js +1 -1
  267. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBuffer.js +1 -1
  268. package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
  269. package/views/3d/webgl-engine/lib/lodRendering/LodLevel.js +1 -1
  270. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  271. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  272. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  273. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  274. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  275. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  276. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  277. package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechniqueConfiguration.js +1 -1
  278. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +1 -1
  279. package/views/3d/webgl-engine/shaders/oitResolution.glsl.js +1 -1
  280. package/views/View2D.d.ts +2 -3
  281. package/views/layers/{AnnotationLayerView.d.ts → AnnotationFeatureLayerView.d.ts} +6 -6
  282. package/views/layers/FeatureLikeLayerView.d.ts +2 -2
  283. package/views/layers/FeatureLikeLayerView.js +1 -1
  284. package/webdoc/support/writeUtils.js +1 -1
  285. package/webdoc/widgets/FloorFilter.d.ts +14 -1
  286. package/webdoc/widgets/FloorFilter.js +1 -1
  287. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  288. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +12 -4
  289. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  290. package/widgets/BatchAttributeForm/ReactiveGraphic.js +1 -1
  291. package/widgets/BatchAttributeForm/ValueChangeTransaction.js +2 -0
  292. package/widgets/BatchAttributeForm/VisibleElements.d.ts +8 -1
  293. package/widgets/BatchAttributeForm/VisibleElements.js +1 -1
  294. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  295. package/widgets/BatchAttributeForm/css.js +1 -1
  296. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  297. package/widgets/BatchAttributeForm/expressions/ExpressionsModel.js +1 -1
  298. package/widgets/BatchAttributeForm/inputs/BatchFormInputs.d.ts +3 -0
  299. package/widgets/BatchAttributeForm/inputs/BatchFormInputs.js +1 -1
  300. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  301. package/widgets/BatchAttributeForm/inputs/GroupInput.js +1 -1
  302. package/widgets/BatchAttributeForm/inputs/InputBase.js +1 -1
  303. package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +1 -1
  304. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  305. package/widgets/BatchAttributeForm/interfaceUtils.js +1 -1
  306. package/widgets/BatchAttributeForm/stringUtils.js +2 -0
  307. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  308. package/widgets/BatchAttributeForm/types.d.ts +19 -3
  309. package/widgets/BatchAttributeForm.js +1 -1
  310. package/widgets/Editor/AddAssociationWorkflow.js +1 -1
  311. package/widgets/Editor/AddAssociationWorkflowData.js +1 -1
  312. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  313. package/widgets/Editor/EditorViewModel.d.ts +1 -1
  314. package/widgets/Editor/EditorViewModel.js +1 -1
  315. package/widgets/Editor/MergeFeaturesWorkflow.d.ts +3 -3
  316. package/widgets/Editor/MergeFeaturesWorkflow.js +1 -1
  317. package/widgets/Editor/SplitFeatureWorkflow.d.ts +3 -3
  318. package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
  319. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  320. package/widgets/Editor/UpdateFeaturesWorkflow.js +1 -1
  321. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  322. package/widgets/Editor/UpdateRecordWorkflowData.js +1 -1
  323. package/widgets/Editor/UpdateWorkflow.js +1 -1
  324. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  325. package/widgets/Editor/support/SketchController.js +1 -1
  326. package/widgets/Editor/workflowUtils.js +1 -1
  327. package/widgets/Editor.js +1 -1
  328. package/widgets/FloorFilter/FloorFilterViewModel.d.ts +10 -0
  329. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  330. package/widgets/Print/PrintViewModel.d.ts +11 -1
  331. package/widgets/Print/PrintViewModel.js +1 -1
  332. package/assets/esri/core/workers/chunks/07cc5743cb6a9fd68adb.js +0 -1
  333. package/assets/esri/core/workers/chunks/0bb159ba0226122465cf.js +0 -1
  334. package/assets/esri/core/workers/chunks/0cbd7f5fe24271942abd.js +0 -1
  335. package/assets/esri/core/workers/chunks/160e5b99f1097a473e6b.js +0 -1
  336. package/assets/esri/core/workers/chunks/17e68828ca6ff6912d3e.js +0 -1
  337. package/assets/esri/core/workers/chunks/1a95370ddc22729ab3c6.js +0 -1
  338. package/assets/esri/core/workers/chunks/1e340536d3c5f94920b5.js +0 -1
  339. package/assets/esri/core/workers/chunks/2185e8a52c5e29d46680.js +0 -1
  340. package/assets/esri/core/workers/chunks/24810c36ae09bb4e83dc.js +0 -1
  341. package/assets/esri/core/workers/chunks/26583db2af1a1cc456e5.js +0 -1
  342. package/assets/esri/core/workers/chunks/274b82cb183ddd0042f3.js +0 -1
  343. package/assets/esri/core/workers/chunks/297ae764445e6f73a5ea.js +0 -1
  344. package/assets/esri/core/workers/chunks/29aba121db7f00e0cf81.js +0 -1
  345. package/assets/esri/core/workers/chunks/2a3145a595d19391bb8a.js +0 -1
  346. package/assets/esri/core/workers/chunks/2b00229c238aae70b948.js +0 -1
  347. package/assets/esri/core/workers/chunks/2b814bb51704a5b4fdc2.js +0 -30
  348. package/assets/esri/core/workers/chunks/30f1909c5ef1835b8507.js +0 -1
  349. package/assets/esri/core/workers/chunks/3172d7fc23787a287191.js +0 -1
  350. package/assets/esri/core/workers/chunks/3297658ccd8d4b9ce733.js +0 -1
  351. package/assets/esri/core/workers/chunks/38ca59db0e8f45bd7811.js +0 -1
  352. package/assets/esri/core/workers/chunks/39596715e84d0da2f803.js +0 -30
  353. package/assets/esri/core/workers/chunks/398eb3100a282e4736bb.js +0 -1
  354. package/assets/esri/core/workers/chunks/3c5534c576528c1921d2.js +0 -1
  355. package/assets/esri/core/workers/chunks/40b3cdf81c79bbc44527.js +0 -2
  356. package/assets/esri/core/workers/chunks/41f12eb7c9b7086528d5.js +0 -1
  357. package/assets/esri/core/workers/chunks/426156137f279d979ddd.js +0 -1
  358. package/assets/esri/core/workers/chunks/44e52fe98ffafe6a2807.js +0 -1
  359. package/assets/esri/core/workers/chunks/4714241189c13d0db897.js +0 -1
  360. package/assets/esri/core/workers/chunks/4d09ef7c57ab7f9782fe.js +0 -1
  361. package/assets/esri/core/workers/chunks/5022413f5a41b5d435ea.js +0 -1
  362. package/assets/esri/core/workers/chunks/5201105ca11a2d450460.js +0 -1
  363. package/assets/esri/core/workers/chunks/528ed0bd8dc149ead023.js +0 -1
  364. package/assets/esri/core/workers/chunks/537c5dd4cd0a067199d1.js +0 -1
  365. package/assets/esri/core/workers/chunks/538537f9bc866d9caa75.js +0 -1
  366. package/assets/esri/core/workers/chunks/58ac245ff7fb57c1004f.js +0 -1
  367. package/assets/esri/core/workers/chunks/59dafa1e1340ea4043e6.js +0 -1
  368. package/assets/esri/core/workers/chunks/5c7aff9604b4576a0e1d.js +0 -1
  369. package/assets/esri/core/workers/chunks/5d3ddbf94539cb4f493e.js +0 -1
  370. package/assets/esri/core/workers/chunks/5eb9fdb076488de9cd83.js +0 -1
  371. package/assets/esri/core/workers/chunks/603177137eb680afe371.js +0 -1
  372. package/assets/esri/core/workers/chunks/629099f05ca5c9ca1973.js +0 -1
  373. package/assets/esri/core/workers/chunks/62f78fa455d556008f6a.js +0 -1
  374. package/assets/esri/core/workers/chunks/684d3cb4fb233180b2d0.js +0 -1
  375. package/assets/esri/core/workers/chunks/686c51fd2144e132783e.js +0 -1
  376. package/assets/esri/core/workers/chunks/6d616b66fb32904b55a1.js +0 -1
  377. package/assets/esri/core/workers/chunks/6d696beddcc5fbed5875.js +0 -1
  378. package/assets/esri/core/workers/chunks/6f0341cfa4c68e6e60b3.js +0 -1
  379. package/assets/esri/core/workers/chunks/6f125b4ed06c0022dee6.js +0 -1
  380. package/assets/esri/core/workers/chunks/6f4825c3ef1fe202ab82.js +0 -1
  381. package/assets/esri/core/workers/chunks/70229007d594536ba6a3.js +0 -1
  382. package/assets/esri/core/workers/chunks/72d67cc3a382e83bf1a2.js +0 -1
  383. package/assets/esri/core/workers/chunks/7e89cb9ff615742e0894.js +0 -1
  384. package/assets/esri/core/workers/chunks/851705cf276eae8d4d37.js +0 -1
  385. package/assets/esri/core/workers/chunks/882ee7ed8a3a0215f9b9.js +0 -1
  386. package/assets/esri/core/workers/chunks/890b7a1153b7f65eba9a.js +0 -1
  387. package/assets/esri/core/workers/chunks/9660ae52fb3951a19e9c.js +0 -1
  388. package/assets/esri/core/workers/chunks/9d5f7573bfe3b051daf1.js +0 -1
  389. package/assets/esri/core/workers/chunks/a0c00c6fe60db49b3ab9.js +0 -1
  390. package/assets/esri/core/workers/chunks/a4245bd4e67a428fd835.js +0 -1
  391. package/assets/esri/core/workers/chunks/ac33b10fe65f9e9e824f.js +0 -1
  392. package/assets/esri/core/workers/chunks/af31e62499d45bdab3c3.js +0 -1
  393. package/assets/esri/core/workers/chunks/b5937ce657c1fff3864f.js +0 -1
  394. package/assets/esri/core/workers/chunks/c2a65de34f6a6c89c652.js +0 -1
  395. package/assets/esri/core/workers/chunks/c3cf9e6e91f71c9cc5f3.js +0 -1
  396. package/assets/esri/core/workers/chunks/c424a66f1546275e2bcb.js +0 -30
  397. package/assets/esri/core/workers/chunks/c80fc1b3048e8d58a1f8.js +0 -1
  398. package/assets/esri/core/workers/chunks/c911f0b5bdd43b66b731.js +0 -1
  399. package/assets/esri/core/workers/chunks/cc3e895cff019e811c07.js +0 -1
  400. package/assets/esri/core/workers/chunks/d122431f3b0b88dcb488.js +0 -1
  401. package/assets/esri/core/workers/chunks/d24e027bb8b2c09f25c8.js +0 -1
  402. package/assets/esri/core/workers/chunks/d2df8c328054dc6cb7b7.js +0 -1
  403. package/assets/esri/core/workers/chunks/d2f47f21ce0b0ab4da17.js +0 -262
  404. package/assets/esri/core/workers/chunks/d41caf20c26f80385265.js +0 -1
  405. package/assets/esri/core/workers/chunks/d468994822f9bc3d6279.js +0 -1
  406. package/assets/esri/core/workers/chunks/d5c35a75fd4c41def420.js +0 -1
  407. package/assets/esri/core/workers/chunks/d64613209a9eb1eafb11.js +0 -1
  408. package/assets/esri/core/workers/chunks/d7be278aed1fb37ad5ec.js +0 -1
  409. package/assets/esri/core/workers/chunks/d8ec0afb2b91ccf32e55.js +0 -1
  410. package/assets/esri/core/workers/chunks/da1e8b338ab9fe9e0a8e.js +0 -1
  411. package/assets/esri/core/workers/chunks/dd920a6f6422fa213eba.js +0 -1
  412. package/assets/esri/core/workers/chunks/e279bcbe4f10e87bde6c.js +0 -1
  413. package/assets/esri/core/workers/chunks/e2de13810dce01b98520.js +0 -1
  414. package/assets/esri/core/workers/chunks/e33d2ede6c9f1527d51b.js +0 -1
  415. package/assets/esri/core/workers/chunks/e5837e5ac6ef761f26a2.js +0 -1
  416. package/assets/esri/core/workers/chunks/e82488b9b3bb0c1dedb4.js +0 -1
  417. package/assets/esri/core/workers/chunks/e912b515704e20313e53.js +0 -1
  418. package/assets/esri/core/workers/chunks/eac683a37339aa558455.js +0 -1
  419. package/assets/esri/core/workers/chunks/ef46ef4f0ee9f2aeaa4a.js +0 -1
  420. package/assets/esri/core/workers/chunks/f274a8e8c7ca4294e876.js +0 -1
  421. package/assets/esri/core/workers/chunks/f292c2c22a3822343118.js +0 -1
  422. package/assets/esri/core/workers/chunks/f4f642ddd4d5db7cbbb4.js +0 -1
  423. package/assets/esri/core/workers/chunks/f590db684d88e72bd79b.js +0 -1
  424. package/assets/esri/core/workers/chunks/f6d047358d14328f3622.js +0 -1
  425. package/assets/esri/core/workers/chunks/fb6605be0c5e36785543.js +0 -1
  426. package/assets/esri/core/workers/chunks/fd70a25ffdf2cc6c5be2.js +0 -1
  427. package/layers/AnnotationLayer.js +0 -2
  428. package/views/2d/layers/AnnotationLayerView2D.js +0 -2
  429. package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechniqueConfiguration.js +0 -2
  430. package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechniqueConfiguration.js +0 -2
  431. /package/assets/esri/core/workers/chunks/{40b3cdf81c79bbc44527.js.LICENSE.txt → 62de9e83331fb10aac6a.js.LICENSE.txt} +0 -0
  432. /package/assets/esri/core/workers/chunks/{9fee0110dc7fee4c95e2.js.LICENSE.txt → 641cddee377599916de2.js.LICENSE.txt} +0 -0
  433. /package/views/layers/{AnnotationLayerView.js → AnnotationFeatureLayerView.js} +0 -0
@@ -1,32 +1,41 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{maxInt16 as n,maxUint8 as e}from"../../../../../core/typedArrayUtil.js";import{hasNativeFloat16Array as i}from"../../../../../geometry/support/float16.js";import{FloatBindUniform as o}from"../shaderModules/FloatBindUniform.js";import{glsl as u,If as s}from"../shaderModules/glsl.js";import{ShaderTechniqueConfiguration as a,parameter as r}from"../shaderTechnique/ShaderTechniqueConfiguration.js";function c(t){switch(t.elementType){case"float":switch(t.elementCount){case 1:return u`float`;case 2:return u`vec2`;case 3:return u`vec3`;case 4:return u`vec4`;case 9:return u`mat3`;default:t.elementCount}break;case"int":switch(t.elementCount){case 1:return u`int`;case 2:return u`ivec2`;case 3:return u`ivec3`;case 4:return u`ivec4`;case 9:throw new Error("Invalid element count 9 for type int");default:t.elementCount}break;case"uint":switch(t.elementCount){case 1:return u`uint`;case 2:return u`uvec2`;case 3:return u`uvec3`;case 4:return u`uvec4`;case 9:throw new Error("Invalid element count 9 for type uint");default:t.elementCount}break;default:t.elementType}throw new Error("unsupported field")}const p=new o("const_NaN",()=>NaN,{supportsNaN:!0});class f extends a{constructor(t){super(),this.supportNaN=t}}function l(t,n){const e=n?.supportNaN;e&&(t.uniforms.add(p),t.code.add(u`bool bitsEncodeFloat16NaN(highp uint bits) {
2
+ import{__decorate as t}from"tslib";import{maxUint8 as n}from"../../../../../core/typedArrayUtil.js";import{hasNativeFloat16Array as e}from"../../../../../geometry/support/float16.js";import{FloatBindUniform as o}from"../shaderModules/FloatBindUniform.js";import{glsl as i,If as u}from"../shaderModules/glsl.js";import{ShaderTechniqueConfiguration as a,parameter as r}from"../shaderTechnique/ShaderTechniqueConfiguration.js";function s(t){switch(t.elementType){case"float":switch(t.elementCount){case 1:return i`float`;case 2:return i`vec2`;case 3:return i`vec3`;case 4:return i`vec4`;case 9:return i`mat3`;default:t.elementCount}break;case"int":switch(t.elementCount){case 1:return i`int`;case 2:return i`ivec2`;case 3:return i`ivec3`;case 4:return i`ivec4`;case 9:throw new Error("Invalid element count 9 for type int");default:t.elementCount}break;case"uint":switch(t.elementCount){case 1:return i`uint`;case 2:return i`uvec2`;case 3:return i`uvec3`;case 4:return i`uvec4`;case 9:throw new Error("Invalid element count 9 for type uint");default:t.elementCount}break;default:t.elementType}throw new Error("unsupported field")}const c=new o("constNaN",()=>NaN,{supportsNaN:!0});class p extends a{constructor(t){super(),this.supportNaN=t}}function f(t,n){const e=n?.supportNaN;e&&(t.uniforms.add(c),t.code.add(i`bool bitsEncodeFloat16NaN(highp uint bits) {
3
3
  const highp uint nanExponent = 0x00007c00u;
4
4
  highp uint exponent = bits & nanExponent;
5
5
  highp uint mantissa = bits & 0x000003ffu;
6
6
  return exponent == nanExponent && mantissa != 0u;
7
- }`)),t.code.add(u`
8
- mediump float unpackHalf1x16(highp uint bits0, highp uint bits1) {
9
- highp uint halfBits = (bits1 << 8u) | bits0;
10
- ${s(e,u`
11
- if (bitsEncodeFloat16NaN(halfBits)) {
12
- return const_NaN;
7
+ }`)),t.code.add(i`
8
+ mediump float unpackHalf1x16(highp uint bits) {
9
+ ${u(e,i`
10
+ if (bitsEncodeFloat16NaN(bits)) {
11
+ return constNaN;
13
12
  }`)}
14
- return unpackHalf2x16(halfBits).x;
15
- }`)}function h(t,n){const e=n?.supportNaN;e&&(t.uniforms.add(p),t.code.add(u`bool bitsEncodeFloat32NaN(highp uint bits) {
13
+ return unpackHalf2x16(bits).x;
14
+ }`),t.code.add(i`
15
+ mediump vec2 unpackHalf2x16NaNSupport(highp uint bits) {
16
+ vec2 result = unpackHalf2x16(bits);
17
+ ${u(e,i`
18
+ if (bitsEncodeFloat16NaN(bits)) {
19
+ result.x = constNaN;
20
+ }
21
+ if (bitsEncodeFloat16NaN(bits >> ${i.uint(k[2])})) {
22
+ result.y = constNaN;
23
+ }
24
+ `)}
25
+ return result;
26
+ }`)}function l(t,n){const e=n?.supportNaN;e&&(t.uniforms.add(c),t.code.add(i`bool bitsEncodeFloat32NaN(highp uint bits) {
16
27
  const highp uint nanExponent = 0x7f800000u;
17
28
  highp uint exponent = bits & nanExponent;
18
29
  highp uint mantissa = bits & 0x007fffffu;
19
30
  return exponent == nanExponent && mantissa != 0u;
20
- }`)),t.code.add(u`
21
- highp float unpackFloat1x32(highp uint bits0, highp uint bits1, highp uint bits2, highp uint bits3) {
22
- highp uint floatBits = (bits3 << 24u) |(bits2 << 16u) | (bits1 << 8u) | bits0;
23
- ${s(e,u`
24
- if (bitsEncodeFloat32NaN(floatBits)) {
25
- return const_NaN;
31
+ }`)),t.code.add(i`
32
+ highp float unpackFloat1x32(highp uint bits) {
33
+ ${u(e,i`
34
+ if (bitsEncodeFloat32NaN(bits)) {
35
+ return constNaN;
26
36
  }`)}
27
- return uintBitsToFloat(floatBits);
28
- }`)}function $(t){t.code.add(u`mediump int unpackInt1x16(highp uint bits0, highp uint bits1) {
29
- highp uint rawBits = (bits1 << 8u) | bits0;
30
- highp uint signExtendedBits = (rawBits & 0x8000u) != 0u ? (rawBits | 0xffff0000u) : rawBits;
37
+ return uintBitsToFloat(bits);
38
+ }`)}function d(t){t.code.add(i`mediump int unpackInt1x16(highp uint bits) {
39
+ highp uint signExtendedBits = (bits & 0x8000u) != 0u ? (bits | 0xffff0000u) : bits;
31
40
  return int(signExtendedBits);
32
- }`)}function d(t){const{fieldType:n}=t;return`${(0,N[n])(v(t))}`}function m(t,n){const e=[];for(let i=0;i<t.length;i+=4){const n=t[i],o=t[i+1],s=t[i+2],a=t[i+3],r=u`unpackFloat1x32(${`${n}, ${o}, ${s}, ${a}`})`;e.push(r)}return e.join(n)}function x(t){return u`vec2(${m(t,", ")})`}function b(t){return u`vec3(${m(t,",\n\t")})`}function g(t){return u`mat3(${m(t,",\n")})`}t([r()],f.prototype,"supportNaN",void 0);const N={u8:t=>u`${t[0]}`,unorm8:t=>u`float(${t[0]})/${u.float(e)}`,vec4unorm8:t=>u`vec4(${`${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}`})/${u.float(e)}`,snorm16:t=>u`max(float(unpackInt1x16(${`${t[0]}, ${t[1]}`}))/${u.float(n)}, -1.0)`,vec2snorm16:t=>u`max(vec2(unpackInt1x16(${`${t[0]}, ${t[1]}`}), unpackInt1x16(${`${t[2]}, ${t[3]}`}))/${u.float(n)}, vec2(-1.0))`,f16:i?t=>u`unpackHalf1x16(${`${t[0]}, ${t[1]}`})`:t=>u`unpackFloat1x32(${`${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}`})`,f32:t=>u`unpackFloat1x32(${`${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}`})`,vec4u8:t=>u`uvec4(${`${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}`})`,vec2f32:t=>x(t),vec3f32:t=>b(t),mat3f32:t=>g(t)};function v(t){const{startTexel:n,byteOffset:e,texelByteStride:i,byteSize:o}=t;let s=n,a=e%i;const r=new Array;for(let c=0;c<o;++c){const t=u`texel${u.int(s)}.${w[a]}`;r.push(t),++a,a>=i&&(a=0,++s)}return r}const w=["x","y","z","w"];export{f as TextureBufferNaNSupportConfiguration,d as glslDecodeField,c as glslType,h as unpackFloat1x32,l as unpackHalf1x16,$ as unpackInt1x16};
41
+ }`)}function h(t,n){const{fieldType:e}=t;return`${(0,g[e])(y(t,n))}`}function m(t,n){const e=[];for(const o of t){const t=i`unpackFloat1x32(${o})`;e.push(t)}return e.join(n)}t([r()],p.prototype,"supportNaN",void 0);const x=t=>i`${t[0]}`,N=t=>{const n=t[0],e=i`uvec4(${i.uint(k[0])}, ${i.uint(k[1])}, ${i.uint(k[2])}, ${i.uint(k[3])})`,o=i`uvec4(${i.hexuint(w[1])})`;return i`((uvec4(${n}) >> ${e}) & ${o})`},$=t=>i`(float(${x(t)})/${i.float(n)})`,b=t=>i`unpackFloat1x32(${t[0]})`,v=t=>i`vec4(${m(t,", ")})`,g={u8:x,unorm8:$,vec4unorm8:t=>i`(vec4(${N(t)})/${i.float(n)})`,snorm16:t=>i`unpackSnorm2x16(${t[0]}).x`,vec2snorm16:t=>i`unpackSnorm2x16(${t[0]})`,f16:e?t=>i`unpackHalf1x16(${t[0]})`:b,vec4f16:e?t=>i`vec4(unpackHalf2x16NaNSupport(${t[0]}), unpackHalf2x16NaNSupport(${t[1]}))`:v,f32:b,vec4u8:N,vec2f32:t=>i`vec2(${m(t,", ")})`,vec3f32:t=>i`vec3(${m(t,", ")})`,vec4f32:v,mat3f32:t=>i`mat3(${m(t,",\n")})`};function y(t,n){const{byteOffset:e,byteSize:o}=t,u=n.channelByteStride,a=n.byteStride,r=Math.ceil(o/E),s=F[n.channels],c=new Array;for(let p=0;p<r;++p){const t=p*E,n=e+t,r=o-t,f=Math.min(r,E);let l=0;const d=new Array;for(;l<f;){const t=n+l,e=Math.floor(t/a),o=t%a,r=Math.floor(o/u),c=o%u,p=u-c,h=f-l,m=Math.min(p,h),x=i`texel${i.int(e)}${s[r]}`,N=4===m?"":i` & ${i.hexuint(w[m])}`,$=0===c?"":i` >> ${i.uint(k[c])}`,b=i`((${x}${$})${N})`,v=0===l?"":i` << ${i.uint(k[l])}`,g=i`(${b})${v}`;d.push(g),l+=m}c.push(i`(${d.join(" | ")})`)}return c}const E=4,k=[0,8,16,24],w=[0,255,65535,16777215,4294967295],F={1:[i``],2:[i`.x`,i`.y`],4:[i`.x`,i`.y`,i`.z`,i`.w`]};export{p as TextureBufferNaNSupportConfiguration,h as glslDecodeField,s as glslType,l as unpackFloat1x32,f as unpackHalf,d as unpackInt1x16};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{colorGamma as o}from"../../../../../../colorUtils.js";import{glsl as e}from"../../shaderModules/glsl.js";function r(r){r.constants.add("GAMMA","float",o).constants.add("INV_GAMMA","float",1/o).code.add(e`vec3 delinearizeGamma(vec3 color) {
2
+ import{colorGamma as o,invColorGamma as e}from"../../../../../../colorUtils.js";import{glsl as r}from"../../shaderModules/glsl.js";function a(a){a.constants.add("GAMMA","float",o).constants.add("INV_GAMMA","float",e).code.add(r`vec3 delinearizeGamma(vec3 color) {
3
3
  return pow(color, vec3(INV_GAMMA));
4
4
  }
5
5
  vec4 delinearizeGamma(vec4 color) {
@@ -7,4 +7,4 @@ return vec4(delinearizeGamma(color.rgb), color.a);
7
7
  }
8
8
  vec3 linearizeGamma(vec3 color) {
9
9
  return pow(color, vec3(GAMMA));
10
- }`)}export{r as Gamma};
10
+ }`)}export{a as Gamma};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{ColorConversion as o}from"./ColorConversion.glsl.js";function r(r){r.include(o),r.code.add("\n vec3 emissionDimming(in vec3 srcColor, float srcAlpha) {\n srcColor = rgb2hsv(srcColor);\n srcColor.b = 1.0;\n return hsv2rgb(srcColor) * srcAlpha;\n }\n ")}export{r as emissionDimming};
2
+ import{ColorConversion as o}from"./ColorConversion.glsl.js";import{If as r}from"../../shaderModules/glsl.js";import{oitResolution as l}from"../../../shaders/oitResolution.glsl.js";function s(s,n){s.include(o),s.include(l,n),s.code.add(`\n vec3 emissionDimming(in vec3 srcColor, float srcAlpha) {\n srcColor = rgb2hsv(srcColor);\n ${r(!n.useFloatBlend,"if(srcColor.b < floatBlendOutputScale) return vec3(srcAlpha);")}\n srcColor.b = 1.0;\n return hsv2rgb(srcColor) * srcAlpha;\n }\n `)}export{s as emissionDimming};
@@ -5,22 +5,20 @@ import{splatAtlasTextureWidth as e,elementsPerSplatPage as a}from"../../../../su
5
5
  uint x = instanceID % orderTextureWidth;
6
6
  uint y = instanceID / orderTextureWidth;
7
7
 
8
- uvec4 packedGaussianIndex = texelFetch(splatOrderTexture, ivec2(x, y), 0);
9
-
10
- return packedGaussianIndex.r | (packedGaussianIndex.g << 8u) | (packedGaussianIndex.b << 16u);
8
+ return texelFetch(splatOrderTexture, ivec2(x, y), 0).r;
11
9
  }
12
10
 
13
11
  uvec4 fetchPackedGaussian(uint gaussianIndex) {
14
- uint gaussianIndexX = gaussianIndex & ${s}u;
15
- uint gaussianIndexY = gaussianIndex >> ${t}u;
12
+ uint gaussianIndexX = gaussianIndex & ${t}u;
13
+ uint gaussianIndexY = gaussianIndex >> ${s}u;
16
14
 
17
15
  return texelFetch(splatAtlasTexture, ivec2(gaussianIndexX, gaussianIndexY), 0);
18
16
  }
19
17
 
20
18
  uvec4 fetchPackedGaussianHeader(uint gaussianIndex) {
21
19
  uint headerIndex = gaussianIndex | ${u}u;
22
- uint headerIndexX = headerIndex & ${s}u;
23
- uint headerIndexY = headerIndex >> ${t}u;
20
+ uint headerIndexX = headerIndex & ${t}u;
21
+ uint headerIndexY = headerIndex >> ${s}u;
24
22
 
25
23
  return texelFetch(splatAtlasTexture, ivec2(headerIndexX, headerIndexY), 0);
26
24
  }
@@ -35,4 +33,4 @@ import{splatAtlasTextureWidth as e,elementsPerSplatPage as a}from"../../../../su
35
33
  uint fetchGaussianPageIndex(uint gaussianIndex) {
36
34
  return gaussianIndex >> ${d}u;
37
35
  }
38
- `)}const s=""+(e-1),t=`${Math.log2(e)}`,u=""+(a-1),d=`${Math.log2(a)}`;export{i as GaussianSplatTextureFetch};
36
+ `)}const t=""+(e-1),s=`${Math.log2(e)}`,u=""+(a-1),d=`${Math.log2(a)}`;export{i as GaussianSplatTextureFetch};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../../../../core/Error.js";import"../../../../../core/has.js";import{NestedMap as t}from"../../../../../core/NestedMap.js";import{ShaderTechniqueConfiguration as i}from"./ShaderTechniqueConfiguration.js";class r{constructor(e){this._context=e,this._debug=null,this._precompiling=this._debug?0:1,this._cache=new t,this._frame=0,this._debug&&"stackTraceLimit"in Error&&(Error.stackTraceLimit=50)}destroy(){this._cache.forAll(([e])=>e.destroy()),this._cache.clear(),this._context=null}get context(){return this._context}get precompiling(){return this._precompiling}set precompiling(e){this._precompiling=e,0===e&&this.context.rctx.gl.flush()}precompile(e,t=c){++this.precompiling,this.get(e,t),--this.precompiling}get(t,i=c,r){const n=i.key.code;let s=this._cache.get(t,n)?.[0];if(null==s){if(s=new t(this.context,i,r),this._debug){if(0===this._precompiling){const r=`Uncached ${s.declaredClass} compile in ${(new Error).stack}\n for configuration\n${i.decode()}`+this._debugCachedConfigurations(i,t);throw console.log(r),new e("shader:uncached-compile",r)}this._debug.set(s,new o(i,(new Error).stack))}this._cache.set(t,n,[s,this._frame])}return s}getCompiled(e,t=c,i){++this.precompiling;const r=this.get(e,t,i);return--this.precompiling,r.compiled?r:null}frameUpdate(){this._debug&&(this._cache.forAll(([t],i)=>{if(!t.unused||t.ignoreUnused)return;const r=this._debug?.get(t),o=`Unused ${t.declaredClass} for\n${r?.configuration.decode(t.key)} \nfrom\n${r?.stack}`+this._debugCachedConfigurations(r?.configuration,i);throw console.log(o),new e("shader:unused-precompile",o)}),++this._frame)}async reloadAll(){const e=new Array;this._cache.forEach(t=>e.push(n(t))),await Promise.all(e)}_debugCachedConfigurations(e,t){if(!e)return"";const i=this._cache.getInner(t);if(i?.size){let t="\n\n cached configurations:\n";return t+=Array.from(i.values()).map(([t,i])=>`at frame ${i}: ${e.decode(t.key)}`).sort().join("\n\n"),t}return""}}class o{constructor(e,t){this.configuration=e,this.stack=t}}async function n(e){let t=!0;e.forEach(async([e])=>{await e.reload(t),t=!1})}const c=new i;export{c as NoConfiguration,r as ShaderTechniqueRepository};
2
+ import e from"../../../../../core/Error.js";import"../../../../../core/has.js";import{NestedMap as t}from"../../../../../core/NestedMap.js";import{ShaderTechniqueConfiguration as i}from"./ShaderTechniqueConfiguration.js";class r{constructor(e){this._context=e,this._debug=null,this._precompiling=this._debug?0:1,this._cache=new t,this._frame=0,this._debug&&"stackTraceLimit"in Error&&(Error.stackTraceLimit=50)}destroy(){this._cache.forAll(([e])=>e.destroy()),this._cache.clear(),this._context=null}get context(){return this._context}get precompiling(){return this._precompiling}set precompiling(e){this._precompiling=e,0===e&&this.context.rctx.gl.flush()}precompile(e,t=c){++this.precompiling,this.get(e,t),--this.precompiling}get(t,i=c,r){const n=i.key.code;let s=this._cache.get(t,n)?.[0];if(null==s){if(s=new t(this.context,i,r),this._debug){if(0===this._precompiling){const r=`Uncached ${s.declaredClass} compile in ${(new Error).stack}\n for configuration\n${i.decode()}`+this._debugCachedConfigurations(i,t);throw console.log(r),new e("shader:uncached-compile",r)}this._debug.set(s,new o(i,(new Error).stack))}this._cache.set(t,n,[s,this._frame])}return s}getCompiled(e,t=c,i){++this.precompiling;const r=this.get(e,t,i);return--this.precompiling,r.compiled?r:null}frameUpdate(){this._debug&&(this._cache.forAll(([t],i)=>{if(!t.unused||t.ignoreUnused)return;const r=this._debug?.get(t),o=`Unused ${t.declaredClass} for\n${r?.configuration.decode(t.key)}\n at frame ${this._frame} from\n${r?.stack}`+this._debugCachedConfigurations(r?.configuration,i);throw console.log(o,t.compiled),new e("shader:unused-precompile",o)}),++this._frame)}async reloadAll(){const e=new Array;this._cache.forEach(t=>e.push(n(t))),await Promise.all(e)}_debugCachedConfigurations(e,t){if(!e)return"";const i=this._cache.getInner(t);if(i?.size){let t="\n\n cached configurations:\n";return t+=Array.from(i.values()).map(([t,i])=>`at frame ${i}: ${e.decode(t.key)}`).sort().join("\n\n"),t}return""}}class o{constructor(e,t){this.configuration=e,this.stack=t}}async function n(e){let t=!0;e.forEach(async([e])=>{await e.reload(t),t=!1})}const c=new i;export{c as NoConfiguration,r as ShaderTechniqueRepository};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{parameter as o,ShaderTechniqueConfiguration as s}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";class t extends s{constructor(){super(...arguments),this.useFloatBlend=!0,this.hasEmissive=!1}}e([o()],t.prototype,"useFloatBlend",void 0),e([o()],t.prototype,"hasEmissive",void 0);export{t as FogTechniqueConfiguration};
2
+ import{__decorate as s}from"tslib";import{parameter as o}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{OITResolutionConfiguration as e}from"../../shaders/oitResolution.glsl.js";class i extends e{constructor(){super(...arguments),this.hasEmissive=!1}}s([o()],i.prototype,"hasEmissive",void 0);export{i as FogTechniqueConfiguration};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/output/ReadDepth.glsl.js";import"../../core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js";import"../../core/shaderLibrary/util/CameraSpace.glsl.js";import"../../core/shaderModules/BooleanBindUniform.js";import"../../core/shaderModules/Float2DrawUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DDrawUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./GlobalIlluminationColorQuantization.glsl.js";import"../../shaders/ditherNoise.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{G as GlobalIlluminationBlurDrawParameters,b as build}from"../../../../../chunks/GlobalIlluminationBlur.glsl.js";
2
+ import"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/output/ReadDepth.glsl.js";import"../../core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js";import"../../core/shaderLibrary/util/CameraSpace.glsl.js";import"../../core/shaderModules/BooleanBindUniform.js";import"../../core/shaderModules/Float2DrawUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DDrawUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./GlobalIlluminationColorQuantization.glsl.js";import"../../shaders/ditherNoise.glsl.js";import"../../shaders/oitResolution.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{G as GlobalIlluminationBlurDrawParameters,b as build}from"../../../../../chunks/GlobalIlluminationBlur.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{releaseMaybe as e}from"../../../../../core/maybe.js";import{watch as r,syncAndInitial as i}from"../../../../../core/reactiveUtils.js";import{property as s,subclass as o}from"../../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{length as n}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as l}from"../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{getReferenceEllipsoid as h}from"../../../../../geometry/ellipsoidUtils.js";import{InternalRenderCategory as m}from"../../../webgl.js";import{TransparentEnvironment as c}from"../TransparentEnvironment.js";import{G as u}from"../../../../../chunks/GlowBlur.glsl.js";import{GlowBlurTechnique as p}from"./GlowBlurTechnique.js";import{GlowBlurTechniqueConfiguration as _}from"./GlowBlurTechniqueConfiguration.js";import{G as d,a as g,m as b}from"../../../../../chunks/GlowComposition.glsl.js";import{GlowCompositionTechnique as f}from"./GlowCompositionTechnique.js";import{GlowCompositionTechniqueConfiguration as P}from"./GlowCompositionTechniqueConfiguration.js";import{floatBlendReductionFactor as w}from"../../shaders/oitResolution.glsl.js";import{ColorAttachment1 as C,DepthStencilAttachment as T}from"../../../../webgl/enums.js";let v=class extends c{constructor(t){super(t),this.consumes={required:[m.TRANSPARENT_ENVIRONMENT,"emissive"]},this.produces=m.TRANSPARENT_ENVIRONMENT,this._mode=0,this._intensity=.5,this._scatteringFactors={realistic:new d([.8,.12,.05,.02,.01,0],1),cartographicMin:new d([.4,.18,.25,.12,.05,0],1),cartographicDefault:new d([1.17,1.08,.78,.4,.26,.11],4),cartographicMax:new d([3.59,3.9,2.46,1.4,.93,.44],13)},this._blurHorizontalConfiguration=new _,this._blurVerticalConfiguration=new _,this._compositeConfiguration=new P,this._compositionParameters=new g,this._blurParameters=new u,this._blurScalePerLod=3.06,this._logicalBlurRadius=.0037;const e=h(t.view.spatialReference);this._atmosphereRadius=e.radius+e.atmosphereHeight,this._blurVerticalConfiguration.glowStage=1}initialize(){this.addHandles([r(()=>this._updateParameters(),()=>{},i)])}_updateParameters(){const t=this.view.environment.lighting.glow;this._mode=null==t?this.view.environment.atmosphereEnabled?0:2:1,t&&(this._intensity=t.intensity),this._compositionParameters.minDisperse.preset=this._preset,this.requestRender(1)}render(t){const r=t.find(({name:t})=>t===m.TRANSPARENT_ENVIRONMENT),i=r.getAttachment(C);if(!i?.attachment)return r;const s=r.getTexture(),o=r.getAttachment(T),a=this.fboCache,{fullWidth:l,fullHeight:h}=this.bindParameters.camera,c=this.renderingContext;this._compositeConfiguration.useFloatBlend=this._blurHorizontalConfiguration.useFloatBlend=this._blurVerticalConfiguration.useFloatBlend=this.bindParameters.useFloatBlend.value,this._compositionParameters.fogOpacity=this.view.stage.renderView.fog?.strength??0,this._compositionParameters.color=s,this._compositionParameters.emission=i.attachment,this._compositeConfiguration.blurEnabled=2!==this._mode;const u=this.techniques.getCompiled(p,this._blurHorizontalConfiguration),_=this.techniques.getCompiled(p,this._blurVerticalConfiguration),d=this.techniques.getCompiled(f,this._compositeConfiguration);if(!u||!_||!d)return this.requestRender(1),r;if(!this._compositeConfiguration.blurEnabled){const t=a.acquire(s.descriptor.width,s.descriptor.height,this.produces);return this._setupFBO(t,l,h),c.bindTechnique(d,this.bindParameters,this._compositionParameters),c.screen.draw(),t.attachDepth(o),t.attachColor(i,C),t}const g=this.camera,b=n(g.eye);this._compositionParameters.atmosphereC=b**2-this._atmosphereRadius**2,this._renderGlowMipMap(u,_);const P=a.acquire(s.descriptor.width,s.descriptor.height,this.produces);return P.acquireColor(C,this.bindParameters.useFloatBlend.value?8:5,"emissive glow"),this._setupFBO(P,l,h,!0),c.bindTechnique(d,this.bindParameters,this._compositionParameters),c.screen.draw(),this._compositionParameters.lodTexture=e(this._compositionParameters.lodTexture),P.attachDepth(o),P}_renderGlowMipMap(t,e){const r=this.fboCache,{fullWidth:i,fullHeight:s}=this.camera,o=this.renderingContext,n=5;this._blurParameters.input=this._compositionParameters.emission,this._blurParameters.inputScale=w,this._blurParameters.level=0,this._blurParameters.blurRadius=this._logicalBlurRadius,a(this._blurParameters.size,.5*i,.5*s);let l=Math.floor(this._blurParameters.size[0]),h=Math.floor(this._blurParameters.size[1]);const m=r.acquire(l,h,"glow horizontal",8);for(this._compositionParameters.lodTexture=r.acquire(l,h,"glow mipmap",9);l>1&&h>1&&this._blurParameters.level<n;)this._setupFBO(m,l,h),o.bindTechnique(t,this.bindParameters,this._blurParameters),o.screen.draw(),r.debugCallback?.(`glow horizontal ${this._blurParameters.level}`,m.fbo),this._blurParameters.inputScale=1,this._blurParameters.input=m.getTexture(),this._setupFBO(this._compositionParameters.lodTexture,l,h,!1,this._blurParameters.level),o.bindTechnique(e,this.bindParameters,this._blurParameters),o.screen.draw(),r.debugCallback?.(this._compositionParameters.lodTexture.name,this._compositionParameters.lodTexture.fbo),a(this._blurParameters.size,.5*l,.5*h),l=Math.floor(this._blurParameters.size[0]),h=Math.floor(this._blurParameters.size[1]),this._blurParameters.input=this._compositionParameters.lodTexture.getTexture(),this._blurParameters.blurRadius*=this._blurScalePerLod,++this._blurParameters.level;m.release(),this._compositionParameters.lodTexture.fbo.level=0}get _preset(){return 0===this._mode?this._scatteringFactors.realistic.preset:this._intensity<=.5?b(this._scatteringFactors.cartographicMin.preset,this._scatteringFactors.cartographicDefault.preset,2*this._intensity):b(this._scatteringFactors.cartographicDefault.preset,this._scatteringFactors.cartographicMax.preset,2*(this._intensity-.5))}_setupFBO(t,e,r,i=!1,s=0){t.fbo.level=s;const o=this.renderingContext;o.bindFramebuffer(t.fbo),o.setViewport(0,0,e,r),o.setClearColor(0,0,0,0),o.clear(16384),i&&o.clearBuffer(1,l)}get test(){return{compositionParameters:this._compositionParameters,blurParameters:this._blurParameters,preset:this._preset,setMinDisperse:(t,e)=>{0===this._mode?this._scatteringFactors.realistic.preset[t]=e:(this._scatteringFactors.cartographicMin.preset[t]=e,this._scatteringFactors.cartographicMax.preset[t]=e)}}}};t([s()],v.prototype,"consumes",void 0),t([s()],v.prototype,"produces",void 0),v=t([o("esri.views.3d.webgl-engine.effects.glow.Glow")],v);export{v as Glow};
2
+ import{__decorate as e}from"tslib";import{releaseMaybe as t}from"../../../../../core/maybe.js";import{watch as r,syncAndInitial as i}from"../../../../../core/reactiveUtils.js";import{property as s,subclass as o}from"../../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{length as n}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as l}from"../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{getReferenceEllipsoid as h}from"../../../../../geometry/ellipsoidUtils.js";import{InternalRenderCategory as m}from"../../../webgl.js";import{TransparentEnvironment as c}from"../TransparentEnvironment.js";import{G as u}from"../../../../../chunks/GlowBlur.glsl.js";import{GlowBlurTechnique as p}from"./GlowBlurTechnique.js";import{GlowBlurTechniqueConfiguration as _}from"./GlowBlurTechniqueConfiguration.js";import{G as d,a as g,m as b}from"../../../../../chunks/GlowComposition.glsl.js";import{GlowCompositionTechnique as f}from"./GlowCompositionTechnique.js";import{GlowCompositionTechniqueConfiguration as P}from"./GlowCompositionTechniqueConfiguration.js";import{floatBlendReductionFactor as w}from"../../shaders/oitResolution.glsl.js";import{ColorAttachment1 as C,DepthStencilAttachment as T}from"../../../../webgl/enums.js";let v=class extends c{constructor(e){super(e),this.consumes={required:[m.TRANSPARENT_ENVIRONMENT,"emissive"]},this.produces=m.TRANSPARENT_ENVIRONMENT,this._scatteringFactors={realistic:new d([.8,.12,.05,.02,.01,0],1),cartographicMin:new d([.4,.18,.25,.12,.05,0],1),cartographicDefault:new d([1.17,1.08,.78,.4,.26,.11],4),cartographicMax:new d([3.59,3.9,2.46,1.4,.93,.44],13)},this._blurHorizontalConfiguration=new _,this._blurVerticalConfiguration=new _,this._compositeConfiguration=new P,this._compositionParameters=new g,this._blurParameters=new u,this._blurScalePerLod=3.06,this._logicalBlurRadius=.0037;const t=h(e.view.spatialReference);this._atmosphereRadius=t.radius+t.atmosphereHeight,this._blurVerticalConfiguration.glowStage=1}initialize(){this.addHandles([r(()=>this._updateParameters(),()=>{},i)])}_updateParameters(){this._compositionParameters.minDisperse.preset=this._preset,this.requestRender(1)}render(e){const r=e.find(({name:e})=>e===m.TRANSPARENT_ENVIRONMENT),i=r.getAttachment(C);if(!i?.attachment)return r;const s=r.getTexture(),o=r.getAttachment(T),a=this.fboCache,{fullWidth:l,fullHeight:h}=this.bindParameters.camera,c=this.renderingContext;this._compositeConfiguration.useFloatBlend=this._blurHorizontalConfiguration.useFloatBlend=this._blurVerticalConfiguration.useFloatBlend=this.bindParameters.useFloatBlend.value,this._compositionParameters.fogOpacity=this.view.stage.renderView.fog?.strength??0,this._compositionParameters.color=s,this._compositionParameters.emission=i.attachment,this._compositeConfiguration.blurEnabled=2!==this._mode;const u=this.techniques.getCompiled(p,this._blurHorizontalConfiguration),_=this.techniques.getCompiled(p,this._blurVerticalConfiguration),d=this.techniques.getCompiled(f,this._compositeConfiguration);if(!u||!_||!d)return this.requestRender(1),r;if(!this._compositeConfiguration.blurEnabled){const e=a.acquire(s.descriptor.width,s.descriptor.height,this.produces);return this._setupFBO(e,l,h),c.bindTechnique(d,this.bindParameters,this._compositionParameters),c.screen.draw(),e.attachDepth(o),e.attachColor(i,C),e}const g=this.camera,b=n(g.eye);this._compositionParameters.atmosphereC=b**2-this._atmosphereRadius**2,this._renderGlowMipMap(u,_);const P=a.acquire(s.descriptor.width,s.descriptor.height,this.produces);return P.acquireColor(C,this.bindParameters.useFloatBlend.value?8:5,"emissive glow"),this._setupFBO(P,l,h,!0),c.bindTechnique(d,this.bindParameters,this._compositionParameters),c.screen.draw(),this._compositionParameters.lodTexture=t(this._compositionParameters.lodTexture),P.attachDepth(o),P}_renderGlowMipMap(e,t){const r=this.fboCache,{fullWidth:i,fullHeight:s}=this.camera,o=this.renderingContext,n=5;this._blurParameters.input=this._compositionParameters.emission,this._blurParameters.inputScale=w,this._blurParameters.level=0,this._blurParameters.blurRadius=this._logicalBlurRadius,a(this._blurParameters.size,.5*i,.5*s);let l=Math.floor(this._blurParameters.size[0]),h=Math.floor(this._blurParameters.size[1]);const m=r.acquire(l,h,"glow horizontal",8);for(this._compositionParameters.lodTexture=r.acquire(l,h,"glow mipmap",9);l>1&&h>1&&this._blurParameters.level<n;)this._setupFBO(m,l,h),o.bindTechnique(e,this.bindParameters,this._blurParameters),o.screen.draw(),r.debugCallback?.(`glow horizontal ${this._blurParameters.level}`,m.fbo),this._blurParameters.inputScale=1,this._blurParameters.input=m.getTexture(),this._setupFBO(this._compositionParameters.lodTexture,l,h,!1,this._blurParameters.level),o.bindTechnique(t,this.bindParameters,this._blurParameters),o.screen.draw(),r.debugCallback?.(this._compositionParameters.lodTexture.name,this._compositionParameters.lodTexture.fbo),a(this._blurParameters.size,.5*l,.5*h),l=Math.floor(this._blurParameters.size[0]),h=Math.floor(this._blurParameters.size[1]),this._blurParameters.input=this._compositionParameters.lodTexture.getTexture(),this._blurParameters.blurRadius*=this._blurScalePerLod,++this._blurParameters.level;m.release(),this._compositionParameters.lodTexture.fbo.level=0}get _preset(){return 0===this._mode?this._scatteringFactors.realistic.preset:this._intensity<=.5?b(this._scatteringFactors.cartographicMin.preset,this._scatteringFactors.cartographicDefault.preset,2*this._intensity):b(this._scatteringFactors.cartographicDefault.preset,this._scatteringFactors.cartographicMax.preset,2*(this._intensity-.5))}get _mode(){return null==this.view.environment.lighting.glow?this.view.environment.atmosphereEnabled?0:2:1}get _intensity(){return this.view.environment.lighting.glow?.intensity??0}_setupFBO(e,t,r,i=!1,s=0){e.fbo.level=s;const o=this.renderingContext;o.bindFramebuffer(e.fbo),o.setViewport(0,0,t,r),o.setClearColor(0,0,0,0),o.clear(16384),i&&o.clearBuffer(1,l)}get test(){return{compositionParameters:this._compositionParameters,blurParameters:this._blurParameters,preset:this._preset,setMinDisperse:(e,t)=>{0===this._mode?this._scatteringFactors.realistic.preset[e]=t:(this._scatteringFactors.cartographicMin.preset[e]=t,this._scatteringFactors.cartographicMax.preset[e]=t)}}}};e([s()],v.prototype,"consumes",void 0),e([s()],v.prototype,"produces",void 0),v=e([o("esri.views.3d.webgl-engine.effects.glow.Glow")],v);export{v as Glow};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as o}from"tslib";import{parameter as e,ShaderTechniqueConfiguration as t}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";class r extends t{constructor(){super(...arguments),this.useFloatBlend=!0,this.glowStage=0}}o([e()],r.prototype,"useFloatBlend",void 0),o([e({count:2})],r.prototype,"glowStage",void 0);export{r as GlowBlurTechniqueConfiguration};
2
+ import{__decorate as o}from"tslib";import{parameter as t}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{OITResolutionConfiguration as e}from"../../shaders/oitResolution.glsl.js";class r extends e{constructor(){super(...arguments),this.glowStage=0}}o([t({count:2})],r.prototype,"glowStage",void 0);export{r as GlowBlurTechniqueConfiguration};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{parameter as o,ShaderTechniqueConfiguration as r}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";class t extends r{constructor(){super(...arguments),this.useFloatBlend=!0,this.blurEnabled=!1}}e([o()],t.prototype,"useFloatBlend",void 0),e([o()],t.prototype,"blurEnabled",void 0);export{t as GlowCompositionTechniqueConfiguration};
2
+ import{__decorate as o}from"tslib";import{parameter as r}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{OITResolutionConfiguration as e}from"../../shaders/oitResolution.glsl.js";class s extends e{constructor(){super(...arguments),this.blurEnabled=!1}}o([r()],s.prototype,"blurEnabled",void 0);export{s as GlowCompositionTechniqueConfiguration};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import r from"../../../../../core/Logger.js";import{abortMaybe as t,disposeMaybe as s}from"../../../../../core/maybe.js";import{throwIfAborted as i,isAbortError as a}from"../../../../../core/promiseUtils.js";import{watch as o,syncAndInitial as n}from"../../../../../core/reactiveUtils.js";import{property as h,subclass as l}from"../../../../../core/accessorSupport/decorators.js";import{requestImage as u}from"../../../../../request/image.js";import{InternalRenderCategory as c}from"../../../webgl.js";import m from"../../../webgl/RenderNode.js";import{SMAABlendWeightsTechnique as d}from"./SMAABlendWeightsTechnique.js";import{SMAABlurTechnique as p}from"./SMAABlurTechnique.js";import{SMAAEdgeDetectTechnique as b}from"./SMAAEdgeDetectTechnique.js";import{SMAAPassParameters as f}from"./SMAAPassParameters.js";import T from"../../../../webgl/Texture.js";import{TextureDescriptor as x}from"../../../../webgl/TextureDescriptor.js";let _=class extends m{constructor(e){super(e),this.produces="disabled",this.consumes={required:[c.ANTIALIASING]},this._areaTexture=null,this._searchTexture=null,this._smaaParameters=new f}initialize(){this.addHandles([o(()=>this.isEnabled(),e=>e?this.view.addUpdatingPromise(this.enable()):this.disable(),n)])}async enable(){if(this.destroyed)return;if(this.produces=c.ANTIALIASING,this.requestRender(1),this._abortController||this._areaTexture&&this._searchTexture)return;this._abortController=new AbortController;const e=this._abortController.signal;try{const r=await import("./SMAAData.js");i(e),await this._loadTextures(r,e),i(e),this.requestRender(1)}catch(t){a(t)||r.getLogger(this).errorOnce(t)}this._abortController=null}async _loadTextures(e,r){i(r);const[t,s]=await Promise.allSettled([u(e.areaTexture,{signal:r}),u(e.searchTexure,{signal:r})]);if(i(r),"fulfilled"!==t.status||"fulfilled"!==s.status)return;const a=this.renderingContext;this._areaTexture=g(a,9729,6407,t.value),this._searchTexture=g(a,9728,6409,s.value)}disable(){this.produces="disabled",this.requestRender(1)}destroy(){this._abortController=t(this._abortController),this._searchTexture=s(this._searchTexture),this._areaTexture=s(this._areaTexture)}render(e){const r=e.find(({name:e})=>e===c.ANTIALIASING),t=this.techniques.getCompiled(b),s=this.techniques.getCompiled(d),i=this.techniques.getCompiled(p);if(!(this._areaTexture&&this._searchTexture&&t&&s&&i))return this.requestRender(1),r;const{width:a,height:o}=r.fbo,n=this.renderingContext;n.setViewport(0,0,a,o);const h=this.fboCache.acquire(a,o,"smaa edges",2);n.bindFramebuffer(h.fbo),n.setClearColor(0,0,0,1),n.clear(16384),this._smaaParameters.color=r.getTexture();const l=this.bindParameters;n.bindTechnique(t,l,this._smaaParameters),n.screen.draw();const u=this.fboCache.acquire(a,o,"smaa blend");n.bindFramebuffer(u.fbo),n.setClearColor(0,0,1,1),n.clear(16384),this._smaaParameters.inputTexture=h.getTexture(),this._smaaParameters.areaTexture=this._areaTexture,this._smaaParameters.searchTexture=this._searchTexture,n.bindTechnique(s,l,this._smaaParameters),n.screen.draw(),h.release();const m=this.fboCache.acquire(a,o,c.ANTIALIASING);return n.bindFramebuffer(m.fbo),n.setClearColor(0,1,0,1),n.clear(16384),this._smaaParameters.inputTexture=u.getTexture(),n.bindTechnique(i,l,this._smaaParameters),n.screen.draw(),u.release(),m}};function g(e,r,t,s){const i=new x(s.width,s.height);return i.pixelFormat=t,i.wrapMode=33071,i.samplingMode=r,new T(e,i,s)}e([h()],_.prototype,"produces",void 0),e([h()],_.prototype,"consumes",void 0),e([h({constructOnly:!0})],_.prototype,"isEnabled",void 0),e([h()],_.prototype,"_abortController",void 0),_=e([l("esri.views.3d.webgl-engine.effects.smaa.SMAA")],_);export{_ as SMAA};
2
+ import{__decorate as e}from"tslib";import r from"../../../../../core/Logger.js";import{abortMaybe as t,disposeMaybe as s}from"../../../../../core/maybe.js";import{throwIfAborted as a,isAbortError as i}from"../../../../../core/promiseUtils.js";import{watch as o,syncAndInitial as n}from"../../../../../core/reactiveUtils.js";import{property as h,subclass as l}from"../../../../../core/accessorSupport/decorators.js";import{requestImage as u}from"../../../../../request/image.js";import{InternalRenderCategory as c}from"../../../webgl.js";import m from"../../../webgl/RenderNode.js";import{SMAABlendWeightsTechnique as d}from"./SMAABlendWeightsTechnique.js";import{SMAABlurTechnique as p}from"./SMAABlurTechnique.js";import{SMAAEdgeDetectTechnique as b}from"./SMAAEdgeDetectTechnique.js";import{SMAAPassParameters as f}from"./SMAAPassParameters.js";import{ColorAttachment1 as T}from"../../../../webgl/enums.js";import g from"../../../../webgl/Texture.js";import{TextureDescriptor as x}from"../../../../webgl/TextureDescriptor.js";let _=class extends m{constructor(e){super(e),this.produces="disabled",this.consumes={required:[c.ANTIALIASING]},this._areaTexture=null,this._searchTexture=null,this._smaaParameters=new f}initialize(){this.addHandles([o(()=>this.isEnabled(),e=>e?this.view.addUpdatingPromise(this.enable()):this.disable(),n)])}async enable(){if(this.destroyed)return;if(this.produces=c.ANTIALIASING,this.requestRender(1),this._abortController||this._areaTexture&&this._searchTexture)return;this._abortController=new AbortController;const e=this._abortController.signal;try{const r=await import("./SMAAData.js");a(e),await this._loadTextures(r,e),a(e),this.requestRender(1)}catch(t){i(t)||r.getLogger(this).errorOnce(t)}this._abortController=null}async _loadTextures(e,r){a(r);const[t,s]=await Promise.allSettled([u(e.areaTexture,{signal:r}),u(e.searchTexure,{signal:r})]);if(a(r),"fulfilled"!==t.status||"fulfilled"!==s.status)return;const i=this.renderingContext;this._areaTexture=A(i,9729,6407,t.value),this._searchTexture=A(i,9728,6409,s.value)}disable(){this.produces="disabled",this.requestRender(1)}destroy(){this._abortController=t(this._abortController),this._searchTexture=s(this._searchTexture),this._areaTexture=s(this._areaTexture)}render(e){const r=e.find(({name:e})=>e===c.ANTIALIASING),t=this.techniques.getCompiled(b),s=this.techniques.getCompiled(d),a=this.techniques.getCompiled(p);if(!(this._areaTexture&&this._searchTexture&&t&&s&&a))return this.requestRender(1),r;const{width:i,height:o}=r.fbo,n=this.renderingContext;n.setViewport(0,0,i,o);const h=this.fboCache.acquire(i,o,"smaa edges",2);n.bindFramebuffer(h.fbo),n.setClearColor(0,0,0,1),n.clear(16384),this._smaaParameters.color=r.getTexture();const l=this.bindParameters;n.bindTechnique(t,l,this._smaaParameters),n.screen.draw();const u=this.fboCache.acquire(i,o,"smaa blend");n.bindFramebuffer(u.fbo),n.setClearColor(0,0,1,1),n.clear(16384),this._smaaParameters.inputTexture=h.getTexture(),this._smaaParameters.areaTexture=this._areaTexture,this._smaaParameters.searchTexture=this._searchTexture,n.bindTechnique(s,l,this._smaaParameters),n.screen.draw(),h.release();const m=this.fboCache.acquire(i,o,c.ANTIALIASING);n.bindFramebuffer(m.fbo),n.setClearColor(0,1,0,1),n.clear(16384),this._smaaParameters.inputTexture=u.getTexture(),n.bindTechnique(a,l,this._smaaParameters),n.screen.draw(),u.release();const f=r.getAttachment(T);return f&&m.attachColor(f,T),m}};function A(e,r,t,s){const a=new x(s.width,s.height);return a.pixelFormat=t,a.wrapMode=33071,a.samplingMode=r,new g(e,a,s)}e([h()],_.prototype,"produces",void 0),e([h()],_.prototype,"consumes",void 0),e([h({constructOnly:!0})],_.prototype,"isEnabled",void 0),e([h()],_.prototype,"_abortController",void 0),_=e([l("esri.views.3d.webgl-engine.effects.smaa.SMAA")],_);export{_ as SMAA};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../../../../chunks/OITDimOpaque.glsl.js";import"../../shaders/alphaCutoff.glsl.js";import"../../shaders/oitResolution.glsl.js";import"../../../../webgl/ShaderBuilder.js";export{O as OITBlendPassParameters,b as build}from"../../../../../chunks/OITBlend.glsl.js";
2
+ import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"./oitBlendFragment.glsl.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/OITBlend.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{O as e}from"../../../../../chunks/OITBlend.glsl.js";import{OITBlendEmissionTechnique as i}from"./OITBlendEmissionTechnique.js";import{OITBlendEmissionTechniqueConfiguration as s}from"./OITBlendEmissionTechniqueConfiguration.js";import{OITBlendTechnique as t}from"./OITBlendTechnique.js";import{OITBlendTechniqueConfiguration as n}from"./OITBlendTechniqueConfiguration.js";import{OITDimOpaqueTechnique as r}from"./OITDimOpaqueTechnique.js";import{OITDimOpaqueTechniqueConfiguration as o}from"./OITDimOpaqueTechniqueConfiguration.js";import{ColorAttachment1 as a,ColorAttachment2 as u,DrawBufferNone as h}from"../../../../webgl/enums.js";class m{constructor(i){this._techniques=i,this._parameters=new e,this._blendConfiguration=new n,this._dimOpaqueConfiguration=new o,this._blendEmissionConfiguration=new s}precompile(e,s,n){this._updateConfigurations(e,s,n);const{hasTransparentEmission:o,hasOpaqueEmission:a}=e;a&&1!==n&&this._techniques.precompile(r,this._dimOpaqueConfiguration),this._techniques.precompile(t,this._blendConfiguration),o&&0===n&&this._techniques.precompile(i,this._blendEmissionConfiguration)}blend(e,s,n,o,m,f){const{hasTransparentEmission:c,hasOpaqueEmission:p}=o;this._updateConfigurations(o,m,f),this._parameters.colorTexture=s.getTexture(),this._parameters.alphaTexture=s.getTexture(a),this._parameters.emissionTexture=s.getTexture(u),this._parameters.frontFaceTexture=n.getTexture(),this._parameters.frontFaceEmissionTexture=n.getTexture(a);const l=e.drawBuffers;if(p&&1!==f){const i=this._techniques.get(r,this._dimOpaqueConfiguration);e.bindTechnique(i,o,this._parameters),e.setDrawBuffers([h,a]),e.screen.draw()}const d=this._techniques.get(t,this._blendConfiguration);if(e.bindTechnique(d,o,this._parameters),p||c){const i=l.slice();i[1]=h,e.setDrawBuffers(i),e.screen.draw()}else e.setDrawBuffers(l),e.screen.draw();if(c&&0===f){const s=this._techniques.get(i,this._blendEmissionConfiguration);e.bindTechnique(s,o,this._parameters),e.setDrawBuffers([h,a]),e.screen.draw()}e.setDrawBuffers(l)}_updateConfigurations(e,i,s){this._blendConfiguration.useFloatBlend=this._dimOpaqueConfiguration.useFloatBlend=this._blendEmissionConfiguration.useFloatBlend=e.useFloatBlend.value,this._blendConfiguration.computeHudOcclusion=i,this._blendConfiguration.hasOpaqueEmission=e.hasOpaqueEmission,this._blendConfiguration.frontFaceMask=1===s}}export{m as OITBlend};
2
+ import{O as e}from"../../../../../chunks/OITBlendEmission.glsl.js";import{OITBlendEmissionTechnique as i}from"./OITBlendEmissionTechnique.js";import{OITBlendFragmentTechniqueConfiguration as s}from"./OITBlendFragmentTechniqueConfiguration.js";import{OITBlendTechnique as t}from"./OITBlendTechnique.js";import{OITBlendTechniqueConfiguration as n}from"./OITBlendTechniqueConfiguration.js";import{OITDimOpaqueTechnique as r}from"./OITDimOpaqueTechnique.js";import{OITResolutionConfiguration as o}from"../../shaders/oitResolution.glsl.js";import{ColorAttachment1 as a,ColorAttachment2 as u,DrawBufferNone as h}from"../../../../webgl/enums.js";class m{constructor(i){this._techniques=i,this._parameters=new e,this._blendConfiguration=new n,this._dimOpaqueConfiguration=new s,this._blendEmissionConfiguration=new o}precompile(e,s,n){this._updateConfigurations(e,s,n);const{hasTransparentEmission:o,hasOpaqueEmission:a}=e;a&&1!==n&&this._techniques.precompile(r,this._dimOpaqueConfiguration),this._techniques.precompile(t,this._blendConfiguration),o&&0===n&&this._techniques.precompile(i,this._blendEmissionConfiguration)}blend(e,s,n,o,m,f){this._updateConfigurations(o,m,f),this._parameters.colorTexture=s.getTexture(),this._parameters.alphaTexture=s.getTexture(a),this._parameters.emissionTexture=s.getTexture(u),this._parameters.frontFaceTexture=n.getTexture(),this._parameters.frontFaceEmissionTexture=n.getTexture(a);const l=e.drawBuffers,{hasOpaqueEmission:p,hasTransparentEmission:c}=o;if(p&&1!==f){const i=this._techniques.get(r,this._dimOpaqueConfiguration);e.bindTechnique(i,o,this._parameters),e.setDrawBuffers([h,a]),e.screen.draw()}const d=this._techniques.get(t,this._blendConfiguration);if(e.bindTechnique(d,o,this._parameters),p||c){const i=l.slice();i[1]=h,e.setDrawBuffers(i),e.screen.draw()}else e.setDrawBuffers(l),e.screen.draw();if(c&&0===f){const s=this._techniques.get(i,this._blendEmissionConfiguration);e.bindTechnique(s,o,this._parameters),e.setDrawBuffers([h,a]),e.screen.draw()}e.setDrawBuffers(l)}_updateConfigurations(e,i,s){this._blendConfiguration.useFloatBlend=this._dimOpaqueConfiguration.useFloatBlend=this._blendEmissionConfiguration.useFloatBlend=e.useFloatBlend.value,this._blendConfiguration.computeHudOcclusion=i,this._blendConfiguration.hasOpaqueEmission=0===s&&e.hasOpaqueEmission,this._blendConfiguration.frontFaceMask=1===s}}export{m as OITBlend};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../../../../chunks/OITDimOpaque.glsl.js";import"../../shaders/alphaCutoff.glsl.js";import"../../shaders/oitResolution.glsl.js";import"../../../../webgl/ShaderBuilder.js";export{a as OITBlendEmissionPassParameters,b as build}from"../../../../../chunks/OITBlendEmission.glsl.js";
2
+ import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./oitBlendFragment.glsl.js";import"../../shaders/alphaCutoff.glsl.js";import"../../shaders/oitResolution.glsl.js";import"../../../../webgl/ShaderBuilder.js";export{O as OITBlendEmissionPassParameters,b as build}from"../../../../../chunks/OITBlendEmission.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../../core/shaderTechnique/ShaderTechnique.js";import{O as o}from"../../../../../chunks/OITBlendEmission.glsl.js";import{makePipelineState as n,defaultColorWrite as t,unpremultipliedAlphaToPremultipliedAlpha as l}from"../../../../webgl/renderState.js";let c=class extends i{constructor(){super(...arguments),this.shader=new s(o,()=>import("./OITBlendEmission.glsl.js"))}initializePipeline(){return n({blending:l,colorWrite:t})}};c=e([r("esri.views.3d.webgl-engine.effects.transparency.OITBlendEmissionTechnique")],c);export{c as OITBlendEmissionTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/OITBlendEmission.glsl.js";import{makePipelineState as n,defaultColorWrite as t,add as l}from"../../../../webgl/renderState.js";let c=class extends i{constructor(){super(...arguments),this.shader=new s(o,()=>import("./OITBlendEmission.glsl.js"))}initializePipeline(){return n({blending:l,colorWrite:t})}};c=e([r("esri.views.3d.webgl-engine.effects.transparency.OITBlendEmissionTechnique")],c);export{c as OITBlendEmissionTechnique};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{__decorate as o}from"tslib";import{parameter as r}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{OITResolutionConfiguration as e}from"../../shaders/oitResolution.glsl.js";class s extends e{constructor(){super(...arguments),this.frontFaceMask=!1}}o([r()],s.prototype,"frontFaceMask",void 0);export{s as OITBlendFragmentTechniqueConfiguration};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/OITBlend.glsl.js";import{makePipelineState as t,defaultColorWrite as n,unpremultipliedAlphaToPremultipliedAlpha as l}from"../../../../webgl/renderState.js";let c=class extends o{constructor(){super(...arguments),this.shader=new s(i,()=>import("./OITBlend.glsl.js"))}initializePipeline(){return t({blending:l,colorWrite:n})}};c=e([r("esri.views.3d.webgl-engine.effects.transparency.OITBlendTechnique")],c);export{c as OITBlendTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{O as i}from"../../../../../chunks/OITBlend.glsl.js";import{makePipelineState as t,defaultColorWrite as n,unpremultipliedAlphaToPremultipliedAlpha as l}from"../../../../webgl/renderState.js";let c=class extends o{constructor(){super(...arguments),this.shader=new s(i,()=>import("./OITBlend.glsl.js"))}initializePipeline(){return t({blending:l,colorWrite:n})}};c=e([r("esri.views.3d.webgl-engine.effects.transparency.OITBlendTechnique")],c);export{c as OITBlendTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as o}from"tslib";import{parameter as t,ShaderTechniqueConfiguration as e}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";class s extends e{constructor(){super(...arguments),this.useFloatBlend=!0,this.computeHudOcclusion=!1,this.hasOpaqueEmission=!1,this.frontFaceMask=!1}}o([t()],s.prototype,"useFloatBlend",void 0),o([t()],s.prototype,"computeHudOcclusion",void 0),o([t()],s.prototype,"hasOpaqueEmission",void 0),o([t()],s.prototype,"frontFaceMask",void 0);export{s as OITBlendTechniqueConfiguration};
2
+ import{__decorate as o}from"tslib";import{parameter as e}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{OITBlendFragmentTechniqueConfiguration as i}from"./OITBlendFragmentTechniqueConfiguration.js";class s extends i{constructor(){super(...arguments),this.computeHudOcclusion=!1,this.hasOpaqueEmission=!1}}o([e()],s.prototype,"computeHudOcclusion",void 0),o([e()],s.prototype,"hasOpaqueEmission",void 0);export{s as OITBlendTechniqueConfiguration};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/util/EmissionDimming.glsl.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../shaders/alphaCutoff.glsl.js";import"../../shaders/oitResolution.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{O as OITDimOpaquePassParameters,b as build}from"../../../../../chunks/OITDimOpaque.glsl.js";
2
+ import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/util/EmissionDimming.glsl.js";import"../../core/shaderModules/glsl.js";import"./oitBlendFragment.glsl.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/OITDimOpaque.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/OITDimOpaque.glsl.js";import{makePipelineState as t,defaultColorWrite as a,modulateDestination as n}from"../../../../webgl/renderState.js";let c=class extends s{constructor(){super(...arguments),this.shader=new i(o,()=>import("./OITDimOpaque.glsl.js"))}initializePipeline(){return t({blending:n,colorWrite:a})}};c=e([r("esri.views.3d.webgl-engine.effects.transparency.OITDimOpaqueTechnique")],c);export{c as OITDimOpaqueTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{O as o}from"../../../../../chunks/OITDimOpaque.glsl.js";import{makePipelineState as t,defaultColorWrite as a,modulateDestination as n}from"../../../../webgl/renderState.js";let c=class extends s{constructor(){super(...arguments),this.shader=new i(o,()=>import("./OITDimOpaque.glsl.js"))}initializePipeline(){return t({blending:n,colorWrite:a})}};c=e([r("esri.views.3d.webgl-engine.effects.transparency.OITDimOpaqueTechnique")],c);export{c as OITDimOpaqueTechnique};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{If as e}from"../../core/shaderModules/glsl.js";import{Texture2DPassUniform as r}from"../../core/shaderModules/Texture2DPassUniform.js";import{alphaCutoff as o}from"../../shaders/alphaCutoff.glsl.js";import{oitResolution as t}from"../../shaders/oitResolution.glsl.js";import{NoParameters as a}from"../../../../webgl/NoParameters.js";class n extends a{}function l(a,n){const{frontFaceMask:l,useFloatBlend:c}=n;a.include(t,n),a.include(o),a.uniforms.add(new r("colorTexture",e=>e.colorTexture),new r("alphaTexture",e=>e.alphaTexture),new r("frontFaceTexture",e=>e.frontFaceTexture)).code.add(`\n vec4 oitBlendFragment() {\n float srcAlpha = texture(alphaTexture, uv).r * floatBlendInputScale;\n if(srcAlpha < alphaCutoff) {\n return vec4(0.0);\n }\n vec4 frontFace = texture(frontFaceTexture, uv);\n ${e(l,"if (frontFace.a == 0.0) return vec4(0.0);")}\n\n vec4 srcColor = texture(colorTexture, uv);\n ${e(!c,"float frontWeight = srcAlpha * floatBlendOutputScale;\n frontWeight = clamp((frontWeight - 0.9) * 10.0, 0.0, 1.0);\n\n float toAlpha = (1.0 + frontFace.a) * 0.5;\n frontFace.a = mix(frontFace.a, toAlpha, frontWeight);")}\n vec3 backColor = srcColor.rgb * floatBlendInputScale / srcAlpha;\n return vec4(mix(backColor, frontFace.rgb, frontFace.a), 1.0 - srcColor.a);\n }\n `)}export{n as OITBlendFragmentPassParameters,l as oitBlendFragment};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{watch as t}from"../../../../core/reactiveUtils.js";import{property as i,subclass as s}from"../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{copy as r,set as n,scale as o,floor as h,subtract as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as u,set as m,positiveInfinity as c,equals as d}from"../../../../geometry/support/aaBoundingBox.js";import{InternalRenderCategory as _}from"../../webgl.js";import{addWraparound as g}from"../../layers/i3s/I3SUtil.js";import C from"../../webgl/RenderNode.js";import{G as f}from"../../../../chunks/GaussianSplat.glsl.js";import{G as P}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as b}from"../shaders/GaussianSplatCompositionTechnique.js";import{GaussianSplatCompositionTechniqueConfiguration as v}from"../shaders/GaussianSplatCompositionTechniqueConfiguration.js";import{G as S}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as x}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatTechnique as q}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as w}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{ColorAttachment1 as R,DepthStencilAttachment as D,PrimitiveType as E}from"../../../webgl/enums.js";var y;let T=class extends C{static{y=this}constructor(e){super(e),this.produces=_.GAUSSIAN_SPLAT,this._slicePlaneEnabled=!1,this.layerView=null,this._passParameters=new f,this._compositionPassParameters=new P,this._depthCompositionPassParameters=new S,this._compositionConfiguration=new v,this._clipBox=u(),this._previousCameraDirection=p(),this._previousSortRequestCameraDirection=p(),this._tileCullingRevision=0,this._sortRequestDirectionEpsilon=.01,this._directionChangeEpsilon=.001,this._configuration=new w(e.view.state.isGlobal),m(this._clipBox,c)}async initialize(){this.addHandles([t(()=>this.view.state.camera,()=>this._onCameraChange()),t(()=>2===this.view.state.mode,()=>this.requestRender(1))])}render(e){const t=e.find(({name:e})=>e===this.produces);if(this._updateConfigurations(),this._handleFading(),!this._data.visibleGaussians||!this._data.orderTexture.texture||!this._data.textureAtlas.texture)return t;const i=t.getAttachment(R);this._compositionConfiguration.hasEmission=null!=i;const s=this.techniques.getCompiled(q,this._configuration),a=this.techniques.getCompiled(b,this._compositionConfiguration),r=this.techniques.getCompiled(x);if(!s||!r||!a)return this.requestRender(1),t;const{fullWidth:n,fullHeight:o}=this.bindParameters.camera;this._prepareParameters(o,n);const h=this.renderingContext,l=this.fboCache,p=l.acquire(n,o,"gaussian color output"),u=t.getAttachment(D);p.attachDepth(u),this._renderGaussianColorAndDepth(p,s);const m=l.acquire(n,o,this.produces);return this._depthCompositionPassParameters.splatDepth=p.getTexture(R),m.attachDepth(t.getAttachment(D)),h.bindFramebuffer(m.fbo),h.bindTechnique(r,this.bindParameters,this._depthCompositionPassParameters),h.screen.draw(),this._compositionPassParameters.color=t.getTexture(),this._compositionPassParameters.splatColor=p.getTexture(),i?(m.acquireColor(R,8,"emissive"),this._compositionPassParameters.emission=t.getTexture(R)):this._compositionPassParameters.emission=null,h.bindFramebuffer(m.fbo),h.bindTechnique(a,this.bindParameters,this._compositionPassParameters),h.screen.draw(),p.release(),m}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(e){this._slicePlaneEnabled!==e&&(this._slicePlaneEnabled=e,this.requestRender(1))}set clippingBox(e){const t=e||c;this._hasSameClipBox(t)||(m(this._clipBox,t),this._tileCullingRevision=g(this._tileCullingRevision,1),this._data.requestSort(),this.requestRender(1))}get clippingBox(){return this._clippingEnabled?this._clipBox:null}get tileCullingRevision(){return this._tileCullingRevision}get _clippingEnabled(){return!d(this._clipBox,c,(e,t)=>e===t)}get _isIdle(){return 2===this.view.state.mode}get _data(){return this.layerView.data}get _fadeHelper(){return this.layerView.fadeHelper}_updateConfigurations(){const{idleMinimumOpacity:e,nonIdleMinimumOpacity:t}=this.view.qualitySettings.gaussianSplat;this._configuration.alphaCutoff=this._isIdle?e:t,this._configuration.fadingEnabled=this._fadeHelper.fadingEnabled,this._configuration.receiveShadows=this.bindParameters.shadowMap.ready,this._configuration.hasShadowHighlights=this._configuration.receiveShadows&&this.bindParameters.hasShadowHighlights,this._configuration.clippingEnabled=this._clippingEnabled,this._configuration.hasSlicePlane=this._slicePlaneEnabled&&null!=this.bindParameters.slicePlane}_onCameraChange(){this._tileCullingRevision=g(this._tileCullingRevision,1);const e=this.view.state.camera.ray.direction;if(!this._directionChanged(e))return;if(r(this._previousCameraDirection,e),!this._shouldRequestSort(e))return;this._data.requestSort()&&r(this._previousSortRequestCameraDirection,e)}_directionChanged(e){return Math.abs(e[0]-this._previousCameraDirection[0])>this._directionChangeEpsilon||Math.abs(e[1]-this._previousCameraDirection[1])>this._directionChangeEpsilon||Math.abs(e[2]-this._previousCameraDirection[2])>this._directionChangeEpsilon}_shouldRequestSort(e){return Math.abs(e[0]-this._previousSortRequestCameraDirection[0])>this._sortRequestDirectionEpsilon||Math.abs(e[1]-this._previousSortRequestCameraDirection[1])>this._sortRequestDirectionEpsilon||Math.abs(e[2]-this._previousSortRequestCameraDirection[2])>this._sortRequestDirectionEpsilon}_prepareParameters(e,t){this._passParameters.splatOrder=this._data.orderTexture.texture,this._passParameters.splatFading=this._data.fadingTexture.texture,this._passParameters.splatAtlas=this._data.textureAtlas.texture;const i=Math.tan(.5*this.camera.fovY),s=i/e*t;a(this._passParameters.tanFov,s,i),this._passParameters.focalLength=e/(2*i);const n=this.view.qualitySettings.gaussianSplat,o=this._isIdle?n.idleMinimumSplatPixelRadius:n.nonIdleMinimumSplatPixelRadius;this._passParameters.minSplatRadius=o*Math.sqrt(t*e)/Math.sqrt(2073600),r(this._passParameters.origin,this.bindParameters.camera.eye),this._prepareHighPrecisionCameraPosition(),this._updateSlicePlaneLocalOrigin(),this._updateClipUniforms()}_updateClipUniforms(){const e=this.clippingBox||c,[t,i,s,a,r,o]=e,[h,l,p]=this.camera.eye,{clipMinCameraRelative:u,clipMaxCameraRelative:m}=this._passParameters;n(u,t-h,i-l,s-p),n(m,a-h,r-l,o-p)}_updateSlicePlaneLocalOrigin(){this._passParameters.slicePlaneLocalOrigin=this.camera.eye}_hasSameClipBox(e){return d(this._clipBox,e,(e,t)=>e===t)}_renderGaussianColorAndDepth(e,t){const i=this.renderingContext;e.acquireColor(R,5,"gaussian depth output"),i.bindFramebuffer(e.fbo),i.setClearColor(0,0,0,0),i.clear(16384),this.renderingContext.bindTechnique(t,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(E.TRIANGLE_STRIP,0,4,this._data.visibleGaussians)}_prepareHighPrecisionCameraPosition(){o(this._passParameters.tileCameraPosition,this.camera.eye,1/y.tileSize),h(this._passParameters.tileCameraPosition,this._passParameters.tileCameraPosition),o(this._passParameters.cameraDelta,this._passParameters.tileCameraPosition,y.tileSize),l(this._passParameters.cameraDelta,this.camera.eye,this._passParameters.cameraDelta)}_handleFading(){if(0===this._fadeHelper.numFadingTiles)return void(this._previousFrameStart=null);this._previousFrameStart??=this.view.stage.renderer.renderContext.time;const e=this.view.stage?.renderer.renderContext.time-this._previousFrameStart;this._fadeHelper.updateAllTileFading(e),this._previousFrameStart=this.view.stage.renderer.renderContext.time,this._data.fadingTexture.updateTexture(this._data.textureAtlas.pageAllocator.pageCount)}static{this.tileSize=2.048}};e([i()],T.prototype,"produces",void 0),e([i({constructOnly:!0})],T.prototype,"layerView",void 0),T=y=e([s("esri.views.3d.webgl-engine.lib.GaussianSplatRenderNode")],T);export{T as GaussianSplatRenderNode};
2
+ import{__decorate as e}from"tslib";import{watch as t}from"../../../../core/reactiveUtils.js";import{property as i,subclass as s}from"../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{copy as r,set as o,scale as n,floor as h,subtract as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as u,set as m,positiveInfinity as c,equals as d}from"../../../../geometry/support/aaBoundingBox.js";import{InternalRenderCategory as _}from"../../webgl.js";import{addWraparound as g}from"../../layers/i3s/I3SUtil.js";import C from"../../webgl/RenderNode.js";import{G as f}from"../../../../chunks/GaussianSplat.glsl.js";import{G as P}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as b}from"../shaders/GaussianSplatCompositionTechnique.js";import{GaussianSplatCompositionTechniqueConfiguration as v}from"../shaders/GaussianSplatCompositionTechniqueConfiguration.js";import{G as S}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as x}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatTechnique as q}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as w}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{ColorAttachment1 as R,DepthStencilAttachment as D,PrimitiveType as E}from"../../../webgl/enums.js";var y;let T=class extends C{static{y=this}constructor(e){super(e),this.produces=_.GAUSSIAN_SPLAT,this._slicePlaneEnabled=!1,this.layerView=null,this._passParameters=new f,this._compositionPassParameters=new P,this._depthCompositionPassParameters=new S,this._compositionConfiguration=new v,this._clipBox=u(),this._previousCameraDirection=p(),this._previousSortRequestCameraDirection=p(),this._tileCullingRevision=0,this._sortRequestDirectionEpsilon=.01,this._directionChangeEpsilon=.001,this._configuration=new w(e.view.state.isGlobal),m(this._clipBox,c)}async initialize(){this.addHandles([t(()=>this.view.state.camera,()=>this._onCameraChange()),t(()=>2===this.view.state.mode,()=>this.requestRender(1))])}render(e){const t=e.find(({name:e})=>e===this.produces);if(this._updateConfigurations(),this._handleFading(),!this._data.visibleGaussians||!this._data.orderTexture.texture||!this._data.textureAtlas.texture)return t;const i=t.getAttachment(R);this._compositionConfiguration.useFloatBlend=this.bindParameters.useFloatBlend.value,this._compositionConfiguration.hasEmission=null!=i;const s=this.techniques.getCompiled(q,this._configuration),a=this.techniques.getCompiled(b,this._compositionConfiguration),r=this.techniques.getCompiled(x);if(!s||!r||!a)return this.requestRender(1),t;const{fullWidth:o,fullHeight:n}=this.bindParameters.camera;this._prepareParameters(n,o);const h=this.renderingContext,l=this.fboCache,p=l.acquire(o,n,"gaussian color output"),u=t.getAttachment(D);p.attachDepth(u),this._renderGaussianColorAndDepth(p,s);const m=l.acquire(o,n,this.produces);return this._depthCompositionPassParameters.splatDepth=p.getTexture(R),m.attachDepth(t.getAttachment(D)),h.bindFramebuffer(m.fbo),h.bindTechnique(r,this.bindParameters,this._depthCompositionPassParameters),h.screen.draw(),this._compositionPassParameters.color=t.getTexture(),this._compositionPassParameters.splatColor=p.getTexture(),i?(m.acquireColor(R,8,"emissive"),this._compositionPassParameters.emission=t.getTexture(R)):this._compositionPassParameters.emission=null,h.bindFramebuffer(m.fbo),h.bindTechnique(a,this.bindParameters,this._compositionPassParameters),h.screen.draw(),p.release(),m}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(e){this._slicePlaneEnabled!==e&&(this._slicePlaneEnabled=e,this.requestRender(1))}set clippingBox(e){const t=e||c;this._hasSameClipBox(t)||(m(this._clipBox,t),this._tileCullingRevision=g(this._tileCullingRevision,1),this._data.requestSort(),this.requestRender(1))}get clippingBox(){return this._clippingEnabled?this._clipBox:null}get tileCullingRevision(){return this._tileCullingRevision}get _clippingEnabled(){return!d(this._clipBox,c,(e,t)=>e===t)}get _isIdle(){return 2===this.view.state.mode}get _data(){return this.layerView.data}get _fadeHelper(){return this.layerView.fadeHelper}_updateConfigurations(){const{idleMinimumOpacity:e,nonIdleMinimumOpacity:t}=this.view.qualitySettings.gaussianSplat;this._configuration.alphaCutoff=this._isIdle?e:t,this._configuration.fadingEnabled=this._fadeHelper.fadingEnabled,this._configuration.receiveShadows=this.bindParameters.shadowMap.ready,this._configuration.hasShadowHighlights=this._configuration.receiveShadows&&this.bindParameters.hasShadowHighlights,this._configuration.clippingEnabled=this._clippingEnabled,this._configuration.hasSlicePlane=this._slicePlaneEnabled&&null!=this.bindParameters.slicePlane}_onCameraChange(){this._tileCullingRevision=g(this._tileCullingRevision,1);const e=this.view.state.camera.ray.direction;if(!this._directionChanged(e))return;if(r(this._previousCameraDirection,e),!this._shouldRequestSort(e))return;this._data.requestSort()&&r(this._previousSortRequestCameraDirection,e)}_directionChanged(e){return Math.abs(e[0]-this._previousCameraDirection[0])>this._directionChangeEpsilon||Math.abs(e[1]-this._previousCameraDirection[1])>this._directionChangeEpsilon||Math.abs(e[2]-this._previousCameraDirection[2])>this._directionChangeEpsilon}_shouldRequestSort(e){return Math.abs(e[0]-this._previousSortRequestCameraDirection[0])>this._sortRequestDirectionEpsilon||Math.abs(e[1]-this._previousSortRequestCameraDirection[1])>this._sortRequestDirectionEpsilon||Math.abs(e[2]-this._previousSortRequestCameraDirection[2])>this._sortRequestDirectionEpsilon}_prepareParameters(e,t){this._passParameters.splatOrder=this._data.orderTexture.texture,this._passParameters.splatFading=this._data.fadingTexture.texture,this._passParameters.splatAtlas=this._data.textureAtlas.texture;const i=Math.tan(.5*this.camera.fovY),s=i/e*t;a(this._passParameters.tanFov,s,i),this._passParameters.focalLength=e/(2*i);const o=this.view.qualitySettings.gaussianSplat,n=this._isIdle?o.idleMinimumSplatPixelRadius:o.nonIdleMinimumSplatPixelRadius;this._passParameters.minSplatRadius=n*Math.sqrt(t*e)/Math.sqrt(2073600),r(this._passParameters.origin,this.bindParameters.camera.eye),this._prepareHighPrecisionCameraPosition(),this._updateSlicePlaneLocalOrigin(),this._updateClipUniforms()}_updateClipUniforms(){const e=this.clippingBox||c,[t,i,s,a,r,n]=e,[h,l,p]=this.camera.eye,{clipMinCameraRelative:u,clipMaxCameraRelative:m}=this._passParameters;o(u,t-h,i-l,s-p),o(m,a-h,r-l,n-p)}_updateSlicePlaneLocalOrigin(){this._passParameters.slicePlaneLocalOrigin=this.camera.eye}_hasSameClipBox(e){return d(this._clipBox,e,(e,t)=>e===t)}_renderGaussianColorAndDepth(e,t){const i=this.renderingContext;e.acquireColor(R,5,"gaussian depth output"),i.bindFramebuffer(e.fbo),i.setClearColor(0,0,0,0),i.clear(16384),this.renderingContext.bindTechnique(t,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(E.TRIANGLE_STRIP,0,4,this._data.visibleGaussians)}_prepareHighPrecisionCameraPosition(){n(this._passParameters.tileCameraPosition,this.camera.eye,1/y.tileSize),h(this._passParameters.tileCameraPosition,this._passParameters.tileCameraPosition),n(this._passParameters.cameraDelta,this._passParameters.tileCameraPosition,y.tileSize),l(this._passParameters.cameraDelta,this.camera.eye,this._passParameters.cameraDelta)}_handleFading(){if(0===this._fadeHelper.numFadingTiles)return void(this._previousFrameStart=null);this._previousFrameStart??=this.view.stage.renderer.renderContext.time;const e=this.view.stage?.renderer.renderContext.time-this._previousFrameStart;this._fadeHelper.updateAllTileFading(e),this._previousFrameStart=this.view.stage.renderer.renderContext.time,this._data.fadingTexture.updateTexture(this._data.textureAtlas.pageAllocator.pageCount)}static{this.tileSize=2.048}};e([i()],T.prototype,"produces",void 0),e([i({constructOnly:!0})],T.prototype,"layerView",void 0),T=y=e([s("esri.views.3d.webgl-engine.lib.GaussianSplatRenderNode")],T);export{T as GaussianSplatRenderNode};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{generateUID as r}from"../../../../core/uid.js";import{isColor as t}from"../core/shaderLibrary/ShaderOutput.js";import{updateParameters as e}from"../materials/internal/MaterialUtil.js";import{NoParameters as i}from"../../../webgl/NoParameters.js";class s{constructor(t,i){this.id=r(),this.supportsEdges=!1,this._renderPriority=0,this._parameters=new i,e(this._parameters,t),this.validateParameters(this._parameters)}get useIndexing(){return this.parameters.useIndexing??!1}get parameters(){return this._parameters}update(r){return!1}setParameters(r,t=!0){e(this._parameters,r)&&(this.validateParameters(this._parameters),t&&this._parametersChanged())}validateParameters(r){}shouldRender(r){return this.visible&&this.isVisibleForOutput(r.output)&&(!this.parameters.isDecoration||r.bind.decorations)&&0!==(this.parameters.renderOccluded&r.renderOccludedMask)}isVisibleForOutput(r){return!0}get renderPriority(){return this._renderPriority}set renderPriority(r){r!==this._renderPriority&&(this._renderPriority=r,this._parametersChanged())}_parametersChanged(){this.repository?.materialChanged(this)}get renderOccludedFlags(){return this.visible?this.parameters.renderOccluded:0}get testsTransparentRenderOrder(){return this.parameters.testsTransparentRenderOrder}get hasEmissions(){return 0}getConfiguration(r){return this.updateConfiguration(r),this._configuration}updateConfiguration(r){this._configuration.output=r.output,this._configuration.hasEmission=r.hasEmission&&t(r.output),this._configuration.hasHighlightMixTexture=10===r.output&&null!=r.highlightMixTexture,this._configuration.useFloatBlend=r.useFloatBlend.value,this._configuration.emissionDimmingPass=r.transparentWithoutDepthEmissionDimmingPass&&t(r.output)}}class a extends i{constructor(){super(...arguments),this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}}export{s as Material,a as MaterialParameters};
2
+ import{generateUID as r}from"../../../../core/uid.js";import{isColor as t}from"../core/shaderLibrary/ShaderOutput.js";import{updateParameters as e}from"../materials/internal/MaterialUtil.js";import{NoParameters as i}from"../../../webgl/NoParameters.js";class s{constructor(t,i){this.id=r(),this.supportsEdges=!1,this._renderPriority=0,this._parameters=new i,e(this._parameters,t),this.validateParameters(this._parameters)}get useIndexing(){return this.parameters.useIndexing??!1}get parameters(){return this._parameters}update(r){return!1}setParameters(r,t=!0){e(this._parameters,r)&&(this.validateParameters(this._parameters),t&&this._parametersChanged())}validateParameters(r){}shouldRender(r){return this.visible&&this.isVisibleForOutput(r.output)&&(!this.parameters.isDecoration||r.bind.decorations)&&0!==(this.parameters.renderOccluded&r.renderOccludedMask)}isVisibleForOutput(r){return!0}get renderPriority(){return this._renderPriority}set renderPriority(r){r!==this._renderPriority&&(this._renderPriority=r,this._parametersChanged())}_parametersChanged(){this.repository?.materialChanged(this)}get renderOccludedFlags(){return this.visible?this.parameters.renderOccluded:0}get testsTransparentRenderOrder(){return this.parameters.testsTransparentRenderOrder}get emissions(){return 0}getConfiguration(r){return this.updateConfiguration(r),this._configuration}updateConfiguration(r){this._configuration.output=r.output,this._configuration.hasEmission=r.hasEmission&&t(r.output),this._configuration.hasHighlightMixTexture=10===r.output&&null!=r.highlightMixTexture,this._configuration.useFloatBlend=r.useFloatBlend.value,this._configuration.emissionDimmingPass=r.transparentWithoutDepthEmissionDimmingPass&&t(r.output)}}class a extends i{constructor(){super(...arguments),this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}}export{s as Material,a as MaterialParameters};