@arcgis/core 5.1.0-next.71 → 5.1.0-next.73

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 (439) hide show
  1. package/PopupTemplate.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/003fd7745966fe03510c.js +1 -0
  4. package/assets/esri/core/workers/chunks/00bae4b7e179336e0362.js +1 -0
  5. package/assets/esri/core/workers/chunks/{36031cb53c486630f3c9.js → 026d3fa331caec1ea3d2.js} +1 -1
  6. package/assets/esri/core/workers/chunks/027c3ea756db68e51f0a.js +1 -0
  7. package/assets/esri/core/workers/chunks/041c372e98a6fba90b36.js +1 -0
  8. package/assets/esri/core/workers/chunks/{a5a46d0a0831497cf1b4.js → 0783890816bac45277b9.js} +1 -1
  9. package/assets/esri/core/workers/chunks/07aac6245a0d1adbb2d4.js +1 -0
  10. package/assets/esri/core/workers/chunks/0839da55707f7c4cf780.js +1 -0
  11. package/assets/esri/core/workers/chunks/0ae360bf253adee46737.js +1 -0
  12. package/assets/esri/core/workers/chunks/0c00e5e4bd18467bcecd.js +1 -0
  13. package/assets/esri/core/workers/chunks/0dad0bca8d58b2c63d22.js +1 -0
  14. package/assets/esri/core/workers/chunks/0ef93722524620023f69.js +1 -0
  15. package/assets/esri/core/workers/chunks/127cd8fee3717a473fc5.js +1 -0
  16. package/assets/esri/core/workers/chunks/1286f41f245ef22b3a26.js +1 -0
  17. package/assets/esri/core/workers/chunks/12e575a6d2b008b8fc2b.js +1 -0
  18. package/assets/esri/core/workers/chunks/{c92352b0e39576ca317a.js → 13e60f19f436b8d683ae.js} +1 -1
  19. package/assets/esri/core/workers/chunks/161d60fdac2013c15543.js +1 -0
  20. package/assets/esri/core/workers/chunks/1661684357912726a72a.js +1 -0
  21. package/assets/esri/core/workers/chunks/168de44a789d1cecc1f8.js +1 -0
  22. package/assets/esri/core/workers/chunks/1961b59756933e0a82f2.js +1 -0
  23. package/assets/esri/core/workers/chunks/1d9d7915cf7449e5d468.js +1 -0
  24. package/assets/esri/core/workers/chunks/1f85646936200a399c15.js +1 -0
  25. package/assets/esri/core/workers/chunks/{deb8a0b306d7b9c86b97.js → 2171aaa147aa4d9fc5b5.js} +1 -1
  26. package/assets/esri/core/workers/chunks/235cb82952a18ff8d206.js +1 -0
  27. package/assets/esri/core/workers/chunks/260d4571722cb1ff1366.js +1 -0
  28. package/assets/esri/core/workers/chunks/{3e972ae291df1844017d.js → 266ba61b72a278d93a26.js} +1 -1
  29. package/assets/esri/core/workers/chunks/27b80c386cebadcaca3c.js +1 -0
  30. package/assets/esri/core/workers/chunks/29d3890a5a43d934067a.js +1 -0
  31. package/assets/esri/core/workers/chunks/{7e6ccf9f3e756186e93e.js → 29e76256e3e867e80520.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{333a0038d782d8a34d58.js → 2abf124e2956e4f76688.js} +1 -1
  33. package/assets/esri/core/workers/chunks/2f17438d215bea3ce70f.js +1 -0
  34. package/assets/esri/core/workers/chunks/{f6d5dd2eef0d9918096e.js → 30e710ec4d22c43d4e7e.js} +1 -1
  35. package/assets/esri/core/workers/chunks/30f04dc001eaf838d64c.js +1 -0
  36. package/assets/esri/core/workers/chunks/356cb86606b8c674f947.js +1 -0
  37. package/assets/esri/core/workers/chunks/398e0dd2bc7e1ab84831.js +1 -0
  38. package/assets/esri/core/workers/chunks/3b1052aa30af3f6186cc.js +1 -0
  39. package/assets/esri/core/workers/chunks/3bbf684ee2484eb44c9f.js +1 -0
  40. package/assets/esri/core/workers/chunks/3e87e3ad857d72f6ecbb.js +1 -0
  41. package/assets/esri/core/workers/chunks/{7cb6d8f7eaf762279632.js → 3ea5a18b264628dc37f0.js} +1 -1
  42. package/assets/esri/core/workers/chunks/41809c16544ec25120fa.js +1 -0
  43. package/assets/esri/core/workers/chunks/41913575dd45c65d645e.js +1 -0
  44. package/assets/esri/core/workers/chunks/{628f56c09838eb9c573b.js → 422824e407b550170c8c.js} +1 -1
  45. package/assets/esri/core/workers/chunks/42e483fde18f12da32a6.js +1 -0
  46. package/assets/esri/core/workers/chunks/43ab44d37bc0ea97ef98.js +1 -0
  47. package/assets/esri/core/workers/chunks/46e622857ba92a72a317.js +1 -0
  48. package/assets/esri/core/workers/chunks/47f2113357b2aa4f4f37.js +1 -0
  49. package/assets/esri/core/workers/chunks/488ed9584b527ec47be3.js +1 -0
  50. package/assets/esri/core/workers/chunks/4ad32580e0c0699fde1f.js +1 -0
  51. package/assets/esri/core/workers/chunks/4d0f793dee4ad919221b.js +1 -0
  52. package/assets/esri/core/workers/chunks/4eed175277eb0df3c821.js +1 -0
  53. package/assets/esri/core/workers/chunks/{916a8f3eed1fafdc7242.js → 54d07eadf113f0e4e506.js} +1 -1
  54. package/assets/esri/core/workers/chunks/54ed37ec9682ea739deb.js +1 -0
  55. package/assets/esri/core/workers/chunks/{9187d1caca1fd2d713e0.js → 55369c5bd65bcaf78da1.js} +1 -1
  56. package/assets/esri/core/workers/chunks/56fd3da911c2c4511e5d.js +1 -0
  57. package/assets/esri/core/workers/chunks/59592bb25f226865e88a.js +1 -0
  58. package/assets/esri/core/workers/chunks/{e77d958cb62536b8eebc.js → 5a4d7ba6dc1d4b41d80d.js} +1 -1
  59. package/assets/esri/core/workers/chunks/5c663d5f98bdfa29151b.js +1 -0
  60. package/assets/esri/core/workers/chunks/5d55b4449bcb24cd72b6.js +1 -0
  61. package/assets/esri/core/workers/chunks/5d8fe41a3c06ddb4094b.js +1 -0
  62. package/assets/esri/core/workers/chunks/{fe68c28d3c61f116ff23.js → 5ef37f37e405b3bb5450.js} +1 -1
  63. package/assets/esri/core/workers/chunks/608d707fd9d9f9088473.js +1 -0
  64. package/assets/esri/core/workers/chunks/{ae0a572cbbdd9815ee2e.js → 62b3e933f548ce354b99.js} +1 -1
  65. package/assets/esri/core/workers/chunks/656d6963e8f837fbf28f.js +1 -0
  66. package/assets/esri/core/workers/chunks/{a5afcd633b32e6ee31a7.js → 6a0352d20596ca3f4b64.js} +1 -1
  67. package/assets/esri/core/workers/chunks/6c7ff968bd4fc816442d.js +1 -0
  68. package/assets/esri/core/workers/chunks/6e526c06825ecc6c99c0.js +1 -0
  69. package/assets/esri/core/workers/chunks/6ea8b0d68881d16a2432.js +1 -0
  70. package/assets/esri/core/workers/chunks/7027d93dc5a4595d70c6.js +1 -0
  71. package/assets/esri/core/workers/chunks/70b35b2446558d5280e3.js +1 -0
  72. package/assets/esri/core/workers/chunks/7349cb45a93e6916f115.js +1 -0
  73. package/assets/esri/core/workers/chunks/751609831b283903ba48.js +1 -0
  74. package/assets/esri/core/workers/chunks/76edaeaf8fe344bb77a8.js +1 -0
  75. package/assets/esri/core/workers/chunks/76fe5b821d6b54db5721.js +1 -0
  76. package/assets/esri/core/workers/chunks/7951d93f5f15aa76f49c.js +1 -0
  77. package/assets/esri/core/workers/chunks/80ace1c7203c5059525d.js +1 -0
  78. package/assets/esri/core/workers/chunks/81d30c9062ad0120a863.js +1 -0
  79. package/assets/esri/core/workers/chunks/84772b023d04e415f17f.js +1 -0
  80. package/assets/esri/core/workers/chunks/{123e920e4460124ec3bb.js → 88b480a1d1fb01778798.js} +9 -30
  81. package/assets/esri/core/workers/chunks/88c5f7c712c6b89b5109.js +1 -0
  82. package/assets/esri/core/workers/chunks/88e469b82d2594f23649.js +1 -0
  83. package/assets/esri/core/workers/chunks/8a14e3db28c403b046cf.js +1 -0
  84. package/assets/esri/core/workers/chunks/8a664451845a47048859.js +1 -0
  85. package/assets/esri/core/workers/chunks/8a8242e7cc7e6a9e7876.js +1 -0
  86. package/assets/esri/core/workers/chunks/{4d51261d6131c07402cd.js → 8acee3fba488f202f82f.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{31071a43e2c03984d619.js → 8d75f6f27c1c17c33992.js} +1 -1
  88. package/assets/esri/core/workers/chunks/9444ed8ea117861ae89b.js +1 -0
  89. package/assets/esri/core/workers/chunks/95d82c619dcbec2e1050.js +1 -0
  90. package/assets/esri/core/workers/chunks/96bba4d93a32ad34a1c8.js +1 -0
  91. package/assets/esri/core/workers/chunks/9a38fd68b02b617c45d3.js +1 -0
  92. package/assets/esri/core/workers/chunks/9d434360dfce1e49b7b9.js +1 -0
  93. package/assets/esri/core/workers/chunks/9eb4ae556950e1d0124d.js +2 -0
  94. package/assets/esri/core/workers/chunks/9f4b97204def91567e3c.js +1 -0
  95. package/assets/esri/core/workers/chunks/a37c28e3c4a2be9fd1d5.js +1 -0
  96. package/assets/esri/core/workers/chunks/{c06d021180418f2014de.js → a78bc340a794fd332667.js} +1 -1
  97. package/assets/esri/core/workers/chunks/{1edd39c7c4acdc591d10.js → a809b811121099a87a98.js} +1 -1
  98. package/assets/esri/core/workers/chunks/a8d7f59927bdad564141.js +1 -0
  99. package/assets/esri/core/workers/chunks/{f89976ec97938bf86996.js → abc06d10c7ac8ba5b0e4.js} +1 -1
  100. package/assets/esri/core/workers/chunks/abdf146b35e179b5b245.js +1 -0
  101. package/assets/esri/core/workers/chunks/abe22ae8ee0dcc9efbb7.js +1 -0
  102. package/assets/esri/core/workers/chunks/{fef5dc19736f12dfa99a.js → af5db0372d526e592fcc.js} +1 -1
  103. package/assets/esri/core/workers/chunks/{3b7cda16e656db450f11.js → afc0baf86ece710ef867.js} +1 -1
  104. package/assets/esri/core/workers/chunks/{6ac5ec3ecbca8860338b.js → b54b7cc6b23a70fed700.js} +1 -1
  105. package/assets/esri/core/workers/chunks/b6cadb8a579241adcb86.js +1 -0
  106. package/assets/esri/core/workers/chunks/b702279c48f3009f6dd8.js +1 -0
  107. package/assets/esri/core/workers/chunks/b9848bdbaf3d9ac93d54.js +1 -0
  108. package/assets/esri/core/workers/chunks/be1d6a571f76933dfbb0.js +1 -0
  109. package/assets/esri/core/workers/chunks/{eb3cdc4ff45243fc3cc5.js → bef27a25fbc4a6e19ec0.js} +1 -1
  110. package/assets/esri/core/workers/chunks/bfcdc5c315131aae34d8.js +1 -0
  111. package/assets/esri/core/workers/chunks/c0f624a2ca0d07ef8f8c.js +1 -0
  112. package/assets/esri/core/workers/chunks/c3381b9a36299210ee47.js +1 -0
  113. package/assets/esri/core/workers/chunks/{c2882a9e67124b7c18be.js → c503c79ba5761f7abbeb.js} +1 -1
  114. package/assets/esri/core/workers/chunks/{a65d576e90179a2b5400.js → c5507480344176fad241.js} +1 -1
  115. package/assets/esri/core/workers/chunks/c70df6ed190f9ebcf6aa.js +1 -0
  116. package/assets/esri/core/workers/chunks/cb5e4b9b4a59c2622eb5.js +1 -0
  117. package/assets/esri/core/workers/chunks/cd7159600ce132e32d04.js +1 -0
  118. package/assets/esri/core/workers/chunks/cfe246adb5e6cb6f0cfc.js +1 -0
  119. package/assets/esri/core/workers/chunks/d17fcfc502f0e0fa6523.js +596 -0
  120. package/assets/esri/core/workers/chunks/d201a5dff18a5bb467ab.js +1 -0
  121. package/assets/esri/core/workers/chunks/d65b1234867f7d773d50.js +2 -0
  122. package/assets/esri/core/workers/chunks/{4d8670f6fa8952b7bab6.js → d950d5c2844206502ff0.js} +1 -1
  123. package/assets/esri/core/workers/chunks/db3c484bfa607dec6050.js +1 -0
  124. package/assets/esri/core/workers/chunks/db588bf3256e95c977b7.js +1 -0
  125. package/assets/esri/core/workers/chunks/{967758a05170545cd371.js → dcc719e15b2e0cce1f3b.js} +1 -1
  126. package/assets/esri/core/workers/chunks/{6bb090f3e5c18604cb39.js → dd5b362bded458afa2d6.js} +1 -1
  127. package/assets/esri/core/workers/chunks/dfdd474fddcd1d6091ce.js +1 -0
  128. package/assets/esri/core/workers/chunks/{aa1a3a849aba84cf585b.js → e1bc9ad767e08dc18bbc.js} +1 -1
  129. package/assets/esri/core/workers/chunks/e235ea4293d5d463acfb.js +1 -0
  130. package/assets/esri/core/workers/chunks/e25a684eb9f025bdcc01.js +1 -0
  131. package/assets/esri/core/workers/chunks/e272411e2c9378aa8496.js +1312 -0
  132. package/assets/esri/core/workers/chunks/e43486113aaf72ac4dc1.js +1 -0
  133. package/assets/esri/core/workers/chunks/ea4c3393c5757e309a71.js +1 -0
  134. package/assets/esri/core/workers/chunks/ed216ddeb7f59f510bd0.js +1 -0
  135. package/assets/esri/core/workers/chunks/ef8886dff54063928bcb.js +1 -0
  136. package/assets/esri/core/workers/chunks/{231f502cd15f30d12be2.js → f1673e723b336204ad77.js} +1 -1
  137. package/assets/esri/core/workers/chunks/{d69110ec4078c583a05e.js → f207b3be0714cc50030a.js} +1 -1
  138. package/assets/esri/core/workers/chunks/f5223ffb3be548c9b0a1.js +1 -0
  139. package/assets/esri/core/workers/chunks/f53805c7a84203305b2c.js +1 -0
  140. package/assets/esri/core/workers/chunks/f5c57ff48ca505ed701d.js +1 -0
  141. package/assets/esri/core/workers/chunks/fae147d03ed723ab234d.js +1 -0
  142. package/chunks/CheckerBoard.glsl.js +3 -5
  143. package/chunks/ColorMaterial.glsl.js +4 -6
  144. package/chunks/ComponentShader.glsl.js +42 -44
  145. package/chunks/DefaultMaterial.glsl.js +21 -23
  146. package/chunks/EdgeShader.glsl.js +9 -11
  147. package/chunks/GaussianSplat.glsl.js +8 -8
  148. package/chunks/GlobalIllumination.glsl.js +186 -116
  149. package/chunks/GlobalIlluminationBlur.glsl.js +81 -61
  150. package/chunks/GlobalIlluminationUpscale.glsl.js +66 -0
  151. package/chunks/ImageMaterial.glsl.js +5 -7
  152. package/chunks/LineCallout.glsl.js +9 -12
  153. package/chunks/LineMarker.glsl.js +24 -26
  154. package/chunks/Path.glsl.js +15 -17
  155. package/chunks/Pattern.glsl.js +25 -27
  156. package/chunks/RealisticTree.glsl.js +11 -13
  157. package/chunks/RibbonLine.glsl.js +42 -45
  158. package/chunks/ShadedColorMaterial.glsl.js +8 -9
  159. package/chunks/Water.glsl.js +18 -20
  160. package/config.js +1 -1
  161. package/form/elements/FieldElement.d.ts +3 -2
  162. package/form/elements/inputs/Input.d.ts +1 -1
  163. package/form/elements/inputs/MultipleChoiceInput.d.ts +65 -0
  164. package/form/elements/inputs/MultipleChoiceInput.js +2 -0
  165. package/form/elements/inputs/inputUtils.js +1 -1
  166. package/form/elements/inputs/multipleChoice/Choice.d.ts +30 -0
  167. package/form/elements/inputs/multipleChoice/Choice.js +2 -0
  168. package/form/elements/inputs/multipleChoice/OtherChoice.d.ts +28 -0
  169. package/form/elements/inputs/multipleChoice/OtherChoice.js +2 -0
  170. package/form/elements/inputs.d.ts +11 -2
  171. package/form/elements/inputs.js +1 -1
  172. package/form/support/formUtils.js +1 -1
  173. package/interfaces.d.ts +28 -0
  174. package/kernel.js +1 -1
  175. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  176. package/layers/VoxelWasmPerSceneView.js +1 -1
  177. package/layers/graphics/FlatFeature.js +1 -1
  178. package/layers/graphics/FlatFeatureSet.js +1 -1
  179. package/layers/graphics/OptimizedFeature.js +1 -1
  180. package/layers/graphics/data/AttributesBuilder.js +1 -1
  181. package/layers/graphics/data/QueryEngineResult.js +1 -1
  182. package/layers/graphics/data/flatFeatureQueryEngineAdapter.js +1 -1
  183. package/layers/graphics/data/optimizedFeatureQueryEngineAdapter.js +1 -1
  184. package/layers/graphics/featureConversionUtils.js +1 -1
  185. package/layers/support/LabelClass.js +1 -1
  186. package/layers/support/featureLayerUtils.js +1 -1
  187. package/layers/support/labelUtils.js +1 -1
  188. package/layers/video/videoUtils.js +1 -1
  189. package/package.json +2 -2
  190. package/popupTemplateUtils.js +2 -0
  191. package/renderers/visualVariables/SizeVariable.js +1 -1
  192. package/renderers/visualVariables/support/sizeVariableUtils.js +1 -1
  193. package/rest/query/operations/pbfFeatureServiceParser.js +1 -1
  194. package/rest/support/OutDistance.js +2 -0
  195. package/rest/support/Query.js +1 -1
  196. package/smartMapping/statistics/support/utils.js +1 -1
  197. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  198. package/support/arcadeUtils.js +1 -1
  199. package/support/revision.js +1 -1
  200. package/third-party-notices.txt +7 -29
  201. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
  202. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  203. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  204. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  205. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  206. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  207. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  208. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  209. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  210. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  211. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  212. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  213. package/views/3d/environment/EnvironmentManager.js +1 -1
  214. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  215. package/views/3d/layers/I3SMeshView3D.js +1 -1
  216. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  217. package/views/3d/layers/IntegratedMeshNormals.js +1 -1
  218. package/views/3d/layers/StreamLayerView3D.js +1 -1
  219. package/views/3d/layers/graphics/featureExpressionInfoUtils.js +1 -1
  220. package/views/3d/state/ViewStateManager.js +1 -1
  221. package/views/3d/support/orientedBoundingBox.js +1 -1
  222. package/views/3d/terrain/OverlayRenderer.js +1 -1
  223. package/views/3d/terrain/TerrainRenderer.js +1 -1
  224. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  225. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialGlobalParameters.js +1 -1
  226. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialRepository.js +1 -1
  227. package/views/3d/webgl-engine/collections/Component/Material/ComponentShader.glsl.js +1 -1
  228. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  229. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +20 -32
  230. package/views/3d/webgl-engine/core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js +21 -0
  231. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadGlobalIllumination.glsl.js +11 -7
  232. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +5 -3
  233. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +1 -1
  234. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  235. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  236. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +2 -0
  237. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  238. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlur.glsl.js +2 -0
  239. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlurTechnique.js +1 -1
  240. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechnique.js +1 -1
  241. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationUpscale.glsl.js +2 -0
  242. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationUpscaleTechnique.js +2 -0
  243. package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
  244. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  245. package/views/3d/webgl-engine/lib/Compositor.js +1 -1
  246. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  247. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  248. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  249. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  250. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  251. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  252. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +1 -1
  253. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechniqueConfiguration.js +1 -1
  254. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  255. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  256. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  257. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  258. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  259. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  260. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  261. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  262. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  263. package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
  264. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  265. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  266. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  267. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  268. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  269. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  270. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  271. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  272. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  273. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  274. package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
  275. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  276. package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
  277. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  278. package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
  279. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  280. package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
  281. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  282. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  283. package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
  284. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  285. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  286. package/views/3d/webgl-engine/shaders/LineCalloutTechniqueConfiguration.js +1 -1
  287. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  288. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  289. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  290. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  291. package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
  292. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  293. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  294. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  295. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  296. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  297. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
  298. package/views/3d/webgl-engine/statistics/RendererPerformanceInfo.js +1 -1
  299. package/views/VideoView.js +1 -1
  300. package/views/interactive/sketch/SketchOptions.d.ts +3 -1
  301. package/views/interactive/sketch/SketchTooltipOptions.d.ts +6 -0
  302. package/views/layers/FeatureLikeLayerView.js +1 -1
  303. package/views/support/Scheduler.js +1 -1
  304. package/views/video/VideoOperationalDataView.js +1 -1
  305. package/views/webgl/ShaderBuilder.js +1 -1
  306. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  307. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  308. package/widgets/BatchAttributeForm/inputs/SingleFeatureInputAdapter.js +2 -0
  309. package/widgets/BatchAttributeForm/inputs/TextElementInput.d.ts +28 -4
  310. package/widgets/BatchAttributeForm/inputs/TextElementInput.js +1 -1
  311. package/widgets/BatchAttributeForm/templates/AttachmentElementTemplate.js +2 -0
  312. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  313. package/widgets/BatchAttributeForm/templates/support/hashElementTemplate.js +1 -1
  314. package/widgets/BatchAttributeForm/templates/support/templateUtils.js +1 -1
  315. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +19 -3
  316. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  317. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  318. package/widgets/FeatureTable/VisibleElements.d.ts +15 -1
  319. package/widgets/FeatureTable/VisibleElements.js +1 -1
  320. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  321. package/widgets/FeatureTable.d.ts +15 -1
  322. package/widgets/FeatureTable.js +1 -1
  323. package/widgets/Search/SearchViewModel.js +1 -1
  324. package/widgets/Search/support/layerSearchUtils.js +1 -1
  325. package/widgets/support/widgetUtils.js +1 -1
  326. package/assets/esri/core/workers/chunks/09ecb36e44096e577af8.js +0 -1
  327. package/assets/esri/core/workers/chunks/0ca06ea649bbdb93ff49.js +0 -1
  328. package/assets/esri/core/workers/chunks/10308c9f3f0d709d96bc.js +0 -1
  329. package/assets/esri/core/workers/chunks/141edf5ed890105a079b.js +0 -1
  330. package/assets/esri/core/workers/chunks/160b9a76b75875507c86.js +0 -1
  331. package/assets/esri/core/workers/chunks/16dfdee05704df249e95.js +0 -1
  332. package/assets/esri/core/workers/chunks/17ef955dc48e329aa184.js +0 -1
  333. package/assets/esri/core/workers/chunks/18001536ed345955121a.js +0 -1
  334. package/assets/esri/core/workers/chunks/20e715e3aeb1c3265901.js +0 -1
  335. package/assets/esri/core/workers/chunks/238f51d0b36f998017b8.js +0 -1
  336. package/assets/esri/core/workers/chunks/2cee6d751c5e73fe09d4.js +0 -1
  337. package/assets/esri/core/workers/chunks/314140e2e9b813191907.js +0 -1
  338. package/assets/esri/core/workers/chunks/3158a3487d3e8a61b680.js +0 -1
  339. package/assets/esri/core/workers/chunks/3b1446286a9b87f34761.js +0 -1
  340. package/assets/esri/core/workers/chunks/3f7fd58ee7d71989fc83.js +0 -1
  341. package/assets/esri/core/workers/chunks/41396724040180d2537f.js +0 -1
  342. package/assets/esri/core/workers/chunks/416e031bafc0189544fa.js +0 -1
  343. package/assets/esri/core/workers/chunks/55ee78923987ed17ea8c.js +0 -1
  344. package/assets/esri/core/workers/chunks/56c7d7c7217557375fb6.js +0 -1
  345. package/assets/esri/core/workers/chunks/58b3c888c8bfedbe6443.js +0 -1
  346. package/assets/esri/core/workers/chunks/5a1d975b3e9e6b7eff67.js +0 -1
  347. package/assets/esri/core/workers/chunks/5f6942ac94acd7842926.js +0 -1
  348. package/assets/esri/core/workers/chunks/6118706b9a038e9a06b8.js +0 -1
  349. package/assets/esri/core/workers/chunks/6d15229b3fa84a7acf4d.js +0 -599
  350. package/assets/esri/core/workers/chunks/7314c0131403cac84ad7.js +0 -1
  351. package/assets/esri/core/workers/chunks/73545bb13c70f6a347a4.js +0 -1
  352. package/assets/esri/core/workers/chunks/73a045061e69a22b6869.js +0 -1
  353. package/assets/esri/core/workers/chunks/75669912cddcb5db52c8.js +0 -1
  354. package/assets/esri/core/workers/chunks/7ca32806e47be15109a4.js +0 -1
  355. package/assets/esri/core/workers/chunks/7d6ed65bbcd279448191.js +0 -1
  356. package/assets/esri/core/workers/chunks/81f149e45c79b9b086fb.js +0 -1
  357. package/assets/esri/core/workers/chunks/84fa25f66a6949290221.js +0 -1
  358. package/assets/esri/core/workers/chunks/852aabbf671d2ca9cd33.js +0 -1
  359. package/assets/esri/core/workers/chunks/854fe80272b59fafc2e9.js +0 -1
  360. package/assets/esri/core/workers/chunks/85edbb072a2ce6c1bb30.js +0 -2
  361. package/assets/esri/core/workers/chunks/861817be5e050e9522ab.js +0 -1
  362. package/assets/esri/core/workers/chunks/89345a682dea60ef1643.js +0 -1
  363. package/assets/esri/core/workers/chunks/8985402c328b90af5724.js +0 -1
  364. package/assets/esri/core/workers/chunks/89fdf9ad10ca8fbb08a5.js +0 -1
  365. package/assets/esri/core/workers/chunks/8b094330323d9b16fb5d.js +0 -1
  366. package/assets/esri/core/workers/chunks/90aed8c4b266832f84ca.js +0 -1
  367. package/assets/esri/core/workers/chunks/943cf0653a2b7de16a4f.js +0 -1
  368. package/assets/esri/core/workers/chunks/9776c2db337222ceceef.js +0 -1
  369. package/assets/esri/core/workers/chunks/990853e9df38fdfc58b5.js +0 -1
  370. package/assets/esri/core/workers/chunks/9a21ba0c45a96b94c05e.js +0 -1
  371. package/assets/esri/core/workers/chunks/9a235c92f21df2c17aa8.js +0 -1
  372. package/assets/esri/core/workers/chunks/9b56162ac67c992193ce.js +0 -1
  373. package/assets/esri/core/workers/chunks/9f1f5fb648302c43ad12.js +0 -1
  374. package/assets/esri/core/workers/chunks/a1e6187c239fdc7553ed.js +0 -1
  375. package/assets/esri/core/workers/chunks/a4b6fdbc995be03d2afb.js +0 -1
  376. package/assets/esri/core/workers/chunks/a760be8fa6c6ea6b745c.js +0 -1
  377. package/assets/esri/core/workers/chunks/a8782286ce3c0d6c20e6.js +0 -1
  378. package/assets/esri/core/workers/chunks/a96692514dcaa50340dd.js +0 -1
  379. package/assets/esri/core/workers/chunks/a994a3c912a33b2f4100.js +0 -1
  380. package/assets/esri/core/workers/chunks/aa7aaeae31ddb259e55e.js +0 -1
  381. package/assets/esri/core/workers/chunks/abcc5fb71be2bd94878c.js +0 -1
  382. package/assets/esri/core/workers/chunks/aecb05df4ad1454f5435.js +0 -1
  383. package/assets/esri/core/workers/chunks/aecb105db7cec2c9c4c5.js +0 -1
  384. package/assets/esri/core/workers/chunks/b19f33e026a2a43b17c4.js +0 -1
  385. package/assets/esri/core/workers/chunks/b3950d5f1f3352521504.js +0 -1
  386. package/assets/esri/core/workers/chunks/b3f0600729227b458a75.js +0 -1
  387. package/assets/esri/core/workers/chunks/b5922991d2f450e6a9d9.js +0 -1
  388. package/assets/esri/core/workers/chunks/b8643976a7f984552d94.js +0 -1
  389. package/assets/esri/core/workers/chunks/b8a11d32a4847513619b.js +0 -1
  390. package/assets/esri/core/workers/chunks/b8acb6c2538053c01cc6.js +0 -1
  391. package/assets/esri/core/workers/chunks/ba4259aa050169c1d523.js +0 -1
  392. package/assets/esri/core/workers/chunks/bbaf1d9835671c0165ca.js +0 -1
  393. package/assets/esri/core/workers/chunks/bcefdf9753d9d2f6f1be.js +0 -1
  394. package/assets/esri/core/workers/chunks/c178e2cfc34603661b1d.js +0 -1
  395. package/assets/esri/core/workers/chunks/c3e80c0e29ac6a7a6f80.js +0 -1
  396. package/assets/esri/core/workers/chunks/c79827f879d1d58d3f1b.js +0 -1
  397. package/assets/esri/core/workers/chunks/c92b40a532e708e506cc.js +0 -1
  398. package/assets/esri/core/workers/chunks/cb903ccbce87172a0757.js +0 -1
  399. package/assets/esri/core/workers/chunks/cda2e445eb2ac269abdf.js +0 -1
  400. package/assets/esri/core/workers/chunks/ce44e172e2847fd8df14.js +0 -1
  401. package/assets/esri/core/workers/chunks/cff7e921649aef715c78.js +0 -1
  402. package/assets/esri/core/workers/chunks/d0c3ab70f390cd579fed.js +0 -1
  403. package/assets/esri/core/workers/chunks/d315098b038a96084ff5.js +0 -1
  404. package/assets/esri/core/workers/chunks/d4a9eb4470cc6a1f67fc.js +0 -2
  405. package/assets/esri/core/workers/chunks/d8c0d18f0132872decd3.js +0 -1
  406. package/assets/esri/core/workers/chunks/db0061a6d5bf454cc509.js +0 -1
  407. package/assets/esri/core/workers/chunks/dca595fdd5e1a571e441.js +0 -1
  408. package/assets/esri/core/workers/chunks/dcfafcf4386f2940d000.js +0 -1
  409. package/assets/esri/core/workers/chunks/df8143b72ef94806c992.js +0 -1
  410. package/assets/esri/core/workers/chunks/e2b034c391c603f7f825.js +0 -1
  411. package/assets/esri/core/workers/chunks/e3a73d9acebccd3ba49b.js +0 -1
  412. package/assets/esri/core/workers/chunks/e67bdd8bf38ebe89a344.js +0 -1
  413. package/assets/esri/core/workers/chunks/e797d45eba0884dc7e6f.js +0 -1
  414. package/assets/esri/core/workers/chunks/e81a3da05fcff97b4752.js +0 -1
  415. package/assets/esri/core/workers/chunks/e957d52cb9643961a843.js +0 -1127
  416. package/assets/esri/core/workers/chunks/e9dd60d0220036545ebb.js +0 -1
  417. package/assets/esri/core/workers/chunks/ea6d3b7c7d720aa7bc94.js +0 -1
  418. package/assets/esri/core/workers/chunks/eb9982bc866976fef960.js +0 -1
  419. package/assets/esri/core/workers/chunks/ec4669a0edeca94710e0.js +0 -1
  420. package/assets/esri/core/workers/chunks/ef013a77950c1902de11.js +0 -1
  421. package/assets/esri/core/workers/chunks/ef9d74f8d5a502fda809.js +0 -1
  422. package/assets/esri/core/workers/chunks/f09446b9ff937a84d6d3.js +0 -1
  423. package/assets/esri/core/workers/chunks/f0bc5e8e44d53b73d431.js +0 -1
  424. package/assets/esri/core/workers/chunks/f653970d983f17fb764b.js +0 -1
  425. package/assets/esri/core/workers/chunks/f9edc685099f51363f41.js +0 -1
  426. package/assets/esri/core/workers/chunks/fa687ba2d66fcc2501da.js +0 -1
  427. package/assets/esri/core/workers/chunks/fb9a889ec9fd23739a14.js +0 -1
  428. package/assets/esri/core/workers/chunks/fe1b67ab7748a3aef231.js +0 -1
  429. package/chunks/HUDCompositing.glsl.js +0 -2
  430. package/views/3d/webgl-engine/core/shaderLibrary/shading/EncodingColor.glsl.js +0 -7
  431. package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js +0 -5
  432. package/views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js +0 -8
  433. package/views/3d/webgl-engine/effects/fboFormatUtils.js +0 -2
  434. package/views/3d/webgl-engine/shaders/GlobalIllumination.glsl.js +0 -2
  435. package/views/3d/webgl-engine/shaders/GlobalIlluminationBlur.glsl.js +0 -2
  436. package/views/3d/webgl-engine/shaders/HUDCompositing.glsl.js +0 -2
  437. package/views/3d/webgl-engine/shaders/HUDCompositingTechnique.js +0 -2
  438. /package/assets/esri/core/workers/chunks/{85edbb072a2ce6c1bb30.js.LICENSE.txt → 9eb4ae556950e1d0124d.js.LICENSE.txt} +0 -0
  439. /package/assets/esri/core/workers/chunks/{d4a9eb4470cc6a1f67fc.js.LICENSE.txt → d65b1234867f7d773d50.js.LICENSE.txt} +0 -0
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ZEROS as r}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{RejectBySliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{AlignPixel as t}from"../views/3d/webgl-engine/core/shaderLibrary/hud/AlignPixel.glsl.js";import{HUD as a}from"../views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js";import{multipassGeometryTest as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js";import{addScreenSizePerspectiveAlignment as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js";import{Float2BindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float2PassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float4BindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as f,If as v}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as S}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";function h(i){const h=new m,{vertex:b,fragment:z}=h,{terrainDepthTest:x}=i;return b.include(t),h.include(a,i),h.vertex.include(o,i),i.hudDepth||h.include(S,i),h.attributes.add("uv0","vec2"),b.uniforms.add(new c("viewport",e=>e.camera.fullViewport),new g("lineSize",(e,i)=>e.size>0?Math.max(1,e.size)*i.camera.pixelRatio:0),new d("pixelToNDC",i=>e(u,2/i.camera.fullViewport[2],2/i.camera.fullViewport[3])),new g("borderSize",(e,i)=>e.borderColor?i.camera.pixelRatio:0),new s("screenOffset",(i,r)=>e(u,i.horizontalScreenOffset*r.camera.pixelRatio,0))),h.varyings.add("coverageSampling","vec4"),h.varyings.add("lineSizes","vec2"),x&&h.varyings.add("depth","float"),i.hasScreenSizePerspective&&l(b),b.main.add(f`
2
+ import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ZEROS as r}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{RejectBySliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{AlignPixel as t}from"../views/3d/webgl-engine/core/shaderLibrary/hud/AlignPixel.glsl.js";import{HUD as a}from"../views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js";import{addScreenSizePerspectiveAlignment as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js";import{Float2BindUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float2PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float4BindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as g,If as f}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as S}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as v}from"../views/webgl/ShaderBuilder.js";function m(i){const m=new v,{vertex:u,fragment:b}=m;return u.include(t),m.include(a,i),m.vertex.include(o,i),i.hudDepth||m.include(S,i),m.attributes.add("uv0","vec2"),u.uniforms.add(new c("viewport",e=>e.camera.fullViewport),new p("lineSize",(e,i)=>e.size>0?Math.max(1,e.size)*i.camera.pixelRatio:0),new l("pixelToNDC",i=>e(w,2/i.camera.fullViewport[2],2/i.camera.fullViewport[3])),new p("borderSize",(e,i)=>e.borderColor?i.camera.pixelRatio:0),new d("screenOffset",(i,r)=>e(w,i.horizontalScreenOffset*r.camera.pixelRatio,0))),m.varyings.add("coverageSampling","vec4"),m.varyings.add("lineSizes","vec2"),i.hasScreenSizePerspective&&n(u),u.main.add(g`
3
3
  ProjectHUDAux projectAux;
4
4
  vec4 endPoint = projectPositionHUD(projectAux);
5
5
 
@@ -9,12 +9,11 @@ import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}f
9
9
  return;
10
10
  }
11
11
 
12
- ${i.hasScreenSizePerspective?f`vec3 perspectiveFactor = screenSizePerspectiveScaleFactor(projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);
12
+ ${i.hasScreenSizePerspective?g`vec3 perspectiveFactor = screenSizePerspectiveScaleFactor(projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);
13
13
  vec2 screenOffsetScaled = applyScreenSizePerspectiveScaleFactorVec2(screenOffset, perspectiveFactor);`:"vec2 screenOffsetScaled = screenOffset;"}
14
14
  // Add view dependent polygon offset to get exact same original starting point. This is mostly used to get the
15
15
  // correct depth value
16
16
  vec3 posView = (view * vec4(position, 1.0)).xyz;
17
- ${v(x,"depth = posView.z;")}
18
17
 
19
18
  applyHUDViewDependentPolygonOffset(groundDistance, projectAux.absCosAngle, posView);
20
19
  vec4 startPoint = proj * vec4(posView, 1.0);
@@ -27,14 +26,14 @@ import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}f
27
26
  // Align start and end to pixel origin
28
27
  vec4 startAligned = alignToPixelOrigin(startPoint, viewport.zw);
29
28
  vec4 endAligned = alignToPixelOrigin(endPoint, viewport.zw);
30
- ${v(i.hudDepth,i.hudDepthAlignStart?"endAligned = vec4(endAligned.xy / endAligned.w * startAligned.w, startAligned.zw);":"startAligned = vec4(startAligned.xy / startAligned.w * endAligned.w, endAligned.zw);")}
29
+ ${f(i.hudDepth,i.hudDepthAlignStart?"endAligned = vec4(endAligned.xy / endAligned.w * startAligned.w, startAligned.zw);":"startAligned = vec4(startAligned.xy / startAligned.w * endAligned.w, endAligned.zw);")}
31
30
  vec4 projectedPosition = mix(startAligned, endAligned, uv0.y);
32
31
 
33
32
  // The direction of the line in screen space
34
33
  vec2 screenSpaceDirection = normalize(endAligned.xy / endAligned.w - startAligned.xy / startAligned.w);
35
34
  vec2 perpendicularScreenSpaceDirection = vec2(screenSpaceDirection.y, -screenSpaceDirection.x);
36
- ${i.hasScreenSizePerspective?f`float lineSizeScaled = applyScreenSizePerspectiveScaleFactorFloat(lineSize, perspectiveFactor);
37
- float borderSizeScaled = applyScreenSizePerspectiveScaleFactorFloat(borderSize, perspectiveFactor);`:f`float lineSizeScaled = lineSize;
35
+ ${i.hasScreenSizePerspective?g`float lineSizeScaled = applyScreenSizePerspectiveScaleFactorFloat(lineSize, perspectiveFactor);
36
+ float borderSizeScaled = applyScreenSizePerspectiveScaleFactorFloat(borderSize, perspectiveFactor);`:g`float lineSizeScaled = lineSize;
38
37
  float borderSizeScaled = borderSize;`}
39
38
  float halfPixelSize = lineSizeScaled * 0.5;
40
39
 
@@ -72,16 +71,14 @@ import{set as e}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}f
72
71
  );
73
72
 
74
73
  lineSizes = vec2(lineSizeScaled, borderSizeScaled);
75
- gl_Position = projectedPosition;`),z.uniforms.add(new p("uColor",e=>e.color??r),new p("borderColor",e=>e.borderColor??r)),x&&(z.include(n,i),z.uniforms.add(new d("inverseViewport",e=>e.inverseViewport))),z.main.add(f`
76
- ${v(x,"if( geometryDepthTest(gl_FragCoord.xy * inverseViewport, depth) ){ discard; }")}
77
-
74
+ gl_Position = projectedPosition;`),b.uniforms.add(new s("uColor",e=>e.color??r),new s("borderColor",e=>e.borderColor??r)),b.main.add(g`
78
75
  vec2 coverage = min(1.0 - clamp(abs(coverageSampling.xy) - coverageSampling.zw, 0.0, 1.0), lineSizes);
79
76
 
80
77
  float borderAlpha = uColor.a * borderColor.a * coverage.y;
81
78
  float colorAlpha = uColor.a * coverage.x;
82
79
 
83
80
  float finalAlpha = mix(borderAlpha, 1.0, colorAlpha);
84
- ${v(i.hudDepth,f`
85
- if (max(coverage.x, coverage.y) < ${f.float(w)}) discard;`,f`
81
+ ${f(i.hudDepth,g`
82
+ if (max(coverage.x, coverage.y) < ${g.float(h)}) discard;`,g`
86
83
  vec3 finalRgb = mix(borderColor.rgb * borderAlpha, uColor.rgb, colorAlpha);
87
- outputColorHighlightOLID(vec4(finalRgb, finalAlpha), finalRgb);`)}`),h}const w=.5,u=i(),b=Object.freeze(Object.defineProperty({__proto__:null,build:h},Symbol.toStringTag,{value:"Module"}));export{b as L,h as b};
84
+ outputColorHighlightOLID(vec4(finalRgb, finalAlpha), finalRgb);`)}`),m}const h=.5,w=i(),u=Object.freeze(Object.defineProperty({__proto__:null,build:m},Symbol.toStringTag,{value:"Module"}));export{u as L,m as b};
@@ -1,29 +1,29 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{markerTextureSize as e,markerSymbolSize as r,markerTipThicknessFactor as i}from"../views/3d/support/engineContent/marker.js";import{SliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{MarkerSizing as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{terrainDepthTest as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as p,NoPerspectiveRead as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as v,addViewNormal as m,addPixelRatio as h}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 g}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as w}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as y,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DPassUniform as b}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{outputColorHighlightOLID as P}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as z}from"../views/webgl/ShaderBuilder.js";function j(j){const L=new z,{space:D,anchor:k,hasTip:M,hasScreenSizePerspective:C}=j,$=2===D,W=1===D;L.include(t,j),L.include(n,j),L.include(l,j);const{vertex:O,fragment:U,varyings:T}=L;v(O,j),L.attributes.add("position","vec3"),L.attributes.add("previousDelta","vec4"),L.attributes.add("uv0","vec2"),T.add("vColor","vec4"),T.add("vpos","vec3",{invariant:!0}),T.add("vUV","vec2"),T.add("vSize","float"),M&&T.add("vLineWidth","float"),O.uniforms.add(new f("nearFar",({camera:e})=>e.nearFar),new g("viewport",({camera:e})=>e.fullViewport)).code.add(y`vec4 projectAndScale(vec4 pos) {
2
+ import{markerTextureSize as e,markerSymbolSize as r,markerTipThicknessFactor as i}from"../views/3d/support/engineContent/marker.js";import{SliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{MarkerSizing as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.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 c,NoPerspectiveRead as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as d,addViewNormal as v,addPixelRatio as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as h}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 u}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as w,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as y}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DPassUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{outputColorHighlightOLID as P}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";function z(z){const j=new b,{space:L,anchor:k,hasTip:D,hasScreenSizePerspective:M}=z,C=2===L,$=1===L;j.attributes.add("position","vec3"),j.vertex.inputs.add("position",()=>"position"),j.include(t,z),j.include(n,z);const{vertex:W,fragment:O,varyings:U}=j;d(W,z),j.attributes.add("previousDelta","vec4"),j.attributes.add("uv0","vec2"),U.add("vColor","vec4"),U.add("vpos","vec3",{invariant:!0}),U.add("vUV","vec2"),U.add("vSize","float"),D&&U.add("vLineWidth","float"),W.uniforms.add(new h("nearFar",({camera:e})=>e.nearFar),new f("viewport",({camera:e})=>e.fullViewport)).code.add(w`vec4 projectAndScale(vec4 pos) {
3
3
  vec4 posNdc = proj * pos;
4
4
  posNdc.xy *= viewport.zw / posNdc.w;
5
5
  return posNdc;
6
- }`),O.code.add(y`void clip(vec4 pos, inout vec4 prev) {
6
+ }`),W.code.add(w`void clip(vec4 pos, inout vec4 prev) {
7
7
  float vnp = nearFar[0] * 0.99;
8
8
  if (prev.z > -nearFar[0]) {
9
9
  float interpolation = (-vnp - pos.z) / (prev.z - pos.z);
10
10
  prev = mix(pos, prev, interpolation);
11
11
  }
12
- }`),$?(L.attributes.add("normal","vec3"),m(O),O.constants.add("tiltThreshold","float",.7),O.code.add(y`vec3 perpendicular(vec3 v) {
12
+ }`),C?(j.attributes.add("normal","vec3"),v(W),W.constants.add("tiltThreshold","float",.7),W.code.add(w`vec3 perpendicular(vec3 v) {
13
13
  vec3 n = (viewNormal * vec4(normal.xyz, 1.0)).xyz;
14
14
  vec3 n2 = cross(v, n);
15
15
  vec3 forward = vec3(0.0, 0.0, 1.0);
16
16
  float tiltDot = dot(forward, n);
17
17
  return abs(tiltDot) < tiltThreshold ? n : n2;
18
- }`)):O.code.add(y`vec2 perpendicular(vec2 v) {
18
+ }`)):W.code.add(w`vec2 perpendicular(vec2 v) {
19
19
  return vec2(v.y, -v.x);
20
- }`);const N=$?"vec3":"vec2";return O.code.add(y`
20
+ }`);const N=C?"vec3":"vec2";return W.code.add(w`
21
21
  ${N} normalizedSegment(${N} pos, ${N} prev) {
22
22
  ${N} segment = pos - prev;
23
23
  float segmentLen = length(segment);
24
24
 
25
25
  // normalize or zero if too short
26
- return (segmentLen > 0.001) ? segment / segmentLen : ${$?"vec3(0.0, 0.0, 0.0)":"vec2(0.0, 0.0)"};
26
+ return (segmentLen > 0.001) ? segment / segmentLen : ${C?"vec3(0.0, 0.0, 0.0)":"vec2(0.0, 0.0)"};
27
27
  }
28
28
 
29
29
  ${N} displace(${N} pos, ${N} prev, float displacementLen) {
@@ -36,15 +36,15 @@ return vec2(v.y, -v.x);
36
36
 
37
37
  return pos + displacementLen * (uv0.x * displacementDirU + uv0.y * displacementDirV);
38
38
  }
39
- `),W&&(O.uniforms.add(new x("inverseProjectionMatrix",({camera:e})=>e.inverseProjectionMatrix)),O.code.add(y`vec3 inverseProject(vec4 posScreen) {
39
+ `),$&&(W.uniforms.add(new y("inverseProjectionMatrix",({camera:e})=>e.inverseProjectionMatrix)),W.code.add(w`vec3 inverseProject(vec4 posScreen) {
40
40
  posScreen.xy = (posScreen.xy / viewport.zw) * posScreen.w;
41
41
  return (inverseProjectionMatrix * posScreen).xyz;
42
- }`),O.code.add(y`bool rayIntersectPlane(vec3 rayDir, vec3 planeOrigin, vec3 planeNormal, out vec3 intersection) {
42
+ }`),W.code.add(w`bool rayIntersectPlane(vec3 rayDir, vec3 planeOrigin, vec3 planeNormal, out vec3 intersection) {
43
43
  float cos = dot(rayDir, planeNormal);
44
44
  float t = dot(planeOrigin, planeNormal) / cos;
45
45
  intersection = t * rayDir;
46
46
  return abs(cos) > 0.001 && t > 0.0;
47
- }`),O.uniforms.add(new w("perScreenPixelRatio",({camera:e})=>e.perScreenPixelRatio)),O.code.add(y`
47
+ }`),W.uniforms.add(new u("perScreenPixelRatio",({camera:e})=>e.perScreenPixelRatio)),W.code.add(w`
48
48
  vec4 toFront(vec4 displacedPosScreen, vec3 posLeft, vec3 posRight, vec3 prev, float lineWidth) {
49
49
  // Project displaced position back to camera space
50
50
  vec3 displacedPos = inverseProject(displacedPosScreen);
@@ -54,7 +54,7 @@ return abs(cos) > 0.001 && t > 0.0;
54
54
  vec3 planeNormal = normalize(cross(posLeft - posRight, posLeft - prev));
55
55
  vec3 planeOrigin = posLeft;
56
56
 
57
- ${S(j.hasCap,"if(prev.z > posLeft.z) {\n vec2 diff = posLeft.xy - posRight.xy;\n planeOrigin.xy += perpendicular(diff) / 2.0;\n }")};
57
+ ${S(z.hasCap,"if(prev.z > posLeft.z) {\n vec2 diff = posLeft.xy - posRight.xy;\n planeOrigin.xy += perpendicular(diff) / 2.0;\n }")};
58
58
 
59
59
  // Move the plane towards the camera by a margin dependent on the line width (approximated in world space). This tolerance corrects for the
60
60
  // non-planarity in most cases, but sharp joins can place the prev vertices at arbitrary positions so markers can still clip.
@@ -73,7 +73,7 @@ return abs(cos) > 0.001 && t > 0.0;
73
73
  displacedPos *= minDepth / length(displacedPos);
74
74
  return vec4(displacedPos.xyz, 1.0);
75
75
  }
76
- `)),h(O),L.include(p),O.main.add(y`
76
+ `)),m(W),j.include(c),W.main.add(w`
77
77
  // Check for special value of uv0.y which is used by the Renderer when graphics
78
78
  // are removed before the VBO is recompacted. If this is the case, then we just
79
79
  // project outside of clip space.
@@ -85,24 +85,24 @@ return abs(cos) > 0.001 && t > 0.0;
85
85
  vec4 pos = view * vec4(position, 1.0);
86
86
  vec4 prev = view * vec4(position + previousDelta.xyz * previousDelta.w, 1.0);
87
87
 
88
- float lineWidth = getLineWidth(${S(C,"pos.xyz")});
88
+ float lineWidth = getLineWidth(${S(M,"pos.xyz")});
89
89
  float screenMarkerSize = getScreenMarkerSize(lineWidth);
90
90
 
91
91
  clip(pos, prev);
92
92
 
93
- ${$?y`${S(j.hideOnShortSegments,y`
93
+ ${C?w`${S(z.hideOnShortSegments,w`
94
94
  if (areWorldMarkersHidden(pos.xyz, prev.xyz)) {
95
95
  gl_Position = ${s};
96
96
  return;
97
97
  }`)}
98
98
  pos.xyz = displace(pos.xyz, prev.xyz, getWorldMarkerSize(pos.xyz));
99
- vec4 displacedPosScreen = projectAndScale(pos);`:y`
99
+ vec4 displacedPosScreen = projectAndScale(pos);`:w`
100
100
  vec4 posScreen = projectAndScale(pos);
101
101
  vec4 prevScreen = projectAndScale(prev);
102
102
  vec4 displacedPosScreen = posScreen;
103
103
 
104
104
  displacedPosScreen.xy = displace(posScreen.xy, prevScreen.xy, screenMarkerSize);
105
- ${S(W,y`
105
+ ${S($,w`
106
106
  vec2 displacementDirU = perpendicular(normalizedSegment(posScreen.xy, prevScreen.xy));
107
107
 
108
108
  // We need three points of the ribbon line in camera space to calculate the plane it lies in
@@ -112,14 +112,13 @@ return abs(cos) > 0.001 && t > 0.0;
112
112
 
113
113
  pos = toFront(displacedPosScreen, lineLeft, lineRight, prev.xyz, lineWidth);
114
114
  displacedPosScreen = projectAndScale(pos);`)}`}
115
- forwardViewPosDepth(pos.xyz);
116
115
  // Convert back into NDC
117
116
  displacedPosScreen.xy = (displacedPosScreen.xy / viewport.zw) * displacedPosScreen.w;
118
117
 
119
118
  // Convert texture coordinate into [0,1]
120
119
  vUV = (uv0 + 1.0) / 2.0;
121
- ${S(!$,"vUV = noPerspectiveWrite(vUV, displacedPosScreen.w);")}
122
- ${S(M,"vLineWidth = noPerspectiveWrite(lineWidth, displacedPosScreen.w);")}
120
+ ${S(!C,"vUV = noPerspectiveWrite(vUV, displacedPosScreen.w);")}
121
+ ${S(D,"vLineWidth = noPerspectiveWrite(lineWidth, displacedPosScreen.w);")}
123
122
 
124
123
  vSize = screenMarkerSize;
125
124
  vColor = getColor();
@@ -128,13 +127,13 @@ return abs(cos) > 0.001 && t > 0.0;
128
127
  vpos = pos.xyz;
129
128
 
130
129
  gl_Position = displacedPosScreen;
131
- }`),U.include(o,j),L.include(P,j),U.include(c),U.uniforms.add(new u("intrinsicColor",({color:e})=>e),new b("tex",({markerTexture:e})=>e)).constants.add("texelSize","float",1/e).code.add(y`float markerAlpha(vec2 samplePos) {
130
+ }`),O.include(o,z),j.include(P,z),O.include(l),O.uniforms.add(new g("intrinsicColor",({color:e})=>e),new x("tex",({markerTexture:e})=>e)).constants.add("texelSize","float",1/e).code.add(w`float markerAlpha(vec2 samplePos) {
132
131
  samplePos += vec2(0.5, -0.5) * texelSize;
133
132
  float sdf = texture(tex, samplePos).r;
134
133
  float pixelDistance = sdf * vSize;
135
134
  pixelDistance -= 0.5;
136
135
  return clamp(0.5 - pixelDistance, 0.0, 1.0);
137
- }`),M&&(L.include(d),U.constants.add("relativeMarkerSize","float",r/e).constants.add("relativeTipLineWidth","float",i).code.add(y`
136
+ }`),D&&(j.include(p),O.constants.add("relativeMarkerSize","float",r/e).constants.add("relativeTipLineWidth","float",i).code.add(w`
138
137
  float tipAlpha(vec2 samplePos) {
139
138
  // Convert coordinates s.t. they are in pixels and relative to the tip of an arrow marker
140
139
  samplePos -= vec2(0.5, 0.5 + 0.5 * relativeMarkerSize);
@@ -143,18 +142,17 @@ return clamp(0.5 - pixelDistance, 0.0, 1.0);
143
142
  float halfMarkerSize = 0.5 * relativeMarkerSize * vSize;
144
143
  float halfTipLineWidth = 0.5 * max(1.0, relativeTipLineWidth * noPerspectiveRead(vLineWidth));
145
144
 
146
- ${S($,"halfTipLineWidth *= fwidth(samplePos.y);")}
145
+ ${S(C,"halfTipLineWidth *= fwidth(samplePos.y);")}
147
146
 
148
147
  float distance = max(abs(samplePos.x) - halfMarkerSize, abs(samplePos.y) - halfTipLineWidth);
149
148
  return clamp(0.5 - distance, 0.0, 1.0);
150
149
  }
151
- `)),L.include(a,j),L.include(d),U.main.add(y`
150
+ `)),j.include(a,z),j.include(p),O.main.add(w`
152
151
  discardBySlice(vpos);
153
- discardByTerrainDepth();
154
152
 
155
153
  vec4 finalColor = intrinsicColor * vColor;
156
154
 
157
155
  // Cancel out perspective correct interpolation if in screen space or draped
158
- vec2 samplePos = ${S(!$,"noPerspectiveRead(vUV)","vUV")};
159
- finalColor.a *= ${M?"max(markerAlpha(samplePos), tipAlpha(samplePos))":"markerAlpha(samplePos)"};
160
- outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),L}const L=Object.freeze(Object.defineProperty({__proto__:null,build:j},Symbol.toStringTag,{value:"Module"}));export{L,j as b};
156
+ vec2 samplePos = ${S(!C,"noPerspectiveRead(vUV)","vUV")};
157
+ finalColor.a *= ${D?"max(markerAlpha(samplePos), tipAlpha(samplePos))":"markerAlpha(samplePos)"};
158
+ outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),j}const j=Object.freeze(Object.defineProperty({__proto__:null,build:z},Symbol.toStringTag,{value:"Module"}));export{j as L,z as b};
@@ -1,13 +1,11 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{addNearFar as e}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{isColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as a}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{PathVertexPosition as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import{OutputDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as s}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientOcclusion as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as t,addAmbientBoostFactor as c,addLightingGlobalFactor as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{Normals as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js";import{NormalUtils as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PhysicallyBasedRenderingParameters as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapDrawFragment as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as h}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as f,addViewNormal as y,addCameraPosition as L}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as j}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as P}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as S,If as O}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{SnowCover as C}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{outputColorHighlightOLID as A}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as D}from"../views/webgl/ShaderBuilder.js";function B(B){const I=new D,{vertex:M,fragment:_,varyings:F}=I;f(M,B),F.add("vpos","vec3",{invariant:!0}),I.include(n,B);const{output:V,spherical:x,pbrMode:z,snowCover:T}=B;switch((i(V)||11===V)&&(I.include(a),I.include(u,B),I.include(r,B),I.include(b,B),F.add("vnormal","vec3"),F.add("vcolor","vec4"),M.main.add(S`vpos = calculateVPos();
2
+ import{addNearFar as e}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{isColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as a}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{PathVertexPosition as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import{OutputDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as s}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientOcclusion as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as t,addAmbientBoostFactor as c,addLightingGlobalFactor as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{Normals as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js";import{NormalUtils as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PhysicallyBasedRenderingParameters as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapDrawFragment as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{ColorConversion as b}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as h,addViewNormal as f,addCameraPosition as y}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as L}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as j}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as P,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{SnowCover as O}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{outputColorHighlightOLID as C}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as A}from"../views/webgl/ShaderBuilder.js";function I(I){const B=new A,{vertex:D,fragment:M,varyings:_}=B;h(D,I),_.add("vpos","vec3",{invariant:!0}),B.include(n,I);const{output:F,spherical:V,pbrMode:x,snowCover:z}=I;switch((i(F)||11===F)&&(B.include(a),B.include(w,I),B.include(r,I),_.add("vnormal","vec3"),_.add("vcolor","vec4"),D.main.add(P`vpos = calculateVPos();
3
3
  vnormal = normalize(localNormal());
4
- forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
5
4
  gl_Position = transformPosition(proj, view, vpos);
6
5
  forwardObjectAndLayerIdColor();
7
6
  vcolor = getColor();
8
- forwardLinearDepthToReadShadowMap();`)),V){case 0:case 1:case 2:I.include(w,B),_.include(t,B),_.include(d,B),I.include(v,B),_.include(o,B),I.include(A,B),L(_,B),c(_),m(_),_.uniforms.add(M.uniforms.get("localOrigin"),new j("ambient",e=>e.ambient),new j("diffuse",e=>e.diffuse),new P("opacity",e=>e.opacity)),_.include(h),_.include(C,B),g(_),_.main.add(S`
7
+ forwardLinearDepthToReadShadowMap();`)),F){case 0:case 1:case 2:B.include(u,I),M.include(t,I),M.include(d,I),B.include(v,I),M.include(o,I),B.include(C,I),y(M,I),c(M),m(M),M.uniforms.add(D.uniforms.get("localOrigin"),new L("ambient",e=>e.ambient),new L("diffuse",e=>e.diffuse),new j("opacity",e=>e.opacity)),M.include(b),M.include(O,I),g(M),M.main.add(P`
9
8
  discardBySlice(vpos);
10
- discardByTerrainDepth();
11
9
 
12
10
  shadingParams.viewDirection = normalize(vpos - cameraPosition);
13
11
  shadingParams.normalView = vnormal;
@@ -15,12 +13,12 @@ forwardLinearDepthToReadShadowMap();`)),V){case 0:case 1:case 2:I.include(w,B),_
15
13
  float ssao = evaluateAmbientOcclusionInverse();
16
14
 
17
15
  vec3 posWorld = vpos + localOrigin;
18
- vec3 normalGround = ${x?"normalize(posWorld);":"vec3(0.0, 0.0, 1.0);"}
16
+ vec3 normalGround = ${V?"normalize(posWorld);":"vec3(0.0, 0.0, 1.0);"}
19
17
 
20
18
  vec3 albedo = vcolor.rgb * max(ambient, diffuse); // combine the old material parameters into a single one
21
19
  float combinedOpacity = vcolor.a * opacity;
22
20
 
23
- ${O(T,S`float snow = getSnow(normal, normalGround);
21
+ ${S(z,P`float snow = getSnow(normal, normalGround);
24
22
  albedo = mix(albedo, vec3(1), snow);
25
23
  ssao = mix(ssao, 1.0, snow);`)}
26
24
 
@@ -28,19 +26,19 @@ forwardLinearDepthToReadShadowMap();`)),V){case 0:case 1:case 2:I.include(w,B),_
28
26
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
29
27
  float shadow = readShadow(additionalAmbientScale, vpos);
30
28
 
31
- ${O(2===z,`float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];\n ${O(T,"mrr = applySnowToMRR(mrr, snow);")}`)}
29
+ ${S(2===x,`float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];\n ${S(z,"mrr = applySnowToMRR(mrr, snow);")}`)}
32
30
 
33
- vec3 shadedColor = ${2===z?"evaluateSceneLightingPBR(normal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, additionalAmbientIrradiance);":"evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight);"}
31
+ vec3 shadedColor = ${2===x?"evaluateSceneLightingPBR(normal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, additionalAmbientIrradiance);":"evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight);"}
34
32
  vec4 finalColor = vec4(shadedColor, combinedOpacity);
35
- outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${O(T,", snow")});`);break;case 3:I.include(a),M.main.add(S`vpos = calculateVPos();
36
- gl_Position = transformPosition(proj, view, vpos);`),I.fragment.include(o,B),_.main.add(S`discardBySlice(vpos);`);break;case 5:case 6:case 7:case 8:I.include(a),e(I),F.add("depth","float"),M.main.add(S`vpos = calculateVPos();
37
- gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);`),I.fragment.include(o,B),I.include(l,B),_.main.add(S`discardBySlice(vpos);
38
- outputDepth(depth);`);break;case 11:I.fragment.include(o,B),_.main.add(S`discardBySlice(vpos);
39
- outputObjectAndLayerIdColor();`);break;case 4:I.include(a),I.include(p,B),y(M),F.add("vnormal","vec3"),M.main.add(S`vpos = calculateVPos();
33
+ outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${S(z,", snow")});`);break;case 3:B.include(a),D.main.add(P`vpos = calculateVPos();
34
+ gl_Position = transformPosition(proj, view, vpos);`),B.fragment.include(o,I),M.main.add(P`discardBySlice(vpos);`);break;case 5:case 6:case 7:case 8:B.include(a),e(B),_.add("depth","float"),D.main.add(P`vpos = calculateVPos();
35
+ gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);`),B.fragment.include(o,I),B.include(l,I),M.main.add(P`discardBySlice(vpos);
36
+ outputDepth(depth);`);break;case 11:B.fragment.include(o,I),M.main.add(P`discardBySlice(vpos);
37
+ outputObjectAndLayerIdColor();`);break;case 4:B.include(a),B.include(p,I),f(D),_.add("vnormal","vec3"),D.main.add(P`vpos = calculateVPos();
40
38
  vnormal = normalize((viewNormal * vec4(localNormal(), 1.0)).xyz);
41
- gl_Position = transformPosition(proj, view, vpos);`),I.fragment.include(o,B),_.main.add(S`discardBySlice(vpos);
39
+ gl_Position = transformPosition(proj, view, vpos);`),B.fragment.include(o,I),M.main.add(P`discardBySlice(vpos);
42
40
  vec3 normal = normalize(vnormal);
43
41
  if (gl_FrontFacing == false) normal = -normal;
44
- fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case 10:I.include(a),I.include(p,B),F.add("vnormal","vec3"),M.main.add(S`vpos = calculateVPos();
45
- gl_Position = transformPosition(proj, view, vpos);`),I.fragment.include(o,B),I.include(s,B),_.main.add(S`discardBySlice(vpos);
46
- calculateOcclusionAndOutputHighlight();`)}return I}const I=Object.freeze(Object.defineProperty({__proto__:null,build:B},Symbol.toStringTag,{value:"Module"}));export{I as P,B as b};
42
+ fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case 10:B.include(a),B.include(p,I),_.add("vnormal","vec3"),D.main.add(P`vpos = calculateVPos();
43
+ gl_Position = transformPosition(proj, view, vpos);`),B.fragment.include(o,I),B.include(s,I),M.main.add(P`discardBySlice(vpos);
44
+ calculateOcclusionAndOutputHighlight();`)}return B}const B=Object.freeze(Object.defineProperty({__proto__:null,build:I},Symbol.toStringTag,{value:"Module"}));export{B as P,I as b};
@@ -1,25 +1,25 @@
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{Transform as o}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{VertexColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{terrainDepthTest as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{VisualVariables as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as n,addCameraPosition as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as v,If as p}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as u}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as m}from"../views/3d/webgl-engine/shaders/PatternTextureBuffer.glsl.js";import{ShaderBuilder as f}from"../views/webgl/ShaderBuilder.js";const g=.70710678118,w=g,h=.08715574274,b=10,x=1;function y(y){const j=m(y),C=null!=j,T=new f;C&&T.include(j.TextureBackedBufferModule,y);const{vertex:V,fragment:P,attributes:$,varyings:R}=T,A=10===y.output;n(V,y),T.include(o);let L="";C?(y.hasVVColor&&(L=j.getTextureAttribute("colorFeatureAttribute")),y.hasVertexColors?(T.varyings.add("vColor","vec4"),T.vertex.code.add(v`void forwardVertexColor() { vColor = ${j.getTextureAttribute("color")}; }`)):T.vertex.code.add(v`void forwardVertexColor() {}`),$.add("textureElementIndex","uint")):(T.include(t,y),y.hasVVColor&&($.add("colorFeatureAttribute","float"),L="colorFeatureAttribute")),T.include(i,y),T.include(r,y),T.fragment.include(e,y),T.include(u,y),T.include(a,y),y.draped&&V.uniforms.add(new s("worldToScreenRatio",e=>1/e.screenToPCSRatio)),$.add("position","vec3"),$.add("uvMapSpace","vec4"),y.hasVertexColors||R.add("vColor","vec4"),R.add("vpos","vec3",{invariant:!0}),R.add("vuv","vec2"),V.uniforms.add(new d("uColor",e=>e.color));const D=3===y.style||4===y.style||5===y.style;return D&&V.code.add(v`
3
- const mat2 rotate45 = mat2(${v.float(g)}, ${v.float(-w)},
4
- ${v.float(w)}, ${v.float(g)});
5
- `),!y.draped&&C&&(c(V,y),V.uniforms.add(new s("worldToScreenPerDistanceRatio",e=>1/e.camera.perScreenPixelRatio)),V.code.add(v`vec3 projectPointToLineSegment(vec3 center, vec3 halfVector, vec3 point) {
2
+ import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as o}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{VertexColor as r}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VisualVariables as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{ColorConversion as i}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as l,addCameraPosition as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as s,If as v}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as u}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as p}from"../views/3d/webgl-engine/shaders/PatternTextureBuffer.glsl.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";const f=.70710678118,g=f,w=.08715574274,b=10,h=1;function x(x){const S=p(x),j=null!=S,C=new m;j&&C.include(S.TextureBackedBufferModule,x);const{vertex:V,fragment:T,attributes:P,varyings:$}=C,R=10===x.output;l(V,x),C.include(o);let A="";j?(x.hasVVColor&&(A=S.getTextureAttribute("colorFeatureAttribute")),x.hasVertexColors?(C.varyings.add("vColor","vec4"),C.vertex.code.add(s`void forwardVertexColor() { vColor = ${S.getTextureAttribute("color")}; }`)):C.vertex.code.add(s`void forwardVertexColor() {}`),P.add("textureElementIndex","uint")):(C.include(r,x),x.hasVVColor&&(P.add("colorFeatureAttribute","float"),A="colorFeatureAttribute")),P.add("position","vec3"),V.inputs.add("position",()=>"position"),C.include(a,x),C.include(t,x),T.include(e,x),C.include(u,x),x.draped&&V.uniforms.add(new d("worldToScreenRatio",e=>1/e.screenToPCSRatio)),P.add("uvMapSpace","vec4"),x.hasVertexColors||$.add("vColor","vec4"),$.add("vpos","vec3",{invariant:!0}),$.add("vuv","vec2"),V.uniforms.add(new c("uColor",e=>e.color));const L=3===x.style||4===x.style||5===x.style;return L&&V.code.add(s`
3
+ const mat2 rotate45 = mat2(${s.float(f)}, ${s.float(-g)},
4
+ ${s.float(g)}, ${s.float(f)});
5
+ `),!x.draped&&j&&(n(V,x),V.uniforms.add(new d("worldToScreenPerDistanceRatio",e=>1/e.camera.perScreenPixelRatio)),V.code.add(s`vec3 projectPointToLineSegment(vec3 center, vec3 halfVector, vec3 point) {
6
6
  float projectedLength = dot(halfVector, point - center) / dot(halfVector, halfVector);
7
7
  return center + halfVector * clamp(projectedLength, -1.0, 1.0);
8
- }`),V.code.add(v`vec3 intersectRayPlane(vec3 rayDir, vec3 rayOrigin, vec3 planeNormal, vec3 planePoint) {
8
+ }`),V.code.add(s`vec3 intersectRayPlane(vec3 rayDir, vec3 rayOrigin, vec3 planeNormal, vec3 planePoint) {
9
9
  float d = dot(planeNormal, planePoint);
10
10
  float t = (d - dot(planeNormal, rayOrigin)) / dot(planeNormal, rayDir);
11
11
  return rayOrigin + t * rayDir;
12
- }`),V.code.add(v`
12
+ }`),V.code.add(s`
13
13
  float boundingRectDistanceToCamera() {
14
- vec3 center = ${j.getTextureAttribute("boundingRect")}[0];
15
- vec3 halfU = ${j.getTextureAttribute("boundingRect")}[1];
16
- vec3 halfV = ${j.getTextureAttribute("boundingRect")}[2];
14
+ vec3 center = ${S.getTextureAttribute("boundingRect")}[0];
15
+ vec3 halfU = ${S.getTextureAttribute("boundingRect")}[1];
16
+ vec3 halfV = ${S.getTextureAttribute("boundingRect")}[2];
17
17
  vec3 n = normalize(cross(halfU, halfV));
18
18
 
19
19
  vec3 viewDir = - vec3(view[0][2], view[1][2], view[2][2]);
20
20
 
21
21
  float viewAngle = dot(viewDir, n);
22
- float minViewAngle = ${v.float(h)};
22
+ float minViewAngle = ${s.float(w)};
23
23
 
24
24
  if (abs(viewAngle) < minViewAngle) {
25
25
  // view direction is (almost) parallel to plane -> clamp it to min angle
@@ -39,12 +39,12 @@ return rayOrigin + t * rayDir;
39
39
 
40
40
  return length(closestPoint - cameraPosition);
41
41
  }
42
- `)),V.code.add(v`
42
+ `)),V.code.add(s`
43
43
  vec2 scaledUV() {
44
- vec2 uv = uvMapSpace.xy ${p(D," * rotate45")};
45
- vec2 uvCellOrigin = uvMapSpace.zw ${p(D," * rotate45")};
44
+ vec2 uv = uvMapSpace.xy ${v(L," * rotate45")};
45
+ vec2 uvCellOrigin = uvMapSpace.zw ${v(L," * rotate45")};
46
46
 
47
- ${p(!y.draped,v`float distanceToCamera = boundingRectDistanceToCamera();
47
+ ${v(!x.draped,s`float distanceToCamera = boundingRectDistanceToCamera();
48
48
  float worldToScreenRatio = worldToScreenPerDistanceRatio / distanceToCamera;`)}
49
49
 
50
50
  // Logarithmically discretize ratio to avoid jittering
@@ -53,21 +53,20 @@ return rayOrigin + t * rayDir;
53
53
  discreteWorldToScreenRatio = ceil(discreteWorldToScreenRatio / step) * step;
54
54
  discreteWorldToScreenRatio = exp(discreteWorldToScreenRatio);
55
55
 
56
- vec2 uvOffset = mod(uvCellOrigin * discreteWorldToScreenRatio, ${v.float(b)});
56
+ vec2 uvOffset = mod(uvCellOrigin * discreteWorldToScreenRatio, ${s.float(b)});
57
57
  return uvOffset + (uv * discreteWorldToScreenRatio);
58
58
  }
59
- `),V.main.add(v`
59
+ `),V.main.add(s`
60
60
  vuv = scaledUV();
61
61
  vpos = position;
62
- forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
63
62
  forwardVertexColor();
64
63
  forwardObjectAndLayerIdColor();
65
- ${y.hasVertexColors?"vColor *= uColor;":y.hasVVColor?v`vColor = uColor * interpolateVVColor(${L});`:"vColor = uColor;"}
64
+ ${x.hasVertexColors?"vColor *= uColor;":x.hasVVColor?s`vColor = uColor * interpolateVVColor(${A});`:"vColor = uColor;"}
66
65
  gl_Position = transformPosition(proj, view, vpos);
67
- `),P.include(l),y.draped&&P.uniforms.add(new s("texelSize",e=>1/e.camera.pixelRatio)),A||(P.code.add(v`
68
- const float lineWidth = ${v.float(x)};
69
- const float spacing = ${v.float(b)};
70
- const float spacingINV = ${v.float(1/b)};
66
+ `),T.include(i),x.draped&&T.uniforms.add(new d("texelSize",e=>1/e.camera.pixelRatio)),R||(T.code.add(s`
67
+ const float lineWidth = ${s.float(h)};
68
+ const float spacing = ${s.float(b)};
69
+ const float spacingINV = ${s.float(1/b)};
71
70
 
72
71
  float coverage(float p, float txlSize) {
73
72
  p = mod(p, spacing);
@@ -83,7 +82,7 @@ return rayOrigin + t * rayDir;
83
82
 
84
83
  return coverage / txlSize;
85
84
  }
86
- `),y.draped||P.code.add(v`const int maxSamples = 5;
85
+ `),x.draped||T.code.add(s`const int maxSamples = 5;
87
86
  float sampleAA(float p) {
88
87
  vec2 dxdy = abs(vec2(dFdx(p), dFdy(p)));
89
88
  float fwidth = dxdy.x + dxdy.y;
@@ -104,10 +103,9 @@ accumulator += coverage(p + step.x * dxdy.x + step.y * dxdy.y, fwidth);
104
103
  }
105
104
  accumulator /= float(samples.x * samples.y);
106
105
  return accumulator;
107
- }`)),P.main.add(v`
106
+ }`)),T.main.add(s`
108
107
  discardBySlice(vpos);
109
- discardByTerrainDepth();
110
108
  vec4 color = vColor;
111
- ${p(!A,v`color.a *= ${S(y)};`)}
109
+ ${v(!R,s`color.a *= ${y(x)};`)}
112
110
  outputColorHighlightOLID(applySlice(color, vpos), color.rgb);
113
- `),T}function S(e){function o(o){return e.draped?v`coverage(vuv.${o}, texelSize)`:v`sampleAA(vuv.${o})`}switch(e.style){case 3:case 0:return o("y");case 4:case 1:return o("x");case 5:case 2:return v`1.0 - (1.0 - ${o("x")}) * (1.0 - ${o("y")})`;default:return"0.0"}}const j=Object.freeze(Object.defineProperty({__proto__:null,build:y},Symbol.toStringTag,{value:"Module"}));export{j as P,y as b};
111
+ `),C}function y(e){function o(o){return e.draped?s`coverage(vuv.${o}, texelSize)`:s`sampleAA(vuv.${o})`}switch(e.style){case 3:case 0:return o("y");case 4:case 1:return o("x");case 5:case 2:return s`1.0 - (1.0 - ${o("x")}) * (1.0 - ${o("y")})`;default:return"0.0"}}const S=Object.freeze(Object.defineProperty({__proto__:null,build:x},Symbol.toStringTag,{value:"Module"}));export{S as P,x as b};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstanceColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstanceColor.glsl.js";import{InstancedDoublePrecision as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{MaskedColorDefinition as t,CreateMaskedFromNaNColor as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/MaskedColor.glsl.js";import{NormalAttribute as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VerticalOffset as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as v}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{EvaluateAmbientOcclusion as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as w,addAmbientBoostFactor as p,addLightingGlobalFactor as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as f,addMainLightIntensity as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRendering as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPassFragment as C,ReadShadowMapDrawFragment as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{VisualVariables as M}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{MixExternalColor as P}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as N,addCameraPosition as S}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as E}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as D}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as F,If as V}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as T}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{SnowCover as I}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{colorMixModes as $}from"../views/3d/webgl-engine/materials/internal/MaterialUtil.js";import{alphaCutoff as k}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as R}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as B}from"../views/webgl/ShaderBuilder.js";function _(_){const z=new B,{attributes:U,vertex:W,fragment:H,varyings:G}=z,{output:q,offsetBackfaces:J,pbrMode:K,snowCover:Q,spherical:X}=_,Y=1===K||2===K;if(N(W,_),U.add("position","vec3"),G.add("vpos","vec3",{invariant:!0}),z.include(M,_),z.include(l,_),z.include(m,_),z.include(j,_),!o(q))return z.include(v,_),z;S(z.vertex,_),z.include(n,_),z.include(i),J&&z.include(e),G.add("vNormalWorld","vec3"),G.add("localvpos","vec3",{invariant:!0}),z.include(c,_),z.include(d,_),z.include(a,_),z.include(g,_),W.include(t),W.include(s),W.uniforms.add(new E("externalColor",e=>e.externalColor,{supportsNaN:!0})),G.add("vcolorExt","vec4"),z.include(_.instancedDoublePrecision?C:L,_),W.include(k),W.main.add(F`
2
+ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColor as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstanceColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstanceColor.glsl.js";import{InstancedDoublePrecision as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{MaskedColorDefinition as t,CreateMaskedFromNaNColor as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/MaskedColor.glsl.js";import{NormalAttribute as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VerticalOffset as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as v}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{EvaluateAmbientOcclusion as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as p,addAmbientBoostFactor as w,addLightingGlobalFactor as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as f,addMainLightIntensity as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRendering as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPassFragment as C,ReadShadowMapDrawFragment as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{VisualVariables as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as M}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{MixExternalColor as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as N,addCameraPosition as P}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as E}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as F,If as V}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as D}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{SnowCover as I}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{colorMixModes as $}from"../views/3d/webgl-engine/materials/internal/MaterialUtil.js";import{alphaCutoff as k}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as R}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as T}from"../views/webgl/ShaderBuilder.js";function B(B){const _=new T,{attributes:U,vertex:z,fragment:W,varyings:H}=_,{output:G,offsetBackfaces:q,pbrMode:J,snowCover:K,spherical:Q}=B,X=1===J||2===J;if(N(z,B),U.add("position","vec3"),z.inputs.add("position",()=>"position"),H.add("vpos","vec3",{invariant:!0}),_.include(j,B),_.include(l,B),_.include(m,B),!o(G))return _.include(v,B),_;P(_.vertex,B),_.include(n,B),_.include(i),q&&_.include(e),H.add("vNormalWorld","vec3"),H.add("localvpos","vec3",{invariant:!0}),_.include(c,B),_.include(d,B),_.include(a,B),_.include(g,B),z.include(t),z.include(s),z.uniforms.add(new A("externalColor",e=>e.externalColor,{supportsNaN:!0})),H.add("vcolorExt","vec4"),_.include(B.instancedDoublePrecision?C:L,B),z.include(k),z.main.add(F`
3
3
  forwardVertexColor();
4
4
 
5
5
  MaskedColor maskedColorExt =
@@ -17,16 +17,14 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
17
17
  vpos = addVerticalOffset(vpos, localOrigin);
18
18
  vec4 basePosition = transformPosition(proj, view, vpos);
19
19
 
20
- forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
21
20
  forwardTextureCoordinates();
22
21
  forwardLinearDepthToReadShadowMap();
23
22
  gl_Position = alphaCut ? vec4(1e38, 1e38, 1e38, 1.0) :
24
- ${V(J,"offsetBackfacingClipPosition(basePosition, vpos, vNormalWorld, cameraPosition);","basePosition;")}
25
- `);const{hasColorTexture:Z,hasColorTextureTransform:ee}=_;return H.include(w,_),H.include(b,_),z.include(O,_),H.include(r,_),z.include(R,_),S(H,_),f(H),p(H),u(H),H.uniforms.add(W.uniforms.get("localOrigin"),W.uniforms.get("view"),new A("ambient",e=>e.ambient),new A("diffuse",e=>e.diffuse),new D("opacity",e=>e.opacity),new D("layerOpacity",e=>e.layerOpacity)),Z&&H.uniforms.add(new T("tex",e=>e.texture)),z.include(x,_),H.include(y,_),H.include(P),H.include(I,_),h(H),H.main.add(F`
23
+ ${V(q,"offsetBackfacingClipPosition(basePosition, vpos, vNormalWorld, cameraPosition);","basePosition;")}
24
+ `);const{hasColorTexture:Y,hasColorTextureTransform:Z}=B;return W.include(p,B),W.include(b,B),_.include(M,B),W.include(r,B),_.include(R,B),P(W,B),f(W),w(W),u(W),W.uniforms.add(z.uniforms.get("localOrigin"),z.uniforms.get("view"),new S("ambient",e=>e.ambient),new S("diffuse",e=>e.diffuse),new E("opacity",e=>e.opacity),new E("layerOpacity",e=>e.layerOpacity)),Y&&W.uniforms.add(new D("tex",e=>e.texture)),_.include(x,B),W.include(y,B),W.include(O),W.include(I,B),h(W),W.main.add(F`
26
25
  discardBySlice(vpos);
27
- discardByTerrainDepth();
28
- vec4 texColor = ${Z?`texture(tex, ${ee?"colorUV":"vuv0"})`:" vec4(1.0)"};
29
- ${V(Z,`${V(_.textureAlphaPremultiplied,"texColor.rgb /= texColor.a;")}\n discardOrAdjustAlpha(texColor);`)}
26
+ vec4 texColor = ${Y?`texture(tex, ${Z?"colorUV":"vuv0"})`:" vec4(1.0)"};
27
+ ${V(Y,`${V(B.textureAlphaPremultiplied,"texColor.rgb /= texColor.a;")}\n discardOrAdjustAlpha(texColor);`)}
30
28
  vec3 viewDirection = normalize(vpos - cameraPosition);
31
29
  applyPBRFactors();
32
30
  float ssao = evaluateAmbientOcclusionInverse();
@@ -36,14 +34,14 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
36
34
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
37
35
  float shadow = readShadow(additionalAmbientScale, vpos);
38
36
  vec3 matColor = max(ambient, diffuse);
39
- ${_.hasVertexColors?F`vec3 albedo = mixExternalColor(vColor.rgb * matColor, texColor.rgb, vcolorExt.rgb, colorMixMode);
37
+ ${B.hasVertexColors?F`vec3 albedo = mixExternalColor(vColor.rgb * matColor, texColor.rgb, vcolorExt.rgb, colorMixMode);
40
38
  float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, opacityMixMode);`:F`vec3 albedo = mixExternalColor(matColor, texColor.rgb, vcolorExt.rgb, colorMixMode);
41
39
  float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, opacityMixMode);`}
42
40
 
43
41
  vec3 shadingNormal = normalize(vNormalWorld);
44
- vec3 groundNormal = ${X?"normalize(vpos + localOrigin)":"vec3(0.0, 0.0, 1.0)"};
42
+ vec3 groundNormal = ${Q?"normalize(vpos + localOrigin)":"vec3(0.0, 0.0, 1.0)"};
45
43
 
46
- ${V(Q,"vec3 faceNormal = screenDerivativeNormal(vpos);\n float snow = getRealisticTreeSnow(faceNormal, shadingNormal, groundNormal);\n albedo = mix(albedo, vec3(1), snow);")}
44
+ ${V(K,"vec3 faceNormal = screenDerivativeNormal(vpos);\n float snow = getRealisticTreeSnow(faceNormal, shadingNormal, groundNormal);\n albedo = mix(albedo, vec3(1), snow);")}
47
45
 
48
46
  ${F`albedo *= 1.2;
49
47
  vec3 viewForward = vec3(view[0][2], view[1][2], view[2][2]);
@@ -53,8 +51,8 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
53
51
  float backLightFactor = 0.5 * treeRadialFalloff * alignmentLightView * transmittance * (1.0 - shadow);
54
52
  additionalLight += backLightFactor * mainLightIntensity;`}
55
53
 
56
- ${Y?F`float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
57
- ${V(Q,"mrr = applySnowToMRR(mrr, snow);")}
54
+ ${X?F`float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
55
+ ${V(K,"mrr = applySnowToMRR(mrr, snow);")}
58
56
  vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, groundNormal, mrr, additionalAmbientIrradiance);`:F`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
59
57
  vec4 finalColor = vec4(shadedColor, opacity_);
60
- outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${V(Q,", 1.0")});`),z}const z=Object.freeze(Object.defineProperty({__proto__:null,build:_},Symbol.toStringTag,{value:"Module"}));export{z as R,_ as b};
58
+ outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${V(K,", 1.0")});`),_}const _=Object.freeze(Object.defineProperty({__proto__:null,build:B},Symbol.toStringTag,{value:"Module"}));export{_ as R,B as b};