@itwin/core-frontend 3.6.0-dev.5 → 3.6.0-dev.50

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 (365) hide show
  1. package/CHANGELOG.md +36 -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/IModelApp.d.ts +3 -3
  6. package/lib/cjs/IModelApp.d.ts.map +1 -1
  7. package/lib/cjs/IModelApp.js +2 -2
  8. package/lib/cjs/IModelApp.js.map +1 -1
  9. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  10. package/lib/cjs/NoRenderApp.js +3 -0
  11. package/lib/cjs/NoRenderApp.js.map +1 -1
  12. package/lib/cjs/Tiles.d.ts +4 -0
  13. package/lib/cjs/Tiles.d.ts.map +1 -1
  14. package/lib/cjs/Tiles.js +11 -0
  15. package/lib/cjs/Tiles.js.map +1 -1
  16. package/lib/cjs/ViewContext.js +1 -1
  17. package/lib/cjs/ViewContext.js.map +1 -1
  18. package/lib/cjs/ViewManager.d.ts.map +1 -1
  19. package/lib/cjs/ViewManager.js +2 -3
  20. package/lib/cjs/ViewManager.js.map +1 -1
  21. package/lib/cjs/ViewState.d.ts +4 -5
  22. package/lib/cjs/ViewState.d.ts.map +1 -1
  23. package/lib/cjs/ViewState.js +0 -1
  24. package/lib/cjs/ViewState.js.map +1 -1
  25. package/lib/cjs/Viewport.d.ts +48 -3
  26. package/lib/cjs/Viewport.d.ts.map +1 -1
  27. package/lib/cjs/Viewport.js +56 -2
  28. package/lib/cjs/Viewport.js.map +1 -1
  29. package/lib/cjs/extension/ExtensionRuntime.js +3 -0
  30. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  31. package/lib/cjs/render/GraphicBranch.d.ts +3 -0
  32. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  33. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  34. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  35. package/lib/cjs/render/MockRender.js +3 -0
  36. package/lib/cjs/render/MockRender.js.map +1 -1
  37. package/lib/cjs/render/RealityMeshParams.d.ts +3 -4
  38. package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
  39. package/lib/cjs/render/RealityMeshParams.js +9 -5
  40. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  41. package/lib/cjs/render/VisibleFeature.d.ts +5 -5
  42. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  43. package/lib/cjs/render/webgl/BackgroundMapDrape.js +3 -3
  44. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  45. package/lib/cjs/render/webgl/BranchState.d.ts +3 -0
  46. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  47. package/lib/cjs/render/webgl/BranchState.js +5 -0
  48. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  49. package/lib/cjs/render/webgl/CachedGeometry.d.ts +32 -0
  50. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  51. package/lib/cjs/render/webgl/CachedGeometry.js +74 -1
  52. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  53. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  54. package/lib/cjs/render/webgl/DrawCommand.js +6 -4
  55. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  56. package/lib/cjs/render/webgl/EDL.d.ts +40 -0
  57. package/lib/cjs/render/webgl/EDL.d.ts.map +1 -0
  58. package/lib/cjs/render/webgl/EDL.js +264 -0
  59. package/lib/cjs/render/webgl/EDL.js.map +1 -0
  60. package/lib/cjs/render/webgl/EdgeSettings.js +2 -2
  61. package/lib/cjs/render/webgl/FrameBuffer.d.ts +4 -0
  62. package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
  63. package/lib/cjs/render/webgl/FrameBuffer.js +9 -0
  64. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  65. package/lib/cjs/render/webgl/FrustumUniforms.d.ts +7 -0
  66. package/lib/cjs/render/webgl/FrustumUniforms.d.ts.map +1 -1
  67. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  68. package/lib/cjs/render/webgl/Layer.js +2 -2
  69. package/lib/cjs/render/webgl/LayerCommands.js +2 -2
  70. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  71. package/lib/cjs/render/webgl/PlanarClassifier.js +9 -8
  72. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  73. package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -1
  74. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  75. package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
  76. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  77. package/lib/cjs/render/webgl/PointCloud.js +2 -0
  78. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  79. package/lib/cjs/render/webgl/RealityMesh.d.ts +3 -1
  80. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  81. package/lib/cjs/render/webgl/RealityMesh.js +8 -3
  82. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  83. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts +9 -0
  84. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts.map +1 -1
  85. package/lib/cjs/render/webgl/RealityModelUniforms.js +50 -0
  86. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
  87. package/lib/cjs/render/webgl/RenderCommands.d.ts +2 -1
  88. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  89. package/lib/cjs/render/webgl/RenderCommands.js +46 -38
  90. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  91. package/lib/cjs/render/webgl/RenderFlags.d.ts +19 -17
  92. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  93. package/lib/cjs/render/webgl/RenderFlags.js +8 -6
  94. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  95. package/lib/cjs/render/webgl/SceneCompositor.d.ts +6 -1
  96. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  97. package/lib/cjs/render/webgl/SceneCompositor.js +195 -76
  98. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  99. package/lib/cjs/render/webgl/SolarShadowMap.js +3 -3
  100. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  101. package/lib/cjs/render/webgl/SurfaceGeometry.js +5 -5
  102. package/lib/cjs/render/webgl/Target.js +7 -7
  103. package/lib/cjs/render/webgl/Target.js.map +1 -1
  104. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  105. package/lib/cjs/render/webgl/Technique.js +18 -3
  106. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  107. package/lib/cjs/render/webgl/TechniqueFlags.js +4 -4
  108. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  109. package/lib/cjs/render/webgl/TechniqueId.d.ts +6 -2
  110. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  111. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  112. package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
  113. package/lib/cjs/render/webgl/UniformHandle.js +1 -2
  114. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  115. package/lib/cjs/render/webgl/VisibleTileFeatures.js +5 -5
  116. package/lib/cjs/render/webgl/glsl/EDL.d.ts +14 -0
  117. package/lib/cjs/render/webgl/glsl/EDL.d.ts.map +1 -0
  118. package/lib/cjs/render/webgl/glsl/EDL.js +260 -0
  119. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -0
  120. package/lib/cjs/render/webgl/glsl/RenderPass.js +12 -12
  121. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  122. package/lib/cjs/tile/BatchedTileIdMap.js +1 -1
  123. package/lib/cjs/tile/BatchedTileIdMap.js.map +1 -1
  124. package/lib/cjs/tile/DynamicIModelTile.js +1 -1
  125. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  126. package/lib/cjs/tile/GltfReader.js +1 -1
  127. package/lib/cjs/tile/GltfReader.js.map +1 -1
  128. package/lib/cjs/tile/IModelTile.js +1 -1
  129. package/lib/cjs/tile/IModelTile.js.map +1 -1
  130. package/lib/cjs/tile/ImdlReader.js +5 -5
  131. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  132. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  133. package/lib/cjs/tile/RealityModelTileTree.js +2 -1
  134. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  135. package/lib/cjs/tile/RealityTileLoader.js +2 -2
  136. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  137. package/lib/cjs/tile/RealityTileTree.d.ts +5 -0
  138. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  139. package/lib/cjs/tile/RealityTileTree.js +9 -4
  140. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  141. package/lib/cjs/tile/TileDrawArgs.js +1 -1
  142. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  143. package/lib/cjs/tile/TileTreeReference.d.ts +3 -0
  144. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  145. package/lib/cjs/tile/TileTreeReference.js +3 -0
  146. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  147. package/lib/cjs/tile/map/CesiumTerrainProvider.js +9 -9
  148. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  149. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  150. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +1 -2
  151. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  152. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +2 -2
  153. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  154. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +1 -1
  155. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  156. package/lib/cjs/tile/map/ImageryTileTree.d.ts +26 -1
  157. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  158. package/lib/cjs/tile/map/ImageryTileTree.js +54 -4
  159. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  160. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +7 -3
  161. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  162. package/lib/cjs/tile/map/MapLayerImageryProvider.js +12 -8
  163. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  164. package/lib/cjs/tile/map/MapTile.d.ts +5 -0
  165. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  166. package/lib/cjs/tile/map/MapTile.js +33 -13
  167. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  168. package/lib/cjs/tile/map/MapTileTree.d.ts +42 -3
  169. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  170. package/lib/cjs/tile/map/MapTileTree.js +126 -9
  171. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  172. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
  173. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  174. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +26 -0
  175. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  176. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +23 -68
  177. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  178. package/lib/cjs/tile/map/WmtsCapabilities.js +269 -260
  179. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  180. package/lib/cjs/tools/ClipViewTool.js +2 -2
  181. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  182. package/lib/cjs/tools/MeasureTool.js +2 -2
  183. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  184. package/lib/esm/AccuDraw.js +1 -1
  185. package/lib/esm/AccuDraw.js.map +1 -1
  186. package/lib/esm/IModelApp.d.ts +3 -3
  187. package/lib/esm/IModelApp.d.ts.map +1 -1
  188. package/lib/esm/IModelApp.js +2 -2
  189. package/lib/esm/IModelApp.js.map +1 -1
  190. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  191. package/lib/esm/NoRenderApp.js +3 -0
  192. package/lib/esm/NoRenderApp.js.map +1 -1
  193. package/lib/esm/Tiles.d.ts +4 -0
  194. package/lib/esm/Tiles.d.ts.map +1 -1
  195. package/lib/esm/Tiles.js +11 -0
  196. package/lib/esm/Tiles.js.map +1 -1
  197. package/lib/esm/ViewContext.js +1 -1
  198. package/lib/esm/ViewContext.js.map +1 -1
  199. package/lib/esm/ViewManager.d.ts.map +1 -1
  200. package/lib/esm/ViewManager.js +2 -3
  201. package/lib/esm/ViewManager.js.map +1 -1
  202. package/lib/esm/ViewState.d.ts +4 -5
  203. package/lib/esm/ViewState.d.ts.map +1 -1
  204. package/lib/esm/ViewState.js +0 -1
  205. package/lib/esm/ViewState.js.map +1 -1
  206. package/lib/esm/Viewport.d.ts +48 -3
  207. package/lib/esm/Viewport.d.ts.map +1 -1
  208. package/lib/esm/Viewport.js +57 -3
  209. package/lib/esm/Viewport.js.map +1 -1
  210. package/lib/esm/extension/ExtensionRuntime.js +5 -2
  211. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  212. package/lib/esm/render/GraphicBranch.d.ts +3 -0
  213. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  214. package/lib/esm/render/GraphicBranch.js.map +1 -1
  215. package/lib/esm/render/MockRender.d.ts.map +1 -1
  216. package/lib/esm/render/MockRender.js +3 -0
  217. package/lib/esm/render/MockRender.js.map +1 -1
  218. package/lib/esm/render/RealityMeshParams.d.ts +3 -4
  219. package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
  220. package/lib/esm/render/RealityMeshParams.js +10 -6
  221. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  222. package/lib/esm/render/VisibleFeature.d.ts +5 -5
  223. package/lib/esm/render/VisibleFeature.js.map +1 -1
  224. package/lib/esm/render/webgl/BackgroundMapDrape.js +3 -3
  225. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  226. package/lib/esm/render/webgl/BranchState.d.ts +3 -0
  227. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  228. package/lib/esm/render/webgl/BranchState.js +5 -0
  229. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  230. package/lib/esm/render/webgl/CachedGeometry.d.ts +32 -0
  231. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  232. package/lib/esm/render/webgl/CachedGeometry.js +69 -0
  233. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  234. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  235. package/lib/esm/render/webgl/DrawCommand.js +6 -4
  236. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  237. package/lib/esm/render/webgl/EDL.d.ts +40 -0
  238. package/lib/esm/render/webgl/EDL.d.ts.map +1 -0
  239. package/lib/esm/render/webgl/EDL.js +260 -0
  240. package/lib/esm/render/webgl/EDL.js.map +1 -0
  241. package/lib/esm/render/webgl/EdgeSettings.js +2 -2
  242. package/lib/esm/render/webgl/FrameBuffer.d.ts +4 -0
  243. package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
  244. package/lib/esm/render/webgl/FrameBuffer.js +9 -0
  245. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  246. package/lib/esm/render/webgl/FrustumUniforms.d.ts +7 -0
  247. package/lib/esm/render/webgl/FrustumUniforms.d.ts.map +1 -1
  248. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  249. package/lib/esm/render/webgl/Layer.js +2 -2
  250. package/lib/esm/render/webgl/LayerCommands.js +2 -2
  251. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  252. package/lib/esm/render/webgl/PlanarClassifier.js +9 -8
  253. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  254. package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -1
  255. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  256. package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
  257. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  258. package/lib/esm/render/webgl/PointCloud.js +2 -0
  259. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  260. package/lib/esm/render/webgl/RealityMesh.d.ts +3 -1
  261. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  262. package/lib/esm/render/webgl/RealityMesh.js +8 -3
  263. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  264. package/lib/esm/render/webgl/RealityModelUniforms.d.ts +9 -0
  265. package/lib/esm/render/webgl/RealityModelUniforms.d.ts.map +1 -1
  266. package/lib/esm/render/webgl/RealityModelUniforms.js +50 -0
  267. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
  268. package/lib/esm/render/webgl/RenderCommands.d.ts +2 -1
  269. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  270. package/lib/esm/render/webgl/RenderCommands.js +46 -38
  271. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  272. package/lib/esm/render/webgl/RenderFlags.d.ts +19 -17
  273. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  274. package/lib/esm/render/webgl/RenderFlags.js +8 -6
  275. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  276. package/lib/esm/render/webgl/SceneCompositor.d.ts +6 -1
  277. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  278. package/lib/esm/render/webgl/SceneCompositor.js +194 -77
  279. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  280. package/lib/esm/render/webgl/SolarShadowMap.js +3 -3
  281. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  282. package/lib/esm/render/webgl/SurfaceGeometry.js +5 -5
  283. package/lib/esm/render/webgl/Target.js +7 -7
  284. package/lib/esm/render/webgl/Target.js.map +1 -1
  285. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  286. package/lib/esm/render/webgl/Technique.js +18 -3
  287. package/lib/esm/render/webgl/Technique.js.map +1 -1
  288. package/lib/esm/render/webgl/TechniqueFlags.js +4 -4
  289. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  290. package/lib/esm/render/webgl/TechniqueId.d.ts +6 -2
  291. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  292. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  293. package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
  294. package/lib/esm/render/webgl/UniformHandle.js +1 -2
  295. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  296. package/lib/esm/render/webgl/VisibleTileFeatures.js +5 -5
  297. package/lib/esm/render/webgl/glsl/EDL.d.ts +14 -0
  298. package/lib/esm/render/webgl/glsl/EDL.d.ts.map +1 -0
  299. package/lib/esm/render/webgl/glsl/EDL.js +253 -0
  300. package/lib/esm/render/webgl/glsl/EDL.js.map +1 -0
  301. package/lib/esm/render/webgl/glsl/RenderPass.js +12 -12
  302. package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
  303. package/lib/esm/tile/BatchedTileIdMap.js +1 -1
  304. package/lib/esm/tile/BatchedTileIdMap.js.map +1 -1
  305. package/lib/esm/tile/DynamicIModelTile.js +1 -1
  306. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  307. package/lib/esm/tile/GltfReader.js +1 -1
  308. package/lib/esm/tile/GltfReader.js.map +1 -1
  309. package/lib/esm/tile/IModelTile.js +1 -1
  310. package/lib/esm/tile/IModelTile.js.map +1 -1
  311. package/lib/esm/tile/ImdlReader.js +5 -5
  312. package/lib/esm/tile/ImdlReader.js.map +1 -1
  313. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  314. package/lib/esm/tile/RealityModelTileTree.js +2 -1
  315. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  316. package/lib/esm/tile/RealityTileLoader.js +2 -2
  317. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  318. package/lib/esm/tile/RealityTileTree.d.ts +5 -0
  319. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  320. package/lib/esm/tile/RealityTileTree.js +9 -4
  321. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  322. package/lib/esm/tile/TileDrawArgs.js +1 -1
  323. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  324. package/lib/esm/tile/TileTreeReference.d.ts +3 -0
  325. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  326. package/lib/esm/tile/TileTreeReference.js +3 -0
  327. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  328. package/lib/esm/tile/map/CesiumTerrainProvider.js +9 -9
  329. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  330. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  331. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +1 -2
  332. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  333. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +2 -2
  334. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  335. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +2 -2
  336. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  337. package/lib/esm/tile/map/ImageryTileTree.d.ts +26 -1
  338. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  339. package/lib/esm/tile/map/ImageryTileTree.js +53 -4
  340. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  341. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +7 -3
  342. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  343. package/lib/esm/tile/map/MapLayerImageryProvider.js +12 -8
  344. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  345. package/lib/esm/tile/map/MapTile.d.ts +5 -0
  346. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  347. package/lib/esm/tile/map/MapTile.js +33 -13
  348. package/lib/esm/tile/map/MapTile.js.map +1 -1
  349. package/lib/esm/tile/map/MapTileTree.d.ts +42 -3
  350. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  351. package/lib/esm/tile/map/MapTileTree.js +126 -9
  352. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  353. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
  354. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  355. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +26 -0
  356. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  357. package/lib/esm/tile/map/WmtsCapabilities.d.ts +23 -68
  358. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  359. package/lib/esm/tile/map/WmtsCapabilities.js +268 -259
  360. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  361. package/lib/esm/tools/ClipViewTool.js +2 -2
  362. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  363. package/lib/esm/tools/MeasureTool.js +2 -2
  364. package/lib/esm/tools/MeasureTool.js.map +1 -1
  365. package/package.json +22 -23
@@ -84,6 +84,7 @@ const extensionExports = {
84
84
  FontType: core_common_1.FontType,
85
85
  FrontendLoggerCategory: core_frontend_1.FrontendLoggerCategory,
86
86
  FrustumAnimator: core_frontend_1.FrustumAnimator,
87
+ FrustumPlanes: core_common_1.FrustumPlanes,
87
88
  GeoCoordStatus: core_common_1.GeoCoordStatus,
88
89
  GeometricModel2dState: core_frontend_1.GeometricModel2dState,
89
90
  GeometricModel3dState: core_frontend_1.GeometricModel3dState,
@@ -232,6 +233,8 @@ const extensionExports = {
232
233
  ViewManager: core_frontend_1.ViewManager,
233
234
  ViewManip: core_frontend_1.ViewManip,
234
235
  ViewPose: core_frontend_1.ViewPose,
236
+ ViewPose2d: core_frontend_1.ViewPose2d,
237
+ ViewPose3d: core_frontend_1.ViewPose3d,
235
238
  ViewRect: core_frontend_1.ViewRect,
236
239
  ViewState: core_frontend_1.ViewState,
237
240
  ViewState2d: core_frontend_1.ViewState2d,
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionRuntime.js","sourceRoot":"","sources":["../../../src/extension/ExtensionRuntime.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Extensions\r\n */\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable @itwin/no-internal-barrel-imports */\r\n/* eslint-disable sort-imports */\r\n\r\nimport { ExtensionImpl } from \"./ExtensionImpl\";\r\nimport { ExtensionHost } from \"./ExtensionHost\";\r\n\r\nconst globalSymbol = Symbol.for(\"itwin.core.frontend.globals\");\r\nif ((globalThis as any)[globalSymbol])\r\n throw new Error(\"Multiple @itwin/core-frontend imports detected!\");\r\n\r\n// BEGIN GENERATED CODE\r\nimport {\r\n // @public enum(s) from @itwin/core-frontend\r\n ACSDisplayOptions,\r\n ACSType,\r\n ActivityMessageEndReason,\r\n BeButton,\r\n BeModifierKeys,\r\n ClipEventType,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n EventHandled,\r\n FlashMode,\r\n FrontendLoggerCategory,\r\n GraphicType,\r\n HitDetailType,\r\n HitGeomType,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n InputSource,\r\n KeyinParseError,\r\n LocateAction,\r\n LocateFilterStatus,\r\n ManipulatorToolEvent,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSetEventType,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n StandardViewId,\r\n StartOrResume,\r\n TileBoundingBoxes,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileTreeLoadStatus,\r\n TileVisibility,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n UniformType,\r\n VaryingType,\r\n ViewStatus,\r\n // @public real(s) from @itwin/core-frontend\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n Cluster,\r\n ContextRealityModelState,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n EditManipulator,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n FeatureSymbology,\r\n FlashSettings,\r\n FrustumAnimator,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GlobeAnimator,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n HiliteSet,\r\n HitDetail,\r\n HitList,\r\n IModelConnection,\r\n IconSprites,\r\n InputCollector,\r\n InteractiveTool,\r\n IntersectDetail,\r\n LocateOptions,\r\n LocateResponse,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n ModelSelectorState,\r\n ModelState,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n OrthographicViewState,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PrimitiveTool,\r\n RenderClipVolume,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderSystem,\r\n Scene,\r\n SectionDrawingModelState,\r\n SelectionSet,\r\n SheetModelState,\r\n SheetViewState,\r\n SnapDetail,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n TentativePoint,\r\n Tile,\r\n TileAdmin,\r\n TileDrawArgs,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n ViewClipClearTool,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewTool,\r\n ViewingSpace,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n} from \"../core-frontend\";\r\n\r\nimport {\r\n // @public enum(s) from @itwin/core-common\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n CommonLoggerCategory,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n ElementGeometryOpcode,\r\n FeatureOverrideType,\r\n FillDisplay,\r\n FillFlags,\r\n FontType,\r\n GeoCoordStatus,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeMode,\r\n GridOrientationType,\r\n HSVConstants,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n LinePixels,\r\n MassPropertiesOperation,\r\n MonochromeMode,\r\n Npc,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n QueryRowFormat,\r\n Rank,\r\n RenderMode,\r\n SectionType,\r\n SkyBoxImageType,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SyncMode,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n TxnAction,\r\n TypeOfChange,\r\n // @public real(s) from @itwin/core-common\r\n ColorByName,\r\n ColorDef,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n} from \"@itwin/core-common\";\r\n\r\nconst extensionExports = {\r\n ACSDisplayOptions,\r\n ACSType,\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n ActivityMessageEndReason,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BeButton,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeModifierKeys,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n ClipEventType,\r\n Cluster,\r\n ColorByName,\r\n ColorDef,\r\n CommonLoggerCategory,\r\n ContextRealityModelState,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n EditManipulator,\r\n ElementGeometryOpcode,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n EventHandled,\r\n FeatureOverrideType,\r\n FeatureSymbology,\r\n FillDisplay,\r\n FillFlags,\r\n FlashMode,\r\n FlashSettings,\r\n FontType,\r\n FrontendLoggerCategory,\r\n FrustumAnimator,\r\n GeoCoordStatus,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeAnimator,\r\n GlobeMode,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n GraphicType,\r\n GridOrientationType,\r\n HSVConstants,\r\n HiliteSet,\r\n HitDetail,\r\n HitDetailType,\r\n HitGeomType,\r\n HitList,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n IModelConnection,\r\n IconSprites,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n InputCollector,\r\n InputSource,\r\n InteractiveTool,\r\n IntersectDetail,\r\n KeyinParseError,\r\n LinePixels,\r\n LocateAction,\r\n LocateFilterStatus,\r\n LocateOptions,\r\n LocateResponse,\r\n ManipulatorToolEvent,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n MassPropertiesOperation,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n ModelSelectorState,\r\n ModelState,\r\n MonochromeMode,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n Npc,\r\n OrthographicViewState,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n PrimitiveTool,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n QueryRowFormat,\r\n Rank,\r\n RenderClipVolume,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderMode,\r\n RenderSystem,\r\n Scene,\r\n SectionDrawingModelState,\r\n SectionType,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSet,\r\n SelectionSetEventType,\r\n SheetModelState,\r\n SheetViewState,\r\n SkyBoxImageType,\r\n SnapDetail,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n StandardViewId,\r\n StartOrResume,\r\n SyncMode,\r\n TentativePoint,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n Tile,\r\n TileAdmin,\r\n TileBoundingBoxes,\r\n TileDrawArgs,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeLoadStatus,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n TileVisibility,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n TxnAction,\r\n TypeOfChange,\r\n UniformType,\r\n VaryingType,\r\n ViewClipClearTool,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewStatus,\r\n ViewTool,\r\n ViewingSpace,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n};\r\n\r\n// END GENERATED CODE\r\n\r\nconst getExtensionApi = (id: string) => {\r\n return {\r\n exports: {\r\n // exceptions\r\n ExtensionHost,\r\n // automated\r\n ...extensionExports,\r\n },\r\n api: new ExtensionImpl(id),\r\n };\r\n};\r\n\r\n(globalThis as any)[globalSymbol] = {\r\n getExtensionApi,\r\n};\r\n"]}
1
+ {"version":3,"file":"ExtensionRuntime.js","sourceRoot":"","sources":["../../../src/extension/ExtensionRuntime.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Extensions\r\n */\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable @itwin/no-internal-barrel-imports */\r\n/* eslint-disable sort-imports */\r\n\r\nimport { ExtensionImpl } from \"./ExtensionImpl\";\r\nimport { ExtensionHost } from \"./ExtensionHost\";\r\n\r\nconst globalSymbol = Symbol.for(\"itwin.core.frontend.globals\");\r\nif ((globalThis as any)[globalSymbol])\r\n throw new Error(\"Multiple @itwin/core-frontend imports detected!\");\r\n\r\n// BEGIN GENERATED CODE\r\nimport {\r\n // @public enum(s) from @itwin/core-frontend\r\n ACSDisplayOptions,\r\n ACSType,\r\n ActivityMessageEndReason,\r\n BeButton,\r\n BeModifierKeys,\r\n ClipEventType,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n EventHandled,\r\n FlashMode,\r\n FrontendLoggerCategory,\r\n GraphicType,\r\n HitDetailType,\r\n HitGeomType,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n InputSource,\r\n KeyinParseError,\r\n LocateAction,\r\n LocateFilterStatus,\r\n ManipulatorToolEvent,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSetEventType,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n StandardViewId,\r\n StartOrResume,\r\n TileBoundingBoxes,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileTreeLoadStatus,\r\n TileVisibility,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n UniformType,\r\n VaryingType,\r\n ViewStatus,\r\n // @public real(s) from @itwin/core-frontend\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n Cluster,\r\n ContextRealityModelState,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n EditManipulator,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n FeatureSymbology,\r\n FlashSettings,\r\n FrustumAnimator,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GlobeAnimator,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n HiliteSet,\r\n HitDetail,\r\n HitList,\r\n IModelConnection,\r\n IconSprites,\r\n InputCollector,\r\n InteractiveTool,\r\n IntersectDetail,\r\n LocateOptions,\r\n LocateResponse,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n ModelSelectorState,\r\n ModelState,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n OrthographicViewState,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PrimitiveTool,\r\n RenderClipVolume,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderSystem,\r\n Scene,\r\n SectionDrawingModelState,\r\n SelectionSet,\r\n SheetModelState,\r\n SheetViewState,\r\n SnapDetail,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n TentativePoint,\r\n Tile,\r\n TileAdmin,\r\n TileDrawArgs,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n ViewClipClearTool,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewPose2d,\r\n ViewPose3d,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewTool,\r\n ViewingSpace,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n} from \"../core-frontend\";\r\n\r\nimport {\r\n // @public enum(s) from @itwin/core-common\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n CommonLoggerCategory,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n ElementGeometryOpcode,\r\n FeatureOverrideType,\r\n FillDisplay,\r\n FillFlags,\r\n FontType,\r\n GeoCoordStatus,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeMode,\r\n GridOrientationType,\r\n HSVConstants,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n LinePixels,\r\n MassPropertiesOperation,\r\n MonochromeMode,\r\n Npc,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n QueryRowFormat,\r\n Rank,\r\n RenderMode,\r\n SectionType,\r\n SkyBoxImageType,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SyncMode,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n TxnAction,\r\n TypeOfChange,\r\n // @public real(s) from @itwin/core-common\r\n ColorByName,\r\n ColorDef,\r\n FrustumPlanes,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n} from \"@itwin/core-common\";\r\n\r\nconst extensionExports = {\r\n ACSDisplayOptions,\r\n ACSType,\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n ActivityMessageEndReason,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BeButton,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeModifierKeys,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n ClipEventType,\r\n Cluster,\r\n ColorByName,\r\n ColorDef,\r\n CommonLoggerCategory,\r\n ContextRealityModelState,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n EditManipulator,\r\n ElementGeometryOpcode,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n EventHandled,\r\n FeatureOverrideType,\r\n FeatureSymbology,\r\n FillDisplay,\r\n FillFlags,\r\n FlashMode,\r\n FlashSettings,\r\n FontType,\r\n FrontendLoggerCategory,\r\n FrustumAnimator,\r\n FrustumPlanes,\r\n GeoCoordStatus,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeAnimator,\r\n GlobeMode,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n GraphicType,\r\n GridOrientationType,\r\n HSVConstants,\r\n HiliteSet,\r\n HitDetail,\r\n HitDetailType,\r\n HitGeomType,\r\n HitList,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n IModelConnection,\r\n IconSprites,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n InputCollector,\r\n InputSource,\r\n InteractiveTool,\r\n IntersectDetail,\r\n KeyinParseError,\r\n LinePixels,\r\n LocateAction,\r\n LocateFilterStatus,\r\n LocateOptions,\r\n LocateResponse,\r\n ManipulatorToolEvent,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n MassPropertiesOperation,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n ModelSelectorState,\r\n ModelState,\r\n MonochromeMode,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n Npc,\r\n OrthographicViewState,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n PrimitiveTool,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n QueryRowFormat,\r\n Rank,\r\n RenderClipVolume,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderMode,\r\n RenderSystem,\r\n Scene,\r\n SectionDrawingModelState,\r\n SectionType,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSet,\r\n SelectionSetEventType,\r\n SheetModelState,\r\n SheetViewState,\r\n SkyBoxImageType,\r\n SnapDetail,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n StandardViewId,\r\n StartOrResume,\r\n SyncMode,\r\n TentativePoint,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n Tile,\r\n TileAdmin,\r\n TileBoundingBoxes,\r\n TileDrawArgs,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeLoadStatus,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n TileVisibility,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n TxnAction,\r\n TypeOfChange,\r\n UniformType,\r\n VaryingType,\r\n ViewClipClearTool,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewPose2d,\r\n ViewPose3d,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewStatus,\r\n ViewTool,\r\n ViewingSpace,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n};\r\n\r\n// END GENERATED CODE\r\n\r\nconst getExtensionApi = (id: string) => {\r\n return {\r\n exports: {\r\n // exceptions\r\n ExtensionHost,\r\n // automated\r\n ...extensionExports,\r\n },\r\n api: new ExtensionImpl(id),\r\n };\r\n};\r\n\r\n(globalThis as any)[globalSymbol] = {\r\n getExtensionApi,\r\n};\r\n"]}
@@ -10,6 +10,7 @@ import { RenderGraphic } from "./RenderGraphic";
10
10
  import { RenderMemory } from "./RenderMemory";
11
11
  import { RenderPlanarClassifier } from "./RenderPlanarClassifier";
12
12
  import { RenderTextureDrape } from "./RenderSystem";
13
+ import { Range3d } from "@itwin/core-geometry";
13
14
  /** Carries information in a GraphicBranchOptions about a GraphicBranch produced by drawing one view into the context of another.
14
15
  * @internal
15
16
  */
@@ -48,6 +49,8 @@ export declare class GraphicBranch implements IDisposable {
48
49
  * @beta
49
50
  */
50
51
  realityModelDisplaySettings?: RealityModelDisplaySettings;
52
+ /** @internal */
53
+ realityModelRange?: Range3d;
51
54
  /** Optional symbology overrides to be applied to all graphics in this branch */
52
55
  symbologyOverrides?: FeatureSymbology.Overrides;
53
56
  /** Optional animation branch Id that incorporates the model Id and, for element timelines, the batch Id.
@@ -1 +1 @@
1
- {"version":3,"file":"GraphicBranch.d.ts","sourceRoot":"","sources":["../../../src/render/GraphicBranch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphicBranch.d.ts","sourceRoot":"","sources":["../../../src/render/GraphicBranch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GraphicBranch.js","sourceRoot":"","sources":["../../../src/render/GraphicBranch.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { disposeArray, Id64String, IDisposable } from \"@itwin/core-bentley\";\r\nimport {\r\n FeatureAppearanceProvider, HiddenLine, RealityModelDisplaySettings, RenderSchedule, ViewFlagOverrides, ViewFlags,\r\n} from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { FeatureSymbology } from \"./FeatureSymbology\";\r\nimport { RenderClipVolume } from \"./RenderClipVolume\";\r\nimport { RenderGraphic } from \"./RenderGraphic\";\r\nimport { RenderMemory } from \"./RenderMemory\";\r\nimport { RenderPlanarClassifier } from \"./RenderPlanarClassifier\";\r\nimport { RenderTextureDrape } from \"./RenderSystem\";\r\n\r\n/** Carries information in a GraphicBranchOptions about a GraphicBranch produced by drawing one view into the context of another.\r\n * @internal\r\n */\r\nexport interface GraphicBranchFrustum {\r\n is3d: boolean;\r\n scale: {\r\n x: number;\r\n y: number;\r\n };\r\n}\r\n\r\n/** Special values of [[GraphicBranch.animationNodeId]].\r\n * All other values refer to an [ElementTimeline.batchId]($common) that applies a transform to the graphics in the branch.\r\n * @internal\r\n */\r\nexport enum AnimationNodeId {\r\n Untransformed = 0xffffffff,\r\n}\r\n\r\n/**\r\n * A node in a scene graph. The branch itself is not renderable. Instead it contains a list of RenderGraphics,\r\n * and a transform, symbology overrides, and clip volume which are to be applied when rendering them.\r\n * Branches can be nested to build an arbitrarily-complex scene graph.\r\n * @see [[RenderSystem.createBranch]]\r\n * @public\r\n * @extensions\r\n */\r\nexport class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ {\r\n /** The child nodes of this branch */\r\n public readonly entries: RenderGraphic[] = [];\r\n /** If true, when the branch is disposed of, the RenderGraphics in its entries array will also be disposed */\r\n public readonly ownsEntries: boolean;\r\n /** Selectively overrides the view's [ViewFlags]($common) while drawing graphics within this branch. The default overrides nothing.\r\n * @see [[setViewFlagOverrides]].\r\n */\r\n public viewFlagOverrides: ViewFlagOverrides = {};\r\n /** Controls how reality models are displayed within this branch.\r\n * @beta\r\n */\r\n public realityModelDisplaySettings?: RealityModelDisplaySettings;\r\n /** Optional symbology overrides to be applied to all graphics in this branch */\r\n public symbologyOverrides?: FeatureSymbology.Overrides;\r\n /** Optional animation branch Id that incorporates the model Id and, for element timelines, the batch Id.\r\n * @internal\r\n */\r\n public animationId?: string;\r\n /** Identifies the node in the [RenderSchedule.Script]($backend) with which this branch is associated.\r\n * @internal\r\n */\r\n public animationNodeId?: AnimationNodeId | number;\r\n\r\n /** Constructor\r\n * @param ownsEntries If true, when this branch is [[dispose]]d, all of the [[RenderGraphic]]s it contains will also be disposed.\r\n */\r\n public constructor(ownsEntries: boolean = false) {\r\n this.ownsEntries = ownsEntries;\r\n }\r\n\r\n /** Add a graphic to this branch. */\r\n public add(graphic: RenderGraphic): void {\r\n this.entries.push(graphic);\r\n }\r\n\r\n /** Compute the view flags that result from applying this branch's [[viewFlagOverrides]] to the input flags.\r\n * @param flags The input view flags, e.g., from the view's [[DisplayStyleState]].\r\n * @returns The result of applying [[viewFlagOverrides]] to `flags`.\r\n */\r\n public getViewFlags(flags: ViewFlags): ViewFlags {\r\n return flags.override(this.viewFlagOverrides);\r\n }\r\n\r\n /** Set [[viewFlagOverrides]] to override **all** ViewFlags as specified by `flags`. */\r\n public setViewFlags(flags: ViewFlags): void {\r\n this.viewFlagOverrides = { ...flags };\r\n }\r\n\r\n /** Change [[viewFlagOverrides]]. */\r\n public setViewFlagOverrides(ovr: ViewFlagOverrides): void {\r\n this.viewFlagOverrides = { ...ovr };\r\n }\r\n\r\n /** Disposes of all graphics in this branch, if and only if [[ownsEntries]] is true. */\r\n public dispose() {\r\n this.clear();\r\n }\r\n\r\n /** Returns true if this branch contains no graphics. */\r\n public get isEmpty(): boolean {\r\n return 0 === this.entries.length;\r\n }\r\n\r\n /** Empties the list of [[RenderGraphic]]s contained in this branch, and if the [[ownsEntries]] flag is set, also disposes of them. */\r\n public clear(): void {\r\n if (this.ownsEntries)\r\n disposeArray(this.entries);\r\n else\r\n this.entries.length = 0;\r\n }\r\n\r\n /** @internal */\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const entry of this.entries)\r\n entry.collectStatistics(stats);\r\n }\r\n}\r\n\r\n/** Options passed to [[RenderSystem.createGraphicBranch]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface GraphicBranchOptions {\r\n /** Clip applied to the graphics in the branch. */\r\n clipVolume?: RenderClipVolume;\r\n /** @internal */\r\n classifierOrDrape?: RenderPlanarClassifier | RenderTextureDrape;\r\n /** Optionally replaces the view's hidden line settings when drawing the branch. */\r\n hline?: HiddenLine.Settings;\r\n /** The iModel from which the graphics originate, if different than that associated with the view. */\r\n iModel?: IModelConnection;\r\n /** @internal */\r\n frustum?: GraphicBranchFrustum;\r\n /** Supplements the view's [[FeatureSymbology.Overrides]] for graphics in the branch. */\r\n appearanceProvider?: FeatureAppearanceProvider;\r\n /** @internal Secondary planar classifiers (map layers) */\r\n secondaryClassifiers?: Map<number, RenderPlanarClassifier>;\r\n}\r\n\r\n/** Clip/Transform for a branch that are varied over time.\r\n * @internal\r\n */\r\nexport interface AnimationBranchState {\r\n readonly clip?: RenderClipVolume;\r\n readonly omit?: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport function formatAnimationBranchId(modelId: Id64String, branchId: number): string {\r\n if (branchId < 0)\r\n return modelId;\r\n\r\n return `${modelId}_Node_${branchId.toString()}`;\r\n}\r\n\r\nfunction addAnimationBranch(modelId: Id64String, timeline: RenderSchedule.Timeline, branchId: number, branches: Map<string, AnimationBranchState>, time: number): void {\r\n const clipVector = timeline.getClipVector(time);\r\n const clip = clipVector ? IModelApp.renderSystem.createClipVolume(clipVector) : undefined;\r\n if (clip)\r\n branches.set(formatAnimationBranchId(modelId, branchId), { clip });\r\n}\r\n\r\n/** Mapping from node/branch IDs to animation branch state\r\n * @internal\r\n */\r\nexport interface AnimationBranchStates {\r\n /** Maps node Id to branch state. */\r\n readonly branchStates: Map<string, AnimationBranchState>;\r\n /** Ids of nodes that apply a transform. */\r\n readonly transformNodeIds: ReadonlySet<number>;\r\n}\r\n\r\n/** @internal */\r\nexport namespace AnimationBranchStates {\r\n export function fromScript(script: RenderSchedule.Script, time: number): AnimationBranchStates | undefined {\r\n if (!script.containsModelClipping && !script.requiresBatching)\r\n return undefined;\r\n\r\n const branches = new Map<string, AnimationBranchState>();\r\n for (const model of script.modelTimelines) {\r\n addAnimationBranch(model.modelId, model, -1, branches, time);\r\n for (const elem of model.elementTimelines) {\r\n if (elem.getVisibility(time) <= 0)\r\n branches.set(formatAnimationBranchId(model.modelId, elem.batchId), { omit: true });\r\n else\r\n addAnimationBranch(model.modelId, elem, elem.batchId, branches, time);\r\n }\r\n }\r\n\r\n return {\r\n branchStates: branches,\r\n transformNodeIds: script.transformBatchIds,\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"GraphicBranch.js","sourceRoot":"","sources":["../../../src/render/GraphicBranch.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { disposeArray, Id64String, IDisposable } from \"@itwin/core-bentley\";\r\nimport {\r\n FeatureAppearanceProvider, HiddenLine, RealityModelDisplaySettings, RenderSchedule, ViewFlagOverrides, ViewFlags,\r\n} from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { FeatureSymbology } from \"./FeatureSymbology\";\r\nimport { RenderClipVolume } from \"./RenderClipVolume\";\r\nimport { RenderGraphic } from \"./RenderGraphic\";\r\nimport { RenderMemory } from \"./RenderMemory\";\r\nimport { RenderPlanarClassifier } from \"./RenderPlanarClassifier\";\r\nimport { RenderTextureDrape } from \"./RenderSystem\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\n\r\n/** Carries information in a GraphicBranchOptions about a GraphicBranch produced by drawing one view into the context of another.\r\n * @internal\r\n */\r\nexport interface GraphicBranchFrustum {\r\n is3d: boolean;\r\n scale: {\r\n x: number;\r\n y: number;\r\n };\r\n}\r\n\r\n/** Special values of [[GraphicBranch.animationNodeId]].\r\n * All other values refer to an [ElementTimeline.batchId]($common) that applies a transform to the graphics in the branch.\r\n * @internal\r\n */\r\nexport enum AnimationNodeId {\r\n Untransformed = 0xffffffff,\r\n}\r\n\r\n/**\r\n * A node in a scene graph. The branch itself is not renderable. Instead it contains a list of RenderGraphics,\r\n * and a transform, symbology overrides, and clip volume which are to be applied when rendering them.\r\n * Branches can be nested to build an arbitrarily-complex scene graph.\r\n * @see [[RenderSystem.createBranch]]\r\n * @public\r\n * @extensions\r\n */\r\nexport class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ {\r\n /** The child nodes of this branch */\r\n public readonly entries: RenderGraphic[] = [];\r\n /** If true, when the branch is disposed of, the RenderGraphics in its entries array will also be disposed */\r\n public readonly ownsEntries: boolean;\r\n /** Selectively overrides the view's [ViewFlags]($common) while drawing graphics within this branch. The default overrides nothing.\r\n * @see [[setViewFlagOverrides]].\r\n */\r\n public viewFlagOverrides: ViewFlagOverrides = {};\r\n /** Controls how reality models are displayed within this branch.\r\n * @beta\r\n */\r\n public realityModelDisplaySettings?: RealityModelDisplaySettings;\r\n /** @internal */\r\n public realityModelRange?: Range3d;\r\n /** Optional symbology overrides to be applied to all graphics in this branch */\r\n public symbologyOverrides?: FeatureSymbology.Overrides;\r\n /** Optional animation branch Id that incorporates the model Id and, for element timelines, the batch Id.\r\n * @internal\r\n */\r\n public animationId?: string;\r\n /** Identifies the node in the [RenderSchedule.Script]($backend) with which this branch is associated.\r\n * @internal\r\n */\r\n public animationNodeId?: AnimationNodeId | number;\r\n\r\n /** Constructor\r\n * @param ownsEntries If true, when this branch is [[dispose]]d, all of the [[RenderGraphic]]s it contains will also be disposed.\r\n */\r\n public constructor(ownsEntries: boolean = false) {\r\n this.ownsEntries = ownsEntries;\r\n }\r\n\r\n /** Add a graphic to this branch. */\r\n public add(graphic: RenderGraphic): void {\r\n this.entries.push(graphic);\r\n }\r\n\r\n /** Compute the view flags that result from applying this branch's [[viewFlagOverrides]] to the input flags.\r\n * @param flags The input view flags, e.g., from the view's [[DisplayStyleState]].\r\n * @returns The result of applying [[viewFlagOverrides]] to `flags`.\r\n */\r\n public getViewFlags(flags: ViewFlags): ViewFlags {\r\n return flags.override(this.viewFlagOverrides);\r\n }\r\n\r\n /** Set [[viewFlagOverrides]] to override **all** ViewFlags as specified by `flags`. */\r\n public setViewFlags(flags: ViewFlags): void {\r\n this.viewFlagOverrides = { ...flags };\r\n }\r\n\r\n /** Change [[viewFlagOverrides]]. */\r\n public setViewFlagOverrides(ovr: ViewFlagOverrides): void {\r\n this.viewFlagOverrides = { ...ovr };\r\n }\r\n\r\n /** Disposes of all graphics in this branch, if and only if [[ownsEntries]] is true. */\r\n public dispose() {\r\n this.clear();\r\n }\r\n\r\n /** Returns true if this branch contains no graphics. */\r\n public get isEmpty(): boolean {\r\n return 0 === this.entries.length;\r\n }\r\n\r\n /** Empties the list of [[RenderGraphic]]s contained in this branch, and if the [[ownsEntries]] flag is set, also disposes of them. */\r\n public clear(): void {\r\n if (this.ownsEntries)\r\n disposeArray(this.entries);\r\n else\r\n this.entries.length = 0;\r\n }\r\n\r\n /** @internal */\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const entry of this.entries)\r\n entry.collectStatistics(stats);\r\n }\r\n}\r\n\r\n/** Options passed to [[RenderSystem.createGraphicBranch]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface GraphicBranchOptions {\r\n /** Clip applied to the graphics in the branch. */\r\n clipVolume?: RenderClipVolume;\r\n /** @internal */\r\n classifierOrDrape?: RenderPlanarClassifier | RenderTextureDrape;\r\n /** Optionally replaces the view's hidden line settings when drawing the branch. */\r\n hline?: HiddenLine.Settings;\r\n /** The iModel from which the graphics originate, if different than that associated with the view. */\r\n iModel?: IModelConnection;\r\n /** @internal */\r\n frustum?: GraphicBranchFrustum;\r\n /** Supplements the view's [[FeatureSymbology.Overrides]] for graphics in the branch. */\r\n appearanceProvider?: FeatureAppearanceProvider;\r\n /** @internal Secondary planar classifiers (map layers) */\r\n secondaryClassifiers?: Map<number, RenderPlanarClassifier>;\r\n}\r\n\r\n/** Clip/Transform for a branch that are varied over time.\r\n * @internal\r\n */\r\nexport interface AnimationBranchState {\r\n readonly clip?: RenderClipVolume;\r\n readonly omit?: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport function formatAnimationBranchId(modelId: Id64String, branchId: number): string {\r\n if (branchId < 0)\r\n return modelId;\r\n\r\n return `${modelId}_Node_${branchId.toString()}`;\r\n}\r\n\r\nfunction addAnimationBranch(modelId: Id64String, timeline: RenderSchedule.Timeline, branchId: number, branches: Map<string, AnimationBranchState>, time: number): void {\r\n const clipVector = timeline.getClipVector(time);\r\n const clip = clipVector ? IModelApp.renderSystem.createClipVolume(clipVector) : undefined;\r\n if (clip)\r\n branches.set(formatAnimationBranchId(modelId, branchId), { clip });\r\n}\r\n\r\n/** Mapping from node/branch IDs to animation branch state\r\n * @internal\r\n */\r\nexport interface AnimationBranchStates {\r\n /** Maps node Id to branch state. */\r\n readonly branchStates: Map<string, AnimationBranchState>;\r\n /** Ids of nodes that apply a transform. */\r\n readonly transformNodeIds: ReadonlySet<number>;\r\n}\r\n\r\n/** @internal */\r\nexport namespace AnimationBranchStates {\r\n export function fromScript(script: RenderSchedule.Script, time: number): AnimationBranchStates | undefined {\r\n if (!script.containsModelClipping && !script.requiresBatching)\r\n return undefined;\r\n\r\n const branches = new Map<string, AnimationBranchState>();\r\n for (const model of script.modelTimelines) {\r\n addAnimationBranch(model.modelId, model, -1, branches, time);\r\n for (const elem of model.elementTimelines) {\r\n if (elem.getVisibility(time) <= 0)\r\n branches.set(formatAnimationBranchId(model.modelId, elem.batchId), { omit: true });\r\n else\r\n addAnimationBranch(model.modelId, elem, elem.batchId, branches, time);\r\n }\r\n }\r\n\r\n return {\r\n branchStates: branches,\r\n transformNodeIds: script.transformBatchIds,\r\n };\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MockRender.d.ts","sourceRoot":"","sources":["../../../src/render/MockRender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MockRender.d.ts","sourceRoot":"","sources":["../../../src/render/MockRender.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.MockRender = void 0;
8
8
  const core_bentley_1 = require("@itwin/core-bentley");
9
+ const core_common_1 = require("@itwin/core-common");
9
10
  const IModelApp_1 = require("../IModelApp");
10
11
  const ViewRect_1 = require("../ViewRect");
11
12
  const GeometryListBuilder_1 = require("./primitives/geometry/GeometryListBuilder");
@@ -160,8 +161,10 @@ var MockRender;
160
161
  */
161
162
  class App {
162
163
  static async startup(opts) {
164
+ var _a;
163
165
  opts = opts ? opts : {};
164
166
  opts.renderSys = this.systemFactory();
167
+ opts.localization = (_a = opts.localization) !== null && _a !== void 0 ? _a : new core_common_1.EmptyLocalization();
165
168
  await IModelApp_1.IModelApp.startup(opts);
166
169
  }
167
170
  static async shutdown() {
@@ -1 +1 @@
1
- {"version":3,"file":"MockRender.js","sourceRoot":"","sources":["../../../src/render/MockRender.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { dispose } from \"@itwin/core-bentley\";\r\nimport { Transform } from \"@itwin/core-geometry\";\r\nimport { ElementAlignedBox3d, PackedFeatureTable } from \"@itwin/core-common\";\r\nimport { IModelApp, IModelAppOptions } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { ViewRect } from \"../ViewRect\";\r\nimport { Decorations } from \"./Decorations\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"./GraphicBranch\";\r\nimport { CustomGraphicBuilderOptions, ViewportGraphicBuilderOptions } from \"./GraphicBuilder\";\r\nimport { Pixel } from \"./Pixel\";\r\nimport { PrimitiveBuilder } from \"./primitives/geometry/GeometryListBuilder\";\r\nimport { PointCloudArgs } from \"./primitives/PointCloudPrimitive\";\r\nimport { PointStringParams } from \"./primitives/PointStringParams\";\r\nimport { PolylineParams } from \"./primitives/PolylineParams\";\r\nimport { MeshParams } from \"./primitives/VertexTable\";\r\nimport { GraphicList, RenderGraphic } from \"./RenderGraphic\";\r\nimport { RenderMemory } from \"./RenderMemory\";\r\nimport { RenderPlan } from \"./RenderPlan\";\r\nimport { RenderAreaPattern, RenderGeometry, RenderSystem } from \"./RenderSystem\";\r\nimport { RenderTarget } from \"./RenderTarget\";\r\nimport { Scene } from \"./Scene\";\r\n\r\n/** Contains extensible mock implementations of the various components of a RenderSystem, intended for use in tests.\r\n * Use these for tests instead of the default RenderSystem wherever possible because:\r\n * (1) Electron has a bug on Windows in which it fails to obtain a WebGLRenderingContext when running inside a VM (e.g., during CI job); and\r\n * (2) To decouple the logic which uses aspects of the RenderSystem from the full implementation.\r\n * Any and all of these types can be extended for the purposes of specific tests.\r\n * To use this:\r\n * (1) If overriding anything in the implementation supplied herein, pass a SystemFactory function to MockRender.App.systemFactory.\r\n * (2) Call MockRender.App.startup() instead of IModelApp.startup() before tests begin.\r\n * (3) Likewise call MockRender.App.shutdown() when finished. This resets the SystemFactory to its default.\r\n * @internal\r\n */\r\nexport namespace MockRender {\r\n /** @internal */\r\n export abstract class Target extends RenderTarget {\r\n protected constructor(private readonly _system: RenderSystem) { super(); }\r\n\r\n public get renderSystem(): RenderSystem { return this._system; }\r\n public get wantInvertBlackBackground() { return false; }\r\n public get analysisFraction() { return 0; }\r\n public set analysisFraction(_fraction: number) { }\r\n public changeScene(_scene: Scene) { }\r\n public changeDynamics(_dynamics?: GraphicList) { }\r\n public changeDecorations(_decs: Decorations) { }\r\n public changeRenderPlan(_plan: RenderPlan) { }\r\n public drawFrame(_sceneTime?: number) { }\r\n public updateViewRect() { return false; }\r\n public readPixels(_rect: ViewRect, _selector: Pixel.Selector, receiver: Pixel.Receiver, _excludeNonLocatable: boolean) { receiver(undefined); }\r\n public get screenSpaceEffects(): Iterable<string> { return []; }\r\n public set screenSpaceEffects(_effects: Iterable<string>) { }\r\n }\r\n\r\n /** @internal */\r\n export class OnScreenTarget extends Target {\r\n public constructor(system: RenderSystem, private readonly _canvas: HTMLCanvasElement) { super(system); }\r\n\r\n public get viewRect() { return new ViewRect(0, 0, this._canvas.clientWidth, this._canvas.clientHeight); }\r\n public setViewRect(_rect: ViewRect, _temp: boolean) { }\r\n }\r\n\r\n /** @internal */\r\n export class OffScreenTarget extends Target {\r\n public constructor(system: RenderSystem, private readonly _viewRect: ViewRect) { super(system); }\r\n\r\n public get viewRect() { return this._viewRect; }\r\n public setViewRect(rect: ViewRect, _temp: boolean) { this._viewRect.setFrom(rect); }\r\n }\r\n\r\n /** @internal */\r\n export class Builder extends PrimitiveBuilder {\r\n public constructor(system: System, options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions) {\r\n super(system, options);\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class Graphic extends RenderGraphic {\r\n public constructor() { super(); }\r\n\r\n public dispose() { }\r\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\r\n }\r\n\r\n /** @internal */\r\n export class List extends Graphic {\r\n public constructor(public readonly graphics: RenderGraphic[]) { super(); }\r\n\r\n public override dispose() {\r\n for (const graphic of this.graphics)\r\n dispose(graphic);\r\n\r\n this.graphics.length = 0;\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class Branch extends Graphic {\r\n public constructor(public readonly branch: GraphicBranch, public readonly transform: Transform, public readonly options?: GraphicBranchOptions) { super(); }\r\n\r\n public override dispose() { this.branch.dispose(); }\r\n }\r\n\r\n /** @internal */\r\n export class Batch extends Graphic {\r\n public constructor(public readonly graphic: RenderGraphic, public readonly featureTable: PackedFeatureTable, public readonly range: ElementAlignedBox3d) { super(); }\r\n\r\n public override dispose() {\r\n dispose(this.graphic);\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class Geometry implements RenderGeometry {\r\n public dispose(): void { }\r\n public collectStatistics(): void { }\r\n }\r\n\r\n /** @internal */\r\n export class AreaPattern implements RenderAreaPattern {\r\n public dispose(): void { }\r\n public collectStatistics(): void { }\r\n }\r\n\r\n /** @internal */\r\n export class System extends RenderSystem {\r\n public get isValid() { return true; }\r\n public dispose(): void { }\r\n public override get maxTextureSize() { return 4096; }\r\n\r\n public constructor() { super(); }\r\n\r\n public doIdleWork(): boolean { return false; }\r\n\r\n public createTarget(canvas: HTMLCanvasElement): OnScreenTarget { return new OnScreenTarget(this, canvas); }\r\n public createOffscreenTarget(rect: ViewRect): RenderTarget { return new OffScreenTarget(this, rect); }\r\n\r\n public createGraphic(options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions) {\r\n return new Builder(this, options);\r\n }\r\n\r\n public createGraphicList(primitives: RenderGraphic[]) { return new List(primitives); }\r\n public createGraphicBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions) { return new Branch(branch, transform, options); }\r\n public createBatch(graphic: RenderGraphic, features: PackedFeatureTable, range: ElementAlignedBox3d) { return new Batch(graphic, features, range); }\r\n\r\n public override createMesh(_params: MeshParams) { return new Graphic(); }\r\n public override createPolyline(_params: PolylineParams) { return new Graphic(); }\r\n public override createPointString(_params: PointStringParams) { return new Graphic(); }\r\n public override createPointCloud(_args: PointCloudArgs, _imodel: IModelConnection) { return new Graphic(); }\r\n public override createRenderGraphic() { return new Graphic(); }\r\n\r\n public override createMeshGeometry() { return new Geometry(); }\r\n public override createPolylineGeometry() { return new Geometry(); }\r\n public override createPointStringGeometry() { return new Geometry(); }\r\n public override createAreaPattern() { return new AreaPattern(); }\r\n }\r\n\r\n /** @internal */\r\n export type SystemFactory = () => RenderSystem;\r\n\r\n /** An implementation of IModelApp which uses a MockRender.System by default.\r\n * @internal\r\n */\r\n export class App {\r\n public static systemFactory: SystemFactory = () => App.createDefaultRenderSystem();\r\n\r\n public static async startup(opts?: IModelAppOptions): Promise<void> {\r\n opts = opts ? opts : {};\r\n opts.renderSys = this.systemFactory();\r\n await IModelApp.startup(opts);\r\n }\r\n public static async shutdown(): Promise<void> {\r\n this.systemFactory = () => App.createDefaultRenderSystem();\r\n await IModelApp.shutdown();\r\n }\r\n\r\n protected static createDefaultRenderSystem() { return new System(); }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MockRender.js","sourceRoot":"","sources":["../../../src/render/MockRender.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { dispose } from \"@itwin/core-bentley\";\r\nimport { Transform } from \"@itwin/core-geometry\";\r\nimport { ElementAlignedBox3d, EmptyLocalization, PackedFeatureTable } from \"@itwin/core-common\";\r\nimport { IModelApp, IModelAppOptions } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { ViewRect } from \"../ViewRect\";\r\nimport { Decorations } from \"./Decorations\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"./GraphicBranch\";\r\nimport { CustomGraphicBuilderOptions, ViewportGraphicBuilderOptions } from \"./GraphicBuilder\";\r\nimport { Pixel } from \"./Pixel\";\r\nimport { PrimitiveBuilder } from \"./primitives/geometry/GeometryListBuilder\";\r\nimport { PointCloudArgs } from \"./primitives/PointCloudPrimitive\";\r\nimport { PointStringParams } from \"./primitives/PointStringParams\";\r\nimport { PolylineParams } from \"./primitives/PolylineParams\";\r\nimport { MeshParams } from \"./primitives/VertexTable\";\r\nimport { GraphicList, RenderGraphic } from \"./RenderGraphic\";\r\nimport { RenderMemory } from \"./RenderMemory\";\r\nimport { RenderPlan } from \"./RenderPlan\";\r\nimport { RenderAreaPattern, RenderGeometry, RenderSystem } from \"./RenderSystem\";\r\nimport { RenderTarget } from \"./RenderTarget\";\r\nimport { Scene } from \"./Scene\";\r\n\r\n/** Contains extensible mock implementations of the various components of a RenderSystem, intended for use in tests.\r\n * Use these for tests instead of the default RenderSystem wherever possible because:\r\n * (1) Electron has a bug on Windows in which it fails to obtain a WebGLRenderingContext when running inside a VM (e.g., during CI job); and\r\n * (2) To decouple the logic which uses aspects of the RenderSystem from the full implementation.\r\n * Any and all of these types can be extended for the purposes of specific tests.\r\n * To use this:\r\n * (1) If overriding anything in the implementation supplied herein, pass a SystemFactory function to MockRender.App.systemFactory.\r\n * (2) Call MockRender.App.startup() instead of IModelApp.startup() before tests begin.\r\n * (3) Likewise call MockRender.App.shutdown() when finished. This resets the SystemFactory to its default.\r\n * @internal\r\n */\r\nexport namespace MockRender {\r\n /** @internal */\r\n export abstract class Target extends RenderTarget {\r\n protected constructor(private readonly _system: RenderSystem) { super(); }\r\n\r\n public get renderSystem(): RenderSystem { return this._system; }\r\n public get wantInvertBlackBackground() { return false; }\r\n public get analysisFraction() { return 0; }\r\n public set analysisFraction(_fraction: number) { }\r\n public changeScene(_scene: Scene) { }\r\n public changeDynamics(_dynamics?: GraphicList) { }\r\n public changeDecorations(_decs: Decorations) { }\r\n public changeRenderPlan(_plan: RenderPlan) { }\r\n public drawFrame(_sceneTime?: number) { }\r\n public updateViewRect() { return false; }\r\n public readPixels(_rect: ViewRect, _selector: Pixel.Selector, receiver: Pixel.Receiver, _excludeNonLocatable: boolean) { receiver(undefined); }\r\n public get screenSpaceEffects(): Iterable<string> { return []; }\r\n public set screenSpaceEffects(_effects: Iterable<string>) { }\r\n }\r\n\r\n /** @internal */\r\n export class OnScreenTarget extends Target {\r\n public constructor(system: RenderSystem, private readonly _canvas: HTMLCanvasElement) { super(system); }\r\n\r\n public get viewRect() { return new ViewRect(0, 0, this._canvas.clientWidth, this._canvas.clientHeight); }\r\n public setViewRect(_rect: ViewRect, _temp: boolean) { }\r\n }\r\n\r\n /** @internal */\r\n export class OffScreenTarget extends Target {\r\n public constructor(system: RenderSystem, private readonly _viewRect: ViewRect) { super(system); }\r\n\r\n public get viewRect() { return this._viewRect; }\r\n public setViewRect(rect: ViewRect, _temp: boolean) { this._viewRect.setFrom(rect); }\r\n }\r\n\r\n /** @internal */\r\n export class Builder extends PrimitiveBuilder {\r\n public constructor(system: System, options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions) {\r\n super(system, options);\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class Graphic extends RenderGraphic {\r\n public constructor() { super(); }\r\n\r\n public dispose() { }\r\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\r\n }\r\n\r\n /** @internal */\r\n export class List extends Graphic {\r\n public constructor(public readonly graphics: RenderGraphic[]) { super(); }\r\n\r\n public override dispose() {\r\n for (const graphic of this.graphics)\r\n dispose(graphic);\r\n\r\n this.graphics.length = 0;\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class Branch extends Graphic {\r\n public constructor(public readonly branch: GraphicBranch, public readonly transform: Transform, public readonly options?: GraphicBranchOptions) { super(); }\r\n\r\n public override dispose() { this.branch.dispose(); }\r\n }\r\n\r\n /** @internal */\r\n export class Batch extends Graphic {\r\n public constructor(public readonly graphic: RenderGraphic, public readonly featureTable: PackedFeatureTable, public readonly range: ElementAlignedBox3d) { super(); }\r\n\r\n public override dispose() {\r\n dispose(this.graphic);\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class Geometry implements RenderGeometry {\r\n public dispose(): void { }\r\n public collectStatistics(): void { }\r\n }\r\n\r\n /** @internal */\r\n export class AreaPattern implements RenderAreaPattern {\r\n public dispose(): void { }\r\n public collectStatistics(): void { }\r\n }\r\n\r\n /** @internal */\r\n export class System extends RenderSystem {\r\n public get isValid() { return true; }\r\n public dispose(): void { }\r\n public override get maxTextureSize() { return 4096; }\r\n\r\n public constructor() { super(); }\r\n\r\n public doIdleWork(): boolean { return false; }\r\n\r\n public createTarget(canvas: HTMLCanvasElement): OnScreenTarget { return new OnScreenTarget(this, canvas); }\r\n public createOffscreenTarget(rect: ViewRect): RenderTarget { return new OffScreenTarget(this, rect); }\r\n\r\n public createGraphic(options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions) {\r\n return new Builder(this, options);\r\n }\r\n\r\n public createGraphicList(primitives: RenderGraphic[]) { return new List(primitives); }\r\n public createGraphicBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions) { return new Branch(branch, transform, options); }\r\n public createBatch(graphic: RenderGraphic, features: PackedFeatureTable, range: ElementAlignedBox3d) { return new Batch(graphic, features, range); }\r\n\r\n public override createMesh(_params: MeshParams) { return new Graphic(); }\r\n public override createPolyline(_params: PolylineParams) { return new Graphic(); }\r\n public override createPointString(_params: PointStringParams) { return new Graphic(); }\r\n public override createPointCloud(_args: PointCloudArgs, _imodel: IModelConnection) { return new Graphic(); }\r\n public override createRenderGraphic() { return new Graphic(); }\r\n\r\n public override createMeshGeometry() { return new Geometry(); }\r\n public override createPolylineGeometry() { return new Geometry(); }\r\n public override createPointStringGeometry() { return new Geometry(); }\r\n public override createAreaPattern() { return new AreaPattern(); }\r\n }\r\n\r\n /** @internal */\r\n export type SystemFactory = () => RenderSystem;\r\n\r\n /** An implementation of IModelApp which uses a MockRender.System by default.\r\n * @internal\r\n */\r\n export class App {\r\n public static systemFactory: SystemFactory = () => App.createDefaultRenderSystem();\r\n\r\n public static async startup(opts?: IModelAppOptions): Promise<void> {\r\n opts = opts ? opts : {};\r\n opts.renderSys = this.systemFactory();\r\n opts.localization = opts.localization ?? new EmptyLocalization();\r\n await IModelApp.startup(opts);\r\n }\r\n public static async shutdown(): Promise<void> {\r\n this.systemFactory = () => App.createDefaultRenderSystem();\r\n await IModelApp.shutdown();\r\n }\r\n\r\n protected static createDefaultRenderSystem() { return new System(); }\r\n }\r\n}\r\n"]}
@@ -1,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module Rendering
3
3
  */
4
- import { Uint16ArrayBuilder } from "@itwin/core-bentley";
4
+ import { Uint16ArrayBuilder, UintArray, UintArrayBuilder } from "@itwin/core-bentley";
5
5
  import { Polyface, Range2d, Range3d, Transform, XAndY, XYAndZ } from "@itwin/core-geometry";
6
6
  import { QPoint2dBuffer, QPoint2dBufferBuilder, QPoint3dBuffer, QPoint3dBufferBuilder, RenderTexture } from "@itwin/core-common";
7
7
  import { GltfMeshData } from "../tile/internal";
@@ -9,7 +9,6 @@ import { GltfMeshData } from "../tile/internal";
9
9
  * A reality mesh is a simple triangle mesh to which a [RenderTexture]($common) image can be mapped. Sources of reality meshes
10
10
  * include [[TerrainMeshProvider]]s to which background map imagery is applied, and [ContextRealityModel]($common)s captured using
11
11
  * [photogrammetry](https://en.wikipedia.org/wiki/Photogrammetry).
12
- * @note Currently, reality meshes cannot contain more than 65,535 vertices.
13
12
  * @see [[RealityMeshParamsBuilder]] to incrementally construct a `RealityMeshParams`.
14
13
  * @beta
15
14
  */
@@ -21,7 +20,7 @@ export interface RealityMeshParams {
21
20
  /** The optional normal vector for each vertex in the mesh, indexed by [[indices]], stored as [OctEncodedNormal]($common)s. */
22
21
  normals?: Uint16Array;
23
22
  /** The integer indices of each triangle in the mesh. The array's length must be a multiple of 3. */
24
- indices: Uint16Array;
23
+ indices: UintArray;
25
24
  /** @alpha unused by terrain meshes */
26
25
  featureID?: number;
27
26
  /** @alpha unused by terrain meshes */
@@ -77,7 +76,7 @@ export declare class RealityMeshParamsBuilder {
77
76
  * @see [[addQuad]] to add 4 indices describing two triangles sharing an edge.
78
77
  * @see [[addIndices]] to add any number of indices.
79
78
  */
80
- readonly indices: Uint16ArrayBuilder;
79
+ readonly indices: UintArrayBuilder;
81
80
  /** The 3d position of each vertex in the mesh.
82
81
  * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.
83
82
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMeshParams.d.ts","sourceRoot":"","sources":["../../../src/render/RealityMeshParams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RealityMeshParams.d.ts","sourceRoot":"","sources":["../../../src/render/RealityMeshParams.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,8 @@ var RealityMeshParams;
18
18
  /** @internal */
19
19
  function fromGltfMesh(mesh) {
20
20
  var _a;
21
- // The specialized reality mesh shaders expect a mesh with 16-bit indices, uvs, and no edges.
22
- if (mesh.primitive.type !== MeshPrimitives_1.Mesh.PrimitiveType.Mesh || mesh.primitive.edges || !mesh.pointQParams || !mesh.uvQParams || !mesh.points || !mesh.uvs || !mesh.indices || !(mesh.indices instanceof Uint16Array))
21
+ // The specialized reality mesh shaders expect a mesh with uvs and no edges.
22
+ if (mesh.primitive.type !== MeshPrimitives_1.Mesh.PrimitiveType.Mesh || mesh.primitive.edges || !mesh.pointQParams || !mesh.uvQParams || !mesh.points || !mesh.uvs || !mesh.indices)
23
23
  return undefined;
24
24
  return {
25
25
  indices: mesh.indices,
@@ -89,7 +89,13 @@ class RealityMeshParamsBuilder {
89
89
  // Scratch variables
90
90
  this._q3d = new core_common_1.QPoint3d();
91
91
  this._q2d = new core_common_1.QPoint2d();
92
- this.indices = new core_bentley_1.Uint16ArrayBuilder({ initialCapacity: options.initialIndexCapacity });
92
+ let initialType;
93
+ if (undefined !== options.initialVertexCapacity && options.initialVertexCapacity > 0xff)
94
+ initialType = options.initialVertexCapacity > 0xffff ? Uint32Array : Uint16Array;
95
+ this.indices = new core_bentley_1.UintArrayBuilder({
96
+ initialCapacity: options.initialIndexCapacity,
97
+ initialType,
98
+ });
93
99
  if (options.wantNormals)
94
100
  this.normals = new core_bentley_1.Uint16ArrayBuilder({ initialCapacity: options.initialVertexCapacity });
95
101
  this.positions = new core_common_1.QPoint3dBufferBuilder({
@@ -130,7 +136,6 @@ class RealityMeshParamsBuilder {
130
136
  * @returns the index of the new vertex in [[positions]].
131
137
  */
132
138
  addQuantizedVertex(position, uv, normal) {
133
- (0, core_bentley_1.assert)(this.positions.length < 0xffff, "RealityMeshParams supports no more than 64k vertices");
134
139
  (0, core_bentley_1.assert)((undefined === normal) === (undefined === this.normals), "RealityMeshParams requires all vertices to have normals, or none.");
135
140
  this.positions.push(position);
136
141
  this.uvs.push(uv);
@@ -157,7 +162,6 @@ class RealityMeshParamsBuilder {
157
162
  this.addIndex(index);
158
163
  }
159
164
  addIndex(index) {
160
- (0, core_bentley_1.assert)(index <= 0xffff, "RealityMeshParams supports no more than 64k vertices");
161
165
  this.indices.push(index);
162
166
  }
163
167
  /** Extract the finished [[RealityMeshParams]]. */
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMeshParams.js","sourceRoot":"","sources":["../../../src/render/RealityMeshParams.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert, Uint16ArrayBuilder } from \"@itwin/core-bentley\";\r\nimport {\r\n IndexedPolyface, Point2d, Point3d, Polyface, Range2d, Range3d, Transform, Vector3d, XAndY, XYAndZ,\r\n} from \"@itwin/core-geometry\";\r\nimport {\r\n OctEncodedNormal, QPoint2d, QPoint2dBuffer, QPoint2dBufferBuilder, QPoint3d, QPoint3dBuffer, QPoint3dBufferBuilder, RenderTexture,\r\n} from \"@itwin/core-common\";\r\nimport { GltfMeshData } from \"../tile/internal\";\r\nimport { Mesh } from \"./primitives/mesh/MeshPrimitives\";\r\n\r\n/** Geometry for a reality mesh to be submitted to the [[RenderSystem]] for conversion to a [[RenderGraphic]].\r\n * A reality mesh is a simple triangle mesh to which a [RenderTexture]($common) image can be mapped. Sources of reality meshes\r\n * include [[TerrainMeshProvider]]s to which background map imagery is applied, and [ContextRealityModel]($common)s captured using\r\n * [photogrammetry](https://en.wikipedia.org/wiki/Photogrammetry).\r\n * @note Currently, reality meshes cannot contain more than 65,535 vertices.\r\n * @see [[RealityMeshParamsBuilder]] to incrementally construct a `RealityMeshParams`.\r\n * @beta\r\n */\r\nexport interface RealityMeshParams {\r\n /** The 3d position of each vertex in the mesh, indexed by [[indices]]. */\r\n positions: QPoint3dBuffer;\r\n /** The 2d texture coordinates of each vertex in the mesh, indexed by [[indices]]. */\r\n uvs: QPoint2dBuffer;\r\n /** The optional normal vector for each vertex in the mesh, indexed by [[indices]], stored as [OctEncodedNormal]($common)s. */\r\n normals?: Uint16Array;\r\n /** The integer indices of each triangle in the mesh. The array's length must be a multiple of 3. */\r\n indices: Uint16Array;\r\n /** @alpha unused by terrain meshes */\r\n featureID?: number; // default 0\r\n /** @alpha unused by terrain meshes */\r\n texture?: RenderTexture;\r\n}\r\n\r\n/** @beta */\r\nexport namespace RealityMeshParams {\r\n /** @internal */\r\n export function fromGltfMesh(mesh: GltfMeshData): RealityMeshParams | undefined {\r\n // The specialized reality mesh shaders expect a mesh with 16-bit indices, uvs, and no edges.\r\n if (mesh.primitive.type !== Mesh.PrimitiveType.Mesh || mesh.primitive.edges || !mesh.pointQParams || !mesh.uvQParams || !mesh.points || !mesh.uvs || !mesh.indices || !(mesh.indices instanceof Uint16Array))\r\n return undefined;\r\n\r\n return {\r\n indices: mesh.indices,\r\n positions: {\r\n params: mesh.pointQParams,\r\n points: mesh.points,\r\n },\r\n uvs: {\r\n params: mesh.uvQParams,\r\n points: mesh.uvs,\r\n },\r\n normals: mesh.normals,\r\n // featureID: 0,\r\n texture: mesh.primitive.displayParams.textureMapping?.texture,\r\n };\r\n }\r\n\r\n /** @alpha */\r\n export function toPolyface(params: RealityMeshParams, options?: { transform?: Transform, wantNormals?: boolean, wantParams?: boolean }): Polyface | undefined {\r\n const { positions, normals, uvs, indices } = params;\r\n const includeNormals = options?.wantNormals && undefined !== normals;\r\n const includeParams = options?.wantParams;\r\n\r\n const polyface = IndexedPolyface.create(includeNormals, includeParams);\r\n const points = positions.points;\r\n const point = new Point3d();\r\n const transform = options?.transform;\r\n for (let i = 0; i < positions.points.length; i += 3) {\r\n positions.params.unquantize(points[i], points[i + 1], points[i + 2], point);\r\n transform?.multiplyPoint3d(point, point);\r\n polyface.addPoint(point);\r\n }\r\n\r\n if (includeNormals) {\r\n const normal = new Vector3d();\r\n for (const oen of normals)\r\n polyface.addNormal(OctEncodedNormal.decodeValue(oen, normal));\r\n }\r\n\r\n if (includeParams) {\r\n const uv = new Point2d();\r\n for (let i = 0; i < uvs.points.length; i += 2)\r\n polyface.addParam(uvs.params.unquantize(uvs.points[i], uvs.points[i + 1], uv));\r\n }\r\n\r\n let j = 0;\r\n indices.forEach((index: number) => {\r\n polyface.addPointIndex(index);\r\n if (includeNormals)\r\n polyface.addNormalIndex(index);\r\n\r\n if (includeParams)\r\n polyface.addParamIndex(index);\r\n\r\n if (0 === (++j % 3))\r\n polyface.terminateFacet();\r\n });\r\n\r\n return polyface;\r\n }\r\n}\r\n\r\n/** Options used to construct a [[RealityMeshParamsBuilder]].\r\n * @beta\r\n */\r\nexport interface RealityMeshParamsBuilderOptions {\r\n /** A bounding box fully containing the positions of all vertices to be included in the mesh.\r\n * This range is used to quantize [[RealityMeshParams.positions]].\r\n */\r\n positionRange: Range3d;\r\n /** A range fully containing the texture coordinates of all vertices to be included in the mesh.\r\n * This range is used to quantize [[RealityMeshParams.uvs]].\r\n * Default: [0.0, 1.0].\r\n */\r\n uvRange?: Range2d;\r\n /** If true, [[RealityMeshParams.normals]] will be populated.\r\n * If you set this to true, you must supply a normal for every vertex when calling [[RealityMeshParamsBuilder.addQuantizedVertex]] or [[RealityMeshParamsBuilder.addUnquantizedVertex]].\r\n */\r\n wantNormals?: boolean;\r\n /** If defined, memory for this number of vertices will be allocated up-front. Set this if you know the minimum number of vertices in the mesh, to\r\n * avoid unnecessary reallocations when adding vertices.\r\n */\r\n initialVertexCapacity?: number;\r\n /** If defined, memory for this number of indices will be allocated up-front. Set this if you know the minimum number of triangles in the mesh, to avoid\r\n * unnecessary reallocations when adding triangles. The number of indices is equal to three times the number of triangles.\r\n */\r\n initialIndexCapacity?: number;\r\n}\r\n\r\n/** Incrementally constructs a [[RealityMeshParams]].\r\n * The following simple example produces a rectangular mesh containing two triangles.\r\n * ```ts\r\n * [[include:Build_Reality_Mesh_Params]]\r\n * ```\r\n * @beta\r\n */\r\nexport class RealityMeshParamsBuilder {\r\n /** The indices of the vertices in each triangle of the mesh.\r\n * @see [[addTriangle]] to add 3 indices describing a single triangle.\r\n * @see [[addQuad]] to add 4 indices describing two triangles sharing an edge.\r\n * @see [[addIndices]] to add any number of indices.\r\n */\r\n public readonly indices: Uint16ArrayBuilder;\r\n /** The 3d position of each vertex in the mesh.\r\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\r\n */\r\n public readonly positions: QPoint3dBufferBuilder;\r\n /** The 2d texture coordinates of each vertex in the mesh.\r\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\r\n */\r\n public readonly uvs: QPoint2dBufferBuilder;\r\n /** The normal vector of each vertex in the mesh, or `undefined` if [[RealityMeshParamsBuilderOptions.wantNormals]] was not `true` when constructing the builder.\r\n * A normal vector must be supplied to [[addQuantizedVertex]] and [[addUnquantizedVertex]] if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was\r\n * specified as `true`.\r\n * The vectors are stored as [OctEncodedNormal]($common)s.\r\n */\r\n public normals?: Uint16ArrayBuilder;\r\n\r\n // Scratch variables\r\n private readonly _q3d = new QPoint3d();\r\n private readonly _q2d = new QPoint2d();\r\n\r\n /** Construct a builder from the specified options. */\r\n public constructor(options: RealityMeshParamsBuilderOptions) {\r\n this.indices = new Uint16ArrayBuilder({ initialCapacity: options.initialIndexCapacity });\r\n if (options.wantNormals)\r\n this.normals = new Uint16ArrayBuilder({ initialCapacity: options.initialVertexCapacity });\r\n\r\n this.positions = new QPoint3dBufferBuilder({\r\n range: options.positionRange,\r\n initialCapacity: options.initialVertexCapacity,\r\n });\r\n\r\n this.uvs = new QPoint2dBufferBuilder({\r\n range: options.uvRange ?? new Range2d(0, 0, 1, 1),\r\n initialCapacity: options.initialVertexCapacity,\r\n });\r\n }\r\n\r\n /** Add a vertex to the mesh and return its index in [[positions]].\r\n * @param position The 3d position, which will be quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\r\n * @param uv The texture coordinates, which will be quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\r\n * @param the normal vector, to be supplied if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\r\n * @see [[addQuantizedVertex]] if your vertex data is already quantized.\r\n * @returns the index of the new vertex in [[positions]].\r\n */\r\n public addUnquantizedVertex(position: XYAndZ, uv: XAndY, normal?: XYAndZ): number {\r\n this._q3d.init(position, this.positions.params);\r\n this._q2d.init(uv, this.uvs.params);\r\n const oen = normal ? OctEncodedNormal.encode(normal) : undefined;\r\n return this.addQuantizedVertex(this._q3d, this._q2d, oen);\r\n }\r\n\r\n /** Original API had weird mix of quantized and unquantized, used by CesiumTerrainProvider.\r\n * @internal\r\n */\r\n public addVertex(position: XYAndZ, uv: XAndY, normal?: number): void {\r\n this._q3d.init(position, this.positions.params);\r\n this.addQuantizedVertex(this._q3d, uv, normal);\r\n }\r\n\r\n /** Add a vertex to the mesh and return its index in [[positions]].\r\n * @param position The 3d position, quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\r\n * @param uv The texture coordinates, quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\r\n * @param normal The unsigned 16-bit [OctEncodedNormal]($common) integer representation of the normal vector, to be supplied if and only if\r\n * [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\r\n * @see [[addUnquantizedVertex]] if your vertex data is not already quantized.\r\n * @returns the index of the new vertex in [[positions]].\r\n */\r\n public addQuantizedVertex(position: XYAndZ, uv: XAndY, normal?: number): number {\r\n assert(this.positions.length < 0xffff, \"RealityMeshParams supports no more than 64k vertices\");\r\n assert((undefined === normal) === (undefined === this.normals), \"RealityMeshParams requires all vertices to have normals, or none.\");\r\n\r\n this.positions.push(position);\r\n this.uvs.push(uv);\r\n if (undefined !== normal) {\r\n assert(undefined !== this.normals, \"Set RealityMeshParamsBuilderOptions.wantNormals\");\r\n this.normals.push(normal);\r\n }\r\n\r\n return this.positions.length - 1;\r\n }\r\n\r\n /** Add a triangle corresponding to the three specified vertices. */\r\n public addTriangle(i0: number, i1: number, i2: number): void {\r\n this.addIndex(i0);\r\n this.addIndex(i1);\r\n this.addIndex(i2);\r\n }\r\n\r\n /** Add two triangles sharing an edge. This is equivalent to calling `addTriangle(i0, i1, i2); addTriangle(i1, i3, i2);`. */\r\n public addQuad(i0: number, i1: number, i2: number, i3: number): void {\r\n this.addTriangle(i0, i1, i2);\r\n this.addTriangle(i1, i3, i2);\r\n }\r\n\r\n /** Add all of the indices in `indices` to the index buffer. */\r\n public addIndices(indices: Iterable<number>): void {\r\n for (const index of indices)\r\n this.addIndex(index);\r\n }\r\n\r\n private addIndex(index: number): void {\r\n assert(index <= 0xffff, \"RealityMeshParams supports no more than 64k vertices\");\r\n this.indices.push(index);\r\n }\r\n\r\n /** Extract the finished [[RealityMeshParams]]. */\r\n public finish(): RealityMeshParams {\r\n assert(this.positions.length >= 3 && this.indices.length >= 3, \"RealityMeshParams requires at least one triangle\");\r\n return {\r\n positions: this.positions.finish(),\r\n uvs: this.uvs.finish(),\r\n normals: this.normals?.toTypedArray(),\r\n indices: this.indices.toTypedArray(),\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RealityMeshParams.js","sourceRoot":"","sources":["../../../src/render/RealityMeshParams.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert, Uint16ArrayBuilder, UintArray, UintArrayBuilder } from \"@itwin/core-bentley\";\r\nimport {\r\n IndexedPolyface, Point2d, Point3d, Polyface, Range2d, Range3d, Transform, Vector3d, XAndY, XYAndZ,\r\n} from \"@itwin/core-geometry\";\r\nimport {\r\n OctEncodedNormal, QPoint2d, QPoint2dBuffer, QPoint2dBufferBuilder, QPoint3d, QPoint3dBuffer, QPoint3dBufferBuilder, RenderTexture,\r\n} from \"@itwin/core-common\";\r\nimport { GltfMeshData } from \"../tile/internal\";\r\nimport { Mesh } from \"./primitives/mesh/MeshPrimitives\";\r\n\r\n/** Geometry for a reality mesh to be submitted to the [[RenderSystem]] for conversion to a [[RenderGraphic]].\r\n * A reality mesh is a simple triangle mesh to which a [RenderTexture]($common) image can be mapped. Sources of reality meshes\r\n * include [[TerrainMeshProvider]]s to which background map imagery is applied, and [ContextRealityModel]($common)s captured using\r\n * [photogrammetry](https://en.wikipedia.org/wiki/Photogrammetry).\r\n * @see [[RealityMeshParamsBuilder]] to incrementally construct a `RealityMeshParams`.\r\n * @beta\r\n */\r\nexport interface RealityMeshParams {\r\n /** The 3d position of each vertex in the mesh, indexed by [[indices]]. */\r\n positions: QPoint3dBuffer;\r\n /** The 2d texture coordinates of each vertex in the mesh, indexed by [[indices]]. */\r\n uvs: QPoint2dBuffer;\r\n /** The optional normal vector for each vertex in the mesh, indexed by [[indices]], stored as [OctEncodedNormal]($common)s. */\r\n normals?: Uint16Array;\r\n /** The integer indices of each triangle in the mesh. The array's length must be a multiple of 3. */\r\n indices: UintArray;\r\n /** @alpha unused by terrain meshes */\r\n featureID?: number; // default 0\r\n /** @alpha unused by terrain meshes */\r\n texture?: RenderTexture;\r\n}\r\n\r\n/** @beta */\r\nexport namespace RealityMeshParams {\r\n /** @internal */\r\n export function fromGltfMesh(mesh: GltfMeshData): RealityMeshParams | undefined {\r\n // The specialized reality mesh shaders expect a mesh with uvs and no edges.\r\n if (mesh.primitive.type !== Mesh.PrimitiveType.Mesh || mesh.primitive.edges || !mesh.pointQParams || !mesh.uvQParams || !mesh.points || !mesh.uvs || !mesh.indices)\r\n return undefined;\r\n\r\n return {\r\n indices: mesh.indices,\r\n positions: {\r\n params: mesh.pointQParams,\r\n points: mesh.points,\r\n },\r\n uvs: {\r\n params: mesh.uvQParams,\r\n points: mesh.uvs,\r\n },\r\n normals: mesh.normals,\r\n // featureID: 0,\r\n texture: mesh.primitive.displayParams.textureMapping?.texture,\r\n };\r\n }\r\n\r\n /** @alpha */\r\n export function toPolyface(params: RealityMeshParams, options?: { transform?: Transform, wantNormals?: boolean, wantParams?: boolean }): Polyface | undefined {\r\n const { positions, normals, uvs, indices } = params;\r\n const includeNormals = options?.wantNormals && undefined !== normals;\r\n const includeParams = options?.wantParams;\r\n\r\n const polyface = IndexedPolyface.create(includeNormals, includeParams);\r\n const points = positions.points;\r\n const point = new Point3d();\r\n const transform = options?.transform;\r\n for (let i = 0; i < positions.points.length; i += 3) {\r\n positions.params.unquantize(points[i], points[i + 1], points[i + 2], point);\r\n transform?.multiplyPoint3d(point, point);\r\n polyface.addPoint(point);\r\n }\r\n\r\n if (includeNormals) {\r\n const normal = new Vector3d();\r\n for (const oen of normals)\r\n polyface.addNormal(OctEncodedNormal.decodeValue(oen, normal));\r\n }\r\n\r\n if (includeParams) {\r\n const uv = new Point2d();\r\n for (let i = 0; i < uvs.points.length; i += 2)\r\n polyface.addParam(uvs.params.unquantize(uvs.points[i], uvs.points[i + 1], uv));\r\n }\r\n\r\n let j = 0;\r\n indices.forEach((index: number) => {\r\n polyface.addPointIndex(index);\r\n if (includeNormals)\r\n polyface.addNormalIndex(index);\r\n\r\n if (includeParams)\r\n polyface.addParamIndex(index);\r\n\r\n if (0 === (++j % 3))\r\n polyface.terminateFacet();\r\n });\r\n\r\n return polyface;\r\n }\r\n}\r\n\r\n/** Options used to construct a [[RealityMeshParamsBuilder]].\r\n * @beta\r\n */\r\nexport interface RealityMeshParamsBuilderOptions {\r\n /** A bounding box fully containing the positions of all vertices to be included in the mesh.\r\n * This range is used to quantize [[RealityMeshParams.positions]].\r\n */\r\n positionRange: Range3d;\r\n /** A range fully containing the texture coordinates of all vertices to be included in the mesh.\r\n * This range is used to quantize [[RealityMeshParams.uvs]].\r\n * Default: [0.0, 1.0].\r\n */\r\n uvRange?: Range2d;\r\n /** If true, [[RealityMeshParams.normals]] will be populated.\r\n * If you set this to true, you must supply a normal for every vertex when calling [[RealityMeshParamsBuilder.addQuantizedVertex]] or [[RealityMeshParamsBuilder.addUnquantizedVertex]].\r\n */\r\n wantNormals?: boolean;\r\n /** If defined, memory for this number of vertices will be allocated up-front. Set this if you know the minimum number of vertices in the mesh, to\r\n * avoid unnecessary reallocations when adding vertices.\r\n */\r\n initialVertexCapacity?: number;\r\n /** If defined, memory for this number of indices will be allocated up-front. Set this if you know the minimum number of triangles in the mesh, to avoid\r\n * unnecessary reallocations when adding triangles. The number of indices is equal to three times the number of triangles.\r\n */\r\n initialIndexCapacity?: number;\r\n}\r\n\r\n/** Incrementally constructs a [[RealityMeshParams]].\r\n * The following simple example produces a rectangular mesh containing two triangles.\r\n * ```ts\r\n * [[include:Build_Reality_Mesh_Params]]\r\n * ```\r\n * @beta\r\n */\r\nexport class RealityMeshParamsBuilder {\r\n /** The indices of the vertices in each triangle of the mesh.\r\n * @see [[addTriangle]] to add 3 indices describing a single triangle.\r\n * @see [[addQuad]] to add 4 indices describing two triangles sharing an edge.\r\n * @see [[addIndices]] to add any number of indices.\r\n */\r\n public readonly indices: UintArrayBuilder;\r\n /** The 3d position of each vertex in the mesh.\r\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\r\n */\r\n public readonly positions: QPoint3dBufferBuilder;\r\n /** The 2d texture coordinates of each vertex in the mesh.\r\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\r\n */\r\n public readonly uvs: QPoint2dBufferBuilder;\r\n /** The normal vector of each vertex in the mesh, or `undefined` if [[RealityMeshParamsBuilderOptions.wantNormals]] was not `true` when constructing the builder.\r\n * A normal vector must be supplied to [[addQuantizedVertex]] and [[addUnquantizedVertex]] if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was\r\n * specified as `true`.\r\n * The vectors are stored as [OctEncodedNormal]($common)s.\r\n */\r\n public normals?: Uint16ArrayBuilder;\r\n\r\n // Scratch variables\r\n private readonly _q3d = new QPoint3d();\r\n private readonly _q2d = new QPoint2d();\r\n\r\n /** Construct a builder from the specified options. */\r\n public constructor(options: RealityMeshParamsBuilderOptions) {\r\n let initialType;\r\n if (undefined !== options.initialVertexCapacity && options.initialVertexCapacity > 0xff)\r\n initialType = options.initialVertexCapacity > 0xffff ? Uint32Array : Uint16Array;\r\n\r\n this.indices = new UintArrayBuilder({\r\n initialCapacity: options.initialIndexCapacity,\r\n initialType,\r\n });\r\n\r\n if (options.wantNormals)\r\n this.normals = new Uint16ArrayBuilder({ initialCapacity: options.initialVertexCapacity });\r\n\r\n this.positions = new QPoint3dBufferBuilder({\r\n range: options.positionRange,\r\n initialCapacity: options.initialVertexCapacity,\r\n });\r\n\r\n this.uvs = new QPoint2dBufferBuilder({\r\n range: options.uvRange ?? new Range2d(0, 0, 1, 1),\r\n initialCapacity: options.initialVertexCapacity,\r\n });\r\n }\r\n\r\n /** Add a vertex to the mesh and return its index in [[positions]].\r\n * @param position The 3d position, which will be quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\r\n * @param uv The texture coordinates, which will be quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\r\n * @param the normal vector, to be supplied if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\r\n * @see [[addQuantizedVertex]] if your vertex data is already quantized.\r\n * @returns the index of the new vertex in [[positions]].\r\n */\r\n public addUnquantizedVertex(position: XYAndZ, uv: XAndY, normal?: XYAndZ): number {\r\n this._q3d.init(position, this.positions.params);\r\n this._q2d.init(uv, this.uvs.params);\r\n const oen = normal ? OctEncodedNormal.encode(normal) : undefined;\r\n return this.addQuantizedVertex(this._q3d, this._q2d, oen);\r\n }\r\n\r\n /** Original API had weird mix of quantized and unquantized, used by CesiumTerrainProvider.\r\n * @internal\r\n */\r\n public addVertex(position: XYAndZ, uv: XAndY, normal?: number): void {\r\n this._q3d.init(position, this.positions.params);\r\n this.addQuantizedVertex(this._q3d, uv, normal);\r\n }\r\n\r\n /** Add a vertex to the mesh and return its index in [[positions]].\r\n * @param position The 3d position, quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\r\n * @param uv The texture coordinates, quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\r\n * @param normal The unsigned 16-bit [OctEncodedNormal]($common) integer representation of the normal vector, to be supplied if and only if\r\n * [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\r\n * @see [[addUnquantizedVertex]] if your vertex data is not already quantized.\r\n * @returns the index of the new vertex in [[positions]].\r\n */\r\n public addQuantizedVertex(position: XYAndZ, uv: XAndY, normal?: number): number {\r\n assert((undefined === normal) === (undefined === this.normals), \"RealityMeshParams requires all vertices to have normals, or none.\");\r\n\r\n this.positions.push(position);\r\n this.uvs.push(uv);\r\n if (undefined !== normal) {\r\n assert(undefined !== this.normals, \"Set RealityMeshParamsBuilderOptions.wantNormals\");\r\n this.normals.push(normal);\r\n }\r\n\r\n return this.positions.length - 1;\r\n }\r\n\r\n /** Add a triangle corresponding to the three specified vertices. */\r\n public addTriangle(i0: number, i1: number, i2: number): void {\r\n this.addIndex(i0);\r\n this.addIndex(i1);\r\n this.addIndex(i2);\r\n }\r\n\r\n /** Add two triangles sharing an edge. This is equivalent to calling `addTriangle(i0, i1, i2); addTriangle(i1, i3, i2);`. */\r\n public addQuad(i0: number, i1: number, i2: number, i3: number): void {\r\n this.addTriangle(i0, i1, i2);\r\n this.addTriangle(i1, i3, i2);\r\n }\r\n\r\n /** Add all of the indices in `indices` to the index buffer. */\r\n public addIndices(indices: Iterable<number>): void {\r\n for (const index of indices)\r\n this.addIndex(index);\r\n }\r\n\r\n private addIndex(index: number): void {\r\n this.indices.push(index);\r\n }\r\n\r\n /** Extract the finished [[RealityMeshParams]]. */\r\n public finish(): RealityMeshParams {\r\n assert(this.positions.length >= 3 && this.indices.length >= 3, \"RealityMeshParams requires at least one triangle\");\r\n return {\r\n positions: this.positions.finish(),\r\n uvs: this.uvs.finish(),\r\n normals: this.normals?.toTypedArray(),\r\n indices: this.indices.toTypedArray(),\r\n };\r\n }\r\n}\r\n"]}
@@ -8,7 +8,7 @@ import { Viewport } from "../Viewport";
8
8
  import { IModelConnection } from "../IModelConnection";
9
9
  /** Represents a [Feature]($common) determined to be visible within a [[Viewport]].
10
10
  * @see [[Viewport.queryVisibleFeatures]].
11
- * @beta
11
+ * @public
12
12
  */
13
13
  export interface VisibleFeature {
14
14
  /** The Id of the [Element]($backend) associated with the feature. May be invalid or transient. */
@@ -26,7 +26,7 @@ export interface VisibleFeature {
26
26
  * This method of determining visibility considers a feature "visible" if it lit up at least one pixel.
27
27
  * @note A pixel that is behind another, transparent pixel is not considered visible.
28
28
  * @see [[QueryVisibleFeaturesOptions]].
29
- * @beta
29
+ * @public
30
30
  */
31
31
  export interface QueryScreenFeaturesOptions {
32
32
  /** Union discriminator for [[QueryVisibleFeaturesOptions]]. */
@@ -43,7 +43,7 @@ export interface QueryScreenFeaturesOptions {
43
43
  * @note If a clip volume is applied to the view, features contained in tiles that *intersect* the clip volume are considered visible regardless of whether
44
44
  * their geometry would actually be entirely clipped out by the clip volume.
45
45
  * @see [[QueryVisibleFeaturesOptions]].
46
- * @beta
46
+ * @public
47
47
  */
48
48
  export interface QueryTileFeaturesOptions {
49
49
  /** Union discriminator for [[QueryVisibleFeaturesOptions]]. */
@@ -53,13 +53,13 @@ export interface QueryTileFeaturesOptions {
53
53
  }
54
54
  /** Options specifying how to query for visible [Feature]($common)s.
55
55
  * @see [[Viewport.queryVisibleFeatures]].
56
- * @beta
56
+ * @public
57
57
  */
58
58
  export declare type QueryVisibleFeaturesOptions = QueryScreenFeaturesOptions | QueryTileFeaturesOptions;
59
59
  /** A function supplied to [[Viewport.queryVisibleFeatures]] to process the results. The iterable supplied to the callback consists of all of the
60
60
  * [Feature]($common)s determined to be visible. The same feature may recur multiple times.
61
61
  * @note The iterable supplied to the callback is usable only within the callback. Once the callback exits, the iterable becomes empty.
62
- * @beta
62
+ * @public
63
63
  */
64
64
  export declare type QueryVisibleFeaturesCallback = (features: Iterable<VisibleFeature>) => void;
65
65
  /** Implementation of [[Viewport.queryVisibleFeatures]].
@@ -1 +1 @@
1
- {"version":3,"file":"VisibleFeature.js","sourceRoot":"","sources":["../../../src/render/VisibleFeature.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { GeometryClass } from \"@itwin/core-common\";\r\nimport { ViewRect } from \"../ViewRect\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { Pixel } from \"./Pixel\";\r\n\r\n/** Represents a [Feature]($common) determined to be visible within a [[Viewport]].\r\n * @see [[Viewport.queryVisibleFeatures]].\r\n * @beta\r\n */\r\nexport interface VisibleFeature {\r\n /** The Id of the [Element]($backend) associated with the feature. May be invalid or transient. */\r\n readonly elementId: Id64String;\r\n /** The Id of the [SubCategory]($backend) associated with the feature. May be invalid or transient. */\r\n readonly subCategoryId: Id64String;\r\n /** The class of geometry associated with the feature. */\r\n readonly geometryClass: GeometryClass;\r\n /** The Id of the [GeometricModel]($backend) associated with the feature. May be invalid or transient. */\r\n readonly modelId: Id64String;\r\n /** The iModel associated with the feature. In some cases this may differ from the [[Viewport]]'s iModel. */\r\n iModel: IModelConnection;\r\n}\r\n\r\n/** Options specifying how to query for visible [Feature]($common)s by reading pixels rendered by a [[Viewport]].\r\n * This method of determining visibility considers a feature \"visible\" if it lit up at least one pixel.\r\n * @note A pixel that is behind another, transparent pixel is not considered visible.\r\n * @see [[QueryVisibleFeaturesOptions]].\r\n * @beta\r\n */\r\nexport interface QueryScreenFeaturesOptions {\r\n /** Union discriminator for [[QueryVisibleFeaturesOptions]]. */\r\n source: \"screen\";\r\n /** If true, non-locatable features are considered visible. */\r\n includeNonLocatable?: boolean;\r\n /** If specified, a sub-region of the [[Viewport]] to which to constrain the query. */\r\n rect?: ViewRect;\r\n}\r\n\r\n/** Options specifying how to query for visible [Feature]($common)s by inspecting the [[Tile]]s selected for display by a [[Viewport]].\r\n * This method of determining visibility considers a feature \"visible\" if it is included in at least one tile selected for display and is\r\n * not otherwise rendered invisible by the view's [[CategorySelectorState]], [SubCategoryAppearance]($common) overrides, [FeatureOverrides]($common), or\r\n * other means.\r\n * @note If a clip volume is applied to the view, features contained in tiles that *intersect* the clip volume are considered visible regardless of whether\r\n * their geometry would actually be entirely clipped out by the clip volume.\r\n * @see [[QueryVisibleFeaturesOptions]].\r\n * @beta\r\n */\r\nexport interface QueryTileFeaturesOptions {\r\n /** Union discriminator for [[QueryVisibleFeaturesOptions]]. */\r\n source: \"tiles\";\r\n /** If true, non-locatable features are considered visible. */\r\n includeNonLocatable?: boolean;\r\n}\r\n\r\n/** Options specifying how to query for visible [Feature]($common)s.\r\n * @see [[Viewport.queryVisibleFeatures]].\r\n * @beta\r\n */\r\nexport type QueryVisibleFeaturesOptions = QueryScreenFeaturesOptions | QueryTileFeaturesOptions;\r\n\r\n/** A function supplied to [[Viewport.queryVisibleFeatures]] to process the results. The iterable supplied to the callback consists of all of the\r\n * [Feature]($common)s determined to be visible. The same feature may recur multiple times.\r\n * @note The iterable supplied to the callback is usable only within the callback. Once the callback exits, the iterable becomes empty.\r\n * @beta\r\n */\r\nexport type QueryVisibleFeaturesCallback = (features: Iterable<VisibleFeature>) => void;\r\n\r\n/** Ensures that the iterable supplied to QueryVisibleFeaturesCallback becomes invalidated once the callback exits.\r\n * The iterable relies on RenderTarget state that changes from one frame to another.\r\n */\r\nclass ExpiringIterable implements Iterable<VisibleFeature> {\r\n private _features: Iterable<VisibleFeature>;\r\n private _disposed = false;\r\n\r\n public constructor(features: Iterable<VisibleFeature>) {\r\n this._features = features;\r\n }\r\n\r\n public dispose(): void {\r\n this._disposed = true;\r\n this._features = [];\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<VisibleFeature> {\r\n assert(!this._disposed, \"The iterable supplied to QueryVisibleFeaturesCallback is valid only for the duration of the callback.\");\r\n return this._features[Symbol.iterator]();\r\n }\r\n}\r\n\r\nfunction invokeCallback(features: Iterable<VisibleFeature>, callback: QueryVisibleFeaturesCallback): void {\r\n const iterable = new ExpiringIterable(features);\r\n try {\r\n callback(iterable);\r\n } finally {\r\n iterable.dispose();\r\n }\r\n}\r\n\r\n/** Features read from pixels rendered by a viewport. */\r\nclass ScreenFeatures implements Iterable<VisibleFeature> {\r\n private readonly _pixels: Pixel.Buffer;\r\n private readonly _rect: ViewRect;\r\n private readonly _iModel: IModelConnection;\r\n\r\n public constructor(pixels: Pixel.Buffer, rect: ViewRect, viewport: Viewport) {\r\n this._pixels = pixels;\r\n this._rect = rect.clone();\r\n this._rect.right = viewport.cssPixelsToDevicePixels(this._rect.right);\r\n this._rect.bottom = viewport.cssPixelsToDevicePixels(this._rect.bottom);\r\n this._iModel = viewport.iModel;\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<VisibleFeature> {\r\n function* iterator(pixels: Pixel.Buffer, rect: ViewRect, iModel: IModelConnection) {\r\n for (let x = rect.left; x < rect.right; x++) {\r\n for (let y = rect.top; y < rect.bottom; y++) {\r\n const pixel = pixels.getPixel(x, y);\r\n if (pixel.feature && pixel.featureTable) {\r\n yield {\r\n elementId: pixel.feature.elementId,\r\n subCategoryId: pixel.feature.subCategoryId,\r\n geometryClass: pixel.feature.geometryClass,\r\n modelId: pixel.featureTable.modelId,\r\n iModel: pixel.iModel ?? iModel,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n return iterator(this._pixels, this._rect, this._iModel);\r\n }\r\n}\r\n\r\n/** Implementation of [[Viewport.queryVisibleFeatures]].\r\n * @internal\r\n */\r\nexport function queryVisibleFeatures(viewport: Viewport, options: QueryVisibleFeaturesOptions, callback: QueryVisibleFeaturesCallback): void {\r\n assert(\"screen\" === options.source || \"tiles\" === options.source);\r\n switch (options.source) {\r\n case \"screen\":\r\n const rect = options.rect ?? viewport.viewRect;\r\n viewport.readPixels(rect, Pixel.Selector.Feature, (pixels) => invokeCallback(pixels ? new ScreenFeatures(pixels, rect, viewport) : [], callback), true !== options.includeNonLocatable);\r\n break;\r\n case \"tiles\":\r\n viewport.target.queryVisibleTileFeatures(options, viewport.iModel, (features) => invokeCallback(features, callback));\r\n break;\r\n default:\r\n invokeCallback([], callback);\r\n break;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"VisibleFeature.js","sourceRoot":"","sources":["../../../src/render/VisibleFeature.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { GeometryClass } from \"@itwin/core-common\";\r\nimport { ViewRect } from \"../ViewRect\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { Pixel } from \"./Pixel\";\r\n\r\n/** Represents a [Feature]($common) determined to be visible within a [[Viewport]].\r\n * @see [[Viewport.queryVisibleFeatures]].\r\n * @public\r\n */\r\nexport interface VisibleFeature {\r\n /** The Id of the [Element]($backend) associated with the feature. May be invalid or transient. */\r\n readonly elementId: Id64String;\r\n /** The Id of the [SubCategory]($backend) associated with the feature. May be invalid or transient. */\r\n readonly subCategoryId: Id64String;\r\n /** The class of geometry associated with the feature. */\r\n readonly geometryClass: GeometryClass;\r\n /** The Id of the [GeometricModel]($backend) associated with the feature. May be invalid or transient. */\r\n readonly modelId: Id64String;\r\n /** The iModel associated with the feature. In some cases this may differ from the [[Viewport]]'s iModel. */\r\n iModel: IModelConnection;\r\n}\r\n\r\n/** Options specifying how to query for visible [Feature]($common)s by reading pixels rendered by a [[Viewport]].\r\n * This method of determining visibility considers a feature \"visible\" if it lit up at least one pixel.\r\n * @note A pixel that is behind another, transparent pixel is not considered visible.\r\n * @see [[QueryVisibleFeaturesOptions]].\r\n * @public\r\n */\r\nexport interface QueryScreenFeaturesOptions {\r\n /** Union discriminator for [[QueryVisibleFeaturesOptions]]. */\r\n source: \"screen\";\r\n /** If true, non-locatable features are considered visible. */\r\n includeNonLocatable?: boolean;\r\n /** If specified, a sub-region of the [[Viewport]] to which to constrain the query. */\r\n rect?: ViewRect;\r\n}\r\n\r\n/** Options specifying how to query for visible [Feature]($common)s by inspecting the [[Tile]]s selected for display by a [[Viewport]].\r\n * This method of determining visibility considers a feature \"visible\" if it is included in at least one tile selected for display and is\r\n * not otherwise rendered invisible by the view's [[CategorySelectorState]], [SubCategoryAppearance]($common) overrides, [FeatureOverrides]($common), or\r\n * other means.\r\n * @note If a clip volume is applied to the view, features contained in tiles that *intersect* the clip volume are considered visible regardless of whether\r\n * their geometry would actually be entirely clipped out by the clip volume.\r\n * @see [[QueryVisibleFeaturesOptions]].\r\n * @public\r\n */\r\nexport interface QueryTileFeaturesOptions {\r\n /** Union discriminator for [[QueryVisibleFeaturesOptions]]. */\r\n source: \"tiles\";\r\n /** If true, non-locatable features are considered visible. */\r\n includeNonLocatable?: boolean;\r\n}\r\n\r\n/** Options specifying how to query for visible [Feature]($common)s.\r\n * @see [[Viewport.queryVisibleFeatures]].\r\n * @public\r\n */\r\nexport type QueryVisibleFeaturesOptions = QueryScreenFeaturesOptions | QueryTileFeaturesOptions;\r\n\r\n/** A function supplied to [[Viewport.queryVisibleFeatures]] to process the results. The iterable supplied to the callback consists of all of the\r\n * [Feature]($common)s determined to be visible. The same feature may recur multiple times.\r\n * @note The iterable supplied to the callback is usable only within the callback. Once the callback exits, the iterable becomes empty.\r\n * @public\r\n */\r\nexport type QueryVisibleFeaturesCallback = (features: Iterable<VisibleFeature>) => void;\r\n\r\n/** Ensures that the iterable supplied to QueryVisibleFeaturesCallback becomes invalidated once the callback exits.\r\n * The iterable relies on RenderTarget state that changes from one frame to another.\r\n */\r\nclass ExpiringIterable implements Iterable<VisibleFeature> {\r\n private _features: Iterable<VisibleFeature>;\r\n private _disposed = false;\r\n\r\n public constructor(features: Iterable<VisibleFeature>) {\r\n this._features = features;\r\n }\r\n\r\n public dispose(): void {\r\n this._disposed = true;\r\n this._features = [];\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<VisibleFeature> {\r\n assert(!this._disposed, \"The iterable supplied to QueryVisibleFeaturesCallback is valid only for the duration of the callback.\");\r\n return this._features[Symbol.iterator]();\r\n }\r\n}\r\n\r\nfunction invokeCallback(features: Iterable<VisibleFeature>, callback: QueryVisibleFeaturesCallback): void {\r\n const iterable = new ExpiringIterable(features);\r\n try {\r\n callback(iterable);\r\n } finally {\r\n iterable.dispose();\r\n }\r\n}\r\n\r\n/** Features read from pixels rendered by a viewport. */\r\nclass ScreenFeatures implements Iterable<VisibleFeature> {\r\n private readonly _pixels: Pixel.Buffer;\r\n private readonly _rect: ViewRect;\r\n private readonly _iModel: IModelConnection;\r\n\r\n public constructor(pixels: Pixel.Buffer, rect: ViewRect, viewport: Viewport) {\r\n this._pixels = pixels;\r\n this._rect = rect.clone();\r\n this._rect.right = viewport.cssPixelsToDevicePixels(this._rect.right);\r\n this._rect.bottom = viewport.cssPixelsToDevicePixels(this._rect.bottom);\r\n this._iModel = viewport.iModel;\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<VisibleFeature> {\r\n function* iterator(pixels: Pixel.Buffer, rect: ViewRect, iModel: IModelConnection) {\r\n for (let x = rect.left; x < rect.right; x++) {\r\n for (let y = rect.top; y < rect.bottom; y++) {\r\n const pixel = pixels.getPixel(x, y);\r\n if (pixel.feature && pixel.featureTable) {\r\n yield {\r\n elementId: pixel.feature.elementId,\r\n subCategoryId: pixel.feature.subCategoryId,\r\n geometryClass: pixel.feature.geometryClass,\r\n modelId: pixel.featureTable.modelId,\r\n iModel: pixel.iModel ?? iModel,\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n return iterator(this._pixels, this._rect, this._iModel);\r\n }\r\n}\r\n\r\n/** Implementation of [[Viewport.queryVisibleFeatures]].\r\n * @internal\r\n */\r\nexport function queryVisibleFeatures(viewport: Viewport, options: QueryVisibleFeaturesOptions, callback: QueryVisibleFeaturesCallback): void {\r\n assert(\"screen\" === options.source || \"tiles\" === options.source);\r\n switch (options.source) {\r\n case \"screen\":\r\n const rect = options.rect ?? viewport.viewRect;\r\n viewport.readPixels(rect, Pixel.Selector.Feature, (pixels) => invokeCallback(pixels ? new ScreenFeatures(pixels, rect, viewport) : [], callback), true !== options.includeNonLocatable);\r\n break;\r\n case \"tiles\":\r\n viewport.target.queryVisibleTileFeatures(options, viewport.iModel, (features) => invokeCallback(features, callback));\r\n break;\r\n default:\r\n invokeCallback([], callback);\r\n break;\r\n }\r\n}\r\n"]}