@arcgis/core 5.1.0-next.53 → 5.1.0-next.55

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 (477) hide show
  1. package/analysis/VolumeMeasurement/volumeMeasurementConfiguration.js +1 -1
  2. package/applications/Components/SketchTooltipControls.d.ts +3 -2
  3. package/applications/Components/SketchTooltipControls.js +1 -1
  4. package/applications/Components/navigationDuration.d.ts +15 -0
  5. package/applications/Components/navigationDuration.js +2 -0
  6. package/assets/esri/core/workers/RemoteClient.js +1 -1
  7. package/assets/esri/core/workers/chunks/05bc675c029ed311427f.js +1 -0
  8. package/assets/esri/core/workers/chunks/05d25a98c54679233902.js +1 -0
  9. package/assets/esri/core/workers/chunks/0b4a2361b9f9a6c0b8a7.js +1 -0
  10. package/assets/esri/core/workers/chunks/0e88e61d89f89994c4bf.js +1 -0
  11. package/assets/esri/core/workers/chunks/0f2ab57e4eb722b3b0c0.js +1 -0
  12. package/assets/esri/core/workers/chunks/{f4d31d96681b649ddc95.js → 0ff12fe9e358100668d9.js} +1 -1
  13. package/assets/esri/core/workers/chunks/1613123918e9b0f7cfdb.js +1 -0
  14. package/assets/esri/core/workers/chunks/1a198c9e17f7a058669e.js +1 -0
  15. package/assets/esri/core/workers/chunks/1f91280032aa42b1585b.js +1 -0
  16. package/assets/esri/core/workers/chunks/2327b368673a974dee8b.js +1 -0
  17. package/assets/esri/core/workers/chunks/23eb204d3cb818adea32.js +1 -0
  18. package/assets/esri/core/workers/chunks/254898b41cabe313b6ce.js +1 -0
  19. package/assets/esri/core/workers/chunks/26cafd20c8d03c274389.js +1 -0
  20. package/assets/esri/core/workers/chunks/{a69f1879735a031f62e9.js → 2a2d5f9ea42cb2eee9c6.js} +1 -1
  21. package/assets/esri/core/workers/chunks/2bc6edeb3156d241677b.js +1 -0
  22. package/assets/esri/core/workers/chunks/{d587b7842091affdaac3.js → 3158a3487d3e8a61b680.js} +1 -1
  23. package/assets/esri/core/workers/chunks/34acecd7a314fed12335.js +1 -0
  24. package/assets/esri/core/workers/chunks/{07e791530677f7e70f32.js → 3a2ecb883fdb5c598544.js} +2 -2
  25. package/assets/esri/core/workers/chunks/{cdeb6aec578a1c07d663.js → 3cb0f020f9bfc6653c5d.js} +1 -1
  26. package/assets/esri/core/workers/chunks/3e0752a81a7247c567ab.js +1 -0
  27. package/assets/esri/core/workers/chunks/3ef740d25dc17bef11b2.js +1 -0
  28. package/assets/esri/core/workers/chunks/42e084704dea6e4135b6.js +1 -0
  29. package/assets/esri/core/workers/chunks/{5b3bb636e3bec625e515.js → 4301cb9670fa7c907460.js} +1 -1
  30. package/assets/esri/core/workers/chunks/457bbf27e9bc18132464.js +1 -0
  31. package/assets/esri/core/workers/chunks/45eddf3918973fa8d751.js +1 -0
  32. package/assets/esri/core/workers/chunks/48eca6f51112ba80bd3b.js +1 -0
  33. package/assets/esri/core/workers/chunks/4a6186001323b47c23a4.js +1 -0
  34. package/assets/esri/core/workers/chunks/4b3622fc355fd2fd8678.js +1 -0
  35. package/assets/esri/core/workers/chunks/4e7bb224bde9e5039263.js +1 -0
  36. package/assets/esri/core/workers/chunks/4f847a426973bd350c11.js +1 -0
  37. package/assets/esri/core/workers/chunks/{193775b3b7de8f5dc578.js → 4fb718174c6e07d752e0.js} +1 -1
  38. package/assets/esri/core/workers/chunks/5143f74f1fe7533a6069.js +1 -0
  39. package/assets/esri/core/workers/chunks/{36425d29aaa5852cb41d.js → 522bc1d79dbe957301e4.js} +1 -1
  40. package/assets/esri/core/workers/chunks/52dbfd7519555028a8af.js +1 -0
  41. package/assets/esri/core/workers/chunks/55214e1d9f3d98fa7ed9.js +1 -0
  42. package/assets/esri/core/workers/chunks/56bce3a6701f8549606b.js +1 -0
  43. package/assets/esri/core/workers/chunks/572fcd33ae3648ed4f9c.js +1 -0
  44. package/assets/esri/core/workers/chunks/576a1784e93c5406e657.js +1 -0
  45. package/assets/esri/core/workers/chunks/59289867cce97da74e39.js +1 -0
  46. package/assets/esri/core/workers/chunks/{fdf8fe0f50a9ae548c16.js → 5a1d975b3e9e6b7eff67.js} +1 -1
  47. package/assets/esri/core/workers/chunks/5a83ea967ecde01d5622.js +1 -0
  48. package/assets/esri/core/workers/chunks/5a9620cb66c8e64e4668.js +1 -0
  49. package/assets/esri/core/workers/chunks/5aff2d6ae0d2a2d92ecc.js +1 -0
  50. package/assets/esri/core/workers/chunks/5eb9fdb076488de9cd83.js +1 -0
  51. package/assets/esri/core/workers/chunks/66fc3c4d6c54eee231b9.js +1 -0
  52. package/assets/esri/core/workers/chunks/{de359f89e03da18999fc.js → 691d0a60354b6458b9de.js} +1 -1
  53. package/assets/esri/core/workers/chunks/69644b8a6ce340ca1159.js +1 -0
  54. package/assets/esri/core/workers/chunks/6ab8ed12d162d79a8c55.js +1 -0
  55. package/assets/esri/core/workers/chunks/{d44217de4c73475f9c66.js → 73a045061e69a22b6869.js} +1 -1
  56. package/assets/esri/core/workers/chunks/76064c2c801da55cd844.js +1 -0
  57. package/assets/esri/core/workers/chunks/770880ad43f252962017.js +1 -0
  58. package/assets/esri/core/workers/chunks/78cb6b9ab32abdd1d530.js +1 -0
  59. package/assets/esri/core/workers/chunks/7b6e3cc086d13da770fa.js +1 -0
  60. package/assets/esri/core/workers/chunks/7ed2aa1092c0a2c839c0.js +1 -0
  61. package/assets/esri/core/workers/chunks/83113a9e284701d053b5.js +1 -0
  62. package/assets/esri/core/workers/chunks/8418ad9ad7b6481ebe82.js +1 -0
  63. package/assets/esri/core/workers/chunks/85c72d9fa533552a6e8a.js +1 -0
  64. package/assets/esri/core/workers/chunks/861a7d0e665add901e11.js +1 -0
  65. package/assets/esri/core/workers/chunks/87077f4cbca13e030411.js +1 -0
  66. package/assets/esri/core/workers/chunks/{199f70c0373f6008a545.js → 8df0c154bb0d79a905c0.js} +1 -1
  67. package/assets/esri/core/workers/chunks/9066f095f16448c0a04e.js +1 -0
  68. package/assets/esri/core/workers/chunks/91718795fc4ca6516ac7.js +1 -0
  69. package/assets/esri/core/workers/chunks/929b26999321519824b9.js +1 -0
  70. package/assets/esri/core/workers/chunks/9321f5ec514805307219.js +1 -0
  71. package/assets/esri/core/workers/chunks/932a0b39d85a76377d52.js +1 -0
  72. package/assets/esri/core/workers/chunks/93d1118f7a909d123b40.js +1 -0
  73. package/assets/esri/core/workers/chunks/94f80c46ccf5e19038b8.js +1 -0
  74. package/assets/esri/core/workers/chunks/979c2f52b6d6e1e8241b.js +1 -0
  75. package/assets/esri/core/workers/chunks/{617328964d480d4a3a45.js → 9806cc96414065ae0afe.js} +1 -1
  76. package/assets/esri/core/workers/chunks/{e6220c1fa887e21ffbbd.js → 9a235c92f21df2c17aa8.js} +1 -1
  77. package/assets/esri/core/workers/chunks/{f7fb121169b7e5a5adbc.js → 9d11e7972bc298cb94ce.js} +1 -1
  78. package/assets/esri/core/workers/chunks/a11f05ddd8314b648f76.js +1 -0
  79. package/assets/esri/core/workers/chunks/{15a45e26964c2eb381a6.js → a256edc8337e462f80f0.js} +1 -1
  80. package/assets/esri/core/workers/chunks/a41fabf8b2cf15b7d0c9.js +1 -0
  81. package/assets/esri/core/workers/chunks/{987dc23fdc0a8c7150b9.js → a5bf2718c02a0e645013.js} +1 -1
  82. package/assets/esri/core/workers/chunks/a7a553e245ba011d259f.js +1 -0
  83. package/assets/esri/core/workers/chunks/a8e111a5cfd6151d5dbb.js +1 -0
  84. package/assets/esri/core/workers/chunks/a9eb90b901e64e67b7a3.js +1 -0
  85. package/assets/esri/core/workers/chunks/{21decfc1e477fb769204.js → aa7aaeae31ddb259e55e.js} +1 -1
  86. package/assets/esri/core/workers/chunks/ad1946c084219bb678a0.js +1 -0
  87. package/assets/esri/core/workers/chunks/aed45f7e7eee154a21b8.js +1 -0
  88. package/assets/esri/core/workers/chunks/b056b4c79bcd542dd1d2.js +1 -0
  89. package/assets/esri/core/workers/chunks/b1a0a7cdaf50f98adb3e.js +1 -0
  90. package/assets/esri/core/workers/chunks/b20f4c82d0b44fdb4670.js +1 -0
  91. package/assets/esri/core/workers/chunks/b39b4db86a1049f0b901.js +1 -0
  92. package/assets/esri/core/workers/chunks/{1a1e57267306c07e5bdb.js → b3f0600729227b458a75.js} +1 -1
  93. package/assets/esri/core/workers/chunks/bacc343a79828e456de7.js +1 -0
  94. package/assets/esri/core/workers/chunks/bb047157f09471ecea53.js +1 -0
  95. package/assets/esri/core/workers/chunks/bc3b22dc08c147b8d425.js +1 -0
  96. package/assets/esri/core/workers/chunks/{29c91b5c9ddcea85f39a.js → c250799c131aa4ed2c35.js} +1 -1
  97. package/assets/esri/core/workers/chunks/{a495e60996a36ce19a32.js → c4da2ca1dee0c44051d0.js} +1 -1
  98. package/assets/esri/core/workers/chunks/c6149e0ac1c103e03baf.js +1 -0
  99. package/assets/esri/core/workers/chunks/c69fefe9d51ac7c2b0a6.js +1 -0
  100. package/assets/esri/core/workers/chunks/c86b15f6a18880f921cd.js +1 -0
  101. package/assets/esri/core/workers/chunks/c91d39e8e14be3d8bdf5.js +1 -0
  102. package/assets/esri/core/workers/chunks/c9c5e6996f36ec4b1558.js +1 -0
  103. package/assets/esri/core/workers/chunks/cd391415b8b8320e12e4.js +1 -0
  104. package/assets/esri/core/workers/chunks/d3b3e8c6d7096bc59489.js +1 -0
  105. package/assets/esri/core/workers/chunks/{81b830f0d620587966ca.js → d53c6fc10425adc2c0cf.js} +1 -1
  106. package/assets/esri/core/workers/chunks/d9444dd0d40aa8332b28.js +1 -0
  107. package/assets/esri/core/workers/chunks/da0a61f73d45ea9e71fc.js +1 -0
  108. package/assets/esri/core/workers/chunks/da2a10e72a315c3c1f82.js +1 -0
  109. package/assets/esri/core/workers/chunks/{9ae90a4b281d4103e8bb.js → dc07dc1cd30edc0c4193.js} +1 -1
  110. package/assets/esri/core/workers/chunks/de79645e559a2d1ffa67.js +1 -0
  111. package/assets/esri/core/workers/chunks/e2e3c39876bbe019c57a.js +1 -0
  112. package/assets/esri/core/workers/chunks/e543bb228f3f9d937d43.js +1 -0
  113. package/assets/esri/core/workers/chunks/e7e565e7c0ce1464c6b0.js +1 -0
  114. package/assets/esri/core/workers/chunks/e8a23ae30d586e3a973c.js +1 -0
  115. package/assets/esri/core/workers/chunks/{3c9e1ec94bbcbf494916.js → ea068f75397c3b3337ec.js} +3 -3
  116. package/assets/esri/core/workers/chunks/ec21311584e4fb13e510.js +1 -0
  117. package/assets/esri/core/workers/chunks/{c09bc36347e8eb9fff00.js → f09446b9ff937a84d6d3.js} +1 -1
  118. package/assets/esri/core/workers/chunks/{354b309c8225336bc1e5.js → f6d047358d14328f3622.js} +1 -1
  119. package/assets/esri/core/workers/chunks/f8ee1a99580a7da42cde.js +1 -0
  120. package/assets/esri/core/workers/chunks/{c6a0e770c1a89d3b5913.js → fb9a889ec9fd23739a14.js} +1 -1
  121. package/assets/esri/core/workers/chunks/{b2a67fe89f6505498bc3.js → fe1b67ab7748a3aef231.js} +1 -1
  122. package/assets/esri/core/workers/chunks/fe92f54e45fd21ccd75f.js +1 -0
  123. package/assets/esri/core/workers/chunks/ff0cb1eec14d34214f12.js +1 -0
  124. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
  125. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
  126. package/assets/esri/themes/base/_Ui.scss +3 -3
  127. package/assets/esri/themes/base/_mixins.scss +2 -2
  128. package/assets/esri/themes/base/widgets/_Attachments.scss +3 -3
  129. package/assets/esri/themes/base/widgets/_BasemapGallery.scss +8 -8
  130. package/assets/esri/themes/base/widgets/_BasemapToggle.scss +1 -1
  131. package/assets/esri/themes/base/widgets/_BuildingExplorer.scss +1 -1
  132. package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +4 -4
  133. package/assets/esri/themes/base/widgets/_BuildingPhasePicker.scss +1 -1
  134. package/assets/esri/themes/base/widgets/_CoordinateConversion.scss +2 -2
  135. package/assets/esri/themes/base/widgets/_DatePicker.scss +4 -4
  136. package/assets/esri/themes/base/widgets/_Daylight.scss +1 -1
  137. package/assets/esri/themes/base/widgets/_Editor.scss +2 -2
  138. package/assets/esri/themes/base/widgets/_ElevationProfile.scss +2 -2
  139. package/assets/esri/themes/base/widgets/_FeatureMedia.scss +1 -1
  140. package/assets/esri/themes/base/widgets/_FeatureTable.scss +1 -1
  141. package/assets/esri/themes/base/widgets/_FloorFilter.scss +2 -2
  142. package/assets/esri/themes/base/widgets/_Grid.scss +1 -1
  143. package/assets/esri/themes/base/widgets/_GridControls.scss +1 -1
  144. package/assets/esri/themes/base/widgets/_ItemList.scss +1 -1
  145. package/assets/esri/themes/base/widgets/_Legend.scss +1 -1
  146. package/assets/esri/themes/base/widgets/_LineOfSight.scss +1 -1
  147. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +1 -1
  148. package/assets/esri/themes/base/widgets/_OrientedImageryViewerNavigationUI.scss +3 -3
  149. package/assets/esri/themes/base/widgets/_Popup.scss +1 -1
  150. package/assets/esri/themes/base/widgets/_Print.scss +3 -3
  151. package/assets/esri/themes/base/widgets/_Sketch.scss +1 -1
  152. package/assets/esri/themes/base/widgets/_Slice.scss +1 -1
  153. package/assets/esri/themes/base/widgets/_Slider.scss +3 -3
  154. package/assets/esri/themes/base/widgets/_SnappingControls.scss +2 -2
  155. package/assets/esri/themes/base/widgets/_Spinner.scss +2 -2
  156. package/assets/esri/themes/base/widgets/_Swipe.scss +2 -2
  157. package/assets/esri/themes/base/widgets/_Tooltip.scss +2 -2
  158. package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +1 -1
  159. package/assets/esri/themes/base/widgets/_VideoPlayer.scss +2 -2
  160. package/assets/esri/themes/base/widgets/_Widget.scss +8 -8
  161. package/assets/esri/themes/dark/main.css +1 -1
  162. package/assets/esri/themes/light/main.css +1 -1
  163. package/assets/esri/themes/light/view.css +1 -1
  164. package/chunks/CutFillComposition.glsl.js +10 -4
  165. package/chunks/OITBlend.glsl.js +2 -2
  166. package/chunks/RibbonLine.glsl.js +75 -63
  167. package/chunks/ShadowHighlight.glsl.js +1 -1
  168. package/chunks/Viewshed.glsl.js +2 -2
  169. package/chunks/Water.glsl.js +24 -16
  170. package/chunks/arcgis-knowledge-client-core-simd.js +1 -1
  171. package/chunks/arcgis-knowledge-client-core.js +1 -1
  172. package/config.js +1 -1
  173. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  174. package/geometry/SpatialReference.js +1 -1
  175. package/geometry/operators/offsetOperator.d.ts +1 -1
  176. package/geometry/operators/proximityOperator.d.ts +1 -1
  177. package/geometry/operators/support/apiConverter.js +1 -1
  178. package/geometry/support/aaBoundingBox.js +1 -1
  179. package/geometry/support/curves/bezierCurveUtils.js +1 -1
  180. package/geometry/support/curves/circularArcUtils.js +1 -1
  181. package/geometry/support/curves/ellipticArc4Utils.js +1 -1
  182. package/geometry/support/curves/ellipticArc7Utils.js +1 -1
  183. package/geometry/support/geometryUtils.js +1 -1
  184. package/geometry/support/zscale.js +1 -1
  185. package/interfaces.d.ts +7 -0
  186. package/kernel.js +1 -1
  187. package/layers/LinkChartLayer.js +1 -1
  188. package/layers/OrientedImageryLayer.d.ts +0 -152
  189. package/layers/OrientedImageryLayer.js +1 -1
  190. package/layers/support/layerUtils.js +1 -1
  191. package/package.json +1 -1
  192. package/portal/schemas/definitions.js +1 -1
  193. package/rest/knowledgeGraph/wasmInterface/knowledgeWasmAccess.js +1 -1
  194. package/support/revision.js +1 -1
  195. package/support/tests/serviceMockDependencies.js +1 -1
  196. package/views/2d/engine/flow/FlowContainer.js +1 -1
  197. package/views/2d/engine/flow/FlowStrategy.js +1 -1
  198. package/views/2d/engine/flow/FlowView2D.js +1 -1
  199. package/views/2d/engine/flow/dataUtils.js +1 -1
  200. package/views/2d/engine/flow/particleConstants.js +2 -0
  201. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  202. package/views/2d/engine/flow/styles/Particles.js +1 -1
  203. package/views/2d/engine/flow/styles/Stack.js +1 -1
  204. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  205. package/views/2d/engine/flow/utils.js +1 -1
  206. package/views/2d/engine/imagery/RasterVFContainer.js +1 -1
  207. package/views/2d/engine/webgl/Painter.js +1 -1
  208. package/views/2d/engine/webgl/Profiler.js +1 -1
  209. package/views/2d/engine/webgl/WGLContainer.js +1 -1
  210. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  211. package/views/2d/engine/webgl/shaderGraph/techniques/TechniqueRegistry.js +1 -1
  212. package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
  213. package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
  214. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
  215. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
  216. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
  217. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
  218. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
  219. package/views/2d/engine/webgl/shaderGraph/techniques/flow/FlowTechnique.js +2 -0
  220. package/views/2d/engine/webgl/shaderGraph/techniques/grid/GridTechnique.js +1 -1
  221. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
  222. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  223. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
  224. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  225. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
  226. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
  227. package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
  228. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
  229. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js +1 -1
  230. package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
  231. package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
  232. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
  233. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js +2 -0
  234. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowParticlesShader.js +2 -0
  235. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowStreamlinesShader.js +2 -0
  236. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowUtils.js +2 -0
  237. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
  238. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTechnique.js +1 -1
  239. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileStencilTechnique.js +1 -1
  240. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +1 -1
  241. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueCircle.js +1 -1
  242. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueFill.js +1 -1
  243. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueLine.js +1 -1
  244. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +1 -1
  245. package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
  246. package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
  247. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  248. package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
  249. package/views/2d/layers/features/FeatureContainer.js +1 -1
  250. package/views/2d/layers/features/RenderState.js +1 -1
  251. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  252. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  253. package/views/3d/interactive/manipulators/ShiftManipulator.js +1 -1
  254. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  255. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  256. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  257. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  258. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  259. package/views/3d/layers/graphics/lineUtils.js +1 -1
  260. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  261. package/views/3d/layers/support/Tiles3DBVH.js +1 -1
  262. package/views/3d/layers/support/Tiles3DMeshIntersectionHandler.js +1 -1
  263. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  264. package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
  265. package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
  266. package/views/3d/support/gaussianSplatting/GaussianTile.js +1 -1
  267. package/views/3d/support/orientedBoundingBox.js +1 -1
  268. package/views/3d/terrain/TerrainRenderer.js +1 -1
  269. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
  270. package/views/3d/webgl-engine/collections/Component/ComponentObjectFixedBVH.js +1 -1
  271. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  272. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  273. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  274. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +1 -1
  275. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +1 -1
  276. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
  277. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  278. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  279. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
  280. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  281. package/views/3d/webgl-engine/lib/GLMaterial.js +1 -1
  282. package/views/3d/webgl-engine/lib/GLMaterialLoader.js +2 -0
  283. package/views/3d/webgl-engine/lib/GLMaterialParameters.js +1 -1
  284. package/views/3d/webgl-engine/lib/GLMaterialRepository.js +1 -1
  285. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  286. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  287. package/views/3d/webgl-engine/lib/RenderContext.js +1 -1
  288. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  289. package/views/3d/webgl-engine/lib/ReprojectionUniforms.js +2 -0
  290. package/views/3d/webgl-engine/lib/ScreenSpaceReflectionsUniforms.js +2 -0
  291. package/views/3d/webgl-engine/lib/TriangleIntersectionData.js +1 -1
  292. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  293. package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
  294. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  295. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  296. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  297. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  298. package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
  299. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  300. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  301. package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
  302. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  303. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  304. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  305. package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +1 -1
  306. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  307. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  308. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  309. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  310. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  311. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  312. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  313. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  314. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  315. package/views/3d/webgl.js +1 -1
  316. package/views/draw/DrawTool.js +1 -1
  317. package/views/draw/plugins/ShapePlugin.js +1 -1
  318. package/views/draw/plugins/TangentArcSegmentPlugin.js +2 -0
  319. package/views/draw/support/managers/GlobalStateManager.js +1 -1
  320. package/views/draw/support/types.d.ts +9 -0
  321. package/views/interactive/SegmentLabels.js +1 -1
  322. package/views/webgl/AllocationTracer.js +1 -1
  323. package/views/webgl/RenderingContext.js +1 -1
  324. package/views/webgl/checkWebGLError.js +1 -1
  325. package/widgets/Editor/components/Settings.js +1 -1
  326. package/widgets/Features/FeaturesViewModel.js +1 -1
  327. package/widgets/Features.js +1 -1
  328. package/widgets/Search/SearchViewModel.js +1 -1
  329. package/widgets/Search/support/layerSearchUtils.js +1 -1
  330. package/widgets/Search/support/locatorUtils.js +1 -1
  331. package/widgets/Sketch/support/PluginManager.js +1 -1
  332. package/widgets/Sketch.js +1 -1
  333. package/widgets/support/SketchTooltipControls.js +1 -1
  334. package/assets/esri/core/workers/chunks/001492854799c35b53bb.js +0 -1
  335. package/assets/esri/core/workers/chunks/004f991251f09b36fb09.js +0 -1
  336. package/assets/esri/core/workers/chunks/01dd849a2d335e9f3e16.js +0 -1
  337. package/assets/esri/core/workers/chunks/027d733a99f50cadcf22.js +0 -1
  338. package/assets/esri/core/workers/chunks/03d85a706669aaf24d49.js +0 -1
  339. package/assets/esri/core/workers/chunks/0450133e81bce4b48b84.js +0 -1
  340. package/assets/esri/core/workers/chunks/085778ecd39f46324a6b.js +0 -1
  341. package/assets/esri/core/workers/chunks/08dce0019b52042b01fa.js +0 -1
  342. package/assets/esri/core/workers/chunks/0d8294982853308225da.js +0 -1
  343. package/assets/esri/core/workers/chunks/156aecac067213642aae.js +0 -1
  344. package/assets/esri/core/workers/chunks/184e9147f7a2f0ae5915.js +0 -1
  345. package/assets/esri/core/workers/chunks/19f59a2a97c33ff92650.js +0 -1
  346. package/assets/esri/core/workers/chunks/1cce2f8837ad765acf44.js +0 -1
  347. package/assets/esri/core/workers/chunks/20f9f3470cad47d01803.js +0 -1
  348. package/assets/esri/core/workers/chunks/23a9070e9362b8439770.js +0 -1
  349. package/assets/esri/core/workers/chunks/28ac3a75130fe2b57ac7.js +0 -1
  350. package/assets/esri/core/workers/chunks/2b7d020367cb4ebb3c3d.js +0 -1
  351. package/assets/esri/core/workers/chunks/3104b10770903c265626.js +0 -1
  352. package/assets/esri/core/workers/chunks/33f00633131581e06328.js +0 -1
  353. package/assets/esri/core/workers/chunks/365ad1ffd496ed86637b.js +0 -1
  354. package/assets/esri/core/workers/chunks/36a0e48113ab59a4f21d.js +0 -1
  355. package/assets/esri/core/workers/chunks/3874362bf7d43adc41bb.js +0 -1
  356. package/assets/esri/core/workers/chunks/38dc1c4b8721efd4a165.js +0 -1
  357. package/assets/esri/core/workers/chunks/3e9700445518b8f9ae1b.js +0 -1
  358. package/assets/esri/core/workers/chunks/42f3fdad1728433b3510.js +0 -1
  359. package/assets/esri/core/workers/chunks/436941ec88439667022e.js +0 -1
  360. package/assets/esri/core/workers/chunks/440a650ed0867a16f559.js +0 -1
  361. package/assets/esri/core/workers/chunks/440f76c397a813b0dcf9.js +0 -1
  362. package/assets/esri/core/workers/chunks/4812482f28f7205b0938.js +0 -1
  363. package/assets/esri/core/workers/chunks/5317cbef0aac29761575.js +0 -1
  364. package/assets/esri/core/workers/chunks/5344919fc6e8050450f1.js +0 -1
  365. package/assets/esri/core/workers/chunks/54a9e17d6c0fef6a9146.js +0 -1
  366. package/assets/esri/core/workers/chunks/55985c9c48b8e1d1c634.js +0 -1
  367. package/assets/esri/core/workers/chunks/5e5b358e603b13b4d7d7.js +0 -1
  368. package/assets/esri/core/workers/chunks/5e9bd5ed6ecee5b15127.js +0 -1
  369. package/assets/esri/core/workers/chunks/63b9e4a7dad358605c38.js +0 -1
  370. package/assets/esri/core/workers/chunks/64845b1f53eca9db1229.js +0 -1
  371. package/assets/esri/core/workers/chunks/662932d2effd2b384b9e.js +0 -1
  372. package/assets/esri/core/workers/chunks/66d4cbb35d0c290150bf.js +0 -1
  373. package/assets/esri/core/workers/chunks/677d3674cb2c0c05fb7e.js +0 -1
  374. package/assets/esri/core/workers/chunks/6f58ec80abebb7bfbbb0.js +0 -1
  375. package/assets/esri/core/workers/chunks/7100c9038739121c2c4b.js +0 -1
  376. package/assets/esri/core/workers/chunks/7278cc37e85f0242f19b.js +0 -1
  377. package/assets/esri/core/workers/chunks/794f604d4267e374f7dd.js +0 -1
  378. package/assets/esri/core/workers/chunks/7ae8f73c8e2afae98ecb.js +0 -1
  379. package/assets/esri/core/workers/chunks/7d4af7e2cb2f234e12eb.js +0 -1
  380. package/assets/esri/core/workers/chunks/7d56b2ac5030dd8b748e.js +0 -1
  381. package/assets/esri/core/workers/chunks/807b12ace0099300b9b9.js +0 -1
  382. package/assets/esri/core/workers/chunks/816a4b03f2ea49238a6c.js +0 -1
  383. package/assets/esri/core/workers/chunks/842b442cc012d0797333.js +0 -1
  384. package/assets/esri/core/workers/chunks/8903ff28896bd6f34b0d.js +0 -1
  385. package/assets/esri/core/workers/chunks/89e9bc8789b100316136.js +0 -1
  386. package/assets/esri/core/workers/chunks/8afe32d3db9669f972bc.js +0 -1
  387. package/assets/esri/core/workers/chunks/91fd28f50477d16e294e.js +0 -1
  388. package/assets/esri/core/workers/chunks/953f671bdeb2ca9b9f37.js +0 -1
  389. package/assets/esri/core/workers/chunks/96e799ca97989a6ed448.js +0 -1
  390. package/assets/esri/core/workers/chunks/98011b93acf3d5f0b5a2.js +0 -1
  391. package/assets/esri/core/workers/chunks/9c7fd5db0813bdc38582.js +0 -1
  392. package/assets/esri/core/workers/chunks/9db2ff1d4cbb5d1b623e.js +0 -1
  393. package/assets/esri/core/workers/chunks/a2fee1611319665e6aed.js +0 -1
  394. package/assets/esri/core/workers/chunks/a644e30f65347ce846ed.js +0 -1
  395. package/assets/esri/core/workers/chunks/a64daa4945923a178fe5.js +0 -1
  396. package/assets/esri/core/workers/chunks/a84d67c1a1008bca2075.js +0 -1
  397. package/assets/esri/core/workers/chunks/a85575a8d1da09280cd7.js +0 -1
  398. package/assets/esri/core/workers/chunks/ab414a60808ea05a63e6.js +0 -1
  399. package/assets/esri/core/workers/chunks/ac4f7309a249132c22da.js +0 -1
  400. package/assets/esri/core/workers/chunks/aeb1900cfdd0e51cc5f8.js +0 -1
  401. package/assets/esri/core/workers/chunks/ba62f3aa811430787863.js +0 -1
  402. package/assets/esri/core/workers/chunks/c03d0091a6f385b9ce8d.js +0 -1
  403. package/assets/esri/core/workers/chunks/c20aaca8085ce897bd12.js +0 -1
  404. package/assets/esri/core/workers/chunks/c3e711dc608eedda2d14.js +0 -1
  405. package/assets/esri/core/workers/chunks/c4a9006cc6d2938570e0.js +0 -1
  406. package/assets/esri/core/workers/chunks/c692ea68509bddbf7b42.js +0 -1
  407. package/assets/esri/core/workers/chunks/cb8c17daec7055bf99cc.js +0 -1
  408. package/assets/esri/core/workers/chunks/d7439d357f68160844cb.js +0 -1
  409. package/assets/esri/core/workers/chunks/dd319d5fe89b275e93cf.js +0 -1
  410. package/assets/esri/core/workers/chunks/df3e79b56c37156e7895.js +0 -1
  411. package/assets/esri/core/workers/chunks/df8b80b17e371c9be4e6.js +0 -1
  412. package/assets/esri/core/workers/chunks/e77198f8ab47441423c5.js +0 -1
  413. package/assets/esri/core/workers/chunks/e786da40a1c87bed64ca.js +0 -1
  414. package/assets/esri/core/workers/chunks/e8aafef6342c50340a27.js +0 -1
  415. package/assets/esri/core/workers/chunks/ec00348d74e29f48613a.js +0 -1
  416. package/assets/esri/core/workers/chunks/ec65c9c72507ef9a9cf9.js +0 -1
  417. package/assets/esri/core/workers/chunks/eedeff8b344ff699b0b9.js +0 -1
  418. package/assets/esri/core/workers/chunks/f1767b8ba82fdd9bd947.js +0 -1
  419. package/assets/esri/core/workers/chunks/f4201e7dcae224d0caf0.js +0 -1
  420. package/assets/esri/core/workers/chunks/f7cc05fbfc97b4d36eba.js +0 -1
  421. package/assets/esri/core/workers/chunks/f9d369a4683f88ee9d76.js +0 -1
  422. package/assets/esri/core/workers/chunks/fc534c94d55331578195.js +0 -1
  423. package/assets/esri/themes/base/colors/css/brand_colors.css +0 -76
  424. package/assets/esri/themes/base/colors/css/calcite_core_colors.css +0 -169
  425. package/assets/esri/themes/base/colors/css/calcite_core_colors_dark.css +0 -169
  426. package/assets/esri/themes/base/colors/css/calcite_gray_colors.css +0 -43
  427. package/assets/esri/themes/base/colors/css/calcite_gray_colors_dark.css +0 -43
  428. package/assets/esri/themes/base/colors/css/calcite_highlight_colors.css +0 -43
  429. package/assets/esri/themes/base/colors/css/calcite_highlight_colors_dark.css +0 -43
  430. package/assets/esri/themes/base/colors/css/calcite_vibrant_colors.css +0 -67
  431. package/assets/esri/themes/base/colors/css/calcite_vibrant_colors_dark.css +0 -67
  432. package/assets/esri/themes/base/colors/css/complete.css +0 -610
  433. package/assets/esri/themes/base/colors/css/scss/brand_colors.scss +0 -128
  434. package/assets/esri/themes/base/colors/css/scss/calcite_core_colors.scss +0 -289
  435. package/assets/esri/themes/base/colors/css/scss/calcite_core_colors_dark.scss +0 -285
  436. package/assets/esri/themes/base/colors/css/scss/calcite_gray_colors.scss +0 -96
  437. package/assets/esri/themes/base/colors/css/scss/calcite_gray_colors_dark.scss +0 -91
  438. package/assets/esri/themes/base/colors/css/scss/calcite_highlight_colors.scss +0 -69
  439. package/assets/esri/themes/base/colors/css/scss/calcite_highlight_colors_dark.scss +0 -65
  440. package/assets/esri/themes/base/colors/css/scss/calcite_vibrant_colors.scss +0 -128
  441. package/assets/esri/themes/base/colors/css/scss/calcite_vibrant_colors_dark.scss +0 -124
  442. package/assets/esri/themes/base/colors/css/scss/complete.scss +0 -11
  443. package/assets/esri/themes/base/colors/patterns_json/brand_colors.css +0 -366
  444. package/assets/esri/themes/base/colors/patterns_json/calcite_core_colors.css +0 -687
  445. package/assets/esri/themes/base/colors/patterns_json/calcite_core_colors_dark.css +0 -673
  446. package/assets/esri/themes/base/colors/patterns_json/calcite_gray_colors.css +0 -177
  447. package/assets/esri/themes/base/colors/patterns_json/calcite_gray_colors_dark.css +0 -169
  448. package/assets/esri/themes/base/colors/patterns_json/calcite_highlight_colors.css +0 -178
  449. package/assets/esri/themes/base/colors/patterns_json/calcite_highlight_colors_dark.css +0 -169
  450. package/assets/esri/themes/base/colors/patterns_json/calcite_vibrant_colors.css +0 -273
  451. package/assets/esri/themes/base/colors/patterns_json/calcite_vibrant_colors_dark.css +0 -265
  452. package/assets/esri/themes/base/colors/patterns_json/complete.css +0 -2847
  453. package/assets/esri/themes/base/colors/patterns_json/scss/brand_colors.scss +0 -464
  454. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_core_colors.scss +0 -967
  455. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_core_colors_dark.scss +0 -964
  456. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_gray_colors.scss +0 -265
  457. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_gray_colors_dark.scss +0 -263
  458. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_highlight_colors.scss +0 -237
  459. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_highlight_colors_dark.scss +0 -235
  460. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_vibrant_colors.scss +0 -376
  461. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_vibrant_colors_dark.scss +0 -347
  462. package/assets/esri/themes/base/colors/patterns_json/scss/complete.scss +0 -12
  463. package/assets/esri/themes/base/icons/readme/download.png +0 -0
  464. package/assets/esri/themes/base/icons/readme/import-icons.png +0 -0
  465. package/assets/esri/themes/base/icons/readme/import.png +0 -0
  466. package/assets/esri/themes/base/icons/readme/load.png +0 -0
  467. package/assets/esri/themes/base/icons/selection.json +0 -1
  468. package/assets/esri/themes/base/icons/style.css +0 -774
  469. package/views/2d/engine/brushes.js +0 -2
  470. package/views/2d/engine/flow/BrushFlow.js +0 -2
  471. package/views/2d/engine/rasterBrushes.js +0 -2
  472. package/views/2d/engine/webgl/brushes/BrushClip.js +0 -2
  473. package/views/2d/engine/webgl/brushes/WGLBrush.js +0 -2
  474. package/views/2d/engine/webgl/painter/RenderPass.js +0 -2
  475. package/views/2d/engine/webgl/shaders/BackgroundPrograms.js +0 -2
  476. package/views/2d/engine/webgl/shaders/TileInfoPrograms.js +0 -2
  477. package/views/3d/webgl-engine/lib/GLMaterials.js +0 -2
@@ -1,6 +1,9 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Float4PassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as l}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as i}from"../views/webgl/NoParameters.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";class m extends i{constructor(){super(...arguments),this.borderColor=e()}}function c(){const e=new a;return e.include(r),e.outputs.add("fragColor","vec4",0),e.fragment.uniforms.add(new t("colorTexture",e=>e.color),new t("cutFillVolumes",e=>e.cutFillVolumes),new t("cutFillMask",e=>e.cutFillMask),new s("pixelRatio",(e,r)=>r.camera.pixelRatio),new o("borderColor",e=>e.borderColor)).main.add(l`vec4 color = texture(colorTexture, uv, 0.0);
3
- vec4 volumesColor = texture(cutFillVolumes, uv, 0.0);
2
+ import{create as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{Float4PassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as i}from"../views/webgl/NoParameters.js";import{ShaderBuilder as c}from"../views/webgl/ShaderBuilder.js";class a extends i{constructor(){super(...arguments),this.borderColor=e()}}function u(){const e=new c;return e.include(r),e.outputs.add("fragColor","vec4",0),e.fragment.uniforms.add(new s("colorTexture",e=>e.color),new s("cutVolume",e=>e.cutVolume),new s("fillVolume",e=>e.fillVolume),new s("cutFillMask",e=>e.cutFillMask),new s("depthTexture",e=>e.sceneDepth),new s("cutFillReferenceDepthTexture",e=>e.referenceDepth),new l("pixelRatio",(e,r)=>r.camera.pixelRatio),new t("borderColor",e=>e.borderColor)).main.add(o`vec4 color = texture(colorTexture, uv, 0.0);
3
+ vec4 cutVolume = texture(cutVolume, uv, 0.0);
4
+ vec4 fillVolume = texture(fillVolume, uv, 0.0);
5
+ float sceneDepth = texture(depthTexture, uv, 0.0).r;
6
+ float referenceDepth = texture(cutFillReferenceDepthTexture, uv, 0.0).r;
4
7
  ivec2 iuv = ivec2(uv * vec2(textureSize(cutFillMask, 0)));
5
8
  vec2 m0 = texelFetch(cutFillMask, iuv, 0).rg;
6
9
  vec2 m1 = texelFetch(cutFillMask, iuv + ivec2(-1, 0), 0).rg;
@@ -13,5 +16,8 @@ step(1.5, abs(m0.r - m1.r) + abs(m0.g - m1.g))
13
16
  + step(1.5, abs(m0.r - m3.r) + abs(m0.g - m3.g))
14
17
  + step(1.5, abs(m0.r - m4.r) + abs(m0.g - m4.g))
15
18
  ) * 0.25 * pixelRatio;
16
- vec4 base = mix(color, volumesColor, max(m0.r, m0.g) * volumesColor.a);
17
- fragColor = mix(base, borderColor, d);`),e}const u=Object.freeze(Object.defineProperty({__proto__:null,CutFillCompositionPassParameters:m,build:c},Symbol.toStringTag,{value:"Module"}));export{m as C,u as a,c as b};
19
+ float visibleAgainstScene = step(referenceDepth, sceneDepth);
20
+ vec4 base = mix(color, cutVolume, m0.r * cutVolume.a * visibleAgainstScene);
21
+ base = mix(base, fillVolume, m0.g * fillVolume.a);
22
+ float borderFade = mix(0.5, 1.0, visibleAgainstScene);
23
+ fragColor = mix(base, borderColor, d * borderFade);`),e}const m=Object.freeze(Object.defineProperty({__proto__:null,CutFillCompositionPassParameters:a,build:u},Symbol.toStringTag,{value:"Module"}));export{a as C,m as a,u as b};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{If as r,glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{O as s}from"./OITDim.glsl.js";import{oitResolution as a}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{ShaderBuilder as n}from"../views/webgl/ShaderBuilder.js";class i extends s{}function c(s){const i=new n;i.include(e);const{hasEmission:c,frontFaceMask:l,computeHudOcclusion:u,useFloatBlend:m}=s,f=i.fragment;f.include(a,s),f.uniforms.add(new t("colorTexture",e=>e.colorTexture),new t("alphaTexture",e=>e.alphaTexture));let d=0;return i.outputs.add("fragColor","vec4",d++),c&&i.outputs.add("fragEmission","vec4",d++),u&&i.outputs.add("fragOcclusion","vec4",d++),f.uniforms.add(new t("frontFaceTexture",e=>e.frontFaceTexture)),c&&(f.uniforms.add(new t("emissionTexture",e=>e.emissionTexture)),f.uniforms.add(new t("emissionFrontFaceTexture",e=>e.emissionFrontFaceTexture))),f.main.add(o`
2
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{If as r,glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{O as s}from"./OITDim.glsl.js";import{oitResolution as n}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";class i extends s{}function c(s){const i=new a;i.include(e);const{hasEmission:c,frontFaceMask:l,computeHudOcclusion:u,useFloatBlend:m}=s,f=i.fragment;f.include(n,s),f.uniforms.add(new t("colorTexture",e=>e.colorTexture),new t("alphaTexture",e=>e.alphaTexture));let d=0;return i.outputs.add("fragColor","vec4",d++),c&&i.outputs.add("fragEmission","vec4",d++),u&&i.outputs.add("fragOcclusion","vec4",d++),f.uniforms.add(new t("frontFaceTexture",e=>e.frontFaceTexture)),c&&(f.uniforms.add(new t("emissionTexture",e=>e.emissionTexture)),f.uniforms.add(new t("emissionFrontFaceTexture",e=>e.emissionFrontFaceTexture))),f.main.add(o`
3
3
  float srcAlpha = texture(alphaTexture, uv).r * floatBlendInputScale;
4
4
  ${r(u,"fragOcclusion = vec4(1.0, 0.0, 0.0, 1.0);")}
5
5
 
@@ -22,7 +22,7 @@ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/Scr
22
22
  ${r(!m,"float frontWeight = srcAlpha * floatBlendOutputScale;\n frontFace.a = mix(frontFace.a, 1.0, clamp((frontWeight - 0.9) * 10.0, 0.0, 1.0));")}
23
23
  fragColor = vec4(mix(srcColor.rgb * floatBlendInputScale / srcAlpha, frontFace.rgb, frontFace.a), 1.0 - srcColor.a);
24
24
 
25
- ${r(c,"vec4 emission = texture(emissionTexture, uv) * floatBlendInputScale;\n vec4 emissionFrontFace = texture(emissionFrontFaceTexture, uv);\n\n // Modulate transparent emitter by front faces. This case is important for surfaces which contain emitter and\n // non-emitter at the same time. Non-emitter surface parts need to modulate emissions as well.\n emission.rgb = emission.rgb * (1.0 - frontFace.a);\n\n fragEmission = vec4(mix(emission.rgb / srcAlpha, emissionFrontFace.rgb, emissionFrontFace.a) * floatBlendOutputScale, 1.0 - srcColor.a);\n ")}
25
+ ${r(c,"vec4 emission = texture(emissionTexture, uv);\n emission.rgb *= floatBlendInputScale;\n vec4 emissionFrontFace = texture(emissionFrontFaceTexture, uv);\n emissionFrontFace.rgb *= floatBlendInputScale;\n\n // Modulate transparent emitter by front faces. This case is important for surfaces which contain emitter and\n // non-emitter at the same time. Non-emitter surface parts need to modulate emissions as well.\n emission.rgb = emission.rgb * (1.0 - frontFace.a);\n\n fragEmission = vec4(mix(emission.rgb / srcAlpha, emissionFrontFace.rgb, emissionFrontFace.a) * floatBlendOutputScale, 1.0 - srcColor.a);\n ")}
26
26
 
27
27
  ${r(u,"fragOcclusion.r = pow(srcColor.a, 0.5);")}
28
28
  `),i}const l=Object.freeze(Object.defineProperty({__proto__:null,OITBlendPassParameters:i,build:c},Symbol.toStringTag,{value:"Module"}));export{i as O,l as a,c as b};
@@ -1,20 +1,21 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as n,computePixelSize as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{terrainDepthTest as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as d,NoPerspectiveRead as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as m,addPixelRatio as v}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 h}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as S}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as D,If as x}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as L}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{alphaCutoff as w}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as b}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as y}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as P}from"../views/webgl/ShaderBuilder.js";const j=1;function z(z){const C=new P,{attributes:W,varyings:R,vertex:F,fragment:A}=C,{applyMarkerOffset:V,draped:T,output:E,capType:O,stippleEnabled:N,falloffEnabled:M,roundJoins:$,wireframe:_,innerColorEnabled:k,hasAnimation:I,hasScreenSizePerspective:B,worldSizedImagePattern:H}=z;A.include(a),C.include(t,z),C.include(n,z),C.include(i,z),C.include(l,z),C.include(b,z);const J=V&&!T;J&&(F.uniforms.add(new S("markerScale",e=>e.markerScale)),C.include(o,{space:2,hasScreenSizePerspective:B})),m(F,z),F.uniforms.add(new L("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new f("nearFar",e=>e.camera.nearFar),new S("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new g("viewport",e=>e.camera.fullViewport)),F.constants.add("LARGE_HALF_FLOAT","float",65500),W.add("position","vec3"),W.add("previousDelta","vec4"),W.add("nextDelta","vec4"),W.add("lineParameters","vec2"),W.add("u0","float"),R.add("vColor","vec4"),R.add("vpos","vec3",{invariant:!0}),R.add("vLineDistance","float"),R.add("vLineWidth","float");const U=N;U&&R.add("vLineSizeInv","float");const G=2===O,q=N&&G,K=M||q;K&&R.add("vLineDistanceNorm","float"),G&&(R.add("vSegmentSDF","float"),R.add("vReverseSegmentSDF","float")),F.code.add(D`vec2 perpendicular(vec2 v) {
3
- return vec2(v.y, -v.x);
2
+ import{SliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as n,computePixelSize as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{terrainDepthTest as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as p,NoPerspectiveRead as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as m,addPixelRatio as v}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 h}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as x}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as S,If as D}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as w}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{alphaCutoff as L}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as b}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as y}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as z}from"../views/webgl/ShaderBuilder.js";const P=1;function j(j){const C=new z,{attributes:W,varyings:R,vertex:F,fragment:A}=C,{applyMarkerOffset:V,draped:T,output:E,capType:N,stippleEnabled:O,falloffEnabled:M,roundJoins:$,wireframe:_,innerColorEnabled:k,hasAnimation:I,hasScreenSizePerspective:B,worldSizedImagePattern:H}=j;A.include(a),C.include(t,j),C.include(n,j),C.include(i,j),C.include(l,j),C.include(b,j);const J=V&&!T;J&&(F.uniforms.add(new u("markerScale",e=>e.markerScale)),C.include(r,{space:2,hasScreenSizePerspective:B})),m(F,j),F.uniforms.add(new w("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new f("nearFar",e=>e.camera.nearFar),new u("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new g("viewport",e=>e.camera.fullViewport)),F.constants.add("LARGE_HALF_FLOAT","float",65500),W.add("position","vec3"),W.add("previousDelta","vec4"),W.add("nextDelta","vec4"),W.add("lineParameters","vec2"),W.add("u0","float"),R.add("vColor","vec4"),R.add("vpos","vec3",{invariant:!0}),R.add("vLineDistance","float"),R.add("vLineWidth","float");const U=O;U&&R.add("vLineSizeInv","float");const Z=2===N,G=O&&Z,X=M||G;X&&R.add("vLineDistanceNorm","float"),Z&&(R.add("vSegmentSDF","float"),R.add("vReverseSegmentSDF","float")),F.code.add(S`vec3 perpendicular(vec3 v) {
3
+ return vec3(v.y, -v.x, 0.0);
4
4
  }
5
5
  float interp(float ncp, vec4 a, vec4 b) {
6
6
  return (-ncp - a.z) / (b.z - a.z);
7
7
  }
8
- vec2 rotate(vec2 v, float a) {
8
+ vec3 rotateZ(vec3 v, float a) {
9
9
  float s = sin(a);
10
10
  float c = cos(a);
11
11
  mat2 m = mat2(c, -s, s, c);
12
- return m * v;
13
- }`),F.code.add(D`vec4 projectAndScale(vec4 pos) {
12
+ return vec3(m * v.xy, v.z);
13
+ }`),F.code.add(S`vec4 projectAndScale(vec4 pos) {
14
14
  vec4 posNdc = proj * pos;
15
15
  posNdc.xy *= viewport.zw / posNdc.w;
16
+ posNdc.z /= posNdc.w;
16
17
  return posNdc;
17
- }`),F.code.add(D`void clip(
18
+ }`),F.code.add(S`void clip(
18
19
  inout vec4 pos,
19
20
  inout vec4 prev,
20
21
  inout vec4 next,
@@ -45,7 +46,7 @@ if (next.z > -nearFar[0]) {
45
46
  next = mix(next, pos, interp(vnp, next, pos));
46
47
  }
47
48
  }
48
- }`),v(F),F.constants.add("aaWidth","float",N?0:1).main.add(D`
49
+ }`),v(F),F.constants.add("aaWidth","float",O?0:1).main.add(S`
49
50
  // unpack values from vertex type
50
51
  bool isStartVertex = abs(abs(lineParameters.y) - 3.0) == 1.0;
51
52
  vec3 prevPosition = position + previousDelta.xyz * previousDelta.w;
@@ -64,11 +65,11 @@ next = mix(next, pos, interp(vnp, next, pos));
64
65
  vec4 next = view * vec4(nextPosition, 1.0);
65
66
 
66
67
  bool isJoin = abs(lineParameters.y) < 3.0;
67
- `),J&&F.main.add(D`vec4 other = isStartVertex ? next : prev;
68
+ `),J&&F.main.add(S`vec4 other = isStartVertex ? next : prev;
68
69
  bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
69
70
  if (!isJoin && !markersHidden) {
70
71
  pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
71
- }`),C.include(d),F.main.add(D`
72
+ }`),C.include(p),F.main.add(S`
72
73
  clip(pos, prev, next, isStartVertex);
73
74
 
74
75
  vec3 clippedPos = pos.xyz;
@@ -80,24 +81,24 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
80
81
  next = projectAndScale(next);
81
82
  prev = projectAndScale(prev);
82
83
 
83
- vec2 left = (pos.xy - prev.xy);
84
- vec2 right = (next.xy - pos.xy);
84
+ vec3 left = (pos.xyz - prev.xyz);
85
+ vec3 right = (next.xyz - pos.xyz);
85
86
 
86
87
  float leftLen = length(left);
87
88
  float rightLen = length(right);
88
89
 
89
- float lineSize = getSize(${x(B,"clippedPos")});
90
- ${x(N&&B,"float patternLineSize = getSize(clippedCenter);")}
91
- ${x(N&&!B,"float patternLineSize = lineSize;")}
90
+ float lineSize = getSize(${D(B,"clippedPos")});
91
+ ${D(O&&B,"float patternLineSize = getSize(clippedCenter);")}
92
+ ${D(O&&!B,"float patternLineSize = lineSize;")}
92
93
 
93
- ${x(H,D`
94
+ ${D(H,S`
94
95
  lineSize += aaWidth;
95
96
  float lineWidth = lineSize * pixelRatio * worldToScreenRatio;
96
97
  if (lineWidth < 1.0) {
97
98
  coverage = lineWidth;
98
99
  lineWidth = 1.0;
99
100
  }
100
- `,D`
101
+ `,S`
101
102
  if (lineSize < 1.0) {
102
103
  coverage = lineSize; // convert sub-pixel coverage to alpha
103
104
  lineSize = 1.0;
@@ -108,21 +109,22 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
108
109
  `)}
109
110
 
110
111
  vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
111
- ${U?D`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
112
- `);(N||G)&&F.main.add(D`
112
+ ${U?S`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
113
+ `);(O||Z)&&F.main.add(S`
113
114
  float isEndVertex = float(!isStartVertex);
114
- vec2 segmentOrigin = mix(pos.xy, prev.xy, isEndVertex);
115
- vec2 segment = mix(right, left, isEndVertex);
116
- ${G?D`vec2 segmentEnd = mix(next.xy, pos.xy, isEndVertex);`:""}
117
- `),F.main.add(D`left = (leftLen > 0.001) ? left/leftLen : vec2(0.0, 0.0);
118
- right = (rightLen > 0.001) ? right/rightLen : vec2(0.0, 0.0);
119
- vec2 capDisplacementDir = vec2(0, 0);
120
- vec2 joinDisplacementDir = vec2(0, 0);
115
+ vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
116
+ vec3 segment = mix(right, left, isEndVertex);
117
+ ${Z?S`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:""}
118
+ `),F.main.add(S`left = (leftLen > 0.001) ? left/leftLen : vec3(0.0, 0.0, 0.0);
119
+ right = (rightLen > 0.001) ? right/rightLen : vec3(0.0, 0.0, 0.0);
120
+ vec3 segmentDirection = isStartVertex ? right : left;
121
+ vec3 capDisplacementDir = vec3(0.0, 0.0, 0.0);
122
+ vec3 joinDisplacementDir = vec3(0.0, 0.0, 0.0);
121
123
  float displacementLen = lineWidth;
122
124
  if (isJoin) {
123
125
  bool isOutside = (left.x * right.y - left.y * right.x) * lineParameters.y > 0.0;
124
- joinDisplacementDir = normalize(left + right);
125
- joinDisplacementDir = perpendicular(joinDisplacementDir);
126
+ vec3 joinDirection = normalize(left + right);
127
+ joinDisplacementDir = perpendicular(joinDirection);
126
128
  if (leftLen > 0.001 && rightLen > 0.001) {
127
129
  float nDotSeg = dot(joinDisplacementDir, left);
128
130
  displacementLen /= length(nDotSeg * left - joinDisplacementDir);
@@ -131,18 +133,18 @@ displacementLen = min(displacementLen, min(leftLen, rightLen)/abs(nDotSeg));
131
133
  }
132
134
  }
133
135
  float subdivisionFactor = lineParameters.x;
134
- if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),$?F.main.add(D`
135
- vec2 startDir = leftLen < 0.001 ? right : left;
136
+ if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),$?F.main.add(S`
137
+ vec3 startDir = leftLen < 0.001 ? right : left;
136
138
  startDir = perpendicular(startDir);
137
139
 
138
- vec2 endDir = rightLen < 0.001 ? left : right;
140
+ vec3 endDir = rightLen < 0.001 ? left : right;
139
141
  endDir = perpendicular(endDir);
140
142
 
141
- float factor = ${N?D`min(1.0, subdivisionFactor * ${D.float((j+2)/(j+1))})`:D`subdivisionFactor`};
143
+ float factor = ${O?S`min(1.0, subdivisionFactor * ${S.float((P+2)/(P+1))})`:S`subdivisionFactor`};
142
144
 
143
- float rotationAngle = acos(clamp(dot(startDir, endDir), -1.0, 1.0));
144
- joinDisplacementDir = rotate(startDir, -sign(lineParameters.y) * factor * rotationAngle);
145
- `):F.main.add(D`if (leftLen < 0.001) {
145
+ float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
146
+ joinDisplacementDir = rotateZ(startDir, -sign(lineParameters.y) * factor * rotationAngle);
147
+ `):F.main.add(S`if (leftLen < 0.001) {
146
148
  joinDisplacementDir = right;
147
149
  }
148
150
  else if (rightLen < 0.001) {
@@ -151,7 +153,7 @@ joinDisplacementDir = left;
151
153
  else {
152
154
  joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? right : left;
153
155
  }
154
- joinDisplacementDir = perpendicular(joinDisplacementDir);`);const Q=0!==O;return F.main.add(D`
156
+ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const Y=0!==N;return F.main.add(S`
155
157
  displacementLen = lineWidth;
156
158
  }
157
159
  } else {
@@ -159,30 +161,39 @@ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const Q=0!==O;return
159
161
  joinDisplacementDir = isStartVertex ? right : left;
160
162
  joinDisplacementDir = perpendicular(joinDisplacementDir);
161
163
 
162
- ${Q?D`capDisplacementDir = isStartVertex ? -right : left;`:""}
164
+ ${Y?S`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`:""}
163
165
  }
164
- `),F.main.add(D`
166
+ `),F.main.add(S`
165
167
  // Displacement (in pixels) caused by join/or cap
166
- vec2 dpos = joinDisplacementDir * sign(lineParameters.y) * displacementLen + capDisplacementDir * displacementLen;
168
+ vec2 dposXY = (joinDisplacementDir.xy * sign(lineParameters.y) + capDisplacementDir.xy) * displacementLen;
169
+
170
+ /**
171
+ * To prevent z-fighting between layers, we also adjust the z value.
172
+ * We want to ensure that the orientation of the final triangles is the same, regardless of the line width.
173
+ * To do so, the below formula projects the xy displacement onto the original segment direction
174
+ * to find the z-offset necessary so the triangle orientation is independent of the width.
175
+ */
176
+ float dposZ = dot(dposXY, segmentDirection.xy) / dot(segmentDirection.xy, segmentDirection.xy) * segmentDirection.z;
177
+ vec3 dpos = vec3(dposXY, dposZ);
167
178
  float lineDistNorm = noPerspectiveWrite(sign(lineParameters.y), pos.w);
168
179
 
169
180
  vLineDistance = lineWidth * lineDistNorm;
170
- ${K?D`vLineDistanceNorm = lineDistNorm;`:""}
181
+ ${X?S`vLineDistanceNorm = lineDistNorm;`:""}
171
182
 
172
- pos.xy += dpos;
173
- `),G&&F.main.add(D`vec2 segmentDir = normalize(segment);
174
- vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin, segmentDir)), pos.w);
175
- vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd, -segmentDir)), pos.w);`),N&&(T?F.uniforms.add(new u("worldToScreenRatio",e=>1/e.screenToPCSRatio)):F.main.add(D`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
176
- float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),F.main.add(D`float segmentLengthScreenDouble = length(segment);
183
+ pos.xyz += dpos;
184
+ `),Z&&F.main.add(S`vec2 segmentDir = normalize(segment.xy);
185
+ vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
186
+ vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),O&&(T?F.uniforms.add(new x("worldToScreenRatio",e=>1/e.screenToPCSRatio)):F.main.add(S`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
187
+ float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),F.main.add(S`float segmentLengthScreenDouble = length(segment.xy);
177
188
  float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
178
189
  float discreteWorldToScreenRatio = discretizeWorldToScreenRatio(worldToScreenRatio);
179
190
  float segmentLengthRender = length(mix(nextPosition - position, position - prevPosition, isEndVertex));
180
- vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),T?F.main.add(D`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
181
- float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):F.main.add(D`float startPseudoScreen = mix(u0, u0 - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
182
- float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),F.uniforms.add(new S("stipplePatternPixelSize",e=>r(e))),F.main.add(D`
191
+ vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),T?F.main.add(S`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
192
+ float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):F.main.add(S`float startPseudoScreen = mix(u0, u0 - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
193
+ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),F.uniforms.add(new u("stipplePatternPixelSize",e=>o(e))),F.main.add(S`
183
194
  float patternLength = patternLineSize * stipplePatternPixelSize;
184
195
 
185
- ${x(H,D`
196
+ ${D(H,S`
186
197
  float uu = mix(u0, u0 - segmentLengthRender, isEndVertex);
187
198
  vStippleDistanceLimits = vec2(uu, uu + segmentLengthRender);
188
199
  vStipplePatternStretch = 1.0;
@@ -190,7 +201,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
190
201
  // The v-coordinate used in case of an image pattern.
191
202
  bool isLeft = sign(lineParameters.y) < 0.0;
192
203
  vStippleV = isLeft ? 0.0 : 1.0;
193
- `,D`
204
+ `,S`
194
205
  // Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the
195
206
  // fragment shader
196
207
  vStippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
@@ -203,8 +214,8 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
203
214
  if (segmentLengthScreenDouble >= 0.001) {
204
215
  // Project the actual vertex position onto the line segment. Note that the resulting factor is within [0..1]
205
216
  // at the original vertex positions, and slightly outside of that range at the displaced positions
206
- vec2 stippleDisplacement = pos.xy - segmentOrigin;
207
- float stippleDisplacementFactor = dot(segment, stippleDisplacement) / (segmentLengthScreenDouble * segmentLengthScreenDouble);
217
+ vec3 stippleDisplacement = pos.xyz - segmentOrigin;
218
+ float stippleDisplacementFactor = dot(segment.xy, stippleDisplacement.xy) / (segmentLengthScreenDouble * segmentLengthScreenDouble);
208
219
 
209
220
  // Apply this offset to the actual vertex coordinate (can be screen or pseudo-screen space)
210
221
  vStippleDistance += (stippleDisplacementFactor - isEndVertex) * (vStippleDistanceLimits.y - vStippleDistanceLimits.x);
@@ -221,9 +232,10 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
221
232
  isStartVertex ?
222
233
  vec2(-1e34, vStippleDistanceLimits.y) :
223
234
  vec2(vStippleDistanceLimits.x, 1e34);
224
- `)),F.main.add(D`
235
+ `)),F.main.add(S`
225
236
  // Convert back into NDC
226
237
  pos.xy = (pos.xy / viewport.zw) * pos.w;
238
+ pos.z = pos.z * pos.w;
227
239
 
228
240
  vColor = getColor();
229
241
  vColor.a = noPerspectiveWrite(vColor.a * coverage, pos.w);
@@ -234,37 +246,37 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
234
246
  vpos = (inverseProjectionMatrix * pos).xyz;
235
247
  gl_Position = pos;
236
248
  forwardObjectAndLayerIdColor();
237
- }`),C.fragment.include(e,z),C.include(y,z),A.include(p),A.main.add(D`discardBySlice(vpos);
238
- discardByTerrainDepth();`),C.include(c),A.include(w),A.main.add(D`
249
+ }`),C.fragment.include(e,j),C.include(y,j),A.include(d),A.main.add(S`discardBySlice(vpos);
250
+ discardByTerrainDepth();`),C.include(c),A.include(L),A.main.add(S`
239
251
  float lineWidth = noPerspectiveRead(vLineWidth);
240
252
  float lineDistance = noPerspectiveRead(vLineDistance);
241
- ${x(K,D`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
242
- `),_?A.main.add(D`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(G&&A.main.add(D`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
253
+ ${D(X,S`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
254
+ `),_?A.main.add(S`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(Z&&A.main.add(S`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
243
255
  vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
244
256
  float fragmentRadius = length(fragmentPosition);
245
257
  float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
246
258
  float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
247
259
  if (capCoverage < alphaCutoff) {
248
260
  discard;
249
- }`),q?A.main.add(D`vec2 stipplePosition = vec2(
261
+ }`),G?A.main.add(S`vec2 stipplePosition = vec2(
250
262
  min(getStippleSDF() * 2.0 - 1.0, 0.0),
251
263
  lineDistanceNorm
252
264
  );
253
265
  float stippleRadius = length(stipplePosition * lineWidth);
254
266
  float stippleCapSDF = (stippleRadius - lineWidth) * 0.5;
255
267
  float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
256
- float stippleAlpha = step(alphaCutoff, stippleCoverage);`):A.main.add(D`float stippleAlpha = getStippleAlpha(lineWidth);`),11!==E&&A.main.add(D`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),C.include(c),A.uniforms.add(new h("intrinsicColor",e=>e.color)).main.add(D`vec4 color = intrinsicColor * vColor;
257
- color.a = noPerspectiveRead(color.a);`),k&&A.uniforms.add(new h("innerColor",e=>e.innerColor??e.color),new S("innerWidth",(e,i)=>e.innerWidth*i.camera.pixelRatio)).main.add(D`float distToInner = abs(lineDistance) - innerWidth;
268
+ float stippleAlpha = step(alphaCutoff, stippleCoverage);`):A.main.add(S`float stippleAlpha = getStippleAlpha(lineWidth);`),11!==E&&A.main.add(S`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),C.include(c),A.uniforms.add(new h("intrinsicColor",e=>e.color)).main.add(S`vec4 color = intrinsicColor * vColor;
269
+ color.a = noPerspectiveRead(color.a);`),k&&A.uniforms.add(new h("innerColor",e=>e.innerColor??e.color),new u("innerWidth",(e,i)=>e.innerWidth*i.camera.pixelRatio)).main.add(S`float distToInner = abs(lineDistance) - innerWidth;
258
270
  float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
259
271
  float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
260
- color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),A.main.add(D`vec4 finalColor = blendStipple(color, stippleAlpha);`),M&&(A.uniforms.add(new S("falloff",e=>e.falloff)),A.main.add(D`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),N||A.main.add(D`float featherStartDistance = max(lineWidth - 2.0, 0.0);
272
+ color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),A.main.add(S`vec4 finalColor = blendStipple(color, stippleAlpha);`),M&&(A.uniforms.add(new u("falloff",e=>e.falloff)),A.main.add(S`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),O||A.main.add(S`float featherStartDistance = max(lineWidth - 2.0, 0.0);
261
273
  float value = abs(lineDistance);
262
274
  float feather = (value - featherStartDistance) / (lineWidth - featherStartDistance);
263
- finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),I&&A.main.add(D`
275
+ finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),I&&A.main.add(S`
264
276
  finalColor = animate(finalColor);
265
277
 
266
- ${x(11!==E,D`
278
+ ${D(11!==E,S`
267
279
  if (finalColor.a <= alphaCutoff) {
268
280
  discard;
269
281
  }`)}
270
- `)),A.main.add(D`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:z,ribbonlineNumRoundJoinSubdivisions:j},Symbol.toStringTag,{value:"Module"}));export{C as R,z as b,j as r};
282
+ `)),A.main.add(S`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:j,ribbonlineNumRoundJoinSubdivisions:P},Symbol.toStringTag,{value:"Module"}));export{C as R,j as b,P as r};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{normalize as e,transformMat4 as i}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepthPass as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{ShadowmapFiltering as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ShadowmapFiltering.glsl.js";import{Float3BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as d}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 n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DShadowBindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{Texture2DUintPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js";import{ShaderBuilder as w}from"../views/webgl/ShaderBuilder.js";const m=.025;function p(){const o=new w;o.include(a),o.include(l),o.include(t),o.include(r);const p=o.fragment;return p.uniforms.add(new c("shadowMapExcludingHighlight",({shadowMap:e})=>e.getOutput(7)),new c("shadowMapHighlight",({shadowMap:e})=>e.getOutput(6)),new s("depthMap",e=>e.depth?.attachment),new u("highlightTexture",e=>e.highlightTexture),new d("uColor",e=>e.shadowColor),new g("opacity",e=>e.shadowOpacity),new g("occludedOpacity",e=>e.occludedShadowOpacity),new g("terminationFactor",e=>e.opacityElevation*e.dayNightTerminator),new h("lightingMainDirectionView",({lighting:o,camera:r})=>e(f,i(f,o.mainLight.direction,r.viewInverseTransposeMatrix)))),p.main.add(n`
2
+ import{normalize as e,transformMat4 as i}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepthPass as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{ShadowmapFiltering as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ShadowmapFiltering.glsl.js";import{Float3BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as d}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 n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DShadowBindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{Texture2DUintPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js";import{ShaderBuilder as w}from"../views/webgl/ShaderBuilder.js";const m=.025;function p(){const o=new w;o.include(a),o.include(l),o.include(t),o.include(r);const p=o.fragment;return p.uniforms.add(new c("shadowMapExcludingHighlight",({shadowMap:e})=>e.getOutput(7)),new c("shadowMapHighlight",({shadowMap:e})=>e.getOutput(6)),new s("depthMap",e=>e.mainDepth),new u("highlightTexture",e=>e.highlightTexture),new d("uColor",e=>e.shadowColor),new g("opacity",e=>e.shadowOpacity),new g("occludedOpacity",e=>e.occludedShadowOpacity),new g("terminationFactor",e=>e.opacityElevation*e.dayNightTerminator),new h("lightingMainDirectionView",({lighting:o,camera:r})=>e(f,i(f,o.mainLight.direction,r.viewInverseTransposeMatrix)))),p.main.add(n`
3
3
  ivec2 highlightTextureSize = textureSize(highlightTexture, 0);
4
4
  ivec2 highlightIUV = ivec2(uv * vec2(highlightTextureSize));
5
5
  uvec2 highlightInfo = texelFetch(highlightTexture, highlightIUV, 0).rg;
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{invertOrIdentity as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as i,create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as s}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{LocalFromScreenSpacePassParameters as r,localFromScreenSpace as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/LocalFromScreenSpace.glsl.js";import{Float2PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3PassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as v}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as w}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Matrix4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Matrix4sPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Matrix4sPassUniform.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ShaderBuilder as g}from"../views/webgl/ShaderBuilder.js";class u extends r{constructor(){super(...arguments),this.shadowMap={depthTexture:null,nearFar:[1,100],numActiveFaces:1,atlasRegions:[[0,0,1,1]]},this.targetVector=[1,0,0],this.upVector=[0,0,1],this.fovs=[45,45],this.headingAndTilt=[0,0],this.observerOffset=[0,0,0],this.projectionMatrices=i.flat(),this.viewMatrices=i.flat(),this.volumeOffset=0}}function x(){const i=new g,o=i.fragment;return i.include(t),i.include(n),o.include(s),o.include(a),o.uniforms.add(new f("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new f("inverseViewNormalMatrix",({camera:i})=>e(V,i.viewInverseTransposeMatrix)),new l("viewshedObserverOffset",e=>e.observerOffset),new l("viewshedTargetVector",e=>e.targetVector),new l("viewshedUpVector",e=>e.upVector),new d("viewshedFOVs",e=>e.fovs),new d("viewshedHeadingAndTilt",e=>e.headingAndTilt),new d("viewshedNearFar",e=>e.shadowMap.nearFar??[1,100]),new h("viewshedVolumeOffset",e=>e.volumeOffset),new m("viewshedShadowMap",e=>e.shadowMap.depthTexture),new p("viewshedProjectionMatrices",e=>e.projectionMatrices,6),new p("viewshedViewMatrices",e=>e.viewMatrices,6),new w("viewshedNumFaces",e=>e.shadowMap.numActiveFaces),new v("viewshedAtlasRegions",24,e=>e.shadowMap.atlasRegions.flat()),new m("depthTexture",e=>e.depth?.attachment),new m("normalMap",e=>e.normals)),o.constants.add("visibleColor","vec4",[0,1,0,.5]),o.constants.add("occludedColor","vec4",[1,0,0,.5]),o.code.add(c`vec2 getViewshedUv(vec4 worldPosition, int face) {
2
+ import{invertOrIdentity as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as i,create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as s}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{LocalFromScreenSpacePassParameters as r,localFromScreenSpace as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/LocalFromScreenSpace.glsl.js";import{Float2PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3PassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as v}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as w}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Matrix4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Matrix4sPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Matrix4sPassUniform.js";import{Texture2DBindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ShaderBuilder as u}from"../views/webgl/ShaderBuilder.js";class x extends r{constructor(){super(...arguments),this.shadowMap={depthTexture:null,nearFar:[1,100],numActiveFaces:1,atlasRegions:[[0,0,1,1]]},this.targetVector=[1,0,0],this.upVector=[0,0,1],this.fovs=[45,45],this.headingAndTilt=[0,0],this.observerOffset=[0,0,0],this.projectionMatrices=i.flat(),this.viewMatrices=i.flat(),this.volumeOffset=0}}function V(){const i=new u,o=i.fragment;return i.include(t),i.include(n),o.include(s),o.include(a),o.uniforms.add(new f("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new f("inverseViewNormalMatrix",({camera:i})=>e(b,i.viewInverseTransposeMatrix)),new l("viewshedObserverOffset",e=>e.observerOffset),new l("viewshedTargetVector",e=>e.targetVector),new l("viewshedUpVector",e=>e.upVector),new d("viewshedFOVs",e=>e.fovs),new d("viewshedHeadingAndTilt",e=>e.headingAndTilt),new d("viewshedNearFar",e=>e.shadowMap.nearFar??[1,100]),new h("viewshedVolumeOffset",e=>e.volumeOffset),new g("viewshedShadowMap",e=>e.shadowMap.depthTexture),new p("viewshedProjectionMatrices",e=>e.projectionMatrices,6),new p("viewshedViewMatrices",e=>e.viewMatrices,6),new w("viewshedNumFaces",e=>e.shadowMap.numActiveFaces),new v("viewshedAtlasRegions",24,e=>e.shadowMap.atlasRegions.flat()),new m("depthTexture",e=>e.mainDepth),new g("normalMap",e=>e.normals)),o.constants.add("visibleColor","vec4",[0,1,0,.5]),o.constants.add("occludedColor","vec4",[1,0,0,.5]),o.code.add(c`vec2 getViewshedUv(vec4 worldPosition, int face) {
3
3
  mat4 viewshedMatrix = viewshedProjectionMatrices[face];
4
4
  vec4 viewshedUv4 = viewshedMatrix * worldPosition;
5
5
  vec3 viewshedUv = viewshedUv4.xyz / viewshedUv4.w;
@@ -140,4 +140,4 @@ float cosAngle = normalCosAngle(linearDepth, localPosition.xyz);
140
140
  float threshold = -0.01;
141
141
  if (cosAngle > threshold) {
142
142
  fragColor = occludedColor;
143
- }`),i}const V=o(),b=Object.freeze(Object.defineProperty({__proto__:null,ViewshedPassParameters:u,build:x},Symbol.toStringTag,{value:"Module"}));export{u as V,b as a,x as b};
143
+ }`),i}const b=o(),M=Object.freeze(Object.defineProperty({__proto__:null,ViewshedPassParameters:x,build:V},Symbol.toStringTag,{value:"Module"}));export{x as V,M as a,V as b};
@@ -1,14 +1,14 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{isColor as e}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 o}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientLighting as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import{addMainLightDirection as n,addMainLightIntensity as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDraw as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{WaterColor as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js";import{WaterDistortion as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ColorConversion as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as p,addCameraPosition as w}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as h}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as b}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as y}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as j}from"../webscene/support/AlphaCutoff.js";function L(L){const C=new y,{vertex:P,fragment:x,varyings:S}=C,{output:O,draped:D,receiveShadows:M}=L;p(P,L),C.include(o),C.attributes.add("position","vec3"),C.attributes.add("uv0","vec2");const _=new u("waterColor",e=>e.color);if(S.add("vpos","vec3",{invariant:!0}),P.uniforms.add(_),e(O)){if(D)return P.main.add(h`
3
- if (waterColor.a < ${h.float(j)}) {
2
+ import e from"../core/Error.js";import{isColor as r}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 i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{OutputHighlight as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientLighting as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import{addMainLightDirection as s,addMainLightIntensity as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDraw as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{WaterColor as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js";import{WaterDistortion as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ColorConversion as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as u,addCameraPosition as w}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as b}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as y}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as j}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as L}from"../webscene/support/AlphaCutoff.js";function P(P){const C=new j,{vertex:x,fragment:S,varyings:_}=C,{output:D,draped:O,receiveShadows:M}=P;u(x,P),C.include(i),C.attributes.add("position","vec3"),C.attributes.add("uv0","vec2");const F=new f("waterColor",e=>e.color);if(_.add("vpos","vec3",{invariant:!0}),x.uniforms.add(F),r(D)){if(O)return x.main.add(b`
3
+ if (waterColor.a < ${b.float(L)}) {
4
4
  // Discard this vertex
5
5
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
6
6
  return;
7
7
  }
8
8
 
9
9
  vpos = position;
10
- gl_Position = transformPosition(proj, view, vpos);`),x.uniforms.add(_),x.main.add(h`fragColor = waterColor;`),C;C.include(l,L),S.add("vuv","vec2"),S.add("vnormal","vec3"),S.add("vtbnMatrix","mat3"),P.main.add(h`
11
- if (waterColor.a < ${h.float(j)}) {
10
+ gl_Position = transformPosition(proj, view, vpos);`),S.uniforms.add(F),S.main.add(b`fragColor = waterColor;`),C;C.include(d,P),_.add("vuv","vec2"),_.add("vnormal","vec3"),_.add("vtbnMatrix","mat3"),x.main.add(b`
11
+ if (waterColor.a < ${b.float(L)}) {
12
12
  // Discard this vertex
13
13
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
14
14
  return;
@@ -22,7 +22,7 @@ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutpu
22
22
  forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
23
23
 
24
24
  gl_Position = transformPosition(proj, view, vpos);
25
- forwardLinearDepthToReadShadowMap();`)}switch(C.include(d,L),C.include(g,L),O){case 0:case 1:case 2:x.include(t,{pbrMode:0}),C.include(m),C.include(c,L),x.include(r,L),C.include(b,L),x.include(v),w(x,L),n(x),s(x),x.uniforms.add(_,new f("timeElapsed",({timeElapsed:e})=>e),P.uniforms.get("view"),P.uniforms.get("localOrigin")).main.add(h`
25
+ forwardLinearDepthToReadShadowMap();`)}switch(C.include(c,P),C.include(g,P),D){case 0:case 1:case 2:S.include(n,{pbrMode:0}),C.include(v),C.include(m,P),S.include(o,P),C.include(y,P),S.include(p),w(S,P),s(S),l(S),S.uniforms.add(F,new h("timeElapsed",({timeElapsed:e})=>e),x.uniforms.get("view"),x.uniforms.get("localOrigin")).main.add(b`
26
26
  discardBySlice(vpos);
27
27
  discardByTerrainDepth();
28
28
  vec3 localUp = vnormal;
@@ -32,13 +32,13 @@ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutpu
32
32
  // we rotate the normal according to the tangent-bitangent-normal-Matrix
33
33
  vec3 n = normalize(vtbnMatrix * tangentNormalFoam.xyz);
34
34
  vec3 v = -normalize(vpos - cameraPosition);
35
- float shadow = ${M?h`1.0 - readShadowMap(vpos, linearDepth)`:"1.0"};
35
+ float shadow = ${M?b`1.0 - readShadowMap(vpos, linearDepth)`:"1.0"};
36
36
  vec4 vPosView = view * vec4(vpos, 1.0);
37
37
  vec4 final = vec4(getWaterColor(n, v, mainLightDirection, waterColor.rgb, mainLightIntensity, localUp, shadow, tangentNormalFoam.w, vPosView.xyz, vpos + localOrigin), waterColor.w);
38
38
 
39
39
  fragColor = delinearizeGamma(final);
40
- outputColorHighlightOLID(applySlice(fragColor, vpos), final.rgb);`);break;case 4:C.include(l,L),C.include(m,L),x.include(r,L),S.add("vuv","vec2"),P.main.add(h`
41
- if (waterColor.a < ${h.float(j)}) {
40
+ outputColorHighlightOLID(applySlice(fragColor, vpos), final.rgb);`);break;case 4:C.include(d,P),C.include(v,P),S.include(o,P),_.add("vuv","vec2"),x.main.add(b`
41
+ if (waterColor.a < ${b.float(L)}) {
42
42
  // Discard this vertex
43
43
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
44
44
  return;
@@ -47,20 +47,28 @@ import{isColor as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutpu
47
47
  vuv = uv0;
48
48
  vpos = position;
49
49
 
50
- gl_Position = transformPosition(proj, view, vpos);`),x.uniforms.add(new f("timeElapsed",({timeElapsed:e})=>e)).main.add(h`discardBySlice(vpos);
50
+ gl_Position = transformPosition(proj, view, vpos);`),S.uniforms.add(new h("timeElapsed",({timeElapsed:e})=>e)).main.add(b`discardBySlice(vpos);
51
51
  vec4 tangentNormalFoam = getSurfaceNormalAndFoam(vuv, timeElapsed);
52
52
  tangentNormalFoam.xyz = normalize(tangentNormalFoam.xyz);
53
- fragColor = vec4((tangentNormalFoam.xyz + vec3(1.0)) * 0.5, tangentNormalFoam.w);`);break;case 10:C.include(a,L),P.main.add(h`
54
- if (waterColor.a < ${h.float(j)}) {
53
+ fragColor = vec4((tangentNormalFoam.xyz + vec3(1.0)) * 0.5, tangentNormalFoam.w);`);break;case 3:x.main.add(b`
54
+ if (waterColor.a < ${b.float(L)}) {
55
55
  // Discard this vertex
56
56
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
57
57
  return;
58
58
  }
59
59
 
60
60
  vpos = position;
61
- gl_Position = transformPosition(proj, view, vpos);`),x.include(r,L),x.main.add(h`discardBySlice(vpos);
62
- calculateOcclusionAndOutputHighlight();`);break;case 11:C.include(i,L),P.main.add(h`
63
- if (waterColor.a < ${h.float(j)}) {
61
+ gl_Position = transformPosition(proj, view, vpos);`),S.include(o,P),S.main.add("discardBySlice(vpos);");break;case 10:C.include(t,P),x.main.add(b`
62
+ if (waterColor.a < ${b.float(L)}) {
63
+ // Discard this vertex
64
+ gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
65
+ return;
66
+ }
67
+
68
+ vpos = position;
69
+ gl_Position = transformPosition(proj, view, vpos);`),S.include(o,P),S.main.add(b`discardBySlice(vpos);
70
+ calculateOcclusionAndOutputHighlight();`);break;case 11:C.include(a,P),x.main.add(b`
71
+ if (waterColor.a < ${b.float(L)}) {
64
72
  // Discard this vertex
65
73
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
66
74
  return;
@@ -68,5 +76,5 @@ calculateOcclusionAndOutputHighlight();`);break;case 11:C.include(i,L),P.main.ad
68
76
 
69
77
  vpos = position;
70
78
  gl_Position = transformPosition(proj, view, vpos);
71
- forwardObjectAndLayerIdColor();`),x.include(r,L),x.main.add(h`discardBySlice(vpos);
72
- outputObjectAndLayerIdColor();`)}return C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:L},Symbol.toStringTag,{value:"Module"}));export{C as W,L as b};
79
+ forwardObjectAndLayerIdColor();`),S.include(o,P),S.main.add(b`discardBySlice(vpos);
80
+ outputObjectAndLayerIdColor();`);break;default:throw new e("shaderbuilder:missing-output",`Unimplemented shader output ${D} for WaterTechnique`)}return C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:P},Symbol.toStringTag,{value:"Module"}));export{C as W,P as b};