@arcgis/core 5.1.0-next.94 → 5.1.0-next.95

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 (392) hide show
  1. package/Graphic.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/02aaeaa988e9e7d65a7f.js +1 -0
  4. package/assets/esri/core/workers/chunks/03a4543b94f9adeb1852.js +1 -0
  5. package/assets/esri/core/workers/chunks/05c52e8f187740da9b36.js +1 -0
  6. package/assets/esri/core/workers/chunks/0630ce1975c91ae362d9.js +1 -0
  7. package/assets/esri/core/workers/chunks/{7f0f10946f05a09b5654.js → 07ddf1b1f7602063ceb0.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{f04b49d80f422708d98c.js → 0e6b24e8864940ed9877.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{0981fe06796060e50d40.js → 0f527961805cd45c14e2.js} +1 -1
  10. package/assets/esri/core/workers/chunks/11a99ee68409a641810e.js +1 -0
  11. package/assets/esri/core/workers/chunks/11b0d3a825fe50dd1e84.js +1 -0
  12. package/assets/esri/core/workers/chunks/130abc6a353e4d79a1b1.js +1 -0
  13. package/assets/esri/core/workers/chunks/16006dc0cb95f7c291a5.js +1 -0
  14. package/assets/esri/core/workers/chunks/177472a6a9beb1590934.js +1 -0
  15. package/assets/esri/core/workers/chunks/19a9a555365a8363d34b.js +1 -0
  16. package/assets/esri/core/workers/chunks/1a68a249540fda9083a9.js +1 -0
  17. package/assets/esri/core/workers/chunks/1ae016e4f5e39c34a941.js +1 -0
  18. package/assets/esri/core/workers/chunks/{43f58604ba4a94a9167c.js → 1f3a676e7a4eae5ad566.js} +1 -1
  19. package/assets/esri/core/workers/chunks/23241e6093e245f9c774.js +1 -0
  20. package/assets/esri/core/workers/chunks/{8875e53097b25655ef67.js → 246253fbbb2ecea48f91.js} +1 -1
  21. package/assets/esri/core/workers/chunks/25d795a1697803d77e56.js +1 -0
  22. package/assets/esri/core/workers/chunks/268ed861c882740c805b.js +1 -0
  23. package/assets/esri/core/workers/chunks/{da008d6a3afb30d18392.js → 299b4eecd0288348c971.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{df8a3d3cac454d42e14d.js → 29aba121db7f00e0cf81.js} +1 -1
  25. package/assets/esri/core/workers/chunks/2b52c1c01cf568ba01fb.js +1 -0
  26. package/assets/esri/core/workers/chunks/2f6ba01ea8b8f193bea5.js +1 -0
  27. package/assets/esri/core/workers/chunks/3116a1c2b67a296ba86e.js +1 -0
  28. package/assets/esri/core/workers/chunks/31837f2f8859e2cf2efd.js +1 -0
  29. package/assets/esri/core/workers/chunks/3241e0ed26aff61ec213.js +1 -0
  30. package/assets/esri/core/workers/chunks/330da3828eefd8d72d3f.js +1 -0
  31. package/assets/esri/core/workers/chunks/359465b9726edcc70c83.js +1 -0
  32. package/assets/esri/core/workers/chunks/36ecb0082b8804b10fbf.js +1 -0
  33. package/assets/esri/core/workers/chunks/389e57aab12d52d72695.js +1 -0
  34. package/assets/esri/core/workers/chunks/38b1d2ffcc318ac0119d.js +1 -0
  35. package/assets/esri/core/workers/chunks/390717f079def83a0d9c.js +1 -0
  36. package/assets/esri/core/workers/chunks/{3397eae416622c64e628.js → 3f0483cbcd893acf240c.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{4378e544687fec4b06fb.js → 40afdb74517a7df59e0d.js} +1 -1
  38. package/assets/esri/core/workers/chunks/41e811138c96d85fd3e8.js +1 -0
  39. package/assets/esri/core/workers/chunks/43b5cfb34b11c4124b51.js +1 -0
  40. package/assets/esri/core/workers/chunks/{747e258f57f0543c836e.js → 43cc82373be791b7cb4c.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{1f141a007b1ef9b069c6.js → 4456bbb4b7dfe80c7477.js} +1 -1
  42. package/assets/esri/core/workers/chunks/44b30dfce12824ee1f33.js +1 -0
  43. package/assets/esri/core/workers/chunks/453c3b265481c80fc625.js +1 -0
  44. package/assets/esri/core/workers/chunks/4644e1b00fd4e628219d.js +1 -0
  45. package/assets/esri/core/workers/chunks/47dd2bfecc5c4b5f10f0.js +1 -0
  46. package/assets/esri/core/workers/chunks/4b19acf8bde5b2e80692.js +1 -0
  47. package/assets/esri/core/workers/chunks/4faaf61d20e20fcf6c18.js +1 -0
  48. package/assets/esri/core/workers/chunks/{82215d7a64b8be02eff1.js → 509beae195c900a85e0b.js} +1 -1
  49. package/assets/esri/core/workers/chunks/5217d676749bca59d90f.js +1 -0
  50. package/assets/esri/core/workers/chunks/{53750e85f3128993a43a.js → 545c38789267e3487dbd.js} +1 -1
  51. package/assets/esri/core/workers/chunks/54dad475dc806a38c287.js +1 -0
  52. package/assets/esri/core/workers/chunks/5648379d1ed4ca02eedd.js +1 -0
  53. package/assets/esri/core/workers/chunks/{fb75d4bce1e86eed017a.js → 5853925d2f7fb550bd2e.js} +5 -5
  54. package/assets/esri/core/workers/chunks/58579c53be1a44bd08d2.js +1 -0
  55. package/assets/esri/core/workers/chunks/5ea0096a282e87a269bd.js +1 -0
  56. package/assets/esri/core/workers/chunks/63378b0b4265a547656b.js +1 -0
  57. package/assets/esri/core/workers/chunks/{3a691f848152e3818a48.js → 642be1619c0e76355cb6.js} +1 -1
  58. package/assets/esri/core/workers/chunks/65b0b4e808479187da00.js +1 -0
  59. package/assets/esri/core/workers/chunks/6666cd3bf1a3d175dc8c.js +1 -0
  60. package/assets/esri/core/workers/chunks/69a1cbf0af059548f96a.js +1 -0
  61. package/assets/esri/core/workers/chunks/6ae2408ac075b974e887.js +1 -0
  62. package/assets/esri/core/workers/chunks/{9b869a8bda9384f25464.js → 6b4c99c7648f37feec00.js} +1 -1
  63. package/assets/esri/core/workers/chunks/6b79c254897ece95b7a3.js +1 -0
  64. package/assets/esri/core/workers/chunks/6d66dc77af8d112c33c6.js +1 -0
  65. package/assets/esri/core/workers/chunks/71119398ec91f1b209d7.js +1 -0
  66. package/assets/esri/core/workers/chunks/71e12db99589c98a4357.js +1 -0
  67. package/assets/esri/core/workers/chunks/7536f0683e488159d8bd.js +1 -0
  68. package/assets/esri/core/workers/chunks/76589434d573111a8fb4.js +1 -0
  69. package/assets/esri/core/workers/chunks/7c2d2f22df057ba8cb50.js +1 -0
  70. package/assets/esri/core/workers/chunks/7d6299ab7b0db23ab961.js +1 -0
  71. package/assets/esri/core/workers/chunks/82b2acc6f181927de89c.js +1 -0
  72. package/assets/esri/core/workers/chunks/85a200aecc7a844c9566.js +1 -0
  73. package/assets/esri/core/workers/chunks/89250d268dc2554a9ece.js +1 -0
  74. package/assets/esri/core/workers/chunks/8a23a62cbf1c5b4019c5.js +1 -0
  75. package/assets/esri/core/workers/chunks/8ac8ef856ed9592c433b.js +1 -0
  76. package/assets/esri/core/workers/chunks/8bfe4841c83eb3abfbe8.js +1 -0
  77. package/assets/esri/core/workers/chunks/{c7b9df9a204f6206364a.js → 8de61993e114f453579b.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{01af2a0611386df64cb1.js → 8f992ff87173a3ca1621.js} +28 -24
  79. package/assets/esri/core/workers/chunks/9bb2251ba58932f85d13.js +1 -0
  80. package/assets/esri/core/workers/chunks/{d8ccc713c5ad93e7a0c3.js → 9bd713d96502ddc2ce25.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{8351012ceb466f01b8fd.js → 9d8e7839772029d83c93.js} +1 -1
  82. package/assets/esri/core/workers/chunks/a12fd6a445f42326642f.js +1 -0
  83. package/assets/esri/core/workers/chunks/a50fd0e66b01fe205033.js +1 -0
  84. package/assets/esri/core/workers/chunks/{51716e411fad624ac21c.js → a567d001fcfa1f1cdeea.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{3a6b8879702fb247328b.js → a68b5cb66c2c5e6b46e0.js} +1 -1
  86. package/assets/esri/core/workers/chunks/a8e2fbbfbdf1c3203d5e.js +1 -0
  87. package/assets/esri/core/workers/chunks/a94674826e5893c9d197.js +1 -0
  88. package/assets/esri/core/workers/chunks/aad02c7417648d881129.js +1 -0
  89. package/assets/esri/core/workers/chunks/ad329226c8b579d0964c.js +1 -0
  90. package/assets/esri/core/workers/chunks/afdc6fc453157528cf9b.js +1 -0
  91. package/assets/esri/core/workers/chunks/b2504657d3ef8769005e.js +1 -0
  92. package/assets/esri/core/workers/chunks/b7f5d51ac26f37837b3b.js +1 -0
  93. package/assets/esri/core/workers/chunks/b90db0829da3f96e4a19.js +1 -0
  94. package/assets/esri/core/workers/chunks/{359d3acb3953e64e5a78.js → ba7fe21a78ea37a02b7c.js} +1 -1
  95. package/assets/esri/core/workers/chunks/bd17ac2e6f1eb8cf7abf.js +1 -0
  96. package/assets/esri/core/workers/chunks/bd721bbc7afc75d3bddb.js +1 -0
  97. package/assets/esri/core/workers/chunks/bd9dae2d5ec199f8e9ba.js +1 -0
  98. package/assets/esri/core/workers/chunks/be19d4a6fb9b1c923127.js +1 -0
  99. package/assets/esri/core/workers/chunks/beba9f2213d8a850ddb6.js +1 -0
  100. package/assets/esri/core/workers/chunks/{d6f03f628ebfc28fdd23.js → bf6c6bc15b0d2d82d1a4.js} +2 -2
  101. package/assets/esri/core/workers/chunks/bf706a5d065a357de51b.js +1 -0
  102. package/assets/esri/core/workers/chunks/{baea6f86b2dbe067940e.js → bf73232057ebc1ecc0ad.js} +1 -1
  103. package/assets/esri/core/workers/chunks/c2589e5e0e0f81a378c2.js +1 -0
  104. package/assets/esri/core/workers/chunks/c321bcda8e8893577948.js +1 -0
  105. package/assets/esri/core/workers/chunks/c33f1f722499a5c6fc11.js +1 -0
  106. package/assets/esri/core/workers/chunks/c452c74ba9de218c3e57.js +1 -0
  107. package/assets/esri/core/workers/chunks/{700f7aa9cf7b13acaf5d.js → c514135bf7703ba69a47.js} +1 -1
  108. package/assets/esri/core/workers/chunks/c798a40418e7ff38042a.js +1 -0
  109. package/assets/esri/core/workers/chunks/ca6c128940ddbebcaaab.js +1 -0
  110. package/assets/esri/core/workers/chunks/{268f203d2492a03165ac.js → ce2ed9405ff1b704d35c.js} +1 -1
  111. package/assets/esri/core/workers/chunks/ce3e51c799a80648e46d.js +1 -0
  112. package/assets/esri/core/workers/chunks/{e81afc8a058a8ecc9b24.js → ce4e09b623ebb640c46c.js} +1 -1
  113. package/assets/esri/core/workers/chunks/cf7acf5acb6d322fd996.js +1 -0
  114. package/assets/esri/core/workers/chunks/{e0b27bceb397482bd0e8.js → d122431f3b0b88dcb488.js} +1 -1
  115. package/assets/esri/core/workers/chunks/d8c4fb66c733ab2f66d3.js +1 -0
  116. package/assets/esri/core/workers/chunks/d8d338665fe00494c826.js +1 -0
  117. package/assets/esri/core/workers/chunks/d93a4ccf8f0208dc6ad7.js +1 -0
  118. package/assets/esri/core/workers/chunks/de11ebcea2b8f9dfe65d.js +1 -0
  119. package/assets/esri/core/workers/chunks/e03713dee3205c96d53f.js +1 -0
  120. package/assets/esri/core/workers/chunks/e133840540abf20262a4.js +1 -0
  121. package/assets/esri/core/workers/chunks/{3092184350d66c79f610.js → e5d969214d9eda5c0b4c.js} +1 -1
  122. package/assets/esri/core/workers/chunks/e63e24101e7e92c62d98.js +1 -0
  123. package/assets/esri/core/workers/chunks/ead6e4d0a515c0913bee.js +1 -0
  124. package/assets/esri/core/workers/chunks/ee635172be7fdea69367.js +1 -0
  125. package/assets/esri/core/workers/chunks/f196ad0c7dbcbf632776.js +1 -0
  126. package/assets/esri/core/workers/chunks/f31deeedb2508e81293b.js +2 -0
  127. package/assets/esri/core/workers/chunks/f618ee43581e8de6ad0c.js +1 -0
  128. package/assets/esri/core/workers/chunks/f66262f8582909157f01.js +1 -0
  129. package/assets/esri/core/workers/chunks/{ea97619a4470f1540b99.js → f6ebec8d2248c719b89f.js} +1 -1
  130. package/assets/esri/core/workers/chunks/f948e4a80a7dbda70f2e.js +1 -0
  131. package/assets/esri/core/workers/chunks/f95e3333a65a0c09fd1e.js +1 -0
  132. package/assets/esri/core/workers/chunks/fa9ab152ea785b5e97e0.js +1 -0
  133. package/assets/esri/core/workers/chunks/fae147d03ed723ab234d.js +1 -0
  134. package/assets/esri/core/workers/chunks/fae79769df54eb4c4154.js +1 -0
  135. package/assets/esri/core/workers/chunks/{5a8fd2fd8a24f9290b7f.js → fd2afff07aaac8203c18.js} +1 -1
  136. package/assets/esri/core/workers/chunks/fdb7851e98e8d2ba48d3.js +1 -0
  137. package/assets/esri/core/workers/chunks/ff7708aaa2de720e3a47.js +1 -0
  138. package/assets/esri/core/workers/chunks/ffb8fa77297578afef7c.js +1 -0
  139. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
  140. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
  141. package/chunks/GaussianSplat.glsl.js +8 -8
  142. package/chunks/GlobalIllumination.glsl.js +31 -31
  143. package/chunks/OITBlend.glsl.js +3 -7
  144. package/chunks/OITBlendEmission.glsl.js +22 -0
  145. package/chunks/{OITDim.glsl.js → OITDimOpaque.glsl.js} +2 -2
  146. package/chunks/RibbonLine.glsl.js +57 -53
  147. package/chunks/arcgis-knowledge-client-core-simd.js +1 -1
  148. package/chunks/arcgis-knowledge-client-core.js +1 -1
  149. package/config.js +1 -1
  150. package/core/has.js +1 -1
  151. package/geometry/support/heightModelInfoUtils.js +1 -1
  152. package/kernel.js +1 -1
  153. package/layers/DimensionFeatureLayer.d.ts +7 -0
  154. package/layers/DimensionFeatureLayer.js +2 -0
  155. package/layers/catalog/CatalogFootprintLayer.js +1 -1
  156. package/layers/graphics/OptimizedFeature.js +1 -1
  157. package/layers/graphics/data/QueryEngineCapabilities.js +1 -1
  158. package/layers/graphics/data/optimizedFeatureQueryEngineAdapter.js +1 -1
  159. package/layers/graphics/featureConversionUtils.js +1 -1
  160. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  161. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  162. package/layers/mixins/ArcGISImageService.js +1 -1
  163. package/layers/mixins/FeatureReductionLayer.js +1 -1
  164. package/layers/support/capabilities.js +1 -1
  165. package/layers/support/layerUtils.js +1 -1
  166. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  167. package/layers/types.d.ts +1 -1
  168. package/networks/support/CircuitPathConnectivityElement.js +1 -1
  169. package/networks/support/networkFieldUtils.js +1 -1
  170. package/package.json +2 -2
  171. package/popup/Features.js +1 -1
  172. package/portal/schemas/definitions.js +1 -1
  173. package/rest/knowledgeGraph/ReplicaDefinition.d.ts +0 -3
  174. package/rest/knowledgeGraph/types.d.ts +1 -1
  175. package/rest/knowledgeGraph/wasmInterface/queryToWasmEncodedFactories.js +1 -1
  176. package/rest/knowledgeGraph/wasmInterface/replicaToWasmEncodedFactories.js +1 -1
  177. package/rest/support/Query.js +1 -1
  178. package/support/revision.js +1 -1
  179. package/symbols/cim/CIMEffects.js +1 -1
  180. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  181. package/symbols/cim/CIMSymbolHelper.js +1 -1
  182. package/symbols/cim/defaultCIMValues.js +1 -1
  183. package/symbols/cim/effects/EffectAddControlPoints.js +1 -1
  184. package/symbols/cim/effects/EffectArrow.js +1 -1
  185. package/symbols/cim/effects/EffectBuffer.js +1 -1
  186. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  187. package/symbols/cim/effects/EffectCut.js +1 -1
  188. package/symbols/cim/effects/EffectDashes.js +1 -1
  189. package/symbols/cim/effects/EffectDonut.js +1 -1
  190. package/symbols/cim/effects/EffectEnclosingPolygon.js +1 -1
  191. package/symbols/cim/effects/EffectHelper.js +1 -1
  192. package/symbols/cim/effects/EffectJog.js +1 -1
  193. package/symbols/cim/effects/EffectMove.js +1 -1
  194. package/symbols/cim/effects/EffectOffset.js +1 -1
  195. package/symbols/cim/effects/EffectRadial.js +1 -1
  196. package/symbols/cim/effects/EffectTaperedPolygon.js +1 -1
  197. package/symbols/cim/effects/EffectWave.js +1 -1
  198. package/symbols/cim/placements/PlacementAtRatioPositions.js +1 -1
  199. package/symbols/cim/types.d.ts +7 -1
  200. package/symbols/cim/utils.js +1 -1
  201. package/symbols/dimensions/effects/LinearDimensionArrowEffect.js +1 -1
  202. package/symbols/dimensions/effects/LinearDimensionExtensionLineEffect.js +1 -1
  203. package/symbols/dimensions/effects/LinearDimensionLeaderLineEffect.js +1 -1
  204. package/symbols/dimensions/effects/LinearDimensionLineEffect.js +1 -1
  205. package/symbols/dimensions/effects/LinearDimensionPointEffect.js +1 -1
  206. package/symbols/dimensions/effects/LinearDimensionTextEffect.js +1 -1
  207. package/symbols/types.d.ts +1 -1
  208. package/views/2d/engine/vectorTiles/decluttering/SymbolDeclutterer.js +1 -1
  209. package/views/2d/engine/vectorTiles/decluttering/SymbolRepository.js +1 -1
  210. package/views/2d/engine/webgl/alignmentUtils.js +1 -1
  211. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  212. package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
  213. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  214. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  215. package/views/2d/engine/webgl/shaderGraph/techniques/fill/AFillMeshWriter.js +1 -1
  216. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js +1 -1
  217. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js +1 -1
  218. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js +1 -1
  219. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js +1 -1
  220. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js +1 -1
  221. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js +1 -1
  222. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  223. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js +1 -1
  224. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js +1 -1
  225. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js +1 -1
  226. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  227. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
  228. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js +1 -1
  229. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  230. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  231. package/views/2d/layerViewModuleImportUtils.js +1 -1
  232. package/views/2d/layers/DimensionLayerView2D.js +2 -0
  233. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  234. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  235. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +2 -0
  236. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  237. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  238. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  239. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  240. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  241. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  242. package/views/2d/layers/features/schema/SourceSchema.js +1 -1
  243. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  244. package/views/2d/layers/features/sources/strategies/AFeatureTileLoadStrategy.js +1 -1
  245. package/views/2d/layers/features/sources/strategies/FeatureHybridTileLoadStrategy.js +2 -0
  246. package/views/2d/layers/features/sources/strategies/chunks/ByReferenceTileSourceChunk.js +2 -0
  247. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  248. package/views/2d/layers/features/support/DisplayIdGenerator.js +1 -1
  249. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  250. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  251. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  252. package/views/2d/layers/features/support/FeatureSetReaderPBFHeader.js +1 -1
  253. package/views/2d/layers/features/support/RefCounted.js +2 -0
  254. package/views/2d/types.d.ts +2 -0
  255. package/views/3d/layerViewModuleImportUtils.js +1 -1
  256. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  257. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  258. package/views/3d/types.d.ts +2 -0
  259. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +1 -1
  260. package/views/3d/webgl-engine/core/shaderLibrary/util/{ComputeCovariance.glsl.js → GaussianSplatCovariance.glsl.js} +15 -9
  261. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatEvaluation.glsl.js +43 -0
  262. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatTextureFetch.glsl.js +36 -0
  263. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  264. package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
  265. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  266. package/views/3d/webgl-engine/effects/transparency/OITBlendEmission.glsl.js +2 -0
  267. package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechnique.js +2 -0
  268. package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechniqueConfiguration.js +2 -0
  269. package/views/3d/webgl-engine/effects/transparency/OITBlendTechniqueConfiguration.js +1 -1
  270. package/views/3d/webgl-engine/effects/transparency/{OITDim.glsl.js → OITDimOpaque.glsl.js} +1 -1
  271. package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechnique.js +2 -0
  272. package/views/3d/webgl-engine/effects/transparency/{OITDimTechniqueConfiguration.js → OITDimOpaqueTechniqueConfiguration.js} +1 -1
  273. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  274. package/views/PopupView.js +1 -1
  275. package/views/layers/FeatureLikeLayerView.d.ts +2 -1
  276. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +12 -12
  277. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  278. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  279. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  280. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  281. package/widgets/FeatureTable.d.ts +18 -3
  282. package/widgets/FeatureTable.js +1 -1
  283. package/widgets/Features/FeaturesViewModel.js +1 -1
  284. package/assets/esri/core/workers/chunks/015fc0a17b17d69cc3bb.js +0 -1
  285. package/assets/esri/core/workers/chunks/02e8fc598ee09cf1b678.js +0 -1
  286. package/assets/esri/core/workers/chunks/075a1e91a075efe59cd3.js +0 -1
  287. package/assets/esri/core/workers/chunks/146424b5717d0a645ee1.js +0 -1
  288. package/assets/esri/core/workers/chunks/15a070d4ac2087b79e8b.js +0 -1
  289. package/assets/esri/core/workers/chunks/169ca3724053fc046d1b.js +0 -1
  290. package/assets/esri/core/workers/chunks/17445fd8048966617d49.js +0 -1
  291. package/assets/esri/core/workers/chunks/1765dfeac20e34ce25b7.js +0 -1
  292. package/assets/esri/core/workers/chunks/1768f1a7e3caa6074d91.js +0 -1
  293. package/assets/esri/core/workers/chunks/1906416c84bab369bbd6.js +0 -1
  294. package/assets/esri/core/workers/chunks/198864c107fa2b24518c.js +0 -1
  295. package/assets/esri/core/workers/chunks/1a35121a0c2595a41fdb.js +0 -1
  296. package/assets/esri/core/workers/chunks/1f85646936200a399c15.js +0 -1
  297. package/assets/esri/core/workers/chunks/1ff3c15a51c4dc991806.js +0 -1
  298. package/assets/esri/core/workers/chunks/206bdfd868a9ef88f3a8.js +0 -1
  299. package/assets/esri/core/workers/chunks/2343b1105bc4c1b4a086.js +0 -1
  300. package/assets/esri/core/workers/chunks/2387613b855771a3e537.js +0 -1
  301. package/assets/esri/core/workers/chunks/2b0b398180ed98c2c84c.js +0 -1
  302. package/assets/esri/core/workers/chunks/3469df5c4846b0cee012.js +0 -1
  303. package/assets/esri/core/workers/chunks/34b6b5dd415c68f0b0d1.js +0 -1
  304. package/assets/esri/core/workers/chunks/36f6673b23579b88d8f7.js +0 -1
  305. package/assets/esri/core/workers/chunks/384c235d36f32769e32b.js +0 -1
  306. package/assets/esri/core/workers/chunks/38c28189f273636e4017.js +0 -1
  307. package/assets/esri/core/workers/chunks/3a183259805638c25363.js +0 -1
  308. package/assets/esri/core/workers/chunks/3efbb684c0409955186d.js +0 -1
  309. package/assets/esri/core/workers/chunks/3feec3d08424b94e1bcf.js +0 -1
  310. package/assets/esri/core/workers/chunks/460e693ad19fa77ffdc2.js +0 -1
  311. package/assets/esri/core/workers/chunks/47b3a5213539548ff3a6.js +0 -1
  312. package/assets/esri/core/workers/chunks/48549d3d7bf0154c0afa.js +0 -1
  313. package/assets/esri/core/workers/chunks/52b3a11c962810bc6dbe.js +0 -1
  314. package/assets/esri/core/workers/chunks/54c6e870262469d0d702.js +0 -1
  315. package/assets/esri/core/workers/chunks/55fd201ca5e10c6e4761.js +0 -1
  316. package/assets/esri/core/workers/chunks/561d45dc9421f80feca5.js +0 -1
  317. package/assets/esri/core/workers/chunks/566f6319ded0634769e0.js +0 -1
  318. package/assets/esri/core/workers/chunks/56717ff315c6ec874142.js +0 -1
  319. package/assets/esri/core/workers/chunks/56941e8bbd2d49bf2656.js +0 -1
  320. package/assets/esri/core/workers/chunks/5fccb372b4d5ee2f64cc.js +0 -1
  321. package/assets/esri/core/workers/chunks/60cee9a44929decd2474.js +0 -1
  322. package/assets/esri/core/workers/chunks/6124141ac642e4ce1454.js +0 -1
  323. package/assets/esri/core/workers/chunks/61fada8942b65fa0b5e1.js +0 -1
  324. package/assets/esri/core/workers/chunks/64cf18ba2869171a5a7a.js +0 -1
  325. package/assets/esri/core/workers/chunks/65c61171e6c6be5c5c2f.js +0 -1
  326. package/assets/esri/core/workers/chunks/6a3d207308b29651f397.js +0 -1
  327. package/assets/esri/core/workers/chunks/6d696beddcc5fbed5875.js +0 -1
  328. package/assets/esri/core/workers/chunks/71cfab6305f275cfb04e.js +0 -1
  329. package/assets/esri/core/workers/chunks/728ad5bbbcbf88d6249f.js +0 -1
  330. package/assets/esri/core/workers/chunks/7531bbcb6613c87a344e.js +0 -1
  331. package/assets/esri/core/workers/chunks/7b505112c7e6d9b7a239.js +0 -1
  332. package/assets/esri/core/workers/chunks/7b6c8be59ed87e386aa4.js +0 -1
  333. package/assets/esri/core/workers/chunks/7c820c5f6f05480d5050.js +0 -1
  334. package/assets/esri/core/workers/chunks/7ef51b0ebd560113ae7e.js +0 -1
  335. package/assets/esri/core/workers/chunks/80f4f686ce403cb2693f.js +0 -1
  336. package/assets/esri/core/workers/chunks/81d761c837b7456ec99f.js +0 -1
  337. package/assets/esri/core/workers/chunks/83f1871d04c979fa23b7.js +0 -1
  338. package/assets/esri/core/workers/chunks/85da2987e17b6755a94e.js +0 -1
  339. package/assets/esri/core/workers/chunks/87f7a674957f734b1b42.js +0 -1
  340. package/assets/esri/core/workers/chunks/8a3bff0f58483c1665f9.js +0 -1
  341. package/assets/esri/core/workers/chunks/8a5a827ee557d9f9a66e.js +0 -1
  342. package/assets/esri/core/workers/chunks/8b046e28f879079caada.js +0 -1
  343. package/assets/esri/core/workers/chunks/8d738e9acc2f222235ea.js +0 -1
  344. package/assets/esri/core/workers/chunks/8e1140725a72038627c2.js +0 -1
  345. package/assets/esri/core/workers/chunks/915e2711d3a2cfa402b2.js +0 -1
  346. package/assets/esri/core/workers/chunks/928dac64e6ba401d391a.js +0 -1
  347. package/assets/esri/core/workers/chunks/992525afdf11b2fb16d4.js +0 -1
  348. package/assets/esri/core/workers/chunks/9a5ef33d99a8f89956ff.js +0 -1
  349. package/assets/esri/core/workers/chunks/9c402657f63a4d5668d0.js +0 -1
  350. package/assets/esri/core/workers/chunks/9f51a69b8f1937a8794a.js +0 -1
  351. package/assets/esri/core/workers/chunks/a015c2f54eb91e43a1f4.js +0 -1
  352. package/assets/esri/core/workers/chunks/a232d05c0a055f398c6e.js +0 -1
  353. package/assets/esri/core/workers/chunks/a242ec19a7508de436da.js +0 -1
  354. package/assets/esri/core/workers/chunks/a25acccda8febac71a3d.js +0 -1
  355. package/assets/esri/core/workers/chunks/a432219de6a873f88776.js +0 -1
  356. package/assets/esri/core/workers/chunks/a76e14fe5e8b2f7ef9de.js +0 -2
  357. package/assets/esri/core/workers/chunks/a7f9f478bd1493fc3c76.js +0 -1
  358. package/assets/esri/core/workers/chunks/aac6a57edd7494125204.js +0 -1
  359. package/assets/esri/core/workers/chunks/af074b5b4e1d6baf5219.js +0 -1
  360. package/assets/esri/core/workers/chunks/afc0baf86ece710ef867.js +0 -1
  361. package/assets/esri/core/workers/chunks/b2662bfdbd1e3623ceb9.js +0 -1
  362. package/assets/esri/core/workers/chunks/b73c146d3e550eaf07eb.js +0 -1
  363. package/assets/esri/core/workers/chunks/b7af0e6b9aadbcaf6a0b.js +0 -1
  364. package/assets/esri/core/workers/chunks/bc78937986854e500b8e.js +0 -1
  365. package/assets/esri/core/workers/chunks/bd10d21545bca9a49de0.js +0 -1
  366. package/assets/esri/core/workers/chunks/bea170f08f5261e22d29.js +0 -1
  367. package/assets/esri/core/workers/chunks/bec3ee5ea945e1e07a35.js +0 -1
  368. package/assets/esri/core/workers/chunks/bf4dd8e50704e4040966.js +0 -1
  369. package/assets/esri/core/workers/chunks/c31ee5617c61a933cb0e.js +0 -1
  370. package/assets/esri/core/workers/chunks/c3e89c7c7b677bd18557.js +0 -1
  371. package/assets/esri/core/workers/chunks/cb81d524f12edcadb9bb.js +0 -1
  372. package/assets/esri/core/workers/chunks/cc0f3b9b153a0c232afe.js +0 -1
  373. package/assets/esri/core/workers/chunks/cd0c232f4e3868d91a05.js +0 -1
  374. package/assets/esri/core/workers/chunks/ce7ef7c4ca14d66d96f6.js +0 -1
  375. package/assets/esri/core/workers/chunks/d55cef8199b8246fea3f.js +0 -1
  376. package/assets/esri/core/workers/chunks/d8decaee2c780e1b5e35.js +0 -1
  377. package/assets/esri/core/workers/chunks/dc54d4a9fe1691862356.js +0 -1
  378. package/assets/esri/core/workers/chunks/de99500b0fcedf2c8a5c.js +0 -1
  379. package/assets/esri/core/workers/chunks/e18badd11f360cc2912b.js +0 -1
  380. package/assets/esri/core/workers/chunks/e6f1ed5e56f1d9862821.js +0 -1
  381. package/assets/esri/core/workers/chunks/e6fe8b5fbe95de01453b.js +0 -1
  382. package/assets/esri/core/workers/chunks/eaab5ac049622986e3bc.js +0 -1
  383. package/assets/esri/core/workers/chunks/ee7e9bca57160694b3c4.js +0 -1
  384. package/assets/esri/core/workers/chunks/ef0085aa743b33cb549f.js +0 -1
  385. package/assets/esri/core/workers/chunks/f0250cecb243b32cdba7.js +0 -1
  386. package/assets/esri/core/workers/chunks/f2beb4267b8d4cddfa3e.js +0 -1
  387. package/assets/esri/core/workers/chunks/f468c6ea2818a1f97e19.js +0 -1
  388. package/assets/esri/core/workers/chunks/f6c8e93ca2987e83f925.js +0 -1
  389. package/assets/esri/core/workers/chunks/fa4265db06e2721754a0.js +0 -1
  390. package/views/3d/webgl-engine/effects/transparency/OITDimTechnique.js +0 -2
  391. /package/assets/esri/core/workers/chunks/{d6f03f628ebfc28fdd23.js.LICENSE.txt → bf6c6bc15b0d2d82d1a4.js.LICENSE.txt} +0 -0
  392. /package/assets/esri/core/workers/chunks/{a76e14fe5e8b2f7ef9de.js.LICENSE.txt → f31deeedb2508e81293b.js.LICENSE.txt} +0 -0
@@ -1,28 +1,28 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{addMainLightDirection as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as r}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as i,If as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ColorAttachment1 as u}from"../views/webgl/enums.js";import{NoParameters as d}from"../views/webgl/NoParameters.js";import{ShaderBuilder as h}from"../views/webgl/ShaderBuilder.js";const p=.01,f=.008,g=.002,v=.5,x=.02,b=.1,w=.008,y=.012,S=.008,C=40,M=.095,F=.008,D=60,W=2,j=.0039,I=.25,z=1/3,B=2/3,G=2,P=.05,T=.15,$=.75,R=.15,L=16;class O extends d{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.frameCount=0,this.rayMarchMaxReach=R,this.rayMarchMaxSteps=L}}function E(d){const R=new h,L=R.fragment;return R.include(e),R.include(r),t(L),L.include(o),R.include(a,d),L.uniforms.add(new m("normalMap",e=>e.normalTexture),new m("depthMap",e=>e.depthTexture),new m("lastFrameColorTexture",(e,o)=>o.reprojection.lastFrameColor?.getTexture()),new m("lastFrameDepthTexture",(e,o)=>o.reprojection.lastFrameDepth?.attachment),new c("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new c("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(u)),new s("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new s("view",e=>e.camera.viewMatrix),new l("accumulatedFramesGI",e=>e.accumulatedFrames),new l("frameCount",e=>e.frameCount),new l("scaleGlobalIllumination",e=>e.scaleGlobalIllumination),new m("blueNoiseTex",e=>e.noiseTexture)),L.uniforms.add(new l("rayMarchMaxReach",e=>e.rayMarchMaxReach),new l("rayMarchMaxSteps",e=>e.rayMarchMaxSteps)),d.hasEmission&&L.uniforms.add(new m("lastFrameEmissionTexture",(e,o)=>o.reprojection.lastFrameEmission?.attachment)),L.constants.add("timeSamplesSize","float",64),L.constants.add("blueNoiseGridSize","float",8),L.code.add(i`
2
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as o}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{addMainLightDirection as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as r}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as l,If as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ColorAttachment1 as u}from"../views/webgl/enums.js";import{NoParameters as d}from"../views/webgl/NoParameters.js";import{ShaderBuilder as h}from"../views/webgl/ShaderBuilder.js";const p=.01,f=.008,g=.002,v=.5,x=.02,b=.1,w=.008,y=.012,S=.008,C=40,M=.095,F=.008,D=60,W=2,j=.0039,I=.25,z=1/3,B=2/3,G=2,P=.05,T=.15,$=.75,R=.15,L=16;class O extends d{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.frameCount=0,this.rayMarchMaxReach=R,this.rayMarchMaxSteps=L,this.emissionWeight=1}}function E(d){const R=new h,L=R.fragment;return R.include(e),R.include(r),t(L),L.include(o),R.include(a,d),L.uniforms.add(new m("normalMap",e=>e.normalTexture),new m("depthMap",e=>e.depthTexture),new m("lastFrameColorTexture",(e,o)=>o.reprojection.lastFrameColor?.getTexture()),new m("lastFrameDepthTexture",(e,o)=>o.reprojection.lastFrameDepth?.attachment),new c("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new c("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(u)),new s("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new s("view",e=>e.camera.viewMatrix),new i("accumulatedFramesGI",e=>e.accumulatedFrames),new i("frameCount",e=>e.frameCount),new i("scaleGlobalIllumination",e=>e.scaleGlobalIllumination),new m("blueNoiseTex",e=>e.noiseTexture)),L.uniforms.add(new i("rayMarchMaxReach",e=>e.rayMarchMaxReach),new i("rayMarchMaxSteps",e=>e.rayMarchMaxSteps),new i("emissionWeight",e=>e.emissionWeight)),d.hasEmission&&L.uniforms.add(new m("lastFrameEmissionTexture",(e,o)=>o.reprojection.lastFrameEmission?.attachment)),L.constants.add("timeSamplesSize","float",64),L.constants.add("blueNoiseGridSize","float",8),L.code.add(l`
3
3
  float computeIdleColorBlendWeight(float accumulatedFrames) {
4
4
  float idleColorBlendProgress = clamp(
5
- accumulatedFrames / ${i.float(C)},
5
+ accumulatedFrames / ${l.float(C)},
6
6
  0.0,
7
7
  1.0
8
8
  );
9
9
  return mix(
10
- ${i.float(y)},
11
- ${i.float(S)},
10
+ ${l.float(y)},
11
+ ${l.float(S)},
12
12
  idleColorBlendProgress
13
13
  );
14
14
  }
15
15
 
16
16
  float computeIdleOcclusionBlendWeight(float accumulatedFrames) {
17
17
  float idleOcclusionBlendProgress = clamp(
18
- accumulatedFrames / ${i.float(D)},
18
+ accumulatedFrames / ${l.float(D)},
19
19
  0.0,
20
20
  1.0
21
21
  );
22
22
  return mix(
23
- ${i.float(M)},
24
- ${i.float(F)},
25
- pow(idleOcclusionBlendProgress, ${i.float(W)})
23
+ ${l.float(M)},
24
+ ${l.float(F)},
25
+ pow(idleOcclusionBlendProgress, ${l.float(W)})
26
26
  );
27
27
  }
28
28
 
@@ -69,28 +69,28 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
69
69
  }
70
70
 
71
71
  float computeChromaWeight(vec3 color) {
72
- float gray = dot(color, vec3(${i.float(z)}));
72
+ float gray = dot(color, vec3(${l.float(z)}));
73
73
  vec3 deviationFromGray = color - gray;
74
74
  float chromaDistanceSquared = dot(deviationFromGray, deviationFromGray);
75
- float normalizedChroma = chromaDistanceSquared / ${i.float(B)};
75
+ float normalizedChroma = chromaDistanceSquared / ${l.float(B)};
76
76
 
77
- return clamp(normalizedChroma * ${i.float(G)}, 0.0, 1.0);
77
+ return clamp(normalizedChroma * ${l.float(G)}, 0.0, 1.0);
78
78
  }
79
79
 
80
80
  float computeColorBleedWeight(vec3 receiverColor, vec3 sourceColor) {
81
81
  float receiverChromaWeight = computeChromaWeight(receiverColor);
82
82
  float sourceChromaWeight = computeChromaWeight(sourceColor);
83
- float receiverAverageIntensity = dot(receiverColor, vec3(${i.float(z)}));
83
+ float receiverAverageIntensity = dot(receiverColor, vec3(${l.float(z)}));
84
84
 
85
85
  // Favor bright, neutral receivers lit by more saturated hit surfaces
86
86
  float bleedFactor =
87
- pow(receiverAverageIntensity, ${i.float(P)}) *
87
+ pow(receiverAverageIntensity, ${l.float(P)}) *
88
88
  (1.0 - receiverChromaWeight) *
89
- pow(sourceChromaWeight, ${i.float(T)});
89
+ pow(sourceChromaWeight, ${l.float(T)});
90
90
 
91
- return ${i.float($)} * clamp(bleedFactor, 0.0, 1.0);
91
+ return ${l.float($)} * clamp(bleedFactor, 0.0, 1.0);
92
92
  }
93
- `),R.outputs.add("fragGlobalIllumination","vec4",0),R.outputs.add("fragWeight","float",1),L.main.add(i`
93
+ `),R.outputs.add("fragGlobalIllumination","vec4",0),R.outputs.add("fragWeight","float",1),L.main.add(l`
94
94
  float depth = depthFromTexture(depthMap, uv);
95
95
 
96
96
  // Early out if depth is out of range, such as in the sky
@@ -130,7 +130,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
130
130
  float idleColorBlendWeight = computeIdleColorBlendWeight(accumulatedFramesGI);
131
131
  float idleOcclusionBlendWeight = computeIdleOcclusionBlendWeight(accumulatedFramesGI);
132
132
  float reprojectionDepthMismatch = abs((lastFrameDepthViewPos + reprojectedViewPos.z) / max(lastFrameDepthViewPos, reprojectedViewPos.z));
133
- bool hasReprojectionMismatch = reprojectionDepthMismatch > ${i.float(p)};
133
+ bool hasReprojectionMismatch = reprojectionDepthMismatch > ${l.float(p)};
134
134
  bool isScaledGlobalIllumination = scaleGlobalIllumination < 1.0;
135
135
  bool isLowQualityEdgePixel = isScaledGlobalIllumination && isEdgeDepth(currentPixelDepth, uv);
136
136
  bool resetColorHistory = false;
@@ -139,7 +139,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
139
139
  if (hasReprojectionMismatch) {
140
140
  if (isLowQualityEdgePixel) {
141
141
  steps = 1;
142
- occlusionBlendWeight = ${i.float(f)};
142
+ occlusionBlendWeight = ${l.float(f)};
143
143
  resetColorHistory = true;
144
144
  } else {
145
145
  steps = 6;
@@ -148,15 +148,15 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
148
148
  }
149
149
  } else {
150
150
  steps = 1;
151
- if (historyOcclusionBlendWeight > ${i.float(v)}) {
152
- occlusionBlendWeight = ${i.float(b)};
153
- colorBlendWeight = ${i.float(w)};
154
- } else if (historyOcclusionBlendWeight > ${i.float(x)}) {
151
+ if (historyOcclusionBlendWeight > ${l.float(v)}) {
152
+ occlusionBlendWeight = ${l.float(b)};
153
+ colorBlendWeight = ${l.float(w)};
154
+ } else if (historyOcclusionBlendWeight > ${l.float(x)}) {
155
155
  occlusionBlendWeight = historyOcclusionBlendWeight - 0.05;
156
- colorBlendWeight = ${i.float(w)};
156
+ colorBlendWeight = ${l.float(w)};
157
157
  } else {
158
- occlusionBlendWeight = isScaledGlobalIllumination ? ${i.float(f)} : idleOcclusionBlendWeight;
159
- colorBlendWeight = isScaledGlobalIllumination ? ${i.float(g)} : idleColorBlendWeight;
158
+ occlusionBlendWeight = isScaledGlobalIllumination ? ${l.float(f)} : idleOcclusionBlendWeight;
159
+ colorBlendWeight = isScaledGlobalIllumination ? ${l.float(g)} : idleColorBlendWeight;
160
160
  }
161
161
  }
162
162
 
@@ -184,7 +184,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
184
184
  );
185
185
 
186
186
  if (hit.z > 0.0) {
187
- ${n(d.hasColor,i`
187
+ ${n(d.hasColor,l`
188
188
  // Emission and color bleed - Reproject the current receiver and sampled hit to estimate bounced color
189
189
  vec3 receiverColor = texture(lastFrameColorTexture, reprojectedCoordinate.xy).rgb;
190
190
 
@@ -193,7 +193,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
193
193
  vec3 sourceEmission = ${n(d.hasEmission,"texture(lastFrameEmissionTexture, hitReprojectedCoordinate).xyz","vec3(0.0)")};
194
194
 
195
195
  float colorBleedWeight = computeColorBleedWeight(receiverColor, sourceColor);
196
- fragGlobalIllumination.rgb += (sourceColor * colorBleedWeight + sourceEmission) * stepSize;
196
+ fragGlobalIllumination.rgb += (sourceColor * colorBleedWeight + sourceEmission * emissionWeight) * stepSize;
197
197
  `)}
198
198
  } else {
199
199
  // Occlusion - heuristic modulating sky intensity based on angle to main light
@@ -207,17 +207,17 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
207
207
 
208
208
  // Rendering trick add noise to reduce accumulation artifacts
209
209
  float accumulationDither = occlusionBlendWeight < 1.0
210
- ? randomDirectionSample.b * ${i.float(j)}
210
+ ? randomDirectionSample.b * ${l.float(j)}
211
211
  : 0.0;
212
212
 
213
- ${n(d.hasColor,i`
213
+ ${n(d.hasColor,l`
214
214
  // Accumulate color
215
215
  vec3 lastFrameColor = lastFrameGlobalIllumination.rgb;
216
- float colorDitherScale = isScaledGlobalIllumination ? ${i.float(I)} : 1.0;
216
+ float colorDitherScale = isScaledGlobalIllumination ? ${l.float(I)} : 1.0;
217
217
  fragGlobalIllumination.rgb = resetColorHistory
218
218
  ? vec3(0.0)
219
219
  : mix(lastFrameColor + accumulationDither * colorDitherScale, fragGlobalIllumination.rgb, colorBlendWeight);
220
- `,i`
220
+ `,l`
221
221
  fragGlobalIllumination.rgb = vec3(0.0);
222
222
  `)}
223
223
 
@@ -1,19 +1,17 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{If as r,glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{O as n}from"./OITDim.glsl.js";import{oitResolution as a}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{ShaderBuilder as s}from"../views/webgl/ShaderBuilder.js";class i extends n{}function c(n){const i=new s;i.include(e);const{hasEmission:c,frontFaceMask:l,computeHudOcclusion:u,useFloatBlend:f}=n,{fragment:m,outputs:d}=i;m.include(a,n),m.uniforms.add(new t("colorTexture",e=>e.colorTexture),new t("alphaTexture",e=>e.alphaTexture),new t("frontFaceTexture",e=>e.frontFaceTexture));let g=0;return d.add("fragColor","vec4",g++),c&&d.add("fragEmission","vec4",g++),u&&d.add("fragOcclusion","vec4",g++),c&&m.uniforms.add(new t("emissionTexture",e=>e.emissionTexture),new t("emissionFrontFaceTexture",e=>e.emissionFrontFaceTexture)),m.main.add(o`
2
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{If as r,glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{O as t}from"./OITDimOpaque.glsl.js";import{oitResolution as l}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{ShaderBuilder as n}from"../views/webgl/ShaderBuilder.js";class c extends t{}function s(t){const c=new n;c.include(e);const{frontFaceMask:s,computeHudOcclusion:u,useFloatBlend:f}=t,{fragment:i,outputs:d}=c;i.include(l,t),i.uniforms.add(new a("colorTexture",e=>e.colorTexture),new a("alphaTexture",e=>e.alphaTexture),new a("frontFaceTexture",e=>e.frontFaceTexture));let g=0;return d.add("fragColor","vec4",g++),u&&d.add("fragOcclusion","vec4",g++),i.main.add(o`
3
3
  float srcAlpha = texture(alphaTexture, uv).r * floatBlendInputScale;
4
4
  ${r(u,"fragOcclusion = vec4(1.0, 0.0, 0.0, 1.0);")}
5
5
 
6
6
  if(srcAlpha == 0.0) {
7
7
  fragColor = vec4(0.0);
8
- ${r(c,"fragEmission = vec4(0.0);")}
9
8
  return;
10
9
  }
11
10
  vec4 frontFace = texture(frontFaceTexture, uv);
12
11
 
13
- ${r(l,o`
12
+ ${r(s,o`
14
13
  if (frontFace.a == 0.0) {
15
14
  fragColor = vec4(0.0);
16
- ${r(c,"fragEmission = vec4(0.0);")}
17
15
  return;
18
16
  }
19
17
  `)}
@@ -23,7 +21,5 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
23
21
  vec3 backColor = srcColor.rgb * floatBlendInputScale / srcAlpha;
24
22
  fragColor = vec4(mix(backColor, frontFace.rgb, frontFace.a), 1.0 - srcColor.a);
25
23
 
26
- ${r(c,"vec4 emission = texture(emissionTexture, uv);\n emission.rgb *= floatBlendInputScale;\n vec4 emissionFrontFace = texture(emissionFrontFaceTexture, uv);\n emissionFrontFace.rgb *= floatBlendInputScale;\n\n // Modulate transparent emitter by front faces. This case is important for surfaces which contain emitter and\n // non-emitter at the same time. Non-emitter surface parts need to modulate emissions as well.\n emission.rgb = emission.rgb * (1.0 - frontFace.a);\n\n fragEmission = vec4(mix(emission.rgb / srcAlpha, emissionFrontFace.rgb, emissionFrontFace.a) * floatBlendOutputScale, 1.0 - srcColor.a);\n ")}
27
-
28
24
  ${r(u,"fragOcclusion.r = pow(srcColor.a, 0.5);")}
29
- `),i}const l=Object.freeze(Object.defineProperty({__proto__:null,OITBlendPassParameters:i,build:c},Symbol.toStringTag,{value:"Module"}));export{i as O,l as a,c as b};
25
+ `),c}const u=Object.freeze(Object.defineProperty({__proto__:null,OITBlendPassParameters:c,build:s},Symbol.toStringTag,{value:"Module"}));export{c as O,u as a,s as b};
@@ -0,0 +1,22 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{If as t,glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{O as s}from"./OITDimOpaque.glsl.js";import{oitResolution as n}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";class i extends s{}function l(s){const i=new a;i.include(e);const{fragment:l,outputs:c}=i,{useFloatBlend:u}=s;return l.include(n,s),l.uniforms.add(new o("colorTexture",e=>e.colorTexture),new o("alphaTexture",e=>e.alphaTexture),new o("frontFaceTexture",e=>e.frontFaceTexture),new o("emissionTexture",e=>e.emissionTexture),new o("emissionFrontFaceTexture",e=>e.emissionFrontFaceTexture)),c.add("fragEmission","vec4",1),l.main.add(r`
3
+ float srcAlpha = texture(alphaTexture, uv).r * floatBlendInputScale;
4
+ if(srcAlpha == 0.0) {
5
+ fragEmission = vec4(0.0);
6
+ return;
7
+ }
8
+ vec4 frontFace = texture(frontFaceTexture, uv);
9
+ vec4 srcColor = texture(colorTexture, uv);
10
+ ${t(!u,"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);")}
11
+
12
+ vec4 emission = texture(emissionTexture, uv);
13
+ emission.rgb *= floatBlendInputScale;
14
+ vec4 emissionFrontFace = texture(emissionFrontFaceTexture, uv);
15
+ emissionFrontFace.rgb *= floatBlendInputScale;
16
+
17
+ // Modulate transparent emitter by front faces. This case is important for surfaces which contain emitter and
18
+ // non-emitter at the same time. Non-emitter surface parts need to modulate emissions as well.
19
+ emission.rgb = emission.rgb * (1.0 - frontFace.a);
20
+
21
+ fragEmission = vec4(mix(emission.rgb / srcAlpha, emissionFrontFace.rgb, emissionFrontFace.a) * floatBlendOutputScale, 1.0 - srcColor.a);
22
+ `),i}const c=Object.freeze(Object.defineProperty({__proto__:null,OITBlendEmissionPassParameters:i,build:l},Symbol.toStringTag,{value:"Module"}));export{c as O,i as a,l as b};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{EmissionDimming as r}from"../views/3d/webgl-engine/core/shaderLibrary/util/EmissionDimming.glsl.js";import{glsl as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{oitResolution as i}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{NoParameters as n}from"../views/webgl/NoParameters.js";import{ShaderBuilder as l}from"../views/webgl/ShaderBuilder.js";class t extends n{}function m(n){const t=new l;t.include(e),t.fragment.include(r),t.fragment.include(i,n);const{fragment:m,outputs:a}=t;return m.uniforms.add(new o("colorTexture",e=>e.colorTexture)),a.add("fragEmission","vec4",1),m.main.add(s`vec4 srcColor = texture(colorTexture, uv);
2
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{EmissionDimming as r}from"../views/3d/webgl-engine/core/shaderLibrary/util/EmissionDimming.glsl.js";import{glsl as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{oitResolution as i}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{NoParameters as n}from"../views/webgl/NoParameters.js";import{ShaderBuilder as l}from"../views/webgl/ShaderBuilder.js";class t extends n{}function a(n){const t=new l;t.include(e),t.fragment.include(r),t.fragment.include(i,n);const{fragment:a,outputs:m}=t;return a.uniforms.add(new o("colorTexture",e=>e.colorTexture)),m.add("fragEmission","vec4",1),a.main.add(s`vec4 srcColor = texture(colorTexture, uv);
3
3
  srcColor.rgb *= floatBlendInputScale;
4
4
  vec3 dimming = emissionDimming(srcColor.rgb, 1.0 - srcColor.a);
5
- fragEmission = vec4(dimming, 0.0);`),t}const a=Object.freeze(Object.defineProperty({__proto__:null,OITDimPassParameters:t,build:m},Symbol.toStringTag,{value:"Module"}));export{t as O,a,m as b};
5
+ fragEmission = vec4(dimming, 0.0);`),t}const m=Object.freeze(Object.defineProperty({__proto__:null,OITDimOpaquePassParameters:t,build:a},Symbol.toStringTag,{value:"Module"}));export{t as O,m as a,a as b};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as n,computePixelSize as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as d,NoPerspectiveRead as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as p,addPixelRatio as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as S}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as D,If as x}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{alphaCutoff as L}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as w}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as b}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as y}from"../views/webgl/ShaderBuilder.js";const P=1;function C(P){const C=new y,{attributes:z,varyings:j,vertex:F,fragment:W}=C,{applyMarkerOffset:R,draped:A,output:V,capType:I,stippleEnabled:E,falloffEnabled:N,roundJoins:O,wireframe:T,innerColorEnabled:J,hasAnimation:_,hasScreenSizePerspective:M,worldSizedImagePattern:U}=P;F.inputs.add("position",()=>"position"),W.include(a),C.include(t,P),C.include(n,P),C.include(i,P),C.include(w,P);const $=R&&!A;$&&(F.uniforms.add(new S("markerScale",e=>e.markerScale)),C.include(o,{space:2,hasScreenSizePerspective:M})),p(F,P),F.uniforms.add(new u("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new f("nearFar",e=>e.camera.nearFar),new S("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new v("viewport",e=>e.camera.fullViewport)),F.constants.add("LARGE_HALF_FLOAT","float",65500),F.constants.add("EPS","float",.001),F.constants.add("NUM_JOIN_SUBDIVISIONS","float",P.numJoinSubdivisions),z.add("position","vec3"),z.add("previousDelta","vec4"),z.add("nextDelta","vec4"),z.add("lineParameters","vec2"),z.add("u0","float"),j.add("vColor","vec4"),j.add("vpos","vec3",{invariant:!0}),j.add("vLineDistance","float"),j.add("vLineWidth","float"),E||(j.add("vIsInsideJoin","float"),j.add("vStretchFactor","float"),j.add("vJoinCenterLineSDF","float"));const B=E;B&&j.add("vLineSizeInv","float");const k=2===I,H=E&&k,G=N||H;G&&j.add("vLineDistanceNorm","float"),k&&(j.add("vSegmentSDF","float"),j.add("vReverseSegmentSDF","float")),F.code.add(D`vec3 perpendicular(vec3 v) {
2
+ import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as n,computePixelSize as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as d,NoPerspectiveRead as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as p,addPixelRatio as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as S}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as D,If as u}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{alphaCutoff as L}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as w}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as b}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as y}from"../views/webgl/ShaderBuilder.js";const P=1;function C(P){const C=new y,{attributes:z,varyings:F,vertex:j,fragment:W}=C,{applyMarkerOffset:R,draped:I,output:V,capType:A,stippleEnabled:E,falloffEnabled:N,roundJoins:T,wireframe:O,innerColorEnabled:J,hasAnimation:_,hasScreenSizePerspective:M,worldSizedImagePattern:U}=P;j.inputs.add("position",()=>"position"),W.include(a),C.include(t,P),C.include(n,P),C.include(i,P),C.include(w,P);const H=R&&!I;H&&(j.uniforms.add(new S("markerScale",e=>e.markerScale)),C.include(o,{space:2,hasScreenSizePerspective:M})),p(j,P),j.uniforms.add(new x("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new v("nearFar",e=>e.camera.nearFar),new S("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new f("viewport",e=>e.camera.fullViewport)),j.constants.add("LARGE_HALF_FLOAT","float",65500),j.constants.add("EPS","float",.001),j.constants.add("NUM_JOIN_SUBDIVISIONS","float",P.numJoinSubdivisions),z.add("position","vec3"),z.add("previousDelta","vec4"),z.add("nextDelta","vec4"),z.add("lineParameters","vec2"),z.add("u0","float"),F.add("vColor","vec4"),F.add("vpos","vec3",{invariant:!0}),F.add("vLineDistance","float"),F.add("vLineWidth","float"),E||(F.add("vIsInsideJoin","int"),F.add("vStretchFactor","float"),F.add("vJoinCenterLineSDFs","vec2"),F.add("vSubdivisionFactor","float"));const $=E;$&&F.add("vLineSizeInv","float");const B=2===A,k=E&&B,G=N||k;G&&F.add("vLineDistanceNorm","float"),B&&(F.add("vSegmentSDF","float"),F.add("vReverseSegmentSDF","float")),j.code.add(D`vec3 perpendicular(vec3 v) {
3
3
  return vec3(v.y, -v.x, 0.0);
4
4
  }
5
5
  float interp(float ncp, vec4 a, vec4 b) {
@@ -10,12 +10,12 @@ float s = sin(a);
10
10
  float c = cos(a);
11
11
  mat2 m = mat2(c, -s, s, c);
12
12
  return vec3(m * v.xy, v.z);
13
- }`),F.code.add(D`vec4 projectAndScale(vec4 pos) {
13
+ }`),j.code.add(D`vec4 projectAndScale(vec4 pos) {
14
14
  vec4 posNdc = proj * pos;
15
15
  posNdc.xy *= viewport.zw / posNdc.w;
16
16
  posNdc.z /= posNdc.w;
17
17
  return posNdc;
18
- }`),F.code.add(D`void clip(
18
+ }`),j.code.add(D`void clip(
19
19
  inout vec4 pos,
20
20
  inout vec4 prev,
21
21
  inout vec4 next,
@@ -46,7 +46,7 @@ if (next.z > -nearFar[0]) {
46
46
  next = mix(next, pos, interp(vnp, next, pos));
47
47
  }
48
48
  }
49
- }`),m(F),F.constants.add("aaWidth","float",E?0:1).main.add(D`
49
+ }`),m(j),j.constants.add("aaWidth","float",E?0:1).main.add(D`
50
50
  // unpack values from vertex type
51
51
  bool isStartVertex = abs(abs(lineParameters.y) - 3.0) == 1.0;
52
52
  vec3 prevPosition = position + previousDelta.xyz * previousDelta.w;
@@ -65,11 +65,11 @@ next = mix(next, pos, interp(vnp, next, pos));
65
65
  vec4 next = view * vec4(nextPosition, 1.0);
66
66
 
67
67
  bool isJoin = abs(lineParameters.y) < 3.0;
68
- `),$&&F.main.add(D`vec4 other = isStartVertex ? next : prev;
68
+ `),H&&j.main.add(D`vec4 other = isStartVertex ? next : prev;
69
69
  bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
70
70
  if (!isJoin && !markersHidden) {
71
71
  pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
72
- }`),C.include(d),F.main.add(D`
72
+ }`),C.include(d),j.main.add(D`
73
73
  clip(pos, prev, next, isStartVertex);
74
74
 
75
75
  vec3 clippedPos = pos.xyz;
@@ -85,11 +85,11 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
85
85
  float leftLen = length(left);
86
86
  float rightLen = length(right);
87
87
 
88
- float lineSize = getSize(${x(M,"clippedPos")});
89
- ${x(E&&M,"float patternLineSize = getSize(clippedCenter);")}
90
- ${x(E&&!M,"float patternLineSize = lineSize;")}
88
+ float lineSize = getSize(${u(M,"clippedPos")});
89
+ ${u(E&&M,"float patternLineSize = getSize(clippedCenter);")}
90
+ ${u(E&&!M,"float patternLineSize = lineSize;")}
91
91
 
92
- ${x(U,D`
92
+ ${u(U,D`
93
93
  lineSize += aaWidth;
94
94
  float lineWidth = lineSize * pixelRatio * worldToScreenRatio;
95
95
  if (lineWidth < 1.0) {
@@ -107,22 +107,23 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
107
107
  `)}
108
108
 
109
109
  vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
110
- ${B?D`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
111
- `);(E||k)&&F.main.add(D`
110
+ ${$?D`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
111
+ `);(E||B)&&j.main.add(D`
112
112
  float isEndVertex = float(!isStartVertex);
113
113
  vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
114
114
  vec3 segment = mix(right, left, isEndVertex);
115
- ${k?D`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:""}
116
- `),F.main.add(D`left = (leftLen > EPS) ? left/leftLen : vec3(0.0, 0.0, 0.0);
115
+ ${B?D`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:""}
116
+ `),j.main.add(D`left = (leftLen > EPS) ? left/leftLen : vec3(0.0, 0.0, 0.0);
117
117
  right = (rightLen > EPS) ? right/rightLen : vec3(0.0, 0.0, 0.0);
118
118
  vec3 segmentDirection = isStartVertex ? right : left;
119
119
  vec3 capDisplacementDir = vec3(0.0, 0.0, 0.0);
120
120
  vec3 joinDisplacementDir = vec3(0.0, 0.0, 0.0);
121
121
  float displacementLen = lineWidth;
122
122
  float miterDisplacementLen = lineWidth;
123
- float innerDisplacementLen = lineWidth;`),E||F.main.add(D`vIsInsideJoin = 0.0;
123
+ float innerDisplacementLen = lineWidth;`),E||j.main.add(D`vIsInsideJoin = 0;
124
124
  vStretchFactor = 1.0;
125
- vJoinCenterLineSDF = LARGE_HALF_FLOAT;`),F.main.add(D`float subdivisionFactor = 0.0;
125
+ vSubdivisionFactor = 0.0;
126
+ vJoinCenterLineSDFs = vec2(LARGE_HALF_FLOAT);`),j.main.add(D`float subdivisionFactor = 0.0;
126
127
  bool isOutside = false;
127
128
  if (isJoin) {
128
129
  isOutside = (left.x * right.y - left.y * right.x) * lineParameters.y > 0.0;
@@ -137,7 +138,10 @@ if (!isOutside) {
137
138
  displacementLen = innerDisplacementLen;
138
139
  }
139
140
  }
140
- subdivisionFactor = lineParameters.x;`),E||F.main.add(D`vIsInsideJoin = subdivisionFactor > 0.0 && subdivisionFactor < 1.0 ? 1.0: 0.0;
141
+ subdivisionFactor = lineParameters.x;`),E||j.main.add(D`if(subdivisionFactor > 0.0) {
142
+ vIsInsideJoin = 1;
143
+ }
144
+ vSubdivisionFactor = isOutside ? subdivisionFactor : 0.5;
141
145
  if (miterDisplacementLen > miterLimit * lineWidth) {
142
146
  vec2 leftScreenDir = left.xy;
143
147
  vec2 rightScreenDir = right.xy;
@@ -146,11 +150,13 @@ float rightScreenLen = length(rightScreenDir);
146
150
  if (leftScreenLen > EPS && rightScreenLen > EPS) {
147
151
  leftScreenDir /= leftScreenLen;
148
152
  rightScreenDir /= rightScreenLen;
149
- float roundJoinAngle = acos(clamp(dot(leftScreenDir, rightScreenDir), -1.0, 1.0));
150
- float triangleHeight = (innerDisplacementLen + lineWidth) * cos(roundJoinAngle / (2.0 + 2.0 * NUM_JOIN_SUBDIVISIONS));
153
+ float theta = acos(clamp(dot(leftScreenDir, rightScreenDir), -1.0, 1.0));
154
+ float subdividedTriangleHeight = (innerDisplacementLen + lineWidth) * cos(theta / (2.0 + 2.0 * NUM_JOIN_SUBDIVISIONS));
155
+ float bevelTriangleHeight = innerDisplacementLen + lineWidth * cos(theta * 0.5);
156
+ float triangleHeight = NUM_JOIN_SUBDIVISIONS > 0.0 ? subdividedTriangleHeight : bevelTriangleHeight;
151
157
  vStretchFactor = noPerspectiveWrite(max(triangleHeight / (2.0 * lineWidth), 1.0), pos.w);
152
158
  }
153
- }`),F.main.add(D`if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),O?F.main.add(D`
159
+ }`),j.main.add(D`if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),T?j.main.add(D`
154
160
  vec3 startDir = leftLen < EPS ? right : left;
155
161
  startDir = perpendicular(startDir);
156
162
 
@@ -161,16 +167,12 @@ vStretchFactor = noPerspectiveWrite(max(triangleHeight / (2.0 * lineWidth), 1.0)
161
167
 
162
168
  float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
163
169
  joinDisplacementDir = rotateZ(startDir, -sign(lineParameters.y) * factor * rotationAngle);
164
- `):F.main.add(D`if (leftLen < EPS) {
165
- joinDisplacementDir = right;
166
- }
167
- else if (rightLen < EPS) {
168
- joinDisplacementDir = left;
169
- }
170
- else {
171
- joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? right : left;
172
- }
173
- joinDisplacementDir = perpendicular(joinDisplacementDir);`);const X=0!==I;return F.main.add(D`
170
+ `):j.main.add(D`
171
+ vec3 startDir = perpendicular(leftLen < EPS ? right : left);
172
+ vec3 endDir = perpendicular(rightLen < EPS ? left : right);
173
+
174
+ ${u(E,D`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,D`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
175
+ `);const X=0!==A;return j.main.add(D`
174
176
  displacementLen = lineWidth;
175
177
  }
176
178
  } else {
@@ -180,7 +182,7 @@ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const X=0!==I;return
180
182
 
181
183
  ${X?D`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`:""}
182
184
  }
183
- `),F.main.add(D`
185
+ `),j.main.add(D`
184
186
  // Displacement (in pixels) caused by join/or cap
185
187
  vec2 dposXY = (joinDisplacementDir.xy * sign(lineParameters.y) + capDisplacementDir.xy) * displacementLen;
186
188
 
@@ -199,7 +201,7 @@ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const X=0!==I;return
199
201
  ${G?D`vLineDistanceNorm = lineDistNorm;`:""}
200
202
 
201
203
  pos.xyz += dpos;
202
- `),E||F.main.add(D`if (isJoin) {
204
+ `),E||j.main.add(D`if (isJoin) {
203
205
  vec2 joinCenterToVertex = dposXY;
204
206
  vec2 leftCenterlineDir = left.xy;
205
207
  vec2 rightCenterlineDir = right.xy;
@@ -207,25 +209,26 @@ float leftCenterlineLen = length(leftCenterlineDir);
207
209
  float rightCenterlineLen = length(rightCenterlineDir);
208
210
  leftCenterlineDir = leftCenterlineLen > EPS ? leftCenterlineDir / leftCenterlineLen : vec2(1.0, 0.0);
209
211
  rightCenterlineDir = rightCenterlineLen > EPS ? rightCenterlineDir / rightCenterlineLen : leftCenterlineDir;
210
- float leftCenterLineSDF = dot(vec2(leftCenterlineDir.y, -leftCenterlineDir.x), joinCenterToVertex);
211
- float rightCenterLineSDF = dot(vec2(rightCenterlineDir.y, -rightCenterlineDir.x), joinCenterToVertex);
212
- vJoinCenterLineSDF = noPerspectiveWrite(
213
- mix(leftCenterLineSDF, rightCenterLineSDF, step(0.5, subdivisionFactor)),
212
+ vJoinCenterLineSDFs = noPerspectiveWrite(
213
+ vec2(
214
+ dot(vec2(rightCenterlineDir.y, -rightCenterlineDir.x), joinCenterToVertex),
215
+ dot(vec2(leftCenterlineDir.y, -leftCenterlineDir.x), joinCenterToVertex)
216
+ ),
214
217
  pos.w
215
218
  );
216
- }`),k&&F.main.add(D`vec2 segmentDir = normalize(segment.xy);
219
+ }`),B&&j.main.add(D`vec2 segmentDir = normalize(segment.xy);
217
220
  vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
218
- vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),E&&(A?F.uniforms.add(new h("worldToScreenRatio",e=>1/e.screenToPCSRatio)):F.main.add(D`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
219
- float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),F.main.add(D`float segmentLengthScreenDouble = length(segment.xy);
221
+ vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),E&&(I?j.uniforms.add(new h("worldToScreenRatio",e=>1/e.screenToPCSRatio)):j.main.add(D`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
222
+ float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),j.main.add(D`float segmentLengthScreenDouble = length(segment.xy);
220
223
  float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
221
224
  float discreteWorldToScreenRatio = discretizeWorldToScreenRatio(worldToScreenRatio);
222
225
  float segmentLengthRender = length(mix(nextPosition - position, position - prevPosition, isEndVertex));
223
- vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),A?F.main.add(D`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
224
- float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):F.main.add(D`float startPseudoScreen = mix(u0, u0 - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
225
- float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),F.uniforms.add(new S("stipplePatternPixelSize",e=>r(e))),F.main.add(D`
226
+ vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),I?j.main.add(D`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
227
+ float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):j.main.add(D`float startPseudoScreen = mix(u0, u0 - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
228
+ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),j.uniforms.add(new S("stipplePatternPixelSize",e=>r(e))),j.main.add(D`
226
229
  float patternLength = patternLineSize * stipplePatternPixelSize;
227
230
 
228
- ${x(U,D`
231
+ ${u(U,D`
229
232
  float uu = mix(u0, u0 - segmentLengthRender, isEndVertex);
230
233
  vStippleDistanceLimits = vec2(uu, uu + segmentLengthRender);
231
234
  vStipplePatternStretch = 1.0;
@@ -264,7 +267,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
264
267
  isStartVertex ?
265
268
  vec2(-1e34, vStippleDistanceLimits.y) :
266
269
  vec2(vStippleDistanceLimits.x, 1e34);
267
- `)),F.main.add(D`
270
+ `)),j.main.add(D`
268
271
  // Convert back into NDC
269
272
  pos.xy = (pos.xy / viewport.zw) * pos.w;
270
273
  pos.z = pos.z * pos.w;
@@ -272,7 +275,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
272
275
  vColor = getColor();
273
276
  vColor.a = noPerspectiveWrite(vColor.a * coverage, pos.w);
274
277
 
275
- ${T&&!A?"pos.z -= EPS * pos.w;":""}
278
+ ${O&&!I?"pos.z -= EPS * pos.w;":""}
276
279
 
277
280
  // transform final position to camera space for slicing
278
281
  vpos = (inverseProjectionMatrix * pos).xyz;
@@ -281,15 +284,15 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
281
284
  }`),C.fragment.include(e,P),C.include(b,P),W.include(l),W.main.add(D`discardBySlice(vpos);`),C.include(c),W.include(L),W.main.add(D`
282
285
  float lineWidth = noPerspectiveRead(vLineWidth);
283
286
  float lineDistance = noPerspectiveRead(vLineDistance);
284
- ${x(G,D`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
285
- `),T?W.main.add(D`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(k&&W.main.add(D`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
287
+ ${u(G,D`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
288
+ `),O?W.main.add(D`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(B&&W.main.add(D`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
286
289
  vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
287
290
  float fragmentRadius = length(fragmentPosition);
288
291
  float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
289
292
  float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
290
293
  if (capCoverage < alphaCutoff) {
291
294
  discard;
292
- }`),H?W.main.add(D`vec2 stipplePosition = vec2(
295
+ }`),k?W.main.add(D`vec2 stipplePosition = vec2(
293
296
  min(getStippleSDF() * 2.0 - 1.0, 0.0),
294
297
  lineDistanceNorm
295
298
  );
@@ -300,19 +303,20 @@ float stippleAlpha = step(alphaCutoff, stippleCoverage);`):W.main.add(D`float st
300
303
  color.a = noPerspectiveRead(color.a);`),J&&W.uniforms.add(new g("innerColor",e=>e.innerColor??e.color),new S("innerWidth",(e,i)=>e.innerWidth*i.camera.pixelRatio)).main.add(D`float distToInner = abs(lineDistance) - innerWidth;
301
304
  float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
302
305
  float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
303
- color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),W.main.add(D`vec4 finalColor = blendStipple(color, stippleAlpha);`),N&&(W.uniforms.add(new S("falloff",e=>e.falloff)),W.main.add(D`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),E||W.main.add(D`float stretchFactor = vIsInsideJoin > 0.0 ? noPerspectiveRead(vStretchFactor) : 1.0;
306
+ color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),W.main.add(D`vec4 finalColor = blendStipple(color, stippleAlpha);`),N&&(W.uniforms.add(new S("falloff",e=>e.falloff)),W.main.add(D`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),E||W.main.add(D`float stretchFactor = vIsInsideJoin == 1 ? noPerspectiveRead(vStretchFactor) : 1.0;
304
307
  float featherWidth = 2.0;
305
308
  float featherStartDistance = max(lineWidth - featherWidth / stretchFactor, 0.0);
306
309
  float straightFeatherStartDistance = max(lineWidth - featherWidth, 0.0);
307
310
  float value = abs(lineDistance);
308
311
  float feather = (value - featherStartDistance) / (lineWidth - featherStartDistance);
309
- float joinCenterLineDistance = abs(noPerspectiveRead(vJoinCenterLineSDF));
310
- float straightFeather = (joinCenterLineDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
311
- feather = vIsInsideJoin > 0.0 ? max(feather, straightFeather) : feather;
312
+ vec2 joinCenterSDFs = noPerspectiveRead(vJoinCenterLineSDFs);
313
+ float joinCenterDistance = abs(vSubdivisionFactor > 0.5 ? joinCenterSDFs.x : joinCenterSDFs.y);
314
+ float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
315
+ feather = vIsInsideJoin == 1 ? max(feather, straightFeather) : feather;
312
316
  finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),_&&W.main.add(D`
313
317
  finalColor = animate(finalColor);
314
318
 
315
- ${x(11!==V,D`
319
+ ${u(11!==V,D`
316
320
  if (finalColor.a <= alphaCutoff) {
317
321
  discard;
318
322
  }`)}