@itwin/core-frontend 3.1.0-dev.7 → 3.1.1

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 (755) hide show
  1. package/CHANGELOG.md +210 -35
  2. package/lib/cjs/AccuSnap.js +2 -2
  3. package/lib/cjs/AccuSnap.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeights.d.ts +1 -1
  5. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  6. package/lib/cjs/ApproximateTerrainHeights.js +21 -9
  7. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  8. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +12 -0
  9. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -0
  10. package/lib/cjs/ApproximateTerrainHeightsProps.js +13 -0
  11. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -0
  12. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  13. package/lib/cjs/BriefcaseConnection.js +6 -5
  14. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  15. package/lib/cjs/CategorySelectorState.js +1 -1
  16. package/lib/cjs/CategorySelectorState.js.map +1 -1
  17. package/lib/cjs/DisplayStyleState.d.ts +4 -3
  18. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  19. package/lib/cjs/DisplayStyleState.js +32 -8
  20. package/lib/cjs/DisplayStyleState.js.map +1 -1
  21. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  22. package/lib/cjs/DrawingViewState.js +9 -8
  23. package/lib/cjs/DrawingViewState.js.map +1 -1
  24. package/lib/cjs/FrontendLoggerCategory.d.ts +3 -1
  25. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  26. package/lib/cjs/FrontendLoggerCategory.js +2 -0
  27. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  28. package/lib/cjs/IModelApp.d.ts +10 -4
  29. package/lib/cjs/IModelApp.d.ts.map +1 -1
  30. package/lib/cjs/IModelApp.js +26 -13
  31. package/lib/cjs/IModelApp.js.map +1 -1
  32. package/lib/cjs/IModelConnection.d.ts +3 -2
  33. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  34. package/lib/cjs/IModelConnection.js +6 -4
  35. package/lib/cjs/IModelConnection.js.map +1 -1
  36. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  37. package/lib/cjs/ImageUtil.js +8 -14
  38. package/lib/cjs/ImageUtil.js.map +1 -1
  39. package/lib/cjs/LocalhostIpcApp.d.ts +2 -0
  40. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  41. package/lib/cjs/LocalhostIpcApp.js +10 -4
  42. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  43. package/lib/cjs/RealityDataSource.d.ts +60 -14
  44. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  45. package/lib/cjs/RealityDataSource.js +36 -235
  46. package/lib/cjs/RealityDataSource.js.map +1 -1
  47. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
  48. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
  49. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +166 -0
  50. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
  51. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts +83 -0
  52. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts.map +1 -0
  53. package/lib/cjs/RealityDataSourceContextShareImpl.js +234 -0
  54. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -0
  55. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
  56. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
  57. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +135 -0
  58. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -0
  59. package/lib/cjs/SheetViewState.js +7 -3
  60. package/lib/cjs/SheetViewState.js.map +1 -1
  61. package/lib/cjs/ViewState.d.ts +8 -0
  62. package/lib/cjs/ViewState.d.ts.map +1 -1
  63. package/lib/cjs/ViewState.js +1 -1
  64. package/lib/cjs/ViewState.js.map +1 -1
  65. package/lib/cjs/Viewport.d.ts +35 -14
  66. package/lib/cjs/Viewport.d.ts.map +1 -1
  67. package/lib/cjs/Viewport.js +59 -10
  68. package/lib/cjs/Viewport.js.map +1 -1
  69. package/lib/cjs/core-frontend.d.ts +6 -4
  70. package/lib/cjs/core-frontend.d.ts.map +1 -1
  71. package/lib/cjs/core-frontend.js +6 -4
  72. package/lib/cjs/core-frontend.js.map +1 -1
  73. package/lib/cjs/extension/Extension.d.ts +48 -0
  74. package/lib/cjs/extension/Extension.d.ts.map +1 -0
  75. package/lib/cjs/extension/Extension.js +18 -0
  76. package/lib/cjs/extension/Extension.js.map +1 -0
  77. package/lib/cjs/extension/ExtensionAdmin.d.ts +64 -0
  78. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -0
  79. package/lib/cjs/extension/ExtensionAdmin.js +106 -0
  80. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -0
  81. package/lib/cjs/extension/ExtensionHost.d.ts +23 -0
  82. package/lib/cjs/extension/ExtensionHost.d.ts.map +1 -0
  83. package/lib/cjs/extension/ExtensionHost.js +26 -0
  84. package/lib/cjs/extension/ExtensionHost.js.map +1 -0
  85. package/lib/cjs/extension/ExtensionImpl.d.ts +21 -0
  86. package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -0
  87. package/lib/cjs/extension/ExtensionImpl.js +45 -0
  88. package/lib/cjs/extension/ExtensionImpl.js.map +1 -0
  89. package/lib/cjs/extension/ExtensionLoader.d.ts +26 -0
  90. package/lib/cjs/extension/ExtensionLoader.d.ts.map +1 -0
  91. package/lib/cjs/extension/ExtensionLoader.js +10 -0
  92. package/lib/cjs/extension/ExtensionLoader.js.map +1 -0
  93. package/lib/cjs/extension/ExtensionRuntime.d.ts +5 -0
  94. package/lib/cjs/extension/ExtensionRuntime.d.ts.map +1 -0
  95. package/lib/cjs/extension/ExtensionRuntime.js +86 -0
  96. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -0
  97. package/lib/cjs/extension/extensions.d.ts +19 -0
  98. package/lib/cjs/extension/extensions.d.ts.map +1 -0
  99. package/lib/cjs/extension/extensions.js +36 -0
  100. package/lib/cjs/extension/extensions.js.map +1 -0
  101. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
  102. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  103. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +48 -44
  104. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  105. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +90 -80
  106. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  107. package/lib/cjs/quantity-formatting/QuantityFormatter.js +85 -45
  108. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  109. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
  110. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
  111. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js +32 -0
  112. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
  113. package/lib/cjs/quantity-formatting/UnitsData.d.ts +11 -0
  114. package/lib/cjs/quantity-formatting/UnitsData.d.ts.map +1 -0
  115. package/lib/cjs/quantity-formatting/UnitsData.js +59 -0
  116. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -0
  117. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  118. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  119. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  120. package/lib/cjs/render/RenderPlanarClassifier.d.ts +1 -1
  121. package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +1 -1
  122. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  123. package/lib/cjs/render/RenderSystem.d.ts +12 -7
  124. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  125. package/lib/cjs/render/RenderSystem.js +8 -5
  126. package/lib/cjs/render/RenderSystem.js.map +1 -1
  127. package/lib/cjs/render/RenderTarget.d.ts +4 -4
  128. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  129. package/lib/cjs/render/RenderTarget.js.map +1 -1
  130. package/lib/cjs/render/Scene.d.ts.map +1 -1
  131. package/lib/cjs/render/Scene.js.map +1 -1
  132. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
  133. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
  134. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
  135. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
  136. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  137. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  138. package/lib/cjs/render/webgl/BranchState.d.ts +2 -0
  139. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  140. package/lib/cjs/render/webgl/BranchState.js +5 -3
  141. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  142. package/lib/cjs/render/webgl/DrawCommand.js +1 -1
  143. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  144. package/lib/cjs/render/webgl/Graphic.d.ts +5 -3
  145. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  146. package/lib/cjs/render/webgl/Graphic.js +7 -2
  147. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  148. package/lib/cjs/render/webgl/PlanarClassifier.d.ts +4 -1
  149. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  150. package/lib/cjs/render/webgl/PlanarClassifier.js +22 -9
  151. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  152. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +2 -2
  153. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  154. package/lib/cjs/render/webgl/PlanarTextureProjection.js +5 -3
  155. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  156. package/lib/cjs/render/webgl/RealityMesh.d.ts +31 -11
  157. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  158. package/lib/cjs/render/webgl/RealityMesh.js +155 -52
  159. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  160. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  161. package/lib/cjs/render/webgl/RenderCommands.js +4 -0
  162. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  163. package/lib/cjs/render/webgl/SceneCompositor.d.ts +3 -0
  164. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  165. package/lib/cjs/render/webgl/SceneCompositor.js +45 -19
  166. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  167. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -0
  168. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  169. package/lib/cjs/render/webgl/ShaderProgram.js +1 -0
  170. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  171. package/lib/cjs/render/webgl/System.d.ts +9 -9
  172. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  173. package/lib/cjs/render/webgl/System.js +5 -5
  174. package/lib/cjs/render/webgl/System.js.map +1 -1
  175. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  176. package/lib/cjs/render/webgl/Target.js.map +1 -1
  177. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +1 -1
  178. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  179. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  180. package/lib/cjs/render/webgl/glsl/RealityMesh.js +102 -27
  181. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  182. package/lib/cjs/tile/ClassifierTileTree.d.ts +4 -2
  183. package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
  184. package/lib/cjs/tile/ClassifierTileTree.js +31 -16
  185. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  186. package/lib/cjs/tile/DynamicIModelTile.d.ts.map +1 -1
  187. package/lib/cjs/tile/DynamicIModelTile.js +1 -1
  188. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  189. package/lib/cjs/tile/GltfReader.d.ts +22 -3
  190. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  191. package/lib/cjs/tile/GltfReader.js +224 -40
  192. package/lib/cjs/tile/GltfReader.js.map +1 -1
  193. package/lib/cjs/tile/IModelTileRequestChannels.d.ts +3 -3
  194. package/lib/cjs/tile/IModelTileRequestChannels.d.ts.map +1 -1
  195. package/lib/cjs/tile/IModelTileRequestChannels.js +7 -11
  196. package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
  197. package/lib/cjs/tile/LRUTileList.d.ts +29 -29
  198. package/lib/cjs/tile/LRUTileList.d.ts.map +1 -1
  199. package/lib/cjs/tile/LRUTileList.js +50 -50
  200. package/lib/cjs/tile/LRUTileList.js.map +1 -1
  201. package/lib/cjs/tile/OPCFormatInterpreter.d.ts +22 -0
  202. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -0
  203. package/lib/cjs/tile/OPCFormatInterpreter.js +92 -0
  204. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -0
  205. package/lib/cjs/tile/OrbitGtTileTree.js +1 -1
  206. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  207. package/lib/cjs/tile/PntsReader.d.ts +1 -1
  208. package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
  209. package/lib/cjs/tile/PntsReader.js +170 -36
  210. package/lib/cjs/tile/PntsReader.js.map +1 -1
  211. package/lib/cjs/tile/PrimaryTileTree.d.ts +18 -2
  212. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  213. package/lib/cjs/tile/PrimaryTileTree.js +53 -2
  214. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  215. package/lib/cjs/tile/RealityModelTileTree.d.ts +24 -3
  216. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  217. package/lib/cjs/tile/RealityModelTileTree.js +37 -12
  218. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  219. package/lib/cjs/tile/RealityTile.d.ts +17 -3
  220. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  221. package/lib/cjs/tile/RealityTile.js +34 -2
  222. package/lib/cjs/tile/RealityTile.js.map +1 -1
  223. package/lib/cjs/tile/RealityTileDrawArgs.d.ts +4 -1
  224. package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +1 -1
  225. package/lib/cjs/tile/RealityTileDrawArgs.js +3 -1
  226. package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
  227. package/lib/cjs/tile/RealityTileLoader.d.ts +8 -5
  228. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  229. package/lib/cjs/tile/RealityTileLoader.js +20 -6
  230. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  231. package/lib/cjs/tile/RealityTileTree.d.ts +4 -1
  232. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  233. package/lib/cjs/tile/RealityTileTree.js +12 -4
  234. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  235. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
  236. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  237. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +179 -0
  238. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  239. package/lib/cjs/tile/Tile.d.ts +5 -4
  240. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  241. package/lib/cjs/tile/Tile.js +3 -2
  242. package/lib/cjs/tile/Tile.js.map +1 -1
  243. package/lib/cjs/tile/TileAdmin.d.ts +43 -45
  244. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  245. package/lib/cjs/tile/TileAdmin.js +104 -104
  246. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  247. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  248. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  249. package/lib/cjs/tile/TileDrawArgs.js +5 -0
  250. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  251. package/lib/cjs/tile/TileGeometryCollector.d.ts +80 -0
  252. package/lib/cjs/tile/TileGeometryCollector.d.ts.map +1 -0
  253. package/lib/cjs/tile/TileGeometryCollector.js +71 -0
  254. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -0
  255. package/lib/cjs/tile/TileRequest.d.ts +12 -9
  256. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  257. package/lib/cjs/tile/TileRequest.js +19 -11
  258. package/lib/cjs/tile/TileRequest.js.map +1 -1
  259. package/lib/cjs/tile/TileRequestChannel.js +3 -3
  260. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  261. package/lib/cjs/tile/TileRequestChannels.d.ts +0 -4
  262. package/lib/cjs/tile/TileRequestChannels.d.ts.map +1 -1
  263. package/lib/cjs/tile/TileRequestChannels.js +1 -6
  264. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  265. package/lib/cjs/tile/TileTree.d.ts +7 -1
  266. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  267. package/lib/cjs/tile/TileTree.js +8 -1
  268. package/lib/cjs/tile/TileTree.js.map +1 -1
  269. package/lib/cjs/tile/TileTreeReference.d.ts +27 -2
  270. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  271. package/lib/cjs/tile/TileTreeReference.js +41 -1
  272. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  273. package/lib/cjs/tile/TileUsageMarker.d.ts +9 -9
  274. package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
  275. package/lib/cjs/tile/TileUsageMarker.js +9 -9
  276. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  277. package/lib/cjs/tile/TileUser.d.ts +33 -0
  278. package/lib/cjs/tile/TileUser.d.ts.map +1 -0
  279. package/lib/cjs/tile/TileUser.js +28 -0
  280. package/lib/cjs/tile/TileUser.js.map +1 -0
  281. package/lib/cjs/tile/TileUserSet.d.ts +28 -0
  282. package/lib/cjs/tile/TileUserSet.d.ts.map +1 -0
  283. package/lib/cjs/tile/TileUserSet.js +123 -0
  284. package/lib/cjs/tile/TileUserSet.js.map +1 -0
  285. package/lib/cjs/tile/internal.d.ts +6 -0
  286. package/lib/cjs/tile/internal.d.ts.map +1 -1
  287. package/lib/cjs/tile/internal.js +6 -0
  288. package/lib/cjs/tile/internal.js.map +1 -1
  289. package/lib/cjs/tile/map/CesiumTerrainProvider.js +2 -2
  290. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  291. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +6 -5
  292. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  293. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -13
  294. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  295. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +3 -4
  296. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  297. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  298. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  299. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
  300. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  301. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  302. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  303. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +3 -4
  304. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  305. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +5 -4
  306. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  307. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
  308. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  309. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  310. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -3
  311. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  312. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +13 -11
  313. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  314. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
  315. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  316. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  317. package/lib/cjs/tile/map/ImageryTileTree.d.ts +4 -5
  318. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  319. package/lib/cjs/tile/map/ImageryTileTree.js +5 -4
  320. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  321. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +26 -0
  322. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -0
  323. package/lib/cjs/tile/map/MapFeatureInfo.js +19 -0
  324. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -0
  325. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +4 -4
  326. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  327. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  328. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +3 -3
  329. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  330. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  331. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +5 -4
  332. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  333. package/lib/cjs/tile/map/MapLayerImageryProvider.js +5 -1
  334. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  335. package/lib/cjs/tile/map/MapLayerSources.d.ts +2 -2
  336. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  337. package/lib/cjs/tile/map/MapLayerSources.js +6 -4
  338. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  339. package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts +10 -2
  340. package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
  341. package/lib/cjs/tile/map/MapLayerTileTreeReference.js +26 -3
  342. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  343. package/lib/cjs/tile/map/MapTile.d.ts +12 -10
  344. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  345. package/lib/cjs/tile/map/MapTile.js +60 -39
  346. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  347. package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -1
  348. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  349. package/lib/cjs/tile/map/MapTileLoader.js +4 -1
  350. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  351. package/lib/cjs/tile/map/MapTileTree.d.ts +21 -11
  352. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  353. package/lib/cjs/tile/map/MapTileTree.js +154 -67
  354. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  355. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  356. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +1 -1
  357. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  358. package/lib/cjs/tile/map/WmsCapabilities.d.ts +3 -2
  359. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  360. package/lib/cjs/tile/map/WmsCapabilities.js +11 -10
  361. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  362. package/lib/cjs/tools/ToolAdmin.d.ts +2 -3
  363. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  364. package/lib/cjs/tools/ToolAdmin.js +7 -2
  365. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  366. package/lib/cjs/tools/ViewTool.d.ts +4 -4
  367. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  368. package/lib/cjs/tools/ViewTool.js +1 -1
  369. package/lib/cjs/tools/ViewTool.js.map +1 -1
  370. package/lib/esm/AccuSnap.js +2 -2
  371. package/lib/esm/AccuSnap.js.map +1 -1
  372. package/lib/esm/ApproximateTerrainHeights.d.ts +1 -1
  373. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  374. package/lib/esm/ApproximateTerrainHeights.js +2 -9
  375. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  376. package/lib/esm/ApproximateTerrainHeightsProps.d.ts +12 -0
  377. package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -0
  378. package/lib/esm/ApproximateTerrainHeightsProps.js +10 -0
  379. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -0
  380. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  381. package/lib/esm/BriefcaseConnection.js +6 -5
  382. package/lib/esm/BriefcaseConnection.js.map +1 -1
  383. package/lib/esm/CategorySelectorState.js +1 -1
  384. package/lib/esm/CategorySelectorState.js.map +1 -1
  385. package/lib/esm/DisplayStyleState.d.ts +4 -3
  386. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  387. package/lib/esm/DisplayStyleState.js +34 -10
  388. package/lib/esm/DisplayStyleState.js.map +1 -1
  389. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  390. package/lib/esm/DrawingViewState.js +9 -8
  391. package/lib/esm/DrawingViewState.js.map +1 -1
  392. package/lib/esm/FrontendLoggerCategory.d.ts +3 -1
  393. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  394. package/lib/esm/FrontendLoggerCategory.js +2 -0
  395. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  396. package/lib/esm/IModelApp.d.ts +10 -4
  397. package/lib/esm/IModelApp.d.ts.map +1 -1
  398. package/lib/esm/IModelApp.js +25 -12
  399. package/lib/esm/IModelApp.js.map +1 -1
  400. package/lib/esm/IModelConnection.d.ts +3 -2
  401. package/lib/esm/IModelConnection.d.ts.map +1 -1
  402. package/lib/esm/IModelConnection.js +7 -5
  403. package/lib/esm/IModelConnection.js.map +1 -1
  404. package/lib/esm/ImageUtil.d.ts.map +1 -1
  405. package/lib/esm/ImageUtil.js +8 -14
  406. package/lib/esm/ImageUtil.js.map +1 -1
  407. package/lib/esm/LocalhostIpcApp.d.ts +2 -0
  408. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  409. package/lib/esm/LocalhostIpcApp.js +10 -4
  410. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  411. package/lib/esm/RealityDataSource.d.ts +60 -14
  412. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  413. package/lib/esm/RealityDataSource.js +37 -237
  414. package/lib/esm/RealityDataSource.js.map +1 -1
  415. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
  416. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
  417. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +162 -0
  418. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
  419. package/lib/esm/RealityDataSourceContextShareImpl.d.ts +83 -0
  420. package/lib/esm/RealityDataSourceContextShareImpl.d.ts.map +1 -0
  421. package/lib/esm/RealityDataSourceContextShareImpl.js +230 -0
  422. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -0
  423. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
  424. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
  425. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +131 -0
  426. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -0
  427. package/lib/esm/SheetViewState.js +7 -3
  428. package/lib/esm/SheetViewState.js.map +1 -1
  429. package/lib/esm/ViewState.d.ts +8 -0
  430. package/lib/esm/ViewState.d.ts.map +1 -1
  431. package/lib/esm/ViewState.js +1 -1
  432. package/lib/esm/ViewState.js.map +1 -1
  433. package/lib/esm/Viewport.d.ts +35 -14
  434. package/lib/esm/Viewport.d.ts.map +1 -1
  435. package/lib/esm/Viewport.js +60 -11
  436. package/lib/esm/Viewport.js.map +1 -1
  437. package/lib/esm/core-frontend.d.ts +6 -4
  438. package/lib/esm/core-frontend.d.ts.map +1 -1
  439. package/lib/esm/core-frontend.js +6 -4
  440. package/lib/esm/core-frontend.js.map +1 -1
  441. package/lib/esm/extension/Extension.d.ts +48 -0
  442. package/lib/esm/extension/Extension.d.ts.map +1 -0
  443. package/lib/esm/extension/Extension.js +15 -0
  444. package/lib/esm/extension/Extension.js.map +1 -0
  445. package/lib/esm/extension/ExtensionAdmin.d.ts +64 -0
  446. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -0
  447. package/lib/esm/extension/ExtensionAdmin.js +102 -0
  448. package/lib/esm/extension/ExtensionAdmin.js.map +1 -0
  449. package/lib/esm/extension/ExtensionHost.d.ts +23 -0
  450. package/lib/esm/extension/ExtensionHost.d.ts.map +1 -0
  451. package/lib/esm/extension/ExtensionHost.js +22 -0
  452. package/lib/esm/extension/ExtensionHost.js.map +1 -0
  453. package/lib/esm/extension/ExtensionImpl.d.ts +21 -0
  454. package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -0
  455. package/lib/esm/extension/ExtensionImpl.js +40 -0
  456. package/lib/esm/extension/ExtensionImpl.js.map +1 -0
  457. package/lib/esm/extension/ExtensionLoader.d.ts +26 -0
  458. package/lib/esm/extension/ExtensionLoader.d.ts.map +1 -0
  459. package/lib/esm/extension/ExtensionLoader.js +9 -0
  460. package/lib/esm/extension/ExtensionLoader.js.map +1 -0
  461. package/lib/esm/extension/ExtensionRuntime.d.ts +5 -0
  462. package/lib/esm/extension/ExtensionRuntime.d.ts.map +1 -0
  463. package/lib/esm/extension/ExtensionRuntime.js +84 -0
  464. package/lib/esm/extension/ExtensionRuntime.js.map +1 -0
  465. package/lib/esm/extension/extensions.d.ts +19 -0
  466. package/lib/esm/extension/extensions.d.ts.map +1 -0
  467. package/lib/esm/extension/extensions.js +24 -0
  468. package/lib/esm/extension/extensions.js.map +1 -0
  469. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
  470. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  471. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +48 -44
  472. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  473. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +90 -80
  474. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  475. package/lib/esm/quantity-formatting/QuantityFormatter.js +85 -42
  476. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  477. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
  478. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
  479. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js +26 -0
  480. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
  481. package/lib/esm/quantity-formatting/UnitsData.d.ts +11 -0
  482. package/lib/esm/quantity-formatting/UnitsData.d.ts.map +1 -0
  483. package/lib/esm/quantity-formatting/UnitsData.js +56 -0
  484. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -0
  485. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  486. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  487. package/lib/esm/render/GraphicBranch.js.map +1 -1
  488. package/lib/esm/render/RenderPlanarClassifier.d.ts +1 -1
  489. package/lib/esm/render/RenderPlanarClassifier.d.ts.map +1 -1
  490. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  491. package/lib/esm/render/RenderSystem.d.ts +12 -7
  492. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  493. package/lib/esm/render/RenderSystem.js +6 -3
  494. package/lib/esm/render/RenderSystem.js.map +1 -1
  495. package/lib/esm/render/RenderTarget.d.ts +4 -4
  496. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  497. package/lib/esm/render/RenderTarget.js.map +1 -1
  498. package/lib/esm/render/Scene.d.ts.map +1 -1
  499. package/lib/esm/render/Scene.js.map +1 -1
  500. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
  501. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
  502. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
  503. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
  504. package/lib/esm/render/webgl/BackgroundMapDrape.js +1 -1
  505. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  506. package/lib/esm/render/webgl/BranchState.d.ts +2 -0
  507. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  508. package/lib/esm/render/webgl/BranchState.js +5 -3
  509. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  510. package/lib/esm/render/webgl/DrawCommand.js +1 -1
  511. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  512. package/lib/esm/render/webgl/Graphic.d.ts +5 -3
  513. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  514. package/lib/esm/render/webgl/Graphic.js +7 -2
  515. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  516. package/lib/esm/render/webgl/PlanarClassifier.d.ts +4 -1
  517. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  518. package/lib/esm/render/webgl/PlanarClassifier.js +22 -9
  519. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  520. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +2 -2
  521. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  522. package/lib/esm/render/webgl/PlanarTextureProjection.js +5 -3
  523. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  524. package/lib/esm/render/webgl/RealityMesh.d.ts +31 -11
  525. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  526. package/lib/esm/render/webgl/RealityMesh.js +155 -52
  527. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  528. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  529. package/lib/esm/render/webgl/RenderCommands.js +4 -0
  530. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  531. package/lib/esm/render/webgl/SceneCompositor.d.ts +3 -0
  532. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  533. package/lib/esm/render/webgl/SceneCompositor.js +45 -19
  534. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  535. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -0
  536. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  537. package/lib/esm/render/webgl/ShaderProgram.js +1 -0
  538. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  539. package/lib/esm/render/webgl/System.d.ts +9 -9
  540. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  541. package/lib/esm/render/webgl/System.js +6 -6
  542. package/lib/esm/render/webgl/System.js.map +1 -1
  543. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  544. package/lib/esm/render/webgl/Target.js.map +1 -1
  545. package/lib/esm/render/webgl/glsl/PlanarClassification.js +1 -1
  546. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  547. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  548. package/lib/esm/render/webgl/glsl/RealityMesh.js +103 -28
  549. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  550. package/lib/esm/tile/ClassifierTileTree.d.ts +4 -2
  551. package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
  552. package/lib/esm/tile/ClassifierTileTree.js +32 -17
  553. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  554. package/lib/esm/tile/DynamicIModelTile.d.ts.map +1 -1
  555. package/lib/esm/tile/DynamicIModelTile.js +1 -1
  556. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  557. package/lib/esm/tile/GltfReader.d.ts +22 -3
  558. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  559. package/lib/esm/tile/GltfReader.js +207 -42
  560. package/lib/esm/tile/GltfReader.js.map +1 -1
  561. package/lib/esm/tile/IModelTileRequestChannels.d.ts +3 -3
  562. package/lib/esm/tile/IModelTileRequestChannels.d.ts.map +1 -1
  563. package/lib/esm/tile/IModelTileRequestChannels.js +7 -11
  564. package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
  565. package/lib/esm/tile/LRUTileList.d.ts +29 -29
  566. package/lib/esm/tile/LRUTileList.d.ts.map +1 -1
  567. package/lib/esm/tile/LRUTileList.js +47 -47
  568. package/lib/esm/tile/LRUTileList.js.map +1 -1
  569. package/lib/esm/tile/OPCFormatInterpreter.d.ts +22 -0
  570. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -0
  571. package/lib/esm/tile/OPCFormatInterpreter.js +88 -0
  572. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -0
  573. package/lib/esm/tile/OrbitGtTileTree.js +1 -1
  574. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  575. package/lib/esm/tile/PntsReader.d.ts +1 -1
  576. package/lib/esm/tile/PntsReader.d.ts.map +1 -1
  577. package/lib/esm/tile/PntsReader.js +154 -39
  578. package/lib/esm/tile/PntsReader.js.map +1 -1
  579. package/lib/esm/tile/PrimaryTileTree.d.ts +18 -2
  580. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  581. package/lib/esm/tile/PrimaryTileTree.js +51 -2
  582. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  583. package/lib/esm/tile/RealityModelTileTree.d.ts +24 -3
  584. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  585. package/lib/esm/tile/RealityModelTileTree.js +37 -13
  586. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  587. package/lib/esm/tile/RealityTile.d.ts +17 -3
  588. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  589. package/lib/esm/tile/RealityTile.js +34 -2
  590. package/lib/esm/tile/RealityTile.js.map +1 -1
  591. package/lib/esm/tile/RealityTileDrawArgs.d.ts +4 -1
  592. package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +1 -1
  593. package/lib/esm/tile/RealityTileDrawArgs.js +3 -1
  594. package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
  595. package/lib/esm/tile/RealityTileLoader.d.ts +8 -5
  596. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  597. package/lib/esm/tile/RealityTileLoader.js +20 -6
  598. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  599. package/lib/esm/tile/RealityTileTree.d.ts +4 -1
  600. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  601. package/lib/esm/tile/RealityTileTree.js +14 -6
  602. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  603. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
  604. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  605. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +175 -0
  606. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  607. package/lib/esm/tile/Tile.d.ts +5 -4
  608. package/lib/esm/tile/Tile.d.ts.map +1 -1
  609. package/lib/esm/tile/Tile.js +3 -2
  610. package/lib/esm/tile/Tile.js.map +1 -1
  611. package/lib/esm/tile/TileAdmin.d.ts +43 -45
  612. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  613. package/lib/esm/tile/TileAdmin.js +105 -105
  614. package/lib/esm/tile/TileAdmin.js.map +1 -1
  615. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  616. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  617. package/lib/esm/tile/TileDrawArgs.js +5 -0
  618. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  619. package/lib/esm/tile/TileGeometryCollector.d.ts +80 -0
  620. package/lib/esm/tile/TileGeometryCollector.d.ts.map +1 -0
  621. package/lib/esm/tile/TileGeometryCollector.js +67 -0
  622. package/lib/esm/tile/TileGeometryCollector.js.map +1 -0
  623. package/lib/esm/tile/TileRequest.d.ts +12 -9
  624. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  625. package/lib/esm/tile/TileRequest.js +19 -11
  626. package/lib/esm/tile/TileRequest.js.map +1 -1
  627. package/lib/esm/tile/TileRequestChannel.js +3 -3
  628. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  629. package/lib/esm/tile/TileRequestChannels.d.ts +0 -4
  630. package/lib/esm/tile/TileRequestChannels.d.ts.map +1 -1
  631. package/lib/esm/tile/TileRequestChannels.js +1 -6
  632. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  633. package/lib/esm/tile/TileTree.d.ts +7 -1
  634. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  635. package/lib/esm/tile/TileTree.js +8 -1
  636. package/lib/esm/tile/TileTree.js.map +1 -1
  637. package/lib/esm/tile/TileTreeReference.d.ts +27 -2
  638. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  639. package/lib/esm/tile/TileTreeReference.js +43 -3
  640. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  641. package/lib/esm/tile/TileUsageMarker.d.ts +9 -9
  642. package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
  643. package/lib/esm/tile/TileUsageMarker.js +9 -9
  644. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  645. package/lib/esm/tile/TileUser.d.ts +33 -0
  646. package/lib/esm/tile/TileUser.d.ts.map +1 -0
  647. package/lib/esm/tile/TileUser.js +25 -0
  648. package/lib/esm/tile/TileUser.js.map +1 -0
  649. package/lib/esm/tile/TileUserSet.d.ts +28 -0
  650. package/lib/esm/tile/TileUserSet.d.ts.map +1 -0
  651. package/lib/esm/tile/TileUserSet.js +118 -0
  652. package/lib/esm/tile/TileUserSet.js.map +1 -0
  653. package/lib/esm/tile/internal.d.ts +6 -0
  654. package/lib/esm/tile/internal.d.ts.map +1 -1
  655. package/lib/esm/tile/internal.js +6 -0
  656. package/lib/esm/tile/internal.js.map +1 -1
  657. package/lib/esm/tile/map/CesiumTerrainProvider.js +2 -2
  658. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  659. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +6 -5
  660. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  661. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +47 -14
  662. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  663. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +3 -4
  664. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  665. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  666. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  667. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
  668. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  669. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  670. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  671. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +3 -4
  672. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  673. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +5 -4
  674. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  675. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
  676. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  677. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  678. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -3
  679. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  680. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +13 -11
  681. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  682. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
  683. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  684. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  685. package/lib/esm/tile/map/ImageryTileTree.d.ts +4 -5
  686. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  687. package/lib/esm/tile/map/ImageryTileTree.js +5 -4
  688. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  689. package/lib/esm/tile/map/MapFeatureInfo.d.ts +26 -0
  690. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -0
  691. package/lib/esm/tile/map/MapFeatureInfo.js +15 -0
  692. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -0
  693. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +4 -4
  694. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  695. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  696. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +3 -3
  697. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  698. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  699. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +5 -4
  700. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  701. package/lib/esm/tile/map/MapLayerImageryProvider.js +5 -1
  702. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  703. package/lib/esm/tile/map/MapLayerSources.d.ts +2 -2
  704. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  705. package/lib/esm/tile/map/MapLayerSources.js +6 -4
  706. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  707. package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts +10 -2
  708. package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
  709. package/lib/esm/tile/map/MapLayerTileTreeReference.js +25 -3
  710. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  711. package/lib/esm/tile/map/MapTile.d.ts +12 -10
  712. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  713. package/lib/esm/tile/map/MapTile.js +60 -39
  714. package/lib/esm/tile/map/MapTile.js.map +1 -1
  715. package/lib/esm/tile/map/MapTileLoader.d.ts +2 -1
  716. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  717. package/lib/esm/tile/map/MapTileLoader.js +4 -1
  718. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  719. package/lib/esm/tile/map/MapTileTree.d.ts +21 -11
  720. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  721. package/lib/esm/tile/map/MapTileTree.js +156 -69
  722. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  723. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  724. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +2 -2
  725. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  726. package/lib/esm/tile/map/WmsCapabilities.d.ts +3 -2
  727. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  728. package/lib/esm/tile/map/WmsCapabilities.js +11 -10
  729. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  730. package/lib/esm/tools/ToolAdmin.d.ts +2 -3
  731. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  732. package/lib/esm/tools/ToolAdmin.js +8 -3
  733. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  734. package/lib/esm/tools/ViewTool.d.ts +4 -4
  735. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  736. package/lib/esm/tools/ViewTool.js +1 -1
  737. package/lib/esm/tools/ViewTool.js.map +1 -1
  738. package/package.json +22 -20
  739. package/lib/cjs/ViewportSet.d.ts +0 -28
  740. package/lib/cjs/ViewportSet.d.ts.map +0 -1
  741. package/lib/cjs/ViewportSet.js +0 -126
  742. package/lib/cjs/ViewportSet.js.map +0 -1
  743. package/lib/cjs/tile/DracoDecoder.d.ts +0 -20
  744. package/lib/cjs/tile/DracoDecoder.d.ts.map +0 -1
  745. package/lib/cjs/tile/DracoDecoder.js +0 -169
  746. package/lib/cjs/tile/DracoDecoder.js.map +0 -1
  747. package/lib/esm/ViewportSet.d.ts +0 -28
  748. package/lib/esm/ViewportSet.d.ts.map +0 -1
  749. package/lib/esm/ViewportSet.js +0 -121
  750. package/lib/esm/ViewportSet.js.map +0 -1
  751. package/lib/esm/tile/DracoDecoder.d.ts +0 -20
  752. package/lib/esm/tile/DracoDecoder.d.ts.map +0 -1
  753. package/lib/esm/tile/DracoDecoder.js +0 -165
  754. package/lib/esm/tile/DracoDecoder.js.map +0 -1
  755. package/lib/public/assets/approximateTerrainHeights.json +0 -1
@@ -7,7 +7,7 @@ import { ElementAlignedBox3d, FrustumPlanes, ViewFlagOverrides } from "@itwin/co
7
7
  import { IModelConnection } from "../IModelConnection";
8
8
  import { RenderClipVolume } from "../render/RenderClipVolume";
9
9
  import { RenderMemory } from "../render/RenderMemory";
10
- import { Tile, TileDrawArgs, TileLoadPriority, TileTreeParams } from "./internal";
10
+ import { Tile, TileDrawArgs, TileGeometryCollector, TileLoadPriority, TileTreeParams } from "./internal";
11
11
  /** Describes the current state of a [[TileTree]]. TileTrees are loaded asynchronously and may be unloaded after a period of disuse.
12
12
  * @see [[TileTreeOwner]].
13
13
  * @public
@@ -112,5 +112,11 @@ export declare abstract class TileTree {
112
112
  * @beta
113
113
  */
114
114
  getEcefTransform(): Promise<Transform | undefined>;
115
+ /** Populate [[TileGeometryCollector.polyfaces]] with geometry obtained from this tile tree's tiles satisfying the collector's criteria.
116
+ * The base implementation does nothing.
117
+ * @see [[TileTreeReference.createGeometryTreeReference]] to attempt to create a TileTree that can collect geometry.
118
+ * @beta
119
+ */
120
+ collectTileGeometry(_collector: TileGeometryCollector): void;
115
121
  }
116
122
  //# sourceMappingURL=TileTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/TileTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/TileTree.ts"],"names":[],"mappings":"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"}
@@ -82,7 +82,7 @@ export class TileTree {
82
82
  selectTiles(args) {
83
83
  this._lastSelected = BeTimePoint.now();
84
84
  const tiles = this._selectTiles(args);
85
- IModelApp.tileAdmin.addTilesForViewport(args.context.viewport, tiles, args.readyTiles);
85
+ IModelApp.tileAdmin.addTilesForUser(args.context.viewport, tiles, args.readyTiles);
86
86
  args.processSelectedTiles(tiles);
87
87
  return tiles;
88
88
  }
@@ -127,5 +127,12 @@ export class TileTree {
127
127
  dbToEcef = this.iModel.ecefLocation.getTransform();
128
128
  return dbToEcef.multiplyTransformTransform(this.iModelTransform);
129
129
  }
130
+ /** Populate [[TileGeometryCollector.polyfaces]] with geometry obtained from this tile tree's tiles satisfying the collector's criteria.
131
+ * The base implementation does nothing.
132
+ * @see [[TileTreeReference.createGeometryTreeReference]] to attempt to create a TileTree that can collect geometry.
133
+ * @beta
134
+ */
135
+ collectTileGeometry(_collector) {
136
+ }
130
137
  }
131
138
  //# sourceMappingURL=TileTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TileTree.js","sourceRoot":"","sources":["../../../src/tile/TileTree.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 Tiles\r\n */\r\n\r\nimport { BeDuration, BeTimePoint, dispose, Id64String } from \"@itwin/core-bentley\";\r\nimport { Matrix4d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { ElementAlignedBox3d, FrustumPlanes, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { calculateEcefToDbTransformAtLocation } from \"../BackgroundMapGeometry\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { RenderClipVolume } from \"../render/RenderClipVolume\";\r\nimport { RenderMemory } from \"../render/RenderMemory\";\r\nimport { Tile, TileDrawArgs, TileLoadPriority, TileTreeParams } from \"./internal\";\r\n\r\n/** Describes the current state of a [[TileTree]]. TileTrees are loaded asynchronously and may be unloaded after a period of disuse.\r\n * @see [[TileTreeOwner]].\r\n * @public\r\n */\r\nexport enum TileTreeLoadStatus {\r\n /** No attempt to load the tile tree has yet been made. */\r\n NotLoaded,\r\n /** The tile tree is in the process of being loaded. */\r\n Loading,\r\n /** The tile tree has been successfully loaded. */\r\n Loaded,\r\n /** An attempt to load the tile tree failed. */\r\n NotFound,\r\n}\r\n\r\n/** A hierarchical level-of-detail tree of [3d Tiles](https://github.com/CesiumGS/3d-tiles) to be rendered in a [[Viewport]].\r\n * Tile trees originate from a variety of sources:\r\n * - Each [[GeometricModelState]] can supply its graphics as a tile tree;\r\n * - A [[DisplayStyleState]]'s map settings or reality models;\r\n * - [ViewAttachment]($backend)s in a [[SheetModelState]];\r\n * - [[TiledGraphicsProvider]]s associated with a viewport.\r\n *\r\n * The same TileTree can be displayed in any number of viewports using multiple [[TileTreeReference]]s.\r\n * A TileTree's lifetime is managed by a [[TileTreeOwner]].\r\n *\r\n * @note Some methods carry a warning that they should **not** be overridden by subclasses; typically a protected method exists that can be\r\n * overridden instead to customize the behavior. For example, [[selectTiles]] should not be overridden; instead, override the[[_selectTiles]] method\r\n * that it calls.\r\n * @public\r\n */\r\nexport abstract class TileTree {\r\n private _isDisposed = false;\r\n /** @internal */\r\n protected _lastSelected = BeTimePoint.now();\r\n /** @internal */\r\n protected _clipVolume?: RenderClipVolume;\r\n public readonly iModel: IModelConnection;\r\n /** Transform from this tile tree's coordinate space to the iModel's coordinate space. */\r\n public readonly iModelTransform: Transform;\r\n /** Uniquely identifies this tree among all other tile trees associated with the iModel. */\r\n public readonly id: string;\r\n /** A 64-bit identifier for this tile tree, unique within the context of its [[IModelConnection]].\r\n * For a tile tree associated with a [[GeometricModelState]], this is the Id of the model. Other types of tile trees\r\n * typically use a transient Id obtained from [[IModelConnection.transientIds]].\r\n */\r\n public readonly modelId: Id64String;\r\n /** The length of time after which tiles belonging to this tree are considered elegible for disposal if they are no longer in use. */\r\n public readonly expirationTime: BeDuration;\r\n /** @internal */\r\n public get loadPriority(): TileLoadPriority { return this._loadPriority; }\r\n private readonly _loadPriority: TileLoadPriority;\r\n /** Optional tight bounding box around the entire contents of all of this tree's tiles. */\r\n public readonly contentRange?: ElementAlignedBox3d;\r\n\r\n /** The lowest-resolution tile in this tree. */\r\n public abstract get rootTile(): Tile;\r\n /** True if this tile tree contains 3d graphics. */\r\n public abstract get is3d(): boolean;\r\n /** Returns the maximum depth of this tree, if any. */\r\n public abstract get maxDepth(): number | undefined;\r\n\r\n /** The overrides that should be applied to the view's [ViewFlags]($common) when this tile tree is drawn. Can be overridden by individual [[TileTreeReference]]s. */\r\n public abstract get viewFlagOverrides(): ViewFlagOverrides;\r\n\r\n /** True if this tile tree has no bounds - e.g., a tile tree representing a globe is unbounded. */\r\n public get isContentUnbounded(): boolean {\r\n return false;\r\n }\r\n\r\n /** Implement this method to select tiles of appropriate resolution. */\r\n protected abstract _selectTiles(args: TileDrawArgs): Tile[];\r\n\r\n /** Produce graphics of appropriate resolution to be drawn in a [[Viewport]]. */\r\n public abstract draw(args: TileDrawArgs): void;\r\n\r\n /** Discard tiles and/or tile contents, presumably based on a least-recently-used and/or least-likely-to-be-needed criterion. */\r\n public abstract prune(): void;\r\n\r\n /** True if this tile tree contains 2d graphics. */\r\n public get is2d(): boolean { return !this.is3d; }\r\n /** @internal */\r\n public get isPointCloud(): boolean { return false; }\r\n /** @internal */\r\n public get clipVolume(): RenderClipVolume | undefined { return this._clipVolume; }\r\n\r\n /** The volume of space occupied by this tile tree. */\r\n public get range(): ElementAlignedBox3d { return this.rootTile.range; }\r\n /** The most recent time at which tiles [[selectTiles]] was called. */\r\n public get lastSelectedTime(): BeTimePoint { return this._lastSelected; }\r\n /** True if a tile and its child tiles should not be drawn simultaneously.\r\n * Default: true.\r\n */\r\n public get parentsAndChildrenExclusive(): boolean { return true; }\r\n\r\n /** Constructor */\r\n protected constructor(params: TileTreeParams) {\r\n this._lastSelected = BeTimePoint.now();\r\n this.iModel = params.iModel;\r\n this.iModelTransform = params.location;\r\n this._clipVolume = params.clipVolume;\r\n this.modelId = params.modelId;\r\n this.id = params.id;\r\n this.contentRange = params.contentRange;\r\n\r\n const admin = IModelApp.tileAdmin;\r\n this._loadPriority = params.priority;\r\n this.expirationTime = params.expirationTime ?? admin.tileExpirationTime;\r\n }\r\n\r\n /** Selects tiles of appropriate resolution for some purpose like drawing to the screen, producing a shadow map, etc.\r\n * @note Do **not** override this method. Implement [[_selectTiles]].\r\n */\r\n public selectTiles(args: TileDrawArgs): Tile[] {\r\n this._lastSelected = BeTimePoint.now();\r\n const tiles = this._selectTiles(args);\r\n IModelApp.tileAdmin.addTilesForViewport(args.context.viewport, tiles, args.readyTiles);\r\n args.processSelectedTiles(tiles);\r\n return tiles;\r\n }\r\n\r\n /** True if [[dispose]] has been called on this tile tree. */\r\n public get isDisposed(): boolean { return this._isDisposed; }\r\n\r\n /** Dispose of this tree and any resources owned by it. This is typically invoked by a [[TileTreeOwner]]. */\r\n public dispose(): void {\r\n if (this.isDisposed)\r\n return;\r\n\r\n this._isDisposed = true;\r\n dispose(this.rootTile);\r\n }\r\n\r\n /** @internal */\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.rootTile.collectStatistics(stats);\r\n }\r\n\r\n /** Returns the number of [[Tile]]s currently in memory belonging to this tree, primarily for debugging. */\r\n public countTiles(): number {\r\n return 1 + this.rootTile.countDescendants();\r\n }\r\n\r\n /** @internal */\r\n public accumulateTransformedRange(range: Range3d, matrix: Matrix4d, location: Transform, frustumPlanes?: FrustumPlanes): void {\r\n this.rootTile.extendRangeForContent(range, matrix, location, frustumPlanes);\r\n }\r\n\r\n /**\r\n * Return the transform from the tile tree's coordinate space to [ECEF](https://en.wikipedia.org/wiki/ECEF) (Earth Centered Earth Fixed) coordinates.\r\n * If a geographic coordinate system is present then this transform will be calculated at the tile tree center.\r\n * @beta\r\n */\r\n public async getEcefTransform(): Promise<Transform | undefined> {\r\n if (!this.iModel.ecefLocation)\r\n return undefined;\r\n\r\n let dbToEcef: Transform | undefined;\r\n const range = this.contentRange ? this.contentRange : this.range;\r\n const center = range.localXYZToWorld(.5, .5, .5);\r\n if (center) {\r\n this.iModelTransform.multiplyPoint3d(center, center);\r\n const ecefToDb = await calculateEcefToDbTransformAtLocation(center, this.iModel);\r\n dbToEcef = ecefToDb?.inverse();\r\n }\r\n if (!dbToEcef)\r\n dbToEcef = this.iModel.ecefLocation.getTransform();\r\n\r\n return dbToEcef.multiplyTransformTransform(this.iModelTransform);\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"TileTree.js","sourceRoot":"","sources":["../../../src/tile/TileTree.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 Tiles\r\n */\r\n\r\nimport { BeDuration, BeTimePoint, dispose, Id64String } from \"@itwin/core-bentley\";\r\nimport { Matrix4d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { ElementAlignedBox3d, FrustumPlanes, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { calculateEcefToDbTransformAtLocation } from \"../BackgroundMapGeometry\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { RenderClipVolume } from \"../render/RenderClipVolume\";\r\nimport { RenderMemory } from \"../render/RenderMemory\";\r\nimport { Tile, TileDrawArgs, TileGeometryCollector, TileLoadPriority, TileTreeParams } from \"./internal\";\r\n\r\n/** Describes the current state of a [[TileTree]]. TileTrees are loaded asynchronously and may be unloaded after a period of disuse.\r\n * @see [[TileTreeOwner]].\r\n * @public\r\n */\r\nexport enum TileTreeLoadStatus {\r\n /** No attempt to load the tile tree has yet been made. */\r\n NotLoaded,\r\n /** The tile tree is in the process of being loaded. */\r\n Loading,\r\n /** The tile tree has been successfully loaded. */\r\n Loaded,\r\n /** An attempt to load the tile tree failed. */\r\n NotFound,\r\n}\r\n\r\n/** A hierarchical level-of-detail tree of [3d Tiles](https://github.com/CesiumGS/3d-tiles) to be rendered in a [[Viewport]].\r\n * Tile trees originate from a variety of sources:\r\n * - Each [[GeometricModelState]] can supply its graphics as a tile tree;\r\n * - A [[DisplayStyleState]]'s map settings or reality models;\r\n * - [ViewAttachment]($backend)s in a [[SheetModelState]];\r\n * - [[TiledGraphicsProvider]]s associated with a viewport.\r\n *\r\n * The same TileTree can be displayed in any number of viewports using multiple [[TileTreeReference]]s.\r\n * A TileTree's lifetime is managed by a [[TileTreeOwner]].\r\n *\r\n * @note Some methods carry a warning that they should **not** be overridden by subclasses; typically a protected method exists that can be\r\n * overridden instead to customize the behavior. For example, [[selectTiles]] should not be overridden; instead, override the[[_selectTiles]] method\r\n * that it calls.\r\n * @public\r\n */\r\nexport abstract class TileTree {\r\n private _isDisposed = false;\r\n /** @internal */\r\n protected _lastSelected = BeTimePoint.now();\r\n /** @internal */\r\n protected _clipVolume?: RenderClipVolume;\r\n public readonly iModel: IModelConnection;\r\n /** Transform from this tile tree's coordinate space to the iModel's coordinate space. */\r\n public readonly iModelTransform: Transform;\r\n /** Uniquely identifies this tree among all other tile trees associated with the iModel. */\r\n public readonly id: string;\r\n /** A 64-bit identifier for this tile tree, unique within the context of its [[IModelConnection]].\r\n * For a tile tree associated with a [[GeometricModelState]], this is the Id of the model. Other types of tile trees\r\n * typically use a transient Id obtained from [[IModelConnection.transientIds]].\r\n */\r\n public readonly modelId: Id64String;\r\n /** The length of time after which tiles belonging to this tree are considered elegible for disposal if they are no longer in use. */\r\n public readonly expirationTime: BeDuration;\r\n /** @internal */\r\n public get loadPriority(): TileLoadPriority { return this._loadPriority; }\r\n private readonly _loadPriority: TileLoadPriority;\r\n /** Optional tight bounding box around the entire contents of all of this tree's tiles. */\r\n public readonly contentRange?: ElementAlignedBox3d;\r\n\r\n /** The lowest-resolution tile in this tree. */\r\n public abstract get rootTile(): Tile;\r\n /** True if this tile tree contains 3d graphics. */\r\n public abstract get is3d(): boolean;\r\n /** Returns the maximum depth of this tree, if any. */\r\n public abstract get maxDepth(): number | undefined;\r\n\r\n /** The overrides that should be applied to the view's [ViewFlags]($common) when this tile tree is drawn. Can be overridden by individual [[TileTreeReference]]s. */\r\n public abstract get viewFlagOverrides(): ViewFlagOverrides;\r\n\r\n /** True if this tile tree has no bounds - e.g., a tile tree representing a globe is unbounded. */\r\n public get isContentUnbounded(): boolean {\r\n return false;\r\n }\r\n\r\n /** Implement this method to select tiles of appropriate resolution. */\r\n protected abstract _selectTiles(args: TileDrawArgs): Tile[];\r\n\r\n /** Produce graphics of appropriate resolution to be drawn in a [[Viewport]]. */\r\n public abstract draw(args: TileDrawArgs): void;\r\n\r\n /** Discard tiles and/or tile contents, presumably based on a least-recently-used and/or least-likely-to-be-needed criterion. */\r\n public abstract prune(): void;\r\n\r\n /** True if this tile tree contains 2d graphics. */\r\n public get is2d(): boolean { return !this.is3d; }\r\n /** @internal */\r\n public get isPointCloud(): boolean { return false; }\r\n /** @internal */\r\n public get clipVolume(): RenderClipVolume | undefined { return this._clipVolume; }\r\n\r\n /** The volume of space occupied by this tile tree. */\r\n public get range(): ElementAlignedBox3d { return this.rootTile.range; }\r\n /** The most recent time at which tiles [[selectTiles]] was called. */\r\n public get lastSelectedTime(): BeTimePoint { return this._lastSelected; }\r\n /** True if a tile and its child tiles should not be drawn simultaneously.\r\n * Default: true.\r\n */\r\n public get parentsAndChildrenExclusive(): boolean { return true; }\r\n\r\n /** Constructor */\r\n protected constructor(params: TileTreeParams) {\r\n this._lastSelected = BeTimePoint.now();\r\n this.iModel = params.iModel;\r\n this.iModelTransform = params.location;\r\n this._clipVolume = params.clipVolume;\r\n this.modelId = params.modelId;\r\n this.id = params.id;\r\n this.contentRange = params.contentRange;\r\n\r\n const admin = IModelApp.tileAdmin;\r\n this._loadPriority = params.priority;\r\n this.expirationTime = params.expirationTime ?? admin.tileExpirationTime;\r\n }\r\n\r\n /** Selects tiles of appropriate resolution for some purpose like drawing to the screen, producing a shadow map, etc.\r\n * @note Do **not** override this method. Implement [[_selectTiles]].\r\n */\r\n public selectTiles(args: TileDrawArgs): Tile[] {\r\n this._lastSelected = BeTimePoint.now();\r\n const tiles = this._selectTiles(args);\r\n IModelApp.tileAdmin.addTilesForUser(args.context.viewport, tiles, args.readyTiles);\r\n args.processSelectedTiles(tiles);\r\n return tiles;\r\n }\r\n\r\n /** True if [[dispose]] has been called on this tile tree. */\r\n public get isDisposed(): boolean { return this._isDisposed; }\r\n\r\n /** Dispose of this tree and any resources owned by it. This is typically invoked by a [[TileTreeOwner]]. */\r\n public dispose(): void {\r\n if (this.isDisposed)\r\n return;\r\n\r\n this._isDisposed = true;\r\n dispose(this.rootTile);\r\n }\r\n\r\n /** @internal */\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.rootTile.collectStatistics(stats);\r\n }\r\n\r\n /** Returns the number of [[Tile]]s currently in memory belonging to this tree, primarily for debugging. */\r\n public countTiles(): number {\r\n return 1 + this.rootTile.countDescendants();\r\n }\r\n\r\n /** @internal */\r\n public accumulateTransformedRange(range: Range3d, matrix: Matrix4d, location: Transform, frustumPlanes?: FrustumPlanes): void {\r\n this.rootTile.extendRangeForContent(range, matrix, location, frustumPlanes);\r\n }\r\n\r\n /**\r\n * Return the transform from the tile tree's coordinate space to [ECEF](https://en.wikipedia.org/wiki/ECEF) (Earth Centered Earth Fixed) coordinates.\r\n * If a geographic coordinate system is present then this transform will be calculated at the tile tree center.\r\n * @beta\r\n */\r\n public async getEcefTransform(): Promise<Transform | undefined> {\r\n if (!this.iModel.ecefLocation)\r\n return undefined;\r\n\r\n let dbToEcef: Transform | undefined;\r\n const range = this.contentRange ? this.contentRange : this.range;\r\n const center = range.localXYZToWorld(.5, .5, .5);\r\n if (center) {\r\n this.iModelTransform.multiplyPoint3d(center, center);\r\n const ecefToDb = await calculateEcefToDbTransformAtLocation(center, this.iModel);\r\n dbToEcef = ecefToDb?.inverse();\r\n }\r\n if (!dbToEcef)\r\n dbToEcef = this.iModel.ecefLocation.getTransform();\r\n\r\n return dbToEcef.multiplyTransformTransform(this.iModelTransform);\r\n }\r\n\r\n /** Populate [[TileGeometryCollector.polyfaces]] with geometry obtained from this tile tree's tiles satisfying the collector's criteria.\r\n * The base implementation does nothing.\r\n * @see [[TileTreeReference.createGeometryTreeReference]] to attempt to create a TileTree that can collect geometry.\r\n * @beta\r\n */\r\n public collectTileGeometry(_collector: TileGeometryCollector): void {\r\n }\r\n}\r\n\r\n"]}
@@ -9,7 +9,7 @@ import { RenderClipVolume } from "../render/RenderClipVolume";
9
9
  import { RenderMemory } from "../render/RenderMemory";
10
10
  import { DecorateContext, SceneContext } from "../ViewContext";
11
11
  import { ScreenViewport } from "../Viewport";
12
- import { DisclosedTileTreeSet, TileDrawArgs, TileTree, TileTreeOwner } from "./internal";
12
+ import { DisclosedTileTreeSet, GeometryTileTreeReference, MapLayerFeatureInfo, TileDrawArgs, TileGeometryCollector, TileTree, TileTreeOwner } from "./internal";
13
13
  /** Describes the type of graphics produced by a [[TileTreeReference]].
14
14
  * @public
15
15
  */
@@ -22,7 +22,7 @@ export declare enum TileGraphicType {
22
22
  Overlay = 2
23
23
  }
24
24
  /** A reference to a [[TileTree]] suitable for drawing within a [[Viewport]]. The reference does not *own* its tile tree - it merely refers to it by
25
- * way of the tree [[TileTreeOwner]].
25
+ * way of the tree's [[TileTreeOwner]].
26
26
  * The specific [[TileTree]] referenced by this object may change based on the current state of the Viewport in which it is drawn - for example,
27
27
  * as a result of changing the RenderMode, or animation settings, or classification settings, etc.
28
28
  * A reference to a TileTree is typically associated with a [[ViewState]], a [[DisplayStyleState]], or a [[Viewport]].
@@ -45,6 +45,10 @@ export declare abstract class TileTreeReference {
45
45
  draw(args: TileDrawArgs): void;
46
46
  /** Optionally return a tooltip describing the hit. */
47
47
  getToolTip(_hit: HitDetail): Promise<HTMLElement | string | undefined>;
48
+ /** Optionally return a MapLayerFeatureInfo object describing the hit.].
49
+ * @alpha
50
+ */
51
+ getMapFeatureInfo(_hit: HitDetail): Promise<MapLayerFeatureInfo[] | undefined>;
48
52
  /** Optionally add any decorations specific to this reference. For example, map tile trees may add a logo image and/or copyright attributions.
49
53
  * @note This is currently only invoked for background maps and TiledGraphicsProviders - others have no decorations, but if they did implement this it would not be called.
50
54
  */
@@ -106,5 +110,26 @@ export declare abstract class TileTreeReference {
106
110
  get planarclipMaskPriority(): number;
107
111
  /** Add attribution logo cards for the tile tree source logo cards to the viewport's logo div. */
108
112
  addLogoCards(_cards: HTMLTableElement, _vp: ScreenViewport): void;
113
+ /** Create a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]].
114
+ * Return `undefined` if geometry collection is not supported.
115
+ * @see [[createGeometryTreeReference]].
116
+ * @beta
117
+ */
118
+ protected _createGeometryTreeReference(): GeometryTileTreeReference | undefined;
119
+ /** If defined, supplies the implementation of [[GeometryTileTreeReference.collectTileGeometry]].
120
+ * @beta
121
+ */
122
+ collectTileGeometry?: (collector: TileGeometryCollector) => void;
123
+ /** A function that can be assigned to [[collectTileGeometry]] to enable geometry collection for references to tile trees that support geometry collection.
124
+ * @beta
125
+ */
126
+ protected _collectTileGeometry(collector: TileGeometryCollector): void;
127
+ /** Obtain a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]], or
128
+ * undefined if geometry collection is not supported.
129
+ * Currently, only terrain and reality model tiles support geometry collection.
130
+ * @note Do not override this method - override [[_createGeometryTreeReference]] instead.
131
+ * @beta
132
+ */
133
+ createGeometryTreeReference(): GeometryTileTreeReference | undefined;
109
134
  }
110
135
  //# sourceMappingURL=TileTreeReference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TileTreeReference.d.ts","sourceRoot":"","sources":["../../../src/tile/TileTreeReference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TileTreeReference.d.ts","sourceRoot":"","sources":["../../../src/tile/TileTreeReference.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,aAAa,EAAE,UAAU,EAA0B,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1J,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,oBAAoB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,YAAY,EAAE,qBAAqB,EAAE,QAAQ,EAAsB,aAAa,EACvJ,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,oBAAY,eAAe;IACzB,wDAAwD;IACxD,aAAa,IAAI;IACjB,2CAA2C;IAC3C,KAAK,IAAI;IACT,+CAA+C;IAC/C,OAAO,IAAI;CACZ;AAED;;;;;;;;;GASG;AACH,8BAAsB,iBAAiB;IACrC,uJAAuJ;IACvJ,aAAoB,SAAS,IAAI,aAAa,CAAC;IAE/C;;;OAGG;IACI,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAM3D,qFAAqF;IAC9E,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAM9C,0IAA0I;IACnI,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIrC,sDAAsD;IACzC,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IAEnF;;OAEG;IACU,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,EAAE,GAAG,SAAS,CAAC;IAE3F;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAEhD;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAM1C,gBAAgB;IACT,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAM9D;;;;OAIG;IACH,IAAW,iBAAiB,IAAI,OAAO,CAUtC;IAED;;OAEG;IACH,SAAS,KAAK,kBAAkB,IAAI,OAAO,CAE1C;IAED;;;OAGG;IACI,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS;IAoBtE,gBAAgB;IAChB,SAAS,CAAC,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;IAI1E;;OAEG;IACI,WAAW,IAAI,SAAS,GAAG,SAAS;IAK3C,2HAA2H;IAC3H,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS;IAIrD;;OAEG;IACI,wBAAwB,IAAI,mBAAmB;IAStD,4EAA4E;IAC5E,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,GAAG,SAAS;IAIrE,iIAAiI;IACjI,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,iBAAiB;IAIjE,gEAAgE;IAChE,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,gBAAgB,CAAC,SAAS,GAAG,SAAS;IAIxF,4EAA4E;IAC5E,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,yBAAyB,GAAG,SAAS;IAIvF,yEAAyE;IACzE,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC,QAAQ,GAAG,SAAS;IAO1E,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,aAAa;IASjG,gBAAgB;IACT,gBAAgB,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI;IAEvD,6GAA6G;IAC7G,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED,iKAAiK;IACjK,IAAW,QAAQ,IAAI,OAAO,CAAkB;IAEhD;;;OAGG;IACH,IAAW,sBAAsB,IAAI,MAAM,CAA+C;IAE1F,iGAAiG;IAC1F,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI;IAExE;;;;OAIG;IACH,SAAS,CAAC,4BAA4B,IAAI,yBAAyB,GAAG,SAAS;IAI/E;;OAEG;IACI,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAExE;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAatE;;;;;OAKG;IACI,2BAA2B,IAAI,yBAAyB,GAAG,SAAS;CAQ5E"}
@@ -5,10 +5,10 @@
5
5
  /** @packageDocumentation
6
6
  * @module Tiles
7
7
  */
8
- import { BeTimePoint } from "@itwin/core-bentley";
8
+ import { assert, BeTimePoint } from "@itwin/core-bentley";
9
9
  import { Range3d } from "@itwin/core-geometry";
10
10
  import { PlanarClipMaskPriority } from "@itwin/core-common";
11
- import { TileDrawArgs, TileTreeLoadStatus } from "./internal";
11
+ import { TileDrawArgs, TileTreeLoadStatus, } from "./internal";
12
12
  /** Describes the type of graphics produced by a [[TileTreeReference]].
13
13
  * @public
14
14
  */
@@ -22,7 +22,7 @@ export var TileGraphicType;
22
22
  TileGraphicType[TileGraphicType["Overlay"] = 2] = "Overlay";
23
23
  })(TileGraphicType || (TileGraphicType = {}));
24
24
  /** A reference to a [[TileTree]] suitable for drawing within a [[Viewport]]. The reference does not *own* its tile tree - it merely refers to it by
25
- * way of the tree [[TileTreeOwner]].
25
+ * way of the tree's [[TileTreeOwner]].
26
26
  * The specific [[TileTree]] referenced by this object may change based on the current state of the Viewport in which it is drawn - for example,
27
27
  * as a result of changing the RenderMode, or animation settings, or classification settings, etc.
28
28
  * A reference to a TileTree is typically associated with a [[ViewState]], a [[DisplayStyleState]], or a [[Viewport]].
@@ -53,6 +53,10 @@ export class TileTreeReference /* implements RenderMemory.Consumer */ {
53
53
  }
54
54
  /** Optionally return a tooltip describing the hit. */
55
55
  async getToolTip(_hit) { return undefined; }
56
+ /** Optionally return a MapLayerFeatureInfo object describing the hit.].
57
+ * @alpha
58
+ */
59
+ async getMapFeatureInfo(_hit) { return undefined; }
56
60
  /** Optionally add any decorations specific to this reference. For example, map tile trees may add a logo image and/or copyright attributions.
57
61
  * @note This is currently only invoked for background maps and TiledGraphicsProviders - others have no decorations, but if they did implement this it would not be called.
58
62
  */
@@ -185,5 +189,41 @@ export class TileTreeReference /* implements RenderMemory.Consumer */ {
185
189
  get planarclipMaskPriority() { return PlanarClipMaskPriority.DesignModel; }
186
190
  /** Add attribution logo cards for the tile tree source logo cards to the viewport's logo div. */
187
191
  addLogoCards(_cards, _vp) { }
192
+ /** Create a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]].
193
+ * Return `undefined` if geometry collection is not supported.
194
+ * @see [[createGeometryTreeReference]].
195
+ * @beta
196
+ */
197
+ _createGeometryTreeReference() {
198
+ return undefined;
199
+ }
200
+ /** A function that can be assigned to [[collectTileGeometry]] to enable geometry collection for references to tile trees that support geometry collection.
201
+ * @beta
202
+ */
203
+ _collectTileGeometry(collector) {
204
+ const tree = this.treeOwner.load();
205
+ switch (this.treeOwner.loadStatus) {
206
+ case TileTreeLoadStatus.Loaded:
207
+ assert(undefined !== tree);
208
+ tree.collectTileGeometry(collector);
209
+ break;
210
+ case TileTreeLoadStatus.Loading:
211
+ collector.markLoading();
212
+ break;
213
+ }
214
+ }
215
+ /** Obtain a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]], or
216
+ * undefined if geometry collection is not supported.
217
+ * Currently, only terrain and reality model tiles support geometry collection.
218
+ * @note Do not override this method - override [[_createGeometryTreeReference]] instead.
219
+ * @beta
220
+ */
221
+ createGeometryTreeReference() {
222
+ if (this.collectTileGeometry) {
223
+ // Unclear why compiler doesn't detect that `this` satisfies the GeometryTileTreeReference interface...it must be looking only at the types, not this particular instance.
224
+ return this;
225
+ }
226
+ return this._createGeometryTreeReference();
227
+ }
188
228
  }
189
229
  //# sourceMappingURL=TileTreeReference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TileTreeReference.js","sourceRoot":"","sources":["../../../src/tile/TileTreeReference.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 Tiles\r\n */\r\n\r\nimport { BeTimePoint } from \"@itwin/core-bentley\";\r\nimport { Matrix4d, Range1d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { ElementAlignedBox3d, FeatureAppearanceProvider, FrustumPlanes, HiddenLine, PlanarClipMaskPriority, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { HitDetail } from \"../HitDetail\";\r\nimport { FeatureSymbology } from \"../render/FeatureSymbology\";\r\nimport { RenderClipVolume } from \"../render/RenderClipVolume\";\r\nimport { RenderMemory } from \"../render/RenderMemory\";\r\nimport { DecorateContext, SceneContext } from \"../ViewContext\";\r\nimport { ScreenViewport } from \"../Viewport\";\r\nimport { DisclosedTileTreeSet, TileDrawArgs, TileTree, TileTreeLoadStatus, TileTreeOwner } from \"./internal\";\r\n\r\n/** Describes the type of graphics produced by a [[TileTreeReference]].\r\n * @public\r\n */\r\nexport enum TileGraphicType {\r\n /** Rendered behind all other geometry without depth. */\r\n BackgroundMap = 0,\r\n /** Rendered with normal scene graphics. */\r\n Scene = 1,\r\n /** Rendered in front of all other geometry. */\r\n Overlay = 2,\r\n}\r\n\r\n/** A reference to a [[TileTree]] suitable for drawing within a [[Viewport]]. The reference does not *own* its tile tree - it merely refers to it by\r\n * way of the tree [[TileTreeOwner]].\r\n * The specific [[TileTree]] referenced by this object may change based on the current state of the Viewport in which it is drawn - for example,\r\n * as a result of changing the RenderMode, or animation settings, or classification settings, etc.\r\n * A reference to a TileTree is typically associated with a [[ViewState]], a [[DisplayStyleState]], or a [[Viewport]].\r\n * Multiple TileTreeReferences can refer to the same TileTree with different parameters and logic - for example, the same background map tiles can be displayed in two viewports with\r\n * differing levels of transparency.\r\n * @see [[TiledGraphicsProvider]] to supply custom [[TileTreeReference]]s to be drawn within a [[Viewport]].\r\n * @public\r\n */\r\nexport abstract class TileTreeReference /* implements RenderMemory.Consumer */ {\r\n /** The owner of the currently-referenced [[TileTree]]. Do not store a direct reference to it, because it may change or become disposed at any time. */\r\n public abstract get treeOwner(): TileTreeOwner;\r\n\r\n /** Disclose *all* TileTrees use by this reference. This may include things like map tiles used for draping on terrain.\r\n * Override this and call super if you have such auxiliary trees.\r\n * @note Any tree *NOT* disclosed becomes a candidate for *purging* (being unloaded from memory along with all of its tiles and graphics).\r\n */\r\n public discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n const tree = this.treeOwner.tileTree;\r\n if (undefined !== tree)\r\n trees.add(tree);\r\n }\r\n\r\n /** Adds this reference's graphics to the scene. By default this invokes [[draw]]. */\r\n public addToScene(context: SceneContext): void {\r\n const args = this.createDrawArgs(context);\r\n if (undefined !== args)\r\n this.draw(args);\r\n }\r\n\r\n /** Adds this reference's graphics to the scene. By default this invokes [[TileTree.draw]] on the referenced TileTree, if it is loaded. */\r\n public draw(args: TileDrawArgs): void {\r\n args.tree.draw(args);\r\n }\r\n\r\n /** Optionally return a tooltip describing the hit. */\r\n public async getToolTip(_hit: HitDetail): Promise<HTMLElement | string | undefined> { return undefined; }\r\n\r\n /** Optionally add any decorations specific to this reference. For example, map tile trees may add a logo image and/or copyright attributions.\r\n * @note This is currently only invoked for background maps and TiledGraphicsProviders - others have no decorations, but if they did implement this it would not be called.\r\n */\r\n public decorate(_context: DecorateContext): void { }\r\n\r\n /** Unions this reference's range with the supplied range to help compute a volume in world space for fitting a viewport to its contents.\r\n * Override this function if a reference's range should not be included in the fit range, or a range different from its tile tree's range should be used.\r\n */\r\n public unionFitRange(union: Range3d): void {\r\n const contentRange = this.computeWorldContentRange();\r\n if (!contentRange.isNull)\r\n union.extendRange(contentRange);\r\n }\r\n\r\n /** @internal */\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const tree = this.treeOwner.tileTree;\r\n if (undefined !== tree)\r\n tree.collectStatistics(stats);\r\n }\r\n\r\n /** Return true if the tile tree is fully loaded and ready to draw.\r\n * The default implementation returns true if the tile tree loading process completed (whether it resulted in success or failure).\r\n * @note Do *not* override this property - override [[_isLoadingComplete]] instead..\r\n * @public\r\n */\r\n public get isLoadingComplete(): boolean {\r\n switch (this.treeOwner.loadStatus) {\r\n case TileTreeLoadStatus.NotLoaded:\r\n case TileTreeLoadStatus.Loading:\r\n return false;\r\n case TileTreeLoadStatus.NotFound:\r\n return true; // we tried, and failed, to load.\r\n case TileTreeLoadStatus.Loaded:\r\n return this._isLoadingComplete;\r\n }\r\n }\r\n\r\n /** Override if additional asynchronous loading is required after the tile tree is successfully loaded, to indicate when that loading has completed.\r\n * @public\r\n */\r\n protected get _isLoadingComplete(): boolean {\r\n return true;\r\n }\r\n\r\n /** Create context for drawing the tile tree, if it is ready for drawing.\r\n * TileTreeReferences can override individual portions of the context, e.g. apply their own transform.\r\n * Returns undefined if, e.g., the tile tree is not yet loaded.\r\n */\r\n public createDrawArgs(context: SceneContext): TileDrawArgs | undefined {\r\n const tree = this.treeOwner.load();\r\n if (undefined === tree)\r\n return undefined;\r\n\r\n return new TileDrawArgs({\r\n context,\r\n tree,\r\n now: BeTimePoint.now(),\r\n location: this.computeTransform(tree),\r\n viewFlagOverrides: this.getViewFlagOverrides(tree),\r\n clipVolume: this.getClipVolume(tree),\r\n parentsAndChildrenExclusive: tree.parentsAndChildrenExclusive,\r\n symbologyOverrides: this.getSymbologyOverrides(tree),\r\n appearanceProvider: this.getAppearanceProvider(tree),\r\n hiddenLineSettings: this.getHiddenLineSettings(tree),\r\n animationTransformNodeId: this.getAnimationTransformNodeId(tree),\r\n });\r\n }\r\n\r\n /** @internal */\r\n protected getAnimationTransformNodeId(_tree: TileTree): number | undefined {\r\n return undefined;\r\n }\r\n\r\n /** Supply transform from this tile tree reference's location to iModel coordinate space.\r\n * @returns undefined if the TileTree is not yet loaded.\r\n */\r\n public getLocation(): Transform | undefined {\r\n const tree = this.treeOwner.load();\r\n return undefined !== tree ? this.computeTransform(tree) : undefined;\r\n }\r\n\r\n /** Compute a transform from this tile tree reference's coordinate space to the [[IModelConnection]]'s coordinate space. */\r\n protected computeTransform(tree: TileTree): Transform {\r\n return tree.iModelTransform.clone();\r\n }\r\n\r\n /** Compute the range of this tile tree's contents in world coordinates.\r\n * @returns The content range in world coodinates, or a null range if the tile tree is not loaded or has a null content range.\r\n */\r\n public computeWorldContentRange(): ElementAlignedBox3d {\r\n const range = new Range3d();\r\n const tree = this.treeOwner.tileTree;\r\n if (undefined !== tree && !tree.rootTile.contentRange.isNull)\r\n this.computeTransform(tree).multiplyRange(tree.rootTile.contentRange, range);\r\n\r\n return range;\r\n }\r\n\r\n /** Return the clip volume applied to this reference's tile tree, if any. */\r\n protected getClipVolume(tree: TileTree): RenderClipVolume | undefined {\r\n return tree.clipVolume;\r\n }\r\n\r\n /** Supply overrides that should be applied to the [[ViewState]]'s [ViewFlags]($common) when drawing this tile tree reference. */\r\n protected getViewFlagOverrides(tree: TileTree): ViewFlagOverrides {\r\n return tree.viewFlagOverrides;\r\n }\r\n\r\n /** Return overrides that *replace* any defined for the view. */\r\n protected getSymbologyOverrides(_tree: TileTree): FeatureSymbology.Overrides | undefined {\r\n return undefined;\r\n }\r\n\r\n /** Return a provider that can supplement the view's symbology overrides. */\r\n protected getAppearanceProvider(_tree: TileTree): FeatureAppearanceProvider | undefined {\r\n return undefined;\r\n }\r\n\r\n /** Return hidden line settings to replace those defined for the view. */\r\n protected getHiddenLineSettings(_tree: TileTree): HiddenLine.Settings | undefined {\r\n return undefined;\r\n }\r\n\r\n /* Extend range to include transformed range of this tile tree.\r\n * @internal\r\n */\r\n public accumulateTransformedRange(range: Range3d, matrix: Matrix4d, frustumPlanes?: FrustumPlanes) {\r\n const tree = this.treeOwner.tileTree;\r\n if (undefined === tree)\r\n return;\r\n\r\n const location = this.computeTransform(tree);\r\n tree.accumulateTransformedRange(range, matrix, location, frustumPlanes);\r\n }\r\n\r\n /** @internal */\r\n public getTerrainHeight(_terrainHeights: Range1d): void { }\r\n\r\n /** Return whether the geometry exposed by this tile tree reference should cast shadows on other geometry. */\r\n public get castsShadows(): boolean {\r\n return true;\r\n }\r\n\r\n /** Return whether this reference has global coverage. Mapping data is global and some non-primary models such as the OSM building layer have global coverage */\r\n public get isGlobal(): boolean { return false; }\r\n\r\n /** Return the clip mask priority for this model - models will be clipped by any other viewed model with a higher proirity.\r\n * BIM models have highest prioirty and are never clipped.\r\n * @alpha\r\n */\r\n public get planarclipMaskPriority(): number { return PlanarClipMaskPriority.DesignModel; }\r\n\r\n /** Add attribution logo cards for the tile tree source logo cards to the viewport's logo div. */\r\n public addLogoCards(_cards: HTMLTableElement, _vp: ScreenViewport): void { }\r\n}\r\n"]}
1
+ {"version":3,"file":"TileTreeReference.js","sourceRoot":"","sources":["../../../src/tile/TileTreeReference.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 Tiles\r\n */\r\n\r\nimport { assert, BeTimePoint } from \"@itwin/core-bentley\";\r\nimport { Matrix4d, Range1d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { ElementAlignedBox3d, FeatureAppearanceProvider, FrustumPlanes, HiddenLine, PlanarClipMaskPriority, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { HitDetail } from \"../HitDetail\";\r\nimport { FeatureSymbology } from \"../render/FeatureSymbology\";\r\nimport { RenderClipVolume } from \"../render/RenderClipVolume\";\r\nimport { RenderMemory } from \"../render/RenderMemory\";\r\nimport { DecorateContext, SceneContext } from \"../ViewContext\";\r\nimport { ScreenViewport } from \"../Viewport\";\r\nimport {\r\n DisclosedTileTreeSet, GeometryTileTreeReference, MapLayerFeatureInfo, TileDrawArgs, TileGeometryCollector, TileTree, TileTreeLoadStatus, TileTreeOwner,\r\n} from \"./internal\";\r\n\r\n/** Describes the type of graphics produced by a [[TileTreeReference]].\r\n * @public\r\n */\r\nexport enum TileGraphicType {\r\n /** Rendered behind all other geometry without depth. */\r\n BackgroundMap = 0,\r\n /** Rendered with normal scene graphics. */\r\n Scene = 1,\r\n /** Rendered in front of all other geometry. */\r\n Overlay = 2,\r\n}\r\n\r\n/** A reference to a [[TileTree]] suitable for drawing within a [[Viewport]]. The reference does not *own* its tile tree - it merely refers to it by\r\n * way of the tree's [[TileTreeOwner]].\r\n * The specific [[TileTree]] referenced by this object may change based on the current state of the Viewport in which it is drawn - for example,\r\n * as a result of changing the RenderMode, or animation settings, or classification settings, etc.\r\n * A reference to a TileTree is typically associated with a [[ViewState]], a [[DisplayStyleState]], or a [[Viewport]].\r\n * Multiple TileTreeReferences can refer to the same TileTree with different parameters and logic - for example, the same background map tiles can be displayed in two viewports with\r\n * differing levels of transparency.\r\n * @see [[TiledGraphicsProvider]] to supply custom [[TileTreeReference]]s to be drawn within a [[Viewport]].\r\n * @public\r\n */\r\nexport abstract class TileTreeReference /* implements RenderMemory.Consumer */ {\r\n /** The owner of the currently-referenced [[TileTree]]. Do not store a direct reference to it, because it may change or become disposed at any time. */\r\n public abstract get treeOwner(): TileTreeOwner;\r\n\r\n /** Disclose *all* TileTrees use by this reference. This may include things like map tiles used for draping on terrain.\r\n * Override this and call super if you have such auxiliary trees.\r\n * @note Any tree *NOT* disclosed becomes a candidate for *purging* (being unloaded from memory along with all of its tiles and graphics).\r\n */\r\n public discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n const tree = this.treeOwner.tileTree;\r\n if (undefined !== tree)\r\n trees.add(tree);\r\n }\r\n\r\n /** Adds this reference's graphics to the scene. By default this invokes [[draw]]. */\r\n public addToScene(context: SceneContext): void {\r\n const args = this.createDrawArgs(context);\r\n if (undefined !== args)\r\n this.draw(args);\r\n }\r\n\r\n /** Adds this reference's graphics to the scene. By default this invokes [[TileTree.draw]] on the referenced TileTree, if it is loaded. */\r\n public draw(args: TileDrawArgs): void {\r\n args.tree.draw(args);\r\n }\r\n\r\n /** Optionally return a tooltip describing the hit. */\r\n public async getToolTip(_hit: HitDetail): Promise<HTMLElement | string | undefined> { return undefined; }\r\n\r\n /** Optionally return a MapLayerFeatureInfo object describing the hit.].\r\n * @alpha\r\n */\r\n public async getMapFeatureInfo(_hit: HitDetail): Promise<MapLayerFeatureInfo[] | undefined> { return undefined; }\r\n\r\n /** Optionally add any decorations specific to this reference. For example, map tile trees may add a logo image and/or copyright attributions.\r\n * @note This is currently only invoked for background maps and TiledGraphicsProviders - others have no decorations, but if they did implement this it would not be called.\r\n */\r\n public decorate(_context: DecorateContext): void { }\r\n\r\n /** Unions this reference's range with the supplied range to help compute a volume in world space for fitting a viewport to its contents.\r\n * Override this function if a reference's range should not be included in the fit range, or a range different from its tile tree's range should be used.\r\n */\r\n public unionFitRange(union: Range3d): void {\r\n const contentRange = this.computeWorldContentRange();\r\n if (!contentRange.isNull)\r\n union.extendRange(contentRange);\r\n }\r\n\r\n /** @internal */\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const tree = this.treeOwner.tileTree;\r\n if (undefined !== tree)\r\n tree.collectStatistics(stats);\r\n }\r\n\r\n /** Return true if the tile tree is fully loaded and ready to draw.\r\n * The default implementation returns true if the tile tree loading process completed (whether it resulted in success or failure).\r\n * @note Do *not* override this property - override [[_isLoadingComplete]] instead..\r\n * @public\r\n */\r\n public get isLoadingComplete(): boolean {\r\n switch (this.treeOwner.loadStatus) {\r\n case TileTreeLoadStatus.NotLoaded:\r\n case TileTreeLoadStatus.Loading:\r\n return false;\r\n case TileTreeLoadStatus.NotFound:\r\n return true; // we tried, and failed, to load.\r\n case TileTreeLoadStatus.Loaded:\r\n return this._isLoadingComplete;\r\n }\r\n }\r\n\r\n /** Override if additional asynchronous loading is required after the tile tree is successfully loaded, to indicate when that loading has completed.\r\n * @public\r\n */\r\n protected get _isLoadingComplete(): boolean {\r\n return true;\r\n }\r\n\r\n /** Create context for drawing the tile tree, if it is ready for drawing.\r\n * TileTreeReferences can override individual portions of the context, e.g. apply their own transform.\r\n * Returns undefined if, e.g., the tile tree is not yet loaded.\r\n */\r\n public createDrawArgs(context: SceneContext): TileDrawArgs | undefined {\r\n const tree = this.treeOwner.load();\r\n if (undefined === tree)\r\n return undefined;\r\n\r\n return new TileDrawArgs({\r\n context,\r\n tree,\r\n now: BeTimePoint.now(),\r\n location: this.computeTransform(tree),\r\n viewFlagOverrides: this.getViewFlagOverrides(tree),\r\n clipVolume: this.getClipVolume(tree),\r\n parentsAndChildrenExclusive: tree.parentsAndChildrenExclusive,\r\n symbologyOverrides: this.getSymbologyOverrides(tree),\r\n appearanceProvider: this.getAppearanceProvider(tree),\r\n hiddenLineSettings: this.getHiddenLineSettings(tree),\r\n animationTransformNodeId: this.getAnimationTransformNodeId(tree),\r\n });\r\n }\r\n\r\n /** @internal */\r\n protected getAnimationTransformNodeId(_tree: TileTree): number | undefined {\r\n return undefined;\r\n }\r\n\r\n /** Supply transform from this tile tree reference's location to iModel coordinate space.\r\n * @returns undefined if the TileTree is not yet loaded.\r\n */\r\n public getLocation(): Transform | undefined {\r\n const tree = this.treeOwner.load();\r\n return undefined !== tree ? this.computeTransform(tree) : undefined;\r\n }\r\n\r\n /** Compute a transform from this tile tree reference's coordinate space to the [[IModelConnection]]'s coordinate space. */\r\n protected computeTransform(tree: TileTree): Transform {\r\n return tree.iModelTransform.clone();\r\n }\r\n\r\n /** Compute the range of this tile tree's contents in world coordinates.\r\n * @returns The content range in world coodinates, or a null range if the tile tree is not loaded or has a null content range.\r\n */\r\n public computeWorldContentRange(): ElementAlignedBox3d {\r\n const range = new Range3d();\r\n const tree = this.treeOwner.tileTree;\r\n if (undefined !== tree && !tree.rootTile.contentRange.isNull)\r\n this.computeTransform(tree).multiplyRange(tree.rootTile.contentRange, range);\r\n\r\n return range;\r\n }\r\n\r\n /** Return the clip volume applied to this reference's tile tree, if any. */\r\n protected getClipVolume(tree: TileTree): RenderClipVolume | undefined {\r\n return tree.clipVolume;\r\n }\r\n\r\n /** Supply overrides that should be applied to the [[ViewState]]'s [ViewFlags]($common) when drawing this tile tree reference. */\r\n protected getViewFlagOverrides(tree: TileTree): ViewFlagOverrides {\r\n return tree.viewFlagOverrides;\r\n }\r\n\r\n /** Return overrides that *replace* any defined for the view. */\r\n protected getSymbologyOverrides(_tree: TileTree): FeatureSymbology.Overrides | undefined {\r\n return undefined;\r\n }\r\n\r\n /** Return a provider that can supplement the view's symbology overrides. */\r\n protected getAppearanceProvider(_tree: TileTree): FeatureAppearanceProvider | undefined {\r\n return undefined;\r\n }\r\n\r\n /** Return hidden line settings to replace those defined for the view. */\r\n protected getHiddenLineSettings(_tree: TileTree): HiddenLine.Settings | undefined {\r\n return undefined;\r\n }\r\n\r\n /* Extend range to include transformed range of this tile tree.\r\n * @internal\r\n */\r\n public accumulateTransformedRange(range: Range3d, matrix: Matrix4d, frustumPlanes?: FrustumPlanes) {\r\n const tree = this.treeOwner.tileTree;\r\n if (undefined === tree)\r\n return;\r\n\r\n const location = this.computeTransform(tree);\r\n tree.accumulateTransformedRange(range, matrix, location, frustumPlanes);\r\n }\r\n\r\n /** @internal */\r\n public getTerrainHeight(_terrainHeights: Range1d): void { }\r\n\r\n /** Return whether the geometry exposed by this tile tree reference should cast shadows on other geometry. */\r\n public get castsShadows(): boolean {\r\n return true;\r\n }\r\n\r\n /** Return whether this reference has global coverage. Mapping data is global and some non-primary models such as the OSM building layer have global coverage */\r\n public get isGlobal(): boolean { return false; }\r\n\r\n /** Return the clip mask priority for this model - models will be clipped by any other viewed model with a higher proirity.\r\n * BIM models have highest prioirty and are never clipped.\r\n * @alpha\r\n */\r\n public get planarclipMaskPriority(): number { return PlanarClipMaskPriority.DesignModel; }\r\n\r\n /** Add attribution logo cards for the tile tree source logo cards to the viewport's logo div. */\r\n public addLogoCards(_cards: HTMLTableElement, _vp: ScreenViewport): void { }\r\n\r\n /** Create a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]].\r\n * Return `undefined` if geometry collection is not supported.\r\n * @see [[createGeometryTreeReference]].\r\n * @beta\r\n */\r\n protected _createGeometryTreeReference(): GeometryTileTreeReference | undefined {\r\n return undefined;\r\n }\r\n\r\n /** If defined, supplies the implementation of [[GeometryTileTreeReference.collectTileGeometry]].\r\n * @beta\r\n */\r\n public collectTileGeometry?: (collector: TileGeometryCollector) => void;\r\n\r\n /** A function that can be assigned to [[collectTileGeometry]] to enable geometry collection for references to tile trees that support geometry collection.\r\n * @beta\r\n */\r\n protected _collectTileGeometry(collector: TileGeometryCollector): void {\r\n const tree = this.treeOwner.load();\r\n switch (this.treeOwner.loadStatus) {\r\n case TileTreeLoadStatus.Loaded:\r\n assert(undefined !== tree);\r\n tree.collectTileGeometry(collector);\r\n break;\r\n case TileTreeLoadStatus.Loading:\r\n collector.markLoading();\r\n break;\r\n }\r\n }\r\n\r\n /** Obtain a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]], or\r\n * undefined if geometry collection is not supported.\r\n * Currently, only terrain and reality model tiles support geometry collection.\r\n * @note Do not override this method - override [[_createGeometryTreeReference]] instead.\r\n * @beta\r\n */\r\n public createGeometryTreeReference(): GeometryTileTreeReference | undefined {\r\n if (this.collectTileGeometry) {\r\n // Unclear why compiler doesn't detect that `this` satisfies the GeometryTileTreeReference interface...it must be looking only at the types, not this particular instance.\r\n return this as GeometryTileTreeReference;\r\n }\r\n\r\n return this._createGeometryTreeReference();\r\n }\r\n}\r\n"]}
@@ -2,22 +2,22 @@
2
2
  * @module Tiles
3
3
  */
4
4
  import { BeTimePoint } from "@itwin/core-bentley";
5
- import { Viewport } from "../Viewport";
6
- /** A marker associated with a [[Tile]] to track usage of that tile by any number of viewports.
5
+ import { TileUser } from "./internal";
6
+ /** A marker associated with a [[Tile]] to track usage of that tile by any number of [[TileUser]]s.
7
7
  * The marker tracks:
8
- * - the set of [[Viewport]]s in which the tile is in use for some purpose (displayed, preloaded, requested, selected for shadow map, etc); and
9
- * - the most recent time at which any viewport declared its use of the tile.
10
- * The marker is used to allow tiles to be discarded after they become disused by any viewport, via [[Tile.prune]].
8
+ * - the set of [[TileUser]]s by which the tile is in use for some purpose (displayed, preloaded, requested, selected for shadow map, etc); and
9
+ * - the most recent time at which any tile user declared its use of the tile.
10
+ * The marker is used to allow tiles to be discarded after they become disused by any tile user, via [[Tile.prune]].
11
11
  * @see [[Tile.usageMarker]].
12
12
  * @public
13
13
  */
14
14
  export declare class TileUsageMarker {
15
15
  private _timePoint;
16
- /** Constructs a usage marker with its timepoint set to the current time and its set of viewports empty. */
16
+ /** Constructs a usage marker with its timepoint set to the current time and its set of [[TileUser]]s empty. */
17
17
  constructor();
18
- /** Returns true if this tile is currently in use by no viewports and its timestamp pre-dates `expirationTime`. */
18
+ /** Returns true if this tile is currently in use by no [[TileUser]]s and its timestamp pre-dates `expirationTime`. */
19
19
  isExpired(expirationTime: BeTimePoint): boolean;
20
- /** Updates the timestamp to the specified time and marks the tile as being in use by the specified viewport. */
21
- mark(vp: Viewport, time: BeTimePoint): void;
20
+ /** Updates the timestamp to the specified time and marks the tile as being in use by the specified [[TileUser]]. */
21
+ mark(user: TileUser, time: BeTimePoint): void;
22
22
  }
23
23
  //# sourceMappingURL=TileUsageMarker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TileUsageMarker.d.ts","sourceRoot":"","sources":["../../../src/tile/TileUsageMarker.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAqB;IAEvC,2GAA2G;;IAI3G,kHAAkH;IAC3G,SAAS,CAAC,cAAc,EAAE,WAAW,GAAG,OAAO;IAItD,gHAAgH;IACzG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;CAInD"}
1
+ {"version":3,"file":"TileUsageMarker.d.ts","sourceRoot":"","sources":["../../../src/tile/TileUsageMarker.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAqB;IAEvC,+GAA+G;;IAI/G,sHAAsH;IAC/G,SAAS,CAAC,cAAc,EAAE,WAAW,GAAG,OAAO;IAItD,oHAAoH;IAC7G,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;CAIrD"}
@@ -7,27 +7,27 @@
7
7
  */
8
8
  import { BeTimePoint } from "@itwin/core-bentley";
9
9
  import { IModelApp } from "../IModelApp";
10
- /** A marker associated with a [[Tile]] to track usage of that tile by any number of viewports.
10
+ /** A marker associated with a [[Tile]] to track usage of that tile by any number of [[TileUser]]s.
11
11
  * The marker tracks:
12
- * - the set of [[Viewport]]s in which the tile is in use for some purpose (displayed, preloaded, requested, selected for shadow map, etc); and
13
- * - the most recent time at which any viewport declared its use of the tile.
14
- * The marker is used to allow tiles to be discarded after they become disused by any viewport, via [[Tile.prune]].
12
+ * - the set of [[TileUser]]s by which the tile is in use for some purpose (displayed, preloaded, requested, selected for shadow map, etc); and
13
+ * - the most recent time at which any tile user declared its use of the tile.
14
+ * The marker is used to allow tiles to be discarded after they become disused by any tile user, via [[Tile.prune]].
15
15
  * @see [[Tile.usageMarker]].
16
16
  * @public
17
17
  */
18
18
  export class TileUsageMarker {
19
- /** Constructs a usage marker with its timepoint set to the current time and its set of viewports empty. */
19
+ /** Constructs a usage marker with its timepoint set to the current time and its set of [[TileUser]]s empty. */
20
20
  constructor() {
21
21
  this._timePoint = BeTimePoint.now();
22
22
  }
23
- /** Returns true if this tile is currently in use by no viewports and its timestamp pre-dates `expirationTime`. */
23
+ /** Returns true if this tile is currently in use by no [[TileUser]]s and its timestamp pre-dates `expirationTime`. */
24
24
  isExpired(expirationTime) {
25
25
  return this._timePoint.before(expirationTime) && !IModelApp.tileAdmin.isTileInUse(this);
26
26
  }
27
- /** Updates the timestamp to the specified time and marks the tile as being in use by the specified viewport. */
28
- mark(vp, time) {
27
+ /** Updates the timestamp to the specified time and marks the tile as being in use by the specified [[TileUser]]. */
28
+ mark(user, time) {
29
29
  this._timePoint = time;
30
- IModelApp.tileAdmin.markTileUsedByViewport(this, vp);
30
+ IModelApp.tileAdmin.markTileUsed(this, user);
31
31
  }
32
32
  }
33
33
  //# sourceMappingURL=TileUsageMarker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TileUsageMarker.js","sourceRoot":"","sources":["../../../src/tile/TileUsageMarker.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAG1B,2GAA2G;IAC3G;QAHQ,eAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAIvC,CAAC;IAED,kHAAkH;IAC3G,SAAS,CAAC,cAA2B;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1F,CAAC;IAED,gHAAgH;IACzG,IAAI,CAAC,EAAY,EAAE,IAAiB;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,SAAS,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACF","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 Tiles\r\n */\r\n\r\nimport { BeTimePoint } from \"@itwin/core-bentley\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { Viewport } from \"../Viewport\";\r\n\r\n/** A marker associated with a [[Tile]] to track usage of that tile by any number of viewports.\r\n * The marker tracks:\r\n * - the set of [[Viewport]]s in which the tile is in use for some purpose (displayed, preloaded, requested, selected for shadow map, etc); and\r\n * - the most recent time at which any viewport declared its use of the tile.\r\n * The marker is used to allow tiles to be discarded after they become disused by any viewport, via [[Tile.prune]].\r\n * @see [[Tile.usageMarker]].\r\n * @public\r\n */\r\nexport class TileUsageMarker {\r\n private _timePoint = BeTimePoint.now();\r\n\r\n /** Constructs a usage marker with its timepoint set to the current time and its set of viewports empty. */\r\n public constructor() {\r\n }\r\n\r\n /** Returns true if this tile is currently in use by no viewports and its timestamp pre-dates `expirationTime`. */\r\n public isExpired(expirationTime: BeTimePoint): boolean {\r\n return this._timePoint.before(expirationTime) && !IModelApp.tileAdmin.isTileInUse(this);\r\n }\r\n\r\n /** Updates the timestamp to the specified time and marks the tile as being in use by the specified viewport. */\r\n public mark(vp: Viewport, time: BeTimePoint): void {\r\n this._timePoint = time;\r\n IModelApp.tileAdmin.markTileUsedByViewport(this, vp);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"TileUsageMarker.js","sourceRoot":"","sources":["../../../src/tile/TileUsageMarker.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAG1B,+GAA+G;IAC/G;QAHQ,eAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAIvC,CAAC;IAED,sHAAsH;IAC/G,SAAS,CAAC,cAA2B;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1F,CAAC;IAED,oHAAoH;IAC7G,IAAI,CAAC,IAAc,EAAE,IAAiB;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF","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 Tiles\r\n */\r\n\r\nimport { BeTimePoint } from \"@itwin/core-bentley\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { TileUser } from \"./internal\";\r\n\r\n/** A marker associated with a [[Tile]] to track usage of that tile by any number of [[TileUser]]s.\r\n * The marker tracks:\r\n * - the set of [[TileUser]]s by which the tile is in use for some purpose (displayed, preloaded, requested, selected for shadow map, etc); and\r\n * - the most recent time at which any tile user declared its use of the tile.\r\n * The marker is used to allow tiles to be discarded after they become disused by any tile user, via [[Tile.prune]].\r\n * @see [[Tile.usageMarker]].\r\n * @public\r\n */\r\nexport class TileUsageMarker {\r\n private _timePoint = BeTimePoint.now();\r\n\r\n /** Constructs a usage marker with its timepoint set to the current time and its set of [[TileUser]]s empty. */\r\n public constructor() {\r\n }\r\n\r\n /** Returns true if this tile is currently in use by no [[TileUser]]s and its timestamp pre-dates `expirationTime`. */\r\n public isExpired(expirationTime: BeTimePoint): boolean {\r\n return this._timePoint.before(expirationTime) && !IModelApp.tileAdmin.isTileInUse(this);\r\n }\r\n\r\n /** Updates the timestamp to the specified time and marks the tile as being in use by the specified [[TileUser]]. */\r\n public mark(user: TileUser, time: BeTimePoint): void {\r\n this._timePoint = time;\r\n IModelApp.tileAdmin.markTileUsed(this, user);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,33 @@
1
+ /** @packageDocumentation
2
+ * @module Tiles
3
+ */
4
+ import { IModelConnection } from "../IModelConnection";
5
+ import { Viewport } from "../Viewport";
6
+ import { DisclosedTileTreeSet, TileRequest } from "./internal";
7
+ /** Represents some object that makes use of [[Tile]]s in some way - e.g., by requesting and/or displaying their contents, querying their geometry, etc.
8
+ * Each [[Tile]] keeps track of its users via its [[TileUsageMarker]]. A tile with no users is eligible to be discarded view [[Tile.prune]].
9
+ * Every [[Viewport]] is a tile user. It is occasionally useful to have a tile user that is **not** a viewport.
10
+ * Every TileUser is identified by an integer Id that is unique among all extant TileUsers. This Id **must** be obtained via [[TileUser.generateId]].
11
+ * Every TileUser must be registered with [[IModelApp.tileAdmin]] before use via [[TileAdmin.registerUser]] and unregistered via [[TileAdmin.forgetUser]] after
12
+ * it ceases using tiles.
13
+ * @public
14
+ */
15
+ export interface TileUser {
16
+ /** A unique integer identifying this user amongst all extant users. This Id **must** be obtained via [[TIleUser.generateId]]. */
17
+ readonly tileUserId: number;
18
+ /** The iModel with which the user is associated. */
19
+ readonly iModel: IModelConnection;
20
+ /** Disclose all tile trees currently in use by this user. Any tile tree not disclosed by any user becomes eligible for garbage collection. */
21
+ readonly discloseTileTrees: (trees: DisclosedTileTreeSet) => void;
22
+ /** An optional function invoked when a [[TileRequest]] associated with a [[Tile]] in use by this user changes state - e.g., when the request completes, fails, or
23
+ * is cancelled. For example, a [[Viewport]] responds to such events by invalidating its scene.
24
+ */
25
+ readonly onRequestStateChanged?: (req: TileRequest) => void;
26
+ }
27
+ /** @public */
28
+ export declare namespace TileUser {
29
+ function generateId(): number;
30
+ /** Iterate the subset of `users` that are [[Viewport]]s. */
31
+ function viewportsFromUsers(users: Iterable<TileUser>): Iterable<Viewport>;
32
+ }
33
+ //# sourceMappingURL=TileUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TileUser.d.ts","sourceRoot":"","sources":["../../../src/tile/TileUser.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,iIAAiI;IACjI,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,8IAA8I;IAC9I,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAClE;;OAEG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CAC7D;AAID,cAAc;AACd,yBAAiB,QAAQ,CAAC;IACxB,SAAgB,UAAU,IAAI,MAAM,CAEnC;IAED,4DAA4D;IAC5D,SAAkB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAIlF;CACF"}
@@ -0,0 +1,25 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Tiles
7
+ */
8
+ import { Viewport } from "../Viewport";
9
+ let nextUserId = 1;
10
+ /** @public */
11
+ export var TileUser;
12
+ (function (TileUser) {
13
+ function generateId() {
14
+ return nextUserId++;
15
+ }
16
+ TileUser.generateId = generateId;
17
+ /** Iterate the subset of `users` that are [[Viewport]]s. */
18
+ function* viewportsFromUsers(users) {
19
+ for (const user of users)
20
+ if (user instanceof Viewport)
21
+ yield user;
22
+ }
23
+ TileUser.viewportsFromUsers = viewportsFromUsers;
24
+ })(TileUser || (TileUser = {}));
25
+ //# sourceMappingURL=TileUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TileUser.js","sourceRoot":"","sources":["../../../src/tile/TileUser.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwBvC,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,cAAc;AACd,MAAM,KAAW,QAAQ,CAWxB;AAXD,WAAiB,QAAQ;IACvB,SAAgB,UAAU;QACxB,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAFe,mBAAU,aAEzB,CAAA;IAED,4DAA4D;IAC5D,QAAgB,CAAC,CAAC,kBAAkB,CAAC,KAAyB;QAC5D,KAAK,MAAM,IAAI,IAAI,KAAK;YACtB,IAAI,IAAI,YAAY,QAAQ;gBAC1B,MAAM,IAAI,CAAC;IACjB,CAAC;IAJiB,2BAAkB,qBAInC,CAAA;AACH,CAAC,EAXgB,QAAQ,KAAR,QAAQ,QAWxB","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 Tiles\r\n */\r\n\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { DisclosedTileTreeSet, TileRequest } from \"./internal\";\r\n\r\n/** Represents some object that makes use of [[Tile]]s in some way - e.g., by requesting and/or displaying their contents, querying their geometry, etc.\r\n * Each [[Tile]] keeps track of its users via its [[TileUsageMarker]]. A tile with no users is eligible to be discarded view [[Tile.prune]].\r\n * Every [[Viewport]] is a tile user. It is occasionally useful to have a tile user that is **not** a viewport.\r\n * Every TileUser is identified by an integer Id that is unique among all extant TileUsers. This Id **must** be obtained via [[TileUser.generateId]].\r\n * Every TileUser must be registered with [[IModelApp.tileAdmin]] before use via [[TileAdmin.registerUser]] and unregistered via [[TileAdmin.forgetUser]] after\r\n * it ceases using tiles.\r\n * @public\r\n */\r\nexport interface TileUser {\r\n /** A unique integer identifying this user amongst all extant users. This Id **must** be obtained via [[TIleUser.generateId]]. */\r\n readonly tileUserId: number;\r\n /** The iModel with which the user is associated. */\r\n readonly iModel: IModelConnection;\r\n /** Disclose all tile trees currently in use by this user. Any tile tree not disclosed by any user becomes eligible for garbage collection. */\r\n readonly discloseTileTrees: (trees: DisclosedTileTreeSet) => void;\r\n /** An optional function invoked when a [[TileRequest]] associated with a [[Tile]] in use by this user changes state - e.g., when the request completes, fails, or\r\n * is cancelled. For example, a [[Viewport]] responds to such events by invalidating its scene.\r\n */\r\n readonly onRequestStateChanged?: (req: TileRequest) => void;\r\n}\r\n\r\nlet nextUserId = 1;\r\n\r\n/** @public */\r\nexport namespace TileUser {\r\n export function generateId(): number {\r\n return nextUserId++;\r\n }\r\n\r\n /** Iterate the subset of `users` that are [[Viewport]]s. */\r\n export function * viewportsFromUsers(users: Iterable<TileUser>): Iterable<Viewport> {\r\n for (const user of users)\r\n if (user instanceof Viewport)\r\n yield user;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,28 @@
1
+ /** @packageDocumentation
2
+ * @module Utils
3
+ */
4
+ import { ReadonlySortedArray } from "@itwin/core-bentley";
5
+ import { TileUser } from "./internal";
6
+ /** An immutable set of [[TileUser]]s wherein uniqueness is determined by each TileUser's unique integer identifier.
7
+ * @see [[UniqueTileUserSets]].
8
+ * @internal
9
+ */
10
+ export declare class ReadonlyTileUserSet extends ReadonlySortedArray<TileUser> {
11
+ constructor(user?: TileUser);
12
+ }
13
+ /** Maintains a set of [[TileUserSets]] designed to minimize duplication.
14
+ * For example, the tile request scheduler needs to associate with each [[TileRequest]] the set of [[TileUser]]s awaiting the request's response.
15
+ * Using UniqueTileUserSets ensures all tiles requested by the same user use the same TileUserSet object.
16
+ * Additionally, whenever a user is unregistered there is no need to track down every associated tile request - the user can just be removed from the TileUserSets managed by this object.
17
+ * The TileUserSets managed by this object should be treated as immutable - "adding" a user to an existing set should be done using [[getTileUserSet]].
18
+ * @internal
19
+ */
20
+ export declare class UniqueTileUserSets {
21
+ private readonly _sets;
22
+ getTileUserSet(user: TileUser, users?: ReadonlyTileUserSet): ReadonlyTileUserSet;
23
+ clearAll(): void;
24
+ clear(): void;
25
+ remove(user: TileUser): void;
26
+ static get emptySet(): ReadonlyTileUserSet;
27
+ }
28
+ //# sourceMappingURL=TileUserSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TileUserSet.d.ts","sourceRoot":"","sources":["../../../src/tile/TileUserSet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAe,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB,CAAC,QAAQ,CAAC;gBACjD,IAAI,CAAC,EAAE,QAAQ;CAKnC;AAwFD;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAEvC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,mBAAmB,GAAG,mBAAmB;IAIhF,QAAQ,IAAI,IAAI;IAIhB,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAInC,WAAkB,QAAQ,IAAI,mBAAmB,CAEhD;CACF"}