@itwin/core-frontend 3.6.0-dev.8 → 4.0.0-dev.2

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 (516) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/LICENSE.md +1 -1
  3. package/lib/cjs/AccuDraw.js +1 -1
  4. package/lib/cjs/AccuDraw.js.map +1 -1
  5. package/lib/cjs/BriefcaseConnection.d.ts +23 -3
  6. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseConnection.js +11 -3
  8. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  9. package/lib/cjs/CheckpointConnection.js +1 -1
  10. package/lib/cjs/CheckpointConnection.js.map +1 -1
  11. package/lib/cjs/DisplayStyleState.d.ts +2 -2
  12. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  13. package/lib/cjs/DisplayStyleState.js +12 -4
  14. package/lib/cjs/DisplayStyleState.js.map +1 -1
  15. package/lib/cjs/IModelApp.d.ts +3 -3
  16. package/lib/cjs/IModelApp.d.ts.map +1 -1
  17. package/lib/cjs/IModelApp.js +2 -2
  18. package/lib/cjs/IModelApp.js.map +1 -1
  19. package/lib/cjs/IModelConnection.d.ts +4 -6
  20. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  21. package/lib/cjs/IModelConnection.js +6 -7
  22. package/lib/cjs/IModelConnection.js.map +1 -1
  23. package/lib/cjs/IpcApp.d.ts +1 -1
  24. package/lib/cjs/IpcApp.d.ts.map +1 -1
  25. package/lib/cjs/IpcApp.js +1 -1
  26. package/lib/cjs/IpcApp.js.map +1 -1
  27. package/lib/cjs/NativeApp.d.ts +8 -1
  28. package/lib/cjs/NativeApp.d.ts.map +1 -1
  29. package/lib/cjs/NativeApp.js +10 -6
  30. package/lib/cjs/NativeApp.js.map +1 -1
  31. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  32. package/lib/cjs/NoRenderApp.js +3 -0
  33. package/lib/cjs/NoRenderApp.js.map +1 -1
  34. package/lib/cjs/SpatialViewState.d.ts +4 -1
  35. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  36. package/lib/cjs/SpatialViewState.js +19 -5
  37. package/lib/cjs/SpatialViewState.js.map +1 -1
  38. package/lib/cjs/Tiles.d.ts +4 -0
  39. package/lib/cjs/Tiles.d.ts.map +1 -1
  40. package/lib/cjs/Tiles.js +11 -0
  41. package/lib/cjs/Tiles.js.map +1 -1
  42. package/lib/cjs/ViewContext.js +1 -1
  43. package/lib/cjs/ViewContext.js.map +1 -1
  44. package/lib/cjs/ViewManager.d.ts.map +1 -1
  45. package/lib/cjs/ViewManager.js +2 -3
  46. package/lib/cjs/ViewManager.js.map +1 -1
  47. package/lib/cjs/ViewState.d.ts +4 -5
  48. package/lib/cjs/ViewState.d.ts.map +1 -1
  49. package/lib/cjs/ViewState.js +0 -1
  50. package/lib/cjs/ViewState.js.map +1 -1
  51. package/lib/cjs/Viewport.d.ts +53 -4
  52. package/lib/cjs/Viewport.d.ts.map +1 -1
  53. package/lib/cjs/Viewport.js +82 -34
  54. package/lib/cjs/Viewport.js.map +1 -1
  55. package/lib/cjs/extension/ExtensionImpl.js +2 -2
  56. package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
  57. package/lib/cjs/extension/ExtensionRuntime.js +3 -0
  58. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  59. package/lib/cjs/render/GraphicBranch.d.ts +3 -0
  60. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  61. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  62. package/lib/cjs/render/GraphicBuilder.d.ts +1 -1
  63. package/lib/cjs/render/GraphicBuilder.js +1 -1
  64. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  65. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  66. package/lib/cjs/render/MockRender.js +3 -0
  67. package/lib/cjs/render/MockRender.js.map +1 -1
  68. package/lib/cjs/render/RealityMeshParams.d.ts +3 -4
  69. package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
  70. package/lib/cjs/render/RealityMeshParams.js +9 -5
  71. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  72. package/lib/cjs/render/RenderMaterial.d.ts +1 -1
  73. package/lib/cjs/render/RenderMaterial.d.ts.map +1 -1
  74. package/lib/cjs/render/RenderMaterial.js.map +1 -1
  75. package/lib/cjs/render/RenderSystem.d.ts +4 -4
  76. package/lib/cjs/render/RenderSystem.js +4 -4
  77. package/lib/cjs/render/RenderSystem.js.map +1 -1
  78. package/lib/cjs/render/RenderTarget.d.ts +1 -1
  79. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  80. package/lib/cjs/render/RenderTarget.js +1 -1
  81. package/lib/cjs/render/RenderTarget.js.map +1 -1
  82. package/lib/cjs/render/VisibleFeature.d.ts +5 -5
  83. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  84. package/lib/cjs/render/primitives/DisplayParams.d.ts.map +1 -1
  85. package/lib/cjs/render/primitives/DisplayParams.js +2 -1
  86. package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
  87. package/lib/cjs/render/webgl/BackgroundMapDrape.js +3 -3
  88. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  89. package/lib/cjs/render/webgl/BranchState.d.ts +3 -0
  90. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  91. package/lib/cjs/render/webgl/BranchState.js +5 -0
  92. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  93. package/lib/cjs/render/webgl/CachedGeometry.d.ts +32 -0
  94. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  95. package/lib/cjs/render/webgl/CachedGeometry.js +74 -1
  96. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  97. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  98. package/lib/cjs/render/webgl/DrawCommand.js +6 -4
  99. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  100. package/lib/cjs/render/webgl/EDL.d.ts +40 -0
  101. package/lib/cjs/render/webgl/EDL.d.ts.map +1 -0
  102. package/lib/cjs/render/webgl/EDL.js +264 -0
  103. package/lib/cjs/render/webgl/EDL.js.map +1 -0
  104. package/lib/cjs/render/webgl/EdgeSettings.js +2 -2
  105. package/lib/cjs/render/webgl/FrameBuffer.d.ts +4 -0
  106. package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
  107. package/lib/cjs/render/webgl/FrameBuffer.js +9 -0
  108. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  109. package/lib/cjs/render/webgl/FrustumUniforms.d.ts +7 -0
  110. package/lib/cjs/render/webgl/FrustumUniforms.d.ts.map +1 -1
  111. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  112. package/lib/cjs/render/webgl/Layer.js +2 -2
  113. package/lib/cjs/render/webgl/LayerCommands.js +2 -2
  114. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  115. package/lib/cjs/render/webgl/PlanarClassifier.js +9 -8
  116. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  117. package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -1
  118. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  119. package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
  120. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  121. package/lib/cjs/render/webgl/PointCloud.js +2 -0
  122. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  123. package/lib/cjs/render/webgl/RealityMesh.d.ts +3 -1
  124. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  125. package/lib/cjs/render/webgl/RealityMesh.js +8 -3
  126. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  127. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts +9 -0
  128. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts.map +1 -1
  129. package/lib/cjs/render/webgl/RealityModelUniforms.js +50 -0
  130. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
  131. package/lib/cjs/render/webgl/RenderCommands.d.ts +2 -1
  132. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  133. package/lib/cjs/render/webgl/RenderCommands.js +46 -38
  134. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  135. package/lib/cjs/render/webgl/RenderFlags.d.ts +19 -17
  136. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  137. package/lib/cjs/render/webgl/RenderFlags.js +8 -6
  138. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  139. package/lib/cjs/render/webgl/SceneCompositor.d.ts +6 -1
  140. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  141. package/lib/cjs/render/webgl/SceneCompositor.js +195 -76
  142. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  143. package/lib/cjs/render/webgl/SolarShadowMap.js +3 -3
  144. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  145. package/lib/cjs/render/webgl/SurfaceGeometry.js +5 -5
  146. package/lib/cjs/render/webgl/Target.js +7 -7
  147. package/lib/cjs/render/webgl/Target.js.map +1 -1
  148. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  149. package/lib/cjs/render/webgl/Technique.js +18 -3
  150. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  151. package/lib/cjs/render/webgl/TechniqueFlags.js +4 -4
  152. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  153. package/lib/cjs/render/webgl/TechniqueId.d.ts +6 -2
  154. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  155. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  156. package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
  157. package/lib/cjs/render/webgl/UniformHandle.js +1 -2
  158. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  159. package/lib/cjs/render/webgl/VisibleTileFeatures.js +5 -5
  160. package/lib/cjs/render/webgl/glsl/EDL.d.ts +14 -0
  161. package/lib/cjs/render/webgl/glsl/EDL.d.ts.map +1 -0
  162. package/lib/cjs/render/webgl/glsl/EDL.js +260 -0
  163. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -0
  164. package/lib/cjs/render/webgl/glsl/RenderPass.js +12 -12
  165. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  166. package/lib/cjs/render/webgl/glsl/Surface.js +1 -1
  167. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  168. package/lib/cjs/tile/BatchedTileIdMap.js +1 -1
  169. package/lib/cjs/tile/BatchedTileIdMap.js.map +1 -1
  170. package/lib/cjs/tile/DynamicIModelTile.js +1 -1
  171. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  172. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  173. package/lib/cjs/tile/GltfReader.js +4 -2
  174. package/lib/cjs/tile/GltfReader.js.map +1 -1
  175. package/lib/cjs/tile/IModelTile.js +1 -1
  176. package/lib/cjs/tile/IModelTile.js.map +1 -1
  177. package/lib/cjs/tile/ImdlReader.d.ts +6 -0
  178. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  179. package/lib/cjs/tile/ImdlReader.js +20 -7
  180. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  181. package/lib/cjs/tile/OrbitGtTileTree.d.ts +14 -1
  182. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  183. package/lib/cjs/tile/OrbitGtTileTree.js +30 -11
  184. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  185. package/lib/cjs/tile/RealityModelTileTree.d.ts +4 -3
  186. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  187. package/lib/cjs/tile/RealityModelTileTree.js +61 -53
  188. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  189. package/lib/cjs/tile/RealityTileLoader.js +2 -2
  190. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  191. package/lib/cjs/tile/RealityTileTree.d.ts +5 -0
  192. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  193. package/lib/cjs/tile/RealityTileTree.js +9 -4
  194. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  195. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  196. package/lib/cjs/tile/TileAdmin.js +15 -7
  197. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  198. package/lib/cjs/tile/TileDrawArgs.js +1 -1
  199. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  200. package/lib/cjs/tile/TileTreeReference.d.ts +3 -0
  201. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  202. package/lib/cjs/tile/TileTreeReference.js +3 -0
  203. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  204. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +14 -1
  205. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  206. package/lib/cjs/tile/map/ArcGisUtilities.js +57 -27
  207. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  208. package/lib/cjs/tile/map/CesiumTerrainProvider.js +9 -9
  209. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  210. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +14 -2
  211. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  212. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +77 -37
  213. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  214. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
  215. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  216. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +65 -52
  217. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  218. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +1 -0
  219. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  220. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -0
  221. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  222. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +1 -1
  223. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  224. package/lib/cjs/tile/map/ImageryTileTree.d.ts +26 -1
  225. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  226. package/lib/cjs/tile/map/ImageryTileTree.js +54 -4
  227. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  228. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  229. package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -2
  230. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  231. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +12 -2
  232. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  233. package/lib/cjs/tile/map/MapLayerImageryProvider.js +16 -4
  234. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  235. package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -1
  236. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  237. package/lib/cjs/tile/map/MapLayerSources.js +2 -0
  238. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  239. package/lib/cjs/tile/map/MapTile.d.ts +5 -0
  240. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  241. package/lib/cjs/tile/map/MapTile.js +33 -14
  242. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  243. package/lib/cjs/tile/map/MapTileTree.d.ts +42 -3
  244. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  245. package/lib/cjs/tile/map/MapTileTree.js +126 -9
  246. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  247. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
  248. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  249. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +26 -0
  250. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  251. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +23 -68
  252. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  253. package/lib/cjs/tile/map/WmtsCapabilities.js +269 -260
  254. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  255. package/lib/cjs/tools/ClipViewTool.js +2 -2
  256. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  257. package/lib/cjs/tools/MeasureTool.js +2 -2
  258. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  259. package/lib/esm/AccuDraw.js +1 -1
  260. package/lib/esm/AccuDraw.js.map +1 -1
  261. package/lib/esm/BriefcaseConnection.d.ts +23 -3
  262. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  263. package/lib/esm/BriefcaseConnection.js +11 -3
  264. package/lib/esm/BriefcaseConnection.js.map +1 -1
  265. package/lib/esm/CheckpointConnection.js +1 -1
  266. package/lib/esm/CheckpointConnection.js.map +1 -1
  267. package/lib/esm/DisplayStyleState.d.ts +2 -2
  268. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  269. package/lib/esm/DisplayStyleState.js +12 -4
  270. package/lib/esm/DisplayStyleState.js.map +1 -1
  271. package/lib/esm/IModelApp.d.ts +3 -3
  272. package/lib/esm/IModelApp.d.ts.map +1 -1
  273. package/lib/esm/IModelApp.js +2 -2
  274. package/lib/esm/IModelApp.js.map +1 -1
  275. package/lib/esm/IModelConnection.d.ts +4 -6
  276. package/lib/esm/IModelConnection.d.ts.map +1 -1
  277. package/lib/esm/IModelConnection.js +6 -7
  278. package/lib/esm/IModelConnection.js.map +1 -1
  279. package/lib/esm/IpcApp.d.ts +1 -1
  280. package/lib/esm/IpcApp.d.ts.map +1 -1
  281. package/lib/esm/IpcApp.js +1 -1
  282. package/lib/esm/IpcApp.js.map +1 -1
  283. package/lib/esm/NativeApp.d.ts +8 -1
  284. package/lib/esm/NativeApp.d.ts.map +1 -1
  285. package/lib/esm/NativeApp.js +10 -6
  286. package/lib/esm/NativeApp.js.map +1 -1
  287. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  288. package/lib/esm/NoRenderApp.js +3 -0
  289. package/lib/esm/NoRenderApp.js.map +1 -1
  290. package/lib/esm/SpatialViewState.d.ts +4 -1
  291. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  292. package/lib/esm/SpatialViewState.js +19 -5
  293. package/lib/esm/SpatialViewState.js.map +1 -1
  294. package/lib/esm/Tiles.d.ts +4 -0
  295. package/lib/esm/Tiles.d.ts.map +1 -1
  296. package/lib/esm/Tiles.js +11 -0
  297. package/lib/esm/Tiles.js.map +1 -1
  298. package/lib/esm/ViewContext.js +1 -1
  299. package/lib/esm/ViewContext.js.map +1 -1
  300. package/lib/esm/ViewManager.d.ts.map +1 -1
  301. package/lib/esm/ViewManager.js +2 -3
  302. package/lib/esm/ViewManager.js.map +1 -1
  303. package/lib/esm/ViewState.d.ts +4 -5
  304. package/lib/esm/ViewState.d.ts.map +1 -1
  305. package/lib/esm/ViewState.js +0 -1
  306. package/lib/esm/ViewState.js.map +1 -1
  307. package/lib/esm/Viewport.d.ts +53 -4
  308. package/lib/esm/Viewport.d.ts.map +1 -1
  309. package/lib/esm/Viewport.js +83 -35
  310. package/lib/esm/Viewport.js.map +1 -1
  311. package/lib/esm/extension/ExtensionImpl.js +2 -2
  312. package/lib/esm/extension/ExtensionImpl.js.map +1 -1
  313. package/lib/esm/extension/ExtensionRuntime.js +5 -2
  314. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  315. package/lib/esm/render/GraphicBranch.d.ts +3 -0
  316. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  317. package/lib/esm/render/GraphicBranch.js.map +1 -1
  318. package/lib/esm/render/GraphicBuilder.d.ts +1 -1
  319. package/lib/esm/render/GraphicBuilder.js +1 -1
  320. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  321. package/lib/esm/render/MockRender.d.ts.map +1 -1
  322. package/lib/esm/render/MockRender.js +3 -0
  323. package/lib/esm/render/MockRender.js.map +1 -1
  324. package/lib/esm/render/RealityMeshParams.d.ts +3 -4
  325. package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
  326. package/lib/esm/render/RealityMeshParams.js +10 -6
  327. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  328. package/lib/esm/render/RenderMaterial.d.ts +1 -1
  329. package/lib/esm/render/RenderMaterial.d.ts.map +1 -1
  330. package/lib/esm/render/RenderMaterial.js.map +1 -1
  331. package/lib/esm/render/RenderSystem.d.ts +4 -4
  332. package/lib/esm/render/RenderSystem.js +4 -4
  333. package/lib/esm/render/RenderSystem.js.map +1 -1
  334. package/lib/esm/render/RenderTarget.d.ts +1 -1
  335. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  336. package/lib/esm/render/RenderTarget.js +1 -1
  337. package/lib/esm/render/RenderTarget.js.map +1 -1
  338. package/lib/esm/render/VisibleFeature.d.ts +5 -5
  339. package/lib/esm/render/VisibleFeature.js.map +1 -1
  340. package/lib/esm/render/primitives/DisplayParams.d.ts.map +1 -1
  341. package/lib/esm/render/primitives/DisplayParams.js +2 -1
  342. package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
  343. package/lib/esm/render/webgl/BackgroundMapDrape.js +3 -3
  344. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  345. package/lib/esm/render/webgl/BranchState.d.ts +3 -0
  346. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  347. package/lib/esm/render/webgl/BranchState.js +5 -0
  348. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  349. package/lib/esm/render/webgl/CachedGeometry.d.ts +32 -0
  350. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  351. package/lib/esm/render/webgl/CachedGeometry.js +69 -0
  352. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  353. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  354. package/lib/esm/render/webgl/DrawCommand.js +6 -4
  355. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  356. package/lib/esm/render/webgl/EDL.d.ts +40 -0
  357. package/lib/esm/render/webgl/EDL.d.ts.map +1 -0
  358. package/lib/esm/render/webgl/EDL.js +260 -0
  359. package/lib/esm/render/webgl/EDL.js.map +1 -0
  360. package/lib/esm/render/webgl/EdgeSettings.js +2 -2
  361. package/lib/esm/render/webgl/FrameBuffer.d.ts +4 -0
  362. package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
  363. package/lib/esm/render/webgl/FrameBuffer.js +9 -0
  364. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  365. package/lib/esm/render/webgl/FrustumUniforms.d.ts +7 -0
  366. package/lib/esm/render/webgl/FrustumUniforms.d.ts.map +1 -1
  367. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  368. package/lib/esm/render/webgl/Layer.js +2 -2
  369. package/lib/esm/render/webgl/LayerCommands.js +2 -2
  370. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  371. package/lib/esm/render/webgl/PlanarClassifier.js +9 -8
  372. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  373. package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -1
  374. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  375. package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
  376. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  377. package/lib/esm/render/webgl/PointCloud.js +2 -0
  378. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  379. package/lib/esm/render/webgl/RealityMesh.d.ts +3 -1
  380. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  381. package/lib/esm/render/webgl/RealityMesh.js +8 -3
  382. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  383. package/lib/esm/render/webgl/RealityModelUniforms.d.ts +9 -0
  384. package/lib/esm/render/webgl/RealityModelUniforms.d.ts.map +1 -1
  385. package/lib/esm/render/webgl/RealityModelUniforms.js +50 -0
  386. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
  387. package/lib/esm/render/webgl/RenderCommands.d.ts +2 -1
  388. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  389. package/lib/esm/render/webgl/RenderCommands.js +46 -38
  390. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  391. package/lib/esm/render/webgl/RenderFlags.d.ts +19 -17
  392. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  393. package/lib/esm/render/webgl/RenderFlags.js +8 -6
  394. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  395. package/lib/esm/render/webgl/SceneCompositor.d.ts +6 -1
  396. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  397. package/lib/esm/render/webgl/SceneCompositor.js +194 -77
  398. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  399. package/lib/esm/render/webgl/SolarShadowMap.js +3 -3
  400. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  401. package/lib/esm/render/webgl/SurfaceGeometry.js +5 -5
  402. package/lib/esm/render/webgl/Target.js +7 -7
  403. package/lib/esm/render/webgl/Target.js.map +1 -1
  404. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  405. package/lib/esm/render/webgl/Technique.js +18 -3
  406. package/lib/esm/render/webgl/Technique.js.map +1 -1
  407. package/lib/esm/render/webgl/TechniqueFlags.js +4 -4
  408. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  409. package/lib/esm/render/webgl/TechniqueId.d.ts +6 -2
  410. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  411. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  412. package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
  413. package/lib/esm/render/webgl/UniformHandle.js +1 -2
  414. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  415. package/lib/esm/render/webgl/VisibleTileFeatures.js +5 -5
  416. package/lib/esm/render/webgl/glsl/EDL.d.ts +14 -0
  417. package/lib/esm/render/webgl/glsl/EDL.d.ts.map +1 -0
  418. package/lib/esm/render/webgl/glsl/EDL.js +253 -0
  419. package/lib/esm/render/webgl/glsl/EDL.js.map +1 -0
  420. package/lib/esm/render/webgl/glsl/RenderPass.js +12 -12
  421. package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
  422. package/lib/esm/render/webgl/glsl/Surface.js +1 -1
  423. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  424. package/lib/esm/tile/BatchedTileIdMap.js +1 -1
  425. package/lib/esm/tile/BatchedTileIdMap.js.map +1 -1
  426. package/lib/esm/tile/DynamicIModelTile.js +1 -1
  427. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  428. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  429. package/lib/esm/tile/GltfReader.js +4 -2
  430. package/lib/esm/tile/GltfReader.js.map +1 -1
  431. package/lib/esm/tile/IModelTile.js +1 -1
  432. package/lib/esm/tile/IModelTile.js.map +1 -1
  433. package/lib/esm/tile/ImdlReader.d.ts +6 -0
  434. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  435. package/lib/esm/tile/ImdlReader.js +20 -7
  436. package/lib/esm/tile/ImdlReader.js.map +1 -1
  437. package/lib/esm/tile/OrbitGtTileTree.d.ts +14 -1
  438. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  439. package/lib/esm/tile/OrbitGtTileTree.js +30 -12
  440. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  441. package/lib/esm/tile/RealityModelTileTree.d.ts +4 -3
  442. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  443. package/lib/esm/tile/RealityModelTileTree.js +62 -54
  444. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  445. package/lib/esm/tile/RealityTileLoader.js +2 -2
  446. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  447. package/lib/esm/tile/RealityTileTree.d.ts +5 -0
  448. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  449. package/lib/esm/tile/RealityTileTree.js +9 -4
  450. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  451. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  452. package/lib/esm/tile/TileAdmin.js +15 -7
  453. package/lib/esm/tile/TileAdmin.js.map +1 -1
  454. package/lib/esm/tile/TileDrawArgs.js +1 -1
  455. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  456. package/lib/esm/tile/TileTreeReference.d.ts +3 -0
  457. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  458. package/lib/esm/tile/TileTreeReference.js +3 -0
  459. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  460. package/lib/esm/tile/map/ArcGisUtilities.d.ts +14 -1
  461. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  462. package/lib/esm/tile/map/ArcGisUtilities.js +57 -27
  463. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  464. package/lib/esm/tile/map/CesiumTerrainProvider.js +9 -9
  465. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  466. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +14 -2
  467. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  468. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +77 -37
  469. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  470. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
  471. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  472. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +65 -52
  473. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  474. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +1 -0
  475. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  476. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -0
  477. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  478. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +2 -2
  479. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  480. package/lib/esm/tile/map/ImageryTileTree.d.ts +26 -1
  481. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  482. package/lib/esm/tile/map/ImageryTileTree.js +53 -4
  483. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  484. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  485. package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -2
  486. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  487. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +12 -2
  488. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  489. package/lib/esm/tile/map/MapLayerImageryProvider.js +16 -4
  490. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  491. package/lib/esm/tile/map/MapLayerSources.d.ts +3 -1
  492. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  493. package/lib/esm/tile/map/MapLayerSources.js +2 -0
  494. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  495. package/lib/esm/tile/map/MapTile.d.ts +5 -0
  496. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  497. package/lib/esm/tile/map/MapTile.js +33 -14
  498. package/lib/esm/tile/map/MapTile.js.map +1 -1
  499. package/lib/esm/tile/map/MapTileTree.d.ts +42 -3
  500. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  501. package/lib/esm/tile/map/MapTileTree.js +126 -9
  502. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  503. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
  504. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  505. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +26 -0
  506. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  507. package/lib/esm/tile/map/WmtsCapabilities.d.ts +23 -68
  508. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  509. package/lib/esm/tile/map/WmtsCapabilities.js +268 -259
  510. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  511. package/lib/esm/tools/ClipViewTool.js +2 -2
  512. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  513. package/lib/esm/tools/MeasureTool.js +2 -2
  514. package/lib/esm/tools/MeasureTool.js.map +1 -1
  515. package/lib/public/locales/en/iModelJs.json +2 -2
  516. package/package.json +20 -21
@@ -26,7 +26,8 @@ import { SolarShadowMap } from "./SolarShadowMap";
26
26
  import { System } from "./System";
27
27
  import { TextureHandle } from "./Texture";
28
28
  import { RenderBufferMultiSample } from "./RenderBuffer";
29
- function collectTextureStatistics(texture, stats) {
29
+ import { EDLMode, EyeDomeLighting } from "./EDL";
30
+ export function collectTextureStatistics(texture, stats) {
30
31
  if (undefined !== texture)
31
32
  stats.addTextureAttachment(texture.bytesUsed);
32
33
  }
@@ -294,7 +295,7 @@ class FrameBuffers {
294
295
  this.volClassCreateBlendAltZ = dispose(this.volClassCreateBlendAltZ);
295
296
  }
296
297
  }
297
- function collectGeometryStatistics(geom, stats) {
298
+ export function collectGeometryStatistics(geom, stats) {
298
299
  if (undefined !== geom)
299
300
  geom.collectStatistics(stats);
300
301
  }
@@ -516,6 +517,7 @@ export class SceneCompositor {
516
517
  constructor(target) {
517
518
  this.target = target;
518
519
  this.solarShadowMap = new SolarShadowMap(target);
520
+ this.eyeDomeLighting = new EyeDomeLighting(target);
519
521
  this._needHiddenEdges = false;
520
522
  }
521
523
  get needHiddenEdges() { return this._needHiddenEdges; }
@@ -545,6 +547,7 @@ class Compositor extends SceneCompositor {
545
547
  this._hiliteRenderState = new RenderState();
546
548
  this._noDepthMaskRenderState = new RenderState();
547
549
  this._backgroundMapRenderState = new RenderState();
550
+ this._pointCloudRenderState = new RenderState();
548
551
  this._debugStencil = 0; // 0 to draw stencil volumes normally, 1 to draw as opaque, 2 to draw blended
549
552
  this._haveVolumeClassifier = false;
550
553
  this._antialiasSamples = 1;
@@ -553,6 +556,7 @@ class Compositor extends SceneCompositor {
553
556
  this._frameBuffers = fbos;
554
557
  this._geom = geometry;
555
558
  this._opaqueRenderState.flags.depthTest = true;
559
+ this._pointCloudRenderState.flags.depthTest = true;
556
560
  this._translucentRenderState.flags.depthMask = false;
557
561
  this._translucentRenderState.flags.blend = this._translucentRenderState.flags.depthTest = true;
558
562
  this._translucentRenderState.blend.setBlendFuncSeparate(GL.BlendFactor.One, GL.BlendFactor.Zero, GL.BlendFactor.One, GL.BlendFactor.OneMinusSrcAlpha);
@@ -784,6 +788,12 @@ class Compositor extends SceneCompositor {
784
788
  frameBufferStack: System.instance.frameBufferStack,
785
789
  });
786
790
  this.target.frameStatsCollector.endTime("onRenderOpaqueTime");
791
+ // Render point cloud geometry with possible EDL (WebGL2 only)
792
+ if (System.instance.capabilities.isWebGL2) {
793
+ this.target.beginPerfMetricRecord("Render PointClouds");
794
+ this.renderPointClouds(commands, compositeFlags);
795
+ this.target.endPerfMetricRecord();
796
+ }
787
797
  // Render opaque geometry
788
798
  this.target.beginPerfMetricRecord("Render Opaque");
789
799
  this.renderOpaque(commands, compositeFlags, false);
@@ -792,7 +802,7 @@ class Compositor extends SceneCompositor {
792
802
  this.target.frameStatsCollector.beginTime("translucentTime");
793
803
  // Render translucent layers
794
804
  this.target.beginPerfMetricRecord("Render Translucent Layers");
795
- this.renderLayers(commands, needComposite, 6 /* TranslucentLayers */);
805
+ this.renderLayers(commands, needComposite, 7 /* TranslucentLayers */);
796
806
  this.target.endPerfMetricRecord();
797
807
  if (needComposite) {
798
808
  this._geom.composite.update(compositeFlags);
@@ -813,13 +823,13 @@ class Compositor extends SceneCompositor {
813
823
  // Render overlay Layers
814
824
  this.target.frameStatsCollector.beginTime("overlaysTime");
815
825
  this.target.beginPerfMetricRecord("Render Overlay Layers");
816
- this.renderLayers(commands, false, 10 /* OverlayLayers */);
826
+ this.renderLayers(commands, false, 11 /* OverlayLayers */);
817
827
  this.target.endPerfMetricRecord();
818
828
  this.target.frameStatsCollector.endTime("overlaysTime");
819
829
  this.target.popViewClip();
820
830
  }
821
831
  get fullHeight() { return this.target.viewRect.height; }
822
- drawForReadPixels(commands, sceneOverlays, overlayDecorations) {
832
+ drawForReadPixels(commands, sceneOverlays, worldOverlayDecorations, viewOverlayDecorations) {
823
833
  this.target.beginPerfMetricRecord("Render Background", true);
824
834
  if (!this.preDraw()) {
825
835
  this.target.endPerfMetricRecord(true); // End Render Background record if returning
@@ -842,28 +852,29 @@ class Compositor extends SceneCompositor {
842
852
  // Ensure it draws before any opaque geometry (including layers), without depth.
843
853
  this.target.beginPerfMetricRecord("Render background map", true);
844
854
  this.target.drawingBackgroundForReadPixels = true;
845
- this.renderLayers(commands, false, 14 /* BackgroundMap */);
855
+ this.renderLayers(commands, false, 15 /* BackgroundMap */);
846
856
  this.target.drawingBackgroundForReadPixels = false;
847
857
  this.target.endPerfMetricRecord(true);
848
858
  this.target.beginPerfMetricRecord("Render Opaque Layers", true);
849
859
  this.renderLayers(commands, false, 1 /* OpaqueLayers */);
850
860
  this.target.endPerfMetricRecord(true);
861
+ // PointClouds are rendered in Opaque pass for readPixels
851
862
  this.target.beginPerfMetricRecord("Render Opaque", true);
852
863
  this.renderOpaque(commands, 0 /* None */, true);
853
864
  this.target.endPerfMetricRecord(true);
854
865
  this.target.beginPerfMetricRecord("Render Translucent Layers", true);
855
- this.renderLayers(commands, false, 6 /* TranslucentLayers */);
866
+ this.renderLayers(commands, false, 7 /* TranslucentLayers */);
856
867
  this.target.endPerfMetricRecord(true);
857
868
  this.target.beginPerfMetricRecord("Render Overlay Layers", true);
858
- this.renderLayers(commands, false, 10 /* OverlayLayers */);
869
+ this.renderLayers(commands, false, 11 /* OverlayLayers */);
859
870
  this.target.endPerfMetricRecord(true);
860
871
  this.target.popViewClip();
861
872
  }
862
- if (0 === sceneOverlays.length && (undefined === overlayDecorations || 0 === overlayDecorations.length))
873
+ if (!sceneOverlays.length && !(worldOverlayDecorations === null || worldOverlayDecorations === void 0 ? void 0 : worldOverlayDecorations.length) && !(viewOverlayDecorations === null || viewOverlayDecorations === void 0 ? void 0 : viewOverlayDecorations.length))
863
874
  return;
864
875
  // Now populate the opaque passes with any pickable world overlays
865
876
  this.target.beginPerfMetricRecord("Overlay Draws", true);
866
- commands.initForPickOverlays(sceneOverlays, overlayDecorations);
877
+ commands.initForPickOverlays(sceneOverlays, worldOverlayDecorations, viewOverlayDecorations);
867
878
  if (commands.isEmpty) {
868
879
  this.target.endPerfMetricRecord(true); // End Overlay Draws record if returning
869
880
  return;
@@ -933,11 +944,13 @@ class Compositor extends SceneCompositor {
933
944
  && this._frameBuffers.isDisposed
934
945
  && this._geom.isDisposed
935
946
  && !this._haveVolumeClassifier
936
- && this.solarShadowMap.isDisposed;
947
+ && this.solarShadowMap.isDisposed
948
+ && this.eyeDomeLighting.isDisposed;
937
949
  }
938
950
  dispose() {
939
951
  this.reset();
940
952
  dispose(this.solarShadowMap);
953
+ dispose(this.eyeDomeLighting);
941
954
  }
942
955
  // Resets anything that depends on the dimensions of the render target.
943
956
  // Does *not* dispose the solar shadow map.
@@ -950,6 +963,7 @@ class Compositor extends SceneCompositor {
950
963
  dispose(this._frameBuffers);
951
964
  dispose(this._geom);
952
965
  this._haveVolumeClassifier = false;
966
+ this.eyeDomeLighting.reset();
953
967
  }
954
968
  init() {
955
969
  this.reset();
@@ -961,7 +975,8 @@ class Compositor extends SceneCompositor {
961
975
  if (this._depth !== undefined) {
962
976
  return this._textures.init(this._width, this._height, this._antialiasSamples)
963
977
  && this._frameBuffers.init(this._textures, this._depth, this._depthMS)
964
- && this._geom.init(this._textures);
978
+ && this._geom.init(this._textures)
979
+ && this.eyeDomeLighting.init(this._width, this._height, this._depth);
965
980
  }
966
981
  return false;
967
982
  }
@@ -980,27 +995,27 @@ class Compositor extends SceneCompositor {
980
995
  return this._textures.disableMultiSampling();
981
996
  }
982
997
  renderBackgroundMap(commands, needComposite) {
983
- const cmds = commands.getCommands(14 /* BackgroundMap */);
998
+ const cmds = commands.getCommands(15 /* BackgroundMap */);
984
999
  if (0 === cmds.length) {
985
1000
  return;
986
1001
  }
987
1002
  const fbStack = System.instance.frameBufferStack;
988
1003
  const fbo = this.getBackgroundFbo(needComposite);
989
1004
  fbStack.execute(fbo, true, this.useMsBuffers, () => {
990
- System.instance.applyRenderState(this.getRenderState(14 /* BackgroundMap */));
991
- this.target.techniques.execute(this.target, cmds, 14 /* BackgroundMap */);
1005
+ System.instance.applyRenderState(this.getRenderState(15 /* BackgroundMap */));
1006
+ this.target.techniques.execute(this.target, cmds, 15 /* BackgroundMap */);
992
1007
  });
993
1008
  }
994
1009
  renderSkyBox(commands, needComposite) {
995
- const cmds = commands.getCommands(13 /* SkyBox */);
1010
+ const cmds = commands.getCommands(14 /* SkyBox */);
996
1011
  if (0 === cmds.length) {
997
1012
  return;
998
1013
  }
999
1014
  const fbStack = System.instance.frameBufferStack;
1000
1015
  const fbo = this.getBackgroundFbo(needComposite);
1001
1016
  fbStack.execute(fbo, true, this.useMsBuffers, () => {
1002
- System.instance.applyRenderState(this.getRenderState(13 /* SkyBox */));
1003
- this.target.techniques.execute(this.target, cmds, 13 /* SkyBox */);
1017
+ System.instance.applyRenderState(this.getRenderState(14 /* SkyBox */));
1018
+ this.target.techniques.execute(this.target, cmds, 14 /* SkyBox */);
1004
1019
  });
1005
1020
  }
1006
1021
  renderBackground(commands, needComposite) {
@@ -1122,7 +1137,7 @@ class Compositor extends SceneCompositor {
1122
1137
  System.instance.frameBufferStack.execute(this._frameBuffers.stencilSet, false, this.useMsBuffers, () => {
1123
1138
  this.target.pushState(this._vcBranchState);
1124
1139
  System.instance.applyRenderState(this._vcSetStencilRenderState);
1125
- this.target.techniques.executeForIndexedClassifier(this.target, cmdsByIndex, 5 /* Classification */);
1140
+ this.target.techniques.executeForIndexedClassifier(this.target, cmdsByIndex, 6 /* Classification */);
1126
1141
  this.target.popBranch();
1127
1142
  });
1128
1143
  // Process the stencil for the pick data.
@@ -1130,8 +1145,8 @@ class Compositor extends SceneCompositor {
1130
1145
  }
1131
1146
  renderVolumeClassification(commands, compositeFlags, renderForReadPixels) {
1132
1147
  // Sometimes we need to render the classifier stencil volumes one at a time, if so draw them from the cmdsByIndex list
1133
- const cmds = commands.getCommands(5 /* Classification */);
1134
- const cmdsByIndex = commands.getCommands(16 /* ClassificationByIndex */);
1148
+ const cmds = commands.getCommands(6 /* Classification */);
1149
+ const cmdsByIndex = commands.getCommands(17 /* ClassificationByIndex */);
1135
1150
  let numCmdsPerClassifier = 0;
1136
1151
  for (const cmd of cmdsByIndex) { // Figure out how many commands there are per index/primitive
1137
1152
  numCmdsPerClassifier++;
@@ -1140,7 +1155,7 @@ class Compositor extends SceneCompositor {
1140
1155
  break;
1141
1156
  }
1142
1157
  }
1143
- const cmdsForVC = commands.getCommands(19 /* VolumeClassifiedRealityData */);
1158
+ const cmdsForVC = commands.getCommands(20 /* VolumeClassifiedRealityData */);
1144
1159
  if (!this.target.activeVolumeClassifierProps || (renderForReadPixels && 0 === cmds.length) || 0 === cmdsForVC.length)
1145
1160
  return;
1146
1161
  let outsideFlags = this.target.activeVolumeClassifierProps.flags.outside;
@@ -1160,13 +1175,13 @@ class Compositor extends SceneCompositor {
1160
1175
  if (this._debugStencil > 0) {
1161
1176
  fbStack.execute(fboColorAndZ, true, this.useMsBuffers, () => {
1162
1177
  if (1 === this._debugStencil) {
1163
- System.instance.applyRenderState(this.getRenderState(4 /* OpaqueGeneral */));
1164
- this.target.techniques.execute(this.target, cmds, 4 /* OpaqueGeneral */);
1178
+ System.instance.applyRenderState(this.getRenderState(5 /* OpaqueGeneral */));
1179
+ this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
1165
1180
  }
1166
1181
  else {
1167
1182
  this.target.pushState(this._vcBranchState);
1168
1183
  System.instance.applyRenderState(this._vcDebugRenderState);
1169
- this.target.techniques.execute(this.target, cmds, 5 /* Classification */);
1184
+ this.target.techniques.execute(this.target, cmds, 6 /* Classification */);
1170
1185
  this.target.popBranch();
1171
1186
  }
1172
1187
  });
@@ -1231,7 +1246,7 @@ class Compositor extends SceneCompositor {
1231
1246
  System.instance.frameBufferStack.execute(this._frameBuffers.altZOnly, false, this.useMsBuffers, () => {
1232
1247
  this.target.pushState(this._vcBranchState);
1233
1248
  System.instance.applyRenderState(this._vcSetStencilRenderState);
1234
- this.target.techniques.execute(this.target, cmds, 5 /* Classification */);
1249
+ this.target.techniques.execute(this.target, cmds, 6 /* Classification */);
1235
1250
  // After we create the stencil we need to clear the Z for the next step (so also must turn on z writing temporarily).
1236
1251
  this._vcSetStencilRenderState.flags.depthMask = true;
1237
1252
  System.instance.applyRenderState(this._vcSetStencilRenderState);
@@ -1270,7 +1285,7 @@ class Compositor extends SceneCompositor {
1270
1285
  fbStack.execute(zOnlyFbo, false, this.useMsBuffers, () => {
1271
1286
  this.target.pushState(this._vcBranchState);
1272
1287
  System.instance.applyRenderState(this._vcSetStencilRenderState);
1273
- this.target.techniques.execute(this.target, cmds, 5 /* Classification */);
1288
+ this.target.techniques.execute(this.target, cmds, 6 /* Classification */);
1274
1289
  this.target.popBranch();
1275
1290
  System.instance.bindTexture2d(TextureUnit.Two, undefined);
1276
1291
  System.instance.bindTexture2d(TextureUnit.Five, undefined);
@@ -1326,7 +1341,7 @@ class Compositor extends SceneCompositor {
1326
1341
  fbStack.execute(zOnlyFbo, false, this.useMsBuffers, () => {
1327
1342
  this.target.pushState(this._vcBranchState);
1328
1343
  System.instance.applyRenderState(this._vcSetStencilRenderState);
1329
- this.target.techniques.execute(this.target, nxtCmds, 5 /* Classification */);
1344
+ this.target.techniques.execute(this.target, nxtCmds, 6 /* Classification */);
1330
1345
  this.target.popBranch();
1331
1346
  });
1332
1347
  // Process the stencil. Just render the volume normally (us opaque pass), but use blending to modify the source alpha that gets written to the blend texture.
@@ -1337,7 +1352,7 @@ class Compositor extends SceneCompositor {
1337
1352
  this._vcColorRenderState.flags.cull = true;
1338
1353
  System.instance.applyRenderState(this._vcColorRenderState);
1339
1354
  this.target.activeVolumeClassifierTexture = undefined; // make sure this texture is undefined so we do not use the planar classification shader
1340
- this.target.techniques.execute(this.target, nxtCmds, 4 /* OpaqueGeneral */);
1355
+ this.target.techniques.execute(this.target, nxtCmds, 5 /* OpaqueGeneral */);
1341
1356
  this._vcColorRenderState.flags.cull = false;
1342
1357
  this.target.popBranch();
1343
1358
  });
@@ -1363,7 +1378,7 @@ class Compositor extends SceneCompositor {
1363
1378
  System.instance.context.clearDepth(1.0);
1364
1379
  System.instance.context.clear(GL.BufferBit.Depth);
1365
1380
  this.target.activeVolumeClassifierTexture = this._geom.volClassCopyZ.texture;
1366
- this.target.techniques.execute(this.target, cmds, 4 /* OpaqueGeneral */);
1381
+ this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
1367
1382
  this.target.activeVolumeClassifierTexture = undefined;
1368
1383
  this._vcColorRenderState.flags.depthTest = false;
1369
1384
  this._vcColorRenderState.flags.depthMask = false;
@@ -1380,8 +1395,8 @@ class Compositor extends SceneCompositor {
1380
1395
  // and this stage can be skipped. In order for this to work the list of commands needs to get reduced to only the ones which draw hilited volumes.
1381
1396
  // We cannot use the hillite shader to draw them since it doesn't handle logZ properly (it doesn't need to since it is only used elsewhere when Z write is turned off)
1382
1397
  // and we don't really want another whole set of hilite shaders just for this.
1383
- const cmdsSelected = extractHilitedVolumeClassifierCommands(this.target.hilites, commands.getCommands(15 /* HiliteClassification */));
1384
- commands.replaceCommands(15 /* HiliteClassification */, cmdsSelected); // replace the hilite command list for use in hilite pass as well.
1398
+ const cmdsSelected = extractHilitedVolumeClassifierCommands(this.target.hilites, commands.getCommands(16 /* HiliteClassification */));
1399
+ commands.replaceCommands(16 /* HiliteClassification */, cmdsSelected); // replace the hilite command list for use in hilite pass as well.
1385
1400
  // if (cmdsSelected.length > 0 && insideFlags !== this.target.activeVolumeClassifierProps!.flags.selected) {
1386
1401
  if (!doColorByElement && cmdsSelected.length > 0 && insideFlags !== SpatialClassifierInsideDisplay.Hilite) { // assume selected ones are always hilited
1387
1402
  // Set the stencil using just the hilited volume classifiers.
@@ -1393,7 +1408,7 @@ class Compositor extends SceneCompositor {
1393
1408
  System.instance.context.clearStencil(0);
1394
1409
  System.instance.context.clear(GL.BufferBit.Stencil);
1395
1410
  }
1396
- this.target.techniques.execute(this.target, cmdsSelected, 5 /* Classification */);
1411
+ this.target.techniques.execute(this.target, cmdsSelected, 6 /* Classification */);
1397
1412
  this.target.popBranch();
1398
1413
  });
1399
1414
  if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers)
@@ -1432,7 +1447,7 @@ class Compositor extends SceneCompositor {
1432
1447
  fbStack.execute(this._frameBuffers.stencilSet, false, this.useMsBuffers, () => {
1433
1448
  this.target.pushState(this._vcBranchState);
1434
1449
  System.instance.applyRenderState(this._vcSetStencilRenderState);
1435
- this.target.techniques.executeForIndexedClassifier(this.target, flashedClassifierCmds, 4 /* OpaqueGeneral */);
1450
+ this.target.techniques.executeForIndexedClassifier(this.target, flashedClassifierCmds, 5 /* OpaqueGeneral */);
1436
1451
  this.target.popBranch();
1437
1452
  });
1438
1453
  // Process the stencil to flash the contents.
@@ -1454,30 +1469,30 @@ class Compositor extends SceneCompositor {
1454
1469
  system.context.clearColor(0, 0, 0, 0);
1455
1470
  system.context.clear(GL.BufferBit.Color);
1456
1471
  // Draw the normal hilite geometry.
1457
- this.drawPass(commands, 9 /* Hilite */);
1472
+ this.drawPass(commands, 10 /* Hilite */);
1458
1473
  });
1459
1474
  // Process planar classifiers
1460
- const planarClassifierCmds = commands.getCommands(17 /* HilitePlanarClassification */);
1475
+ const planarClassifierCmds = commands.getCommands(18 /* HilitePlanarClassification */);
1461
1476
  if (0 !== planarClassifierCmds.length) {
1462
1477
  system.frameBufferStack.execute(this._frameBuffers.hiliteUsingStencil, true, false, () => {
1463
1478
  system.applyRenderState(this._opaqueRenderState);
1464
- this.target.techniques.execute(this.target, planarClassifierCmds, 17 /* HilitePlanarClassification */);
1479
+ this.target.techniques.execute(this.target, planarClassifierCmds, 18 /* HilitePlanarClassification */);
1465
1480
  });
1466
1481
  }
1467
1482
  // Process the volume classifiers.
1468
- const vcHiliteCmds = commands.getCommands(15 /* HiliteClassification */);
1483
+ const vcHiliteCmds = commands.getCommands(16 /* HiliteClassification */);
1469
1484
  if (0 !== vcHiliteCmds.length && undefined !== this._vcBranchState) {
1470
1485
  // Set the stencil for the given classifier stencil volume.
1471
1486
  system.frameBufferStack.execute(this._frameBuffers.stencilSet, false, false, () => {
1472
1487
  this.target.pushState(this._vcBranchState);
1473
1488
  system.applyRenderState(this._vcSetStencilRenderState);
1474
- this.target.techniques.execute(this.target, vcHiliteCmds, 9 /* Hilite */);
1489
+ this.target.techniques.execute(this.target, vcHiliteCmds, 10 /* Hilite */);
1475
1490
  this.target.popBranch();
1476
1491
  });
1477
1492
  // Process the stencil for the hilite data.
1478
1493
  system.frameBufferStack.execute(this._frameBuffers.hiliteUsingStencil, true, false, () => {
1479
1494
  system.applyRenderState(this._vcPickDataRenderState);
1480
- this.target.techniques.execute(this.target, vcHiliteCmds, 9 /* Hilite */);
1495
+ this.target.techniques.execute(this.target, vcHiliteCmds, 10 /* Hilite */);
1481
1496
  });
1482
1497
  }
1483
1498
  }
@@ -1489,27 +1504,29 @@ class Compositor extends SceneCompositor {
1489
1504
  getRenderState(pass) {
1490
1505
  switch (pass) {
1491
1506
  case 1 /* OpaqueLayers */:
1492
- case 6 /* TranslucentLayers */:
1493
- case 10 /* OverlayLayers */:
1507
+ case 7 /* TranslucentLayers */:
1508
+ case 11 /* OverlayLayers */:
1494
1509
  // NB: During pick, we don't want blending - it will mess up our pick buffer data and we don't care about the color data.
1495
1510
  // During normal draw, we don't use the pick buffers for anything, and we want color blending.
1496
1511
  // (We get away with this because surfaces always draw before their edges, and we're not depth-testing, so edges always draw atop surfaces without pick buffer testing).
1497
1512
  this._layerRenderState.flags.blend = !this.target.isReadPixelsInProgress;
1498
1513
  // Transparent non-overlay Layers are drawn between opaque and translucent passes. Test depth, don't write it, so that they blend with opaque.
1499
- this._layerRenderState.flags.depthMask = 6 /* TranslucentLayers */ !== pass;
1500
- this._layerRenderState.depthFunc = (6 /* TranslucentLayers */ === pass) ? GL.DepthFunc.Default : GL.DepthFunc.Always;
1514
+ this._layerRenderState.flags.depthMask = 7 /* TranslucentLayers */ !== pass;
1515
+ this._layerRenderState.depthFunc = (7 /* TranslucentLayers */ === pass) ? GL.DepthFunc.Default : GL.DepthFunc.Always;
1501
1516
  return this._layerRenderState;
1502
1517
  case 2 /* OpaqueLinear */:
1503
1518
  case 3 /* OpaquePlanar */:
1504
- case 4 /* OpaqueGeneral */:
1505
- case 17 /* HilitePlanarClassification */:
1519
+ case 5 /* OpaqueGeneral */:
1520
+ case 18 /* HilitePlanarClassification */:
1506
1521
  return this._opaqueRenderState;
1507
- case 7 /* Translucent */:
1522
+ case 8 /* Translucent */:
1508
1523
  return this._translucentRenderState;
1509
- case 9 /* Hilite */:
1524
+ case 10 /* Hilite */:
1510
1525
  return this._hiliteRenderState;
1511
- case 14 /* BackgroundMap */:
1526
+ case 15 /* BackgroundMap */:
1512
1527
  return this._backgroundMapRenderState;
1528
+ case 4 /* PointClouds */:
1529
+ return this._pointCloudRenderState;
1513
1530
  default:
1514
1531
  return this._noDepthMaskRenderState;
1515
1532
  }
@@ -1651,7 +1668,8 @@ class MRTFrameBuffers extends FrameBuffers {
1651
1668
  && undefined === this.idsAndZ
1652
1669
  && undefined === this.idsAndAltZ
1653
1670
  && undefined === this.idsAndZComposite
1654
- && undefined === this.idsAndAltZComposite;
1671
+ && undefined === this.idsAndAltZComposite
1672
+ && undefined === this.edlDrawCol;
1655
1673
  }
1656
1674
  dispose() {
1657
1675
  super.dispose();
@@ -1666,6 +1684,7 @@ class MRTFrameBuffers extends FrameBuffers {
1666
1684
  this.idsAndAltZ = dispose(this.idsAndAltZ);
1667
1685
  this.idsAndZComposite = dispose(this.idsAndZComposite);
1668
1686
  this.idsAndAltZComposite = dispose(this.idsAndAltZComposite);
1687
+ this.edlDrawCol = dispose(this.edlDrawCol);
1669
1688
  }
1670
1689
  }
1671
1690
  class MRTGeometry extends Geometry {
@@ -1745,6 +1764,101 @@ class MRTCompositor extends Compositor {
1745
1764
  system.context.clear(GL.BufferBit.Depth);
1746
1765
  });
1747
1766
  }
1767
+ renderPointClouds(commands, compositeFlags) {
1768
+ var _a, _b;
1769
+ const is3d = 2 /* Perspective */ === this.target.uniforms.frustum.type;
1770
+ // separate individual point clouds and get their point cloud settings
1771
+ const pointClouds = [];
1772
+ let pcs;
1773
+ const cmds = commands.getCommands(4 /* PointClouds */);
1774
+ let curPC;
1775
+ let pushDepth = 0;
1776
+ for (const cmd of cmds) {
1777
+ if ("pushBranch" === cmd.opcode) { // should be first command
1778
+ ++pushDepth;
1779
+ if (pushDepth === 1) {
1780
+ pcs = (_a = cmd.branch.branch.realityModelDisplaySettings) === null || _a === void 0 ? void 0 : _a.pointCloud;
1781
+ this.target.uniforms.realityModel.pointCloud.updateRange(cmd.branch.branch.realityModelRange, this.target, cmd.branch.localToWorldTransform, is3d);
1782
+ pointClouds.push(curPC = { pcs, cmds: [cmd] });
1783
+ }
1784
+ else {
1785
+ assert(undefined !== curPC);
1786
+ curPC.cmds.push(cmd);
1787
+ }
1788
+ }
1789
+ else {
1790
+ if ("popBranch" === cmd.opcode)
1791
+ --pushDepth;
1792
+ assert(undefined !== curPC);
1793
+ curPC.cmds.push(cmd);
1794
+ }
1795
+ }
1796
+ const needComposite = 0 /* None */ !== compositeFlags;
1797
+ const fbo = (needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor);
1798
+ const useMsBuffers = fbo.isMultisampled && this.useMsBuffers;
1799
+ const system = System.instance;
1800
+ const fbStack = system.frameBufferStack;
1801
+ this._readPickDataFromPingPong = false;
1802
+ for (const pc of pointClouds) {
1803
+ pcs = pc.pcs;
1804
+ let edlOn = (pcs === null || pcs === void 0 ? void 0 : pcs.edlMode) !== "off" && is3d;
1805
+ if (edlOn) {
1806
+ if (undefined === this._textures.hilite)
1807
+ edlOn = false;
1808
+ else {
1809
+ // create fbo on fly if not present, or has changed (from MS)
1810
+ // ###TODO consider not drawing point clouds to MS buffers, at least if EDL, it isn't worth the overhead.
1811
+ // would have to blit depth before draw, use depth for draw, then run shader to copy depth back to MSAA
1812
+ // at end, wherever color buf changed (test alpha, else discard)
1813
+ // this would also simplify this code considerably
1814
+ let drawColBufs;
1815
+ if (undefined !== this._fbos.edlDrawCol)
1816
+ drawColBufs = this._fbos.edlDrawCol.getColorTargets(useMsBuffers, 0);
1817
+ if (undefined === this._fbos.edlDrawCol || this._textures.hilite !== (drawColBufs === null || drawColBufs === void 0 ? void 0 : drawColBufs.tex) || this._textures.hiliteMsBuff !== drawColBufs.msBuf) {
1818
+ this._fbos.edlDrawCol = dispose(this._fbos.edlDrawCol);
1819
+ const filters = [GL.MultiSampling.Filter.Linear];
1820
+ if (useMsBuffers)
1821
+ this._fbos.edlDrawCol = FrameBuffer.create([this._textures.hilite], this._depth, useMsBuffers && this._textures.hiliteMsBuff ? [this._textures.hiliteMsBuff] : undefined, filters, this._depthMS);
1822
+ else
1823
+ this._fbos.edlDrawCol = FrameBuffer.create([this._textures.hilite], this._depth);
1824
+ }
1825
+ if (undefined === this._fbos.edlDrawCol)
1826
+ edlOn = false;
1827
+ else { // can draw EDL
1828
+ // first draw pointcloud to borrowed hilite texture(MS) and regular depth(MS) buffers
1829
+ fbStack.execute(this._fbos.edlDrawCol, true, useMsBuffers, () => {
1830
+ system.context.clearColor(0, 0, 0, 0);
1831
+ system.context.clear(GL.BufferBit.Color);
1832
+ system.applyRenderState(this.getRenderState(4 /* PointClouds */));
1833
+ this.target.techniques.execute(this.target, pc.cmds, 4 /* PointClouds */);
1834
+ });
1835
+ if (useMsBuffers)
1836
+ this._fbos.edlDrawCol.blitMsBuffersToTextures(true, 0); // need to read the non-MS depth and hilite buffers
1837
+ // next process buffers to generate EDL (depth buffer is passed during init)
1838
+ this.target.beginPerfMetricRecord("Calc EDL"); // ### todo keep? (probably)
1839
+ const sts = this.eyeDomeLighting.draw({
1840
+ edlMode: ((_b = pc.pcs) === null || _b === void 0 ? void 0 : _b.edlMode) === "full" ? EDLMode.Full : EDLMode.On,
1841
+ edlFilter: !!(pcs === null || pcs === void 0 ? void 0 : pcs.edlFilter),
1842
+ useMsBuffers,
1843
+ inputTex: this._textures.hilite,
1844
+ curFbo: fbo,
1845
+ });
1846
+ this.target.endPerfMetricRecord();
1847
+ if (!sts) {
1848
+ edlOn = false;
1849
+ }
1850
+ }
1851
+ }
1852
+ }
1853
+ if (!edlOn) {
1854
+ // draw the regular way
1855
+ fbStack.execute(fbo, true, useMsBuffers, () => {
1856
+ system.applyRenderState(this.getRenderState(4 /* PointClouds */));
1857
+ this.target.techniques.execute(this.target, pc.cmds, 4 /* PointClouds */);
1858
+ });
1859
+ }
1860
+ }
1861
+ }
1748
1862
  renderOpaque(commands, compositeFlags, renderForReadPixels) {
1749
1863
  if (0 /* None */ !== (compositeFlags & 4 /* AmbientOcclusion */) && !renderForReadPixels) {
1750
1864
  this.renderOpaqueAO(commands);
@@ -1760,7 +1874,8 @@ class MRTCompositor extends Compositor {
1760
1874
  this.drawPass(commands, 2 /* OpaqueLinear */);
1761
1875
  this.drawPass(commands, 3 /* OpaquePlanar */, true);
1762
1876
  if (renderForReadPixels) {
1763
- this.drawPass(commands, 4 /* OpaqueGeneral */, true);
1877
+ this.drawPass(commands, 4 /* PointClouds */, true); // don't need EDL for this
1878
+ this.drawPass(commands, 5 /* OpaqueGeneral */, true);
1764
1879
  if (useMsBuffers)
1765
1880
  fbo.blitMsBuffersToTextures(true);
1766
1881
  }
@@ -1770,16 +1885,17 @@ class MRTCompositor extends Compositor {
1770
1885
  if (!renderForReadPixels) {
1771
1886
  fbo = (needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor);
1772
1887
  fbStack.execute(fbo, true, useMsBuffers, () => {
1773
- this.drawPass(commands, 4 /* OpaqueGeneral */, false);
1774
- this.drawPass(commands, 8 /* HiddenEdge */, false);
1888
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false);
1889
+ this.drawPass(commands, 9 /* HiddenEdge */, false);
1775
1890
  });
1891
+ // assume we are done with MS at this point, so update the non-MS buffers
1776
1892
  if (useMsBuffers)
1777
1893
  fbo.blitMsBuffersToTextures(needComposite);
1778
1894
  }
1779
1895
  }
1780
1896
  renderOpaqueAO(commands) {
1781
1897
  const fbStack = System.instance.frameBufferStack;
1782
- const haveHiddenEdges = 0 !== commands.getCommands(8 /* HiddenEdge */).length;
1898
+ const haveHiddenEdges = 0 !== commands.getCommands(9 /* HiddenEdge */).length;
1783
1899
  // Output the linear, planar, and pickable surfaces to color and pick data buffers.
1784
1900
  let fbo = this._fbos.opaqueAndCompositeAll;
1785
1901
  const useMsBuffers = fbo.isMultisampled && this.useMsBuffers;
@@ -1788,7 +1904,7 @@ class MRTCompositor extends Compositor {
1788
1904
  this.drawPass(commands, 2 /* OpaqueLinear */);
1789
1905
  this.drawPass(commands, 3 /* OpaquePlanar */, true);
1790
1906
  this._primitiveDrawState = PrimitiveDrawState.Pickable;
1791
- this.drawPass(commands, 4 /* OpaqueGeneral */, true);
1907
+ this.drawPass(commands, 5 /* OpaqueGeneral */, true);
1792
1908
  this._primitiveDrawState = PrimitiveDrawState.Both;
1793
1909
  if (useMsBuffers)
1794
1910
  fbo.blitMsBuffersToTextures(true);
@@ -1798,9 +1914,9 @@ class MRTCompositor extends Compositor {
1798
1914
  fbo = this._fbos.opaqueAndCompositeColor;
1799
1915
  fbStack.execute(fbo, true, useMsBuffers, () => {
1800
1916
  this._primitiveDrawState = PrimitiveDrawState.NonPickable;
1801
- this.drawPass(commands, 4 /* OpaqueGeneral */, false);
1917
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false);
1802
1918
  if (haveHiddenEdges)
1803
- this.drawPass(commands, 8 /* HiddenEdge */, false);
1919
+ this.drawPass(commands, 9 /* HiddenEdge */, false);
1804
1920
  this._primitiveDrawState = PrimitiveDrawState.Both;
1805
1921
  });
1806
1922
  if (useMsBuffers)
@@ -1824,7 +1940,7 @@ class MRTCompositor extends Compositor {
1824
1940
  fbo = this._fbos.opaqueAndCompositeAllHidden;
1825
1941
  this._primitiveDrawState = PrimitiveDrawState.Pickable;
1826
1942
  fbStack.execute(fbo, true, useMsBuffers, () => {
1827
- this.drawPass(commands, 8 /* HiddenEdge */, false);
1943
+ this.drawPass(commands, 9 /* HiddenEdge */, false);
1828
1944
  });
1829
1945
  this._primitiveDrawState = PrimitiveDrawState.Both;
1830
1946
  if (useMsBuffers) {
@@ -1854,13 +1970,13 @@ class MRTCompositor extends Compositor {
1854
1970
  if (renderForReadPixels || needAO) {
1855
1971
  this._readPickDataFromPingPong = true;
1856
1972
  fbStack.execute(needComposite ? this._fbos.opaqueAndCompositeAll : this._fbos.opaqueAll, true, this.useMsBuffers, () => {
1857
- this.drawPass(commands, 4 /* OpaqueGeneral */, true, 19 /* VolumeClassifiedRealityData */);
1973
+ this.drawPass(commands, 5 /* OpaqueGeneral */, true, 20 /* VolumeClassifiedRealityData */);
1858
1974
  });
1859
1975
  }
1860
1976
  else {
1861
1977
  this._readPickDataFromPingPong = false;
1862
1978
  fbStack.execute(needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor, true, this.useMsBuffers, () => {
1863
- this.drawPass(commands, 4 /* OpaqueGeneral */, false, 19 /* VolumeClassifiedRealityData */);
1979
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false, 20 /* VolumeClassifiedRealityData */);
1864
1980
  });
1865
1981
  }
1866
1982
  }
@@ -1870,7 +1986,7 @@ class MRTCompositor extends Compositor {
1870
1986
  : (needComposite ? this._fbos.idsAndAltZComposite : this._fbos.idsAndAltZ));
1871
1987
  System.instance.frameBufferStack.execute(fbo, true, false, () => {
1872
1988
  System.instance.applyRenderState(state);
1873
- this.target.techniques.execute(this.target, cmds, 4 /* OpaqueGeneral */);
1989
+ this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
1874
1990
  });
1875
1991
  this._readPickDataFromPingPong = false;
1876
1992
  }
@@ -1883,7 +1999,7 @@ class MRTCompositor extends Compositor {
1883
1999
  }
1884
2000
  renderTranslucent(commands) {
1885
2001
  System.instance.frameBufferStack.execute(this._fbos.translucent, true, false, () => {
1886
- this.drawPass(commands, 7 /* Translucent */);
2002
+ this.drawPass(commands, 8 /* Translucent */);
1887
2003
  });
1888
2004
  }
1889
2005
  pingPong() {
@@ -1979,7 +2095,7 @@ class MPCompositor extends Compositor {
1979
2095
  switch (pass) {
1980
2096
  case 2 /* OpaqueLinear */:
1981
2097
  case 3 /* OpaquePlanar */:
1982
- case 4 /* OpaqueGeneral */:
2098
+ case 5 /* OpaqueGeneral */:
1983
2099
  return this._drawMultiPassDepth ? this._opaqueRenderState : this._opaqueRenderStateNoZWt;
1984
2100
  }
1985
2101
  return super.getRenderState(pass);
@@ -2004,6 +2120,7 @@ class MPCompositor extends Compositor {
2004
2120
  }
2005
2121
  clearHiddenPick() {
2006
2122
  }
2123
+ renderPointClouds(_commands, _compositeFlags) { }
2007
2124
  renderOpaque(commands, compositeFlags, renderForReadPixels) {
2008
2125
  if (0 /* None */ !== (compositeFlags & 4 /* AmbientOcclusion */) && !renderForReadPixels) {
2009
2126
  this.renderOpaqueAO(commands);
@@ -2017,36 +2134,36 @@ class MPCompositor extends Compositor {
2017
2134
  this.drawOpaquePass(colorFbo, commands, 2 /* OpaqueLinear */, false);
2018
2135
  this.drawOpaquePass(colorFbo, commands, 3 /* OpaquePlanar */, true);
2019
2136
  if (renderForReadPixels || needAO)
2020
- this.drawOpaquePass(colorFbo, commands, 4 /* OpaqueGeneral */, true);
2137
+ this.drawOpaquePass(colorFbo, commands, 5 /* OpaqueGeneral */, true);
2021
2138
  this._readPickDataFromPingPong = false;
2022
2139
  // The general pass (and following) will not bother to write to pick buffers and so can read from the actual pick buffers.
2023
2140
  if (!renderForReadPixels) {
2024
2141
  System.instance.frameBufferStack.execute(colorFbo, true, false, () => {
2025
2142
  this._drawMultiPassDepth = true; // for OpaqueGeneral
2026
- this.drawPass(commands, 4 /* OpaqueGeneral */, false);
2027
- this.drawPass(commands, 8 /* HiddenEdge */, false);
2143
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false);
2144
+ this.drawPass(commands, 9 /* HiddenEdge */, false);
2028
2145
  });
2029
2146
  }
2030
2147
  }
2031
2148
  renderOpaqueAO(commands) {
2032
2149
  const fbStack = System.instance.frameBufferStack;
2033
- const haveHiddenEdges = 0 !== commands.getCommands(8 /* HiddenEdge */).length;
2150
+ const haveHiddenEdges = 0 !== commands.getCommands(9 /* HiddenEdge */).length;
2034
2151
  // Output the linear, planar, and pickable surfaces to color and pick data buffers.
2035
2152
  this._readPickDataFromPingPong = true;
2036
2153
  const colorFbo = this._fbos.opaqueAndCompositeColor;
2037
2154
  this.drawOpaquePass(colorFbo, commands, 2 /* OpaqueLinear */, false);
2038
2155
  this.drawOpaquePass(colorFbo, commands, 3 /* OpaquePlanar */, true);
2039
2156
  this._primitiveDrawState = PrimitiveDrawState.Pickable;
2040
- this.drawOpaquePass(colorFbo, commands, 4 /* OpaqueGeneral */, true);
2157
+ this.drawOpaquePass(colorFbo, commands, 5 /* OpaqueGeneral */, true);
2041
2158
  this._primitiveDrawState = PrimitiveDrawState.Both;
2042
2159
  this._readPickDataFromPingPong = false;
2043
2160
  // Output the non-pickable surfaces and hidden edges to just the color buffer.
2044
2161
  fbStack.execute(colorFbo, true, false, () => {
2045
2162
  this._drawMultiPassDepth = true; // for OpaqueGeneral
2046
2163
  this._primitiveDrawState = PrimitiveDrawState.NonPickable;
2047
- this.drawPass(commands, 4 /* OpaqueGeneral */, false);
2164
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false);
2048
2165
  if (haveHiddenEdges)
2049
- this.drawPass(commands, 8 /* HiddenEdge */, false);
2166
+ this.drawPass(commands, 9 /* HiddenEdge */, false);
2050
2167
  this._primitiveDrawState = PrimitiveDrawState.Both;
2051
2168
  });
2052
2169
  if (haveHiddenEdges) {
@@ -2057,10 +2174,10 @@ class MPCompositor extends Compositor {
2057
2174
  this._primitiveDrawState = PrimitiveDrawState.Pickable;
2058
2175
  // Since we only need to draw color and depthAndOrder instead of calling drawOpaquePass just do what we need here.
2059
2176
  this._drawMultiPassDepth = true;
2060
- fbStack.execute(colorFbo, true, false, () => this.drawPass(commands, 8 /* HiddenEdge */, false));
2177
+ fbStack.execute(colorFbo, true, false, () => this.drawPass(commands, 9 /* HiddenEdge */, false));
2061
2178
  this._drawMultiPassDepth = false;
2062
2179
  this._currentRenderTargetIndex = 2;
2063
- fbStack.execute(this._fbos.revealage, true, false, () => this.drawPass(commands, 8 /* HiddenEdge */, false));
2180
+ fbStack.execute(this._fbos.revealage, true, false, () => this.drawPass(commands, 9 /* HiddenEdge */, false));
2064
2181
  this._currentRenderTargetIndex = 0;
2065
2182
  this._readPickDataFromPingPong = false;
2066
2183
  this._primitiveDrawState = PrimitiveDrawState.Both;
@@ -2081,7 +2198,7 @@ class MPCompositor extends Compositor {
2081
2198
  const colorFbo = needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor;
2082
2199
  if (renderForReadPixels || needAO) {
2083
2200
  this._readPickDataFromPingPong = true;
2084
- this.drawOpaquePass(colorFbo, commands, 4 /* OpaqueGeneral */, true, 19 /* VolumeClassifiedRealityData */);
2201
+ this.drawOpaquePass(colorFbo, commands, 5 /* OpaqueGeneral */, true, 20 /* VolumeClassifiedRealityData */);
2085
2202
  if (needAO)
2086
2203
  this.renderAmbientOcclusion();
2087
2204
  }
@@ -2089,7 +2206,7 @@ class MPCompositor extends Compositor {
2089
2206
  this._readPickDataFromPingPong = false;
2090
2207
  System.instance.frameBufferStack.execute(colorFbo, true, false, () => {
2091
2208
  this._drawMultiPassDepth = true; // for OpaqueGeneral
2092
- this.drawPass(commands, 4 /* OpaqueGeneral */, false, 19 /* VolumeClassifiedRealityData */);
2209
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false, 20 /* VolumeClassifiedRealityData */);
2093
2210
  });
2094
2211
  }
2095
2212
  }
@@ -2100,7 +2217,7 @@ class MPCompositor extends Compositor {
2100
2217
  const fbo = (renderForIntersectingVolumes ? this._fbos.featureIdWithDepth : this._fbos.featureIdWithDepthAltZ);
2101
2218
  System.instance.frameBufferStack.execute(fbo, true, false, () => {
2102
2219
  System.instance.applyRenderState(state);
2103
- this.target.techniques.execute(this.target, cmds, 4 /* OpaqueGeneral */);
2220
+ this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
2104
2221
  });
2105
2222
  this._currentRenderTargetIndex = 0;
2106
2223
  this._readPickDataFromPingPong = false;
@@ -2131,11 +2248,11 @@ class MPCompositor extends Compositor {
2131
2248
  }
2132
2249
  renderTranslucent(commands) {
2133
2250
  System.instance.frameBufferStack.execute(this._fbos.accumulation, true, false, () => {
2134
- this.drawPass(commands, 7 /* Translucent */);
2251
+ this.drawPass(commands, 8 /* Translucent */);
2135
2252
  });
2136
2253
  this._currentRenderTargetIndex = 1;
2137
2254
  System.instance.frameBufferStack.execute(this._fbos.revealage, true, false, () => {
2138
- this.drawPass(commands, 7 /* Translucent */);
2255
+ this.drawPass(commands, 8 /* Translucent */);
2139
2256
  });
2140
2257
  this._currentRenderTargetIndex = 0;
2141
2258
  }