@arcgis/core 4.23.0-next.20220127 → 4.23.0-next.20220128

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 (312) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/0463ba46df855a92b9c0.js +1 -0
  3. package/assets/esri/core/workers/chunks/{e657ba0cab29f05d02da.js → 0cd0a6eef51fc5b9ea61.js} +1 -1
  4. package/assets/esri/core/workers/chunks/{e4896cf85fb2da8a9cc7.js → 17de7a324dfa7f57ad5d.js} +1 -1
  5. package/assets/esri/core/workers/chunks/{c36f84daa7736878418d.js → 197ec52641aed20029c6.js} +1 -1
  6. package/assets/esri/core/workers/chunks/{0317f37b6c8705b363fd.js → 1c733b7db092a2a88ef3.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{9387db408f496e7dd003.js → 214910032945dd2d86b0.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{d835b2a683fcd8aeeed8.js → 27474b007988855bea9d.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{8001b0e514bfffe9d7f8.js → 357033117dfe61eb81ea.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{5948923e07bd1662c24a.js → 37c03cfc19086ce631c6.js} +1 -1
  11. package/assets/esri/core/workers/chunks/3c673495e5f507c4a9e5.js +1 -0
  12. package/assets/esri/core/workers/chunks/44f0c3663b293afbd172.js +1 -0
  13. package/assets/esri/core/workers/chunks/483d5d8593d96d0f0b15.js +1 -0
  14. package/assets/esri/core/workers/chunks/49a1a633bb0d93764aae.js +1 -0
  15. package/assets/esri/core/workers/chunks/{5f1dcb6556820cd0aa31.js → 4be35af7d6babbfe9d84.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{f9ff3eaf4eb324429fbd.js → 5457962a70bd3c557a75.js} +1 -1
  17. package/assets/esri/core/workers/chunks/57856b4a9b8784a69844.js +1 -0
  18. package/assets/esri/core/workers/chunks/{56274b37ff74ca0d68a6.js → 5d11b97b667921d67ae7.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{ba5eb394f098968c22d2.js → 655b55ac0cd533d7e9d7.js} +1 -1
  20. package/assets/esri/core/workers/chunks/7903a3e2e0faff0f86c0.js +1 -0
  21. package/assets/esri/core/workers/chunks/918bb7a7d901544a7367.js +1 -0
  22. package/assets/esri/core/workers/chunks/949b2269457302ffc64b.js +1 -0
  23. package/assets/esri/core/workers/chunks/{601e697dc7414bda128a.js → 952980635afc7ec81804.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{e8741bf421f80213f1d3.js → 9876a1bae350795fab36.js} +1 -1
  25. package/assets/esri/core/workers/chunks/99619fcb772807c74f3b.js +1 -0
  26. package/assets/esri/core/workers/chunks/{3f343f792fd9f44d6f25.js → b3f5e91116112b0b612a.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{4c76146014dc15143ba3.js → be588873c16770ceb9ef.js} +1 -1
  28. package/assets/esri/core/workers/chunks/d1fe53b597351dc58305.js +1 -0
  29. package/assets/esri/core/workers/chunks/{b62e3dccd9f662c0afeb.js → db3c729ce0c0b2690dc9.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{199670a3a564ebe3bd79.js → e218bde41ffbcc5194f5.js} +1 -1
  31. package/assets/esri/core/workers/chunks/e21b211913aefde47e30.js +1 -0
  32. package/assets/esri/core/workers/chunks/{c9cbf8135e95f0f42cd9.js → e287f49184d076af17e2.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{bde1d5b0a7717350986e.js → e4019b63a1fe74e2c842.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{6e6a3c5866e8d8820457.js → eb82ff10cef2bde6e57f.js} +1 -1
  35. package/assets/esri/core/workers/chunks/ebc6f4764b82d4104c65.js +1 -0
  36. package/assets/esri/core/workers/chunks/{842db82733635dbf25cb.js → ee6e0db58dc64410e687.js} +1 -1
  37. package/assets/esri/core/workers/chunks/f0a9f161805fc7a30fc5.js +1 -0
  38. package/assets/esri/core/workers/chunks/ff6abdc72076f3994659.js +981 -0
  39. package/chunks/BlendLayers.glsl.js +2 -2
  40. package/chunks/ChapmanAtmosphere.glsl.js +17 -17
  41. package/chunks/CheckerBoard.glsl.js +3 -3
  42. package/chunks/Clouds.glsl.js +2 -2
  43. package/chunks/CloudsComposition.glsl.js +1 -1
  44. package/chunks/ColorMaterial.glsl.js +12 -12
  45. package/chunks/ComponentShader.glsl.js +3 -3
  46. package/chunks/Compositing.glsl.js +1 -1
  47. package/chunks/DefaultMaterial.glsl.js +33 -33
  48. package/chunks/EdgeShaderProgram.glsl.js +7 -7
  49. package/chunks/Fog.glsl.js +10 -12
  50. package/chunks/HUDMaterial.glsl.js +2 -2
  51. package/chunks/HighlightComposition.glsl.js +5 -5
  52. package/chunks/ImageMaterial.glsl.js +6 -6
  53. package/chunks/LaserlinePath.glsl.js +8 -8
  54. package/chunks/LineCallout.glsl.js +6 -6
  55. package/chunks/MeasurementArrow.glsl.js +1 -1
  56. package/chunks/NativeLine.glsl.js +1 -1
  57. package/chunks/Path.glsl.js +5 -5
  58. package/chunks/Pattern.glsl.js +9 -9
  59. package/chunks/PointRenderer.glsl.js +14 -14
  60. package/chunks/Precipitation.glsl.js +2 -2
  61. package/chunks/RealisticTree.glsl.js +21 -21
  62. package/chunks/RibbonLine.glsl.js +11 -11
  63. package/chunks/SMAA.glsl.js +40 -40
  64. package/chunks/ShadedColorMaterial.glsl.js +12 -12
  65. package/chunks/ShadowCast.glsl.js +6 -6
  66. package/chunks/ShadowHighlight.glsl.js +4 -4
  67. package/chunks/SimpleAtmosphere.glsl.js +3 -3
  68. package/chunks/SlicePlaneMaterial.glsl.js +3 -3
  69. package/chunks/Stars.glsl.js +3 -3
  70. package/chunks/Terrain.glsl.js +11 -11
  71. package/chunks/TextureOnly.glsl.js +2 -2
  72. package/chunks/WaterSurface.glsl.js +5 -5
  73. package/chunks/boundedPlane.js +1 -1
  74. package/core/accessorSupport/watch.js +1 -1
  75. package/core/loadAll.js +1 -1
  76. package/geometry/support/frustum.js +1 -1
  77. package/geometry/support/plane.js +1 -1
  78. package/interfaces.d.ts +204 -10
  79. package/layers/VectorTileLayer.js +1 -1
  80. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  81. package/layers/graphics/featureConversionUtils.js +1 -1
  82. package/layers/support/LayerContingentValuesCache.js +1 -1
  83. package/layers/support/TileInfo.js +1 -1
  84. package/package.json +1 -1
  85. package/smartMapping/statistics/support/predominanceUtils.d.ts +4 -0
  86. package/support/revision.js +1 -1
  87. package/symbols/FillSymbol3DLayer.js +1 -1
  88. package/symbols/IconSymbol3DLayer.js +1 -1
  89. package/symbols/ObjectSymbol3DLayer.js +1 -1
  90. package/symbols/Symbol3D.js +1 -1
  91. package/symbols/WebStyleSymbol.js +1 -1
  92. package/symbols/cim/CIMSymbolRasterizer.js +1 -1
  93. package/symbols/support/IconSymbol3DLayerResource.js +1 -1
  94. package/symbols/support/ObjectSymbol3DLayerResource.js +1 -1
  95. package/symbols/support/Symbol3DAnchorPosition2D.js +1 -1
  96. package/symbols/support/Symbol3DAnchorPosition3D.js +1 -1
  97. package/symbols/support/Symbol3DFillMaterial.js +1 -1
  98. package/symbols/support/Symbol3DIconOutline.js +1 -1
  99. package/symbols/support/Symbol3DOutline.js +1 -1
  100. package/symbols/support/Thumbnail.js +1 -1
  101. package/symbols/support/webStyleSymbolUtils.js +1 -1
  102. package/views/2d/engine/vectorTiles/SchemaHelper.js +1 -1
  103. package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
  104. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  105. package/views/3d/environment/CloudsComposition.glsl.js +1 -1
  106. package/views/3d/environment/CloudsGenerator.js +1 -1
  107. package/views/3d/environment/Fog.glsl.js +1 -1
  108. package/views/3d/environment/Fog.js +1 -1
  109. package/views/3d/environment/PanoramicAtmosphere.js +1 -1
  110. package/views/3d/environment/Precipitation.glsl.js +1 -1
  111. package/views/3d/environment/Precipitation.js +1 -1
  112. package/views/3d/environment/PrecipitationTechnique.js +1 -1
  113. package/views/3d/environment/SimpleAtmosphere.glsl.js +1 -1
  114. package/views/3d/environment/SimpleAtmosphere.js +1 -1
  115. package/views/3d/environment/Stars.glsl.js +1 -1
  116. package/views/3d/environment/Stars.js +1 -1
  117. package/views/3d/interactive/analysisTools/slice/sliceToolUtils.js +1 -1
  118. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  119. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  120. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  121. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  122. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  123. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  124. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  125. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  126. package/views/3d/layers/I3SMeshView3D.js +1 -1
  127. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  128. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  129. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  130. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  131. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  132. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  133. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  134. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  135. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  136. package/views/3d/layers/graphics/graphicUtils.js +1 -1
  137. package/views/3d/layers/graphics/lineUtils.js +1 -1
  138. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  139. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  140. package/views/3d/layers/graphics/symbolComplexity.js +1 -1
  141. package/views/3d/layers/i3s/I3SBinaryReader.js +1 -1
  142. package/views/3d/layers/i3s/PointRenderer.js +1 -1
  143. package/views/3d/layers/support/HeatmapFeatureProcessor.js +5 -0
  144. package/views/3d/layers/support/overlayImageUtils.js +1 -1
  145. package/views/3d/layers/support/patternUtils.js +1 -1
  146. package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
  147. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  148. package/views/3d/support/LaserLineRenderer.js +1 -1
  149. package/views/3d/support/LaserlinePathData.js +1 -1
  150. package/views/3d/terrain/OverlayRenderer.js +1 -1
  151. package/views/3d/terrain/PatchGeometryFactory.js +1 -1
  152. package/views/3d/terrain/TerrainRenderer.js +1 -1
  153. package/views/3d/terrain/TerrainSurface.js +1 -1
  154. package/views/3d/terrain/Tile.js +1 -1
  155. package/views/3d/terrain/terrainUtils.js +1 -1
  156. package/views/3d/terrain/tileUtils.js +1 -1
  157. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  158. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  159. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  160. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +10 -10
  161. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  162. package/views/3d/webgl-engine/collections/Component/SourceGeometry.js +1 -1
  163. package/views/3d/webgl-engine/core/renderPasses/AllRenderPasses.js +1 -1
  164. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  165. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +2 -2
  166. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js +2 -2
  167. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.js +2 -2
  168. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +2 -2
  169. package/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js +4 -4
  170. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +1 -1
  171. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js +1 -1
  172. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +1 -1
  173. package/views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js +1 -1
  174. package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +3 -3
  175. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js +1 -1
  176. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +6 -6
  177. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +12 -12
  178. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTextureCoordinates.glsl.js +4 -4
  179. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +1 -1
  180. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +16 -16
  181. package/views/3d/webgl-engine/core/shaderLibrary/default/RealisticTree.glsl.js +1 -1
  182. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +5 -5
  183. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDOcclusionPass.glsl.js +3 -3
  184. package/views/3d/webgl-engine/core/shaderLibrary/raster/BasicGrid.glsl.js +2 -2
  185. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js +6 -6
  186. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +2 -2
  187. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeShadingNormal.glsl.js +10 -11
  188. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +2 -2
  189. package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js +2 -2
  190. package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassTerrainTest.glsl.js +2 -2
  191. package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +6 -6
  192. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js +4 -4
  193. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +6 -6
  194. package/views/3d/webgl-engine/core/shaderLibrary/shading/Reprojection.glsl.js +4 -4
  195. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +5 -5
  196. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +1 -1
  197. package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +10 -10
  198. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Terrain.glsl.js +1 -1
  199. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js +1 -1
  200. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +4 -4
  201. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  202. package/views/3d/webgl-engine/lib/Camera.js +1 -1
  203. package/views/3d/webgl-engine/lib/DefaultVertexAttributeLocations.js +1 -1
  204. package/views/3d/webgl-engine/lib/DefaultVertexBufferLayouts.js +1 -1
  205. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  206. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  207. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  208. package/views/3d/webgl-engine/lib/MagnifierHelper.js +1 -1
  209. package/views/3d/webgl-engine/lib/Material.js +1 -1
  210. package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
  211. package/views/3d/webgl-engine/lib/SSAOHelper.js +1 -1
  212. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  213. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  214. package/views/3d/webgl-engine/lib/SmaaRenderPass.js +1 -1
  215. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  216. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  217. package/views/3d/webgl-engine/lib/TextureUniformName.js +4 -0
  218. package/views/3d/webgl-engine/lib/UniformName.js +4 -0
  219. package/views/3d/webgl-engine/lib/VertexAttribute.js +5 -0
  220. package/views/3d/webgl-engine/lib/basicInterfaces.js +1 -1
  221. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  222. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  223. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechnique.js +1 -1
  224. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  225. package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
  226. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  227. package/views/3d/webgl-engine/lib/lodRendering/RenderInstanceData.js +1 -1
  228. package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
  229. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  230. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  231. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  232. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  233. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  234. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  235. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  236. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  237. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  238. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  239. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  240. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  241. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  242. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  243. package/views/3d/webgl-engine/materials/VisualVariableMaterialParameters.js +1 -1
  244. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  245. package/views/3d/webgl-engine/materials/internal/DefaultBufferWriter.js +1 -1
  246. package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
  247. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  248. package/views/3d/webgl-engine/materials/internal/waterMaterialUtils.js +1 -1
  249. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  250. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  251. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  252. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  253. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  254. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  255. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  256. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  257. package/views/3d/webgl-engine/shaders/HighlightComposition.glsl.js +1 -1
  258. package/views/3d/webgl-engine/shaders/HighlightTechnique.js +1 -1
  259. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  260. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  261. package/views/3d/webgl-engine/shaders/LaserlinePath.glsl.js +1 -1
  262. package/views/3d/webgl-engine/shaders/LaserlinePathTechnique.js +1 -1
  263. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  264. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  265. package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +1 -1
  266. package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
  267. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  268. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  269. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  270. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  271. package/views/3d/webgl-engine/shaders/RealisticTreeTechnique.js +1 -1
  272. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  273. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  274. package/views/3d/webgl-engine/shaders/SMAA.glsl.js +1 -1
  275. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  276. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  277. package/views/3d/webgl-engine/shaders/ShadowCastTechnique.js +1 -1
  278. package/views/3d/webgl-engine/shaders/ShadowHighlightTechnique.js +1 -1
  279. package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
  280. package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
  281. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +10 -10
  282. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/DiscardShortEdges.glsl.js +1 -1
  283. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShaderProgram.glsl.js +1 -1
  284. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +21 -21
  285. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineAmplitude.glsl.js +6 -6
  286. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineOffset.glsl.js +13 -13
  287. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/UnpackAttributes.glsl.js +6 -6
  288. package/views/SceneView.js +1 -1
  289. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  290. package/views/support/WatchUpdatingTracking.js +1 -1
  291. package/views/webgl/BufferObject.js +1 -1
  292. package/views/webgl/InstanceCounter.js +1 -1
  293. package/views/webgl/Program.js +1 -1
  294. package/widgets/BasemapGallery/support/basemapCompatibilityUtils.js +1 -1
  295. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
  296. package/widgets/Search/support/locatorUtils.js +1 -1
  297. package/widgets/Search.js +1 -1
  298. package/assets/esri/core/workers/chunks/12c0cabb6c59e65d8546.js +0 -1
  299. package/assets/esri/core/workers/chunks/322d917e8cb398816a93.js +0 -1
  300. package/assets/esri/core/workers/chunks/392b6382e06652dd4c80.js +0 -1
  301. package/assets/esri/core/workers/chunks/3aa73119b055e05bbbeb.js +0 -1
  302. package/assets/esri/core/workers/chunks/52ea678ba1da0e349919.js +0 -1
  303. package/assets/esri/core/workers/chunks/5ee497d5d7b0e580526a.js +0 -1
  304. package/assets/esri/core/workers/chunks/663ad15b86936eb06b69.js +0 -1
  305. package/assets/esri/core/workers/chunks/83b8fec1650e061aaa56.js +0 -1
  306. package/assets/esri/core/workers/chunks/9796d54ff12b6429164a.js +0 -1
  307. package/assets/esri/core/workers/chunks/d07440469fe7d181c4fd.js +0 -1
  308. package/assets/esri/core/workers/chunks/dbf192b4ce7e608610f6.js +0 -1
  309. package/assets/esri/core/workers/chunks/de6cff7b6cbbf99b20d1.js +0 -981
  310. package/assets/esri/core/workers/chunks/dee9929d95e9fe26929c.js +0 -1
  311. package/assets/esri/core/workers/chunks/e12d91ef44d6f879a02a.js +0 -1
  312. package/assets/esri/core/workers/chunks/e59764ee8cf25d4f74e2.js +0 -1
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{multipassGeometryTest as r}from"../shading/MultipassGeometryTest.glsl.js";import{RgbaFloatEncoding as t}from"../util/RgbaFloatEncoding.glsl.js";import{glsl as o}from"../../shaderModules/interfaces.js";function a(a,i){i.multipassGeometryEnabled&&a.vertex.include(r),i.multipassTerrainEnabled&&a.varyings.add("depth","float"),a.vertex.code.add(o`
5
+ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{multipassGeometryTest as t}from"../shading/MultipassGeometryTest.glsl.js";import{RgbaFloatEncoding as r}from"../util/RgbaFloatEncoding.glsl.js";import{glsl as o}from"../../shaderModules/interfaces.js";function a(a,i){i.multipassGeometryEnabled&&a.vertex.include(t),i.multipassTerrainEnabled&&a.varyings.add("depth","float"),a.vertex.code.add(o`
6
6
  void main(void) {
7
7
  vec4 posProjCenter;
8
8
  if (dot(position, position) > 0.0) {
@@ -33,7 +33,7 @@ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{multi
33
33
  gl_Position = posProjCenter;
34
34
  gl_PointSize = 1.0;
35
35
  }
36
- `),i.multipassTerrainEnabled&&a.fragment.include(e),a.fragment.uniforms.add("terrainDepthTexture","sampler2D"),a.fragment.uniforms.add("cameraNearFar","vec2"),a.fragment.uniforms.add("inverseViewport","vec2"),a.fragment.include(t),a.fragment.code.add(o`
36
+ `),i.multipassTerrainEnabled&&a.fragment.include(e),a.fragment.uniforms.add("terrainDepthTexture","sampler2D"),a.fragment.uniforms.add("nearFar","vec2"),a.fragment.uniforms.add("inverseViewport","vec2"),a.fragment.include(r),a.fragment.code.add(o`
37
37
  void main() {
38
38
  gl_FragColor = vec4(1, 1, 1, 1);
39
39
  ${i.multipassTerrainEnabled?o`
@@ -43,7 +43,7 @@ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{multi
43
43
  //Read the rgba data from the texture linear depth
44
44
  vec4 terrainDepthData = texture2D(terrainDepthTexture, uv);
45
45
 
46
- float terrainDepth = linearDepthFromFloat(rgba2float(terrainDepthData), cameraNearFar);
46
+ float terrainDepth = linearDepthFromFloat(rgba2float(terrainDepthData), nearFar);
47
47
 
48
48
  //If HUD vertex is behind terrain and the terrain depth is not the initialize value (e.g. we are not looking at the sky)
49
49
  //Mark the HUD vertex as occluded by transparent terrain
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as e}from"../../shaderModules/interfaces.js";import{VertexAttribute as o}from"../../../lib/basicInterfaces.js";function t(t){t.attributes.add(o.POSITION,"vec2"),t.attributes.add(o.UV0,"vec2"),t.vertex.uniforms.add("u_scale","float"),t.vertex.uniforms.add("u_offset","vec2"),t.varyings.add("v_texcoord","vec2"),t.vertex.code.add(e`void main(void) {
5
+ import{glsl as e}from"../../shaderModules/interfaces.js";import{VertexAttribute as t}from"../../../lib/VertexAttribute.js";function o(o){o.attributes.add(t.POSITION,"vec2"),o.attributes.add(t.UV0,"vec2"),o.vertex.uniforms.add("u_scale","float"),o.vertex.uniforms.add("u_offset","vec2"),o.varyings.add("v_texcoord","vec2"),o.vertex.code.add(e`void main(void) {
6
6
  v_texcoord = uv0 * u_scale + u_offset;
7
7
  gl_Position = vec4(position, 0.0, 1.0);
8
- }`)}export{t as BasicGrid};
8
+ }`)}export{o as BasicGrid};
@@ -2,16 +2,16 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{VertexColor as o}from"../attributes/VertexColor.glsl.js";import{MixExternalColor as e}from"../util/MixExternalColor.glsl.js";import{glsl as r}from"../../shaderModules/interfaces.js";function a(a,t){a.include(o,t),a.fragment.include(e);const l=a.fragment;l.uniforms.add("uBaseColor","vec4"),l.uniforms.add("uObjectOpacity","float"),t.attributeColor?l.code.add(r`vec3 _baseColor() {
6
- return uBaseColor.rgb * vColor.rgb;
5
+ import{VertexColor as o}from"../attributes/VertexColor.glsl.js";import{MixExternalColor as e}from"../util/MixExternalColor.glsl.js";import{glsl as r}from"../../shaderModules/interfaces.js";function a(a,t){a.include(o,t),a.fragment.include(e);const l=a.fragment;l.uniforms.add("baseColor","vec4"),l.uniforms.add("objectOpacity","float"),t.attributeColor?l.code.add(r`vec3 _baseColor() {
6
+ return baseColor.rgb * vColor.rgb;
7
7
  }
8
8
  float _baseOpacity() {
9
- return uBaseColor.a * vColor.a;
9
+ return baseColor.a * vColor.a;
10
10
  }`):l.code.add(r`vec3 _baseColor() {
11
- return uBaseColor.rgb;
11
+ return baseColor.rgb;
12
12
  }
13
13
  float _baseOpacity() {
14
- return uBaseColor.a;
14
+ return baseColor.a;
15
15
  }`),l.code.add(r`vec4 computeMaterialColor(vec4 textureColor, vec4 externalColor, int externalColorMixMode) {
16
16
  vec3 baseColor = _baseColor();
17
17
  float baseOpacity = _baseOpacity();
@@ -21,7 +21,7 @@ textureColor.rgb,
21
21
  externalColor.rgb,
22
22
  externalColorMixMode
23
23
  );
24
- float opacity = uObjectOpacity * mixExternalOpacity(
24
+ float opacity = objectOpacity * mixExternalOpacity(
25
25
  baseOpacity,
26
26
  textureColor.a,
27
27
  externalColor.a,
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{TextureCoordinateAttribute as e}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexTextureCoordinates as t}from"../attributes/VertexTextureCoordinates.glsl.js";import{Normals as n}from"./Normals.glsl.js";import{glsl as a}from"../../shaderModules/interfaces.js";import{VertexAttribute as r}from"../../../lib/basicInterfaces.js";function o(o,s){const d=o.fragment;s.vertexTangents?(o.attributes.add(r.TANGENT,"vec4"),o.varyings.add("vTangent","vec4"),s.doubleSidedMode===n.DoubleSidedMode.WindingOrder?d.code.add(a`mat3 computeTangentSpace(vec3 normal) {
5
+ import{TextureCoordinateAttributeType as e}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexTextureCoordinates as t}from"../attributes/VertexTextureCoordinates.glsl.js";import{NormalsDoubleSidedMode as n}from"./Normals.glsl.js";import{glsl as a}from"../../shaderModules/interfaces.js";import{VertexAttribute as r}from"../../../lib/VertexAttribute.js";function o(o,s){const d=o.fragment;s.vertexTangents?(o.attributes.add(r.TANGENT,"vec4"),o.varyings.add("vTangent","vec4"),s.doubleSidedMode===n.WindingOrder?d.code.add(a`mat3 computeTangentSpace(vec3 normal) {
6
6
  float tangentHeadedness = gl_FrontFacing ? vTangent.w : -vTangent.w;
7
7
  vec3 tangent = normalize(gl_FrontFacing ? vTangent.xyz : -vTangent.xyz);
8
8
  vec3 bitangent = cross(normal, tangent) * tangentHeadedness;
@@ -23,7 +23,7 @@ T = T - normal * dot(normal, T);
23
23
  T *= inversesqrt(max(dot(T,T), 1.e-10));
24
24
  vec3 B = sign(det) * cross(normal, T);
25
25
  return mat3(T, B, normal);
26
- }`)),s.attributeTextureCoordinates!==e.AttributeType.None&&(o.include(t,s),d.uniforms.add("normalTexture","sampler2D"),d.uniforms.add("normalTextureSize","vec2"),d.code.add(a`
26
+ }`)),s.attributeTextureCoordinates!==e.None&&(o.include(t,s),d.uniforms.add("normalTexture","sampler2D"),d.uniforms.add("normalTextureSize","vec2"),d.code.add(a`
27
27
  vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) {
28
28
  vtc.uv = uv;
29
29
  ${s.supportsTextureAtlas?"vtc.size = normalTextureSize;":""}
@@ -2,20 +2,19 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{ViewingMode as e}from"../../../../../ViewingMode.js";import{NormalAttribute as o}from"../attributes/NormalAttribute.glsl.js";import{VertexNormal as r}from"../attributes/VertexNormal.glsl.js";import{VertexPosition as d}from"../attributes/VertexPosition.glsl.js";import{Normals as i}from"./Normals.glsl.js";import{glsl as a}from"../../shaderModules/interfaces.js";function n(n,l){const t=n.fragment;l.doubleSidedMode===i.DoubleSidedMode.None?t.code.add(a`vec3 _adjustDoublesided(vec3 normal) {
5
+ import{neverReached as e}from"../../../../../../core/compilerUtils.js";import{ViewingMode as r}from"../../../../../ViewingMode.js";import{NormalAttributeType as o}from"../attributes/NormalAttribute.glsl.js";import{VertexNormal as d}from"../attributes/VertexNormal.glsl.js";import{VertexPosition as a}from"../attributes/VertexPosition.glsl.js";import{NormalsDoubleSidedMode as i}from"./Normals.glsl.js";import{glsl as n}from"../../shaderModules/interfaces.js";function t(t,l){const s=t.fragment;switch(l.doubleSidedMode){case i.None:s.code.add(n`vec3 _adjustDoublesided(vec3 normal) {
6
6
  return normal;
7
- }`):l.doubleSidedMode===i.DoubleSidedMode.View?(n.include(d,l),t.uniforms.add("uTransform_ViewFromCameraLocal_T","vec3"),t.code.add(a`vec3 _adjustDoublesided(vec3 normal) {
8
- vec3 viewDir = vPositionWorldCameraRelative + uTransform_ViewFromCameraLocal_T;
9
- return dot(normal, viewDir) > 0.0 ? -normal : normal;
10
- }`)):l.doubleSidedMode===i.DoubleSidedMode.WindingOrder&&t.code.add(a`vec3 _adjustDoublesided(vec3 normal) {
7
+ }`);break;case i.View:t.include(a,l),s.code.add(n`vec3 _adjustDoublesided(vec3 normal) {
8
+ return dot(normal, vPositionWorldCameraRelative) > 0.0 ? -normal : normal;
9
+ }`);break;case i.WindingOrder:s.code.add(n`vec3 _adjustDoublesided(vec3 normal) {
11
10
  return gl_FrontFacing ? normal : -normal;
12
- }`),l.normalType===o.Type.Attribute||l.normalType===o.Type.CompressedAttribute?(n.include(r,l),t.code.add(a`vec3 shadingNormalWorld() {
11
+ }`);break;default:e(l.doubleSidedMode);case i.COUNT:}switch(l.normalType){case o.Attribute:case o.CompressedAttribute:t.include(d,l),s.code.add(n`vec3 shadingNormalWorld() {
13
12
  return _adjustDoublesided(normalize(vNormalWorld));
14
13
  }
15
14
  vec3 shadingNormal_view() {
16
15
  vec3 normal = normalize(vNormalView);
17
16
  return gl_FrontFacing ? normal : -normal;
18
- }`)):l.normalType===o.Type.ScreenDerivative?(n.extensions.add("GL_OES_standard_derivatives"),n.include(d,l),t.code.add(a`vec3 shadingNormalWorld() {
17
+ }`);break;case o.ScreenDerivative:t.extensions.add("GL_OES_standard_derivatives"),t.include(a,l),s.code.add(n`vec3 shadingNormalWorld() {
19
18
  return normalize(cross(
20
19
  dFdx(vPositionWorldCameraRelative),
21
20
  dFdy(vPositionWorldCameraRelative)
@@ -23,10 +22,10 @@ dFdy(vPositionWorldCameraRelative)
23
22
  }
24
23
  vec3 shadingNormal_view() {
25
24
  return normalize(cross(dFdx(vPosition_view),dFdy(vPosition_view)));
26
- }`)):l.normalType===o.Type.Ground&&(l.viewingMode===e.Global?(n.include(d,l),t.code.add(a`vec3 shadingNormalWorld() {
25
+ }`);break;case o.Ground:l.viewingMode===r.Global?(t.include(a,l),s.code.add(n`vec3 shadingNormalWorld() {
27
26
  return normalize(positionWorld());
28
- }`)):l.viewingMode===e.Local&&t.code.add(a`vec3 shadingNormalWorld() {
27
+ }`)):l.viewingMode===r.Local&&s.code.add(n`vec3 shadingNormalWorld() {
29
28
  return vec3(0.0, 0.0, 1.0);
30
- }`),n.extensions.add("GL_OES_standard_derivatives"),t.code.add(a`vec3 shadingNormal_view() {
29
+ }`),t.extensions.add("GL_OES_standard_derivatives"),s.code.add(n`vec3 shadingNormal_view() {
31
30
  return normalize(cross(dFdx(vPosition_view),dFdy(vPosition_view))).xyz;
32
- }`))}export{n as ComputeShadingNormal};
31
+ }`);break;default:e(l.normalType);case o.COUNT:}}export{t as ComputeShadingNormal};
@@ -2,8 +2,8 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{RgbaFloatEncoding as e}from"../util/RgbaFloatEncoding.glsl.js";import{glsl as t}from"../../shaderModules/interfaces.js";function i(e,t){e.constants.add("stippleAlphaColorDiscard","float",.001),e.constants.add("stippleAlphaHighlightDiscard","float",.5),t.stippleEnabled?r(e,t):o(e)}function r(i,r){const o=!(r.draped&&r.stipplePreferContinuous);i.fragment.include(e),i.vertex.uniforms.add("stipplePatternPixelSize","float"),i.vertex.uniforms.add("pixelRatio","float"),r.draped?i.vertex.uniforms.add("worldToScreenRatio","float"):(i.vertex.uniforms.add("worldToScreenPerDistanceRatio","float"),i.vertex.uniforms.add("camPos","vec3"),i.vertex.code.add(t`float computeWorldToScreenRatio(vec3 segmentCenter) {
6
- float segmentDistanceToCamera = length(segmentCenter - camPos);
5
+ import{RgbaFloatEncoding as e}from"../util/RgbaFloatEncoding.glsl.js";import{glsl as t}from"../../shaderModules/interfaces.js";function i(e,t){e.constants.add("stippleAlphaColorDiscard","float",.001),e.constants.add("stippleAlphaHighlightDiscard","float",.5),t.stippleEnabled?r(e,t):o(e)}function r(i,r){const o=!(r.draped&&r.stipplePreferContinuous);i.fragment.include(e),i.vertex.uniforms.add("stipplePatternPixelSize","float"),i.vertex.uniforms.add("pixelRatio","float"),r.draped?i.vertex.uniforms.add("worldToScreenRatio","float"):(i.vertex.uniforms.add("worldToScreenPerDistanceRatio","float"),i.vertex.uniforms.add("cameraPosition","vec3"),i.vertex.code.add(t`float computeWorldToScreenRatio(vec3 segmentCenter) {
6
+ float segmentDistanceToCamera = length(segmentCenter - cameraPosition);
7
7
  return worldToScreenPerDistanceRatio / segmentDistanceToCamera;
8
8
  }`)),i.varyings.add("vStippleDistance","float"),r.stippleRequiresClamp&&i.varyings.add("vStippleDistanceLimits","vec2"),r.stippleRequiresStretchMeasure&&i.varyings.add("vStipplePatternStretch","float"),i.vertex.code.add(t`
9
9
  float discretizeWorldToScreenRatio(float worldToScreenRatio) {
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{glsl as t}from"../../shaderModules/interfaces.js";function r(r){r.include(e),r.uniforms.add("geometryDepthTexture","sampler2D"),r.uniforms.add("cameraNearFar","vec2"),r.code.add(t`bool geometryDepthTest(vec2 pos, float elementDepth) {
6
- float geometryDepth = linearDepthFromTexture(geometryDepthTexture, pos, cameraNearFar);
5
+ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{glsl as t}from"../../shaderModules/interfaces.js";function r(r){r.include(e),r.uniforms.add("geometryDepthTexture","sampler2D"),r.uniforms.add("nearFar","vec2"),r.code.add(t`bool geometryDepthTest(vec2 pos, float elementDepth) {
6
+ float geometryDepth = linearDepthFromTexture(geometryDepthTexture, pos, nearFar);
7
7
  return (elementDepth < (geometryDepth - 1.0));
8
8
  }`)}function o(e,t){t.multipassGeometryEnabled&&t.geometryLinearDepthTexture&&e.bindTexture(t.geometryLinearDepthTexture,"geometryDepthTexture")}export{o as bindMultipassGeometryTexture,r as multipassGeometryTest};
@@ -2,11 +2,11 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as e}from"../../shaderModules/interfaces.js";function r(r,t){r.fragment.uniforms.add("terrainDepthTexture","sampler2D"),r.fragment.uniforms.add("cameraNearFar","vec2"),r.fragment.uniforms.add("inverseViewport","vec2"),r.fragment.code.add(e`
5
+ import{glsl as e}from"../../shaderModules/interfaces.js";function r(r,t){r.fragment.uniforms.add("terrainDepthTexture","sampler2D"),r.fragment.uniforms.add("nearFar","vec2"),r.fragment.uniforms.add("inverseViewport","vec2"),r.fragment.code.add(e`
6
6
  // Compare the linearized depths of fragment and terrain. Discard fragments on the wrong side of the terrain.
7
7
  void terrainDepthTest(vec4 fragCoord, float fragmentDepth){
8
8
 
9
- float terrainDepth = linearDepthFromTexture(terrainDepthTexture, fragCoord.xy * inverseViewport, cameraNearFar);
9
+ float terrainDepth = linearDepthFromTexture(terrainDepthTexture, fragCoord.xy * inverseViewport, nearFar);
10
10
  if(fragmentDepth ${t.cullAboveGround?">":"<="} terrainDepth){
11
11
  discard;
12
12
  }
@@ -2,13 +2,13 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as e}from"../../shaderModules/interfaces.js";function a(r,d){const o=r.fragment;o.code.add(e`struct ShadingNormalParameters {
5
+ import{neverReached as a}from"../../../../../../core/compilerUtils.js";import{glsl as r}from"../../shaderModules/interfaces.js";function e(e,o){const n=e.fragment;switch(n.code.add(r`struct ShadingNormalParameters {
6
6
  vec3 normalView;
7
7
  vec3 viewDirection;
8
- } shadingParams;`),d.doubleSidedMode===a.DoubleSidedMode.View?o.code.add(e`vec3 shadingNormal(ShadingNormalParameters params) {
8
+ } shadingParams;`),o.doubleSidedMode){case i.None:n.code.add(r`vec3 shadingNormal(ShadingNormalParameters params) {
9
+ return normalize(params.normalView);
10
+ }`);break;case i.View:n.code.add(r`vec3 shadingNormal(ShadingNormalParameters params) {
9
11
  return dot(params.normalView, params.viewDirection) > 0.0 ? normalize(-params.normalView) : normalize(params.normalView);
10
- }`):d.doubleSidedMode===a.DoubleSidedMode.WindingOrder?o.code.add(e`vec3 shadingNormal(ShadingNormalParameters params) {
12
+ }`);break;case i.WindingOrder:n.code.add(r`vec3 shadingNormal(ShadingNormalParameters params) {
11
13
  return gl_FrontFacing ? normalize(params.normalView) : normalize(-params.normalView);
12
- }`):o.code.add(e`vec3 shadingNormal(ShadingNormalParameters params) {
13
- return normalize(params.normalView);
14
- }`)}!function(e){var a;(a=e.DoubleSidedMode||(e.DoubleSidedMode={}))[a.None=0]="None",a[a.View=1]="View",a[a.WindingOrder=2]="WindingOrder",a[a.COUNT=3]="COUNT"}(a||(a={}));export{a as Normals};
14
+ }`);break;default:a(o.doubleSidedMode);case i.COUNT:}}var i;!function(a){a[a.None=0]="None",a[a.View=1]="View",a[a.WindingOrder=2]="WindingOrder",a[a.COUNT=3]="COUNT"}(i||(i={}));export{e as Normals,i as NormalsDoubleSidedMode};
@@ -2,13 +2,13 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{TextureCoordinateAttribute as e}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexTextureCoordinates as r}from"../attributes/VertexTextureCoordinates.glsl.js";import{TextureAtlasLookup as t}from"../util/TextureAtlasLookup.glsl.js";import{glsl as o}from"../../shaderModules/interfaces.js";function u(u,a){const s=u.fragment;a.baseColorTexture?(u.include(r,a),s.uniforms.add("uBaseColorTexture","sampler2D"),s.uniforms.add("uBaseColorTextureSize","vec2"),a.attributeTextureCoordinates===e.AttributeType.Atlas?(u.include(t),s.code.add(o`vec4 readBaseColorTexture() {
5
+ import{TextureCoordinateAttributeType as e}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexTextureCoordinates as r}from"../attributes/VertexTextureCoordinates.glsl.js";import{TextureAtlasLookup as t}from"../util/TextureAtlasLookup.glsl.js";import{glsl as o}from"../../shaderModules/interfaces.js";function u(u,a){const s=u.fragment;a.baseColorTexture?(u.include(r,a),s.uniforms.add("baseColorTexture","sampler2D"),s.uniforms.add("baseColorTextureSize","vec2"),a.attributeTextureCoordinates===e.Atlas?(u.include(t),s.code.add(o`vec4 readBaseColorTexture() {
6
6
  return textureAtlasLookup(
7
- uBaseColorTexture,
8
- uBaseColorTextureSize,
7
+ baseColorTexture,
8
+ baseColorTextureSize,
9
9
  vuv0,
10
10
  vuvRegion
11
11
  );
12
12
  }`)):s.code.add(o`vec4 readBaseColorTexture() {
13
- return texture2D(uBaseColorTexture, vuv0);
13
+ return texture2D(baseColorTexture, vuv0);
14
14
  }`)):s.code.add(o`vec4 readBaseColorTexture() { return vec4(1.0); }`)}export{u as ReadBaseColorTexture};
@@ -2,11 +2,11 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{RgbaFloatEncoding as a}from"../util/RgbaFloatEncoding.glsl.js";import{glsl as e}from"../../shaderModules/interfaces.js";function t(t){t.fragment.include(a),t.fragment.uniforms.add("uShadowMapTex","sampler2D"),t.fragment.uniforms.add("uShadowMapNum","int"),t.fragment.uniforms.add("uShadowMapDistance","vec4"),t.fragment.uniforms.add("uShadowMapMatrix","mat4",4),t.fragment.uniforms.add("uDepthHalfPixelSz","float"),t.fragment.code.add(e`int chooseCascade(float _linearDepth, out mat4 mat) {
6
- vec4 distance = uShadowMapDistance;
5
+ import{RgbaFloatEncoding as e}from"../util/RgbaFloatEncoding.glsl.js";import{glsl as a}from"../../shaderModules/interfaces.js";function t(t){t.fragment.include(e),t.fragment.uniforms.add("shadowMapTex","sampler2D"),t.fragment.uniforms.add("numCascades","int"),t.fragment.uniforms.add("cascadeDistances","vec4"),t.fragment.uniforms.add("shadowMapMatrix","mat4",4),t.fragment.uniforms.add("depthHalfPixelSz","float"),t.fragment.code.add(a`int chooseCascade(float _linearDepth, out mat4 mat) {
6
+ vec4 distance = cascadeDistances;
7
7
  float depth = _linearDepth;
8
8
  int i = depth < distance[1] ? 0 : depth < distance[2] ? 1 : depth < distance[3] ? 2 : 3;
9
- mat = i == 0 ? uShadowMapMatrix[0] : i == 1 ? uShadowMapMatrix[1] : i == 2 ? uShadowMapMatrix[2] : uShadowMapMatrix[3];
9
+ mat = i == 0 ? shadowMapMatrix[0] : i == 1 ? shadowMapMatrix[1] : i == 2 ? shadowMapMatrix[2] : shadowMapMatrix[3];
10
10
  return i;
11
11
  }
12
12
  vec3 lightSpacePosition(vec3 _vpos, mat4 mat) {
@@ -35,10 +35,10 @@ return mix(mix(s00, s10, st.x), mix(s01, s11, st.x), st.y);
35
35
  float readShadowMap(const in vec3 _vpos, float _linearDepth) {
36
36
  mat4 mat;
37
37
  int i = chooseCascade(_linearDepth, mat);
38
- if (i >= uShadowMapNum) { return 0.0; }
38
+ if (i >= numCascades) { return 0.0; }
39
39
  vec3 lvpos = lightSpacePosition(_vpos, mat);
40
40
  if (lvpos.z >= 1.0) { return 0.0; }
41
41
  if (lvpos.x < 0.0 || lvpos.x > 1.0 || lvpos.y < 0.0 || lvpos.y > 1.0) { return 0.0; }
42
42
  vec2 uv = cascadeCoordinates(i, lvpos);
43
- return filterShadow(uv, lvpos, uDepthHalfPixelSz, uShadowMapTex);
44
- }`)}function o(a,e){e.shadowMappingEnabled&&(e.shadowMap.bind(a),e.shadowMap.bindView(a,e.origin))}function i(a,e,t){e.shadowMappingEnabled&&e.shadowMap.bindView(a,t)}function l(a,e){e.shadowMappingEnabled&&e.shadowMap.bindView(a,e.origin)}export{t as ReadShadowMap,o as bindReadShadowMapUniforms,l as bindReadShadowMapView,i as bindReadShadowMapViewCustomOrigin};
43
+ return filterShadow(uv, lvpos, depthHalfPixelSz, shadowMapTex);
44
+ }`)}function i(e,a){a.shadowMappingEnabled&&(a.shadowMap.bind(e),a.shadowMap.bindView(e,a.origin))}function o(e,a,t){a.shadowMappingEnabled&&a.shadowMap.bindView(e,t)}function s(e,a){a.shadowMappingEnabled&&a.shadowMap.bindView(e,a.origin)}export{t as ReadShadowMap,i as bindReadShadowMapUniforms,s as bindReadShadowMapView,o as bindReadShadowMapViewCustomOrigin};
@@ -2,10 +2,10 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as r}from"../../shaderModules/interfaces.js";function o(o){o.fragment.uniforms.add("lastFrameColorMap","sampler2D"),o.fragment.uniforms.add("reprojectionMat","mat4"),o.fragment.uniforms.add("rpProjectionMat","mat4"),o.fragment.code.add(r`vec2 reprojectionCoordinate(vec3 projectionCoordinate)
5
+ import{glsl as r}from"../../shaderModules/interfaces.js";function o(o){o.fragment.uniforms.add("lastFrameColorMap","sampler2D"),o.fragment.uniforms.add("reprojectionMatrix","mat4"),o.fragment.uniforms.add("proj","mat4"),o.fragment.code.add(r`vec2 reprojectionCoordinate(vec3 projectionCoordinate)
6
6
  {
7
- vec4 zw = rpProjectionMat * vec4(0.0, 0.0, -projectionCoordinate.z, 1.0);
8
- vec4 reprojectedCoord = reprojectionMat * vec4(zw.w * (projectionCoordinate.xy * 2.0 - 1.0), zw.z, zw.w);
7
+ vec4 zw = proj * vec4(0.0, 0.0, -projectionCoordinate.z, 1.0);
8
+ vec4 reprojectedCoord = reprojectionMatrix * vec4(zw.w * (projectionCoordinate.xy * 2.0 - 1.0), zw.z, zw.w);
9
9
  reprojectedCoord.xy /= reprojectedCoord.w;
10
10
  return reprojectedCoord.xy * 0.5 + 0.5;
11
- }`)}function e(r,o){r.bindTexture(o.lastFrameColorTexture,"lastFrameColorMap"),r.setUniformMatrix4fv("reprojectionMat",o.reprojectionMatrix),r.setUniformMatrix4fv("rpProjectionMat",o.camera.projectionMatrix)}export{o as Reprojection,e as bindReprojectionUniforms};
11
+ }`)}function e(r,o){r.bindTexture(o.lastFrameColorTexture,"lastFrameColorMap"),r.setUniformMatrix4fv("reprojectionMatrix",o.reprojectionMatrix),r.setUniformMatrix4fv("proj",o.camera.projectionMatrix)}export{o as Reprojection,e as bindReprojectionUniforms};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{Reprojection as t,bindReprojectionUniforms as o}from"./Reprojection.glsl.js";import{glsl as r}from"../../shaderModules/interfaces.js";function a(o,a){o.fragment.uniforms.add("nearFar","vec2"),o.fragment.uniforms.add("depthMapView","sampler2D"),o.fragment.uniforms.add("ssrViewMat","mat4"),o.fragment.uniforms.add("invResolutionHeight","float"),o.fragment.include(e),o.include(t),o.fragment.code.add(r`
5
+ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{Reprojection as t,bindReprojectionUniforms as o}from"./Reprojection.glsl.js";import{glsl as r}from"../../shaderModules/interfaces.js";function a(o,a){o.fragment.uniforms.add("nearFar","vec2"),o.fragment.uniforms.add("depthMapView","sampler2D"),o.fragment.uniforms.add("view","mat4"),o.fragment.uniforms.add("invResolutionHeight","float"),o.fragment.include(e),o.include(t),o.fragment.code.add(r`
6
6
  const int maxSteps = ${a.highStepCount?"150;":"75;"}
7
7
 
8
8
  vec4 applyProjectionMat(mat4 projectionMat, vec3 x)
@@ -19,17 +19,17 @@ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{Repro
19
19
  vec3 viewPosEnd = startPosition;
20
20
 
21
21
  // Project the start position to the screen
22
- vec4 projectedCoordStart = applyProjectionMat(rpProjectionMat, viewPos);
22
+ vec4 projectedCoordStart = applyProjectionMat(proj, viewPos);
23
23
  vec3 Q0 = viewPos / projectedCoordStart.w; // homogeneous camera space
24
24
  float k0 = 1.0/ projectedCoordStart.w;
25
25
 
26
26
  // advance the position in the direction of the reflection
27
27
  viewPos += dir;
28
28
 
29
- vec4 projectedCoordVanishingPoint = applyProjectionMat(rpProjectionMat, dir);
29
+ vec4 projectedCoordVanishingPoint = applyProjectionMat(proj, dir);
30
30
 
31
31
  // Project the advanced position to the screen
32
- vec4 projectedCoordEnd = applyProjectionMat(rpProjectionMat, viewPos);
32
+ vec4 projectedCoordEnd = applyProjectionMat(proj, viewPos);
33
33
  vec3 Q1 = viewPos / projectedCoordEnd.w; // homogeneous camera space
34
34
  float k1 = 1.0/ projectedCoordEnd.w;
35
35
 
@@ -101,4 +101,4 @@ import{ReadLinearDepth as e}from"../output/ReadLinearDepth.glsl.js";import{Repro
101
101
  }
102
102
  return vec3(P, 0.0);
103
103
  }
104
- `)}function i(e,t){t.ssrEnabled&&(e.bindTexture(t.linearDepthTexture,"depthMapView"),e.setUniform2fv("nearFar",t.camera.nearFar),e.setUniformMatrix4fv("ssrViewMat",t.camera.viewMatrix),e.setUniform1f("invResolutionHeight",1/t.camera.height),o(e,t))}export{a as ScreenSpaceReflections,i as bindSSRUniforms};
104
+ `)}function i(e,t){t.ssrEnabled&&(e.bindTexture(t.linearDepthTexture,"depthMapView"),e.setUniform2fv("nearFar",t.camera.nearFar),e.setUniformMatrix4fv("view",t.camera.viewMatrix),e.setUniform1f("invResolutionHeight",1/t.camera.height),o(e,t))}export{a as ScreenSpaceReflections,i as bindSSRUniforms};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as v}from"../../shaderModules/interfaces.js";import{VertexAttribute as e}from"../../../lib/basicInterfaces.js";function o(o,r){r.vvInstancingEnabled&&(r.vvSize||r.vvColor)&&o.attributes.add(e.INSTANCEFEATUREATTRIBUTE,"vec4"),r.vvSize?(o.vertex.uniforms.add("vvSizeMinSize","vec3"),o.vertex.uniforms.add("vvSizeMaxSize","vec3"),o.vertex.uniforms.add("vvSizeOffset","vec3"),o.vertex.uniforms.add("vvSizeFactor","vec3"),o.vertex.uniforms.add("vvSymbolRotationMatrix","mat3"),o.vertex.uniforms.add("vvSymbolAnchor","vec3"),o.vertex.code.add(v`vec3 vvScale(vec4 _featureAttribute) {
5
+ import{glsl as v}from"../../shaderModules/interfaces.js";import{VertexAttribute as e}from"../../../lib/VertexAttribute.js";function o(o,r){r.vvInstancingEnabled&&(r.vvSize||r.vvColor)&&o.attributes.add(e.INSTANCEFEATUREATTRIBUTE,"vec4"),r.vvSize?(o.vertex.uniforms.add("vvSizeMinSize","vec3"),o.vertex.uniforms.add("vvSizeMaxSize","vec3"),o.vertex.uniforms.add("vvSizeOffset","vec3"),o.vertex.uniforms.add("vvSizeFactor","vec3"),o.vertex.uniforms.add("vvSymbolRotationMatrix","mat3"),o.vertex.uniforms.add("vvSymbolAnchor","vec3"),o.vertex.code.add(v`vec3 vvScale(vec4 _featureAttribute) {
6
6
  return clamp(vvSizeOffset + _featureAttribute.x * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize);
7
7
  }
8
8
  vec4 vvTransformPosition(vec3 position, vec4 _featureAttribute) {
@@ -2,11 +2,11 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{FoamColor as e}from"./FoamRendering.glsl.js";import{Gamma as o}from"./Gamma.glsl.js";import{PhysicallyBasedRendering as r}from"./PhysicallyBasedRendering.glsl.js";import{ScreenSpaceReflections as t}from"./ScreenSpaceReflections.glsl.js";import{CloudsParallaxShading as i}from"../util/CloudsParallaxShading.glsl.js";import{glsl as a}from"../../shaderModules/interfaces.js";function l(l,n){l.include(r,n),l.include(o),l.include(e),n.cloudsReflectionsEnable&&l.include(i),n.ssrEnabled&&l.include(t,n),l.fragment.constants.add("fresnelSky","vec3",[.02,1,15]).add("fresnelMaterial","vec2",[.02,.1]).add("roughness","float",.015).add("foamIntensityExternal","float",1.7).add("ssrIntensity","float",.65).add("ssrHeightFadeStart","float",3e5).add("ssrHeightFadeEnd","float",5e5).add("waterDiffusion","float",.92).add("waterSeeColorMod","float",.8).add("correctionViewingPowerFactor","float",.4).add("skyZenitColor","vec3",[.52,.68,.9]).add("skyColor","vec3",[.67,.79,.9]).add("cloudFresnelModifier","vec2",[1.2,.01]),l.fragment.code.add(a`PBRShadingWater shadingInfo;
5
+ import{FoamColor as e}from"./FoamRendering.glsl.js";import{Gamma as o}from"./Gamma.glsl.js";import{PhysicallyBasedRendering as r}from"./PhysicallyBasedRendering.glsl.js";import{ScreenSpaceReflections as t}from"./ScreenSpaceReflections.glsl.js";import{CloudsParallaxShading as i}from"../util/CloudsParallaxShading.glsl.js";import{glsl as l}from"../../shaderModules/interfaces.js";function a(a,d){a.include(r,d),a.include(o),a.include(e),d.cloudsReflectionsEnabled&&a.include(i),d.ssrEnabled&&a.include(t,d),a.fragment.constants.add("fresnelSky","vec3",[.02,1,15]).add("fresnelMaterial","vec2",[.02,.1]).add("roughness","float",.015).add("foamIntensityExternal","float",1.7).add("ssrIntensity","float",.65).add("ssrHeightFadeStart","float",3e5).add("ssrHeightFadeEnd","float",5e5).add("waterDiffusion","float",.92).add("waterSeeColorMod","float",.8).add("correctionViewingPowerFactor","float",.4).add("skyZenitColor","vec3",[.52,.68,.9]).add("skyColor","vec3",[.67,.79,.9]).add("cloudFresnelModifier","vec2",[1.2,.01]),a.fragment.code.add(l`PBRShadingWater shadingInfo;
6
6
  vec3 getSkyGradientColor(in float cosTheta, in vec3 horizon, in vec3 zenit) {
7
7
  float exponent = pow((1.0 - cosTheta), fresnelSky[2]);
8
8
  return mix(zenit, horizon, exponent);
9
- }`),l.fragment.code.add(a`vec3 getSeaColor(in vec3 n, in vec3 v, in vec3 l, vec3 color, in vec3 lightIntensity, in vec3 localUp, in float shadow, float foamIntensity, vec3 positionView, vec3 position) {
9
+ }`),a.fragment.code.add(l`vec3 getSeaColor(in vec3 n, in vec3 v, in vec3 l, vec3 color, in vec3 lightIntensity, in vec3 localUp, in float shadow, float foamIntensity, vec3 positionView, vec3 position) {
10
10
  float reflectionHit = 0.0;
11
11
  float reflectionHitDiffused = 0.0;
12
12
  vec3 seaWaterColor = linearizeGamma(color);
@@ -40,14 +40,14 @@ foam = foamIntensity2FoamColor(foamIntensityExternal, foamIntensity, skyZenitCol
40
40
  }
41
41
  float correctionViewingFactor = pow(max(dot(v, localUp), 0.0), correctionViewingPowerFactor);
42
42
  vec3 normalCorrectedClouds = mix(localUp, n, correctionViewingFactor);
43
- vec3 reflectedWorld = normalize(reflect(-v, normalCorrectedClouds));`),n.cloudsReflectionsEnable&&l.fragment.code.add(a`vec4 cloudsColor = crossFade == 0 ? renderCloud(reflectedWorld, position) : renderCloudCrossFade(reflectedWorld, position);
43
+ vec3 reflectedWorld = normalize(reflect(-v, normalCorrectedClouds));`),d.cloudsReflectionsEnabled&&a.fragment.code.add(l`vec4 cloudsColor = crossFade == 0 ? renderCloud(reflectedWorld, position) : renderCloudCrossFade(reflectedWorld, position);
44
44
  cloudsColor.a = 1.0 - cloudsColor.a;
45
45
  cloudsColor = pow(cloudsColor, vec4(GAMMA));
46
- cloudsColor *= clamp(fresnelModifier.y*cloudFresnelModifier[0] - cloudFresnelModifier[1], 0.0, 1.0) * (1.0 - totalFadeInOut);`),n.ssrEnabled?l.fragment.code.add(a`vec4 viewPosition = vec4(positionView.xyz, 1.0);
46
+ cloudsColor *= clamp(fresnelModifier.y*cloudFresnelModifier[0] - cloudFresnelModifier[1], 0.0, 1.0) * (1.0 - totalFadeInOut);`),d.ssrEnabled?a.fragment.code.add(l`vec4 viewPosition = vec4(positionView.xyz, 1.0);
47
47
  vec3 viewDir = normalize(viewPosition.xyz);
48
- vec4 viewNormalVectorCoordinate = ssrViewMat *vec4(n, 0.0);
48
+ vec4 viewNormalVectorCoordinate = view *vec4(n, 0.0);
49
49
  vec3 viewNormal = normalize(viewNormalVectorCoordinate.xyz);
50
- vec4 viewUp = ssrViewMat *vec4(localUp, 0.0);
50
+ vec4 viewUp = view *vec4(localUp, 0.0);
51
51
  vec3 viewNormalCorrectedSSR = mix(viewUp.xyz, viewNormal, correctionViewingFactor);
52
52
  vec3 reflected = normalize(reflect(viewDir, viewNormalCorrectedSSR));
53
53
  vec3 hitCoordinate = screenSpaceIntersection( normalize(reflected), viewPosition.xyz, viewDir, viewUp.xyz);
@@ -62,7 +62,7 @@ reflectionHitDiffused = waterDiffusion * reflectionHit;
62
62
  reflectedColor = linearizeGamma(texture2D(lastFrameColorMap, reprojectedCoordinate).xyz)* reflectionHitDiffused * fresnelModifier.y * ssrIntensity;
63
63
  }
64
64
  float seeColorMod = mix(waterSeeColorMod, waterSeeColorMod*0.5, reflectionHitDiffused);
65
- vec3 waterRenderedColor = tonemapACES((1.0 - reflectionHitDiffused) * reflSky + reflectedColor + reflSea * seeColorMod + specular + foam);`):l.fragment.code.add(a`vec3 waterRenderedColor = tonemapACES(reflSky + reflSea * waterSeeColorMod + specular + foam);`),n.cloudsReflectionsEnable?n.ssrEnabled?l.fragment.code.add(a`return waterRenderedColor * (1.0 - (1.0 - reflectionHit) * cloudsColor.a) + (1.0 - reflectionHit) * cloudsColor.xyz;
66
- }`):l.fragment.code.add(a`return waterRenderedColor * (1.0 - cloudsColor.a) + cloudsColor.xyz;
67
- }`):l.fragment.code.add(a`return waterRenderedColor;
68
- }`)}export{l as Water};
65
+ vec3 waterRenderedColor = tonemapACES((1.0 - reflectionHitDiffused) * reflSky + reflectedColor + reflSea * seeColorMod + specular + foam);`):a.fragment.code.add(l`vec3 waterRenderedColor = tonemapACES(reflSky + reflSea * waterSeeColorMod + specular + foam);`),d.cloudsReflectionsEnabled?d.ssrEnabled?a.fragment.code.add(l`return waterRenderedColor * (1.0 - (1.0 - reflectionHit) * cloudsColor.a) + (1.0 - reflectionHit) * cloudsColor.xyz;
66
+ }`):a.fragment.code.add(l`return waterRenderedColor * (1.0 - cloudsColor.a) + cloudsColor.xyz;
67
+ }`):a.fragment.code.add(l`return waterRenderedColor;
68
+ }`)}export{a as Water};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import"../ShaderOutputOptions.js";import"../Slice.glsl.js";import"../Transform.glsl.js";import"../attributes/VertexTangent.glsl.js";import"../output/OutputDepth.glsl.js";import"../output/OutputHighlight.glsl.js";import"../shading/EvaluateSceneLighting.glsl.js";import"../shading/NormalUtils.glsl.js";import"../shading/PhysicallyBasedRenderingParameters.glsl.js";import"./Overlay.glsl.js";import"./Skirts.glsl.js";import"./TerrainTexture.glsl.js";import"../util/HeaderComment.glsl.js";import"../../shaderModules/interfaces.js";import"../../shaderModules/ShaderBuilder.js";import"../../../lib/basicInterfaces.js";export{b as build}from"../../../../../../chunks/Terrain.glsl.js";
5
+ import"../ShaderOutputOptions.js";import"../Slice.glsl.js";import"../Transform.glsl.js";import"../attributes/VertexTangent.glsl.js";import"../output/OutputDepth.glsl.js";import"../output/OutputHighlight.glsl.js";import"../shading/EvaluateSceneLighting.glsl.js";import"../shading/NormalUtils.glsl.js";import"../shading/PhysicallyBasedRenderingParameters.glsl.js";import"./Overlay.glsl.js";import"./Skirts.glsl.js";import"./TerrainTexture.glsl.js";import"../util/HeaderComment.glsl.js";import"../../shaderModules/interfaces.js";import"../../shaderModules/ShaderBuilder.js";import"../../../lib/VertexAttribute.js";export{b as build}from"../../../../../../chunks/Terrain.glsl.js";
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import"../../shaderModules/interfaces.js";import"../../shaderModules/ShaderBuilder.js";import"../../../lib/basicInterfaces.js";export{b as build}from"../../../../../../chunks/BlendLayers.glsl.js";
5
+ import"../../shaderModules/interfaces.js";import"../../shaderModules/ShaderBuilder.js";import"../../../lib/VertexAttribute.js";export{b as build}from"../../../../../../chunks/BlendLayers.glsl.js";
@@ -2,16 +2,16 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{glsl as o}from"../../shaderModules/interfaces.js";function t(t){t.fragment.uniforms.add("anchorPosition","vec3").add("anchorPositionCrossFade","vec3").add("fadeInOutFactor","float").add("cloudsHeight","float").add("rotationMatrixClouds","mat4").add("rotationMatrixCloudsCrossFade","mat4").add("radiusCurvatureCorrectionFactor","float").add("radius","float").add("cameraPosition","vec3").add("totalFadeInOut","float").add("crossFade","int").add("crossFadeAnchorFactor","float").add("cloudVariables","vec2").add("cubeMap","samplerCube"),t.fragment.code.add(o`vec3 intersectWithCloudLayer(vec3 dir, vec3 camPos, vec3 spherePos, float radiusReduction)
5
+ import{glsl as o}from"../../shaderModules/interfaces.js";function t(t){t.fragment.uniforms.add("anchorPosition","vec3").add("anchorPositionCrossFade","vec3").add("fadeInOutFactor","float").add("cloudsHeight","float").add("rotationMatrixClouds","mat4").add("rotationMatrixCloudsCrossFade","mat4").add("radiusCurvatureCorrectionFactor","float").add("radius","float").add("cameraPosition","vec3").add("totalFadeInOut","float").add("crossFade","int").add("crossFadeAnchorFactor","float").add("cloudVariables","vec2").add("cubeMap","samplerCube"),t.fragment.code.add(o`vec3 intersectWithCloudLayer(vec3 dir, vec3 cameraPosition, vec3 spherePos, float radiusReduction)
6
6
  {
7
7
  vec3 dirAnchor = normalize(spherePos);
8
8
  vec3 sphereOriginOffset = dirAnchor * radiusReduction;
9
9
  float radiusClouds = radius + cloudsHeight - radiusReduction;
10
- float B = 2.0 * dot(camPos - sphereOriginOffset, dir);
11
- float C = dot(camPos - sphereOriginOffset, camPos - sphereOriginOffset) - radiusClouds * radiusClouds;
10
+ float B = 2.0 * dot(cameraPosition - sphereOriginOffset, dir);
11
+ float C = dot(cameraPosition - sphereOriginOffset, cameraPosition - sphereOriginOffset) - radiusClouds * radiusClouds;
12
12
  float det = B * B - 4.0 * C;
13
13
  float pointIntDist = max(0.0, 0.5 *(-B + sqrt(det)));
14
- vec3 intersectionPont = camPos + dir * pointIntDist;
14
+ vec3 intersectionPont = cameraPosition + dir * pointIntDist;
15
15
  intersectionPont = intersectionPont - spherePos;
16
16
  return intersectionPont;
17
17
  }`),t.fragment.code.add(o`vec3 correctForPlanetCurvature(vec3 dir)
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{j as i}from"../../../../../../chunks/mat4.js";import{c as n}from"../../../../../../chunks/mat4f32.js";function o(i,n,o){i.setUniform3f("camPos",o[3]-n[0],o[7]-n[1],o[11]-n[2])}function r(i,n){i.setUniformMatrix4fv("proj",n)}function t(i,n){i.setUniform2fv("nearFar",n)}function f(n,o,r){i(c,r,o),n.setUniform3fv("localOrigin",o),n.setUniformMatrix4fv("view",c)}function a(i,n){f(i,n.origin,n.camera.viewMatrix)}function m(i,n){i.setUniform4fv("viewport",n.camera.fullViewport)}const c=n();export{o as bindCameraPosition,t as bindNearFar,r as bindProjectionMatrix,a as bindView,f as bindViewCustomOrigin,m as bindViewport};
5
+ import{j as i}from"../../../../../../chunks/mat4.js";import{c as o}from"../../../../../../chunks/mat4f32.js";function t(i,o,t){i.setUniform3f("cameraPosition",t[3]-o[0],t[7]-o[1],t[11]-o[2])}function n(i,o){i.setUniformMatrix4fv("proj",o)}function r(o,t,n){i(m,n,t),o.setUniform3fv("localOrigin",t),o.setUniformMatrix4fv("view",m)}function f(i,o){r(i,o.origin,o.camera.viewMatrix)}function a(i,o){i.setUniform4fv("viewport",o.camera.fullViewport)}const m=o();export{t as bindCameraPosition,n as bindProjectionMatrix,f as bindView,r as bindViewCustomOrigin,a as bindViewport};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import t from"../../../../core/Logger.js";import{lerp as i}from"../../../../core/mathUtils.js";import{isSome as e}from"../../../../core/maybe.js";import{createScreenPointArray as r,createRenderScreenPointArray3 as s}from"../../../../core/screenUtils.js";import{c as h,m as o,l as n,a,t as _,n as p}from"../../../../chunks/mat4.js";import{c as u}from"../../../../chunks/mat4f64.js";import{c as v,e as c}from"../../../../chunks/vec2.js";import{f as w}from"../../../../chunks/vec2f64.js";import{g as d,f as l,i as g,k as y,v as m,d as f,w as x,x as D,a as M,l as T,s as j,c as R,n as F,r as P}from"../../../../chunks/vec3.js";import{c as O,a as V,f as I}from"../../../../chunks/vec3f64.js";import{c as S,g as E,i as L,t as b}from"../../../../chunks/vec4.js";import{f as H,c as k}from"../../../../chunks/vec4f64.js";import{create as B,copy as G,fromMatrix as U}from"../../../../geometry/support/frustum.js";import{create as A}from"../../../../geometry/support/ray.js";import{projectPointSignedLength as C}from"../../../../geometry/support/vector.js";import{ViewingMode as z}from"../../../ViewingMode.js";import{fovd2fovx as W,fovx2fovd as X,fovd2fovy as Y,fovy2fovd as q}from"./Util.js";const N=t.getLogger("esri.views.3d.webgl-engine.lib.Camera");class J{constructor(t=null,i=null,r=null){this._viewUp=O(),this._viewForward=O(),this._viewRight=O(),this._ray=A(),this._viewport=H(0,0,1,1),this._padding=H(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=w(1,1e3),this._viewDirty=!0,this._viewMatrix=u(),this._projectionDirty=!0,this._projectionMatrix=u(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=u(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=u(),this._frustumDirty=!0,this._frustum=B(),this._fullViewport=k(),this.pixelRatio=1,this.relativeElevation=0,e(t)&&d(this._ray.origin,t),this._center=e(i)?V(i):O(),this._up=e(r)?V(r):I(0,0,1)}get eye(){return this._ray.origin}set eye(t){this._compareAndSetView(t,this._ray.origin)}get center(){return this._center}set center(t){this._compareAndSetView(t,this._center)}get ray(){return l(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(t){this._compareAndSetView(t,this._up)}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(t){h(this._viewMatrix,t),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get viewForward(){return this._ensureViewClean(),this._viewForward}get viewUp(){return this._ensureViewClean(),this._viewUp}get viewRight(){return this._ensureViewClean(),this._viewRight}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(t){this._nearFar[0]!==t&&(this._nearFar[0]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get far(){return this._nearFar[1]}set far(t){this._nearFar[1]!==t&&(this._nearFar[1]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewport(){return this._viewport}set viewport(t){this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]}get x(){return this._viewport[0]}set x(t){t+=this._padding[it.LEFT],this._viewport[0]!==t&&(this._viewport[0]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get y(){return this._viewport[1]}set y(t){t+=this._padding[it.BOTTOM],this._viewport[1]!==t&&(this._viewport[1]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get width(){return this._viewport[2]}set width(t){this._viewport[2]!==t&&(this._viewport[2]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get height(){return this._viewport[3]}set height(t){this._viewport[3]!==t&&(this._viewport[3]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get fullWidth(){return this._viewport[2]+this._padding[it.RIGHT]+this._padding[it.LEFT]}set fullWidth(t){this.width=t-(this._padding[it.RIGHT]+this._padding[it.LEFT])}get fullHeight(){return this._viewport[3]+this._padding[it.TOP]+this._padding[it.BOTTOM]}set fullHeight(t){this.height=t-(this._padding[it.TOP]+this._padding[it.BOTTOM])}get fullViewport(){return this._fullViewport[0]=this._viewport[0]-this._padding[it.LEFT],this._fullViewport[1]=this._viewport[1]-this._padding[it.BOTTOM],this._fullViewport[2]=this.fullWidth,this._fullViewport[3]=this.fullHeight,this._fullViewport}get aspect(){return this.width/this.height}get padding(){return this._padding}set padding(t){this._padding[it.TOP]===t[it.TOP]&&this._padding[it.RIGHT]===t[it.RIGHT]&&this._padding[it.BOTTOM]===t[it.BOTTOM]&&this._padding[it.LEFT]===t[it.LEFT]||(this._viewport[0]+=t[it.LEFT]-this._padding[it.LEFT],this._viewport[1]+=t[it.BOTTOM]-this._padding[it.BOTTOM],this._viewport[2]-=t[it.RIGHT]+t[it.LEFT]-(this._padding[it.RIGHT]+this._padding[it.LEFT]),this._viewport[3]-=t[it.TOP]+t[it.BOTTOM]-(this._padding[it.TOP]+this._padding[it.BOTTOM]),S(this._padding,t),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewProjectionMatrix(){return this._viewProjectionDirty&&(o(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),this._viewProjectionDirty=!1),this._viewProjectionMatrix}get projectionMatrix(){if(this._projectionDirty){const t=this.width,i=this.height,e=this.near*Math.tan(this.fovY/2),r=e*this.aspect;n(this._projectionMatrix,-r*(1+2*this._padding[it.LEFT]/t),r*(1+2*this._padding[it.RIGHT]/t),-e*(1+2*this._padding[it.BOTTOM]/i),e*(1+2*this._padding[it.TOP]/i),this.near,this.far),this._projectionDirty=!1}return this._projectionMatrix}set projectionMatrix(t){h(this._projectionMatrix,t),this._projectionDirty=!1,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fov(){return this._fov}set fov(t){this._fov=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return W(this._fov,this.width,this.height)}set fovX(t){this._fov=X(t,this.width,this.height),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return Y(this._fov,this.width,this.height)}set fovY(t){this._fov=q(t,this.width,this.height),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return g(this._center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&(a(this._viewInverseTransposeMatrix,this.viewMatrix),_(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(t){const i=2*t-1;return 2*this.near*this.far/(this.far+this.near-i*(this.far-this.near))}get perRenderPixelRatio(){return Math.tan(this.fovX/2)/(this.width/2)}get perScreenPixelRatio(){return this.perRenderPixelRatio*this.pixelRatio}get aboveGround(){return this.relativeElevation&&this.relativeElevation>=0}copyFrom(t){d(this._ray.origin,t.eye),d(this._center,t.center),d(this._up,t.up),S(this._viewport,t.viewport),S(this._padding,t.padding),v(this._nearFar,t.nearFar),this._fov=t.fov,this.relativeElevation=t.relativeElevation;const i=t;return this._viewDirty=i._viewDirty,this._viewDirty||(h(this._viewMatrix,t.viewMatrix),d(this._viewRight,t.viewRight),d(this._viewUp,t.viewUp),d(this._viewForward,t.viewForward)),i._projectionDirty?this._projectionDirty=!0:(h(this._projectionMatrix,t.projectionMatrix),this._projectionDirty=!1),this._viewProjectionDirty=!0,this._frustumDirty=i._frustumDirty,this._frustumDirty||(G(t.frustum,this._frustum),this._frustumDirty=!1),i._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:(h(this._viewInverseTransposeMatrix,t.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),S(this._fullViewport,t.fullViewport),this.pixelRatio=t.pixelRatio,this}copyViewFrom(t){this.eye=t.eye,this.center=t.center,this.up=t.up}clone(){return(new J).copyFrom(this)}equals(t){return y(this.eye,t.eye)&&y(this._center,t.center)&&y(this._up,t.up)&&E(this._viewport,t.viewport)&&E(this._padding,t.padding)&&c(this._nearFar,t.nearFar)&&this._fov===t.fov&&this.pixelRatio===t.pixelRatio&&this.relativeElevation===t.relativeElevation}almostEquals(t){if(this.pixelRatio!==t.pixelRatio||Math.abs(t.fov-this._fov)>=.001)return!1;const i=5e-4,e=1-1e-10;m(Z,t.eye,t.center),m($,this.eye,this._center);const r=f(Z,$),s=x(Z),h=x($);return r*r>=e*s*h&&D(t.eye,this.eye)<Math.max(s,h)*i*i&&L(t.padding,this._padding)<.5&&L(t.viewport,this._viewport)<.5}computeRenderPixelSizeAt(t){return this.computeRenderPixelSizeAtDist(this._viewDirectionDistance(t))}computeRenderPixelSizeAtDist(t){return t*this.perRenderPixelRatio}computeScreenPixelSizeAt(t){return this.computeScreenPixelSizeAtDist(this._viewDirectionDistance(t))}_viewDirectionDistance(t){return Math.abs(C(this.viewForward,l(Z,t,this.eye)))}computeScreenPixelSizeAtDist(t){return t*this.perScreenPixelRatio}computeDistanceFromRadius(t,i){return t/Math.tan(Math.min(this.fovX,this.fovY)/(2*(i||1)))}getScreenCenter(t=r()){return t[0]=(this.padding[it.LEFT]+this.width/2)/this.pixelRatio,t[1]=(this.padding[it.TOP]+this.height/2)/this.pixelRatio,t}getRenderCenter(t,i=.5,e=.5){return t[0]=this.padding[it.LEFT]+this.width*i,t[1]=this.padding[it.BOTTOM]+this.height*e,t[2]=.5,t}setGLViewport(t){const i=this.viewport,e=this.padding;t.setViewport(i[0]-e[3],i[1]-e[2],i[2]+e[1]+e[3],i[3]+e[0]+e[2])}applyProjection(t,e,r=!1){t!==K&&d(K,t),K[3]=1,r&&(e[2]=-K[2]),b(K,K,this.projectionMatrix),M(K,K,1/Math.abs(K[3]));const s=this.fullViewport;return e[0]=i(0,s[0]+s[2],.5+.5*K[0]),e[1]=i(0,s[1]+s[3],.5+.5*K[1]),r||(e[2]=.5*(K[2]+1)),e}projectToScreen(t,i){this.projectToRenderScreen(t,tt),this.renderToScreen(tt,i)}projectToRenderScreen(t,e){if(K[0]=t[0],K[1]=t[1],K[2]=t[2],K[3]=1,b(K,K,this.viewProjectionMatrix),0===K[3])return null;M(K,K,1/Math.abs(K[3]));const r=this.fullViewport;return"x"in e?(e.x=i(0,r[0]+r[2],.5+.5*K[0]),e.y=i(0,r[1]+r[3],.5+.5*K[1])):(e[0]=i(0,r[0]+r[2],.5+.5*K[0]),e[1]=i(0,r[1]+r[3],.5+.5*K[1]),e.length>2&&(e[2]=.5*(K[2]+1))),e}unprojectFromScreen(t,i){return this.unprojectFromRenderScreen(this.screenToRender(t,tt),i)}unprojectFromRenderScreen(t,i){if(o(Q,this.projectionMatrix,this.viewMatrix),!a(Q,Q))return null;const e=this.fullViewport;return K[0]=2*(t[0]-e[0])/e[2]-1,K[1]=2*(t[1]-e[1])/e[3]-1,K[2]=2*t[2]-1,K[3]=1,b(K,K,Q),0===K[3]?null:(i[0]=K[0]/K[3],i[1]=K[1]/K[3],i[2]=K[2]/K[3],i)}constrainWindowSize(t,i,e,r=e){const s=t*this.pixelRatio,h=i*this.pixelRatio,o=Math.max(s-e/2,0),n=Math.max(this.fullHeight-h-r/2,0),a=-Math.min(s-e/2,0),_=-Math.min(this.fullHeight-h-r/2,0);return[o,n,e-a- -Math.min(this.fullWidth-s-e/2,0),r-_- -Math.min(h-r/2,0)]}computeUp(t){t===z.Global?this._computeUpGlobal():this._computeUpLocal()}screenToRender(t,i){const e=t[0]*this.pixelRatio,r=this.fullHeight-t[1]*this.pixelRatio;return i[0]=e,i[1]=r,i}renderToScreen(t,i){const e=t[0]/this.pixelRatio,r=(this.fullHeight-t[1])/this.pixelRatio;i[0]=e,i[1]=r}_computeUpGlobal(){l(Z,this.center,this.eye);const t=T(this.center);t<1?(j(this._up,0,0,1),this._markViewDirty()):Math.abs(f(Z,this.center))>.9999*T(Z)*t||(R(this._up,Z,this.center),R(this._up,this._up,Z),F(this._up,this._up),this._markViewDirty())}_computeUpLocal(){P(Z,this.eye,this.center),Math.abs(Z[2])<=.9999&&(M(Z,Z,Z[2]),j(this._up,-Z[0],-Z[1],1-Z[2]),F(this._up,this._up),this._markViewDirty())}_compareAndSetView(t,i){"number"==typeof t[0]&&isFinite(t[0])&&"number"==typeof t[1]&&isFinite(t[1])&&"number"==typeof t[2]&&isFinite(t[2])?y(t,i)||(d(i,t),this._markViewDirty()):N.warn("Camera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&(U(this.viewMatrix,this.projectionMatrix,this._frustum),this._frustumDirty=!1)}_ensureViewClean(){this._viewDirty&&(p(this._viewMatrix,this.eye,this._center,this._up),j(this._viewForward,-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10]),j(this._viewUp,this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9]),j(this._viewRight,this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8]),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}}const K=k(),Q=u(),Z=O(),$=O(),tt=s();var it;!function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(it||(it={}));export{it as PaddingSide,J as default};
5
+ import t from"../../../../core/Logger.js";import{lerp as i}from"../../../../core/mathUtils.js";import{isSome as e}from"../../../../core/maybe.js";import{createScreenPointArray as r,createRenderScreenPointArray3 as s}from"../../../../core/screenUtils.js";import{c as h,m as o,l as n,a,t as _,n as p}from"../../../../chunks/mat4.js";import{c as u}from"../../../../chunks/mat4f64.js";import{c as v,e as c}from"../../../../chunks/vec2.js";import{f as w}from"../../../../chunks/vec2f64.js";import{g as d,f as l,i as g,k as y,v as m,d as f,w as x,x as D,a as M,l as T,s as j,c as R,n as F,r as P}from"../../../../chunks/vec3.js";import{c as O,a as V,f as I}from"../../../../chunks/vec3f64.js";import{c as S,g as E,i as L,t as b}from"../../../../chunks/vec4.js";import{f as H,c as k}from"../../../../chunks/vec4f64.js";import{create as B,copy as G,fromMatrix as U}from"../../../../geometry/support/frustum.js";import{create as A}from"../../../../geometry/support/ray.js";import{projectPointSignedLength as C}from"../../../../geometry/support/vector.js";import{ViewingMode as z}from"../../../ViewingMode.js";import{fovd2fovx as W,fovx2fovd as X,fovd2fovy as Y,fovy2fovd as q}from"./Util.js";const N=t.getLogger("esri.views.3d.webgl-engine.lib.Camera");class J{constructor(t=null,i=null,r=null){this._viewUp=O(),this._viewForward=O(),this._viewRight=O(),this._ray=A(),this._viewport=H(0,0,1,1),this._padding=H(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=w(1,1e3),this._viewDirty=!0,this._viewMatrix=u(),this._projectionDirty=!0,this._projectionMatrix=u(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=u(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=u(),this._frustumDirty=!0,this._frustum=B(),this._fullViewport=k(),this.pixelRatio=1,this.relativeElevation=0,e(t)&&d(this._ray.origin,t),this._center=e(i)?V(i):O(),this._up=e(r)?V(r):I(0,0,1)}get eye(){return this._ray.origin}set eye(t){this._compareAndSetView(t,this._ray.origin)}get center(){return this._center}set center(t){this._compareAndSetView(t,this._center)}get ray(){return l(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(t){this._compareAndSetView(t,this._up)}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(t){h(this._viewMatrix,t),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get viewForward(){return this._ensureViewClean(),this._viewForward}get viewUp(){return this._ensureViewClean(),this._viewUp}get viewRight(){return this._ensureViewClean(),this._viewRight}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(t){this._nearFar[0]!==t&&(this._nearFar[0]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get far(){return this._nearFar[1]}set far(t){this._nearFar[1]!==t&&(this._nearFar[1]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewport(){return this._viewport}set viewport(t){this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]}get x(){return this._viewport[0]}set x(t){t+=this._padding[it.LEFT],this._viewport[0]!==t&&(this._viewport[0]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get y(){return this._viewport[1]}set y(t){t+=this._padding[it.BOTTOM],this._viewport[1]!==t&&(this._viewport[1]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get width(){return this._viewport[2]}set width(t){this._viewport[2]!==t&&(this._viewport[2]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get height(){return this._viewport[3]}set height(t){this._viewport[3]!==t&&(this._viewport[3]=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get fullWidth(){return this._viewport[2]+this._padding[it.RIGHT]+this._padding[it.LEFT]}set fullWidth(t){this.width=t-(this._padding[it.RIGHT]+this._padding[it.LEFT])}get fullHeight(){return this._viewport[3]+this._padding[it.TOP]+this._padding[it.BOTTOM]}set fullHeight(t){this.height=t-(this._padding[it.TOP]+this._padding[it.BOTTOM])}get fullViewport(){return this._fullViewport[0]=this._viewport[0]-this._padding[it.LEFT],this._fullViewport[1]=this._viewport[1]-this._padding[it.BOTTOM],this._fullViewport[2]=this.fullWidth,this._fullViewport[3]=this.fullHeight,this._fullViewport}get aspect(){return this.width/this.height}get padding(){return this._padding}set padding(t){this._padding[it.TOP]===t[it.TOP]&&this._padding[it.RIGHT]===t[it.RIGHT]&&this._padding[it.BOTTOM]===t[it.BOTTOM]&&this._padding[it.LEFT]===t[it.LEFT]||(this._viewport[0]+=t[it.LEFT]-this._padding[it.LEFT],this._viewport[1]+=t[it.BOTTOM]-this._padding[it.BOTTOM],this._viewport[2]-=t[it.RIGHT]+t[it.LEFT]-(this._padding[it.RIGHT]+this._padding[it.LEFT]),this._viewport[3]-=t[it.TOP]+t[it.BOTTOM]-(this._padding[it.TOP]+this._padding[it.BOTTOM]),S(this._padding,t),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewProjectionMatrix(){return this._viewProjectionDirty&&(o(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),this._viewProjectionDirty=!1),this._viewProjectionMatrix}get projectionMatrix(){if(this._projectionDirty){const t=this.width,i=this.height,e=this.near*Math.tan(this.fovY/2),r=e*this.aspect;n(this._projectionMatrix,-r*(1+2*this._padding[it.LEFT]/t),r*(1+2*this._padding[it.RIGHT]/t),-e*(1+2*this._padding[it.BOTTOM]/i),e*(1+2*this._padding[it.TOP]/i),this.near,this.far),this._projectionDirty=!1}return this._projectionMatrix}set projectionMatrix(t){h(this._projectionMatrix,t),this._projectionDirty=!1,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fov(){return this._fov}set fov(t){this._fov=t,this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return W(this._fov,this.width,this.height)}set fovX(t){this._fov=X(t,this.width,this.height),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return Y(this._fov,this.width,this.height)}set fovY(t){this._fov=q(t,this.width,this.height),this._projectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return g(this._center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&(a(this._viewInverseTransposeMatrix,this.viewMatrix),_(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(t){const i=2*t-1;return 2*this.near*this.far/(this.far+this.near-i*(this.far-this.near))}get perRenderPixelRatio(){return Math.tan(this.fovX/2)/(this.width/2)}get perScreenPixelRatio(){return this.perRenderPixelRatio*this.pixelRatio}get aboveGround(){return this.relativeElevation&&this.relativeElevation>=0}copyFrom(t){d(this._ray.origin,t.eye),d(this._center,t.center),d(this._up,t.up),S(this._viewport,t.viewport),S(this._padding,t.padding),v(this._nearFar,t.nearFar),this._fov=t.fov,this.relativeElevation=t.relativeElevation;const i=t;return this._viewDirty=i._viewDirty,this._viewDirty||(h(this._viewMatrix,t.viewMatrix),d(this._viewRight,t.viewRight),d(this._viewUp,t.viewUp),d(this._viewForward,t.viewForward)),i._projectionDirty?this._projectionDirty=!0:(h(this._projectionMatrix,t.projectionMatrix),this._projectionDirty=!1),this._viewProjectionDirty=!0,this._frustumDirty=i._frustumDirty,this._frustumDirty||(G(this._frustum,t.frustum),this._frustumDirty=!1),i._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:(h(this._viewInverseTransposeMatrix,t.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),S(this._fullViewport,t.fullViewport),this.pixelRatio=t.pixelRatio,this}copyViewFrom(t){this.eye=t.eye,this.center=t.center,this.up=t.up}clone(){return(new J).copyFrom(this)}equals(t){return y(this.eye,t.eye)&&y(this._center,t.center)&&y(this._up,t.up)&&E(this._viewport,t.viewport)&&E(this._padding,t.padding)&&c(this._nearFar,t.nearFar)&&this._fov===t.fov&&this.pixelRatio===t.pixelRatio&&this.relativeElevation===t.relativeElevation}almostEquals(t){if(this.pixelRatio!==t.pixelRatio||Math.abs(t.fov-this._fov)>=.001)return!1;const i=5e-4,e=1-1e-10;m(Z,t.eye,t.center),m($,this.eye,this._center);const r=f(Z,$),s=x(Z),h=x($);return r*r>=e*s*h&&D(t.eye,this.eye)<Math.max(s,h)*i*i&&L(t.padding,this._padding)<.5&&L(t.viewport,this._viewport)<.5}computeRenderPixelSizeAt(t){return this.computeRenderPixelSizeAtDist(this._viewDirectionDistance(t))}computeRenderPixelSizeAtDist(t){return t*this.perRenderPixelRatio}computeScreenPixelSizeAt(t){return this.computeScreenPixelSizeAtDist(this._viewDirectionDistance(t))}_viewDirectionDistance(t){return Math.abs(C(this.viewForward,l(Z,t,this.eye)))}computeScreenPixelSizeAtDist(t){return t*this.perScreenPixelRatio}computeDistanceFromRadius(t,i){return t/Math.tan(Math.min(this.fovX,this.fovY)/(2*(i||1)))}getScreenCenter(t=r()){return t[0]=(this.padding[it.LEFT]+this.width/2)/this.pixelRatio,t[1]=(this.padding[it.TOP]+this.height/2)/this.pixelRatio,t}getRenderCenter(t,i=.5,e=.5){return t[0]=this.padding[it.LEFT]+this.width*i,t[1]=this.padding[it.BOTTOM]+this.height*e,t[2]=.5,t}setGLViewport(t){const i=this.viewport,e=this.padding;t.setViewport(i[0]-e[3],i[1]-e[2],i[2]+e[1]+e[3],i[3]+e[0]+e[2])}applyProjection(t,e,r=!1){t!==K&&d(K,t),K[3]=1,r&&(e[2]=-K[2]),b(K,K,this.projectionMatrix),M(K,K,1/Math.abs(K[3]));const s=this.fullViewport;return e[0]=i(0,s[0]+s[2],.5+.5*K[0]),e[1]=i(0,s[1]+s[3],.5+.5*K[1]),r||(e[2]=.5*(K[2]+1)),e}projectToScreen(t,i){this.projectToRenderScreen(t,tt),this.renderToScreen(tt,i)}projectToRenderScreen(t,e){if(K[0]=t[0],K[1]=t[1],K[2]=t[2],K[3]=1,b(K,K,this.viewProjectionMatrix),0===K[3])return null;M(K,K,1/Math.abs(K[3]));const r=this.fullViewport;return"x"in e?(e.x=i(0,r[0]+r[2],.5+.5*K[0]),e.y=i(0,r[1]+r[3],.5+.5*K[1])):(e[0]=i(0,r[0]+r[2],.5+.5*K[0]),e[1]=i(0,r[1]+r[3],.5+.5*K[1]),e.length>2&&(e[2]=.5*(K[2]+1))),e}unprojectFromScreen(t,i){return this.unprojectFromRenderScreen(this.screenToRender(t,tt),i)}unprojectFromRenderScreen(t,i){if(o(Q,this.projectionMatrix,this.viewMatrix),!a(Q,Q))return null;const e=this.fullViewport;return K[0]=2*(t[0]-e[0])/e[2]-1,K[1]=2*(t[1]-e[1])/e[3]-1,K[2]=2*t[2]-1,K[3]=1,b(K,K,Q),0===K[3]?null:(i[0]=K[0]/K[3],i[1]=K[1]/K[3],i[2]=K[2]/K[3],i)}constrainWindowSize(t,i,e,r=e){const s=t*this.pixelRatio,h=i*this.pixelRatio,o=Math.max(s-e/2,0),n=Math.max(this.fullHeight-h-r/2,0),a=-Math.min(s-e/2,0),_=-Math.min(this.fullHeight-h-r/2,0);return[o,n,e-a- -Math.min(this.fullWidth-s-e/2,0),r-_- -Math.min(h-r/2,0)]}computeUp(t){t===z.Global?this._computeUpGlobal():this._computeUpLocal()}screenToRender(t,i){const e=t[0]*this.pixelRatio,r=this.fullHeight-t[1]*this.pixelRatio;return i[0]=e,i[1]=r,i}renderToScreen(t,i){const e=t[0]/this.pixelRatio,r=(this.fullHeight-t[1])/this.pixelRatio;i[0]=e,i[1]=r}_computeUpGlobal(){l(Z,this.center,this.eye);const t=T(this.center);t<1?(j(this._up,0,0,1),this._markViewDirty()):Math.abs(f(Z,this.center))>.9999*T(Z)*t||(R(this._up,Z,this.center),R(this._up,this._up,Z),F(this._up,this._up),this._markViewDirty())}_computeUpLocal(){P(Z,this.eye,this.center),Math.abs(Z[2])<=.9999&&(M(Z,Z,Z[2]),j(this._up,-Z[0],-Z[1],1-Z[2]),F(this._up,this._up),this._markViewDirty())}_compareAndSetView(t,i){"number"==typeof t[0]&&isFinite(t[0])&&"number"==typeof t[1]&&isFinite(t[1])&&"number"==typeof t[2]&&isFinite(t[2])?y(t,i)||(d(i,t),this._markViewDirty()):N.warn("Camera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&(U(this.viewMatrix,this.projectionMatrix,this._frustum),this._frustumDirty=!1)}_ensureViewClean(){this._viewDirty&&(p(this._viewMatrix,this.eye,this._center,this._up),j(this._viewForward,-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10]),j(this._viewUp,this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9]),j(this._viewRight,this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8]),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}}const K=k(),Q=u(),Z=O(),$=O(),tt=s();var it;!function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(it||(it={}));export{it as PaddingSide,J as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{VertexAttribute as O}from"./basicInterfaces.js";const E=new Map([[O.POSITION,0],[O.NORMAL,1],[O.UV0,2],[O.COLOR,3],[O.SIZE,4],[O.TANGENT,4],[O.AUXPOS1,5],[O.SYMBOLCOLOR,5],[O.AUXPOS2,6],[O.FEATUREATTRIBUTE,6],[O.INSTANCEFEATUREATTRIBUTE,6],[O.INSTANCECOLOR,7],[O.MODEL,8],[O.MODELNORMAL,12],[O.MODELORIGINHI,11],[O.MODELORIGINLO,15]]);export{E as Default3D};
5
+ import{VertexAttribute as O}from"./VertexAttribute.js";const E=new Map([[O.POSITION,0],[O.NORMAL,1],[O.UV0,2],[O.COLOR,3],[O.SIZE,4],[O.TANGENT,4],[O.AUXPOS1,5],[O.SYMBOLCOLOR,5],[O.AUXPOS2,6],[O.FEATUREATTRIBUTE,6],[O.INSTANCEFEATUREATTRIBUTE,6],[O.INSTANCECOLOR,7],[O.MODEL,8],[O.MODELNORMAL,12],[O.MODELORIGINHI,11],[O.MODELORIGINLO,15]]);export{E as Default3D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{VertexAttribute as O}from"./basicInterfaces.js";import{DataType as e}from"../../../webgl/enums.js";import{VertexElementDescriptor as T}from"../../../webgl/VertexElementDescriptor.js";const n=[new T(O.POSITION,3,e.FLOAT,0,12)],I=[new T(O.POSITION,3,e.FLOAT,0,20),new T(O.UV0,2,e.FLOAT,12,20)],w=[new T(O.POSITION,3,e.FLOAT,0,32),new T(O.NORMAL,3,e.FLOAT,12,32),new T(O.UV0,2,e.FLOAT,24,32)],L=[new T(O.POSITION,3,e.FLOAT,0,16),new T(O.COLOR,4,e.UNSIGNED_BYTE,12,16)],r=[new T(O.POSITION,2,e.FLOAT,0,8)],A=[new T(O.POSITION,2,e.FLOAT,0,16),new T(O.UV0,2,e.FLOAT,8,16)];export{r as Pos2,A as Pos2Tex,n as Pos3,L as Pos3Col,w as Pos3NormalTex,I as Pos3Tex};
5
+ import{VertexAttribute as O}from"./VertexAttribute.js";import{DataType as e}from"../../../webgl/enums.js";import{VertexElementDescriptor as T}from"../../../webgl/VertexElementDescriptor.js";const n=[new T(O.POSITION,3,e.FLOAT,0,12)],w=[new T(O.POSITION,3,e.FLOAT,0,20),new T(O.UV0,2,e.FLOAT,12,20)],I=[new T(O.POSITION,3,e.FLOAT,0,32),new T(O.NORMAL,3,e.FLOAT,12,32),new T(O.UV0,2,e.FLOAT,24,32)],r=[new T(O.POSITION,3,e.FLOAT,0,16),new T(O.COLOR,4,e.UNSIGNED_BYTE,12,16)],t=[new T(O.POSITION,2,e.FLOAT,0,8)],A=[new T(O.POSITION,2,e.FLOAT,0,16),new T(O.UV0,2,e.FLOAT,8,16)];export{t as Pos2,A as Pos2Tex,n as Pos3,r as Pos3Col,I as Pos3NormalTex,w as Pos3Tex};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{isNone as t}from"../../../../core/maybe.js";import{PrimitiveType as e,VertexAttribute as i}from"./basicInterfaces.js";import{BoundingInfo as n}from"./BoundingInfo.js";import{ContentObject as s}from"./ContentObject.js";import{ContentObjectType as r}from"./ContentObjectType.js";import{generateDefaultIndexArray as o,computeAttachmentOriginTriangles as u,computeAttachmentOriginPoints as g}from"./geometryDataUtils.js";import{assert as h}from"./Util.js";class c extends s{constructor(t,n=[],s=e.Triangle,u=-1){super(),this._primitiveType=s,this.edgeIndicesLength=u,this.type=r.Geometry,this._vertexAttributes=new Map,this._indices=new Map,this._boundingInfo=null;for(const[e,i]of t)i&&this._vertexAttributes.set(e,{...i});if(null==n||0===n.length){const t=d(this._vertexAttributes),e=o(t);this.edgeIndicesLength=this.edgeIndicesLength<0?t:this.edgeIndicesLength;for(const i of this._vertexAttributes.keys())this._indices.set(i,e)}else for(const[e,r]of n)r&&(this._indices.set(e,l(r)),e===i.POSITION&&(this.edgeIndicesLength=this.edgeIndicesLength<0?this._indices.get(e).length:this.edgeIndicesLength))}get vertexAttributes(){return this._vertexAttributes}getMutableAttribute(t){const e=this._vertexAttributes.get(t);return e&&!e.exclusive&&(e.data=Array.from(e.data),e.exclusive=!0),e}get indices(){return this._indices}get indexCount(){const t=this._indices.values().next().value;return t?t.length:0}get primitiveType(){return this._primitiveType}get faceCount(){return this.indexCount/3}get boundingInfo(){return t(this._boundingInfo)&&(this._boundingInfo=this._calculateBoundingInfo()),this._boundingInfo}computeAttachmentOrigin(t){return this.primitiveType===e.Triangle?this._computeAttachmentOriginTriangles(t):this._computeAttachmentOriginPoints(t)}_computeAttachmentOriginTriangles(t){const e=this.indices.get(i.POSITION),n=this.vertexAttributes.get(i.POSITION);return u(n,e,t)}_computeAttachmentOriginPoints(t){const e=this.indices.get(i.POSITION),n=this.vertexAttributes.get(i.POSITION);return g(n,e,t)}invalidateBoundingInfo(){this._boundingInfo=null}_calculateBoundingInfo(){const t=this.indices.get(i.POSITION);if(0===t.length)return null;const s=this.primitiveType===e.Triangle?3:1;h(t.length%s==0,"Indexing error: "+t.length+" not divisible by "+s);const r=o(t.length/s),u=this.vertexAttributes.get(i.POSITION);return new n(r,s,t,u)}}function d(t){const e=t.values().next().value;return null==e?0:e.data.length/e.size}function l(t){if(t.BYTES_PER_ELEMENT===Uint16Array.BYTES_PER_ELEMENT)return t;for(const e of t)if(e>=65536)return t;return new Uint16Array(t)}export{c as Geometry};
5
+ import{isNone as t}from"../../../../core/maybe.js";import{PrimitiveType as e}from"./basicInterfaces.js";import{BoundingInfo as i}from"./BoundingInfo.js";import{ContentObject as n}from"./ContentObject.js";import{ContentObjectType as s}from"./ContentObjectType.js";import{generateDefaultIndexArray as r,computeAttachmentOriginTriangles as o,computeAttachmentOriginPoints as u}from"./geometryDataUtils.js";import{assert as g}from"./Util.js";import{VertexAttribute as h}from"./VertexAttribute.js";class c extends n{constructor(t,i=[],n=e.Triangle,o=-1){super(),this._primitiveType=n,this.edgeIndicesLength=o,this.type=s.Geometry,this._vertexAttributes=new Map,this._indices=new Map,this._boundingInfo=null;for(const[e,s]of t)s&&this._vertexAttributes.set(e,{...s});if(null==i||0===i.length){const t=d(this._vertexAttributes),e=r(t);this.edgeIndicesLength=this.edgeIndicesLength<0?t:this.edgeIndicesLength;for(const i of this._vertexAttributes.keys())this._indices.set(i,e)}else for(const[e,s]of i)s&&(this._indices.set(e,l(s)),e===h.POSITION&&(this.edgeIndicesLength=this.edgeIndicesLength<0?this._indices.get(e).length:this.edgeIndicesLength))}get vertexAttributes(){return this._vertexAttributes}getMutableAttribute(t){const e=this._vertexAttributes.get(t);return e&&!e.exclusive&&(e.data=Array.from(e.data),e.exclusive=!0),e}get indices(){return this._indices}get indexCount(){const t=this._indices.values().next().value;return t?t.length:0}get primitiveType(){return this._primitiveType}get faceCount(){return this.indexCount/3}get boundingInfo(){return t(this._boundingInfo)&&(this._boundingInfo=this._calculateBoundingInfo()),this._boundingInfo}computeAttachmentOrigin(t){return this.primitiveType===e.Triangle?this._computeAttachmentOriginTriangles(t):this._computeAttachmentOriginPoints(t)}_computeAttachmentOriginTriangles(t){const e=this.indices.get(h.POSITION),i=this.vertexAttributes.get(h.POSITION);return o(i,e,t)}_computeAttachmentOriginPoints(t){const e=this.indices.get(h.POSITION),i=this.vertexAttributes.get(h.POSITION);return u(i,e,t)}invalidateBoundingInfo(){this._boundingInfo=null}_calculateBoundingInfo(){const t=this.indices.get(h.POSITION);if(0===t.length)return null;const n=this.primitiveType===e.Triangle?3:1;g(t.length%n==0,"Indexing error: "+t.length+" not divisible by "+n);const s=r(t.length/n),o=this.vertexAttributes.get(h.POSITION);return new i(s,n,t,o)}}function d(t){const e=t.values().next().value;return null==e?0:e.data.length/e.size}function l(t){if(t.BYTES_PER_ELEMENT===Uint16Array.BYTES_PER_ELEMENT)return t;for(const e of t)if(e>=65536)return t;return new Uint16Array(t)}export{c as Geometry};