@itwin/core-frontend 5.1.0-dev.9 → 5.2.0-dev.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 (721) hide show
  1. package/CHANGELOG.md +92 -1
  2. package/lib/cjs/AccuDraw.js +2 -2
  3. package/lib/cjs/AccuDraw.js.map +1 -1
  4. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  5. package/lib/cjs/AccuSnap.js +15 -6
  6. package/lib/cjs/AccuSnap.js.map +1 -1
  7. package/lib/cjs/AuxCoordSys.js +1 -1
  8. package/lib/cjs/AuxCoordSys.js.map +1 -1
  9. package/lib/cjs/DisplayStyleState.d.ts +37 -0
  10. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  11. package/lib/cjs/DisplayStyleState.js +65 -0
  12. package/lib/cjs/DisplayStyleState.js.map +1 -1
  13. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  14. package/lib/cjs/DrawingViewState.js +1 -0
  15. package/lib/cjs/DrawingViewState.js.map +1 -1
  16. package/lib/cjs/GraphicalEditingScope.d.ts +1 -1
  17. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  18. package/lib/cjs/GraphicalEditingScope.js +1 -1
  19. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  20. package/lib/cjs/HitDetail.d.ts +1 -1
  21. package/lib/cjs/HitDetail.d.ts.map +1 -1
  22. package/lib/cjs/HitDetail.js.map +1 -1
  23. package/lib/cjs/IModelApp.d.ts +19 -4
  24. package/lib/cjs/IModelApp.d.ts.map +1 -1
  25. package/lib/cjs/IModelApp.js +21 -2
  26. package/lib/cjs/IModelApp.js.map +1 -1
  27. package/lib/cjs/IModelConnection.d.ts +8 -9
  28. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  29. package/lib/cjs/IModelConnection.js +52 -24
  30. package/lib/cjs/IModelConnection.js.map +1 -1
  31. package/lib/cjs/IpcApp.d.ts +2 -1
  32. package/lib/cjs/IpcApp.d.ts.map +1 -1
  33. package/lib/cjs/IpcApp.js +4 -2
  34. package/lib/cjs/IpcApp.js.map +1 -1
  35. package/lib/cjs/RealityDataSource.d.ts +65 -3
  36. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  37. package/lib/cjs/RealityDataSource.js +79 -3
  38. package/lib/cjs/RealityDataSource.js.map +1 -1
  39. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +1 -1
  40. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  41. package/lib/cjs/SelectionSet.d.ts +7 -7
  42. package/lib/cjs/SelectionSet.js +3 -3
  43. package/lib/cjs/SelectionSet.js.map +1 -1
  44. package/lib/cjs/SheetViewState.d.ts +2 -0
  45. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  46. package/lib/cjs/SheetViewState.js +25 -3
  47. package/lib/cjs/SheetViewState.js.map +1 -1
  48. package/lib/cjs/ViewState.d.ts +1 -1
  49. package/lib/cjs/ViewState.js +1 -1
  50. package/lib/cjs/ViewState.js.map +1 -1
  51. package/lib/cjs/Viewport.d.ts +6 -4
  52. package/lib/cjs/Viewport.d.ts.map +1 -1
  53. package/lib/cjs/Viewport.js +23 -3
  54. package/lib/cjs/Viewport.js.map +1 -1
  55. package/lib/cjs/common/gltf/GltfSchema.d.ts +18 -0
  56. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -1
  57. package/lib/cjs/common/gltf/GltfSchema.js +1 -0
  58. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  59. package/lib/cjs/common/imdl/CompactEdges.d.ts +11 -0
  60. package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -1
  61. package/lib/cjs/common/imdl/CompactEdges.js +9 -6
  62. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  63. package/lib/cjs/common/imdl/ImdlSchema.d.ts +5 -1
  64. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
  65. package/lib/cjs/common/imdl/ImdlSchema.js +4 -0
  66. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  67. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  68. package/lib/cjs/common/imdl/ParseImdlDocument.js +11 -9
  69. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  70. package/lib/cjs/common/internal/render/EdgeParams.d.ts +7 -2
  71. package/lib/cjs/common/internal/render/EdgeParams.d.ts.map +1 -1
  72. package/lib/cjs/common/internal/render/EdgeParams.js +30 -8
  73. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
  74. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts +2 -1
  75. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts.map +1 -1
  76. package/lib/cjs/common/internal/render/MeshPrimitives.js +5 -7
  77. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  78. package/lib/cjs/common/internal/render/PolylineParams.d.ts +8 -3
  79. package/lib/cjs/common/internal/render/PolylineParams.d.ts.map +1 -1
  80. package/lib/cjs/common/internal/render/PolylineParams.js +6 -9
  81. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
  82. package/lib/cjs/common/internal/render/VertexTableSplitter.d.ts.map +1 -1
  83. package/lib/cjs/common/internal/render/VertexTableSplitter.js +9 -7
  84. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
  85. package/lib/cjs/core-frontend.d.ts +2 -2
  86. package/lib/cjs/core-frontend.d.ts.map +1 -1
  87. package/lib/cjs/core-frontend.js +1 -1
  88. package/lib/cjs/core-frontend.js.map +1 -1
  89. package/lib/cjs/extension/ExtensionRuntime.js +15 -2
  90. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  91. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  92. package/lib/cjs/internal/GoogleMapsDecorator.d.ts +53 -0
  93. package/lib/cjs/internal/GoogleMapsDecorator.d.ts.map +1 -0
  94. package/lib/cjs/internal/GoogleMapsDecorator.js +132 -0
  95. package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -0
  96. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.d.ts +83 -0
  97. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.d.ts.map +1 -0
  98. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js +201 -0
  99. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -0
  100. package/lib/cjs/internal/ScriptUtils.d.ts +5 -0
  101. package/lib/cjs/internal/ScriptUtils.d.ts.map +1 -0
  102. package/lib/cjs/internal/ScriptUtils.js +120 -0
  103. package/lib/cjs/internal/ScriptUtils.js.map +1 -0
  104. package/lib/cjs/internal/cross-package.d.ts +1 -0
  105. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  106. package/lib/cjs/internal/cross-package.js +4 -1
  107. package/lib/cjs/internal/cross-package.js.map +1 -1
  108. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
  109. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  110. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js +1 -1
  111. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  112. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts +2 -2
  113. package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  114. package/lib/cjs/internal/render/webgl/AttributeBuffers.js +2 -2
  115. package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
  116. package/lib/cjs/internal/render/webgl/BatchUniforms.js +1 -1
  117. package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
  118. package/lib/cjs/internal/render/webgl/BranchStack.d.ts +2 -2
  119. package/lib/cjs/internal/render/webgl/BranchStack.d.ts.map +1 -1
  120. package/lib/cjs/internal/render/webgl/BranchStack.js +3 -2
  121. package/lib/cjs/internal/render/webgl/BranchStack.js.map +1 -1
  122. package/lib/cjs/internal/render/webgl/BranchState.d.ts +4 -2
  123. package/lib/cjs/internal/render/webgl/BranchState.d.ts.map +1 -1
  124. package/lib/cjs/internal/render/webgl/BranchState.js +4 -1
  125. package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
  126. package/lib/cjs/internal/render/webgl/BranchUniforms.d.ts +2 -2
  127. package/lib/cjs/internal/render/webgl/BranchUniforms.d.ts.map +1 -1
  128. package/lib/cjs/internal/render/webgl/BranchUniforms.js +2 -2
  129. package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
  130. package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts +1 -1
  131. package/lib/cjs/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
  132. package/lib/cjs/internal/render/webgl/ClippingProgram.js +1 -1
  133. package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
  134. package/lib/cjs/internal/render/webgl/ContourUniforms.d.ts.map +1 -1
  135. package/lib/cjs/internal/render/webgl/ContourUniforms.js +2 -3
  136. package/lib/cjs/internal/render/webgl/ContourUniforms.js.map +1 -1
  137. package/lib/cjs/internal/render/webgl/Contours.js +8 -8
  138. package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
  139. package/lib/cjs/internal/render/webgl/EdgeGeometry.d.ts +8 -6
  140. package/lib/cjs/internal/render/webgl/EdgeGeometry.d.ts.map +1 -1
  141. package/lib/cjs/internal/render/webgl/EdgeGeometry.js +21 -7
  142. package/lib/cjs/internal/render/webgl/EdgeGeometry.js.map +1 -1
  143. package/lib/cjs/internal/render/webgl/Graphic.d.ts +2 -1
  144. package/lib/cjs/internal/render/webgl/Graphic.d.ts.map +1 -1
  145. package/lib/cjs/internal/render/webgl/Graphic.js +2 -0
  146. package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
  147. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.d.ts +6 -1
  148. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  149. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js +19 -4
  150. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  151. package/lib/cjs/internal/render/webgl/Mesh.d.ts +1 -1
  152. package/lib/cjs/internal/render/webgl/Mesh.d.ts.map +1 -1
  153. package/lib/cjs/internal/render/webgl/Mesh.js +13 -6
  154. package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
  155. package/lib/cjs/internal/render/webgl/SceneCompositor.js +2 -1
  156. package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
  157. package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts +2 -2
  158. package/lib/cjs/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
  159. package/lib/cjs/internal/render/webgl/ShaderProgram.js +2 -2
  160. package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
  161. package/lib/cjs/internal/render/webgl/Target.d.ts +2 -1
  162. package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
  163. package/lib/cjs/internal/render/webgl/Target.js +3 -1
  164. package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
  165. package/lib/cjs/internal/render/webgl/Technique.d.ts +3 -3
  166. package/lib/cjs/internal/render/webgl/Technique.d.ts.map +1 -1
  167. package/lib/cjs/internal/render/webgl/Technique.js +3 -3
  168. package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
  169. package/lib/cjs/internal/tile/ClassifierTileTree.js +3 -1
  170. package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
  171. package/lib/cjs/internal/tile/IModelTile.d.ts +1 -0
  172. package/lib/cjs/internal/tile/IModelTile.d.ts.map +1 -1
  173. package/lib/cjs/internal/tile/IModelTile.js +4 -0
  174. package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
  175. package/lib/cjs/internal/tile/IModelTileTree.d.ts +4 -2
  176. package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
  177. package/lib/cjs/internal/tile/IModelTileTree.js +58 -0
  178. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
  179. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
  180. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js +8 -0
  181. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  182. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts +4 -1
  183. package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
  184. package/lib/cjs/internal/tile/OrbitGtTileTree.js +4 -0
  185. package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
  186. package/lib/cjs/internal/tile/PrimaryTileTree.d.ts.map +1 -1
  187. package/lib/cjs/internal/tile/PrimaryTileTree.js +5 -4
  188. package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
  189. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +26 -7
  190. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  191. package/lib/cjs/internal/tile/RealityModelTileTree.js +48 -21
  192. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  193. package/lib/cjs/internal/tile/RealityTileLoader.d.ts +2 -2
  194. package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
  195. package/lib/cjs/internal/tile/RealityTileLoader.js +10 -2
  196. package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
  197. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
  198. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  199. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
  200. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  201. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
  202. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  203. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  204. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  205. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
  206. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  207. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  208. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  209. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
  210. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  211. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
  212. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  213. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +4 -0
  214. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  215. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +52 -11
  216. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  217. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts +7 -0
  218. package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
  219. package/lib/cjs/internal/tile/map/WmtsCapabilities.js +17 -0
  220. package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
  221. package/lib/cjs/internal/webgl.d.ts +1 -1
  222. package/lib/cjs/internal/webgl.d.ts.map +1 -1
  223. package/lib/cjs/internal/webgl.js.map +1 -1
  224. package/lib/cjs/properties/AngleDescription.d.ts +4 -1
  225. package/lib/cjs/properties/AngleDescription.d.ts.map +1 -1
  226. package/lib/cjs/properties/AngleDescription.js +10 -2
  227. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  228. package/lib/cjs/properties/FormattedQuantityDescription.d.ts +11 -1
  229. package/lib/cjs/properties/FormattedQuantityDescription.d.ts.map +1 -1
  230. package/lib/cjs/properties/FormattedQuantityDescription.js +7 -2
  231. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  232. package/lib/cjs/properties/LengthDescription.d.ts +12 -3
  233. package/lib/cjs/properties/LengthDescription.d.ts.map +1 -1
  234. package/lib/cjs/properties/LengthDescription.js +30 -6
  235. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  236. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +103 -7
  237. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  238. package/lib/cjs/quantity-formatting/QuantityFormatter.js +210 -23
  239. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  240. package/lib/cjs/render/Decorations.d.ts +1 -1
  241. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  242. package/lib/cjs/render/Decorations.js +1 -1
  243. package/lib/cjs/render/Decorations.js.map +1 -1
  244. package/lib/cjs/render/GraphicBranch.d.ts +4 -2
  245. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  246. package/lib/cjs/render/GraphicBranch.js +1 -1
  247. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  248. package/lib/cjs/render/MeshArgs.d.ts +8 -3
  249. package/lib/cjs/render/MeshArgs.d.ts.map +1 -1
  250. package/lib/cjs/render/MeshArgs.js.map +1 -1
  251. package/lib/cjs/render/RenderGraphic.d.ts +1 -1
  252. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  253. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  254. package/lib/cjs/render/RenderSystem.d.ts +2 -2
  255. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  256. package/lib/cjs/render/RenderSystem.js.map +1 -1
  257. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +1 -1
  258. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  259. package/lib/cjs/request/Request.d.ts +2 -2
  260. package/lib/cjs/request/Request.js.map +1 -1
  261. package/lib/cjs/tile/GltfReader.d.ts +6 -2
  262. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  263. package/lib/cjs/tile/GltfReader.js +154 -18
  264. package/lib/cjs/tile/GltfReader.js.map +1 -1
  265. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  266. package/lib/cjs/tile/RealityTile.d.ts +9 -0
  267. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  268. package/lib/cjs/tile/RealityTile.js +12 -0
  269. package/lib/cjs/tile/RealityTile.js.map +1 -1
  270. package/lib/cjs/tile/RealityTileTree.d.ts +4 -0
  271. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  272. package/lib/cjs/tile/RealityTileTree.js +4 -0
  273. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  274. package/lib/cjs/tile/Tile.d.ts +1 -1
  275. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  276. package/lib/cjs/tile/Tile.js +1 -1
  277. package/lib/cjs/tile/Tile.js.map +1 -1
  278. package/lib/cjs/tile/TileAdmin.d.ts +10 -0
  279. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  280. package/lib/cjs/tile/TileAdmin.js +3 -0
  281. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  282. package/lib/cjs/tile/TileGeometryCollector.d.ts +5 -0
  283. package/lib/cjs/tile/TileGeometryCollector.d.ts.map +1 -1
  284. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  285. package/lib/cjs/tile/TileTree.d.ts +15 -2
  286. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  287. package/lib/cjs/tile/TileTree.js +14 -1
  288. package/lib/cjs/tile/TileTree.js.map +1 -1
  289. package/lib/cjs/tile/TileTreeReference.d.ts +17 -3
  290. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  291. package/lib/cjs/tile/TileTreeReference.js +11 -5
  292. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  293. package/lib/cjs/tile/map/CesiumTerrainProvider.js +1 -1
  294. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  295. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -2
  296. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  297. package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
  298. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  299. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +10 -0
  300. package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
  301. package/lib/cjs/tile/map/MapCartoRectangle.js +12 -0
  302. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  303. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +3 -3
  304. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  305. package/lib/cjs/tile/map/MapLayerImageryProvider.js +9 -5
  306. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  307. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  308. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  309. package/lib/cjs/tile/map/MapTileTree.js +1 -1
  310. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  311. package/lib/cjs/tile/map/QuadId.d.ts +15 -0
  312. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  313. package/lib/cjs/tile/map/QuadId.js +12 -0
  314. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  315. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
  316. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  317. package/lib/cjs/tile/map/TerrainMeshProvider.js +1 -1
  318. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  319. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  320. package/lib/cjs/tools/ClipViewTool.js +18 -7
  321. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  322. package/lib/cjs/tools/ElementSetTool.d.ts +9 -1
  323. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  324. package/lib/cjs/tools/ElementSetTool.js +130 -7
  325. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  326. package/lib/cjs/tools/IdleTool.d.ts.map +1 -1
  327. package/lib/cjs/tools/IdleTool.js +4 -1
  328. package/lib/cjs/tools/IdleTool.js.map +1 -1
  329. package/lib/cjs/tools/MeasureTool.d.ts +9 -0
  330. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  331. package/lib/cjs/tools/MeasureTool.js +57 -24
  332. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  333. package/lib/cjs/tools/PrimitiveTool.d.ts +1 -1
  334. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  335. package/lib/cjs/tools/PrimitiveTool.js +4 -3
  336. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  337. package/lib/cjs/tools/SelectTool.d.ts +2 -2
  338. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  339. package/lib/cjs/tools/SelectTool.js +26 -97
  340. package/lib/cjs/tools/SelectTool.js.map +1 -1
  341. package/lib/cjs/tools/Tool.d.ts +10 -1
  342. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  343. package/lib/cjs/tools/Tool.js +27 -4
  344. package/lib/cjs/tools/Tool.js.map +1 -1
  345. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  346. package/lib/cjs/tools/ToolAdmin.js +51 -16
  347. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  348. package/lib/cjs/tools/ToolAssistance.d.ts +1 -1
  349. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  350. package/lib/cjs/tools/ToolSettings.d.ts +5 -0
  351. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  352. package/lib/cjs/tools/ToolSettings.js +5 -0
  353. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  354. package/lib/cjs/tools/ViewTool.d.ts +1 -2
  355. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  356. package/lib/cjs/tools/ViewTool.js +143 -84
  357. package/lib/cjs/tools/ViewTool.js.map +1 -1
  358. package/lib/esm/AccuDraw.js +2 -2
  359. package/lib/esm/AccuDraw.js.map +1 -1
  360. package/lib/esm/AccuSnap.d.ts.map +1 -1
  361. package/lib/esm/AccuSnap.js +15 -6
  362. package/lib/esm/AccuSnap.js.map +1 -1
  363. package/lib/esm/AuxCoordSys.js +1 -1
  364. package/lib/esm/AuxCoordSys.js.map +1 -1
  365. package/lib/esm/DisplayStyleState.d.ts +37 -0
  366. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  367. package/lib/esm/DisplayStyleState.js +65 -0
  368. package/lib/esm/DisplayStyleState.js.map +1 -1
  369. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  370. package/lib/esm/DrawingViewState.js +1 -0
  371. package/lib/esm/DrawingViewState.js.map +1 -1
  372. package/lib/esm/GraphicalEditingScope.d.ts +1 -1
  373. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  374. package/lib/esm/GraphicalEditingScope.js +1 -1
  375. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  376. package/lib/esm/HitDetail.d.ts +1 -1
  377. package/lib/esm/HitDetail.d.ts.map +1 -1
  378. package/lib/esm/HitDetail.js.map +1 -1
  379. package/lib/esm/IModelApp.d.ts +19 -4
  380. package/lib/esm/IModelApp.d.ts.map +1 -1
  381. package/lib/esm/IModelApp.js +22 -3
  382. package/lib/esm/IModelApp.js.map +1 -1
  383. package/lib/esm/IModelConnection.d.ts +8 -9
  384. package/lib/esm/IModelConnection.d.ts.map +1 -1
  385. package/lib/esm/IModelConnection.js +53 -25
  386. package/lib/esm/IModelConnection.js.map +1 -1
  387. package/lib/esm/IpcApp.d.ts +2 -1
  388. package/lib/esm/IpcApp.d.ts.map +1 -1
  389. package/lib/esm/IpcApp.js +4 -2
  390. package/lib/esm/IpcApp.js.map +1 -1
  391. package/lib/esm/RealityDataSource.d.ts +65 -3
  392. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  393. package/lib/esm/RealityDataSource.js +77 -3
  394. package/lib/esm/RealityDataSource.js.map +1 -1
  395. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +1 -1
  396. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  397. package/lib/esm/SelectionSet.d.ts +7 -7
  398. package/lib/esm/SelectionSet.js +3 -3
  399. package/lib/esm/SelectionSet.js.map +1 -1
  400. package/lib/esm/SheetViewState.d.ts +2 -0
  401. package/lib/esm/SheetViewState.d.ts.map +1 -1
  402. package/lib/esm/SheetViewState.js +25 -3
  403. package/lib/esm/SheetViewState.js.map +1 -1
  404. package/lib/esm/ViewState.d.ts +1 -1
  405. package/lib/esm/ViewState.js +1 -1
  406. package/lib/esm/ViewState.js.map +1 -1
  407. package/lib/esm/Viewport.d.ts +6 -4
  408. package/lib/esm/Viewport.d.ts.map +1 -1
  409. package/lib/esm/Viewport.js +23 -3
  410. package/lib/esm/Viewport.js.map +1 -1
  411. package/lib/esm/common/gltf/GltfSchema.d.ts +18 -0
  412. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -1
  413. package/lib/esm/common/gltf/GltfSchema.js +1 -0
  414. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  415. package/lib/esm/common/imdl/CompactEdges.d.ts +11 -0
  416. package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -1
  417. package/lib/esm/common/imdl/CompactEdges.js +8 -6
  418. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  419. package/lib/esm/common/imdl/ImdlSchema.d.ts +5 -1
  420. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
  421. package/lib/esm/common/imdl/ImdlSchema.js +4 -0
  422. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  423. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  424. package/lib/esm/common/imdl/ParseImdlDocument.js +11 -9
  425. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  426. package/lib/esm/common/internal/render/EdgeParams.d.ts +7 -2
  427. package/lib/esm/common/internal/render/EdgeParams.d.ts.map +1 -1
  428. package/lib/esm/common/internal/render/EdgeParams.js +31 -9
  429. package/lib/esm/common/internal/render/EdgeParams.js.map +1 -1
  430. package/lib/esm/common/internal/render/MeshPrimitives.d.ts +2 -1
  431. package/lib/esm/common/internal/render/MeshPrimitives.d.ts.map +1 -1
  432. package/lib/esm/common/internal/render/MeshPrimitives.js +5 -7
  433. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
  434. package/lib/esm/common/internal/render/PolylineParams.d.ts +8 -3
  435. package/lib/esm/common/internal/render/PolylineParams.d.ts.map +1 -1
  436. package/lib/esm/common/internal/render/PolylineParams.js +5 -8
  437. package/lib/esm/common/internal/render/PolylineParams.js.map +1 -1
  438. package/lib/esm/common/internal/render/VertexTableSplitter.d.ts.map +1 -1
  439. package/lib/esm/common/internal/render/VertexTableSplitter.js +9 -7
  440. package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -1
  441. package/lib/esm/core-frontend.d.ts +2 -2
  442. package/lib/esm/core-frontend.d.ts.map +1 -1
  443. package/lib/esm/core-frontend.js +1 -1
  444. package/lib/esm/core-frontend.js.map +1 -1
  445. package/lib/esm/extension/ExtensionRuntime.js +15 -2
  446. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  447. package/lib/esm/extension/providers/ExtensionLoadScript.js +1 -1
  448. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  449. package/lib/esm/internal/GoogleMapsDecorator.d.ts +53 -0
  450. package/lib/esm/internal/GoogleMapsDecorator.d.ts.map +1 -0
  451. package/lib/esm/internal/GoogleMapsDecorator.js +126 -0
  452. package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -0
  453. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.d.ts +83 -0
  454. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.d.ts.map +1 -0
  455. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js +197 -0
  456. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -0
  457. package/lib/esm/internal/ScriptUtils.d.ts +5 -0
  458. package/lib/esm/internal/ScriptUtils.d.ts.map +1 -0
  459. package/lib/esm/internal/ScriptUtils.js +117 -0
  460. package/lib/esm/internal/ScriptUtils.js.map +1 -0
  461. package/lib/esm/internal/cross-package.d.ts +1 -0
  462. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  463. package/lib/esm/internal/cross-package.js +1 -0
  464. package/lib/esm/internal/cross-package.js.map +1 -1
  465. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts +1 -1
  466. package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
  467. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js +1 -1
  468. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  469. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts +2 -2
  470. package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
  471. package/lib/esm/internal/render/webgl/AttributeBuffers.js +2 -2
  472. package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
  473. package/lib/esm/internal/render/webgl/BatchUniforms.js +1 -1
  474. package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
  475. package/lib/esm/internal/render/webgl/BranchStack.d.ts +2 -2
  476. package/lib/esm/internal/render/webgl/BranchStack.d.ts.map +1 -1
  477. package/lib/esm/internal/render/webgl/BranchStack.js +3 -2
  478. package/lib/esm/internal/render/webgl/BranchStack.js.map +1 -1
  479. package/lib/esm/internal/render/webgl/BranchState.d.ts +4 -2
  480. package/lib/esm/internal/render/webgl/BranchState.d.ts.map +1 -1
  481. package/lib/esm/internal/render/webgl/BranchState.js +4 -1
  482. package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
  483. package/lib/esm/internal/render/webgl/BranchUniforms.d.ts +2 -2
  484. package/lib/esm/internal/render/webgl/BranchUniforms.d.ts.map +1 -1
  485. package/lib/esm/internal/render/webgl/BranchUniforms.js +2 -2
  486. package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
  487. package/lib/esm/internal/render/webgl/ClippingProgram.d.ts +1 -1
  488. package/lib/esm/internal/render/webgl/ClippingProgram.d.ts.map +1 -1
  489. package/lib/esm/internal/render/webgl/ClippingProgram.js +1 -1
  490. package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
  491. package/lib/esm/internal/render/webgl/ContourUniforms.d.ts.map +1 -1
  492. package/lib/esm/internal/render/webgl/ContourUniforms.js +2 -3
  493. package/lib/esm/internal/render/webgl/ContourUniforms.js.map +1 -1
  494. package/lib/esm/internal/render/webgl/Contours.js +8 -8
  495. package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
  496. package/lib/esm/internal/render/webgl/EdgeGeometry.d.ts +8 -6
  497. package/lib/esm/internal/render/webgl/EdgeGeometry.d.ts.map +1 -1
  498. package/lib/esm/internal/render/webgl/EdgeGeometry.js +21 -7
  499. package/lib/esm/internal/render/webgl/EdgeGeometry.js.map +1 -1
  500. package/lib/esm/internal/render/webgl/Graphic.d.ts +2 -1
  501. package/lib/esm/internal/render/webgl/Graphic.d.ts.map +1 -1
  502. package/lib/esm/internal/render/webgl/Graphic.js +2 -0
  503. package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
  504. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.d.ts +6 -1
  505. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  506. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js +19 -4
  507. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  508. package/lib/esm/internal/render/webgl/Mesh.d.ts +1 -1
  509. package/lib/esm/internal/render/webgl/Mesh.d.ts.map +1 -1
  510. package/lib/esm/internal/render/webgl/Mesh.js +14 -7
  511. package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
  512. package/lib/esm/internal/render/webgl/SceneCompositor.js +2 -1
  513. package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
  514. package/lib/esm/internal/render/webgl/ShaderProgram.d.ts +2 -2
  515. package/lib/esm/internal/render/webgl/ShaderProgram.d.ts.map +1 -1
  516. package/lib/esm/internal/render/webgl/ShaderProgram.js +2 -2
  517. package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
  518. package/lib/esm/internal/render/webgl/Target.d.ts +2 -1
  519. package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
  520. package/lib/esm/internal/render/webgl/Target.js +3 -1
  521. package/lib/esm/internal/render/webgl/Target.js.map +1 -1
  522. package/lib/esm/internal/render/webgl/Technique.d.ts +3 -3
  523. package/lib/esm/internal/render/webgl/Technique.d.ts.map +1 -1
  524. package/lib/esm/internal/render/webgl/Technique.js +3 -3
  525. package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
  526. package/lib/esm/internal/tile/ClassifierTileTree.js +3 -1
  527. package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
  528. package/lib/esm/internal/tile/IModelTile.d.ts +1 -0
  529. package/lib/esm/internal/tile/IModelTile.d.ts.map +1 -1
  530. package/lib/esm/internal/tile/IModelTile.js +4 -0
  531. package/lib/esm/internal/tile/IModelTile.js.map +1 -1
  532. package/lib/esm/internal/tile/IModelTileTree.d.ts +4 -2
  533. package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
  534. package/lib/esm/internal/tile/IModelTileTree.js +60 -2
  535. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
  536. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
  537. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js +8 -0
  538. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  539. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts +4 -1
  540. package/lib/esm/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
  541. package/lib/esm/internal/tile/OrbitGtTileTree.js +5 -1
  542. package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
  543. package/lib/esm/internal/tile/PrimaryTileTree.d.ts.map +1 -1
  544. package/lib/esm/internal/tile/PrimaryTileTree.js +5 -4
  545. package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
  546. package/lib/esm/internal/tile/RealityModelTileTree.d.ts +26 -7
  547. package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  548. package/lib/esm/internal/tile/RealityModelTileTree.js +48 -22
  549. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  550. package/lib/esm/internal/tile/RealityTileLoader.d.ts +2 -2
  551. package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
  552. package/lib/esm/internal/tile/RealityTileLoader.js +10 -2
  553. package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
  554. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
  555. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  556. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
  557. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  558. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
  559. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  560. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  561. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  562. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
  563. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  564. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  565. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  566. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
  567. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  568. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
  569. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  570. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +4 -0
  571. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  572. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +52 -11
  573. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  574. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts +7 -0
  575. package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
  576. package/lib/esm/internal/tile/map/WmtsCapabilities.js +17 -0
  577. package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
  578. package/lib/esm/internal/webgl.d.ts +1 -1
  579. package/lib/esm/internal/webgl.d.ts.map +1 -1
  580. package/lib/esm/internal/webgl.js.map +1 -1
  581. package/lib/esm/properties/AngleDescription.d.ts +4 -1
  582. package/lib/esm/properties/AngleDescription.d.ts.map +1 -1
  583. package/lib/esm/properties/AngleDescription.js +10 -2
  584. package/lib/esm/properties/AngleDescription.js.map +1 -1
  585. package/lib/esm/properties/FormattedQuantityDescription.d.ts +11 -1
  586. package/lib/esm/properties/FormattedQuantityDescription.d.ts.map +1 -1
  587. package/lib/esm/properties/FormattedQuantityDescription.js +7 -2
  588. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  589. package/lib/esm/properties/LengthDescription.d.ts +12 -3
  590. package/lib/esm/properties/LengthDescription.d.ts.map +1 -1
  591. package/lib/esm/properties/LengthDescription.js +30 -6
  592. package/lib/esm/properties/LengthDescription.js.map +1 -1
  593. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +103 -7
  594. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  595. package/lib/esm/quantity-formatting/QuantityFormatter.js +208 -23
  596. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  597. package/lib/esm/render/Decorations.d.ts +1 -1
  598. package/lib/esm/render/Decorations.d.ts.map +1 -1
  599. package/lib/esm/render/Decorations.js +1 -1
  600. package/lib/esm/render/Decorations.js.map +1 -1
  601. package/lib/esm/render/GraphicBranch.d.ts +4 -2
  602. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  603. package/lib/esm/render/GraphicBranch.js +1 -1
  604. package/lib/esm/render/GraphicBranch.js.map +1 -1
  605. package/lib/esm/render/MeshArgs.d.ts +8 -3
  606. package/lib/esm/render/MeshArgs.d.ts.map +1 -1
  607. package/lib/esm/render/MeshArgs.js.map +1 -1
  608. package/lib/esm/render/RenderGraphic.d.ts +1 -1
  609. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  610. package/lib/esm/render/RenderGraphic.js.map +1 -1
  611. package/lib/esm/render/RenderSystem.d.ts +2 -2
  612. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  613. package/lib/esm/render/RenderSystem.js.map +1 -1
  614. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +1 -1
  615. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  616. package/lib/esm/request/Request.d.ts +2 -2
  617. package/lib/esm/request/Request.js.map +1 -1
  618. package/lib/esm/tile/GltfReader.d.ts +6 -2
  619. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  620. package/lib/esm/tile/GltfReader.js +154 -19
  621. package/lib/esm/tile/GltfReader.js.map +1 -1
  622. package/lib/esm/tile/ImdlReader.js.map +1 -1
  623. package/lib/esm/tile/RealityTile.d.ts +9 -0
  624. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  625. package/lib/esm/tile/RealityTile.js +12 -0
  626. package/lib/esm/tile/RealityTile.js.map +1 -1
  627. package/lib/esm/tile/RealityTileTree.d.ts +4 -0
  628. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  629. package/lib/esm/tile/RealityTileTree.js +4 -0
  630. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  631. package/lib/esm/tile/Tile.d.ts +1 -1
  632. package/lib/esm/tile/Tile.d.ts.map +1 -1
  633. package/lib/esm/tile/Tile.js +1 -1
  634. package/lib/esm/tile/Tile.js.map +1 -1
  635. package/lib/esm/tile/TileAdmin.d.ts +10 -0
  636. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  637. package/lib/esm/tile/TileAdmin.js +3 -0
  638. package/lib/esm/tile/TileAdmin.js.map +1 -1
  639. package/lib/esm/tile/TileGeometryCollector.d.ts +5 -0
  640. package/lib/esm/tile/TileGeometryCollector.d.ts.map +1 -1
  641. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  642. package/lib/esm/tile/TileTree.d.ts +15 -2
  643. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  644. package/lib/esm/tile/TileTree.js +14 -1
  645. package/lib/esm/tile/TileTree.js.map +1 -1
  646. package/lib/esm/tile/TileTreeReference.d.ts +17 -3
  647. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  648. package/lib/esm/tile/TileTreeReference.js +11 -5
  649. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  650. package/lib/esm/tile/map/CesiumTerrainProvider.js +1 -1
  651. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  652. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -2
  653. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  654. package/lib/esm/tile/map/ImageryTileTree.js +2 -2
  655. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  656. package/lib/esm/tile/map/MapCartoRectangle.d.ts +10 -0
  657. package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
  658. package/lib/esm/tile/map/MapCartoRectangle.js +12 -0
  659. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  660. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +3 -3
  661. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  662. package/lib/esm/tile/map/MapLayerImageryProvider.js +9 -5
  663. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  664. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  665. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  666. package/lib/esm/tile/map/MapTileTree.js +1 -1
  667. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  668. package/lib/esm/tile/map/QuadId.d.ts +15 -0
  669. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  670. package/lib/esm/tile/map/QuadId.js +12 -0
  671. package/lib/esm/tile/map/QuadId.js.map +1 -1
  672. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
  673. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  674. package/lib/esm/tile/map/TerrainMeshProvider.js +1 -1
  675. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  676. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  677. package/lib/esm/tools/ClipViewTool.js +18 -7
  678. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  679. package/lib/esm/tools/ElementSetTool.d.ts +9 -1
  680. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  681. package/lib/esm/tools/ElementSetTool.js +132 -9
  682. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  683. package/lib/esm/tools/IdleTool.d.ts.map +1 -1
  684. package/lib/esm/tools/IdleTool.js +4 -1
  685. package/lib/esm/tools/IdleTool.js.map +1 -1
  686. package/lib/esm/tools/MeasureTool.d.ts +9 -0
  687. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  688. package/lib/esm/tools/MeasureTool.js +57 -24
  689. package/lib/esm/tools/MeasureTool.js.map +1 -1
  690. package/lib/esm/tools/PrimitiveTool.d.ts +1 -1
  691. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  692. package/lib/esm/tools/PrimitiveTool.js +4 -3
  693. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  694. package/lib/esm/tools/SelectTool.d.ts +2 -2
  695. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  696. package/lib/esm/tools/SelectTool.js +26 -97
  697. package/lib/esm/tools/SelectTool.js.map +1 -1
  698. package/lib/esm/tools/Tool.d.ts +10 -1
  699. package/lib/esm/tools/Tool.d.ts.map +1 -1
  700. package/lib/esm/tools/Tool.js +27 -4
  701. package/lib/esm/tools/Tool.js.map +1 -1
  702. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  703. package/lib/esm/tools/ToolAdmin.js +51 -16
  704. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  705. package/lib/esm/tools/ToolAssistance.d.ts +1 -1
  706. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  707. package/lib/esm/tools/ToolSettings.d.ts +5 -0
  708. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  709. package/lib/esm/tools/ToolSettings.js +5 -0
  710. package/lib/esm/tools/ToolSettings.js.map +1 -1
  711. package/lib/esm/tools/ViewTool.d.ts +1 -2
  712. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  713. package/lib/esm/tools/ViewTool.js +143 -84
  714. package/lib/esm/tools/ViewTool.js.map +1 -1
  715. package/lib/public/images/google_on_non_white.png +0 -0
  716. package/lib/public/images/google_on_non_white_hdpi.png +0 -0
  717. package/lib/public/images/google_on_white.png +0 -0
  718. package/lib/public/images/google_on_white_hdpi.png +0 -0
  719. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  720. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  721. package/package.json +25 -22
@@ -1 +1 @@
1
- {"version":3,"file":"TileTree.js","sourceRoot":"","sources":["../../../src/tile/TileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { BeDuration, BeTimePoint, dispose, Id64String } from \"@itwin/core-bentley\";\nimport { Matrix4d, Range3d, Transform } from \"@itwin/core-geometry\";\nimport { ElementAlignedBox3d, FrustumPlanes, ViewFlagOverrides } from \"@itwin/core-common\";\nimport { calculateEcefToDbTransformAtLocation } from \"../BackgroundMapGeometry\";\nimport { IModelApp } from \"../IModelApp\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { RenderClipVolume } from \"../render/RenderClipVolume\";\nimport { RenderMemory } from \"../render/RenderMemory\";\nimport { LayerTileTreeHandler, Tile, TileDrawArgs, TileGeometryCollector, TileLoadPriority, TileTreeParams } from \"./internal\";\n\n/** Describes the current state of a [[TileTree]]. TileTrees are loaded asynchronously and may be unloaded after a period of disuse.\n * @see [[TileTreeOwner]].\n * @public\n * @extensions\n */\nexport enum TileTreeLoadStatus {\n /** No attempt to load the tile tree has yet been made. */\n NotLoaded,\n /** The tile tree is in the process of being loaded. */\n Loading,\n /** The tile tree has been successfully loaded. */\n Loaded,\n /** An attempt to load the tile tree failed. */\n NotFound,\n}\n\n/** A hierarchical level-of-detail tree of [3d Tiles](https://github.com/CesiumGS/3d-tiles) to be rendered in a [[Viewport]].\n * Tile trees originate from a variety of sources:\n * - Each [[GeometricModelState]] can supply its graphics as a tile tree;\n * - A [[DisplayStyleState]]'s map settings or reality models;\n * - [ViewAttachment]($backend)s in a [[SheetModelState]];\n * - [[TiledGraphicsProvider]]s associated with a viewport.\n *\n * The same TileTree can be displayed in any number of viewports using multiple [[TileTreeReference]]s.\n * A TileTree's lifetime is managed by a [[TileTreeOwner]].\n *\n * @note Some methods carry a warning that they should **not** be overridden by subclasses; typically a protected method exists that can be\n * overridden instead to customize the behavior. For example, [[selectTiles]] should not be overridden; instead, override the[[_selectTiles]] method\n * that it calls.\n * @public\n * @extensions\n */\nexport abstract class TileTree {\n private _isDisposed = false;\n /** @internal */\n protected _lastSelected = BeTimePoint.now();\n /** @internal */\n protected _clipVolume?: RenderClipVolume;\n public readonly iModel: IModelConnection;\n /** Transform from this tile tree's coordinate space to the iModel's coordinate space. */\n public readonly iModelTransform: Transform;\n /** Uniquely identifies this tree among all other tile trees associated with the iModel. */\n public readonly id: string;\n /** A 64-bit identifier for this tile tree, unique within the context of its [[IModelConnection]].\n * For a tile tree associated with a [[GeometricModelState]], this is the Id of the model. Other types of tile trees\n * typically use a transient Id obtained from [[IModelConnection.transientIds]].\n */\n public readonly modelId: Id64String;\n /** The length of time after which tiles belonging to this tree are considered elegible for disposal if they are no longer in use. */\n public readonly expirationTime: BeDuration;\n /** @internal */\n public get loadPriority(): TileLoadPriority { return this._loadPriority; }\n private readonly _loadPriority: TileLoadPriority;\n /** Optional tight bounding box around the entire contents of all of this tree's tiles. */\n public readonly contentRange?: ElementAlignedBox3d;\n\n /** The lowest-resolution tile in this tree. */\n public abstract get rootTile(): Tile;\n /** True if this tile tree contains 3d graphics. */\n public abstract get is3d(): boolean;\n /** Returns the maximum depth of this tree, if any. */\n public abstract get maxDepth(): number | undefined;\n\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. */\n public abstract get viewFlagOverrides(): ViewFlagOverrides;\n\n /** True if this tile tree has no bounds - e.g., a tile tree representing a globe is unbounded. */\n public get isContentUnbounded(): boolean {\n return false;\n }\n\n /** Implement this method to select tiles of appropriate resolution. */\n protected abstract _selectTiles(args: TileDrawArgs): Tile[];\n\n /** Produce graphics of appropriate resolution to be drawn in a [[Viewport]]. */\n public abstract draw(args: TileDrawArgs): void;\n\n /** Discard tiles and/or tile contents, presumably based on a least-recently-used and/or least-likely-to-be-needed criterion. */\n public abstract prune(): void;\n\n /** True if this tile tree contains 2d graphics. */\n public get is2d(): boolean { return !this.is3d; }\n /** @internal */\n public get isPointCloud(): boolean { return false; }\n /** @internal */\n public get clipVolume(): RenderClipVolume | undefined { return this._clipVolume; }\n\n /** The volume of space occupied by this tile tree. */\n public get range(): ElementAlignedBox3d { return this.rootTile.range; }\n /** The most recent time at which tiles [[selectTiles]] was called. */\n public get lastSelectedTime(): BeTimePoint { return this._lastSelected; }\n /** True if a tile and its child tiles should not be drawn simultaneously.\n * Default: true.\n */\n public get parentsAndChildrenExclusive(): boolean { return true; }\n\n /** @internal */\n public get layerHandler(): LayerTileTreeHandler | undefined { return undefined; }\n\n /** Constructor */\n protected constructor(params: TileTreeParams) {\n this._lastSelected = BeTimePoint.now();\n this.iModel = params.iModel;\n this.iModelTransform = params.location;\n this._clipVolume = params.clipVolume;\n this.modelId = params.modelId;\n this.id = params.id;\n this.contentRange = params.contentRange;\n\n const admin = IModelApp.tileAdmin;\n this._loadPriority = params.priority;\n this.expirationTime = params.expirationTime ?? admin.tileExpirationTime;\n }\n\n /** Selects tiles of appropriate resolution for some purpose like drawing to the screen, producing a shadow map, etc.\n * @note Do **not** override this method. Implement [[_selectTiles]].\n */\n public selectTiles(args: TileDrawArgs): Tile[] {\n this._lastSelected = BeTimePoint.now();\n const tiles = this._selectTiles(args);\n IModelApp.tileAdmin.addTilesForUser(args.context.viewport, tiles, args.readyTiles, args.touchedTiles);\n args.processSelectedTiles(tiles);\n return tiles;\n }\n\n /** True if [[dispose]] has been called on this tile tree. */\n public get isDisposed(): boolean { return this._isDisposed; }\n\n /** Dispose of this tree and any resources owned by it. This is typically invoked by a [[TileTreeOwner]]. */\n public [Symbol.dispose](): void {\n if (this.isDisposed)\n return;\n\n this._isDisposed = true;\n dispose(this.rootTile);\n }\n\n /** @deprecated in 5.0 Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n /** @internal */\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this.rootTile.collectStatistics(stats);\n }\n\n /** Returns the number of [[Tile]]s currently in memory belonging to this tree, primarily for debugging. */\n public countTiles(): number {\n return 1 + this.rootTile.countDescendants();\n }\n\n /** @internal */\n public accumulateTransformedRange(range: Range3d, matrix: Matrix4d, location: Transform, frustumPlanes?: FrustumPlanes): void {\n this.rootTile.extendRangeForContent(range, matrix, location, frustumPlanes);\n }\n\n /**\n * Return the transform from the tile tree's coordinate space to [ECEF](https://en.wikipedia.org/wiki/ECEF) (Earth Centered Earth Fixed) coordinates.\n * If a geographic coordinate system is present then this transform will be calculated at the tile tree center.\n * @beta\n */\n public async getEcefTransform(): Promise<Transform | undefined> {\n if (!this.iModel.ecefLocation)\n return undefined;\n\n let dbToEcef: Transform | undefined;\n const range = this.contentRange ? this.contentRange : this.range;\n const center = range.localXYZToWorld(.5, .5, .5);\n if (center) {\n this.iModelTransform.multiplyPoint3d(center, center);\n const ecefToDb = await calculateEcefToDbTransformAtLocation(center, this.iModel);\n dbToEcef = ecefToDb?.inverse();\n }\n if (!dbToEcef)\n dbToEcef = this.iModel.ecefLocation.getTransform();\n\n return dbToEcef.multiplyTransformTransform(this.iModelTransform);\n }\n\n /** Populate [[TileGeometryCollector.polyfaces]] with geometry obtained from this tile tree's tiles satisfying the collector's criteria.\n * The base implementation does nothing.\n * @see [[TileTreeReference.createGeometryTreeReference]] to attempt to create a TileTree that can collect geometry.\n * @beta\n */\n public collectTileGeometry(_collector: TileGeometryCollector): void {\n }\n}\n\n"]}
1
+ {"version":3,"file":"TileTree.js","sourceRoot":"","sources":["../../../src/tile/TileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { BeDuration, BeTimePoint, dispose, Id64String } from \"@itwin/core-bentley\";\nimport { Matrix4d, Range3d, Transform } from \"@itwin/core-geometry\";\nimport { ElementAlignedBox3d, FrustumPlanes, RenderSchedule, ViewFlagOverrides } from \"@itwin/core-common\";\nimport { calculateEcefToDbTransformAtLocation } from \"../BackgroundMapGeometry\";\nimport { IModelApp } from \"../IModelApp\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { RenderClipVolume } from \"../render/RenderClipVolume\";\nimport { RenderMemory } from \"../render/RenderMemory\";\nimport { LayerTileTreeHandler, Tile, TileDrawArgs, TileGeometryCollector, TileLoadPriority, TileTreeParams } from \"./internal\";\n\n/** Describes the current state of a [[TileTree]]. TileTrees are loaded asynchronously and may be unloaded after a period of disuse.\n * @see [[TileTreeOwner]].\n * @public\n * @extensions\n */\nexport enum TileTreeLoadStatus {\n /** No attempt to load the tile tree has yet been made. */\n NotLoaded,\n /** The tile tree is in the process of being loaded. */\n Loading,\n /** The tile tree has been successfully loaded. */\n Loaded,\n /** An attempt to load the tile tree failed. */\n NotFound,\n}\n\n/** A hierarchical level-of-detail tree of [3d Tiles](https://github.com/CesiumGS/3d-tiles) to be rendered in a [[Viewport]].\n * Tile trees originate from a variety of sources:\n * - Each [[GeometricModelState]] can supply its graphics as a tile tree;\n * - A [[DisplayStyleState]]'s map settings or reality models;\n * - [ViewAttachment]($backend)s in a [[SheetModelState]];\n * - [[TiledGraphicsProvider]]s associated with a viewport.\n *\n * The same TileTree can be displayed in any number of viewports using multiple [[TileTreeReference]]s.\n * A TileTree's lifetime is managed by a [[TileTreeOwner]].\n *\n * @note Some methods carry a warning that they should **not** be overridden by subclasses; typically a protected method exists that can be\n * overridden instead to customize the behavior. For example, [[selectTiles]] should not be overridden; instead, override the[[_selectTiles]] method\n * that it calls.\n * @public\n * @extensions\n */\nexport abstract class TileTree {\n private _isDisposed = false;\n /** @internal */\n protected _lastSelected = BeTimePoint.now();\n /** @internal */\n protected _clipVolume?: RenderClipVolume;\n public readonly iModel: IModelConnection;\n /** Transform from this tile tree's coordinate space to the iModel's coordinate space. */\n public readonly iModelTransform: Transform;\n /** Uniquely identifies this tree among all other tile trees associated with the iModel. */\n public readonly id: string;\n /** A 64-bit identifier for this tile tree, unique within the context of its [[IModelConnection]].\n * For a tile tree associated with a [[GeometricModelState]], this is the Id of the model. Other types of tile trees\n * typically use a transient Id obtained from [[IModelConnection.transientIds]].\n */\n public readonly modelId: Id64String;\n /** The length of time after which tiles belonging to this tree are considered elegible for disposal if they are no longer in use. */\n public readonly expirationTime: BeDuration;\n /** @internal */\n public get loadPriority(): TileLoadPriority { return this._loadPriority; }\n private readonly _loadPriority: TileLoadPriority;\n /** Optional tight bounding box around the entire contents of all of this tree's tiles. */\n public readonly contentRange?: ElementAlignedBox3d;\n\n /** The lowest-resolution tile in this tree. */\n public abstract get rootTile(): Tile;\n /** True if this tile tree contains 3d graphics. */\n public abstract get is3d(): boolean;\n /** Returns the maximum depth of this tree, if any. */\n public abstract get maxDepth(): number | undefined;\n\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. */\n public abstract get viewFlagOverrides(): ViewFlagOverrides;\n\n /** True if this tile tree has no bounds - e.g., a tile tree representing a globe is unbounded. */\n public get isContentUnbounded(): boolean {\n return false;\n }\n\n /** Implement this method to select tiles of appropriate resolution. */\n protected abstract _selectTiles(args: TileDrawArgs): Tile[];\n\n /** Produce graphics of appropriate resolution to be drawn in a [[Viewport]]. */\n public abstract draw(args: TileDrawArgs): void;\n\n /** Discard tiles and/or tile contents, presumably based on a least-recently-used and/or least-likely-to-be-needed criterion. */\n public abstract prune(): void;\n\n /** True if this tile tree contains 2d graphics. */\n public get is2d(): boolean { return !this.is3d; }\n /** @internal */\n public get isPointCloud(): boolean { return false; }\n /** @internal */\n public get clipVolume(): RenderClipVolume | undefined { return this._clipVolume; }\n\n /** The volume of space occupied by this tile tree. */\n public get range(): ElementAlignedBox3d { return this.rootTile.range; }\n /** The most recent time at which tiles [[selectTiles]] was called. */\n public get lastSelectedTime(): BeTimePoint { return this._lastSelected; }\n /** True if a tile and its child tiles should not be drawn simultaneously.\n * Default: true.\n */\n public get parentsAndChildrenExclusive(): boolean { return true; }\n\n /** @internal */\n public get layerHandler(): LayerTileTreeHandler | undefined { return undefined; }\n\n /** Constructor */\n protected constructor(params: TileTreeParams) {\n this._lastSelected = BeTimePoint.now();\n this.iModel = params.iModel;\n this.iModelTransform = params.location;\n this._clipVolume = params.clipVolume;\n this.modelId = params.modelId;\n this.id = params.id;\n this.contentRange = params.contentRange;\n\n const admin = IModelApp.tileAdmin;\n this._loadPriority = params.priority;\n this.expirationTime = params.expirationTime ?? admin.tileExpirationTime;\n }\n\n /** Selects tiles of appropriate resolution for some purpose like drawing to the screen, producing a shadow map, etc.\n * @note Do **not** override this method. Implement [[_selectTiles]].\n */\n public selectTiles(args: TileDrawArgs): Tile[] {\n this._lastSelected = BeTimePoint.now();\n const tiles = this._selectTiles(args);\n IModelApp.tileAdmin.addTilesForUser(args.context.viewport, tiles, args.readyTiles, args.touchedTiles);\n args.processSelectedTiles(tiles);\n return tiles;\n }\n\n /** True if [[dispose]] has been called on this tile tree. */\n public get isDisposed(): boolean { return this._isDisposed; }\n\n /** Dispose of this tree and any resources owned by it. This is typically invoked by a [[TileTreeOwner]]. */\n public [Symbol.dispose](): void {\n if (this.isDisposed)\n return;\n\n this._isDisposed = true;\n dispose(this.rootTile);\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n /** @internal */\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this.rootTile.collectStatistics(stats);\n }\n\n /** Returns the number of [[Tile]]s currently in memory belonging to this tree, primarily for debugging. */\n public countTiles(): number {\n return 1 + this.rootTile.countDescendants();\n }\n\n /** @internal */\n public accumulateTransformedRange(range: Range3d, matrix: Matrix4d, location: Transform, frustumPlanes?: FrustumPlanes): void {\n this.rootTile.extendRangeForContent(range, matrix, location, frustumPlanes);\n }\n\n /**\n * Return the transform from the tile tree's coordinate space to [ECEF](https://en.wikipedia.org/wiki/ECEF) (Earth Centered Earth Fixed) coordinates.\n * If a geographic coordinate system is present then this transform will be calculated at the tile tree center.\n * @beta\n */\n public async getEcefTransform(): Promise<Transform | undefined> {\n if (!this.iModel.ecefLocation)\n return undefined;\n\n let dbToEcef: Transform | undefined;\n const range = this.contentRange ? this.contentRange : this.range;\n const center = range.localXYZToWorld(.5, .5, .5);\n if (center) {\n this.iModelTransform.multiplyPoint3d(center, center);\n const ecefToDb = await calculateEcefToDbTransformAtLocation(center, this.iModel);\n dbToEcef = ecefToDb?.inverse();\n }\n if (!dbToEcef)\n dbToEcef = this.iModel.ecefLocation.getTransform();\n\n return dbToEcef.multiplyTransformTransform(this.iModelTransform);\n }\n\n /** Populate [[TileGeometryCollector.polyfaces]] with geometry obtained from this tile tree's tiles satisfying the collector's criteria.\n * The base implementation does nothing.\n * @see [[TileTreeReference.createGeometryTreeReference]] to attempt to create a TileTree that can collect geometry.\n * @beta\n */\n public collectTileGeometry(_collector: TileGeometryCollector): void {\n }\n\n /**\n * Invoked when a schedule script is edited.\n * Override to handle updates for affected elements or timelines.\n *\n * @internal\n */\n public async onScheduleEditingChanged(_changes: RenderSchedule.EditingChanges[]): Promise<void> {}\n /**\n * Invoked when a schedule script is committed during editing.\n * Override in specific tile tree types to handle the change.\n * @internal\n */\n public onScheduleEditingCommitted(): void {}\n}\n\n"]}
@@ -36,6 +36,10 @@ export declare enum TileGraphicType {
36
36
  export declare abstract class TileTreeReference {
37
37
  /** 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. */
38
38
  abstract get treeOwner(): TileTreeOwner;
39
+ /** If set to true, tile geometry will be reprojected using the tile's reprojection transform when geometry is collected from the referenced TileTree.
40
+ * @internal
41
+ */
42
+ reprojectGeometry?: boolean;
39
43
  /** Force a new tree owner / tile tree to be created for the current tile tree reference
40
44
  * @internal
41
45
  */
@@ -129,7 +133,7 @@ export declare abstract class TileTreeReference {
129
133
  * @beta
130
134
  */
131
135
  get planarClipMaskPriority(): number;
132
- /** @deprecated in 5.0 Use [addAttributions] instead. */
136
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
133
137
  addLogoCards(_cards: HTMLTableElement, _vp: ScreenViewport): void;
134
138
  /** Add attribution logo cards for the tile tree source logo cards to the viewport's logo div.
135
139
  * @beta
@@ -139,7 +143,7 @@ export declare abstract class TileTreeReference {
139
143
  * Return `undefined` if geometry collection is not supported.
140
144
  * @see [[createGeometryTreeReference]].
141
145
  */
142
- protected _createGeometryTreeReference(): GeometryTileTreeReference | undefined;
146
+ protected _createGeometryTreeReference(_options?: GeometryTileTreeReferenceOptions): GeometryTileTreeReference | undefined;
143
147
  /** If defined, supplies the implementation of [[GeometryTileTreeReference.collectTileGeometry]].
144
148
  */
145
149
  collectTileGeometry?: (collector: TileGeometryCollector) => void;
@@ -151,7 +155,7 @@ export declare abstract class TileTreeReference {
151
155
  * Currently, only terrain and reality model tiles support geometry collection.
152
156
  * @note Do not override this method - override [[_createGeometryTreeReference]] instead.
153
157
  */
154
- createGeometryTreeReference(): GeometryTileTreeReference | undefined;
158
+ createGeometryTreeReference(options?: GeometryTileTreeReferenceOptions): GeometryTileTreeReference | undefined;
155
159
  /** Create a [[TileTreeReference]] that displays a pre-defined [[RenderGraphic]].
156
160
  * The reference can be used to add dynamic content to a [[Viewport]]'s scene as a [[TiledGraphicsProvider]], as in the following example:
157
161
  * ```ts
@@ -169,4 +173,14 @@ export declare abstract class TileTreeReference {
169
173
  */
170
174
  static createFromRenderGraphic(args: RenderGraphicTileTreeArgs): TileTreeReference;
171
175
  }
176
+ /** Options for creating a [[GeometryTileTreeReference]].
177
+ * @public
178
+ */
179
+ export interface GeometryTileTreeReferenceOptions {
180
+ /** If set to true, tile geometry will be reprojected using the tile's reprojection transform when geometry is collected from the referenced TileTree.
181
+ * Currently only applies to point clouds, reality meshes, and terrain.
182
+ * @beta
183
+ */
184
+ reprojectGeometry?: boolean;
185
+ }
172
186
  //# 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":"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"}
@@ -37,6 +37,10 @@ var TileGraphicType;
37
37
  * @extensions
38
38
  */
39
39
  class TileTreeReference /* implements RenderMemory.Consumer */ {
40
+ /** If set to true, tile geometry will be reprojected using the tile's reprojection transform when geometry is collected from the referenced TileTree.
41
+ * @internal
42
+ */
43
+ reprojectGeometry;
40
44
  /** Force a new tree owner / tile tree to be created for the current tile tree reference
41
45
  * @internal
42
46
  */
@@ -219,7 +223,7 @@ class TileTreeReference /* implements RenderMemory.Consumer */ {
219
223
  * @beta
220
224
  */
221
225
  get planarClipMaskPriority() { return core_common_1.PlanarClipMaskPriority.DesignModel; }
222
- /** @deprecated in 5.0 Use [addAttributions] instead. */
226
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
223
227
  addLogoCards(_cards, _vp) { }
224
228
  /** Add attribution logo cards for the tile tree source logo cards to the viewport's logo div.
225
229
  * @beta
@@ -232,7 +236,7 @@ class TileTreeReference /* implements RenderMemory.Consumer */ {
232
236
  * Return `undefined` if geometry collection is not supported.
233
237
  * @see [[createGeometryTreeReference]].
234
238
  */
235
- _createGeometryTreeReference() {
239
+ _createGeometryTreeReference(_options) {
236
240
  return undefined;
237
241
  }
238
242
  /** If defined, supplies the implementation of [[GeometryTileTreeReference.collectTileGeometry]].
@@ -257,12 +261,14 @@ class TileTreeReference /* implements RenderMemory.Consumer */ {
257
261
  * Currently, only terrain and reality model tiles support geometry collection.
258
262
  * @note Do not override this method - override [[_createGeometryTreeReference]] instead.
259
263
  */
260
- createGeometryTreeReference() {
264
+ createGeometryTreeReference(options) {
261
265
  if (this.collectTileGeometry) {
262
266
  // Unclear why compiler doesn't detect that `this` satisfies the GeometryTileTreeReference interface...it must be looking only at the types, not this particular instance.
263
- return this;
267
+ const ref = this;
268
+ ref.reprojectGeometry = options?.reprojectGeometry;
269
+ return ref;
264
270
  }
265
- return this._createGeometryTreeReference();
271
+ return this._createGeometryTreeReference(options);
266
272
  }
267
273
  /** Create a [[TileTreeReference]] that displays a pre-defined [[RenderGraphic]].
268
274
  * The reference can be used to add dynamic content to a [[Viewport]]'s scene as a [[TiledGraphicsProvider]], as in the following example:
@@ -1 +1 @@
1
- {"version":3,"file":"TileTreeReference.js","sourceRoot":"","sources":["../../../src/tile/TileTreeReference.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { assert, BeTimePoint } from \"@itwin/core-bentley\";\nimport { Matrix4d, Range1d, Range3d, Transform } from \"@itwin/core-geometry\";\nimport { ElementAlignedBox3d, FeatureAppearanceProvider, FrustumPlanes, HiddenLine, PlanarClipMaskPriority, ViewFlagOverrides } from \"@itwin/core-common\";\nimport { HitDetail } from \"../HitDetail\";\nimport { FeatureSymbology } from \"../render/FeatureSymbology\";\nimport { RenderClipVolume } from \"../render/RenderClipVolume\";\nimport { RenderMemory } from \"../render/RenderMemory\";\nimport { DecorateContext, SceneContext } from \"../ViewContext\";\nimport { ScreenViewport } from \"../Viewport\";\nimport {\n DisclosedTileTreeSet, GeometryTileTreeReference, MapFeatureInfoOptions, MapLayerFeatureInfo, RenderGraphicTileTreeArgs, TileDrawArgs, TileGeometryCollector, TileTree, TileTreeLoadStatus, TileTreeOwner, tileTreeReferenceFromRenderGraphic,\n} from \"./internal\";\n\n/** Describes the type of graphics produced by a [[TileTreeReference]].\n * @public\n * @extensions\n */\nexport enum TileGraphicType {\n /** Rendered behind all other geometry without depth. */\n BackgroundMap = 0,\n /** Rendered with normal scene graphics. */\n Scene = 1,\n /** Rendered in front of all other geometry. */\n Overlay = 2,\n}\n\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\n * way of the tree's [[TileTreeOwner]].\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,\n * as a result of changing the RenderMode, or animation settings, or classification settings, etc.\n * A reference to a TileTree is typically associated with a [[ViewState]], a [[DisplayStyleState]], or a [[Viewport]].\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\n * differing levels of transparency.\n * @see [[TiledGraphicsProvider]] to supply custom [[TileTreeReference]]s to be drawn within a [[Viewport]].\n * @public\n * @extensions\n */\nexport abstract class TileTreeReference /* implements RenderMemory.Consumer */ {\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. */\n public abstract get treeOwner(): TileTreeOwner;\n\n /** Force a new tree owner / tile tree to be created for the current tile tree reference\n * @internal\n */\n public resetTreeOwner() {}\n\n /** Disclose *all* TileTrees use by this reference. This may include things like map tiles used for draping on terrain.\n * Override this and call super if you have such auxiliary trees.\n * @note Any tree *NOT* disclosed becomes a candidate for *purging* (being unloaded from memory along with all of its tiles and graphics).\n */\n public discloseTileTrees(trees: DisclosedTileTreeSet): void {\n const tree = this.treeOwner.tileTree;\n if (undefined !== tree)\n trees.add(tree);\n }\n\n /** Adds this reference's graphics to the scene. By default this invokes [[draw]]. */\n public addToScene(context: SceneContext): void {\n const args = this.createDrawArgs(context);\n if (undefined !== args)\n this.draw(args);\n }\n\n /** Adds this reference's graphics to the scene. By default this invokes [[TileTree.draw]] on the referenced TileTree, if it is loaded. */\n public draw(args: TileDrawArgs): void {\n args.tree.draw(args);\n }\n\n /** Return a tooltip describing the hit, or `undefined` if no tooltip can be supplied.\n * If you override this method, make sure to check that `hit` represents an entity belonging to your tile tree, e.g., by checking `hit.modelId` and `hit.sourceId`.\n * If you *don't* override this method, override [[canSupplyToolTip]] to return false.\n * Callers who want to obtain a tooltip should prefer [[getToolTipPromise]].\n */\n public async getToolTip(_hit: HitDetail): Promise<HTMLElement | string | undefined> { return undefined; }\n\n /** Return whether this TileTreeReference can supply a tooltip describing the entity represented by the specified hit.\n * [[getToolTipPromise]] calls [[getToolTip]] if and only if `canSupplyToolTip` returns `true`.\n * If your tile tree never supplies tooltips, override this to return `false`.\n */\n public canSupplyToolTip(_hit: HitDetail): boolean {\n return true;\n }\n\n /** Obtain a tooltip describing the specified `hit`, or `undefined` if this tile tree reference cannot supply a tooltip for the hit. */\n public getToolTipPromise(hit: HitDetail): Promise<HTMLElement | string | undefined> | undefined {\n return this.canSupplyToolTip(hit) ? this.getToolTip(hit).catch(() => undefined) : undefined;\n }\n\n /** Optionally return a MapLayerFeatureInfo object describing the hit.].\n * @alpha\n */\n public async getMapFeatureInfo(_hit: HitDetail, _options?: MapFeatureInfoOptions): Promise<MapLayerFeatureInfo[] | undefined> { return undefined; }\n\n /** Optionally add any decorations specific to this reference. For example, map tile trees may add a logo image and/or copyright attributions.\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.\n */\n public decorate(_context: DecorateContext): void { }\n\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.\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.\n */\n public unionFitRange(union: Range3d): void {\n const contentRange = this.computeWorldContentRange();\n if (!contentRange.isNull)\n union.extendRange(contentRange);\n }\n\n /** Record graphics memory consumed by this tile tree reference. */\n public collectStatistics(stats: RenderMemory.Statistics): void {\n const tree = this.treeOwner.tileTree;\n if (undefined !== tree)\n tree.collectStatistics(stats);\n }\n\n /** Return true if the tile tree is fully loaded and ready to draw.\n * The default implementation returns true if the tile tree loading process completed (whether it resulted in success or failure).\n * @note Do *not* override this property - override [[_isLoadingComplete]] instead..\n * @public\n */\n public get isLoadingComplete(): boolean {\n switch (this.treeOwner.loadStatus) {\n case TileTreeLoadStatus.NotLoaded:\n case TileTreeLoadStatus.Loading:\n return false;\n case TileTreeLoadStatus.NotFound:\n return true; // we tried, and failed, to load.\n case TileTreeLoadStatus.Loaded:\n return this._isLoadingComplete;\n }\n }\n\n /** Override if additional asynchronous loading is required after the tile tree is successfully loaded, to indicate when that loading has completed.\n * @public\n */\n protected get _isLoadingComplete(): boolean {\n return true;\n }\n\n /** Create context for drawing the tile tree, if it is ready for drawing.\n * TileTreeReferences can override individual portions of the context, e.g. apply their own transform.\n * Returns undefined if, e.g., the tile tree is not yet loaded.\n */\n public createDrawArgs(context: SceneContext): TileDrawArgs | undefined {\n const tree = this.treeOwner.load();\n if (undefined === tree)\n return undefined;\n\n return new TileDrawArgs({\n context,\n tree,\n now: BeTimePoint.now(),\n location: this.computeTransform(tree),\n viewFlagOverrides: this.getViewFlagOverrides(tree),\n clipVolume: this.getClipVolume(tree),\n parentsAndChildrenExclusive: tree.parentsAndChildrenExclusive,\n symbologyOverrides: this.getSymbologyOverrides(tree),\n appearanceProvider: this.getAppearanceProvider(tree),\n hiddenLineSettings: this.getHiddenLineSettings(tree),\n animationTransformNodeId: this.getAnimationTransformNodeId(tree),\n groupNodeId: this.getGroupNodeId(tree),\n transformFromIModel: this.getTransformFromIModel(),\n });\n }\n\n /** @beta */\n public getTransformFromIModel(): Transform | undefined { return undefined; }\n\n /** @internal */\n protected getAnimationTransformNodeId(_tree: TileTree): number | undefined {\n return undefined;\n }\n /** @internal */\n protected getGroupNodeId(_tree: TileTree): number | undefined {\n return undefined;\n }\n\n /** Supply transform from this tile tree reference's location to iModel coordinate space.\n * @returns undefined if the TileTree is not yet loaded.\n */\n public getLocation(): Transform | undefined {\n const tree = this.treeOwner.load();\n return undefined !== tree ? this.computeTransform(tree) : undefined;\n }\n\n /** Compute a transform from this tile tree reference's coordinate space to the [[IModelConnection]]'s coordinate space. */\n protected computeTransform(tree: TileTree): Transform {\n return tree.iModelTransform.clone();\n }\n\n /** Compute the range of this tile tree's contents in world coordinates.\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.\n */\n public computeWorldContentRange(): ElementAlignedBox3d {\n const range = new Range3d();\n const tree = this.treeOwner.tileTree;\n if (undefined !== tree && !tree.rootTile.contentRange.isNull)\n this.computeTransform(tree).multiplyRange(tree.rootTile.contentRange, range);\n\n return range;\n }\n\n /** Return the clip volume applied to this reference's tile tree, if any. */\n protected getClipVolume(tree: TileTree): RenderClipVolume | undefined {\n return tree.clipVolume;\n }\n\n /** Supply overrides that should be applied to the [[ViewState]]'s [ViewFlags]($common) when drawing this tile tree reference. */\n protected getViewFlagOverrides(tree: TileTree): ViewFlagOverrides {\n return tree.viewFlagOverrides;\n }\n\n /** Return overrides that *replace* any defined for the view. */\n protected getSymbologyOverrides(_tree: TileTree): FeatureSymbology.Overrides | undefined {\n return undefined;\n }\n\n /** Return a provider that can supplement the view's symbology overrides. */\n protected getAppearanceProvider(_tree: TileTree): FeatureAppearanceProvider | undefined {\n return undefined;\n }\n\n /** Return hidden line settings to replace those defined for the view. */\n protected getHiddenLineSettings(_tree: TileTree): HiddenLine.Settings | undefined {\n return undefined;\n }\n\n /* Extend range to include transformed range of this tile tree.\n * @internal\n */\n public accumulateTransformedRange(range: Range3d, matrix: Matrix4d, frustumPlanes?: FrustumPlanes) {\n const tree = this.treeOwner.tileTree;\n if (undefined === tree)\n return;\n\n const location = this.computeTransform(tree);\n tree.accumulateTransformedRange(range, matrix, location, frustumPlanes);\n }\n\n /** @internal */\n public getTerrainHeight(_terrainHeights: Range1d): void { }\n\n /** Return whether the geometry exposed by this tile tree reference should cast shadows on other geometry. */\n public get castsShadows(): boolean {\n return true;\n }\n\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 */\n public get isGlobal(): boolean { return false; }\n\n /** The [PlanarClipMaskPriority]($common) of this tile tree used to determine which tile trees contribute to a clip mask when\n * using [PlanarClipMaskMode.Priority]($common).\n * @beta\n */\n public get planarClipMaskPriority(): number { return PlanarClipMaskPriority.DesignModel; }\n\n /** @deprecated in 5.0 Use [addAttributions] instead. */\n public addLogoCards(_cards: HTMLTableElement, _vp: ScreenViewport): void { }\n\n /** Add attribution logo cards for the tile tree source logo cards to the viewport's logo div.\n * @beta\n */\n public async addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards, vp));\n }\n\n /** Create a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]].\n * Return `undefined` if geometry collection is not supported.\n * @see [[createGeometryTreeReference]].\n */\n protected _createGeometryTreeReference(): GeometryTileTreeReference | undefined {\n return undefined;\n }\n\n /** If defined, supplies the implementation of [[GeometryTileTreeReference.collectTileGeometry]].\n */\n public collectTileGeometry?: (collector: TileGeometryCollector) => void;\n\n /** A function that can be assigned to [[collectTileGeometry]] to enable geometry collection for references to tile trees that support geometry collection.\n */\n protected _collectTileGeometry(collector: TileGeometryCollector): void {\n const tree = this.treeOwner.load();\n switch (this.treeOwner.loadStatus) {\n case TileTreeLoadStatus.Loaded:\n assert(undefined !== tree);\n tree.collectTileGeometry(collector);\n break;\n case TileTreeLoadStatus.Loading:\n collector.markLoading();\n break;\n }\n }\n\n /** Obtain a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]], or\n * undefined if geometry collection is not supported.\n * Currently, only terrain and reality model tiles support geometry collection.\n * @note Do not override this method - override [[_createGeometryTreeReference]] instead.\n */\n public createGeometryTreeReference(): GeometryTileTreeReference | undefined {\n if (this.collectTileGeometry) {\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.\n return this as GeometryTileTreeReference;\n }\n\n return this._createGeometryTreeReference();\n }\n\n /** Create a [[TileTreeReference]] that displays a pre-defined [[RenderGraphic]].\n * The reference can be used to add dynamic content to a [[Viewport]]'s scene as a [[TiledGraphicsProvider]], as in the following example:\n * ```ts\n * [[include:TileTreeReference_createFromRenderGraphic]]\n *```\n * Or, it can be used as a [[DynamicSpatialClassifier]] to contextualize a reality model, like so:\n * ```ts\n * [[include:TileTreeReference_DynamicClassifier]]\n * ```\n * It can also be used to mask out portions of the background map or terrain via [PlanarClipMaskSettings]($common), as shown below:\n * ```ts\n * [[include:TileTreeReference_DynamicClipMask]]\n * ```\n * @beta\n */\n public static createFromRenderGraphic(args: RenderGraphicTileTreeArgs): TileTreeReference {\n return tileTreeReferenceFromRenderGraphic(args);\n }\n}\n"]}
1
+ {"version":3,"file":"TileTreeReference.js","sourceRoot":"","sources":["../../../src/tile/TileTreeReference.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\n\nimport { assert, BeTimePoint } from \"@itwin/core-bentley\";\nimport { Matrix4d, Range1d, Range3d, Transform } from \"@itwin/core-geometry\";\nimport { ElementAlignedBox3d, FeatureAppearanceProvider, FrustumPlanes, HiddenLine, PlanarClipMaskPriority, ViewFlagOverrides } from \"@itwin/core-common\";\nimport { HitDetail } from \"../HitDetail\";\nimport { FeatureSymbology } from \"../render/FeatureSymbology\";\nimport { RenderClipVolume } from \"../render/RenderClipVolume\";\nimport { RenderMemory } from \"../render/RenderMemory\";\nimport { DecorateContext, SceneContext } from \"../ViewContext\";\nimport { ScreenViewport } from \"../Viewport\";\nimport {\n DisclosedTileTreeSet, GeometryTileTreeReference, MapFeatureInfoOptions, MapLayerFeatureInfo, RenderGraphicTileTreeArgs, TileDrawArgs, TileGeometryCollector, TileTree, TileTreeLoadStatus, TileTreeOwner, tileTreeReferenceFromRenderGraphic,\n} from \"./internal\";\n\n/** Describes the type of graphics produced by a [[TileTreeReference]].\n * @public\n * @extensions\n */\nexport enum TileGraphicType {\n /** Rendered behind all other geometry without depth. */\n BackgroundMap = 0,\n /** Rendered with normal scene graphics. */\n Scene = 1,\n /** Rendered in front of all other geometry. */\n Overlay = 2,\n}\n\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\n * way of the tree's [[TileTreeOwner]].\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,\n * as a result of changing the RenderMode, or animation settings, or classification settings, etc.\n * A reference to a TileTree is typically associated with a [[ViewState]], a [[DisplayStyleState]], or a [[Viewport]].\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\n * differing levels of transparency.\n * @see [[TiledGraphicsProvider]] to supply custom [[TileTreeReference]]s to be drawn within a [[Viewport]].\n * @public\n * @extensions\n */\nexport abstract class TileTreeReference /* implements RenderMemory.Consumer */ {\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. */\n public abstract get treeOwner(): TileTreeOwner;\n\n /** If set to true, tile geometry will be reprojected using the tile's reprojection transform when geometry is collected from the referenced TileTree.\n * @internal\n */\n public reprojectGeometry?: boolean;\n\n /** Force a new tree owner / tile tree to be created for the current tile tree reference\n * @internal\n */\n public resetTreeOwner() {}\n\n /** Disclose *all* TileTrees use by this reference. This may include things like map tiles used for draping on terrain.\n * Override this and call super if you have such auxiliary trees.\n * @note Any tree *NOT* disclosed becomes a candidate for *purging* (being unloaded from memory along with all of its tiles and graphics).\n */\n public discloseTileTrees(trees: DisclosedTileTreeSet): void {\n const tree = this.treeOwner.tileTree;\n if (undefined !== tree)\n trees.add(tree);\n }\n\n /** Adds this reference's graphics to the scene. By default this invokes [[draw]]. */\n public addToScene(context: SceneContext): void {\n const args = this.createDrawArgs(context);\n if (undefined !== args)\n this.draw(args);\n }\n\n /** Adds this reference's graphics to the scene. By default this invokes [[TileTree.draw]] on the referenced TileTree, if it is loaded. */\n public draw(args: TileDrawArgs): void {\n args.tree.draw(args);\n }\n\n /** Return a tooltip describing the hit, or `undefined` if no tooltip can be supplied.\n * If you override this method, make sure to check that `hit` represents an entity belonging to your tile tree, e.g., by checking `hit.modelId` and `hit.sourceId`.\n * If you *don't* override this method, override [[canSupplyToolTip]] to return false.\n * Callers who want to obtain a tooltip should prefer [[getToolTipPromise]].\n */\n public async getToolTip(_hit: HitDetail): Promise<HTMLElement | string | undefined> { return undefined; }\n\n /** Return whether this TileTreeReference can supply a tooltip describing the entity represented by the specified hit.\n * [[getToolTipPromise]] calls [[getToolTip]] if and only if `canSupplyToolTip` returns `true`.\n * If your tile tree never supplies tooltips, override this to return `false`.\n */\n public canSupplyToolTip(_hit: HitDetail): boolean {\n return true;\n }\n\n /** Obtain a tooltip describing the specified `hit`, or `undefined` if this tile tree reference cannot supply a tooltip for the hit. */\n public getToolTipPromise(hit: HitDetail): Promise<HTMLElement | string | undefined> | undefined {\n return this.canSupplyToolTip(hit) ? this.getToolTip(hit).catch(() => undefined) : undefined;\n }\n\n /** Optionally return a MapLayerFeatureInfo object describing the hit.].\n * @alpha\n */\n public async getMapFeatureInfo(_hit: HitDetail, _options?: MapFeatureInfoOptions): Promise<MapLayerFeatureInfo[] | undefined> { return undefined; }\n\n /** Optionally add any decorations specific to this reference. For example, map tile trees may add a logo image and/or copyright attributions.\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.\n */\n public decorate(_context: DecorateContext): void { }\n\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.\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.\n */\n public unionFitRange(union: Range3d): void {\n const contentRange = this.computeWorldContentRange();\n if (!contentRange.isNull)\n union.extendRange(contentRange);\n }\n\n /** Record graphics memory consumed by this tile tree reference. */\n public collectStatistics(stats: RenderMemory.Statistics): void {\n const tree = this.treeOwner.tileTree;\n if (undefined !== tree)\n tree.collectStatistics(stats);\n }\n\n /** Return true if the tile tree is fully loaded and ready to draw.\n * The default implementation returns true if the tile tree loading process completed (whether it resulted in success or failure).\n * @note Do *not* override this property - override [[_isLoadingComplete]] instead..\n * @public\n */\n public get isLoadingComplete(): boolean {\n switch (this.treeOwner.loadStatus) {\n case TileTreeLoadStatus.NotLoaded:\n case TileTreeLoadStatus.Loading:\n return false;\n case TileTreeLoadStatus.NotFound:\n return true; // we tried, and failed, to load.\n case TileTreeLoadStatus.Loaded:\n return this._isLoadingComplete;\n }\n }\n\n /** Override if additional asynchronous loading is required after the tile tree is successfully loaded, to indicate when that loading has completed.\n * @public\n */\n protected get _isLoadingComplete(): boolean {\n return true;\n }\n\n /** Create context for drawing the tile tree, if it is ready for drawing.\n * TileTreeReferences can override individual portions of the context, e.g. apply their own transform.\n * Returns undefined if, e.g., the tile tree is not yet loaded.\n */\n public createDrawArgs(context: SceneContext): TileDrawArgs | undefined {\n const tree = this.treeOwner.load();\n if (undefined === tree)\n return undefined;\n\n return new TileDrawArgs({\n context,\n tree,\n now: BeTimePoint.now(),\n location: this.computeTransform(tree),\n viewFlagOverrides: this.getViewFlagOverrides(tree),\n clipVolume: this.getClipVolume(tree),\n parentsAndChildrenExclusive: tree.parentsAndChildrenExclusive,\n symbologyOverrides: this.getSymbologyOverrides(tree),\n appearanceProvider: this.getAppearanceProvider(tree),\n hiddenLineSettings: this.getHiddenLineSettings(tree),\n animationTransformNodeId: this.getAnimationTransformNodeId(tree),\n groupNodeId: this.getGroupNodeId(tree),\n transformFromIModel: this.getTransformFromIModel(),\n });\n }\n\n /** @beta */\n public getTransformFromIModel(): Transform | undefined { return undefined; }\n\n /** @internal */\n protected getAnimationTransformNodeId(_tree: TileTree): number | undefined {\n return undefined;\n }\n /** @internal */\n protected getGroupNodeId(_tree: TileTree): number | undefined {\n return undefined;\n }\n\n /** Supply transform from this tile tree reference's location to iModel coordinate space.\n * @returns undefined if the TileTree is not yet loaded.\n */\n public getLocation(): Transform | undefined {\n const tree = this.treeOwner.load();\n return undefined !== tree ? this.computeTransform(tree) : undefined;\n }\n\n /** Compute a transform from this tile tree reference's coordinate space to the [[IModelConnection]]'s coordinate space. */\n protected computeTransform(tree: TileTree): Transform {\n return tree.iModelTransform.clone();\n }\n\n /** Compute the range of this tile tree's contents in world coordinates.\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.\n */\n public computeWorldContentRange(): ElementAlignedBox3d {\n const range = new Range3d();\n const tree = this.treeOwner.tileTree;\n if (undefined !== tree && !tree.rootTile.contentRange.isNull)\n this.computeTransform(tree).multiplyRange(tree.rootTile.contentRange, range);\n\n return range;\n }\n\n /** Return the clip volume applied to this reference's tile tree, if any. */\n protected getClipVolume(tree: TileTree): RenderClipVolume | undefined {\n return tree.clipVolume;\n }\n\n /** Supply overrides that should be applied to the [[ViewState]]'s [ViewFlags]($common) when drawing this tile tree reference. */\n protected getViewFlagOverrides(tree: TileTree): ViewFlagOverrides {\n return tree.viewFlagOverrides;\n }\n\n /** Return overrides that *replace* any defined for the view. */\n protected getSymbologyOverrides(_tree: TileTree): FeatureSymbology.Overrides | undefined {\n return undefined;\n }\n\n /** Return a provider that can supplement the view's symbology overrides. */\n protected getAppearanceProvider(_tree: TileTree): FeatureAppearanceProvider | undefined {\n return undefined;\n }\n\n /** Return hidden line settings to replace those defined for the view. */\n protected getHiddenLineSettings(_tree: TileTree): HiddenLine.Settings | undefined {\n return undefined;\n }\n\n /* Extend range to include transformed range of this tile tree.\n * @internal\n */\n public accumulateTransformedRange(range: Range3d, matrix: Matrix4d, frustumPlanes?: FrustumPlanes) {\n const tree = this.treeOwner.tileTree;\n if (undefined === tree)\n return;\n\n const location = this.computeTransform(tree);\n tree.accumulateTransformedRange(range, matrix, location, frustumPlanes);\n }\n\n /** @internal */\n public getTerrainHeight(_terrainHeights: Range1d): void { }\n\n /** Return whether the geometry exposed by this tile tree reference should cast shadows on other geometry. */\n public get castsShadows(): boolean {\n return true;\n }\n\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 */\n public get isGlobal(): boolean { return false; }\n\n /** The [PlanarClipMaskPriority]($common) of this tile tree used to determine which tile trees contribute to a clip mask when\n * using [PlanarClipMaskMode.Priority]($common).\n * @beta\n */\n public get planarClipMaskPriority(): number { return PlanarClipMaskPriority.DesignModel; }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */\n public addLogoCards(_cards: HTMLTableElement, _vp: ScreenViewport): void { }\n\n /** Add attribution logo cards for the tile tree source logo cards to the viewport's logo div.\n * @beta\n */\n public async addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards, vp));\n }\n\n /** Create a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]].\n * Return `undefined` if geometry collection is not supported.\n * @see [[createGeometryTreeReference]].\n */\n protected _createGeometryTreeReference(_options?: GeometryTileTreeReferenceOptions): GeometryTileTreeReference | undefined {\n return undefined;\n }\n\n /** If defined, supplies the implementation of [[GeometryTileTreeReference.collectTileGeometry]].\n */\n public collectTileGeometry?: (collector: TileGeometryCollector) => void;\n\n /** A function that can be assigned to [[collectTileGeometry]] to enable geometry collection for references to tile trees that support geometry collection.\n */\n protected _collectTileGeometry(collector: TileGeometryCollector): void {\n const tree = this.treeOwner.load();\n switch (this.treeOwner.loadStatus) {\n case TileTreeLoadStatus.Loaded:\n assert(undefined !== tree);\n tree.collectTileGeometry(collector);\n break;\n case TileTreeLoadStatus.Loading:\n collector.markLoading();\n break;\n }\n }\n\n /** Obtain a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]], or\n * undefined if geometry collection is not supported.\n * Currently, only terrain and reality model tiles support geometry collection.\n * @note Do not override this method - override [[_createGeometryTreeReference]] instead.\n */\n public createGeometryTreeReference(options?: GeometryTileTreeReferenceOptions): GeometryTileTreeReference | undefined {\n if (this.collectTileGeometry) {\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.\n const ref = this as GeometryTileTreeReference;\n ref.reprojectGeometry = options?.reprojectGeometry;\n return ref;\n }\n\n return this._createGeometryTreeReference(options);\n }\n\n /** Create a [[TileTreeReference]] that displays a pre-defined [[RenderGraphic]].\n * The reference can be used to add dynamic content to a [[Viewport]]'s scene as a [[TiledGraphicsProvider]], as in the following example:\n * ```ts\n * [[include:TileTreeReference_createFromRenderGraphic]]\n *```\n * Or, it can be used as a [[DynamicSpatialClassifier]] to contextualize a reality model, like so:\n * ```ts\n * [[include:TileTreeReference_DynamicClassifier]]\n * ```\n * It can also be used to mask out portions of the background map or terrain via [PlanarClipMaskSettings]($common), as shown below:\n * ```ts\n * [[include:TileTreeReference_DynamicClipMask]]\n * ```\n * @beta\n */\n public static createFromRenderGraphic(args: RenderGraphicTileTreeArgs): TileTreeReference {\n return tileTreeReferenceFromRenderGraphic(args);\n }\n}\n\n/** Options for creating a [[GeometryTileTreeReference]].\n * @public\n */\nexport interface GeometryTileTreeReferenceOptions {\n /** If set to true, tile geometry will be reprojected using the tile's reprojection transform when geometry is collected from the referenced TileTree.\n * Currently only applies to point clouds, reality meshes, and terrain.\n * @beta\n */\n reprojectGeometry?: boolean;\n}\n"]}
@@ -174,7 +174,7 @@ class CesiumTerrainProvider extends internal_1.TerrainMeshProvider {
174
174
  this._assetId = opts.dataSource || core_common_1.CesiumTerrainAssetId.Default;
175
175
  this._tokenTimeOut = core_bentley_1.BeTimePoint.now().plus(CesiumTerrainProvider._tokenTimeoutInterval);
176
176
  }
177
- /** @deprecated in 5.0 Use [addAttributions] instead. */
177
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
178
178
  addLogoCards(cards) {
179
179
  if (cards.dataset.cesiumIonLogoCard)
180
180
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"CesiumTerrainProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/CesiumTerrainProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Tiles\n */\nimport { assert, BeDuration, BeTimePoint, ByteStream, JsonUtils, utf8ToString } from \"@itwin/core-bentley\";\nimport { Point2d, Point3d, Range1d, Vector3d } from \"@itwin/core-geometry\";\nimport { CesiumIonAssetId, CesiumTerrainAssetId, nextPoint3d64FromByteStream, OctEncodedNormal, QPoint2d } from \"@itwin/core-common\";\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\nimport { request, RequestOptions } from \"../../request/Request\";\nimport { ApproximateTerrainHeights } from \"../../ApproximateTerrainHeights\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { RealityMeshParams, RealityMeshParamsBuilder } from \"../../render/RealityMeshParams\";\nimport {\n GeographicTilingScheme, MapTile, MapTilingScheme, QuadId, ReadMeshArgs, RequestMeshDataArgs, TerrainMeshProvider,\n TerrainMeshProviderOptions, Tile, TileAvailability,\n} from \"../internal\";\nimport { ScreenViewport } from \"../../Viewport\";\n\n/** @internal */\nenum QuantizedMeshExtensionIds {\n OctEncodedNormals = 1,\n WaterMask = 2,\n Metadata = 4,\n}\n\n/** Return the URL for a Cesium ion asset from its asset ID and request Key.\n * @public\n */\nexport function getCesiumAssetUrl(osmAssetId: number, requestKey: string): string {\n return `$CesiumIonAsset=${osmAssetId}:${requestKey}`;\n}\n\n/** @internal */\nexport function getCesiumOSMBuildingsUrl(): string | undefined {\n const key = IModelApp.tileAdmin.cesiumIonKey;\n if (undefined === key)\n return undefined;\n\n return getCesiumAssetUrl(+CesiumIonAssetId.OSMBuildings, key);\n}\n\n/** @internal */\nexport async function getCesiumAccessTokenAndEndpointUrl(assetId: string, requestKey?: string): Promise<{ token?: string, url?: string }> {\n if (undefined === requestKey) {\n requestKey = IModelApp.tileAdmin.cesiumIonKey;\n if (undefined === requestKey)\n return {};\n }\n\n const requestTemplate = `https://api.cesium.com/v1/assets/${assetId}/endpoint?access_token={CesiumRequestToken}`;\n const apiUrl: string = requestTemplate.replace(\"{CesiumRequestToken}\", requestKey);\n\n try {\n const apiResponse = await request(apiUrl, \"json\");\n if (undefined === apiResponse || undefined === apiResponse.url) {\n assert(false);\n return {};\n }\n return { token: apiResponse.accessToken, url: apiResponse.url };\n } catch {\n assert(false);\n return {};\n }\n}\n\nlet notifiedTerrainError = false;\n\n// Notify - once per session - of failure to obtain Cesium terrain provider.\nfunction notifyTerrainError(detailedDescription?: string): void {\n if (notifiedTerrainError)\n return;\n\n notifiedTerrainError = true;\n IModelApp.notifications.displayMessage(MessageSeverity.Information, IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.CannotObtainTerrain`), detailedDescription);\n}\n\n/** @internal */\nexport async function getCesiumTerrainProvider(opts: TerrainMeshProviderOptions): Promise<TerrainMeshProvider | undefined> {\n const accessTokenAndEndpointUrl = await getCesiumAccessTokenAndEndpointUrl(opts.dataSource || CesiumTerrainAssetId.Default);\n if (!accessTokenAndEndpointUrl.token || !accessTokenAndEndpointUrl.url) {\n notifyTerrainError(IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.MissingCesiumToken`));\n return undefined;\n }\n\n let layers;\n try {\n const layerRequestOptions: RequestOptions = { headers: { authorization: `Bearer ${accessTokenAndEndpointUrl.token}` } };\n const layerUrl = `${accessTokenAndEndpointUrl.url}layer.json`;\n layers = await request(layerUrl, \"json\", layerRequestOptions);\n } catch {\n notifyTerrainError();\n return undefined;\n }\n\n if (undefined === layers || undefined === layers.tiles || undefined === layers.version) {\n notifyTerrainError();\n return undefined;\n }\n\n const tilingScheme = new GeographicTilingScheme();\n let tileAvailability;\n // When collecting tiles, only the highest resolution tiles are downloaded.\n // Because of that, the tile availability is often only populated by the\n // \"layer\" metadata. (i.e. not from higher resolution tiles metadata).\n // Unfortunately the \"layer\" metadata only cover the first 16 levels,\n // preventing the geometry collector from accessing to higher resolution tiles.\n // For now, the solution is to turn off tile availability check when collecting geometries.\n if (undefined !== layers.available && !opts.produceGeometry) {\n const availableTiles = layers.available;\n tileAvailability = new TileAvailability(tilingScheme, availableTiles.length);\n for (let level = 0; level < layers.available.length; level++) {\n const rangesAtLevel = availableTiles[level];\n for (const range of rangesAtLevel) {\n tileAvailability.addAvailableTileRange(level, range.startX, range.startY, range.endX, range.endY);\n }\n }\n }\n\n let tileUrlTemplate = accessTokenAndEndpointUrl.url + layers.tiles[0].replace(\"{version}\", layers.version);\n if (opts.wantNormals)\n tileUrlTemplate = tileUrlTemplate.replace(\"?\", \"?extensions=octvertexnormals-watermask-metadata&\");\n\n const maxDepth = JsonUtils.asInt(layers.maxzoom, 19);\n\n // TBD -- When we have an API extract the heights for the project from the terrain tiles - for use temporary Bing elevation.\n return new CesiumTerrainProvider(opts, accessTokenAndEndpointUrl.token, tileUrlTemplate, maxDepth, tilingScheme, tileAvailability, layers.metadataAvailability);\n}\n\nfunction zigZagDecode(value: number) {\n return (value >> 1) ^ (-(value & 1));\n}\n\n/**\n * Decodes delta and ZigZag encoded vertices. This modifies the buffers in place.\n *\n * @see {@link https://github.com/AnalyticalGraphicsInc/quantized-mesh|quantized-mesh-1.0 terrain format}\n */\nfunction zigZagDeltaDecode(uBuffer: Uint16Array, vBuffer: Uint16Array, heightBuffer: Uint16Array) {\n const count = uBuffer.length;\n let u = 0;\n let v = 0;\n let height = 0;\n\n for (let i = 0; i < count; ++i) {\n u += zigZagDecode(uBuffer[i]);\n v += zigZagDecode(vBuffer[i]);\n\n uBuffer[i] = u;\n vBuffer[i] = v;\n\n height += zigZagDecode(heightBuffer[i]);\n heightBuffer[i] = height;\n }\n}\n\n/** @internal */\nclass CesiumTerrainProvider extends TerrainMeshProvider {\n private _accessToken: string;\n private readonly _tileUrlTemplate: string;\n private readonly _maxDepth: number;\n private readonly _wantSkirts: boolean;\n private readonly _tilingScheme: MapTilingScheme;\n private readonly _tileAvailability?: TileAvailability;\n private readonly _metaDataAvailableLevel?: number;\n private readonly _exaggeration: number;\n private readonly _assetId: string;\n\n private static _scratchQPoint2d = QPoint2d.fromScalars(0, 0);\n private static _scratchPoint2d = Point2d.createZero();\n private static _scratchPoint = Point3d.createZero();\n private static _scratchNormal = Vector3d.createZero();\n private static _scratchHeightRange = Range1d.createNull();\n private static _tokenTimeoutInterval = BeDuration.fromSeconds(60 * 30); // Request a new access token every 30 minutes...\n private _tokenTimeOut: BeTimePoint;\n\n public override forceTileLoad(tile: Tile): boolean {\n // Force loading of the metadata availability tiles as these are required for determining the availability of descendants.\n const mapTile = tile as MapTile;\n return undefined !== this._metaDataAvailableLevel && mapTile.quadId.level === this._metaDataAvailableLevel && !mapTile.everLoaded;\n }\n\n constructor(opts: TerrainMeshProviderOptions, accessToken: string, tileUrlTemplate: string, maxDepth: number, tilingScheme: MapTilingScheme,\n tileAvailability: TileAvailability | undefined, metaDataAvailableLevel: number | undefined) {\n super();\n this._wantSkirts = opts.wantSkirts;\n this._exaggeration = opts.exaggeration;\n\n this._accessToken = accessToken;\n this._tileUrlTemplate = tileUrlTemplate;\n this._maxDepth = maxDepth;\n this._tilingScheme = tilingScheme;\n this._tileAvailability = tileAvailability;\n this._metaDataAvailableLevel = metaDataAvailableLevel;\n this._assetId = opts.dataSource || CesiumTerrainAssetId.Default;\n\n this._tokenTimeOut = BeTimePoint.now().plus(CesiumTerrainProvider._tokenTimeoutInterval);\n }\n\n /** @deprecated in 5.0 Use [addAttributions] instead. */\n public override addLogoCards(cards: HTMLTableElement): void {\n if (cards.dataset.cesiumIonLogoCard)\n return;\n\n cards.dataset.cesiumIonLogoCard = \"true\";\n let notice = IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.CesiumWorldTerrainAttribution\");\n if (this._assetId === CesiumTerrainAssetId.Bathymetry)\n notice = `${notice}\\n${IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.CesiumBathymetryAttribution\")}`;\n\n const card = IModelApp.makeLogoCard({ iconSrc: `${IModelApp.publicPath}images/cesium-ion.svg`, heading: \"Cesium Ion\", notice });\n cards.appendChild(card);\n }\n\n public override async addAttributions(cards: HTMLTableElement, _vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards));\n }\n\n\n public get maxDepth(): number { return this._maxDepth; }\n public get tilingScheme(): MapTilingScheme { return this._tilingScheme; }\n\n public override isTileAvailable(quadId: QuadId) {\n if (quadId.level > this.maxDepth)\n return false;\n\n return this._tileAvailability ? this._tileAvailability.isTileAvailable(quadId.level, quadId.column, quadId.row) : true;\n }\n\n public override async requestMeshData(args: RequestMeshDataArgs): Promise<Uint8Array | undefined> {\n const tile = args.tile;\n const quadId = tile.quadId;\n const tileUrl = this.constructUrl(quadId.row, quadId.column, quadId.level);\n const requestOptions: RequestOptions = {\n headers: {\n authorization: `Bearer ${this._accessToken}`,\n accept: \"application/vnd.quantized-mesh;\" /* extensions=octvertexnormals, */ + \"application/octet-stream;q=0.9,*/*;q=0.01\",\n },\n };\n\n try {\n const response = await request(tileUrl, \"arraybuffer\", requestOptions);\n return new Uint8Array(response);\n } catch {\n return undefined;\n }\n }\n\n public override async readMesh(args: ReadMeshArgs): Promise<RealityMeshParams | undefined> {\n // ###TODO why does he update the access token when reading the mesh instead of when requesting it?\n // This function only returns undefined if it fails to acquire token - but it doesn't need the token...\n if (BeTimePoint.now().milliseconds > this._tokenTimeOut.milliseconds) {\n const accessTokenAndEndpointUrl = await getCesiumAccessTokenAndEndpointUrl(this._assetId);\n if (!accessTokenAndEndpointUrl.token || args.isCanceled())\n return undefined;\n\n this._accessToken = accessTokenAndEndpointUrl.token;\n this._tokenTimeOut = BeTimePoint.now().plus(CesiumTerrainProvider._tokenTimeoutInterval);\n }\n\n const { data, tile } = args;\n assert(data instanceof Uint8Array);\n assert(tile instanceof MapTile);\n\n const blob = data;\n const streamBuffer = ByteStream.fromUint8Array(blob);\n const center = nextPoint3d64FromByteStream(streamBuffer);\n const quadId = QuadId.createFromContentId(tile.contentId);\n const skirtHeight = this.getLevelMaximumGeometricError(quadId.level + 1) * 10.0; // Add 1 to level to restore height calculation to before the quadId level was from root. (4326 unification)\n const minHeight = this._exaggeration * streamBuffer.readFloat32();\n const maxHeight = this._exaggeration * streamBuffer.readFloat32();\n const boundCenter = nextPoint3d64FromByteStream(streamBuffer);\n const boundRadius = streamBuffer.readFloat64();\n const horizonOcclusion = nextPoint3d64FromByteStream(streamBuffer);\n const terrainTile = tile;\n\n terrainTile.adjustHeights(minHeight, maxHeight);\n\n if (undefined === center || undefined === boundCenter || undefined === boundRadius || undefined === horizonOcclusion) { }\n const pointCount = streamBuffer.readUint32();\n const encodedVertexBuffer = new Uint16Array(blob.buffer, streamBuffer.curPos, pointCount * 3);\n streamBuffer.advance(pointCount * 6);\n\n const uBuffer = encodedVertexBuffer.subarray(0, pointCount);\n const vBuffer = encodedVertexBuffer.subarray(pointCount, 2 * pointCount);\n const heightBuffer = encodedVertexBuffer.subarray(pointCount * 2, 3 * pointCount);\n\n zigZagDeltaDecode(uBuffer, vBuffer, heightBuffer);\n\n // ###TODO: This alleges to handle 32-bit indices, but RealityMeshParams uses a Uint16Array to store indices...\n const typedArray = pointCount > 0xffff ? Uint32Array : Uint16Array;\n const bytesPerIndex = typedArray.BYTES_PER_ELEMENT;\n const triangleElements = 3;\n\n // skip over any additional padding that was added for 2/4 byte alignment\n if (streamBuffer.curPos % bytesPerIndex !== 0)\n streamBuffer.advance(bytesPerIndex - (streamBuffer.curPos % bytesPerIndex));\n\n const triangleCount = streamBuffer.readUint32();\n const indexCount = triangleCount * triangleElements;\n\n const getIndexArray = (numIndices: number) => {\n const indexArray = new typedArray(streamBuffer.arrayBuffer, streamBuffer.curPos, numIndices);\n streamBuffer.advance(numIndices * bytesPerIndex);\n return indexArray;\n };\n\n const indices = getIndexArray(indexCount);\n\n // High water mark decoding based on decompressIndices_ in webgl-loader's loader.js.\n // https://code.google.com/p/webgl-loader/source/browse/trunk/samples/loader.js?r=99#55\n // Copyright 2012 Google Inc., Apache 2.0 license.\n let highest = 0;\n const length = indices.length;\n for (let i = 0; i < length; ++i) {\n const code = indices[i];\n indices[i] = highest - code;\n if (code === 0) {\n ++highest;\n }\n }\n\n CesiumTerrainProvider._scratchHeightRange.low = minHeight - skirtHeight;\n CesiumTerrainProvider._scratchHeightRange.high = maxHeight;\n const projection = terrainTile.getProjection(CesiumTerrainProvider._scratchHeightRange);\n const uvScale = 1.0 / 32767.0;\n const heightScale = uvScale * (maxHeight - minHeight);\n\n const westCount = streamBuffer.readUint32(),\n westIndices = getIndexArray(westCount),\n southCount = streamBuffer.readUint32(),\n southIndices = getIndexArray(southCount),\n eastCount = streamBuffer.readUint32(),\n eastIndices = getIndexArray(eastCount),\n northCount = streamBuffer.readUint32(),\n northIndices = getIndexArray(northCount);\n\n // Extensions...\n let encodedNormalsBuffer;\n while (streamBuffer.curPos < streamBuffer.length) {\n const extensionId = streamBuffer.readUint8();\n const extensionLength = streamBuffer.readUint32();\n switch (extensionId) {\n case QuantizedMeshExtensionIds.OctEncodedNormals:\n assert(pointCount * 2 === extensionLength);\n encodedNormalsBuffer = new Uint8Array(streamBuffer.arrayBuffer, streamBuffer.curPos, extensionLength);\n streamBuffer.advance(extensionLength);\n break;\n\n case QuantizedMeshExtensionIds.Metadata:\n const stringLength = streamBuffer.readUint32();\n if (stringLength > 0) {\n const strData = streamBuffer.nextBytes(stringLength);\n const str = utf8ToString(strData);\n if (undefined !== str) {\n const metaData = JSON.parse(str);\n if (undefined !== metaData.available && undefined !== this._tileAvailability) {\n const availableTiles = metaData.available;\n for (let offset = 0; offset < availableTiles.length; ++offset) {\n const availableLevel = tile.depth + offset; // Our depth is includes root (1 + cesium Depth)\n const rangesAtLevel = availableTiles[offset];\n\n for (const range of rangesAtLevel)\n this._tileAvailability.addAvailableTileRange(availableLevel, range.startX, range.startY, range.endX, range.endY);\n }\n }\n }\n }\n\n break;\n default:\n streamBuffer.advance(extensionLength);\n break;\n }\n }\n\n let initialIndexCapacity = indexCount;\n let initialVertexCapacity = pointCount;\n if (this._wantSkirts) {\n initialIndexCapacity += 6 * (Math.max(0, northCount - 1) + Math.max(0, southCount - 1) + Math.max(0, eastCount - 1) + Math.max(0, westCount - 1));\n initialVertexCapacity += (northCount + southCount + eastCount + westCount);\n }\n\n const wantNormals = undefined !== encodedNormalsBuffer;\n const builder = new RealityMeshParamsBuilder({\n positionRange: projection.localRange,\n initialIndexCapacity,\n initialVertexCapacity,\n wantNormals,\n });\n\n for (let i = 0; i < indexCount; i += 3)\n builder.addTriangle(indices[i], indices[i + 1], indices[i + 2]);\n\n const position = new Point3d();\n const uv = new QPoint2d();\n const normal = new Vector3d();\n const worldToEcef = tile.iModel.getEcefTransform().matrix;\n for (let i = 0; i < pointCount; i++) {\n const u = uBuffer[i];\n const v = vBuffer[i];\n projection.getPoint(uvScale * u, uvScale * v, minHeight + heightBuffer[i] * heightScale, position);\n uv.setFromScalars(u * 2, v * 2);\n let oen;\n if (encodedNormalsBuffer) {\n const normalIndex = i * 2;\n OctEncodedNormal.decodeValue(encodedNormalsBuffer[normalIndex + 1] << 8 | encodedNormalsBuffer[normalIndex], normal);\n worldToEcef.multiplyTransposeVector(normal, normal);\n oen = OctEncodedNormal.encode(normal);\n }\n\n builder.addVertex(position, uv, oen);\n }\n\n if (!this._wantSkirts)\n return builder.finish();\n\n westIndices.sort((a, b) => vBuffer[a] - vBuffer[b]);\n eastIndices.sort((a, b) => vBuffer[a] - vBuffer[b]);\n northIndices.sort((a, b) => uBuffer[a] - uBuffer[b]);\n southIndices.sort((a, b) => uBuffer[a] - uBuffer[b]);\n\n const generateSkirts = (indexes: Uint16Array | Uint32Array) => {\n const quv = new QPoint2d();\n const param = new Point2d();\n for (let i = 0; i < indexes.length; i++) {\n const index = indexes[i];\n const uvIndex = index * 2;\n const height = minHeight + heightBuffer[index] * heightScale;\n\n quv.setFromScalars(builder.uvs.buffer.at(uvIndex), builder.uvs.buffer.at(uvIndex + 1));\n builder.uvs.params.unquantize(quv.x, quv.y, param);\n\n const oen = wantNormals && builder.normals ? builder.normals.at(index) : undefined;\n builder.addVertex(projection.getPoint(param.x, param.y, height - skirtHeight), quv, oen);\n\n if (i !== 0) {\n const nextPointIndex = builder.positions.length;\n builder.addTriangle(index, indexes[i - 1], nextPointIndex - 2);\n builder.addTriangle(index, nextPointIndex - 2, nextPointIndex - 1);\n }\n }\n };\n\n generateSkirts(westIndices);\n generateSkirts(eastIndices);\n generateSkirts(southIndices);\n generateSkirts(northIndices);\n\n return builder.finish();\n }\n\n public constructUrl(row: number, column: number, zoomLevel: number): string {\n return this._tileUrlTemplate.replace(\"{z}\", zoomLevel.toString()).replace(\"{x}\", column.toString()).replace(\"{y}\", row.toString());\n }\n\n /**\n * Specifies the quality of terrain created from heightmaps. A value of 1.0 will\n * ensure that adjacent heightmap vertices are separated by no more than\n * screen pixels and will probably go very slowly.\n * A value of 0.5 will cut the estimated level zero geometric error in half, allowing twice the\n * screen pixels between adjacent heightmap vertices and thus rendering more quickly.\n * @type {Number}\n */\n public readonly heightmapTerrainQuality = 0.25;\n\n /**\n * Determines an appropriate geometric error estimate when the geometry comes from a heightmap.\n *\n * @param {Ellipsoid} ellipsoid The ellipsoid to which the terrain is attached.\n * @param {Number} tileImageWidth The width, in pixels, of the heightmap associated with a single tile.\n * @param {Number} numberOfTilesAtLevelZero The number of tiles in the horizontal direction at tile level zero.\n * @returns {Number} An estimated geometric error.\n */\n public getEstimatedLevelZeroGeometricErrorForAHeightmap(ellipsoidMaximumRadius = 6378137, tileImageWidth = 65, numberOfTilesAtLevelZero = 2) {\n return ellipsoidMaximumRadius * 2 * Math.PI * this.heightmapTerrainQuality / (tileImageWidth * numberOfTilesAtLevelZero);\n }\n\n public getLevelMaximumGeometricError(level: number) {\n return this.getEstimatedLevelZeroGeometricErrorForAHeightmap() / (1 << level);\n }\n\n public getHeightRange(parentRange: Range1d, quadId: QuadId): Range1d {\n const heightRange = quadId.level <= 6 ? ApproximateTerrainHeights.instance.getTileHeightRange(quadId) : undefined;\n\n return undefined === heightRange ? parentRange : heightRange;\n }\n}\n"]}
1
+ {"version":3,"file":"CesiumTerrainProvider.js","sourceRoot":"","sources":["../../../../src/tile/map/CesiumTerrainProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Tiles\n */\nimport { assert, BeDuration, BeTimePoint, ByteStream, JsonUtils, utf8ToString } from \"@itwin/core-bentley\";\nimport { Point2d, Point3d, Range1d, Vector3d } from \"@itwin/core-geometry\";\nimport { CesiumIonAssetId, CesiumTerrainAssetId, nextPoint3d64FromByteStream, OctEncodedNormal, QPoint2d } from \"@itwin/core-common\";\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\nimport { request, RequestOptions } from \"../../request/Request\";\nimport { ApproximateTerrainHeights } from \"../../ApproximateTerrainHeights\";\nimport { IModelApp } from \"../../IModelApp\";\nimport { RealityMeshParams, RealityMeshParamsBuilder } from \"../../render/RealityMeshParams\";\nimport {\n GeographicTilingScheme, MapTile, MapTilingScheme, QuadId, ReadMeshArgs, RequestMeshDataArgs, TerrainMeshProvider,\n TerrainMeshProviderOptions, Tile, TileAvailability,\n} from \"../internal\";\nimport { ScreenViewport } from \"../../Viewport\";\n\n/** @internal */\nenum QuantizedMeshExtensionIds {\n OctEncodedNormals = 1,\n WaterMask = 2,\n Metadata = 4,\n}\n\n/** Return the URL for a Cesium ion asset from its asset ID and request Key.\n * @public\n */\nexport function getCesiumAssetUrl(osmAssetId: number, requestKey: string): string {\n return `$CesiumIonAsset=${osmAssetId}:${requestKey}`;\n}\n\n/** @internal */\nexport function getCesiumOSMBuildingsUrl(): string | undefined {\n const key = IModelApp.tileAdmin.cesiumIonKey;\n if (undefined === key)\n return undefined;\n\n return getCesiumAssetUrl(+CesiumIonAssetId.OSMBuildings, key);\n}\n\n/** @internal */\nexport async function getCesiumAccessTokenAndEndpointUrl(assetId: string, requestKey?: string): Promise<{ token?: string, url?: string }> {\n if (undefined === requestKey) {\n requestKey = IModelApp.tileAdmin.cesiumIonKey;\n if (undefined === requestKey)\n return {};\n }\n\n const requestTemplate = `https://api.cesium.com/v1/assets/${assetId}/endpoint?access_token={CesiumRequestToken}`;\n const apiUrl: string = requestTemplate.replace(\"{CesiumRequestToken}\", requestKey);\n\n try {\n const apiResponse = await request(apiUrl, \"json\");\n if (undefined === apiResponse || undefined === apiResponse.url) {\n assert(false);\n return {};\n }\n return { token: apiResponse.accessToken, url: apiResponse.url };\n } catch {\n assert(false);\n return {};\n }\n}\n\nlet notifiedTerrainError = false;\n\n// Notify - once per session - of failure to obtain Cesium terrain provider.\nfunction notifyTerrainError(detailedDescription?: string): void {\n if (notifiedTerrainError)\n return;\n\n notifiedTerrainError = true;\n IModelApp.notifications.displayMessage(MessageSeverity.Information, IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.CannotObtainTerrain`), detailedDescription);\n}\n\n/** @internal */\nexport async function getCesiumTerrainProvider(opts: TerrainMeshProviderOptions): Promise<TerrainMeshProvider | undefined> {\n const accessTokenAndEndpointUrl = await getCesiumAccessTokenAndEndpointUrl(opts.dataSource || CesiumTerrainAssetId.Default);\n if (!accessTokenAndEndpointUrl.token || !accessTokenAndEndpointUrl.url) {\n notifyTerrainError(IModelApp.localization.getLocalizedString(`iModelJs:BackgroundMap.MissingCesiumToken`));\n return undefined;\n }\n\n let layers;\n try {\n const layerRequestOptions: RequestOptions = { headers: { authorization: `Bearer ${accessTokenAndEndpointUrl.token}` } };\n const layerUrl = `${accessTokenAndEndpointUrl.url}layer.json`;\n layers = await request(layerUrl, \"json\", layerRequestOptions);\n } catch {\n notifyTerrainError();\n return undefined;\n }\n\n if (undefined === layers || undefined === layers.tiles || undefined === layers.version) {\n notifyTerrainError();\n return undefined;\n }\n\n const tilingScheme = new GeographicTilingScheme();\n let tileAvailability;\n // When collecting tiles, only the highest resolution tiles are downloaded.\n // Because of that, the tile availability is often only populated by the\n // \"layer\" metadata. (i.e. not from higher resolution tiles metadata).\n // Unfortunately the \"layer\" metadata only cover the first 16 levels,\n // preventing the geometry collector from accessing to higher resolution tiles.\n // For now, the solution is to turn off tile availability check when collecting geometries.\n if (undefined !== layers.available && !opts.produceGeometry) {\n const availableTiles = layers.available;\n tileAvailability = new TileAvailability(tilingScheme, availableTiles.length);\n for (let level = 0; level < layers.available.length; level++) {\n const rangesAtLevel = availableTiles[level];\n for (const range of rangesAtLevel) {\n tileAvailability.addAvailableTileRange(level, range.startX, range.startY, range.endX, range.endY);\n }\n }\n }\n\n let tileUrlTemplate = accessTokenAndEndpointUrl.url + layers.tiles[0].replace(\"{version}\", layers.version);\n if (opts.wantNormals)\n tileUrlTemplate = tileUrlTemplate.replace(\"?\", \"?extensions=octvertexnormals-watermask-metadata&\");\n\n const maxDepth = JsonUtils.asInt(layers.maxzoom, 19);\n\n // TBD -- When we have an API extract the heights for the project from the terrain tiles - for use temporary Bing elevation.\n return new CesiumTerrainProvider(opts, accessTokenAndEndpointUrl.token, tileUrlTemplate, maxDepth, tilingScheme, tileAvailability, layers.metadataAvailability);\n}\n\nfunction zigZagDecode(value: number) {\n return (value >> 1) ^ (-(value & 1));\n}\n\n/**\n * Decodes delta and ZigZag encoded vertices. This modifies the buffers in place.\n *\n * @see {@link https://github.com/AnalyticalGraphicsInc/quantized-mesh|quantized-mesh-1.0 terrain format}\n */\nfunction zigZagDeltaDecode(uBuffer: Uint16Array, vBuffer: Uint16Array, heightBuffer: Uint16Array) {\n const count = uBuffer.length;\n let u = 0;\n let v = 0;\n let height = 0;\n\n for (let i = 0; i < count; ++i) {\n u += zigZagDecode(uBuffer[i]);\n v += zigZagDecode(vBuffer[i]);\n\n uBuffer[i] = u;\n vBuffer[i] = v;\n\n height += zigZagDecode(heightBuffer[i]);\n heightBuffer[i] = height;\n }\n}\n\n/** @internal */\nclass CesiumTerrainProvider extends TerrainMeshProvider {\n private _accessToken: string;\n private readonly _tileUrlTemplate: string;\n private readonly _maxDepth: number;\n private readonly _wantSkirts: boolean;\n private readonly _tilingScheme: MapTilingScheme;\n private readonly _tileAvailability?: TileAvailability;\n private readonly _metaDataAvailableLevel?: number;\n private readonly _exaggeration: number;\n private readonly _assetId: string;\n\n private static _scratchQPoint2d = QPoint2d.fromScalars(0, 0);\n private static _scratchPoint2d = Point2d.createZero();\n private static _scratchPoint = Point3d.createZero();\n private static _scratchNormal = Vector3d.createZero();\n private static _scratchHeightRange = Range1d.createNull();\n private static _tokenTimeoutInterval = BeDuration.fromSeconds(60 * 30); // Request a new access token every 30 minutes...\n private _tokenTimeOut: BeTimePoint;\n\n public override forceTileLoad(tile: Tile): boolean {\n // Force loading of the metadata availability tiles as these are required for determining the availability of descendants.\n const mapTile = tile as MapTile;\n return undefined !== this._metaDataAvailableLevel && mapTile.quadId.level === this._metaDataAvailableLevel && !mapTile.everLoaded;\n }\n\n constructor(opts: TerrainMeshProviderOptions, accessToken: string, tileUrlTemplate: string, maxDepth: number, tilingScheme: MapTilingScheme,\n tileAvailability: TileAvailability | undefined, metaDataAvailableLevel: number | undefined) {\n super();\n this._wantSkirts = opts.wantSkirts;\n this._exaggeration = opts.exaggeration;\n\n this._accessToken = accessToken;\n this._tileUrlTemplate = tileUrlTemplate;\n this._maxDepth = maxDepth;\n this._tilingScheme = tilingScheme;\n this._tileAvailability = tileAvailability;\n this._metaDataAvailableLevel = metaDataAvailableLevel;\n this._assetId = opts.dataSource || CesiumTerrainAssetId.Default;\n\n this._tokenTimeOut = BeTimePoint.now().plus(CesiumTerrainProvider._tokenTimeoutInterval);\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */\n public override addLogoCards(cards: HTMLTableElement): void {\n if (cards.dataset.cesiumIonLogoCard)\n return;\n\n cards.dataset.cesiumIonLogoCard = \"true\";\n let notice = IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.CesiumWorldTerrainAttribution\");\n if (this._assetId === CesiumTerrainAssetId.Bathymetry)\n notice = `${notice}\\n${IModelApp.localization.getLocalizedString(\"iModelJs:BackgroundMap.CesiumBathymetryAttribution\")}`;\n\n const card = IModelApp.makeLogoCard({ iconSrc: `${IModelApp.publicPath}images/cesium-ion.svg`, heading: \"Cesium Ion\", notice });\n cards.appendChild(card);\n }\n\n public override async addAttributions(cards: HTMLTableElement, _vp: ScreenViewport): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return Promise.resolve(this.addLogoCards(cards));\n }\n\n\n public get maxDepth(): number { return this._maxDepth; }\n public get tilingScheme(): MapTilingScheme { return this._tilingScheme; }\n\n public override isTileAvailable(quadId: QuadId) {\n if (quadId.level > this.maxDepth)\n return false;\n\n return this._tileAvailability ? this._tileAvailability.isTileAvailable(quadId.level, quadId.column, quadId.row) : true;\n }\n\n public override async requestMeshData(args: RequestMeshDataArgs): Promise<Uint8Array | undefined> {\n const tile = args.tile;\n const quadId = tile.quadId;\n const tileUrl = this.constructUrl(quadId.row, quadId.column, quadId.level);\n const requestOptions: RequestOptions = {\n headers: {\n authorization: `Bearer ${this._accessToken}`,\n accept: \"application/vnd.quantized-mesh;\" /* extensions=octvertexnormals, */ + \"application/octet-stream;q=0.9,*/*;q=0.01\",\n },\n };\n\n try {\n const response = await request(tileUrl, \"arraybuffer\", requestOptions);\n return new Uint8Array(response);\n } catch {\n return undefined;\n }\n }\n\n public override async readMesh(args: ReadMeshArgs): Promise<RealityMeshParams | undefined> {\n // ###TODO why does he update the access token when reading the mesh instead of when requesting it?\n // This function only returns undefined if it fails to acquire token - but it doesn't need the token...\n if (BeTimePoint.now().milliseconds > this._tokenTimeOut.milliseconds) {\n const accessTokenAndEndpointUrl = await getCesiumAccessTokenAndEndpointUrl(this._assetId);\n if (!accessTokenAndEndpointUrl.token || args.isCanceled())\n return undefined;\n\n this._accessToken = accessTokenAndEndpointUrl.token;\n this._tokenTimeOut = BeTimePoint.now().plus(CesiumTerrainProvider._tokenTimeoutInterval);\n }\n\n const { data, tile } = args;\n assert(data instanceof Uint8Array);\n assert(tile instanceof MapTile);\n\n const blob = data;\n const streamBuffer = ByteStream.fromUint8Array(blob);\n const center = nextPoint3d64FromByteStream(streamBuffer);\n const quadId = QuadId.createFromContentId(tile.contentId);\n const skirtHeight = this.getLevelMaximumGeometricError(quadId.level + 1) * 10.0; // Add 1 to level to restore height calculation to before the quadId level was from root. (4326 unification)\n const minHeight = this._exaggeration * streamBuffer.readFloat32();\n const maxHeight = this._exaggeration * streamBuffer.readFloat32();\n const boundCenter = nextPoint3d64FromByteStream(streamBuffer);\n const boundRadius = streamBuffer.readFloat64();\n const horizonOcclusion = nextPoint3d64FromByteStream(streamBuffer);\n const terrainTile = tile;\n\n terrainTile.adjustHeights(minHeight, maxHeight);\n\n if (undefined === center || undefined === boundCenter || undefined === boundRadius || undefined === horizonOcclusion) { }\n const pointCount = streamBuffer.readUint32();\n const encodedVertexBuffer = new Uint16Array(blob.buffer, streamBuffer.curPos, pointCount * 3);\n streamBuffer.advance(pointCount * 6);\n\n const uBuffer = encodedVertexBuffer.subarray(0, pointCount);\n const vBuffer = encodedVertexBuffer.subarray(pointCount, 2 * pointCount);\n const heightBuffer = encodedVertexBuffer.subarray(pointCount * 2, 3 * pointCount);\n\n zigZagDeltaDecode(uBuffer, vBuffer, heightBuffer);\n\n // ###TODO: This alleges to handle 32-bit indices, but RealityMeshParams uses a Uint16Array to store indices...\n const typedArray = pointCount > 0xffff ? Uint32Array : Uint16Array;\n const bytesPerIndex = typedArray.BYTES_PER_ELEMENT;\n const triangleElements = 3;\n\n // skip over any additional padding that was added for 2/4 byte alignment\n if (streamBuffer.curPos % bytesPerIndex !== 0)\n streamBuffer.advance(bytesPerIndex - (streamBuffer.curPos % bytesPerIndex));\n\n const triangleCount = streamBuffer.readUint32();\n const indexCount = triangleCount * triangleElements;\n\n const getIndexArray = (numIndices: number) => {\n const indexArray = new typedArray(streamBuffer.arrayBuffer, streamBuffer.curPos, numIndices);\n streamBuffer.advance(numIndices * bytesPerIndex);\n return indexArray;\n };\n\n const indices = getIndexArray(indexCount);\n\n // High water mark decoding based on decompressIndices_ in webgl-loader's loader.js.\n // https://code.google.com/p/webgl-loader/source/browse/trunk/samples/loader.js?r=99#55\n // Copyright 2012 Google Inc., Apache 2.0 license.\n let highest = 0;\n const length = indices.length;\n for (let i = 0; i < length; ++i) {\n const code = indices[i];\n indices[i] = highest - code;\n if (code === 0) {\n ++highest;\n }\n }\n\n CesiumTerrainProvider._scratchHeightRange.low = minHeight - skirtHeight;\n CesiumTerrainProvider._scratchHeightRange.high = maxHeight;\n const projection = terrainTile.getProjection(CesiumTerrainProvider._scratchHeightRange);\n const uvScale = 1.0 / 32767.0;\n const heightScale = uvScale * (maxHeight - minHeight);\n\n const westCount = streamBuffer.readUint32(),\n westIndices = getIndexArray(westCount),\n southCount = streamBuffer.readUint32(),\n southIndices = getIndexArray(southCount),\n eastCount = streamBuffer.readUint32(),\n eastIndices = getIndexArray(eastCount),\n northCount = streamBuffer.readUint32(),\n northIndices = getIndexArray(northCount);\n\n // Extensions...\n let encodedNormalsBuffer;\n while (streamBuffer.curPos < streamBuffer.length) {\n const extensionId = streamBuffer.readUint8();\n const extensionLength = streamBuffer.readUint32();\n switch (extensionId) {\n case QuantizedMeshExtensionIds.OctEncodedNormals:\n assert(pointCount * 2 === extensionLength);\n encodedNormalsBuffer = new Uint8Array(streamBuffer.arrayBuffer, streamBuffer.curPos, extensionLength);\n streamBuffer.advance(extensionLength);\n break;\n\n case QuantizedMeshExtensionIds.Metadata:\n const stringLength = streamBuffer.readUint32();\n if (stringLength > 0) {\n const strData = streamBuffer.nextBytes(stringLength);\n const str = utf8ToString(strData);\n if (undefined !== str) {\n const metaData = JSON.parse(str);\n if (undefined !== metaData.available && undefined !== this._tileAvailability) {\n const availableTiles = metaData.available;\n for (let offset = 0; offset < availableTiles.length; ++offset) {\n const availableLevel = tile.depth + offset; // Our depth is includes root (1 + cesium Depth)\n const rangesAtLevel = availableTiles[offset];\n\n for (const range of rangesAtLevel)\n this._tileAvailability.addAvailableTileRange(availableLevel, range.startX, range.startY, range.endX, range.endY);\n }\n }\n }\n }\n\n break;\n default:\n streamBuffer.advance(extensionLength);\n break;\n }\n }\n\n let initialIndexCapacity = indexCount;\n let initialVertexCapacity = pointCount;\n if (this._wantSkirts) {\n initialIndexCapacity += 6 * (Math.max(0, northCount - 1) + Math.max(0, southCount - 1) + Math.max(0, eastCount - 1) + Math.max(0, westCount - 1));\n initialVertexCapacity += (northCount + southCount + eastCount + westCount);\n }\n\n const wantNormals = undefined !== encodedNormalsBuffer;\n const builder = new RealityMeshParamsBuilder({\n positionRange: projection.localRange,\n initialIndexCapacity,\n initialVertexCapacity,\n wantNormals,\n });\n\n for (let i = 0; i < indexCount; i += 3)\n builder.addTriangle(indices[i], indices[i + 1], indices[i + 2]);\n\n const position = new Point3d();\n const uv = new QPoint2d();\n const normal = new Vector3d();\n const worldToEcef = tile.iModel.getEcefTransform().matrix;\n for (let i = 0; i < pointCount; i++) {\n const u = uBuffer[i];\n const v = vBuffer[i];\n projection.getPoint(uvScale * u, uvScale * v, minHeight + heightBuffer[i] * heightScale, position);\n uv.setFromScalars(u * 2, v * 2);\n let oen;\n if (encodedNormalsBuffer) {\n const normalIndex = i * 2;\n OctEncodedNormal.decodeValue(encodedNormalsBuffer[normalIndex + 1] << 8 | encodedNormalsBuffer[normalIndex], normal);\n worldToEcef.multiplyTransposeVector(normal, normal);\n oen = OctEncodedNormal.encode(normal);\n }\n\n builder.addVertex(position, uv, oen);\n }\n\n if (!this._wantSkirts)\n return builder.finish();\n\n westIndices.sort((a, b) => vBuffer[a] - vBuffer[b]);\n eastIndices.sort((a, b) => vBuffer[a] - vBuffer[b]);\n northIndices.sort((a, b) => uBuffer[a] - uBuffer[b]);\n southIndices.sort((a, b) => uBuffer[a] - uBuffer[b]);\n\n const generateSkirts = (indexes: Uint16Array | Uint32Array) => {\n const quv = new QPoint2d();\n const param = new Point2d();\n for (let i = 0; i < indexes.length; i++) {\n const index = indexes[i];\n const uvIndex = index * 2;\n const height = minHeight + heightBuffer[index] * heightScale;\n\n quv.setFromScalars(builder.uvs.buffer.at(uvIndex), builder.uvs.buffer.at(uvIndex + 1));\n builder.uvs.params.unquantize(quv.x, quv.y, param);\n\n const oen = wantNormals && builder.normals ? builder.normals.at(index) : undefined;\n builder.addVertex(projection.getPoint(param.x, param.y, height - skirtHeight), quv, oen);\n\n if (i !== 0) {\n const nextPointIndex = builder.positions.length;\n builder.addTriangle(index, indexes[i - 1], nextPointIndex - 2);\n builder.addTriangle(index, nextPointIndex - 2, nextPointIndex - 1);\n }\n }\n };\n\n generateSkirts(westIndices);\n generateSkirts(eastIndices);\n generateSkirts(southIndices);\n generateSkirts(northIndices);\n\n return builder.finish();\n }\n\n public constructUrl(row: number, column: number, zoomLevel: number): string {\n return this._tileUrlTemplate.replace(\"{z}\", zoomLevel.toString()).replace(\"{x}\", column.toString()).replace(\"{y}\", row.toString());\n }\n\n /**\n * Specifies the quality of terrain created from heightmaps. A value of 1.0 will\n * ensure that adjacent heightmap vertices are separated by no more than\n * screen pixels and will probably go very slowly.\n * A value of 0.5 will cut the estimated level zero geometric error in half, allowing twice the\n * screen pixels between adjacent heightmap vertices and thus rendering more quickly.\n * @type {Number}\n */\n public readonly heightmapTerrainQuality = 0.25;\n\n /**\n * Determines an appropriate geometric error estimate when the geometry comes from a heightmap.\n *\n * @param {Ellipsoid} ellipsoid The ellipsoid to which the terrain is attached.\n * @param {Number} tileImageWidth The width, in pixels, of the heightmap associated with a single tile.\n * @param {Number} numberOfTilesAtLevelZero The number of tiles in the horizontal direction at tile level zero.\n * @returns {Number} An estimated geometric error.\n */\n public getEstimatedLevelZeroGeometricErrorForAHeightmap(ellipsoidMaximumRadius = 6378137, tileImageWidth = 65, numberOfTilesAtLevelZero = 2) {\n return ellipsoidMaximumRadius * 2 * Math.PI * this.heightmapTerrainQuality / (tileImageWidth * numberOfTilesAtLevelZero);\n }\n\n public getLevelMaximumGeometricError(level: number) {\n return this.getEstimatedLevelZeroGeometricErrorForAHeightmap() / (1 << level);\n }\n\n public getHeightRange(parentRange: Range1d, quadId: QuadId): Range1d {\n const heightRange = quadId.level <= 6 ? ApproximateTerrainHeights.instance.getTileHeightRange(quadId) : undefined;\n\n return undefined === heightRange ? parentRange : heightRange;\n }\n}\n"]}
@@ -67,7 +67,7 @@ export declare class ImageryMapTileTree extends RealityTileTree {
67
67
  private _imageryLoader;
68
68
  constructor(params: RealityTileTreeParams, _imageryLoader: ImageryTileLoader);
69
69
  get tilingScheme(): MapTilingScheme;
70
- /** @deprecated in 5.0 Use [addAttributions] instead. */
70
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
71
71
  addLogoCards(cards: HTMLTableElement, vp: ScreenViewport): void;
72
72
  addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void>;
73
73
  getTileRectangle(quadId: QuadId): MapCartoRectangle;
@@ -90,7 +90,7 @@ declare class ImageryTileLoader extends RealityTileLoader {
90
90
  get maxDepth(): number;
91
91
  get minDepth(): number;
92
92
  get priority(): TileLoadPriority;
93
- /** @deprecated in 5.0 Use [addAttributions] instead. */
93
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
94
94
  addLogoCards(cards: HTMLTableElement, vp: ScreenViewport): void;
95
95
  addAttributions(cards: HTMLTableElement, vp: ScreenViewport): Promise<void>;
96
96
  get maximumScreenSize(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageryTileTree.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/ImageryTileTree.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAqE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEzK,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,OAAO,EAAE,+BAA+B,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EACrO,qBAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAY,kBAAkB,EAAE,aAAa,EAE/I,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,gBAAgB;AAChB,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC;AAED,gBAAgB;AAChB,qBAAa,cAAe,SAAQ,WAAW;IAMN,WAAW,EAAE,kBAAkB;IAAS,MAAM,EAAE,MAAM;IAAS,SAAS,EAAE,iBAAiB;IALlI,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,kBAAkB,CAAK;IAE/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;gBAE7B,MAAM,EAAE,UAAU,EAAS,WAAW,EAAE,kBAAkB,EAAS,MAAM,EAAE,MAAM,EAAS,SAAS,EAAE,iBAAiB;IAMlI,IAAW,OAAO,8BAA4B;IAC9C,IAAW,YAAY,oBAA4C;IACnE,IAAoB,aAAa,YAAsD;IACvF,IAAoB,eAAe,IAAI,OAAO,CAAgC;IAE9D,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAQtD,qBAAqB,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,8BAA8B,EAAE,cAAc,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,kBAAkB;IAmC1M,gBAAgB;IAGhB,mBAAmB;IAM1B,gBAAgB;IACA,OAAO,IAAI,IAAI;cAOZ,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,SAAS,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;cAwBrG,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAM3D,UAAU,IAAI,IAAI;IAIlB,eAAe;IAO/B,OAAO,CAAC,cAAc;IAGP,CAAC,MAAM,CAAC,OAAO,CAAC;CAIhC;AAED;eACe;AACf,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,cAAc,CAAkC;;IAMxD;;OAEG;IACI,uBAAuB;IAE9B;OACG;IACI,KAAK;IAMZ;OACG;IACI,KAAK;IAIZ;;;;;;OAMG;IACI,uBAAuB,CAAC,OAAO,EAAE,OAAO;CAOhD;AAED,gBAAgB;AAChB,qBAAa,kBAAmB,SAAQ,eAAe;IACV,OAAO,CAAC,cAAc;gBAArD,MAAM,EAAE,qBAAqB,EAAU,cAAc,EAAE,iBAAiB;IAKpF,IAAW,YAAY,IAAI,eAAe,CAA6D;IAErG,wDAAwD;IACnD,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;IAKzD,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjF,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAG1D,IAAW,aAAa,IAAI,iBAAiB,CAAgC;IAC7E,IAAoB,IAAI,IAAI,OAAO,CAGlC;IACD,IAAoB,iBAAiB,IAAI,iBAAiB,CAGzD;IACD,IAAoB,kBAAkB,IAAI,OAAO,CAGhD;cACkB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE;IAI5C,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAE/C,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAkC;IACvE,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAgB;IAE/C,qBAAqB,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,8BAA8B,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,kBAAkB;IAOnK,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;CACnE;AAED,cAAM,iBAAkB,SAAQ,iBAAiB;IACnC,OAAO,CAAC,gBAAgB;IAA2B,OAAO,CAAC,OAAO;gBAA1D,gBAAgB,EAAE,uBAAuB,EAAU,OAAO,EAAE,gBAAgB;IAGhF,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIvD,IAAW,QAAQ,IAAI,MAAM,CAAmD;IAChF,IAAW,QAAQ,IAAI,MAAM,CAAmD;IAChF,IAAW,QAAQ,IAAI,gBAAgB,CAAiC;IAEtE,wDAAwD;IACnD,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;IAKzD,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxF,IAAW,iBAAiB,IAAI,MAAM,CAAoD;IAC1F,IAAW,eAAe,IAAI,uBAAuB,CAAkC;IAC1E,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3G,iBAAiB,CAAC,YAAY,EAAE,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3L,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI;IAE3F,2GAA2G;IAC9F,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC;IAI7D,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;IAK/F,iBAAiB,CAAC,KAAK,EAAE,IAAI;IAKd,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAYtH,gBAAgB;CAU/B;AAwGD;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,yBAAyB;IACzE;;;;;OAKG;gBACgB,IAAI,EAAE;QAAE,aAAa,EAAE,gBAAgB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAA;KAAE;IAI1G,IAAoB,YAAY,YAAoB;IAEpD,gDAAgD;IAChD,IAAW,SAAS,IAAI,aAAa,CAEpC;IAGe,cAAc;IAI9B,IAAoB,eAAe,IAAI,uBAAuB,GAAG,SAAS,CAMzE;CACF"}
1
+ {"version":3,"file":"ImageryTileTree.d.ts","sourceRoot":"","sources":["../../../../src/tile/map/ImageryTileTree.ts"],"names":[],"mappings":"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"}
@@ -183,7 +183,7 @@ class ImageryMapTileTree extends internal_1.RealityTileTree {
183
183
  this._rootTile = new ImageryMapTile(params.rootTile, this, rootQuadId, this.getTileRectangle(rootQuadId));
184
184
  }
185
185
  get tilingScheme() { return this._imageryLoader.imageryProvider.tilingScheme; }
186
- /** @deprecated in 5.0 Use [addAttributions] instead. */
186
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
187
187
  addLogoCards(cards, vp) {
188
188
  // eslint-disable-next-line @typescript-eslint/no-deprecated
189
189
  this._imageryLoader.addLogoCards(cards, vp);
@@ -238,7 +238,7 @@ class ImageryTileLoader extends internal_1.RealityTileLoader {
238
238
  get maxDepth() { return this._imageryProvider.maximumZoomLevel; }
239
239
  get minDepth() { return this._imageryProvider.minimumZoomLevel; }
240
240
  get priority() { return internal_1.TileLoadPriority.Map; }
241
- /** @deprecated in 5.0 Use [addAttributions] instead. */
241
+ /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [addAttributions] instead. */
242
242
  addLogoCards(cards, vp) {
243
243
  // eslint-disable-next-line @typescript-eslint/no-deprecated
244
244
  this._imageryProvider.addLogoCards(cards, vp);