@arcgis/core 5.0.0-next.15 → 5.0.0-next.17

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 (202) hide show
  1. package/analysis/ElevationProfile/ElevationProfileLineInput.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/234b52b2a391631ceff6.js +1 -0
  4. package/assets/esri/core/workers/chunks/{8f3503b2fb6cd38757b9.js → 458e87902abc24b375da.js} +1 -1
  5. package/assets/esri/core/workers/chunks/{57b410198d83bf0ab708.js → 4a89e120be142ab58a27.js} +1 -1
  6. package/assets/esri/core/workers/chunks/{a410dcf80d17a2383337.js → 65a4099bdbe31834d0cc.js} +1 -1
  7. package/assets/esri/core/workers/chunks/71d9e9b0a7f8c0edd32d.js +1 -0
  8. package/assets/esri/core/workers/chunks/722da7a39a0ad9300752.js +1 -0
  9. package/assets/esri/core/workers/chunks/{cdb4664fd59860ddeb5a.js → 888f188541f8bd68e33e.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{319c3f46f2afb8f3e5a9.js → 89c9cf7f799858d14c76.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{e19cd07df8ce87e18832.js → 8b33732e3c2924c1f60d.js} +1 -1
  12. package/assets/esri/core/workers/chunks/98739414c107ad78e4d8.js +1 -0
  13. package/assets/esri/core/workers/chunks/{bc318b6fef192cee2a72.js → a4518f25b9f8fe704286.js} +17 -17
  14. package/assets/esri/core/workers/chunks/{8b73db0f4d6714396eb0.js → a6fa90eab77ac0e1cdfc.js} +1 -1
  15. package/assets/esri/core/workers/chunks/ac366221e8636b60aee5.js +1 -0
  16. package/assets/esri/core/workers/chunks/{23e17b745adf71a5efc7.js → aca72ca7f43f70eb8077.js} +1 -1
  17. package/assets/esri/core/workers/chunks/ad0c7225941437d18408.js +1 -0
  18. package/assets/esri/core/workers/chunks/b30897952494a3e5b9fe.js +1 -0
  19. package/assets/esri/core/workers/chunks/bfd3d81e8e148be99686.js +1 -0
  20. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  21. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  22. package/assets/esri/themes/base/widgets/_Editor.scss +2 -1
  23. package/assets/esri/themes/base/widgets/_FeatureForm.scss +1 -1
  24. package/assets/esri/themes/dark/main.css +1 -1
  25. package/assets/esri/themes/light/main.css +1 -1
  26. package/assets/esri/themes/light/view.css +1 -1
  27. package/chunks/GaussianSplat.glsl.js +2 -2
  28. package/chunks/lyr3DMain.js +1 -1
  29. package/config.js +1 -1
  30. package/core/accessorSupport/ensureType.js +1 -1
  31. package/core/accessorSupport/extensions/serializableProperty/reader.js +1 -1
  32. package/graphic/graphicOriginUtils.js +1 -1
  33. package/interfaces.d.ts +68 -28
  34. package/kernel.js +1 -1
  35. package/layers/BingMapsLayer.js +1 -1
  36. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  37. package/layers/support/attributionUtils.js +5 -0
  38. package/layers/support/fieldConfigUtils.js +1 -1
  39. package/layers/support/fieldFormatUtils.js +1 -1
  40. package/layers/video/VideoController.js +1 -1
  41. package/libs/parquet/parquet.js +1 -1
  42. package/package.json +1 -1
  43. package/support/revision.js +1 -1
  44. package/symbols/cim/SDFHelper.js +1 -1
  45. package/symbols/cim/cimAnalyzer.js +1 -1
  46. package/views/2d/analysis/ElevationProfile/ElevationProfileLineVisualization2D.js +1 -1
  47. package/views/2d/engine/flow/dataUtils.js +1 -1
  48. package/views/2d/engine/webgl/TextureManager.js +1 -1
  49. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedPolyShader.js +1 -1
  50. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedFillShader.js +1 -1
  51. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedLineShader.js +1 -1
  52. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  53. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedTechnique.js +1 -1
  54. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  55. package/views/2d/layers/features/Processor.js +1 -1
  56. package/views/2d/layers/features/processor/BinningStrategy.js +1 -1
  57. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  58. package/views/2d/layers/features/processor/TrackStrategy.js +1 -1
  59. package/views/2d/layers/features/support/FeatureMetadata.js +1 -1
  60. package/views/3d/analysis/ElevationProfile/ElevationProfileGeometryVisualization3D.js +1 -1
  61. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillComputation.js +1 -1
  62. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  63. package/views/3d/environment/ChapmanAtmosphereTechnique.js +1 -1
  64. package/views/3d/environment/CloudsCompositionTechnique.js +1 -1
  65. package/views/3d/environment/CloudsTechnique.js +1 -1
  66. package/views/3d/environment/FogTechnique.js +1 -1
  67. package/views/3d/environment/NoiseTextureAtlasTechnique.js +1 -1
  68. package/views/3d/environment/PrecipitationTechnique.js +1 -1
  69. package/views/3d/environment/SimpleAtmosphereTechnique.js +1 -1
  70. package/views/3d/layers/FlowSubView3D.js +1 -1
  71. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  72. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  73. package/views/3d/layers/TiledLayerView3D.js +1 -1
  74. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  75. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  76. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  77. package/views/3d/support/DisplayQualityProfile.js +1 -1
  78. package/views/3d/support/QualitySettings.js +1 -1
  79. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  80. package/views/3d/support/flow/FlowWorker.js +1 -1
  81. package/views/3d/support/flow/FlowWorkerHandle.js +1 -1
  82. package/views/3d/support/flow/StreamlineResources3D.js +1 -1
  83. package/views/3d/support/flow/StreamlineResources3DOverlay.js +1 -1
  84. package/views/3d/support/flow/StreamlineResources3DShape.js +1 -1
  85. package/views/3d/support/flow/constants.js +1 -1
  86. package/views/3d/support/flow/loadUtils.js +1 -1
  87. package/views/3d/support/popupHitTest.js +1 -1
  88. package/views/3d/terrain/BlendLayersTechnique.js +1 -1
  89. package/views/3d/terrain/RasterColorizerTechnique.js +1 -1
  90. package/views/3d/terrain/TerrainSurface.js +1 -1
  91. package/views/3d/terrain/TileAgent.js +1 -1
  92. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  93. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  94. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  95. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  96. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +14 -32
  97. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBuffer.glsl.js +17 -0
  98. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +10 -0
  99. package/views/3d/webgl-engine/core/shaderTechnique/{ReloadableShaderModule.js → ReloadableShader.js} +1 -1
  100. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  101. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorTechnique.js +1 -1
  102. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +1 -1
  103. package/views/3d/webgl-engine/effects/glow/GlowBlurTechnique.js +1 -1
  104. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechnique.js +1 -1
  105. package/views/3d/webgl-engine/effects/haze/HazeCompositingTechnique.js +1 -1
  106. package/views/3d/webgl-engine/effects/haze/HazeTechnique.js +1 -1
  107. package/views/3d/webgl-engine/effects/highlight/HighlightApplyTechnique.js +1 -1
  108. package/views/3d/webgl-engine/effects/highlight/HighlightBlurTechnique.js +1 -1
  109. package/views/3d/webgl-engine/effects/highlight/HighlightDownsampleTechnique.js +1 -1
  110. package/views/3d/webgl-engine/effects/highlight/HighlightToSingleTechnique.js +1 -1
  111. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightTechnique.js +1 -1
  112. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
  113. package/views/3d/webgl-engine/effects/laserlines/LaserlineTechnique.js +1 -1
  114. package/views/3d/webgl-engine/effects/magnifier/MagnifierTechnique.js +1 -1
  115. package/views/3d/webgl-engine/effects/smaa/SMAABlendWeightsTechnique.js +1 -1
  116. package/views/3d/webgl-engine/effects/smaa/SMAABlurTechnique.js +1 -1
  117. package/views/3d/webgl-engine/effects/smaa/SMAAEdgeDetectTechnique.js +1 -1
  118. package/views/3d/webgl-engine/effects/ssao/SSAOBlurTechnique.js +1 -1
  119. package/views/3d/webgl-engine/effects/ssao/SSAOTechnique.js +1 -1
  120. package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
  121. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  122. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  123. package/views/3d/webgl-engine/lib/Program.js +1 -1
  124. package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
  125. package/views/3d/webgl-engine/lib/TextureBackedBuffer/BufferManager.js +1 -1
  126. package/views/3d/webgl-engine/lib/TextureBackedBuffer/ManagedTextureBackedBuffer.js +1 -1
  127. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBuffer.js +1 -1
  128. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBufferFields.js +5 -0
  129. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBufferLayout.js +5 -0
  130. package/views/3d/webgl-engine/lib/TextureTechnique.js +1 -1
  131. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechnique.js +1 -1
  132. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  133. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  134. package/views/3d/webgl-engine/shaders/AtmosphereCompositingTechnique.js +1 -1
  135. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  136. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  137. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  138. package/views/3d/webgl-engine/shaders/CutFillCompositionTechnique.js +1 -1
  139. package/views/3d/webgl-engine/shaders/CutFillDepthTechnique.js +1 -1
  140. package/views/3d/webgl-engine/shaders/CutFillMaskTechnique.js +1 -1
  141. package/views/3d/webgl-engine/shaders/CutFillReductionTechnique.js +1 -1
  142. package/views/3d/webgl-engine/shaders/CutFillTargetDepthTechnique.js +1 -1
  143. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  144. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  145. package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechnique.js +1 -1
  146. package/views/3d/webgl-engine/shaders/GaussianSplatDepthCompositionTechnique.js +1 -1
  147. package/views/3d/webgl-engine/shaders/GaussianSplatDepthTechnique.js +1 -1
  148. package/views/3d/webgl-engine/shaders/GaussianSplatTechnique.js +1 -1
  149. package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
  150. package/views/3d/webgl-engine/shaders/HUDCompositingTechnique.js +1 -1
  151. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  152. package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +1 -1
  153. package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +1 -1
  154. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  155. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  156. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  157. package/views/3d/webgl-engine/shaders/MeasurementArrowTechnique.js +1 -1
  158. package/views/3d/webgl-engine/shaders/NativeLineTechnique.js +1 -1
  159. package/views/3d/webgl-engine/shaders/OverlayCompositingTechnique.js +1 -1
  160. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  161. package/views/3d/webgl-engine/shaders/PointRendererTechnique.js +1 -1
  162. package/views/3d/webgl-engine/shaders/RealisticTreeTechnique.js +1 -1
  163. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  164. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  165. package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechnique.js +1 -1
  166. package/views/3d/webgl-engine/shaders/ShadowCastClearTechnique.js +1 -1
  167. package/views/3d/webgl-engine/shaders/ShadowCastVisualizeTechnique.js +1 -1
  168. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechnique.js +1 -1
  169. package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
  170. package/views/3d/webgl-engine/shaders/ViewshedTechnique.js +1 -1
  171. package/views/SceneView.js +1 -1
  172. package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
  173. package/views/analysis/ElevationProfile/types.d.ts +5 -0
  174. package/views/analysis/ElevationProfile/types.js +5 -0
  175. package/views/input/gamepad/GamepadInputDevice.js +1 -1
  176. package/views/input/gamepad/GamepadSource.js +1 -1
  177. package/views/navigation/gamepad/GamepadSettings.js +1 -1
  178. package/views/webgl/VertexAttributeLocations.js +1 -1
  179. package/widgets/Attribution/AttributionViewModel.js +1 -1
  180. package/widgets/Editor/MergeFeaturesWorkflow.js +1 -1
  181. package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
  182. package/widgets/Editor/UpdateWorkflow.js +1 -1
  183. package/widgets/Editor/Workflow.js +1 -1
  184. package/widgets/Editor/components/CreateFeaturesPanelContent.js +1 -1
  185. package/widgets/Editor/components/PendingFeatureList.js +1 -1
  186. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  187. package/widgets/Editor.js +1 -1
  188. package/widgets/Feature/support/featureUtils.js +1 -1
  189. package/widgets/FeatureTable/FieldColumn.js +1 -1
  190. package/widgets/FeatureTable/Grid/Column.js +1 -1
  191. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  192. package/widgets/OrientedImageryViewer/adapters/view/MapViewAdapter.js +1 -1
  193. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  194. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  195. package/assets/esri/core/workers/chunks/097e5deb51ee7e25e654.js +0 -1
  196. package/assets/esri/core/workers/chunks/38ee69125da60464d5a1.js +0 -1
  197. package/assets/esri/core/workers/chunks/4f0016111fd84c612f41.js +0 -1
  198. package/assets/esri/core/workers/chunks/8208dfa8f7fae7e616b9.js +0 -1
  199. package/assets/esri/core/workers/chunks/847f4fc39100fac1df01.js +0 -1
  200. package/assets/esri/core/workers/chunks/ab005fe84952f0676020.js +0 -1
  201. package/assets/esri/core/workers/chunks/bc19a232076d98825eef.js +0 -1
  202. package/assets/esri/core/workers/chunks/c3dcfe26c2c3c829762d.js +0 -1
@@ -2,42 +2,24 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{neverReached as o}from"../../../../../../../core/compilerUtils.js";import{packFloatRGBA as e,packFloatRGB as t}from"../../../../../../../core/floatRGBA.js";import{DecodeSymbolColor as r}from"./DecodeSymbolColor.glsl.js";import{RgbaFloatEncoding as n}from"../../../../core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import{Float4DrawUniform as d}from"../../../../core/shaderModules/Float4DrawUniform.js";import{FloatDrawUniform as a}from"../../../../core/shaderModules/FloatDrawUniform.js";import{glsl as l,If as i}from"../../../../core/shaderModules/glsl.js";import{IntegerDrawUniform as c}from"../../../../core/shaderModules/IntegerDrawUniform.js";import{Texture2DDrawUniform as s}from"../../../../core/shaderModules/Texture2DDrawUniform.js";import{olidEnabled as m}from"../../../../effects/geometry/olidUtils.js";const x=429496.7296;function C(o,t){e(o/x*.5+.5,t)}const u=1e6;function v(o,e){t(o/u*.5+.5,e)}function f(){return 3+(m()?1:0)}function p(e,t){switch(t.componentData){case 1:return g(e,t);case 0:return M(e,t);case 2:return;default:o(t.componentData)}}function g(o,e){const{vertex:t,fragment:d}=o;t.include(n),t.uniforms.add(new s("componentColorTex",o=>o.componentParameters.texture.texture)),o.attributes.add("componentIndex","float"),o.varyings.add("vExternalColorMixMode","mediump float"),o.varyings.add("vExternalColor","vec4");const{output:a}=e,c=10===a;c&&o.varyings.add("vObjectAndLayerIdColor","vec4");const m=1===a;m&&(o.varyings.add("emissiveStrength","float"),o.varyings.add("emissiveSource","int")),o.include(r),t.constants.add("stride","float",f()),t.code.add(l`vec2 getComponentTextureCoordinates(float componentIndex, float typeOffset) {
6
- float index = componentIndex * stride + typeOffset;
7
- float texSize = float(textureSize(componentColorTex, 0).x);
8
- float coordX = mod(index, texSize);
9
- float coordY = floor(index / texSize);
10
- return vec2(coordX, coordY) + 0.5;
11
- }`),t.code.add(l`
12
- vec4 _readComponentColor() {
13
- vec2 textureCoordinates = getComponentTextureCoordinates(componentIndex, 0.0);
14
- return texelFetch(componentColorTex, ivec2(textureCoordinates), 0);
15
- }
16
-
5
+ import{neverReached as o}from"../../../../../../../core/compilerUtils.js";import{packFloatRGBA as e,packFloatRGB as r}from"../../../../../../../core/floatRGBA.js";import{DecodeSymbolColor as t}from"./DecodeSymbolColor.glsl.js";import{TextureBackedBufferModule as a,itemData as d}from"../../../../core/shaderLibrary/TextureBackedBuffer.glsl.js";import{Float4DrawUniform as n}from"../../../../core/shaderModules/Float4DrawUniform.js";import{FloatDrawUniform as l}from"../../../../core/shaderModules/FloatDrawUniform.js";import{glsl as i,If as s}from"../../../../core/shaderModules/glsl.js";import{IntegerDrawUniform as c}from"../../../../core/shaderModules/IntegerDrawUniform.js";import{getTextureBackedBufferLayout as u}from"../../../../lib/TextureBackedBuffer/TextureBackedBuffer.js";const f=429496.7296;function v(o,r){e(o/f*.5+.5,r)}const m=1e6;function x(o,e){r(o/m*.5+.5,e)}function C(e,r){switch(r.componentData){case 1:return M(e,r);case 0:return h(e,r);case 2:return;default:o(r.componentData)}}function M(o,e){const{vertex:r,fragment:n}=o,{output:l}=e;if(0===e.textureBackedBufferLayout)return;const c=u(e.textureBackedBufferLayout);if(null==c)throw new Error(`Invalid TextureBackedBufferLayout: ${e.textureBackedBufferLayout}. TextureBackedBuffer shader code generation only possible with valid buffer assigned.`);const f=10===l,v=1===l,m=o=>"emissiveSourceMode"===o||"emissiveStrength"===o?v:"oidColor"!==o||f;o.include(a(c,m,"componentIndex")),o.attributes.add("componentIndex","float"),o.varyings.add("vExternalColorMixMode","mediump float"),o.varyings.add("vExternalColor","vec4"),f&&o.varyings.add("vObjectAndLayerIdColor","vec4"),v&&(o.varyings.add("emissiveStrength","float"),o.varyings.add("emissiveSource","int")),o.include(t),r.code.add(i`
17
6
  float readElevationOffset() {
18
- vec2 textureCoordinates = getComponentTextureCoordinates(componentIndex, 1.0);
19
- vec4 encodedElevation = texelFetch(componentColorTex, ivec2(textureCoordinates), 0);
20
- return uninterpolatedRGBAToFloat(encodedElevation) * ${l.float(x)};
7
+ return ${d("elevationOffset")};
21
8
  }
22
9
 
23
10
  void forwardEmissiveStrength() {
24
- ${i(m,l`vec2 textureCoordinates = getComponentTextureCoordinates(componentIndex, 2.0);
25
- vec4 encodedEmissive = texelFetch(componentColorTex, ivec2(textureCoordinates), 0);
26
- emissiveStrength = uninterpolatedRGBToFloat(encodedEmissive.rgb) * ${l.float(u)};
27
- emissiveSource = encodedEmissive.a == 0.0 ? 0 : 1;`)}
11
+ ${s(v,i`emissiveStrength = ${d("emissiveStrength")};
12
+ emissiveSource = ${d("emissiveSourceMode")} == 0.0 ? 0 : 1;`)}
28
13
  }
29
14
 
30
15
  void forwardObjectAndLayerIdColor() {
31
- ${i(c,l`vec2 textureCoordinates = getComponentTextureCoordinates(componentIndex, 3.0);
32
- vObjectAndLayerIdColor = texelFetch(componentColorTex, ivec2(textureCoordinates), 0);`)}
16
+ ${s(f,i`vObjectAndLayerIdColor = ${d("oidColor")};`)}
33
17
  }
34
18
 
35
19
  vec4 forwardExternalColor(out bool castShadows) {
36
- vec4 componentColor = _readComponentColor() * 255.0;
37
-
38
- float shadowFlag = mod(componentColor.b * 255.0, 2.0);
39
- componentColor.b -= shadowFlag;
40
- castShadows = shadowFlag >= 1.0;
20
+ vec5 colorAndCastShadow = ${d("colorAndCastShadows")};
21
+ vec4 componentColor = vec4(colorAndCastShadow.x, colorAndCastShadow.y, colorAndCastShadow.z, colorAndCastShadow.w);
22
+ castShadows = colorAndCastShadow.v >= 1.0;
41
23
 
42
24
  int decodedColorMixMode;
43
25
  vExternalColor = decodeSymbolColor(componentColor, decodedColorMixMode) * 0.003921568627451; // = 1/255;
@@ -45,16 +27,16 @@ return vec2(coordX, coordY) + 0.5;
45
27
 
46
28
  return vExternalColor;
47
29
  }
48
- `),d.code.add(l`
30
+ `),n.code.add(i`
49
31
  void readExternalColor(out vec4 externalColor, out int externalColorMixMode) {
50
32
  externalColor = vExternalColor;
51
33
  externalColorMixMode = int(vExternalColorMixMode);
52
34
  }
53
35
 
54
36
  void outputObjectAndLayerIdColor() {
55
- ${c?l`fragColor = vObjectAndLayerIdColor;`:""}
37
+ ${f?i`fragColor = vObjectAndLayerIdColor;`:""}
56
38
  }
57
- `)}function M(o,e){const{vertex:t,fragment:r}=o;o.varyings.add("vExternalColor","vec4"),r.uniforms.add(new a("emissiveStrength",o=>o.componentParameters.emissiveStrength)),t.uniforms.add(new d("externalColor",o=>o.componentParameters.externalColor)).code.add(l`float readElevationOffset() {
39
+ `)}function h(o,e){const{vertex:r,fragment:t}=o;o.varyings.add("vExternalColor","vec4"),t.uniforms.add(new l("emissiveStrength",o=>o.componentParameters.emissiveStrength)),r.uniforms.add(new n("externalColor",o=>o.componentParameters.externalColor)).code.add(i`float readElevationOffset() {
58
40
  return 0.0;
59
41
  }
60
42
  void forwardObjectAndLayerIdColor() {}
@@ -63,13 +45,13 @@ vec4 forwardExternalColor(out bool castShadows) {
63
45
  vExternalColor = externalColor;
64
46
  castShadows = true;
65
47
  return externalColor;
66
- }`);const n=10===e.output;r.uniforms.add(new c("externalColorMixMode",o=>o.componentParameters.externalColorMixMode)).code.add(l`
48
+ }`);const a=10===e.output;t.uniforms.add(new c("externalColorMixMode",o=>o.componentParameters.externalColorMixMode)).code.add(i`
67
49
  void readExternalColor(out vec4 color, out int colorMixMode) {
68
50
  color = vExternalColor;
69
51
  colorMixMode = externalColorMixMode;
70
52
  }
71
53
 
72
54
  void outputObjectAndLayerIdColor() {
73
- ${i(n,"fragColor = vec4(0, 0, 0, 0);")}
55
+ ${s(a,"fragColor = vec4(0, 0, 0, 0);")}
74
56
  }
75
- `)}export{p as ComponentData,C as encodeElevationOffset,v as encodeEmissiveStrength,f as getComponentFieldCount,x as maxElevationOffset,u as maxPackedRGBEmission};
57
+ `)}export{C as ComponentData,v as encodeElevationOffset,x as encodeEmissiveStrength,f as maxElevationOffset,m as maxPackedRGBEmission};
@@ -0,0 +1,17 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
+ */
5
+ import{__decorate as e}from"tslib";import{parameter as t,MaterialParameterBlock as o}from"../material/MaterialBase.js";import{glslType as r,decode_u8u8u7xu8 as a,glslDecodeField as d}from"./TextureBackedBufferFields.glsl.js";import{RgbaFloatEncoding as f}from"./util/RgbaFloatEncoding.glsl.js";import{glsl as c}from"../shaderModules/glsl.js";import{Texture2DDrawUniform as l}from"../shaderModules/Texture2DDrawUniform.js";class n extends o{constructor(e=null){super(),this.textureBackedBuffer=e}}function u(e,t=()=>!0,o){return r=>i(r,o,e,t)}function i(e,t,o,n){const{vertex:u}=e;u.constants.add("tbbStride","float",o.numTexels),u.uniforms.add(new l("componentColorTex",e=>e.textureBackedBufferParameters.textureBackedBuffer.texture));const i=o.fields.filter(e=>n(e.name));if(0===i.length)return;const m=[];for(let r=0;r<o.numTexels;++r)m.push(!1);for(const r of i)for(let e=0;e<r.numTexels;++e)m[r.startTexel+e]=!0;u.code.add(c`struct vec5 {
6
+ float x;
7
+ float y;
8
+ float z;
9
+ float w;
10
+ float v;
11
+ };`),u.code.add(c`struct TextureBackedBufferItemData {`);for(const a of i)u.code.add(c`\t${r(a)} ${a.name};`);u.code.add(c`};`),u.include(f),u.include(a),u.code.add(c`TextureBackedBufferItemData fetchTextureBackedBufferItemData(float itemIndex) {
12
+ TextureBackedBufferItemData itemData;
13
+ float index = itemIndex * tbbStride;
14
+ float texSize = float(textureSize(componentColorTex, 0).x);
15
+ float coordX = mod(index, texSize) + 0.5;
16
+ float coordY = floor(index / texSize) + 0.5;`);for(let r=0;r<m.length;++r)!1!==m[r]&&u.code.add(c`\tvec4 texel${c.int(r)} = texelFetch(componentColorTex, ivec2(coordX + ${c.float(r)}, coordY), 0);`);for(const r of i)u.code.add(c`\titemData.${r.name} = ${d(r)};`);u.code.add(c`return itemData;
17
+ }`),u.code.add(c`TextureBackedBufferItemData tbbItemData;`),u.main.add(c`tbbItemData = fetchTextureBackedBufferItemData(${t});`)}function m(e){return c`tbbItemData.${e}`}e([t()],n.prototype,"textureBackedBuffer",void 0);export{u as TextureBackedBufferModule,n as TextureBackedBufferParameters,m as itemData};
@@ -0,0 +1,10 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
+ */
5
+ import{glsl as o}from"../shaderModules/glsl.js";function e(e){e.code.add(o`vec5 decode_u8u8u7xu8(float r, float g, float b, float a) {
6
+ vec4 componentColor = vec4(r, g, b, a) * 255.0;
7
+ float shadowFlag = mod(componentColor.b * 255.0, 2.0);
8
+ componentColor.b -= shadowFlag;
9
+ return vec5(componentColor.r, componentColor.g, componentColor.b, componentColor.a, shadowFlag);
10
+ }`)}function t(e){switch(e.elementCount){case 1:return o`float`;case 2:return o`vec2`;case 3:return o`vec3`;case 4:return o`vec4`;case 5:return o`vec5`;default:throw new Error("unsupported elementCount")}}function n(o){const{declaration:e,glslDecodeArgumentString:t}=o;return`${(0,r[e.type])(t,e)}`}const r={u8:e=>o`${e}`,"packed-f24":(e,t)=>o`uninterpolatedRGBToFloat(vec3(${e})) * ${o.float(t.maxValue)}`,"packed-f32":(e,t)=>o`uninterpolatedRGBAToFloat(vec4(${e})) * ${o.float(t.maxValue)}`,vec4u8:e=>o`vec4(${e})`,u8u8u7xu8:e=>o`decode_u8u8u7xu8(${e})`};export{e as decode_u8u8u7xu8,n as glslDecodeField,t as glslType};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- class t{constructor(t,o){this._module=t,this._load=o}get(){return this._module}async reload(){return this._module=await this._load(),this._module}}export{t as ReloadableShaderModule};
5
+ class t{constructor(t,o){this._module=t,this._load=o}get(){return this._module}async reload(){return this._module=await this._load(),this._module}}export{t as ReloadableShader};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../../../core/Logger.js";import{disposeMaybe as r}from"../../../../../core/maybe.js";import{isDepthOrShadowLikeOutput as i}from"../shaderLibrary/ShaderOutput.js";import{Program as t}from"../../lib/Program.js";import{PrimitiveType as o,DrawBufferNone as s}from"../../../../webgl/enums.js";import{makePipelineState as n,defaultColorWrite as a,premultipliedAlpha as p}from"../../../../webgl/renderState.js";const l=()=>e.getLogger("esri.views.3d.webgl.ShaderTechnique");class m{constructor(e,i,s,n){this.primitiveType=o.TRIANGLES,this.key=i.key,this._program=new t(e.rctx,s.get().build(i),n),this._pipeline=this.initializePipeline(i),this.reload=async o=>{o&&await s.reload(),this.key.equals(i.key)||l().warn("Configuration was changed after construction, cannot reload shader.",s),r(this._program),this._program=new t(e.rctx,s.get().build(i),n),this._pipeline=this.initializePipeline(i)}}destroy(){this._program=r(this._program),this._pipeline=null}get program(){return this._program}get compiled(){return this.program.compiled}ensureAttributeLocations(e){this.program.assertCompatibleVertexAttributeLocations(e)}getPipeline(e,r){return this._pipeline}initializePipeline(e){return n({blending:p,colorWrite:a})}}function g(e,r){return i(e)?{buffers:[s]}:r??null}export{m as ShaderTechnique,g as depthOnlyOutputBuffersOr};
5
+ import{__decorate as e}from"tslib";import r from"../../../../../core/Accessor.js";import i from"../../../../../core/Logger.js";import{disposeMaybe as t}from"../../../../../core/maybe.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as o}from"../../../../../core/accessorSupport/decorators/subclass.js";import{isDepthOrShadowLikeOutput as s}from"../shaderLibrary/ShaderOutput.js";import{Pos2Locations as a}from"../../lib/DefaultVertexBufferLayouts.js";import{Program as n}from"../../lib/Program.js";import{PrimitiveType as p,DrawBufferNone as h}from"../../../../webgl/enums.js";import{makePipelineState as c,defaultColorWrite as l,premultipliedAlpha as m}from"../../../../webgl/renderState.js";const u=()=>i.getLogger("esri.views.3d.webgl.ShaderTechnique");let g=class extends r{constructor(e,r,i=a){super({}),this._context=e,this._configuration=r,this.locations=i,this.primitiveType=p.TRIANGLES,this.key=r.key,this._pipeline=this.initializePipeline(r),this.reload=async o=>{o&&await this.shader.reload(),this.key.equals(r.key)||u().warn("Configuration was changed after construction, cannot reload shader.",this.shader),t(this._program),this._program=new n(e.rctx,this.shader.get().build(r),i),this._pipeline=this.initializePipeline(r)}}initialize(){this._program=new n(this._context.rctx,this.shader.get().build(this._configuration),this.locations)}destroy(){this._program=t(this._program),this._pipeline=null}get program(){return this._program}get compiled(){return this.program.compiled}ensureAttributeLocations(e){this.program.assertCompatibleVertexAttributeLocations(e)}getPipeline(e,r){return this._pipeline}initializePipeline(e){return c({blending:m,colorWrite:l})}};function d(e,r){return s(e)?{buffers:[h]}:r??null}g=e([o("esri.views.3d.webgl-engine.core.shaderTechnique.ShaderTechnique")],g);export{g as ShaderTechnique,d as depthOnlyOutputBuffersOr};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/FocusAreaColor.glsl.js";import{Pos2Locations as s}from"../../lib/DefaultVertexBufferLayouts.js";import{makePipelineState as t,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,t){super(r,t,new e(o,()=>import("./FocusAreaColor.glsl.js")),s)}initializePipeline(){return t({colorWrite:i})}}export{l as FocusAreaColorTechnique};
5
+ import{__decorate as r}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/FocusAreaColor.glsl.js";import{makePipelineState as t,defaultColorWrite as c}from"../../../../webgl/renderState.js";let a=class extends s{constructor(){super(...arguments),this.shader=new o(i,()=>import("./FocusAreaColor.glsl.js"))}initializePipeline(){return t({colorWrite:c})}};a=r([e("esri.views.3d.webgl-engine.effects.focusArea.FocusAreaColorTechnique")],a);export{a as FocusAreaColorTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/FocusAreaMask.glsl.js";import{Pos3 as t}from"../../lib/DefaultVertexBufferLayouts.js";import{makePipelineState as s,defaultColorWrite as i}from"../../../../webgl/renderState.js";import{fromLayout as a}from"../../../../webgl/VertexAttributeLocations.js";class l extends r{constructor(r,s){super(r,s,new e(o,()=>import("./FocusAreaMask.glsl.js")),a(t))}initializePipeline(){return s({colorWrite:i,depthTest:{func:515}})}}export{l as FocusAreaMaskTechnique};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as t}from"../../../../../chunks/FocusAreaMask.glsl.js";import{Pos3Locations as i}from"../../lib/DefaultVertexBufferLayouts.js";import{makePipelineState as a,defaultColorWrite as c}from"../../../../webgl/renderState.js";let m=class extends s{constructor(e,r){super(e,r,i),this.shader=new o(t,()=>import("./FocusAreaMask.glsl.js"))}initializePipeline(){return a({colorWrite:c,depthTest:{func:515}})}};m=e([r("esri.views.3d.webgl-engine.effects.focusArea.FocusAreaMaskTechnique")],m);export{m as FocusAreaMaskTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/GlowBlur.glsl.js";import{Pos2Locations as l}from"../../lib/DefaultVertexBufferLayouts.js";import{makePipelineState as s,defaultColorWrite as t}from"../../../../webgl/renderState.js";class i extends r{constructor(r,s){super(r,s,new e(o,()=>import("./GlowBlur.glsl.js")),l)}initializePipeline(){return s({colorWrite:t})}}export{i as GlowBlurTechnique};
5
+ import{__decorate as r}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/GlowBlur.glsl.js";import{makePipelineState as t,defaultColorWrite as l}from"../../../../webgl/renderState.js";let c=class extends s{constructor(){super(...arguments),this.shader=new o(i,()=>import("./GlowBlur.glsl.js"))}initializePipeline(){return t({colorWrite:l})}};c=r([e("esri.views.3d.webgl-engine.effects.glow.GlowBlurTechnique")],c);export{c as GlowBlurTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/GlowComposition.glsl.js";import{Pos2Locations as s}from"../../lib/DefaultVertexBufferLayouts.js";import{ColorAttachment0 as i,ColorAttachment1 as t}from"../../../../webgl/enums.js";import{makePipelineState as l,defaultColorWrite as m}from"../../../../webgl/renderState.js";class a extends r{constructor(r,i){super(r,i,new e(o,()=>import("./GlowComposition.glsl.js")),s)}initializePipeline(e){return l({colorWrite:m,drawBuffers:{buffers:e.blurEnabled?[i,t]:[i]}})}}export{a as GlowCompositionTechnique};
5
+ import{__decorate as r}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/GlowComposition.glsl.js";import{ColorAttachment0 as t,ColorAttachment1 as m}from"../../../../webgl/enums.js";import{makePipelineState as l,defaultColorWrite as c}from"../../../../webgl/renderState.js";let n=class extends s{constructor(){super(...arguments),this.shader=new o(i,()=>import("./GlowComposition.glsl.js"))}initializePipeline(r){return l({colorWrite:c,drawBuffers:{buffers:r.blurEnabled?[t,m]:[t]}})}};n=r([e("esri.views.3d.webgl-engine.effects.glow.GlowCompositionTechnique")],n);export{n as GlowCompositionTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/HazeCompositing.glsl.js";import{Pos2Locations as i}from"../../lib/DefaultVertexBufferLayouts.js";import{makePipelineState as t,defaultColorWrite as s,separateBlendingParams as n}from"../../../../webgl/renderState.js";class a extends r{constructor(r,t){super(r,t,new e(o,()=>import("./HazeCompositing.glsl.js")),i)}initializePipeline(){return t({blending:n(1,0,769,1),depthTest:{func:519},colorWrite:s})}}export{a as HazeCompositingTechnique};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/HazeCompositing.glsl.js";import{makePipelineState as t,defaultColorWrite as c,separateBlendingParams as a}from"../../../../webgl/renderState.js";let m=class extends s{constructor(){super(...arguments),this.shader=new o(i,()=>import("./HazeCompositing.glsl.js"))}initializePipeline(){return t({blending:a(1,0,769,1),depthTest:{func:519},colorWrite:c})}};m=e([r("esri.views.3d.webgl-engine.effects.haze.HazeCompositingTechnique")],m);export{m as HazeCompositingTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ChapmanApproximationParameters as e}from"../../../environment/ChapmanApproximation.glsl.js";import{ReloadableShaderModule as r}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as t}from"../../core/shaderTechnique/ShaderTechnique.js";import{H as o}from"../../../../../chunks/Haze.glsl.js";import{Pos2TexF16 as s}from"../../lib/DefaultVertexBufferLayouts.js";import{makePipelineState as i,defaultColorWrite as n,copySource as l,separateBlendingParams as a}from"../../../../webgl/renderState.js";import{fromLayout as m}from"../../../../webgl/VertexAttributeLocations.js";class c extends e{constructor(){super(...arguments),this.hazeStrength=1}}class p extends t{constructor(e,t){super(e,t,new r(o,()=>import("./Haze.glsl.js")),m(s))}initializePipeline(e){return e.reduced?i({blending:l,depthTest:{func:519},colorWrite:n}):i({blending:a(1,0,769,1),colorWrite:n})}}export{c as HazePassParameters,p as HazeTechnique};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ChapmanApproximationParameters as o}from"../../../environment/ChapmanApproximation.glsl.js";import{ReloadableShader as t}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{H as i}from"../../../../../chunks/Haze.glsl.js";import{Pos2TexF16 as m}from"../../lib/DefaultVertexBufferLayouts.js";import{PrimitiveType as n}from"../../../../webgl/enums.js";import{makePipelineState as a,defaultColorWrite as c,copySource as p,separateBlendingParams as l}from"../../../../webgl/renderState.js";import{fromLayout as h}from"../../../../webgl/VertexAttributeLocations.js";class u extends o{constructor(){super(...arguments),this.hazeStrength=1}}let d=class extends s{constructor(e,r){super(e,r,h(m)),this.shader=new t(i,()=>import("./Haze.glsl.js")),this.primitiveType=n.TRIANGLE_STRIP}initializePipeline(e){return e.reduced?a({blending:p,depthTest:{func:519},colorWrite:c}):a({blending:l(1,0,769,1),colorWrite:c})}};d=e([r("esri.views.3d.webgl-engine.effects.haze.HazeTechnique")],d);export{u as HazePassParameters,d as HazeTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{NoVertex as t}from"../../lib/DefaultVertexBufferLayouts.js";import{H as i}from"../../../../../chunks/HighlightApply.glsl.js";import{makePipelineState as o,defaultColorWrite as s,unpremultipliedAlphaToPremultipliedAlpha as l}from"../../../../webgl/renderState.js";import{fromLayout as a}from"../../../../webgl/VertexAttributeLocations.js";class n extends r{constructor(r,o){super(r,o,new e(i,()=>import("../../shaders/HighlightApply.glsl.js")),a(t))}initializePipeline(){return o({blending:l,colorWrite:s})}}export{n as HighlightApplyTechnique};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../../core/shaderTechnique/ShaderTechnique.js";import{NoVertex as s}from"../../lib/DefaultVertexBufferLayouts.js";import{H as t}from"../../../../../chunks/HighlightApply.glsl.js";import{makePipelineState as l,defaultColorWrite as p,unpremultipliedAlphaToPremultipliedAlpha as c}from"../../../../webgl/renderState.js";import{fromLayout as h}from"../../../../webgl/VertexAttributeLocations.js";let m=class extends i{constructor(e,r){super(e,r,h(s)),this.shader=new o(t,()=>import("../../shaders/HighlightApply.glsl.js"))}initializePipeline(){return l({blending:c,colorWrite:p})}};m=e([r("esri.views.3d.webgl-engine.effects.highlight.HighlightApplyTechnique")],m);export{m as HighlightApplyTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{NoVertex as t}from"../../lib/DefaultVertexBufferLayouts.js";import{a as o}from"../../../../../chunks/HighlightBlur.glsl.js";import{makePipelineState as i,defaultColorWrite as s}from"../../../../webgl/renderState.js";import{fromLayout as l}from"../../../../webgl/VertexAttributeLocations.js";class a extends r{constructor(r,i){super(r,i,new e(o,()=>import("../../shaders/HighlightBlur.glsl.js")),l(t))}initializePipeline(){return i({colorWrite:s})}}export{a as HighlightBlurTechnique};
5
+ import{__decorate as r}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../../core/shaderTechnique/ShaderTechnique.js";import{NoVertex as s}from"../../lib/DefaultVertexBufferLayouts.js";import{a as t}from"../../../../../chunks/HighlightBlur.glsl.js";import{makePipelineState as l,defaultColorWrite as c}from"../../../../webgl/renderState.js";import{fromLayout as h}from"../../../../webgl/VertexAttributeLocations.js";let m=class extends i{constructor(r,e){super(r,e,h(s)),this.shader=new o(t,()=>import("../../shaders/HighlightBlur.glsl.js"))}initializePipeline(){return l({colorWrite:c})}};m=r([e("esri.views.3d.webgl-engine.effects.highlight.HighlightBlurTechnique")],m);export{m as HighlightBlurTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{Pos2Locations as o}from"../../lib/DefaultVertexBufferLayouts.js";import{a as s}from"../../../../../chunks/HighlightDownsample.glsl.js";import{makePipelineState as i,defaultColorWrite as t}from"../../../../webgl/renderState.js";class l extends r{constructor(r,i){super(r,i,new e(s,()=>import("../../shaders/HighlightDownsample.glsl.js")),o)}initializePipeline(){return i({colorWrite:t})}}export{l as HighlightDownsampleTechnique};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/HighlightDownsample.glsl.js";import{makePipelineState as t,defaultColorWrite as h}from"../../../../webgl/renderState.js";let l=class extends s{constructor(){super(...arguments),this.shader=new o(i,()=>import("../../shaders/HighlightDownsample.glsl.js"))}initializePipeline(){return t({colorWrite:h})}};l=e([r("esri.views.3d.webgl-engine.effects.highlight.HighlightDownsampleTechnique")],l);export{l as HighlightDownsampleTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{NoVertex as o}from"../../lib/DefaultVertexBufferLayouts.js";import{H as i}from"../../../../../chunks/HighlightToSingle.glsl.js";import{makePipelineState as t,defaultColorWrite as s}from"../../../../webgl/renderState.js";import{fromLayout as l}from"../../../../webgl/VertexAttributeLocations.js";class a extends r{constructor(r,t){super(r,t,new e(i,()=>import("../../shaders/HighlightToSingle.glsl.js")),l(o))}initializePipeline(){return t({colorWrite:s})}}export{a as HighlightToSingleTechnique};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../../core/shaderTechnique/ShaderTechnique.js";import{NoVertex as s}from"../../lib/DefaultVertexBufferLayouts.js";import{H as t}from"../../../../../chunks/HighlightToSingle.glsl.js";import{makePipelineState as l,defaultColorWrite as c}from"../../../../webgl/renderState.js";import{fromLayout as h}from"../../../../webgl/VertexAttributeLocations.js";let m=class extends i{constructor(e,r){super(e,r,h(s)),this.shader=new o(t,()=>import("../../shaders/HighlightToSingle.glsl.js"))}initializePipeline(){return l({colorWrite:c})}};m=e([r("esri.views.3d.webgl-engine.effects.highlight.HighlightToSingleTechnique")],m);export{m as HighlightToSingleTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{fromValues as e}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{ReadShadowMapPassParameters as r}from"../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{ReloadableShaderModule as i}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as t}from"../../core/shaderTechnique/ShaderTechnique.js";import{Pos2Locations as o}from"../../lib/DefaultVertexBufferLayouts.js";import{S as s}from"../../../../../chunks/ShadowHighlight.glsl.js";import{PrimitiveType as a}from"../../../../webgl/enums.js";import{makePipelineState as h,defaultColorWrite as l,unpremultipliedAlphaToPremultipliedAlpha as d}from"../../../../webgl/renderState.js";class c extends r{constructor(){super(...arguments),this.shadowColor=e(1,0,1,1),this.shadowOpacity=.2,this.occludedShadowOpacity=.1,this.opacityElevation=1,this.dayNightTerminator=1}}class m extends t{constructor(e,r){super(e,r,new i(s,()=>import("../../shaders/ShadowHighlight.glsl.js")),o),this.primitiveType=a.TRIANGLE_STRIP}initializePipeline(){return h({blending:d,colorWrite:l,depthTest:null,depthWrite:null})}}export{c as ShadowHighlightPassParameters,m as ShadowHighlightTechnique};
5
+ import{__decorate as r}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{fromValues as o}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{ReadShadowMapPassParameters as i}from"../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{ReloadableShader as s}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as h}from"../../../../../chunks/ShadowHighlight.glsl.js";import{PrimitiveType as a}from"../../../../webgl/enums.js";import{makePipelineState as c,defaultColorWrite as l,unpremultipliedAlphaToPremultipliedAlpha as d}from"../../../../webgl/renderState.js";class m extends i{constructor(){super(...arguments),this.shadowColor=o(1,0,1,1),this.shadowOpacity=.2,this.occludedShadowOpacity=.1,this.opacityElevation=1,this.dayNightTerminator=1}}let p=class extends t{constructor(){super(...arguments),this.shader=new s(h,()=>import("../../shaders/ShadowHighlight.glsl.js")),this.primitiveType=a.TRIANGLE_STRIP}initializePipeline(){return c({blending:d,colorWrite:l,depthTest:null,depthWrite:null})}};p=r([e("esri.views.3d.webgl-engine.effects.highlight.ShadowHighlightTechnique")],p);export{m as ShadowHighlightPassParameters,p as ShadowHighlightTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{create as e}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReloadableShaderModule as r}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{LaserlinePassParameters as o}from"./LaserlineTechnique.js";import{L as t}from"../../../../../chunks/LaserlinePath.glsl.js";class a extends o{constructor(){super(...arguments),this.origin=e()}}class i extends s{constructor(e,s){super(e,s,new r(t,()=>import("../../shaders/LaserlinePath.glsl.js")),n)}}const n=new Map([["start",0],["end",1],["extrude",2],["startUp",3],["endUp",4]]);export{a as LaserlinePathPassParameters,i as LaserlinePathTechnique,n as vertexAttributeLocations};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{create as s}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../../core/shaderTechnique/ShaderTechnique.js";import{LaserlinePassParameters as i}from"./LaserlineTechnique.js";import{L as a}from"../../../../../chunks/LaserlinePath.glsl.js";class c extends i{constructor(){super(...arguments),this.origin=s()}}let n=class extends t{constructor(e,r){super(e,r,m),this.shader=new o(a,()=>import("../../shaders/LaserlinePath.glsl.js"))}};n=e([r("esri.views.3d.webgl-engine.effects.laserlines.LaserlinePathTechnique")],n);const m=new Map([["start",0],["end",1],["extrude",2],["startUp",3],["endUp",4]]);export{c as LaserlinePathPassParameters,n as LaserlinePathTechnique,m as vertexAttributeLocations};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{deg2rad as e}from"../../../../../core/mathUtils.js";import{fromValues as t,create as s}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as r}from"../../../../../geometry/support/lineSegment.js";import{ReloadableShaderModule as i}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{Pos2Locations as l}from"../../lib/DefaultVertexBufferLayouts.js";import{L as a}from"../../../../../chunks/Laserlines.glsl.js";import{NoParameters as n}from"../../../../webgl/NoParameters.js";class h extends n{constructor(){super(...arguments),this.innerColor=t(1,1,1),this.innerWidth=1,this.glowColor=t(1,.5,0),this.glowWidth=8,this.glowFalloff=8,this.globalAlpha=.75,this.globalAlphaContrastBoost=2,this.angleCutoff=e(6),this.pointDistanceOrigin=s(),this.pointDistanceTarget=s(),this.lineVerticalPlaneSegment=r(),this.intersectsLineSegment=r(),this.intersectsLineRadius=3,this.heightManifoldTarget=s(),this.lineStartWorld=s(),this.lineEndWorld=s()}}class m extends o{constructor(e,t){super(e,t,new i(a,()=>import("../../shaders/Laserlines.glsl.js")),l)}}export{h as LaserlinePassParameters,m as LaserlineTechnique};
5
+ import{__decorate as e}from"tslib";import{deg2rad as s}from"../../../../../core/mathUtils.js";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{fromValues as t,create as i}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as o}from"../../../../../geometry/support/lineSegment.js";import{ReloadableShader as l}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as a}from"../../core/shaderTechnique/ShaderTechnique.js";import{L as n}from"../../../../../chunks/Laserlines.glsl.js";import{NoParameters as h}from"../../../../webgl/NoParameters.js";class c extends h{constructor(){super(...arguments),this.innerColor=t(1,1,1),this.innerWidth=1,this.glowColor=t(1,.5,0),this.glowWidth=8,this.glowFalloff=8,this.globalAlpha=.75,this.globalAlphaContrastBoost=2,this.angleCutoff=s(6),this.pointDistanceOrigin=i(),this.pointDistanceTarget=i(),this.lineVerticalPlaneSegment=o(),this.intersectsLineSegment=o(),this.intersectsLineRadius=3,this.heightManifoldTarget=i(),this.lineStartWorld=i(),this.lineEndWorld=i()}}let m=class extends a{constructor(){super(...arguments),this.shader=new l(n,()=>import("../../shaders/Laserlines.glsl.js"))}};m=e([r("esri.views.3d.webgl-engine.effects.laserlines.LaserlineTechnique")],m);export{c as LaserlinePassParameters,m as LaserlineTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{Pos2Locations as i}from"../../lib/DefaultVertexBufferLayouts.js";import{a as t}from"../../../../../chunks/Magnifier.glsl.js";import{makePipelineState as o,defaultColorWrite as s,premultipliedAlpha as l}from"../../../../webgl/renderState.js";class n extends r{constructor(r,o){super(r,o,new e(t,()=>import("../../shaders/Magnifier.glsl.js")),i)}initializePipeline(){return o({blending:l,depthTest:null,depthWrite:null,colorWrite:s})}}export{n as MagnifierTechnique};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/Magnifier.glsl.js";import{PrimitiveType as t}from"../../../../webgl/enums.js";import{makePipelineState as n,defaultColorWrite as m,premultipliedAlpha as a}from"../../../../webgl/renderState.js";let c=class extends s{constructor(){super(...arguments),this.shader=new i(o,()=>import("../../shaders/Magnifier.glsl.js")),this.primitiveType=t.TRIANGLE_STRIP}initializePipeline(){return n({blending:a,depthTest:null,depthWrite:null,colorWrite:m})}};c=e([r("esri.views.3d.webgl-engine.effects.magnifier.MagnifierTechnique")],c);export{c as MagnifierTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{Pos2Locations as s}from"../../lib/DefaultVertexBufferLayouts.js";import{B as o}from"../../../../../chunks/BlendWeights.glsl.js";import{makePipelineState as t,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,t){super(r,t,new e(o,()=>import("../../shaders/BlendWeights.glsl.js")),s)}initializePipeline(){return t({colorWrite:i})}}export{l as SMAABlendWeightsTechnique};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as s}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{B as i}from"../../../../../chunks/BlendWeights.glsl.js";import{makePipelineState as t,defaultColorWrite as c}from"../../../../webgl/renderState.js";let a=class extends o{constructor(){super(...arguments),this.shader=new s(i,()=>import("../../shaders/BlendWeights.glsl.js"))}initializePipeline(){return t({colorWrite:c})}};a=e([r("esri.views.3d.webgl-engine.effects.smaa.SMAABlendWeightsTechnique")],a);export{a as SMAABlendWeightsTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{Pos2Locations as o}from"../../lib/DefaultVertexBufferLayouts.js";import{B as s}from"../../../../../chunks/Blur.glsl.js";import{makePipelineState as t,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,t){super(r,t,new e(s,()=>import("../../shaders/Blur.glsl.js")),o)}initializePipeline(){return t({colorWrite:i})}}export{l as SMAABlurTechnique};
5
+ import{__decorate as r}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{B as i}from"../../../../../chunks/Blur.glsl.js";import{makePipelineState as t,defaultColorWrite as c}from"../../../../webgl/renderState.js";let a=class extends s{constructor(){super(...arguments),this.shader=new o(i,()=>import("../../shaders/Blur.glsl.js"))}initializePipeline(){return t({colorWrite:c})}};a=r([e("esri.views.3d.webgl-engine.effects.smaa.SMAABlurTechnique")],a);export{a as SMAABlurTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{Pos2Locations as t}from"../../lib/DefaultVertexBufferLayouts.js";import{E as o}from"../../../../../chunks/EdgeDetect.glsl.js";import{makePipelineState as s,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,s){super(r,s,new e(o,()=>import("../../shaders/EdgeDetect.glsl.js")),t)}initializePipeline(){return s({colorWrite:i})}}export{l as SMAAEdgeDetectTechnique};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{E as t}from"../../../../../chunks/EdgeDetect.glsl.js";import{makePipelineState as i,defaultColorWrite as c}from"../../../../webgl/renderState.js";let a=class extends s{constructor(){super(...arguments),this.shader=new o(t,()=>import("../../shaders/EdgeDetect.glsl.js"))}initializePipeline(){return i({colorWrite:c})}};a=e([r("esri.views.3d.webgl-engine.effects.smaa.SMAAEdgeDetectTechnique")],a);export{a as SMAAEdgeDetectTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{Pos2Locations as o}from"../../lib/DefaultVertexBufferLayouts.js";import{S as s}from"../../../../../chunks/SSAOBlur.glsl.js";import{makePipelineState as t,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,t){super(r,t,new e(s,()=>import("../../shaders/SSAOBlur.glsl.js")),o)}initializePipeline(){return t({colorWrite:i})}}export{l as SSAOBlurTechnique};
5
+ import{__decorate as r}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as i}from"../../../../../chunks/SSAOBlur.glsl.js";import{makePipelineState as t,defaultColorWrite as c}from"../../../../webgl/renderState.js";let a=class extends s{constructor(){super(...arguments),this.shader=new o(i,()=>import("../../shaders/SSAOBlur.glsl.js"))}initializePipeline(){return t({colorWrite:c})}};a=r([e("esri.views.3d.webgl-engine.effects.ssao.SSAOBlurTechnique")],a);export{a as SSAOBlurTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{Pos2Locations as o}from"../../lib/DefaultVertexBufferLayouts.js";import{S as s}from"../../../../../chunks/SSAO.glsl.js";import{makePipelineState as t,defaultColorWrite as i}from"../../../../webgl/renderState.js";class l extends r{constructor(r,t){super(r,t,new e(s,()=>import("../../shaders/SSAO.glsl.js")),o)}initializePipeline(){return t({colorWrite:i})}}export{l as SSAOTechnique};
5
+ import{__decorate as r}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as o}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as i}from"../../../../../chunks/SSAO.glsl.js";import{makePipelineState as t,defaultColorWrite as c}from"../../../../webgl/renderState.js";let a=class extends s{constructor(){super(...arguments),this.shader=new o(i,()=>import("../../shaders/SSAO.glsl.js"))}initializePipeline(){return t({colorWrite:c})}};a=r([e("esri.views.3d.webgl-engine.effects.ssao.SSAOTechnique")],a);export{a as SSAOTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{create as e}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{newLayout as r}from"../../../support/buffer/InterleavedLayout.js";import{ReloadableShaderModule as o}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as t}from"../../../../../chunks/Stars.glsl.js";import{NoParameters as i}from"../../../../webgl/NoParameters.js";import{makePipelineState as a,defaultColorWrite as c,unpremultipliedAlphaToPremultipliedAlpha as l}from"../../../../webgl/renderState.js";class n extends i{constructor(){super(...arguments),this.modelMatrix=e()}}class m extends s{constructor(e,r){super(e,r,new o(t,()=>import("./Stars.glsl.js")),p.locations)}initializePipeline(){return a({blending:l,depthTest:{func:515},colorWrite:c})}}const p=r().vec3f("position").vec4u8("color").f32("size").freeze();export{n as StarPassParameters,m as StarsTechnique,p as layout};
5
+ import{__decorate as r}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as e}from"../../../../../core/accessorSupport/decorators/subclass.js";import{create as o}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{newLayout as s}from"../../../support/buffer/InterleavedLayout.js";import{ReloadableShader as t}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../../core/shaderTechnique/ShaderTechnique.js";import{S as c}from"../../../../../chunks/Stars.glsl.js";import{PrimitiveType as m}from"../../../../webgl/enums.js";import{NoParameters as a}from"../../../../webgl/NoParameters.js";import{makePipelineState as p,defaultColorWrite as l,unpremultipliedAlphaToPremultipliedAlpha as n}from"../../../../webgl/renderState.js";class f extends a{constructor(){super(...arguments),this.modelMatrix=o()}}let u=class extends i{constructor(r,e){super(r,e,d.locations),this.shader=new t(c,()=>import("./Stars.glsl.js")),this.primitiveType=m.POINTS}initializePipeline(){return p({blending:n,depthTest:{func:515},colorWrite:l})}};u=r([e("esri.views.3d.webgl-engine.effects.stars.StarsTechnique")],u);const d=s().vec3f("position").vec4u8("color").f32("size").freeze();export{f as StarPassParameters,u as StarsTechnique,d as layout};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as s}from"../../../../../chunks/OITBlend.glsl.js";import{Pos2Locations as i}from"../../lib/DefaultVertexBufferLayouts.js";import{DrawBufferNone as o,ColorAttachment1 as t,ColorAttachment0 as m}from"../../../../webgl/enums.js";import{makePipelineState as l,defaultColorWrite as f,modulateDestination as n,unpremultipliedAlphaToPremultipliedAlpha as u}from"../../../../webgl/renderState.js";class a extends r{constructor(r,o){super(r,o,new e(s,()=>import("./OITBlend.glsl.js")),i)}initializePipeline(e){return l({blending:e.dimEmissive?n:u,colorWrite:f,drawBuffers:e.dimEmissive?{buffers:[o,t]}:e.hasEmitters?{buffers:[m,t]}:{buffers:[m]}})}}export{a as OITBlendTechnique};
5
+ import{__decorate as e}from"tslib";import"../../../../../core/Logger.js";import"../../../../../core/has.js";import"../../../../../core/RandomLCG.js";import"../../../../../core/Error.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as s}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/OITBlend.glsl.js";import{DrawBufferNone as t,ColorAttachment1 as m,ColorAttachment0 as n}from"../../../../webgl/enums.js";import{makePipelineState as c,defaultColorWrite as a,modulateDestination as l,unpremultipliedAlphaToPremultipliedAlpha as d}from"../../../../webgl/renderState.js";let p=class extends o{constructor(){super(...arguments),this.shader=new s(i,()=>import("./OITBlend.glsl.js"))}initializePipeline(e){return c({blending:e.dimEmissive?l:d,colorWrite:a,drawBuffers:e.dimEmissive?{buffers:[t,m]}:e.hasEmitters?{buffers:[n,m]}:{buffers:[n]}})}};p=e([r("esri.views.3d.webgl-engine.effects.transparency.OITBlendTechnique")],p);export{p as OITBlendTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{watch as s}from"../../../../core/reactiveUtils.js";import"../../../../core/Logger.js";import"../../../../core/has.js";import"../../../../core/RandomLCG.js";import"../../../../core/Error.js";import{subclass as e}from"../../../../core/accessorSupport/decorators/subclass.js";import{set as i}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{e as r,b as n,h as o,u as h,f as l,m as c,J as p,d as m}from"../../../../chunks/vec32.js";import{create as u,clone as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{s as _}from"../../../../chunks/vec42.js";import{create as g}from"../../../../geometry/support/plane.js";import{fromPoints as f}from"../../../../geometry/support/ray.js";import{j as b,i as P}from"../../../../chunks/sphere.js";import{RenderCategory as C}from"../../webgl.js";import{GaussianSplatTarget as S}from"../../layers/i3s/Intersector.js";import{GaussianSplatDataStore as q}from"../../support/gaussianSplatting/GaussianSplatDataStore.js";import v from"../../webgl/RenderNode.js";import{IntersectorResult as w}from"./IntersectorResult.js";import{G as D}from"../../../../chunks/GaussianSplat.glsl.js";import{G as T}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as j}from"../shaders/GaussianSplatCompositionTechnique.js";import{G as y}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as x}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatDepthTechnique as G}from"../shaders/GaussianSplatDepthTechnique.js";import{GaussianSplatTechnique as R}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as A}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{DepthStencilAttachment as V,PrimitiveType as E}from"../../../webgl/enums.js";var I;let M=class extends v{constructor(){super(...arguments),this.gaussianPosition=u(),this.intersectionRayDir=u(),this.intersectionPlane=g(),this._slicePlaneEnabled=!1,this._data=null,this.produces=C.OPAQUE,this.type=0,this.isGround=!1,this.layerViewUid="",this._gaussianSplatParameters=new D,this._gaussianSplatCompositionParameters=new T,this._gaussianSplatDepthCompositionParameters=new y,this._splatTechniqueConfiguration=new A,this._splatDepthTechniqueConfiguration=new A(!0),this._previousCameraPosition=u(),this._previousCameraDirection=u(),this._tanFov=a(),this._tempVec=u(),this._cameraDelta=u(),this._coarseCameraPosition=u()}static{I=this}async initialize(){this._data=new q(this),this.view.sceneIntersectionHelper.addIntersectionHandler(this),this.addHandles([s(()=>this.view.state.camera,()=>this._onCameraChange())])}precompile(){this._splatTechniqueConfiguration.terrainDepthTest=this.bindParameters.terrainDepthTest,this.techniques.precompile(R,this._splatTechniqueConfiguration),this._splatDepthTechniqueConfiguration.terrainDepthTest=this.bindParameters.terrainDepthTest,this.techniques.precompile(G,this._splatDepthTechniqueConfiguration),this.techniques.precompile(j),this.techniques.precompile(x)}render(t){const s=t.find(({name:t})=>t===C.OPAQUE);if(!this._data.visibleGaussians||!this._data.orderTexture.texture||!this._data.textureAtlas.texture)return s;const e=this.techniques.get(R,this._splatTechniqueConfiguration),a=this.techniques.get(G,this._splatDepthTechniqueConfiguration),r=this.techniques.get(j),n=this.techniques.get(x);if(!(e.compiled&&a.compiled&&n.compiled&&r.compiled))return this.requestRender(1),s;const{fullWidth:o,fullHeight:h}=this.bindParameters.camera,l=this.fboCache,c=l.acquire(o,h,"gaussian color output");c.attachDepth(s.getAttachment(V));const p=this.renderingContext;p.bindFramebuffer(c.fbo),p.setClearColor(0,0,0,0),p.clear(16384),this._gaussianSplatParameters.totalGaussians=this._data.visibleGaussians,this._gaussianSplatParameters.splatOrder=this._data.orderTexture.texture,this._gaussianSplatParameters.splatAtlas=this._data.textureAtlas.texture;const m=Math.tan(.5*this.camera.fovY),u=m/h*o;i(this._tanFov,u,m);const d=h/(2*m);this._gaussianSplatParameters.focalLength=d,this._gaussianSplatParameters.tanFov=this._tanFov;const _=this.view.qualitySettings.gaussianSplat,g=_.minimumSplatPixelRadius*Math.sqrt(o*h)/Math.sqrt(2073600);this._gaussianSplatParameters.minSplatRadius=g,this._gaussianSplatParameters.minSplatOpacity=_.minimumOpacity,this._prepareHighPrecisionCameraPosition(),this.renderingContext.bindTechnique(e,this.bindParameters,this._gaussianSplatParameters),this.renderingContext.drawArraysInstanced(E.TRIANGLE_STRIP,0,4,this._data.visibleGaussians);const f=l.acquire(o,h,"splat depth",8);f.attachDepth(s.getAttachment(V)),p.bindFramebuffer(f.fbo),p.setClearColor(0,0,0,0),p.clear(16384),this.renderingContext.bindTechnique(a,this.bindParameters,this._gaussianSplatParameters),this.renderingContext.drawArraysInstanced(E.TRIANGLE_STRIP,0,4,this._data.visibleGaussians);const b=l.acquire(o,h,this.produces);return this._gaussianSplatDepthCompositionParameters.splatDepth=f.getTexture(),b.attachDepth(s.getAttachment(V)),p.bindFramebuffer(b.fbo),p.bindTechnique(n,this.bindParameters,this._gaussianSplatDepthCompositionParameters),p.screen.draw(),this._gaussianSplatCompositionParameters.color=s.getTexture(),this._gaussianSplatCompositionParameters.splatColor=c.getTexture(),p.bindFramebuffer(b.fbo),p.bindTechnique(r,this.bindParameters,this._gaussianSplatCompositionParameters),p.screen.draw(),c.release(),f.release(),b}intersect(t,s,e,i){const{gaussianPosition:a,intersectionRayDir:p,intersectionPlane:m,layerViewUid:g}=this,C=f(e,i);r(p,i,e);const q=1/n(p);o(p,p,q);const v=u();h(v,p),_(m,p[0],p[1],p[2],-l(p,e));const D=new U,T=new U,j=new Array;this._data.visibleGaussianTiles.forEach(r=>{const{maxScale:n}=r,o=r.obb.minimumDistancePlane(m),h=r.obb.maximumDistancePlane(m),u=h<0,_=null!=D.dist&&null!=T.dist&&D.dist<o*q&&T.dist>h*q;if(u||_)return;const f=b(r.obb.center,r.obb.radius+n);if(!P(f,C,null))return;if(!r.obb.intersectRay(e,p,n))return;const{positions:S,squaredScales:w,gaussianAtlasIndices:y}=r,x=y.length;for(let m=0;m<x;m++){const r=3*m;a[0]=S[r]-e[0],a[1]=S[r+1]-e[1],a[2]=S[r+2]-e[2];const n=w[m],o=l(a,p),h=o*o;if(c(a)-h>n)continue;const u=o*q,_=t=>(t.point=t.point?t.point.fill(a[0],a[1],a[2]):d(a),t.dist=u,t.normal=v,t.layerViewUid=g,t);if((null==D.dist||u<D.dist)&&(null==s||s(e,i,u))&&_(D),0!==t.options.store&&(null==T.dist||u>T.dist)&&(null==s||s(e,i,u))&&_(T),2===t.options.store&&(null==s||s(e,i,u))){const t=new U;j.push(_(t))}}});const y=(t,s)=>{const{layerViewUid:e}=s,i=new S(s.point,e);t.set(0,i,s.dist,s.normal)};if(F(D)){const s=t.results.min;(null==s.distance||D.dist<s.distance)&&y(s,D)}if(F(T)&&0!==t.options.store){const s=t.results.max;(null==s.distance||T.dist>s.distance)&&y(s,T)}if(2===t.options.store)for(const r of j){const s=new w(C);y(s,r),t.results.all.push(s)}}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(t){this._slicePlaneEnabled!==t&&(this._slicePlaneEnabled=t,this.requestRender(1))}get data(){return this._data}destroy(){this._data.destroy(),super.destroy()}_onCameraChange(){const t=this.view.state.camera.eye,s=this.view.state.camera.ray.direction,e=.001;(Math.abs(t[0]-this._previousCameraPosition[0])>e||Math.abs(t[1]-this._previousCameraPosition[1])>e||Math.abs(t[2]-this._previousCameraPosition[2])>e||Math.abs(s[0]-this._previousCameraDirection[0])>e||Math.abs(s[1]-this._previousCameraDirection[1])>e||Math.abs(s[2]-this._previousCameraDirection[2])>e)&&this._data.requestSort()}_prepareHighPrecisionCameraPosition(){o(this._tempVec,this.camera.eye,1/I.tileSize),p(this._tempVec,this._tempVec),m(this._coarseCameraPosition,this._tempVec),this._gaussianSplatParameters.cameraPos8k=this._coarseCameraPosition,o(this._tempVec,this._tempVec,I.tileSize),r(this._cameraDelta,this.camera.eye,this._tempVec),this._gaussianSplatParameters.cameraDelta=this._cameraDelta}static{this.tileSize=2.048}};function F(t){return null!=t.dist&&null!=t.point}M=I=t([e("esri.views.3d.webgl-engine.lib.GaussianSplatRenderNode")],M);class U{constructor(){this.point=null,this.dist=null,this.normal=null,this.layerViewUid=""}}export{M as GaussianSplatRenderNode};
5
+ import{__decorate as t}from"tslib";import{watch as s}from"../../../../core/reactiveUtils.js";import"../../../../core/Logger.js";import"../../../../core/has.js";import"../../../../core/RandomLCG.js";import"../../../../core/Error.js";import{subclass as e}from"../../../../core/accessorSupport/decorators/subclass.js";import{set as i}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{e as r,b as n,h as o,u as h,f as l,m as c,J as u,d as p}from"../../../../chunks/vec32.js";import{create as m,clone as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{s as g}from"../../../../chunks/vec42.js";import{create as f}from"../../../../geometry/support/plane.js";import{fromPoints as _}from"../../../../geometry/support/ray.js";import{j as b,i as P}from"../../../../chunks/sphere.js";import{RenderCategory as C}from"../../webgl.js";import{GaussianSplatTarget as S}from"../../layers/i3s/Intersector.js";import{GaussianSplatDataStore as q}from"../../support/gaussianSplatting/GaussianSplatDataStore.js";import v from"../../webgl/RenderNode.js";import{IntersectorResult as w}from"./IntersectorResult.js";import{G as T}from"../../../../chunks/GaussianSplat.glsl.js";import{G as D}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as j}from"../shaders/GaussianSplatCompositionTechnique.js";import{G as y}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as x}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatDepthTechnique as G}from"../shaders/GaussianSplatDepthTechnique.js";import{GaussianSplatTechnique as R}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as A}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{DepthStencilAttachment as V,PrimitiveType as E}from"../../../webgl/enums.js";var I;let M=class extends v{constructor(){super(...arguments),this.gaussianPosition=m(),this.intersectionRayDir=m(),this.intersectionPlane=f(),this._slicePlaneEnabled=!1,this._data=null,this.produces=C.OPAQUE,this.type=0,this.isGround=!1,this.layerViewUid="",this._gaussianSplatParameters=new T,this._gaussianSplatCompositionParameters=new D,this._gaussianSplatDepthCompositionParameters=new y,this._splatTechniqueConfiguration=new A,this._splatDepthTechniqueConfiguration=new A(!0),this._previousCameraPosition=m(),this._previousCameraDirection=m(),this._tanFov=a(),this._tempVec=m(),this._cameraDelta=m(),this._coarseCameraPosition=m()}static{I=this}async initialize(){this._data=new q(this),this.view.sceneIntersectionHelper.addIntersectionHandler(this),this.addHandles([s(()=>this.view.state.camera,()=>this._onCameraChange())])}precompile(){this._splatTechniqueConfiguration.alphaCutoff=this.view.qualitySettings.gaussianSplat.minimumOpacity,this._splatTechniqueConfiguration.terrainDepthTest=this.bindParameters.terrainDepthTest,this.techniques.precompile(R,this._splatTechniqueConfiguration),this._splatDepthTechniqueConfiguration.alphaCutoff=this.view.qualitySettings.gaussianSplat.minimumOpacity,this._splatDepthTechniqueConfiguration.terrainDepthTest=this.bindParameters.terrainDepthTest,this.techniques.precompile(G,this._splatDepthTechniqueConfiguration),this.techniques.precompile(j),this.techniques.precompile(x)}render(t){const s=t.find(({name:t})=>t===C.OPAQUE);if(!this._data.visibleGaussians||!this._data.orderTexture.texture||!this._data.textureAtlas.texture)return s;const e=this.techniques.get(R,this._splatTechniqueConfiguration),a=this.techniques.get(G,this._splatDepthTechniqueConfiguration),r=this.techniques.get(j),n=this.techniques.get(x);if(!(e.compiled&&a.compiled&&n.compiled&&r.compiled))return this.requestRender(1),s;const{fullWidth:o,fullHeight:h}=this.bindParameters.camera,l=this.fboCache,c=l.acquire(o,h,"gaussian color output");c.attachDepth(s.getAttachment(V));const u=this.renderingContext;u.bindFramebuffer(c.fbo),u.setClearColor(0,0,0,0),u.clear(16384),this._gaussianSplatParameters.totalGaussians=this._data.visibleGaussians,this._gaussianSplatParameters.splatOrder=this._data.orderTexture.texture,this._gaussianSplatParameters.splatAtlas=this._data.textureAtlas.texture;const p=Math.tan(.5*this.camera.fovY),m=p/h*o;i(this._tanFov,m,p);const d=h/(2*p);this._gaussianSplatParameters.focalLength=d,this._gaussianSplatParameters.tanFov=this._tanFov;const g=this.view.qualitySettings.gaussianSplat.minimumSplatPixelRadius*Math.sqrt(o*h)/Math.sqrt(2073600);this._gaussianSplatParameters.minSplatRadius=g,this._prepareHighPrecisionCameraPosition(),this.renderingContext.bindTechnique(e,this.bindParameters,this._gaussianSplatParameters),this.renderingContext.drawArraysInstanced(E.TRIANGLE_STRIP,0,4,this._data.visibleGaussians);const f=l.acquire(o,h,"splat depth",8);f.attachDepth(s.getAttachment(V)),u.bindFramebuffer(f.fbo),u.setClearColor(0,0,0,0),u.clear(16384),this.renderingContext.bindTechnique(a,this.bindParameters,this._gaussianSplatParameters),this.renderingContext.drawArraysInstanced(E.TRIANGLE_STRIP,0,4,this._data.visibleGaussians);const _=l.acquire(o,h,this.produces);return this._gaussianSplatDepthCompositionParameters.splatDepth=f.getTexture(),_.attachDepth(s.getAttachment(V)),u.bindFramebuffer(_.fbo),u.bindTechnique(n,this.bindParameters,this._gaussianSplatDepthCompositionParameters),u.screen.draw(),this._gaussianSplatCompositionParameters.color=s.getTexture(),this._gaussianSplatCompositionParameters.splatColor=c.getTexture(),u.bindFramebuffer(_.fbo),u.bindTechnique(r,this.bindParameters,this._gaussianSplatCompositionParameters),u.screen.draw(),c.release(),f.release(),_}intersect(t,s,e,i){const{gaussianPosition:a,intersectionRayDir:u,intersectionPlane:p,layerViewUid:f}=this,C=_(e,i);r(u,i,e);const q=1/n(u);o(u,u,q);const v=m();h(v,u),g(p,u[0],u[1],u[2],-l(u,e));const T=new U,D=new U,j=new Array;this._data.visibleGaussianTiles.forEach(r=>{const{maxScale:n}=r,o=r.obb.minimumDistancePlane(p),h=r.obb.maximumDistancePlane(p),m=h<0,g=null!=T.dist&&null!=D.dist&&T.dist<o*q&&D.dist>h*q;if(m||g)return;const _=b(r.obb.center,r.obb.radius+n);if(!P(_,C,null))return;if(!r.obb.intersectRay(e,u,n))return;const{positions:S,squaredScales:w,gaussianAtlasIndices:y}=r,x=y.length;for(let p=0;p<x;p++){const r=3*p;a[0]=S[r]-e[0],a[1]=S[r+1]-e[1],a[2]=S[r+2]-e[2];const n=w[p],o=l(a,u),h=o*o;if(c(a)-h>n)continue;const m=o*q,g=t=>(t.point=t.point?t.point.fill(a[0],a[1],a[2]):d(a),t.dist=m,t.normal=v,t.layerViewUid=f,t);if((null==T.dist||m<T.dist)&&(null==s||s(e,i,m))&&g(T),0!==t.options.store&&(null==D.dist||m>D.dist)&&(null==s||s(e,i,m))&&g(D),2===t.options.store&&(null==s||s(e,i,m))){const t=new U;j.push(g(t))}}});const y=(t,s)=>{const{layerViewUid:e}=s,i=new S(s.point,e);t.set(0,i,s.dist,s.normal)};if(F(T)){const s=t.results.min;(null==s.distance||T.dist<s.distance)&&y(s,T)}if(F(D)&&0!==t.options.store){const s=t.results.max;(null==s.distance||D.dist>s.distance)&&y(s,D)}if(2===t.options.store)for(const r of j){const s=new w(C);y(s,r),t.results.all.push(s)}}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(t){this._slicePlaneEnabled!==t&&(this._slicePlaneEnabled=t,this.requestRender(1))}get data(){return this._data}destroy(){this._data.destroy(),super.destroy()}_onCameraChange(){const t=this.view.state.camera.eye,s=this.view.state.camera.ray.direction,e=.001;(Math.abs(t[0]-this._previousCameraPosition[0])>e||Math.abs(t[1]-this._previousCameraPosition[1])>e||Math.abs(t[2]-this._previousCameraPosition[2])>e||Math.abs(s[0]-this._previousCameraDirection[0])>e||Math.abs(s[1]-this._previousCameraDirection[1])>e||Math.abs(s[2]-this._previousCameraDirection[2])>e)&&this._data.requestSort()}_prepareHighPrecisionCameraPosition(){o(this._tempVec,this.camera.eye,1/I.tileSize),u(this._tempVec,this._tempVec),p(this._coarseCameraPosition,this._tempVec),this._gaussianSplatParameters.cameraPos8k=this._coarseCameraPosition,o(this._tempVec,this._tempVec,I.tileSize),r(this._cameraDelta,this.camera.eye,this._tempVec),this._gaussianSplatParameters.cameraDelta=this._cameraDelta}static{this.tileSize=2.048}};function F(t){return null!=t.dist&&null!=t.point}M=I=t([e("esri.views.3d.webgl-engine.lib.GaussianSplatRenderNode")],M);class U{constructor(){this.point=null,this.dist=null,this.normal=null,this.layerViewUid=""}}export{M as GaussianSplatRenderNode};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../core/has.js";import{webglDebugEnabled as t}from"../../../webgl/checkWebGLError.js";class r{constructor(r,e,i){this._context=r,this.locations=i,this._textures=new Map,this.source=t()?e:null,e.attributeNames.forEach(t=>{i.has(t)||console.error(`Missing VertexAttributeLocation for ${t} used in shader`)}),this._glProgram=r.programCache.acquire(e.generate("vertex",!0),e.generate("fragment",!0),i),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=e.generateBind(this),this.bindPass=e.generateBindPass(this),this.bindDraw=e.generateBindDraw(this)}dispose(){this._glProgram.dispose()}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(t,r){this._glProgram.setUniform1i(t,r?1:0)}setUniform1i(t,r){this._glProgram.setUniform1i(t,r)}setUniform1f(t,r,e){this._glProgram.setUniform1f(t,r,e)}setUniform2fv(t,r,e){this._glProgram.setUniform2fv(t,r,e)}setUniform3fv(t,r,e){this._glProgram.setUniform3fv(t,r,e)}setUniform4fv(t,r,e){this._glProgram.setUniform4fv(t,r,e)}setUniformMatrix3fv(t,r,e){this._glProgram.setUniformMatrix3fv(t,r,!1,e)}setUniformMatrix4fv(t,r,e){this._glProgram.setUniformMatrix4fv(t,r,!1,e)}setUniformMatrices4fv(t,r,e){this._glProgram.setUniformMatrices4fv(t,r,!1,e)}setUniform1fv(t,r,e){this._glProgram.setUniform1fv(t,r,e)}setUniform1iv(t,r){this._glProgram.setUniform1iv(t,r)}setUniform2iv(t,r){this._glProgram.setUniform2iv(t,r)}setUniform3iv(t,r){this._glProgram.setUniform3iv(t,r)}setUniform4iv(t,r){this._glProgram.setUniform4iv(t,r)}assertCompatibleVertexAttributeLocations(t,r){let e=t.locations;if(r){const t=new Map(e);r.forEach((r,i)=>t.set(i,e.size+r)),e=t}e.size!==this.locations.size&&console.error(`VertexAttributeLocations are incompatible: ${e}, ${this.locations}`),this.locations.forEach((t,r)=>{e.get(r)!==t&&console.error(`VertexAttributeLocations are incompatible: Program has ${r} at position ${t}, VAO has it at position ${e.get(r)}.`)})}stop(){this._textures.clear()}bindTexture(r,e){e?.glName||(t()&&console.error(`Texture sampler ${r} has no given Texture in ${(new Error).stack} `),e=this._context.emptyTexture);const i=this._ensureTextureUnit(r,e);this._context.useProgram(this),this.setUniform1i(r,i.unit),this._context.bindTexture(e,i.unit)}_ensureTextureUnit(t,r){let e=this._textures.get(t);return null==e?(e={texture:r,unit:this._textures.size},this._textures.set(t,e)):e.texture=r,e}}export{r as Program};
5
+ import"../../../../core/has.js";import{webglDebugEnabled as t}from"../../../webgl/checkWebGLError.js";class r{constructor(r,e,i){this._context=r,this.locations=i,this._textures=new Map,this.source=t()?e:null,e.attributeNames.forEach(t=>{i.has(t)||console.error(`Missing VertexAttributeLocation for ${t} used in shader`)}),this._glProgram=r.programCache.acquire(e.generate("vertex",!0),e.generate("fragment",!0),i),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=e.generateBind(this),this.bindPass=e.generateBindPass(this),this.bindDraw=e.generateBindDraw(this)}dispose(){this._glProgram.dispose()}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(t,r){this._glProgram.setUniform1i(t,r?1:0)}setUniform1i(t,r){this._glProgram.setUniform1i(t,r)}setUniform1f(t,r,e){this._glProgram.setUniform1f(t,r,e)}setUniform2fv(t,r,e){this._glProgram.setUniform2fv(t,r,e)}setUniform3fv(t,r,e){this._glProgram.setUniform3fv(t,r,e)}setUniform4fv(t,r,e){this._glProgram.setUniform4fv(t,r,e)}setUniformMatrix3fv(t,r,e){this._glProgram.setUniformMatrix3fv(t,r,!1,e)}setUniformMatrix4fv(t,r,e){this._glProgram.setUniformMatrix4fv(t,r,!1,e)}setUniformMatrices4fv(t,r,e){this._glProgram.setUniformMatrices4fv(t,r,!1,e)}setUniform1fv(t,r,e){this._glProgram.setUniform1fv(t,r,e)}setUniform1iv(t,r){this._glProgram.setUniform1iv(t,r)}setUniform2iv(t,r){this._glProgram.setUniform2iv(t,r)}setUniform3iv(t,r){this._glProgram.setUniform3iv(t,r)}setUniform4iv(t,r){this._glProgram.setUniform4iv(t,r)}assertCompatibleVertexAttributeLocations(t,r){let e=t.locations;if(r){const t=new Map(e);r.forEach((r,i)=>t.set(i,e.size+r)),e=t}e.size!==this.locations.size&&console.error(`VertexAttributeLocations are incompatible: ${e}, ${this.locations}`),this.locations.forEach((t,r)=>{e.get(r)!==t&&console.error(`VertexAttributeLocations are incompatible: Program has ${r} at position ${t}, VAO has it at position ${e.get(r)}.`)})}stop(){this._textures.clear()}bindTexture(r,e){if(!e?.glName){const i=`Texture sampler ${r} in ${this._context.debugBoundTechnique} has no given Texture in ${(new Error).stack}`;t()&&console.error(i),e=this._context.emptyTexture}const i=this._ensureTextureUnit(r,e);this._context.useProgram(this),this.setUniform1i(r,i.unit),this._context.bindTexture(e,i.unit)}_ensureTextureUnit(t,r){let e=this._textures.get(t);return null==e?(e={texture:r,unit:this._textures.size},this._textures.set(t,e)):e.texture=r,e}}export{r as Program};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import has from"../../../../core/has.js";import{ScreenSpaceGeometry as e}from"../effects/ScreenSpaceGeometry.js";import{createEmptyTexture as s}from"./glUtil3D.js";import{VaoCache as r}from"../materials/renderers/VaoCache.js";import{AppleAmdDriverHelper as t}from"../../../webgl/AppleAmdDriverHelper.js";import{RenderingContext as i}from"../../../webgl/RenderingContext.js";class a extends i{constructor(r,t){super(r,t),this.emptyTexture=s(this),this._vaoCaches=new Map,this._appleAmdDriverHelper=null,this._refCount=1,this._newCache=t.newCache,this._screen=new e(this)}configure(e){super.configure(e),this._newCache=e.newCache}destroy(){this._vaoCaches.forEach(e=>e.dispose()),this._vaoCaches.clear(),--this._refCount>0||this.dispose()}ref(){++this._refCount}get refCount(){return this._refCount}dispose(){this.emptyTexture.dispose(),this._screen.destroy(),this._screen=null,super.dispose(),this._appleAmdDriverHelper?.dispose(),this._vaoCaches.forEach(e=>e.dispose()),this._vaoCaches.clear()}get newCache(){return this._newCache}get screen(){return this._screen}getVaoCache(e){const s=JSON.stringify(e),t=this._vaoCaches.get(s);if(t)return t;const i=new r(this,e);return this._vaoCaches.set(s,i),i}bindTechnique(e,s,r,t){return this.useProgram(e.program),this.setPipelineState(e.getPipeline()),e.program.bind(s),r&&(e.program.bindPass(r,s),t&&e.program.bindDraw(s,r,t)),e.program}runAppleAmdDriverHelper(){this.driverTest.drawArraysRequiresIndicesTypeReset.result&&(this._appleAmdDriverHelper??=new t(this),this._appleAmdDriverHelper.run())}get isAssumedMetalDriver(){if(null==this._isAssumedMetalDriver&&(this._isAssumedMetalDriver=!!has("ios")||!!has("safari"),!this._isAssumedMetalDriver&&has("mac")&&has("chrome"))){const e=this.capabilities.rendererInfo?.getUnmaskedRenderer().toLowerCase(),s=e?.includes("apple")&&e?.includes("angle")&&e?.includes("metal");this._isAssumedMetalDriver=s??!0}return this._isAssumedMetalDriver}get test(){}}export{a as RenderingContext};
5
+ import has from"../../../../core/has.js";import{ScreenSpaceGeometry as e}from"../effects/ScreenSpaceGeometry.js";import{createEmptyTexture as s}from"./glUtil3D.js";import{VaoCache as r}from"../materials/renderers/VaoCache.js";import{AppleAmdDriverHelper as t}from"../../../webgl/AppleAmdDriverHelper.js";import{RenderingContext as i}from"../../../webgl/RenderingContext.js";class a extends i{constructor(r,t){super(r,t),this.emptyTexture=s(this),this._vaoCaches=new Map,this.debugBoundTechnique="",this._appleAmdDriverHelper=null,this._refCount=1,this._newCache=t.newCache,this._screen=new e(this)}configure(e){super.configure(e),this._newCache=e.newCache}destroy(){this._vaoCaches.forEach(e=>e.dispose()),this._vaoCaches.clear(),--this._refCount>0||this.dispose()}ref(){++this._refCount}get refCount(){return this._refCount}dispose(){this.emptyTexture.dispose(),this._screen.destroy(),this._screen=null,super.dispose(),this._appleAmdDriverHelper?.dispose(),this._vaoCaches.forEach(e=>e.dispose()),this._vaoCaches.clear()}get newCache(){return this._newCache}get screen(){return this._screen}getVaoCache(e){const s=JSON.stringify(e),t=this._vaoCaches.get(s);if(t)return t;const i=new r(this,e);return this._vaoCaches.set(s,i),i}bindTechnique(e,s,r,t){return this.debugBoundTechnique=e.declaredClass,this.useProgram(e.program),this.setPipelineState(e.getPipeline()),e.program.bind(s),r&&(e.program.bindPass(r,s),t&&e.program.bindDraw(s,r,t)),e.program}runAppleAmdDriverHelper(){this.driverTest.drawArraysRequiresIndicesTypeReset.result&&(this._appleAmdDriverHelper??=new t(this),this._appleAmdDriverHelper.run())}get isAssumedMetalDriver(){if(null==this._isAssumedMetalDriver&&(this._isAssumedMetalDriver=!!has("ios")||!!has("safari"),!this._isAssumedMetalDriver&&has("mac")&&has("chrome"))){const e=this.capabilities.rendererInfo?.getUnmaskedRenderer().toLowerCase(),s=e?.includes("apple")&&e?.includes("angle")&&e?.includes("metal");this._isAssumedMetalDriver=s??!0}return this._isAssumedMetalDriver}get test(){}}export{a as RenderingContext};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{maxIndexCount as t,ManagedTextureBackedBuffer as e}from"./ManagedTextureBackedBuffer.js";import{hashTextureBackedBufferLayout as s}from"./TextureBackedBuffer.js";class r{constructor(t,e){this._rctx=t,this._layout=e,this._buffersPerHash=new Map,this._layoutHash=s(this._layout)}garbageCollect(){const{_buffersPerHash:t}=this;for(const[e,s]of t.entries()){const r=s.filter(t=>0!==t.activeCount||(t.dispose(),!1));t.set(e,r)}}destroy(){const{_buffersPerHash:t}=this;for(const e of t.values())e.forEach(t=>t.dispose());t.clear()}getBuffer(s){const{_layoutHash:r,_buffersPerHash:o}=this;let f=o.get(r);null==f&&(f=[],o.set(r,f));for(const t of f)if(t.availableCount>=s)return t;if(s>t)return null;const u=new e(this._rctx,this._layout);return f.push(u),u}updateTextures(){const t=this._buffersPerHash;for(const e of t.values())for(const t of e)t.textureBuffer.updateTexture()}}export{r as BufferManager};
5
+ import{maxIndexCount as t,ManagedTextureBackedBuffer as e}from"./ManagedTextureBackedBuffer.js";class s{constructor(t,e){this._rctx=t,this._layoutDeclaration=e,this._bufferList=[]}garbageCollect(){const{_bufferList:t}=this;this._bufferList=t.filter(t=>0!==t.activeCount||(t.dispose(),!1))}destroy(){const{_bufferList:t}=this;t.forEach(t=>t.dispose()),this._bufferList=[]}getBuffer(s){const{_bufferList:r}=this;for(const t of r)if(t.availableCount>=s)return t;if(s>t)return null;const f=new e(this._rctx,this._layoutDeclaration);return r.push(f),f}updateTextures(){const t=this._bufferList;for(const e of t)e.textureBuffer.updateTexture()}}export{s as BufferManager};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{SimpleIndexManager as e}from"./SimpleIndexManager.js";import{hashTextureBackedBufferLayout as t,TextureBackedBuffer as r}from"./TextureBackedBuffer.js";const i=65536;class a{constructor(a,n){this._layoutHash=t(n),this.textureBuffer=new r(a,n),this._indexManager=new e(i)}dispose(){this.textureBuffer.dispose(),this.textureBuffer=void 0}get availableCount(){return this._indexManager.availableCount}get activeCount(){return this._indexManager.activeCount}acquireIndex(){const e=this._indexManager.acquire();return this.textureBuffer.resizeToFit(e),e}acquireIndices(e){const t=new Uint16Array(e);let r=0;for(let i=0;i<e;++i){const e=this._indexManager.acquire();t[i]=e,r=Math.max(r,e)}return this.textureBuffer.resizeToFit(r),t}releaseIndex(e){this._indexManager.release(e)}get hash(){return this._layoutHash}}export{a as ManagedTextureBackedBuffer,i as maxIndexCount};
5
+ import{SimpleIndexManager as e}from"./SimpleIndexManager.js";import{TextureBackedBuffer as t}from"./TextureBackedBuffer.js";const r=65536;class i{constructor(i,n){this.textureBuffer=new t(i,n),this._indexManager=new e(r)}dispose(){this.textureBuffer.dispose(),this.textureBuffer=void 0}get availableCount(){return this._indexManager.availableCount}get activeCount(){return this._indexManager.activeCount}acquireIndex(){const e=this._indexManager.acquire();return this.textureBuffer.resizeToFit(e),e}acquireIndices(e){const t=new Uint16Array(e);let r=0;for(let i=0;i<e;++i){const e=this._indexManager.acquire();t[i]=e,r=Math.max(r,e)}return this.textureBuffer.resizeToFit(r),t}releaseIndex(e){this._indexManager.release(e)}}export{i as ManagedTextureBackedBuffer,r as maxIndexCount};