@itwin/core-frontend 3.4.0-dev.9 → 3.5.0-dev.5

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 (808) hide show
  1. package/CHANGELOG.md +37 -1
  2. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  3. package/lib/cjs/AccuDraw.js +60 -15
  4. package/lib/cjs/AccuDraw.js.map +1 -1
  5. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  6. package/lib/cjs/AccuSnap.js +46 -36
  7. package/lib/cjs/AccuSnap.js.map +1 -1
  8. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  9. package/lib/cjs/AuxCoordSys.js +2 -3
  10. package/lib/cjs/AuxCoordSys.js.map +1 -1
  11. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  12. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  13. package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
  14. package/lib/cjs/CategorySelectorState.js +6 -4
  15. package/lib/cjs/CategorySelectorState.js.map +1 -1
  16. package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
  17. package/lib/cjs/ContextRealityModelState.js +2 -0
  18. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  19. package/lib/cjs/DevTools.d.ts.map +1 -1
  20. package/lib/cjs/DevTools.js.map +1 -1
  21. package/lib/cjs/DisplayStyleState.js +1 -1
  22. package/lib/cjs/DisplayStyleState.js.map +1 -1
  23. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  24. package/lib/cjs/ElementLocateManager.js +4 -2
  25. package/lib/cjs/ElementLocateManager.js.map +1 -1
  26. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  27. package/lib/cjs/FrustumAnimator.js +5 -1
  28. package/lib/cjs/FrustumAnimator.js.map +1 -1
  29. package/lib/cjs/FuzzySearch.d.ts.map +1 -1
  30. package/lib/cjs/FuzzySearch.js +9 -3
  31. package/lib/cjs/FuzzySearch.js.map +1 -1
  32. package/lib/cjs/HitDetail.d.ts.map +1 -1
  33. package/lib/cjs/HitDetail.js +13 -3
  34. package/lib/cjs/HitDetail.js.map +1 -1
  35. package/lib/cjs/IModelApp.d.ts +7 -2
  36. package/lib/cjs/IModelApp.d.ts.map +1 -1
  37. package/lib/cjs/IModelApp.js +10 -2
  38. package/lib/cjs/IModelApp.js.map +1 -1
  39. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  40. package/lib/cjs/IModelConnection.js +3 -1
  41. package/lib/cjs/IModelConnection.js.map +1 -1
  42. package/lib/cjs/ImageUtil.d.ts +6 -0
  43. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  44. package/lib/cjs/ImageUtil.js +14 -1
  45. package/lib/cjs/ImageUtil.js.map +1 -1
  46. package/lib/cjs/Marker.d.ts.map +1 -1
  47. package/lib/cjs/Marker.js +5 -1
  48. package/lib/cjs/Marker.js.map +1 -1
  49. package/lib/cjs/ModelState.d.ts.map +1 -1
  50. package/lib/cjs/ModelState.js +5 -0
  51. package/lib/cjs/ModelState.js.map +1 -1
  52. package/lib/cjs/NativeAppLogger.d.ts.map +1 -1
  53. package/lib/cjs/NativeAppLogger.js +1 -1
  54. package/lib/cjs/NativeAppLogger.js.map +1 -1
  55. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  56. package/lib/cjs/TentativePoint.js.map +1 -1
  57. package/lib/cjs/ViewManager.d.ts +4 -0
  58. package/lib/cjs/ViewManager.d.ts.map +1 -1
  59. package/lib/cjs/ViewManager.js +9 -3
  60. package/lib/cjs/ViewManager.js.map +1 -1
  61. package/lib/cjs/ViewRect.d.ts.map +1 -1
  62. package/lib/cjs/ViewRect.js +5 -1
  63. package/lib/cjs/ViewRect.js.map +1 -1
  64. package/lib/cjs/ViewState.d.ts +36 -12
  65. package/lib/cjs/ViewState.d.ts.map +1 -1
  66. package/lib/cjs/ViewState.js +35 -25
  67. package/lib/cjs/ViewState.js.map +1 -1
  68. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  69. package/lib/cjs/ViewingSpace.js +12 -5
  70. package/lib/cjs/ViewingSpace.js.map +1 -1
  71. package/lib/cjs/Viewport.d.ts +14 -0
  72. package/lib/cjs/Viewport.d.ts.map +1 -1
  73. package/lib/cjs/Viewport.js +107 -5
  74. package/lib/cjs/Viewport.js.map +1 -1
  75. package/lib/cjs/core-frontend.d.ts +6 -0
  76. package/lib/cjs/core-frontend.d.ts.map +1 -1
  77. package/lib/cjs/core-frontend.js +6 -0
  78. package/lib/cjs/core-frontend.js.map +1 -1
  79. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  80. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  81. package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -1
  82. package/lib/cjs/extension/ExtensionImpl.js +3 -1
  83. package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
  84. package/lib/cjs/public/scripts/checkbrowser.js +24 -0
  85. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  86. package/lib/cjs/render/Decorations.js +24 -6
  87. package/lib/cjs/render/Decorations.js.map +1 -1
  88. package/lib/cjs/render/GraphicBranch.d.ts +5 -1
  89. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  90. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  91. package/lib/cjs/render/RealityMeshGraphicParams.d.ts +19 -0
  92. package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -0
  93. package/lib/cjs/render/RealityMeshGraphicParams.js +10 -0
  94. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -0
  95. package/lib/cjs/render/RealityMeshParams.d.ts +130 -0
  96. package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -0
  97. package/lib/cjs/render/RealityMeshParams.js +176 -0
  98. package/lib/cjs/render/RealityMeshParams.js.map +1 -0
  99. package/lib/cjs/render/RenderSystem.d.ts +8 -4
  100. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  101. package/lib/cjs/render/RenderSystem.js +7 -1
  102. package/lib/cjs/render/RenderSystem.js.map +1 -1
  103. package/lib/cjs/render/RenderTexture.d.ts +1 -1
  104. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  105. package/lib/cjs/render/RenderTexture.js.map +1 -1
  106. package/lib/cjs/render/UpsampleRealityMeshParams.d.ts +11 -0
  107. package/lib/cjs/render/UpsampleRealityMeshParams.d.ts.map +1 -0
  108. package/lib/cjs/render/UpsampleRealityMeshParams.js +205 -0
  109. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -0
  110. package/lib/cjs/render/primitives/DisplayParams.d.ts.map +1 -1
  111. package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
  112. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts +4 -8
  113. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
  114. package/lib/cjs/render/primitives/PointCloudPrimitive.js +0 -16
  115. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +1 -1
  116. package/lib/cjs/render/primitives/Polyface.d.ts.map +1 -1
  117. package/lib/cjs/render/primitives/Polyface.js +3 -1
  118. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  119. package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
  120. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  121. package/lib/cjs/render/primitives/Strokes.d.ts.map +1 -1
  122. package/lib/cjs/render/primitives/Strokes.js +6 -2
  123. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  124. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  125. package/lib/cjs/render/primitives/VertexTableSplitter.js +7 -85
  126. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -1
  127. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  128. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +4 -1
  129. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  130. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  131. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  132. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
  133. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  134. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +3 -1
  135. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  136. package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  137. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  138. package/lib/cjs/render/webgl/BranchState.d.ts +3 -1
  139. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  140. package/lib/cjs/render/webgl/BranchState.js +18 -15
  141. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  142. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  143. package/lib/cjs/render/webgl/BranchUniforms.js +4 -0
  144. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  145. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  146. package/lib/cjs/render/webgl/ColorInfo.js +4 -1
  147. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  148. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  149. package/lib/cjs/render/webgl/DrawCommand.js +12 -3
  150. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  151. package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
  152. package/lib/cjs/render/webgl/FrameBuffer.js +4 -1
  153. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  154. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  155. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  156. package/lib/cjs/render/webgl/Graphic.js +5 -2
  157. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  158. package/lib/cjs/render/webgl/Matrix.d.ts.map +1 -1
  159. package/lib/cjs/render/webgl/Matrix.js +16 -4
  160. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  161. package/lib/cjs/render/webgl/PerformanceMetrics.js +2 -2
  162. package/lib/cjs/render/webgl/PerformanceMetrics.js.map +1 -1
  163. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  164. package/lib/cjs/render/webgl/PlanarClassifier.js +3 -1
  165. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  166. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  167. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  168. package/lib/cjs/render/webgl/PointCloud.d.ts +1 -2
  169. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  170. package/lib/cjs/render/webgl/PointCloud.js +7 -7
  171. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  172. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  173. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  174. package/lib/cjs/render/webgl/RealityMesh.d.ts +6 -6
  175. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  176. package/lib/cjs/render/webgl/RealityMesh.js +20 -12
  177. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  178. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts +35 -0
  179. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts.map +1 -0
  180. package/lib/cjs/render/webgl/RealityModelUniforms.js +73 -0
  181. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -0
  182. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  183. package/lib/cjs/render/webgl/RenderCommands.js +3 -2
  184. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  185. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  186. package/lib/cjs/render/webgl/RenderFlags.js +3 -1
  187. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  188. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  189. package/lib/cjs/render/webgl/ShaderBuilder.js +4 -1
  190. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  191. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  192. package/lib/cjs/render/webgl/SolarShadowMap.js +17 -5
  193. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  194. package/lib/cjs/render/webgl/System.d.ts +6 -4
  195. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  196. package/lib/cjs/render/webgl/System.js +21 -4
  197. package/lib/cjs/render/webgl/System.js.map +1 -1
  198. package/lib/cjs/render/webgl/TargetUniforms.d.ts +2 -0
  199. package/lib/cjs/render/webgl/TargetUniforms.d.ts.map +1 -1
  200. package/lib/cjs/render/webgl/TargetUniforms.js +2 -0
  201. package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
  202. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  203. package/lib/cjs/render/webgl/Technique.js +6 -31
  204. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  205. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  206. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  207. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  208. package/lib/cjs/render/webgl/Texture.js +21 -12
  209. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  210. package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
  211. package/lib/cjs/render/webgl/ThematicSensors.js +8 -2
  212. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  213. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  214. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +3 -1
  215. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  216. package/lib/cjs/render/webgl/glsl/Common.js +1 -1
  217. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  218. package/lib/cjs/render/webgl/glsl/PointCloud.d.ts.map +1 -1
  219. package/lib/cjs/render/webgl/glsl/PointCloud.js +43 -20
  220. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  221. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts +4 -2
  222. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  223. package/lib/cjs/render/webgl/glsl/RealityMesh.js +5 -3
  224. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  225. package/lib/cjs/render/webgl/glsl/SkyBox.d.ts.map +1 -1
  226. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  227. package/lib/cjs/tile/GltfReader.d.ts +3 -2
  228. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  229. package/lib/cjs/tile/GltfReader.js +7 -3
  230. package/lib/cjs/tile/GltfReader.js.map +1 -1
  231. package/lib/cjs/tile/ImdlReader.d.ts +1 -1
  232. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  233. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
  234. package/lib/cjs/tile/OPCFormatInterpreter.js +3 -1
  235. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  236. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  237. package/lib/cjs/tile/OrbitGtTileTree.js +8 -2
  238. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  239. package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
  240. package/lib/cjs/tile/PntsReader.js +8 -2
  241. package/lib/cjs/tile/PntsReader.js.map +1 -1
  242. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  243. package/lib/cjs/tile/PrimaryTileTree.js +14 -11
  244. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  245. package/lib/cjs/tile/RealityModelTileTree.d.ts +4 -1
  246. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  247. package/lib/cjs/tile/RealityModelTileTree.js +8 -0
  248. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  249. package/lib/cjs/tile/RealityTile.d.ts +57 -3
  250. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  251. package/lib/cjs/tile/RealityTile.js +49 -5
  252. package/lib/cjs/tile/RealityTile.js.map +1 -1
  253. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  254. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  255. package/lib/cjs/tile/RealityTileTree.d.ts +37 -2
  256. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  257. package/lib/cjs/tile/RealityTileTree.js +30 -2
  258. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  259. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
  260. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +6 -2
  261. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  262. package/lib/cjs/tile/TileAdmin.d.ts +12 -0
  263. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  264. package/lib/cjs/tile/TileAdmin.js +54 -4
  265. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  266. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  267. package/lib/cjs/tile/TileDrawArgs.js +10 -16
  268. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  269. package/lib/cjs/tile/TileRequest.d.ts +5 -1
  270. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  271. package/lib/cjs/tile/TileRequest.js +6 -2
  272. package/lib/cjs/tile/TileRequest.js.map +1 -1
  273. package/lib/cjs/tile/TileStorage.d.ts +13 -0
  274. package/lib/cjs/tile/TileStorage.d.ts.map +1 -0
  275. package/lib/cjs/tile/TileStorage.js +50 -0
  276. package/lib/cjs/tile/TileStorage.js.map +1 -0
  277. package/lib/cjs/tile/internal.d.ts +2 -0
  278. package/lib/cjs/tile/internal.d.ts.map +1 -1
  279. package/lib/cjs/tile/internal.js +2 -0
  280. package/lib/cjs/tile/internal.js.map +1 -1
  281. package/lib/cjs/tile/map/ArcGISTileMap.js +1 -1
  282. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  283. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +0 -2
  284. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  285. package/lib/cjs/tile/map/ArcGisUtilities.js +1 -24
  286. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  287. package/lib/cjs/tile/map/BingElevation.d.ts +8 -3
  288. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  289. package/lib/cjs/tile/map/BingElevation.js +36 -14
  290. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  291. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +2 -7
  292. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  293. package/lib/cjs/tile/map/CesiumTerrainProvider.js +100 -90
  294. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  295. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts +9 -12
  296. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  297. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js +70 -67
  298. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  299. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  300. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +9 -16
  301. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  302. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  303. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  304. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  305. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  306. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  307. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  308. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +8 -6
  309. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  310. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +3 -3
  311. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  312. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  313. package/lib/cjs/tile/map/ImageryTileTree.js +21 -6
  314. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  315. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +62 -6
  316. package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
  317. package/lib/cjs/tile/map/MapCartoRectangle.js +103 -17
  318. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  319. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  320. package/lib/cjs/tile/map/MapLayerImageryFormats.js +4 -2
  321. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  322. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  323. package/lib/cjs/tile/map/MapLayerImageryProvider.js +1 -1
  324. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  325. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  326. package/lib/cjs/tile/map/MapLayerSources.js +11 -7
  327. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  328. package/lib/cjs/tile/map/MapTile.d.ts +68 -15
  329. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  330. package/lib/cjs/tile/map/MapTile.js +88 -30
  331. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  332. package/lib/cjs/tile/map/MapTileAvailability.d.ts.map +1 -1
  333. package/lib/cjs/tile/map/MapTileAvailability.js +1 -1
  334. package/lib/cjs/tile/map/MapTileAvailability.js.map +1 -1
  335. package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -2
  336. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  337. package/lib/cjs/tile/map/MapTileLoader.js +11 -20
  338. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  339. package/lib/cjs/tile/map/MapTileTree.d.ts +72 -7
  340. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  341. package/lib/cjs/tile/map/MapTileTree.js +72 -16
  342. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  343. package/lib/cjs/tile/map/MapTilingScheme.d.ts +67 -55
  344. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  345. package/lib/cjs/tile/map/MapTilingScheme.js +71 -67
  346. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  347. package/lib/cjs/tile/map/QuadId.d.ts +24 -2
  348. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  349. package/lib/cjs/tile/map/QuadId.js +49 -20
  350. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  351. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +79 -19
  352. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  353. package/lib/cjs/tile/map/TerrainMeshProvider.js +28 -13
  354. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  355. package/lib/cjs/tile/map/TerrainProvider.d.ts +34 -0
  356. package/lib/cjs/tile/map/TerrainProvider.d.ts.map +1 -0
  357. package/lib/cjs/tile/map/TerrainProvider.js +41 -0
  358. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -0
  359. package/lib/cjs/tile/map/WmsCapabilities.js +1 -1
  360. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  361. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  362. package/lib/cjs/tile/map/WmtsCapabilities.js +7 -3
  363. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  364. package/lib/cjs/tile/object-storage-azure.js +5 -0
  365. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  366. package/lib/cjs/tools/AccuDrawTool.js +87 -26
  367. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  368. package/lib/cjs/tools/ClipViewTool.d.ts +2 -2
  369. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  370. package/lib/cjs/tools/ClipViewTool.js +29 -16
  371. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  372. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  373. package/lib/cjs/tools/ElementSetTool.js +26 -10
  374. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  375. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  376. package/lib/cjs/tools/MeasureTool.js +65 -41
  377. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  378. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  379. package/lib/cjs/tools/PrimitiveTool.js +9 -4
  380. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  381. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  382. package/lib/cjs/tools/SelectTool.js +20 -9
  383. package/lib/cjs/tools/SelectTool.js.map +1 -1
  384. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  385. package/lib/cjs/tools/Tool.js +13 -5
  386. package/lib/cjs/tools/Tool.js.map +1 -1
  387. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  388. package/lib/cjs/tools/ToolAdmin.js +27 -9
  389. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  390. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  391. package/lib/cjs/tools/ViewTool.js +111 -40
  392. package/lib/cjs/tools/ViewTool.js.map +1 -1
  393. package/lib/cjs/webgl.d.ts +1 -0
  394. package/lib/cjs/webgl.d.ts.map +1 -1
  395. package/lib/cjs/webgl.js +1 -0
  396. package/lib/cjs/webgl.js.map +1 -1
  397. package/lib/esm/AccuDraw.d.ts.map +1 -1
  398. package/lib/esm/AccuDraw.js +60 -15
  399. package/lib/esm/AccuDraw.js.map +1 -1
  400. package/lib/esm/AccuSnap.d.ts.map +1 -1
  401. package/lib/esm/AccuSnap.js +47 -37
  402. package/lib/esm/AccuSnap.js.map +1 -1
  403. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  404. package/lib/esm/AuxCoordSys.js +2 -3
  405. package/lib/esm/AuxCoordSys.js.map +1 -1
  406. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  407. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  408. package/lib/esm/CategorySelectorState.d.ts.map +1 -1
  409. package/lib/esm/CategorySelectorState.js +6 -4
  410. package/lib/esm/CategorySelectorState.js.map +1 -1
  411. package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
  412. package/lib/esm/ContextRealityModelState.js +2 -0
  413. package/lib/esm/ContextRealityModelState.js.map +1 -1
  414. package/lib/esm/DevTools.d.ts.map +1 -1
  415. package/lib/esm/DevTools.js.map +1 -1
  416. package/lib/esm/DisplayStyleState.js +1 -1
  417. package/lib/esm/DisplayStyleState.js.map +1 -1
  418. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  419. package/lib/esm/ElementLocateManager.js +4 -2
  420. package/lib/esm/ElementLocateManager.js.map +1 -1
  421. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  422. package/lib/esm/FrustumAnimator.js +5 -1
  423. package/lib/esm/FrustumAnimator.js.map +1 -1
  424. package/lib/esm/FuzzySearch.d.ts.map +1 -1
  425. package/lib/esm/FuzzySearch.js +9 -3
  426. package/lib/esm/FuzzySearch.js.map +1 -1
  427. package/lib/esm/HitDetail.d.ts.map +1 -1
  428. package/lib/esm/HitDetail.js +13 -3
  429. package/lib/esm/HitDetail.js.map +1 -1
  430. package/lib/esm/IModelApp.d.ts +7 -2
  431. package/lib/esm/IModelApp.d.ts.map +1 -1
  432. package/lib/esm/IModelApp.js +11 -3
  433. package/lib/esm/IModelApp.js.map +1 -1
  434. package/lib/esm/IModelConnection.d.ts.map +1 -1
  435. package/lib/esm/IModelConnection.js +3 -1
  436. package/lib/esm/IModelConnection.js.map +1 -1
  437. package/lib/esm/ImageUtil.d.ts +6 -0
  438. package/lib/esm/ImageUtil.d.ts.map +1 -1
  439. package/lib/esm/ImageUtil.js +12 -0
  440. package/lib/esm/ImageUtil.js.map +1 -1
  441. package/lib/esm/Marker.d.ts.map +1 -1
  442. package/lib/esm/Marker.js +5 -1
  443. package/lib/esm/Marker.js.map +1 -1
  444. package/lib/esm/ModelState.d.ts.map +1 -1
  445. package/lib/esm/ModelState.js +6 -1
  446. package/lib/esm/ModelState.js.map +1 -1
  447. package/lib/esm/NativeAppLogger.d.ts.map +1 -1
  448. package/lib/esm/NativeAppLogger.js +1 -1
  449. package/lib/esm/NativeAppLogger.js.map +1 -1
  450. package/lib/esm/TentativePoint.d.ts.map +1 -1
  451. package/lib/esm/TentativePoint.js.map +1 -1
  452. package/lib/esm/ViewManager.d.ts +4 -0
  453. package/lib/esm/ViewManager.d.ts.map +1 -1
  454. package/lib/esm/ViewManager.js +9 -3
  455. package/lib/esm/ViewManager.js.map +1 -1
  456. package/lib/esm/ViewRect.d.ts.map +1 -1
  457. package/lib/esm/ViewRect.js +5 -1
  458. package/lib/esm/ViewRect.js.map +1 -1
  459. package/lib/esm/ViewState.d.ts +36 -12
  460. package/lib/esm/ViewState.d.ts.map +1 -1
  461. package/lib/esm/ViewState.js +35 -25
  462. package/lib/esm/ViewState.js.map +1 -1
  463. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  464. package/lib/esm/ViewingSpace.js +12 -5
  465. package/lib/esm/ViewingSpace.js.map +1 -1
  466. package/lib/esm/Viewport.d.ts +14 -0
  467. package/lib/esm/Viewport.d.ts.map +1 -1
  468. package/lib/esm/Viewport.js +107 -5
  469. package/lib/esm/Viewport.js.map +1 -1
  470. package/lib/esm/core-frontend.d.ts +6 -0
  471. package/lib/esm/core-frontend.d.ts.map +1 -1
  472. package/lib/esm/core-frontend.js +6 -0
  473. package/lib/esm/core-frontend.js.map +1 -1
  474. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  475. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  476. package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -1
  477. package/lib/esm/extension/ExtensionImpl.js +3 -1
  478. package/lib/esm/extension/ExtensionImpl.js.map +1 -1
  479. package/lib/esm/public/scripts/checkbrowser.js +24 -0
  480. package/lib/esm/render/Decorations.d.ts.map +1 -1
  481. package/lib/esm/render/Decorations.js +24 -6
  482. package/lib/esm/render/Decorations.js.map +1 -1
  483. package/lib/esm/render/GraphicBranch.d.ts +5 -1
  484. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  485. package/lib/esm/render/GraphicBranch.js.map +1 -1
  486. package/lib/esm/render/RealityMeshGraphicParams.d.ts +19 -0
  487. package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -0
  488. package/lib/esm/render/RealityMeshGraphicParams.js +9 -0
  489. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -0
  490. package/lib/esm/render/RealityMeshParams.d.ts +130 -0
  491. package/lib/esm/render/RealityMeshParams.d.ts.map +1 -0
  492. package/lib/esm/render/RealityMeshParams.js +172 -0
  493. package/lib/esm/render/RealityMeshParams.js.map +1 -0
  494. package/lib/esm/render/RenderSystem.d.ts +8 -4
  495. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  496. package/lib/esm/render/RenderSystem.js +7 -1
  497. package/lib/esm/render/RenderSystem.js.map +1 -1
  498. package/lib/esm/render/RenderTexture.d.ts +1 -1
  499. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  500. package/lib/esm/render/RenderTexture.js.map +1 -1
  501. package/lib/esm/render/UpsampleRealityMeshParams.d.ts +11 -0
  502. package/lib/esm/render/UpsampleRealityMeshParams.d.ts.map +1 -0
  503. package/lib/esm/render/UpsampleRealityMeshParams.js +201 -0
  504. package/lib/esm/render/UpsampleRealityMeshParams.js.map +1 -0
  505. package/lib/esm/render/primitives/DisplayParams.d.ts.map +1 -1
  506. package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
  507. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts +4 -8
  508. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
  509. package/lib/esm/render/primitives/PointCloudPrimitive.js +1 -14
  510. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +1 -1
  511. package/lib/esm/render/primitives/Polyface.d.ts.map +1 -1
  512. package/lib/esm/render/primitives/Polyface.js +3 -1
  513. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  514. package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
  515. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  516. package/lib/esm/render/primitives/Strokes.d.ts.map +1 -1
  517. package/lib/esm/render/primitives/Strokes.js +6 -2
  518. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  519. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  520. package/lib/esm/render/primitives/VertexTableSplitter.js +1 -79
  521. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -1
  522. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  523. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +4 -1
  524. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  525. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  526. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  527. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
  528. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  529. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +3 -1
  530. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  531. package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  532. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  533. package/lib/esm/render/webgl/BranchState.d.ts +3 -1
  534. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  535. package/lib/esm/render/webgl/BranchState.js +18 -15
  536. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  537. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  538. package/lib/esm/render/webgl/BranchUniforms.js +4 -0
  539. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  540. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  541. package/lib/esm/render/webgl/ColorInfo.js +4 -1
  542. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  543. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  544. package/lib/esm/render/webgl/DrawCommand.js +12 -3
  545. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  546. package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
  547. package/lib/esm/render/webgl/FrameBuffer.js +4 -1
  548. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  549. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  550. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  551. package/lib/esm/render/webgl/Graphic.js +5 -2
  552. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  553. package/lib/esm/render/webgl/Matrix.d.ts.map +1 -1
  554. package/lib/esm/render/webgl/Matrix.js +16 -4
  555. package/lib/esm/render/webgl/Matrix.js.map +1 -1
  556. package/lib/esm/render/webgl/PerformanceMetrics.js +2 -2
  557. package/lib/esm/render/webgl/PerformanceMetrics.js.map +1 -1
  558. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  559. package/lib/esm/render/webgl/PlanarClassifier.js +3 -1
  560. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  561. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  562. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  563. package/lib/esm/render/webgl/PointCloud.d.ts +1 -2
  564. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  565. package/lib/esm/render/webgl/PointCloud.js +7 -7
  566. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  567. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  568. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  569. package/lib/esm/render/webgl/RealityMesh.d.ts +6 -6
  570. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  571. package/lib/esm/render/webgl/RealityMesh.js +20 -12
  572. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  573. package/lib/esm/render/webgl/RealityModelUniforms.d.ts +35 -0
  574. package/lib/esm/render/webgl/RealityModelUniforms.d.ts.map +1 -0
  575. package/lib/esm/render/webgl/RealityModelUniforms.js +68 -0
  576. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -0
  577. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  578. package/lib/esm/render/webgl/RenderCommands.js +3 -2
  579. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  580. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  581. package/lib/esm/render/webgl/RenderFlags.js +3 -1
  582. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  583. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  584. package/lib/esm/render/webgl/ShaderBuilder.js +4 -1
  585. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  586. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  587. package/lib/esm/render/webgl/SolarShadowMap.js +17 -5
  588. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  589. package/lib/esm/render/webgl/System.d.ts +6 -4
  590. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  591. package/lib/esm/render/webgl/System.js +21 -4
  592. package/lib/esm/render/webgl/System.js.map +1 -1
  593. package/lib/esm/render/webgl/TargetUniforms.d.ts +2 -0
  594. package/lib/esm/render/webgl/TargetUniforms.d.ts.map +1 -1
  595. package/lib/esm/render/webgl/TargetUniforms.js +2 -0
  596. package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
  597. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  598. package/lib/esm/render/webgl/Technique.js +5 -11
  599. package/lib/esm/render/webgl/Technique.js.map +1 -1
  600. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  601. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  602. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  603. package/lib/esm/render/webgl/Texture.js +21 -12
  604. package/lib/esm/render/webgl/Texture.js.map +1 -1
  605. package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
  606. package/lib/esm/render/webgl/ThematicSensors.js +8 -2
  607. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  608. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  609. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +3 -1
  610. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  611. package/lib/esm/render/webgl/glsl/Common.js +1 -1
  612. package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
  613. package/lib/esm/render/webgl/glsl/PointCloud.d.ts.map +1 -1
  614. package/lib/esm/render/webgl/glsl/PointCloud.js +44 -21
  615. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  616. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts +4 -2
  617. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  618. package/lib/esm/render/webgl/glsl/RealityMesh.js +4 -3
  619. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  620. package/lib/esm/render/webgl/glsl/SkyBox.d.ts.map +1 -1
  621. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  622. package/lib/esm/tile/GltfReader.d.ts +3 -2
  623. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  624. package/lib/esm/tile/GltfReader.js +8 -4
  625. package/lib/esm/tile/GltfReader.js.map +1 -1
  626. package/lib/esm/tile/ImdlReader.d.ts +1 -1
  627. package/lib/esm/tile/ImdlReader.js.map +1 -1
  628. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
  629. package/lib/esm/tile/OPCFormatInterpreter.js +3 -1
  630. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  631. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  632. package/lib/esm/tile/OrbitGtTileTree.js +8 -2
  633. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  634. package/lib/esm/tile/PntsReader.d.ts.map +1 -1
  635. package/lib/esm/tile/PntsReader.js +8 -2
  636. package/lib/esm/tile/PntsReader.js.map +1 -1
  637. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  638. package/lib/esm/tile/PrimaryTileTree.js +14 -11
  639. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  640. package/lib/esm/tile/RealityModelTileTree.d.ts +4 -1
  641. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  642. package/lib/esm/tile/RealityModelTileTree.js +9 -1
  643. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  644. package/lib/esm/tile/RealityTile.d.ts +57 -3
  645. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  646. package/lib/esm/tile/RealityTile.js +49 -5
  647. package/lib/esm/tile/RealityTile.js.map +1 -1
  648. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  649. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  650. package/lib/esm/tile/RealityTileTree.d.ts +37 -2
  651. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  652. package/lib/esm/tile/RealityTileTree.js +30 -2
  653. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  654. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
  655. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +6 -2
  656. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  657. package/lib/esm/tile/TileAdmin.d.ts +12 -0
  658. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  659. package/lib/esm/tile/TileAdmin.js +35 -4
  660. package/lib/esm/tile/TileAdmin.js.map +1 -1
  661. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  662. package/lib/esm/tile/TileDrawArgs.js +11 -17
  663. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  664. package/lib/esm/tile/TileRequest.d.ts +5 -1
  665. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  666. package/lib/esm/tile/TileRequest.js +6 -2
  667. package/lib/esm/tile/TileRequest.js.map +1 -1
  668. package/lib/esm/tile/TileStorage.d.ts +13 -0
  669. package/lib/esm/tile/TileStorage.d.ts.map +1 -0
  670. package/lib/esm/tile/TileStorage.js +46 -0
  671. package/lib/esm/tile/TileStorage.js.map +1 -0
  672. package/lib/esm/tile/internal.d.ts +2 -0
  673. package/lib/esm/tile/internal.d.ts.map +1 -1
  674. package/lib/esm/tile/internal.js +2 -0
  675. package/lib/esm/tile/internal.js.map +1 -1
  676. package/lib/esm/tile/map/ArcGISTileMap.js +1 -1
  677. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  678. package/lib/esm/tile/map/ArcGisUtilities.d.ts +0 -2
  679. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  680. package/lib/esm/tile/map/ArcGisUtilities.js +1 -24
  681. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  682. package/lib/esm/tile/map/BingElevation.d.ts +8 -3
  683. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  684. package/lib/esm/tile/map/BingElevation.js +36 -14
  685. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  686. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +2 -7
  687. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  688. package/lib/esm/tile/map/CesiumTerrainProvider.js +101 -91
  689. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  690. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts +9 -12
  691. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  692. package/lib/esm/tile/map/EllipsoidTerrainProvider.js +71 -68
  693. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  694. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  695. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +9 -16
  696. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  697. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  698. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  699. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  700. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  701. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  702. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  703. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +8 -6
  704. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  705. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +3 -3
  706. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  707. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  708. package/lib/esm/tile/map/ImageryTileTree.js +21 -6
  709. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  710. package/lib/esm/tile/map/MapCartoRectangle.d.ts +62 -6
  711. package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
  712. package/lib/esm/tile/map/MapCartoRectangle.js +103 -17
  713. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  714. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  715. package/lib/esm/tile/map/MapLayerImageryFormats.js +4 -2
  716. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  717. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  718. package/lib/esm/tile/map/MapLayerImageryProvider.js +1 -1
  719. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  720. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  721. package/lib/esm/tile/map/MapLayerSources.js +11 -7
  722. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  723. package/lib/esm/tile/map/MapTile.d.ts +68 -15
  724. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  725. package/lib/esm/tile/map/MapTile.js +88 -30
  726. package/lib/esm/tile/map/MapTile.js.map +1 -1
  727. package/lib/esm/tile/map/MapTileAvailability.d.ts.map +1 -1
  728. package/lib/esm/tile/map/MapTileAvailability.js +1 -1
  729. package/lib/esm/tile/map/MapTileAvailability.js.map +1 -1
  730. package/lib/esm/tile/map/MapTileLoader.d.ts +2 -2
  731. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  732. package/lib/esm/tile/map/MapTileLoader.js +12 -21
  733. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  734. package/lib/esm/tile/map/MapTileTree.d.ts +72 -7
  735. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  736. package/lib/esm/tile/map/MapTileTree.js +73 -17
  737. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  738. package/lib/esm/tile/map/MapTilingScheme.d.ts +67 -55
  739. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  740. package/lib/esm/tile/map/MapTilingScheme.js +72 -68
  741. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  742. package/lib/esm/tile/map/QuadId.d.ts +24 -2
  743. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  744. package/lib/esm/tile/map/QuadId.js +49 -20
  745. package/lib/esm/tile/map/QuadId.js.map +1 -1
  746. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +79 -19
  747. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  748. package/lib/esm/tile/map/TerrainMeshProvider.js +28 -13
  749. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  750. package/lib/esm/tile/map/TerrainProvider.d.ts +34 -0
  751. package/lib/esm/tile/map/TerrainProvider.d.ts.map +1 -0
  752. package/lib/esm/tile/map/TerrainProvider.js +37 -0
  753. package/lib/esm/tile/map/TerrainProvider.js.map +1 -0
  754. package/lib/esm/tile/map/WmsCapabilities.js +1 -1
  755. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  756. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  757. package/lib/esm/tile/map/WmtsCapabilities.js +7 -3
  758. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  759. package/lib/esm/tile/object-storage-azure.js +5 -0
  760. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  761. package/lib/esm/tools/AccuDrawTool.js +87 -26
  762. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  763. package/lib/esm/tools/ClipViewTool.d.ts +2 -2
  764. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  765. package/lib/esm/tools/ClipViewTool.js +29 -16
  766. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  767. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  768. package/lib/esm/tools/ElementSetTool.js +26 -10
  769. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  770. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  771. package/lib/esm/tools/MeasureTool.js +65 -41
  772. package/lib/esm/tools/MeasureTool.js.map +1 -1
  773. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  774. package/lib/esm/tools/PrimitiveTool.js +9 -4
  775. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  776. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  777. package/lib/esm/tools/SelectTool.js +20 -9
  778. package/lib/esm/tools/SelectTool.js.map +1 -1
  779. package/lib/esm/tools/Tool.d.ts.map +1 -1
  780. package/lib/esm/tools/Tool.js +13 -5
  781. package/lib/esm/tools/Tool.js.map +1 -1
  782. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  783. package/lib/esm/tools/ToolAdmin.js +27 -9
  784. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  785. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  786. package/lib/esm/tools/ViewTool.js +111 -40
  787. package/lib/esm/tools/ViewTool.js.map +1 -1
  788. package/lib/esm/webgl.d.ts +1 -0
  789. package/lib/esm/webgl.d.ts.map +1 -1
  790. package/lib/esm/webgl.js +1 -0
  791. package/lib/esm/webgl.js.map +1 -1
  792. package/package.json +30 -24
  793. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +0 -47
  794. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +0 -1
  795. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +0 -75
  796. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +0 -1
  797. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +0 -56
  798. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts.map +0 -1
  799. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +0 -270
  800. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +0 -1
  801. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +0 -47
  802. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +0 -1
  803. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +0 -71
  804. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +0 -1
  805. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +0 -56
  806. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts.map +0 -1
  807. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +0 -266
  808. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +0 -1
@@ -112,10 +112,15 @@ const scratchPoint = core_geometry_1.Point3d.createZero(), scratchOrigin = core_
112
112
  const scratchRange = core_geometry_1.Range3d.createNull();
113
113
  const scratchX = core_geometry_1.Vector3d.createZero(), scratchY = core_geometry_1.Vector3d.createZero(), scratchZ = core_geometry_1.Vector3d.createZero();
114
114
  const scratchMatrix = core_geometry_1.Matrix3d.createZero(), scratchTransform = core_geometry_1.Transform.createZero();
115
- /** @internal */
115
+ /** Base class for a [[TileTree]] representing a reality model (e.g., a point cloud or photogrammetry mesh) or 3d terrain with map imagery.
116
+ * The tiles within the tree are instances of [[RealityTile]]s.
117
+ * @beta
118
+ */
116
119
  class RealityTileTree extends internal_1.TileTree {
120
+ /** @internal */
117
121
  constructor(params) {
118
122
  super(params);
123
+ /** @internal */
119
124
  this.traversalChildrenByDepth = [];
120
125
  this.loader = params.loader;
121
126
  this.yAxisUp = true === params.yAxisUp;
@@ -132,24 +137,38 @@ class RealityTileTree extends internal_1.TileTree {
132
137
  }
133
138
  }
134
139
  }
140
+ /** @internal */
135
141
  get rootTile() { return this._rootTile; }
142
+ /** @internal */
136
143
  get is3d() { return true; }
144
+ /** @internal */
137
145
  get maxDepth() { return this.loader.maxDepth; }
146
+ /** @internal */
138
147
  get minDepth() { return this.loader.minDepth; }
148
+ /** @internal */
139
149
  get isContentUnbounded() { return this.loader.isContentUnbounded; }
150
+ /** @internal */
140
151
  get isTransparent() { return false; }
152
+ /** @internal */
141
153
  _selectTiles(args) { return this.selectRealityTiles(args, []); }
154
+ /** @internal */
142
155
  get viewFlagOverrides() { return this.loader.viewFlagOverrides; }
156
+ /** @internal */
143
157
  get parentsAndChildrenExclusive() { return this.loader.parentsAndChildrenExclusive; }
158
+ /** @internal */
144
159
  createTile(props) { return new internal_1.RealityTile(props, this); }
145
- /** Collect tiles from this tile tree based on the criteria implemented by `collector`. */
160
+ /** Collect tiles from this tile tree based on the criteria implemented by `collector`.
161
+ * @internal
162
+ */
146
163
  collectTileGeometry(collector) {
147
164
  this.rootTile.collectTileGeometry(collector);
148
165
  }
166
+ /** @internal */
149
167
  prune() {
150
168
  const olderThan = core_bentley_1.BeTimePoint.now().minus(this.expirationTime);
151
169
  this.rootTile.purgeContents(olderThan);
152
170
  }
171
+ /** @internal */
153
172
  draw(args) {
154
173
  const displayedTileDescendants = new Array();
155
174
  const debugControl = args.context.target.debugControl;
@@ -157,6 +176,7 @@ class RealityTileTree extends internal_1.TileTree {
157
176
  const preloadDebugBuilder = (debugControl && debugControl.displayRealityTilePreload) ? args.context.createSceneGraphicBuilder() : undefined;
158
177
  const graphicTypeBranches = new Map();
159
178
  const selectedTiles = this.selectRealityTiles(args, displayedTileDescendants, preloadDebugBuilder);
179
+ args.processSelectedTiles(selectedTiles);
160
180
  let sortIndices;
161
181
  if (!this.parentsAndChildrenExclusive) {
162
182
  sortIndices = selectedTiles.map((_x, i) => i);
@@ -225,22 +245,26 @@ class RealityTileTree extends internal_1.TileTree {
225
245
  args.drawGraphicsWithType(graphicTypeBranch[0], graphicTypeBranch[1]);
226
246
  }
227
247
  }
248
+ /** @internal */
228
249
  collectClassifierGraphics(args, selectedTiles) {
229
250
  const classifier = args.context.planarClassifiers.get(this.modelId);
230
251
  if (classifier)
231
252
  classifier.collectGraphics(args.context, { modelId: this.modelId, tiles: selectedTiles, location: args.location, isPointCloud: this.isPointCloud });
232
253
  }
254
+ /** @internal */
233
255
  getTraversalChildren(depth) {
234
256
  while (this.traversalChildrenByDepth.length <= depth)
235
257
  this.traversalChildrenByDepth.push(new TraversalChildrenDetails());
236
258
  return this.traversalChildrenByDepth[depth];
237
259
  }
260
+ /** @internal */
238
261
  doReprojectChildren(tile) {
239
262
  if (!(tile instanceof internal_1.RealityTile) || !tile.region || this._gcsConverter === undefined || this._rootToEcef === undefined || undefined === this._ecefToDb)
240
263
  return false;
241
264
  const tileRange = this.iModelTransform.isIdentity ? tile.range : this.iModelTransform.multiplyRange(tile.range, scratchRange);
242
265
  return this.cartesianRange.intersectsRange(tileRange);
243
266
  }
267
+ /** @internal */
244
268
  reprojectAndResolveChildren(parent, children, resolve) {
245
269
  if (!this.doReprojectChildren(parent)) {
246
270
  resolve(children);
@@ -308,7 +332,9 @@ class RealityTileTree extends internal_1.TileTree {
308
332
  }
309
333
  }
310
334
  }
335
+ /** @internal */
311
336
  getBaseRealityDepth(_sceneContext) { return -1; }
337
+ /** @internal */
312
338
  selectRealityTiles(args, displayedDescendants, preloadDebugBuilder) {
313
339
  this._lastSelected = core_bentley_1.BeTimePoint.now();
314
340
  const selected = [];
@@ -351,6 +377,7 @@ class RealityTileTree extends internal_1.TileTree {
351
377
  IModelApp_1.IModelApp.tileAdmin.addTilesForUser(args.context.viewport, selected, args.readyTiles);
352
378
  return selected;
353
379
  }
380
+ /** @internal */
354
381
  preloadTilesForScene(args, context, frustumTransform) {
355
382
  const preloadFrustum = args.viewingSpace.getPreloadFrustum(frustumTransform, scratchFrustum);
356
383
  const preloadFrustumPlanes = new core_common_1.FrustumPlanes(preloadFrustum);
@@ -364,6 +391,7 @@ class RealityTileTree extends internal_1.TileTree {
364
391
  }
365
392
  this.rootTile.preloadTilesInFrustum(preloadArgs, context, 2);
366
393
  }
394
+ /** @internal */
367
395
  logTiles(label, tiles) {
368
396
  let depthString = "";
369
397
  let min = 10000, max = -10000;
@@ -1 +1 @@
1
- {"version":3,"file":"RealityTileTree.js","sourceRoot":"","sources":["../../../src/tile/RealityTileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, BeTimePoint } from \"@itwin/core-bentley\";\r\nimport {\r\n Matrix3d, Point3d, Range3d, Transform, Vector3d, XYZProps,\r\n} from \"@itwin/core-geometry\";\r\nimport { Cartographic, ColorDef, Frustum, FrustumPlanes, GeoCoordStatus, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { BackgroundMapGeometry } from \"../BackgroundMapGeometry\";\r\nimport { GeoConverter } from \"../GeoServices\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { GraphicBranch } from \"../render/GraphicBranch\";\r\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\r\nimport { SceneContext } from \"../ViewContext\";\r\nimport {\r\n GraphicsCollectorDrawArgs, MapTile, RealityTile, RealityTileDrawArgs, RealityTileLoader, RealityTileParams, Tile, TileDrawArgs, TileGeometryCollector,\r\n TileGraphicType, TileParams, TileTree, TileTreeParams,\r\n} from \"./internal\";\r\n\r\n/** @internal */\r\nexport class TraversalDetails {\r\n public queuedChildren = new Array<Tile>();\r\n public childrenLoading = false;\r\n public childrenSelected = false;\r\n\r\n public initialize() {\r\n this.queuedChildren.length = 0;\r\n this.childrenLoading = false;\r\n this.childrenSelected = false;\r\n }\r\n}\r\n/** @internal */\r\nexport class TraversalChildrenDetails {\r\n private _childDetails: TraversalDetails[] = [];\r\n\r\n public initialize() {\r\n for (const child of this._childDetails)\r\n child.initialize();\r\n }\r\n public getChildDetail(index: number) {\r\n while (this._childDetails.length <= index)\r\n this._childDetails.push(new TraversalDetails());\r\n\r\n return this._childDetails[index];\r\n }\r\n\r\n public combine(parentDetails: TraversalDetails) {\r\n parentDetails.queuedChildren.length = 0;\r\n parentDetails.childrenLoading = false;\r\n parentDetails.childrenSelected = false;\r\n for (const child of this._childDetails) {\r\n parentDetails.childrenLoading = parentDetails.childrenLoading || child.childrenLoading;\r\n parentDetails.childrenSelected = parentDetails.childrenSelected || child.childrenSelected;\r\n for (const queuedChild of child.queuedChildren)\r\n parentDetails.queuedChildren.push(queuedChild);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class TraversalSelectionContext {\r\n public preloaded = new Set<RealityTile>();\r\n public missing = new Array<RealityTile>();\r\n public get selectionCountExceeded() { return this._maxSelectionCount === undefined ? false : (this.missing.length + this.selected.length) > this._maxSelectionCount; } // Avoid selecting excessive number of tiles.\r\n constructor(public selected: Tile[], public displayedDescendants: Tile[][], public preloadDebugBuilder?: GraphicBuilder, private _maxSelectionCount?: number) { }\r\n\r\n public selectOrQueue(tile: RealityTile, args: TileDrawArgs, traversalDetails: TraversalDetails) {\r\n tile.selectSecondaryTiles(args, this);\r\n tile.markUsed(args);\r\n if (tile.isReady) {\r\n args.markReady(tile);\r\n this.selected.push(tile);\r\n tile.markDisplayed();\r\n this.displayedDescendants.push((traversalDetails.childrenSelected) ? traversalDetails.queuedChildren.slice() : []);\r\n traversalDetails.queuedChildren.length = 0;\r\n traversalDetails.childrenLoading = false;\r\n traversalDetails.childrenSelected = true;\r\n } else if (!tile.isNotFound) {\r\n traversalDetails.queuedChildren.push(tile);\r\n if (!tile.isLoaded)\r\n this.missing.push(tile);\r\n }\r\n }\r\n\r\n public preload(tile: RealityTile, args: TileDrawArgs): void {\r\n if (!this.preloaded.has(tile)) {\r\n if (this.preloadDebugBuilder)\r\n tile.addBoundingGraphic(this.preloadDebugBuilder, ColorDef.red);\r\n\r\n tile.markUsed(args);\r\n tile.selectSecondaryTiles(args, this);\r\n this.preloaded.add(tile);\r\n if (!tile.isNotFound && !tile.isLoaded)\r\n this.missing.push(tile);\r\n }\r\n }\r\n\r\n public select(tiles: RealityTile[], args: TileDrawArgs): void {\r\n for (const tile of tiles) {\r\n tile.markUsed(args);\r\n this.selected.push(tile);\r\n this.displayedDescendants.push([]);\r\n }\r\n }\r\n}\r\n\r\nconst scratchFrustum = new Frustum();\r\nconst scratchFrustumPlanes = new FrustumPlanes();\r\nconst scratchCarto = Cartographic.createZero();\r\nconst scratchPoint = Point3d.createZero(), scratchOrigin = Point3d.createZero();\r\nconst scratchRange = Range3d.createNull();\r\nconst scratchX = Vector3d.createZero(), scratchY = Vector3d.createZero(), scratchZ = Vector3d.createZero();\r\nconst scratchMatrix = Matrix3d.createZero(), scratchTransform = Transform.createZero();\r\n\r\ninterface ChildReprojection {\r\n child: RealityTile;\r\n ecefCenter: Point3d;\r\n dbPoints: Point3d[]; // Center, xEnd, yEnd, zEnd\r\n}\r\n\r\n/** @internal */\r\nexport interface RealityTileTreeParams extends TileTreeParams {\r\n readonly loader: RealityTileLoader;\r\n readonly yAxisUp?: boolean;\r\n readonly rootTile: RealityTileParams;\r\n readonly rootToEcef?: Transform;\r\n readonly gcsConverterAvailable: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class RealityTileTree extends TileTree {\r\n public traversalChildrenByDepth: TraversalChildrenDetails[] = [];\r\n public readonly loader: RealityTileLoader;\r\n public readonly yAxisUp: boolean;\r\n public cartesianRange: Range3d;\r\n public cartesianTransitionDistance: number;\r\n protected _gcsConverter: GeoConverter | undefined;\r\n protected _rootTile: RealityTile;\r\n protected _rootToEcef?: Transform;\r\n protected _ecefToDb?: Transform;\r\n\r\n public constructor(params: RealityTileTreeParams) {\r\n super(params);\r\n this.loader = params.loader;\r\n this.yAxisUp = true === params.yAxisUp;\r\n this._rootTile = this.createTile(params.rootTile);\r\n this.cartesianRange = BackgroundMapGeometry.getCartesianRange(this.iModel);\r\n this.cartesianTransitionDistance = this.cartesianRange.diagonal().magnitudeXY() * .25; // Transition distance from elliptical to cartesian.\r\n this._gcsConverter = params.gcsConverterAvailable ? params.iModel.geoServices.getConverter(\"WGS84\") : undefined;\r\n if (params.rootToEcef) {\r\n this._rootToEcef = params.rootToEcef;\r\n const dbToRoot = this.iModelTransform.inverse();\r\n if (dbToRoot) {\r\n const dbToEcef = this._rootToEcef.multiplyTransformTransform(dbToRoot);\r\n this._ecefToDb = dbToEcef.inverse();\r\n }\r\n }\r\n }\r\n public get rootTile(): RealityTile { return this._rootTile; }\r\n public get is3d() { return true; }\r\n public get maxDepth() { return this.loader.maxDepth; }\r\n public get minDepth() { return this.loader.minDepth; }\r\n public override get isContentUnbounded() { return this.loader.isContentUnbounded; }\r\n public get isTransparent() { return false; }\r\n\r\n protected _selectTiles(args: TileDrawArgs): Tile[] { return this.selectRealityTiles(args, []); }\r\n public get viewFlagOverrides(): ViewFlagOverrides { return this.loader.viewFlagOverrides; }\r\n public override get parentsAndChildrenExclusive() { return this.loader.parentsAndChildrenExclusive; }\r\n\r\n public createTile(props: TileParams): RealityTile { return new RealityTile(props, this); }\r\n\r\n /** Collect tiles from this tile tree based on the criteria implemented by `collector`. */\r\n public override collectTileGeometry(collector: TileGeometryCollector): void {\r\n this.rootTile.collectTileGeometry(collector);\r\n }\r\n\r\n public prune(): void {\r\n const olderThan = BeTimePoint.now().minus(this.expirationTime);\r\n this.rootTile.purgeContents(olderThan);\r\n }\r\n\r\n public draw(args: TileDrawArgs): void {\r\n const displayedTileDescendants = new Array<RealityTile[]>();\r\n const debugControl = args.context.target.debugControl;\r\n const selectBuilder = (debugControl && debugControl.displayRealityTileRanges) ? args.context.createSceneGraphicBuilder() : undefined;\r\n const preloadDebugBuilder = (debugControl && debugControl.displayRealityTilePreload) ? args.context.createSceneGraphicBuilder() : undefined;\r\n const graphicTypeBranches = new Map<TileGraphicType, GraphicBranch>();\r\n\r\n const selectedTiles = this.selectRealityTiles(args, displayedTileDescendants, preloadDebugBuilder);\r\n let sortIndices;\r\n\r\n if (!this.parentsAndChildrenExclusive) {\r\n sortIndices = selectedTiles.map((_x, i) => i);\r\n sortIndices.sort((a, b) => selectedTiles[a].depth - selectedTiles[b].depth);\r\n }\r\n\r\n if (! (args instanceof GraphicsCollectorDrawArgs))\r\n this.collectClassifierGraphics(args, selectedTiles);\r\n\r\n assert(selectedTiles.length === displayedTileDescendants.length);\r\n for (let i = 0; i < selectedTiles.length; i++) {\r\n const index = sortIndices ? sortIndices[i] : i;\r\n const selectedTile = selectedTiles[index];\r\n const graphics = args.getTileGraphics(selectedTile);\r\n const tileGraphicType = selectedTile.graphicType;\r\n let targetBranch;\r\n if (undefined !== tileGraphicType && tileGraphicType !== args.context.graphicType) {\r\n if (!(targetBranch = graphicTypeBranches.get(tileGraphicType))) {\r\n graphicTypeBranches.set(tileGraphicType, targetBranch = new GraphicBranch(false));\r\n targetBranch.setViewFlagOverrides(args.graphics.viewFlagOverrides);\r\n targetBranch.symbologyOverrides = args.graphics.symbologyOverrides;\r\n }\r\n }\r\n\r\n if (!targetBranch)\r\n targetBranch = args.graphics;\r\n\r\n if (undefined !== graphics) {\r\n const displayedDescendants = displayedTileDescendants[index];\r\n if (0 === displayedDescendants.length || !this.loader.parentsAndChildrenExclusive || selectedTile.allChildrenIncluded(displayedDescendants)) {\r\n targetBranch.add(graphics);\r\n if (selectBuilder) selectedTile.addBoundingGraphic(selectBuilder, ColorDef.green);\r\n } else {\r\n if (selectBuilder)\r\n selectedTile.addBoundingGraphic(selectBuilder, ColorDef.red);\r\n\r\n for (const displayedDescendant of displayedDescendants) {\r\n const clipVector = displayedDescendant.getContentClip();\r\n if (selectBuilder)\r\n displayedDescendant.addBoundingGraphic(selectBuilder, ColorDef.blue);\r\n\r\n if (undefined === clipVector) {\r\n targetBranch.add(graphics);\r\n } else {\r\n clipVector.transformInPlace(args.location);\r\n if (!this.isTransparent)\r\n for (const primitive of clipVector.clips)\r\n for (const clipPlanes of primitive.fetchClipPlanesRef()!.convexSets)\r\n for (const plane of clipPlanes.planes)\r\n plane.offsetDistance(-displayedDescendant.radius * .05); // Overlap with existing (high resolution) tile slightly to avoid cracks.\r\n\r\n const branch = new GraphicBranch(false);\r\n branch.add(graphics);\r\n const clipVolume = args.context.target.renderSystem.createClipVolume(clipVector);\r\n targetBranch.add(args.context.createGraphicBranch(branch, Transform.createIdentity(), { clipVolume }));\r\n }\r\n }\r\n }\r\n if (preloadDebugBuilder)\r\n targetBranch.add(preloadDebugBuilder.finish());\r\n\r\n if (selectBuilder)\r\n targetBranch.add(selectBuilder.finish());\r\n\r\n const rangeGraphic = selectedTile.getRangeGraphic(args.context);\r\n if (undefined !== rangeGraphic)\r\n targetBranch.add(rangeGraphic);\r\n }\r\n }\r\n\r\n args.drawGraphics();\r\n for (const graphicTypeBranch of graphicTypeBranches) {\r\n args.drawGraphicsWithType(graphicTypeBranch[0], graphicTypeBranch[1]);\r\n }\r\n }\r\n protected collectClassifierGraphics(args: TileDrawArgs, selectedTiles: RealityTile[]) {\r\n const classifier = args.context.planarClassifiers.get(this.modelId);\r\n if (classifier)\r\n classifier.collectGraphics(args.context, { modelId: this.modelId, tiles: selectedTiles, location: args.location, isPointCloud: this.isPointCloud });\r\n }\r\n\r\n public getTraversalChildren(depth: number) {\r\n while (this.traversalChildrenByDepth.length <= depth)\r\n this.traversalChildrenByDepth.push(new TraversalChildrenDetails());\r\n\r\n return this.traversalChildrenByDepth[depth];\r\n }\r\n\r\n public doReprojectChildren(tile: Tile): boolean {\r\n if (!(tile instanceof RealityTile) || !tile.region || this._gcsConverter === undefined || this._rootToEcef === undefined || undefined === this._ecefToDb)\r\n return false;\r\n\r\n const tileRange = this.iModelTransform.isIdentity ? tile.range : this.iModelTransform.multiplyRange(tile.range, scratchRange);\r\n\r\n return this.cartesianRange.intersectsRange(tileRange);\r\n }\r\n\r\n public reprojectAndResolveChildren(parent: Tile, children: Tile[], resolve: (children: Tile[] | undefined) => void): void {\r\n if (!this.doReprojectChildren(parent)) {\r\n resolve(children);\r\n return;\r\n }\r\n\r\n const ecefToDb = this._ecefToDb!; // Tested for undefined in doReprojectChildren\r\n const rootToDb = this.iModelTransform;\r\n const dbToEcef = ecefToDb.inverse()!;\r\n const reprojectChildren = new Array<ChildReprojection>();\r\n for (const child of children) {\r\n const realityChild = child as RealityTile;\r\n const childRange = realityChild.rangeCorners ? Range3d.createTransformedArray(rootToDb, realityChild.rangeCorners) : rootToDb.multiplyRange(realityChild.contentRange, scratchRange);\r\n const dbCenter = childRange.center;\r\n const ecefCenter = dbToEcef.multiplyPoint3d(dbCenter);\r\n const dbPoints = [dbCenter, dbCenter.plusXYZ(1), dbCenter.plusXYZ(0, 1), dbCenter.plusXYZ(0, 0, 1)];\r\n reprojectChildren.push({ child: realityChild, ecefCenter, dbPoints });\r\n }\r\n if (reprojectChildren.length === 0)\r\n resolve(children);\r\n else {\r\n const requestProps = new Array<XYZProps>();\r\n\r\n for (const reprojection of reprojectChildren) {\r\n for (const dbPoint of reprojection.dbPoints) {\r\n const ecefPoint = dbToEcef.multiplyPoint3d(dbPoint);\r\n const carto = Cartographic.fromEcef(ecefPoint, scratchCarto);\r\n if (carto)\r\n requestProps.push({ x: carto.longitudeDegrees, y: carto.latitudeDegrees, z: carto.height });\r\n\r\n }\r\n }\r\n\r\n if (requestProps.length !== 4 * reprojectChildren.length)\r\n resolve(children);\r\n else {\r\n this._gcsConverter!.getIModelCoordinatesFromGeoCoordinates(requestProps).then((response) => {\r\n\r\n const reprojectedCoords = response.iModelCoords;\r\n const dbToRoot = rootToDb.inverse()!;\r\n const getReprojectedPoint = (original: Point3d, reprojectedXYZ: XYZProps) => {\r\n scratchPoint.setFromJSON(reprojectedXYZ);\r\n const cartesianDistance = this.cartesianRange.distanceToPoint(scratchPoint);\r\n if (cartesianDistance < this.cartesianTransitionDistance)\r\n return scratchPoint.interpolate(cartesianDistance / this.cartesianTransitionDistance, original, scratchPoint);\r\n else\r\n return original;\r\n };\r\n\r\n let responseIndex = 0;\r\n for (const reprojection of reprojectChildren) {\r\n if (reprojectedCoords.every((coord) => coord.s === GeoCoordStatus.Success)) {\r\n const reprojectedOrigin = getReprojectedPoint(reprojection.dbPoints[0], reprojectedCoords[responseIndex++].p).clone(scratchOrigin);\r\n const xVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[1], reprojectedCoords[responseIndex++].p), scratchX);\r\n const yVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[2], reprojectedCoords[responseIndex++].p), scratchY);\r\n const zVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[3], reprojectedCoords[responseIndex++].p), scratchZ);\r\n const matrix = Matrix3d.createColumns(xVector, yVector, zVector, scratchMatrix);\r\n if (matrix !== undefined) {\r\n const dbReprojection = Transform.createMatrixPickupPutdown(matrix, reprojection.dbPoints[0], reprojectedOrigin, scratchTransform);\r\n if (dbReprojection) {\r\n const rootReprojection = dbToRoot.multiplyTransformTransform(dbReprojection).multiplyTransformTransform(rootToDb);\r\n reprojection.child.reproject(rootReprojection);\r\n }\r\n }\r\n }\r\n }\r\n\r\n resolve(children);\r\n }).catch(() => {\r\n resolve(children); // Error occured in reprojection - just resolve with unprojected corners.\r\n });\r\n }\r\n }\r\n }\r\n\r\n public getBaseRealityDepth(_sceneContext: SceneContext) { return -1; }\r\n\r\n public selectRealityTiles(args: TileDrawArgs, displayedDescendants: RealityTile[][], preloadDebugBuilder?: GraphicBuilder): RealityTile[] {\r\n this._lastSelected = BeTimePoint.now();\r\n const selected: RealityTile[] = [];\r\n const context = new TraversalSelectionContext(selected, displayedDescendants, preloadDebugBuilder, args.maxRealityTreeSelectionCount);\r\n const rootTile = this.rootTile;\r\n const debugControl = args.context.target.debugControl;\r\n const freezeTiles = debugControl && debugControl.freezeRealityTiles;\r\n\r\n rootTile.selectRealityTiles(context, args, new TraversalDetails());\r\n\r\n const baseDepth = this.getBaseRealityDepth(args.context);\r\n\r\n if (!args.context.target.renderSystem.isMobile && 0 === context.missing.length) { // We skip preloading on mobile devices.\r\n if (baseDepth > 0) // Maps may force loading of low level globe tiles.\r\n rootTile.preloadRealityTilesAtDepth(baseDepth, context, args);\r\n\r\n if (!freezeTiles)\r\n this.preloadTilesForScene(args, context, undefined);\r\n }\r\n\r\n if (!freezeTiles)\r\n for (const tile of context.missing) {\r\n const loadableTile = tile.loadableTile;\r\n\r\n loadableTile.markUsed(args);\r\n args.insertMissing(loadableTile);\r\n }\r\n\r\n if (debugControl && debugControl.logRealityTiles) {\r\n this.logTiles(\"Selected: \", selected.values());\r\n const preloaded = [];\r\n for (const tile of context.preloaded)\r\n preloaded.push(tile);\r\n\r\n this.logTiles(\"Preloaded: \", preloaded.values());\r\n this.logTiles(\"Missing: \", context.missing.values());\r\n\r\n const imageryTiles: RealityTile[] = [];\r\n for (const selectedTile of selected) {\r\n if (selectedTile instanceof MapTile) {\r\n const selectedImageryTiles = (selectedTile).imageryTiles;\r\n if (selectedImageryTiles)\r\n selectedImageryTiles.forEach((tile) => imageryTiles.push(tile));\r\n }\r\n }\r\n if (imageryTiles.length)\r\n this.logTiles(\"Imagery:\", imageryTiles.values());\r\n }\r\n\r\n IModelApp.tileAdmin.addTilesForUser(args.context.viewport, selected, args.readyTiles);\r\n return selected;\r\n }\r\n\r\n public preloadTilesForScene(args: TileDrawArgs, context: TraversalSelectionContext, frustumTransform?: Transform) {\r\n const preloadFrustum = args.viewingSpace.getPreloadFrustum(frustumTransform, scratchFrustum);\r\n const preloadFrustumPlanes = new FrustumPlanes(preloadFrustum);\r\n const worldToNpc = preloadFrustum.toMap4d();\r\n const preloadWorldToViewMap = args.viewingSpace.calcNpcToView().multiplyMapMap(worldToNpc!);\r\n const preloadArgs = new RealityTileDrawArgs(args, preloadWorldToViewMap, preloadFrustumPlanes);\r\n\r\n scratchFrustumPlanes.init(preloadFrustum);\r\n if (context.preloadDebugBuilder) {\r\n context.preloadDebugBuilder.setSymbology(ColorDef.blue, ColorDef.blue, 2, 0);\r\n context.preloadDebugBuilder.addFrustum(preloadFrustum);\r\n }\r\n\r\n this.rootTile.preloadTilesInFrustum(preloadArgs, context, 2);\r\n }\r\n\r\n protected logTiles(label: string, tiles: IterableIterator<Tile>) {\r\n let depthString = \"\";\r\n let min = 10000, max = -10000;\r\n let count = 0;\r\n const depthMap = new Map<number, number>();\r\n for (const tile of tiles) {\r\n count++;\r\n const depth = tile.depth;\r\n min = Math.min(min, tile.depth);\r\n max = Math.max(max, tile.depth);\r\n const found = depthMap.get(depth);\r\n depthMap.set(depth, found === undefined ? 1 : found + 1);\r\n }\r\n\r\n depthMap.forEach((key, value) => depthString += `${key}-${value}, `);\r\n // eslint-disable-next-line no-console\r\n console.log(`${label}: ${count} Min: ${min} Max: ${max} Depths: ${depthString}`);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RealityTileTree.js","sourceRoot":"","sources":["../../../src/tile/RealityTileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, BeTimePoint } from \"@itwin/core-bentley\";\r\nimport {\r\n Matrix3d, Point3d, Range3d, Transform, Vector3d, XYZProps,\r\n} from \"@itwin/core-geometry\";\r\nimport { Cartographic, ColorDef, Frustum, FrustumPlanes, GeoCoordStatus, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { BackgroundMapGeometry } from \"../BackgroundMapGeometry\";\r\nimport { GeoConverter } from \"../GeoServices\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { GraphicBranch } from \"../render/GraphicBranch\";\r\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\r\nimport { SceneContext } from \"../ViewContext\";\r\nimport {\r\n GraphicsCollectorDrawArgs, MapTile, RealityTile, RealityTileDrawArgs, RealityTileLoader, RealityTileParams, Tile, TileDrawArgs, TileGeometryCollector,\r\n TileGraphicType, TileParams, TileTree, TileTreeParams,\r\n} from \"./internal\";\r\n\r\n/** @internal */\r\nexport class TraversalDetails {\r\n public queuedChildren = new Array<Tile>();\r\n public childrenLoading = false;\r\n public childrenSelected = false;\r\n\r\n public initialize() {\r\n this.queuedChildren.length = 0;\r\n this.childrenLoading = false;\r\n this.childrenSelected = false;\r\n }\r\n}\r\n/** @internal */\r\nexport class TraversalChildrenDetails {\r\n private _childDetails: TraversalDetails[] = [];\r\n\r\n public initialize() {\r\n for (const child of this._childDetails)\r\n child.initialize();\r\n }\r\n public getChildDetail(index: number) {\r\n while (this._childDetails.length <= index)\r\n this._childDetails.push(new TraversalDetails());\r\n\r\n return this._childDetails[index];\r\n }\r\n\r\n public combine(parentDetails: TraversalDetails) {\r\n parentDetails.queuedChildren.length = 0;\r\n parentDetails.childrenLoading = false;\r\n parentDetails.childrenSelected = false;\r\n for (const child of this._childDetails) {\r\n parentDetails.childrenLoading = parentDetails.childrenLoading || child.childrenLoading;\r\n parentDetails.childrenSelected = parentDetails.childrenSelected || child.childrenSelected;\r\n for (const queuedChild of child.queuedChildren)\r\n parentDetails.queuedChildren.push(queuedChild);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class TraversalSelectionContext {\r\n public preloaded = new Set<RealityTile>();\r\n public missing = new Array<RealityTile>();\r\n public get selectionCountExceeded() { return this._maxSelectionCount === undefined ? false : (this.missing.length + this.selected.length) > this._maxSelectionCount; } // Avoid selecting excessive number of tiles.\r\n constructor(public selected: Tile[], public displayedDescendants: Tile[][], public preloadDebugBuilder?: GraphicBuilder, private _maxSelectionCount?: number) { }\r\n\r\n public selectOrQueue(tile: RealityTile, args: TileDrawArgs, traversalDetails: TraversalDetails) {\r\n tile.selectSecondaryTiles(args, this);\r\n tile.markUsed(args);\r\n if (tile.isReady) {\r\n args.markReady(tile);\r\n this.selected.push(tile);\r\n tile.markDisplayed();\r\n this.displayedDescendants.push((traversalDetails.childrenSelected) ? traversalDetails.queuedChildren.slice() : []);\r\n traversalDetails.queuedChildren.length = 0;\r\n traversalDetails.childrenLoading = false;\r\n traversalDetails.childrenSelected = true;\r\n } else if (!tile.isNotFound) {\r\n traversalDetails.queuedChildren.push(tile);\r\n if (!tile.isLoaded)\r\n this.missing.push(tile);\r\n }\r\n }\r\n\r\n public preload(tile: RealityTile, args: TileDrawArgs): void {\r\n if (!this.preloaded.has(tile)) {\r\n if (this.preloadDebugBuilder)\r\n tile.addBoundingGraphic(this.preloadDebugBuilder, ColorDef.red);\r\n\r\n tile.markUsed(args);\r\n tile.selectSecondaryTiles(args, this);\r\n this.preloaded.add(tile);\r\n if (!tile.isNotFound && !tile.isLoaded)\r\n this.missing.push(tile);\r\n }\r\n }\r\n\r\n public select(tiles: RealityTile[], args: TileDrawArgs): void {\r\n for (const tile of tiles) {\r\n tile.markUsed(args);\r\n this.selected.push(tile);\r\n this.displayedDescendants.push([]);\r\n }\r\n }\r\n}\r\n\r\nconst scratchFrustum = new Frustum();\r\nconst scratchFrustumPlanes = new FrustumPlanes();\r\nconst scratchCarto = Cartographic.createZero();\r\nconst scratchPoint = Point3d.createZero(), scratchOrigin = Point3d.createZero();\r\nconst scratchRange = Range3d.createNull();\r\nconst scratchX = Vector3d.createZero(), scratchY = Vector3d.createZero(), scratchZ = Vector3d.createZero();\r\nconst scratchMatrix = Matrix3d.createZero(), scratchTransform = Transform.createZero();\r\n\r\ninterface ChildReprojection {\r\n child: RealityTile;\r\n ecefCenter: Point3d;\r\n dbPoints: Point3d[]; // Center, xEnd, yEnd, zEnd\r\n}\r\n\r\n/** @internal */\r\nexport interface RealityTileTreeParams extends TileTreeParams {\r\n readonly loader: RealityTileLoader;\r\n readonly yAxisUp?: boolean;\r\n readonly rootTile: RealityTileParams;\r\n readonly rootToEcef?: Transform;\r\n readonly gcsConverterAvailable: boolean;\r\n}\r\n\r\n/** Base class for a [[TileTree]] representing a reality model (e.g., a point cloud or photogrammetry mesh) or 3d terrain with map imagery.\r\n * The tiles within the tree are instances of [[RealityTile]]s.\r\n * @beta\r\n */\r\nexport class RealityTileTree extends TileTree {\r\n /** @internal */\r\n public traversalChildrenByDepth: TraversalChildrenDetails[] = [];\r\n /** @internal */\r\n public readonly loader: RealityTileLoader;\r\n /** @internal */\r\n public readonly yAxisUp: boolean;\r\n /** @internal */\r\n public cartesianRange: Range3d;\r\n /** @internal */\r\n public cartesianTransitionDistance: number;\r\n /** @internal */\r\n protected _gcsConverter: GeoConverter | undefined;\r\n /** @internal */\r\n protected _rootTile: RealityTile;\r\n /** @internal */\r\n protected _rootToEcef?: Transform;\r\n /** @internal */\r\n protected _ecefToDb?: Transform;\r\n\r\n /** @internal */\r\n public constructor(params: RealityTileTreeParams) {\r\n super(params);\r\n this.loader = params.loader;\r\n this.yAxisUp = true === params.yAxisUp;\r\n this._rootTile = this.createTile(params.rootTile);\r\n this.cartesianRange = BackgroundMapGeometry.getCartesianRange(this.iModel);\r\n this.cartesianTransitionDistance = this.cartesianRange.diagonal().magnitudeXY() * .25; // Transition distance from elliptical to cartesian.\r\n this._gcsConverter = params.gcsConverterAvailable ? params.iModel.geoServices.getConverter(\"WGS84\") : undefined;\r\n if (params.rootToEcef) {\r\n this._rootToEcef = params.rootToEcef;\r\n const dbToRoot = this.iModelTransform.inverse();\r\n if (dbToRoot) {\r\n const dbToEcef = this._rootToEcef.multiplyTransformTransform(dbToRoot);\r\n this._ecefToDb = dbToEcef.inverse();\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get rootTile(): RealityTile { return this._rootTile; }\r\n /** @internal */\r\n public get is3d() { return true; }\r\n /** @internal */\r\n public get maxDepth() { return this.loader.maxDepth; }\r\n /** @internal */\r\n public get minDepth() { return this.loader.minDepth; }\r\n /** @internal */\r\n public override get isContentUnbounded() { return this.loader.isContentUnbounded; }\r\n /** @internal */\r\n public get isTransparent() { return false; }\r\n\r\n /** @internal */\r\n protected _selectTiles(args: TileDrawArgs): Tile[] { return this.selectRealityTiles(args, []); }\r\n /** @internal */\r\n public get viewFlagOverrides(): ViewFlagOverrides { return this.loader.viewFlagOverrides; }\r\n /** @internal */\r\n public override get parentsAndChildrenExclusive() { return this.loader.parentsAndChildrenExclusive; }\r\n\r\n /** @internal */\r\n public createTile(props: TileParams): RealityTile { return new RealityTile(props, this); }\r\n\r\n /** Collect tiles from this tile tree based on the criteria implemented by `collector`.\r\n * @internal\r\n */\r\n public override collectTileGeometry(collector: TileGeometryCollector): void {\r\n this.rootTile.collectTileGeometry(collector);\r\n }\r\n\r\n /** @internal */\r\n public prune(): void {\r\n const olderThan = BeTimePoint.now().minus(this.expirationTime);\r\n this.rootTile.purgeContents(olderThan);\r\n }\r\n\r\n /** @internal */\r\n public draw(args: TileDrawArgs): void {\r\n const displayedTileDescendants = new Array<RealityTile[]>();\r\n const debugControl = args.context.target.debugControl;\r\n const selectBuilder = (debugControl && debugControl.displayRealityTileRanges) ? args.context.createSceneGraphicBuilder() : undefined;\r\n const preloadDebugBuilder = (debugControl && debugControl.displayRealityTilePreload) ? args.context.createSceneGraphicBuilder() : undefined;\r\n const graphicTypeBranches = new Map<TileGraphicType, GraphicBranch>();\r\n\r\n const selectedTiles = this.selectRealityTiles(args, displayedTileDescendants, preloadDebugBuilder);\r\n args.processSelectedTiles(selectedTiles);\r\n let sortIndices;\r\n\r\n if (!this.parentsAndChildrenExclusive) {\r\n sortIndices = selectedTiles.map((_x, i) => i);\r\n sortIndices.sort((a, b) => selectedTiles[a].depth - selectedTiles[b].depth);\r\n }\r\n\r\n if (! (args instanceof GraphicsCollectorDrawArgs))\r\n this.collectClassifierGraphics(args, selectedTiles);\r\n\r\n assert(selectedTiles.length === displayedTileDescendants.length);\r\n for (let i = 0; i < selectedTiles.length; i++) {\r\n const index = sortIndices ? sortIndices[i] : i;\r\n const selectedTile = selectedTiles[index];\r\n const graphics = args.getTileGraphics(selectedTile);\r\n const tileGraphicType = selectedTile.graphicType;\r\n let targetBranch;\r\n if (undefined !== tileGraphicType && tileGraphicType !== args.context.graphicType) {\r\n if (!(targetBranch = graphicTypeBranches.get(tileGraphicType))) {\r\n graphicTypeBranches.set(tileGraphicType, targetBranch = new GraphicBranch(false));\r\n targetBranch.setViewFlagOverrides(args.graphics.viewFlagOverrides);\r\n targetBranch.symbologyOverrides = args.graphics.symbologyOverrides;\r\n }\r\n }\r\n\r\n if (!targetBranch)\r\n targetBranch = args.graphics;\r\n\r\n if (undefined !== graphics) {\r\n const displayedDescendants = displayedTileDescendants[index];\r\n if (0 === displayedDescendants.length || !this.loader.parentsAndChildrenExclusive || selectedTile.allChildrenIncluded(displayedDescendants)) {\r\n targetBranch.add(graphics);\r\n if (selectBuilder)\r\n selectedTile.addBoundingGraphic(selectBuilder, ColorDef.green);\r\n } else {\r\n if (selectBuilder)\r\n selectedTile.addBoundingGraphic(selectBuilder, ColorDef.red);\r\n\r\n for (const displayedDescendant of displayedDescendants) {\r\n const clipVector = displayedDescendant.getContentClip();\r\n if (selectBuilder)\r\n displayedDescendant.addBoundingGraphic(selectBuilder, ColorDef.blue);\r\n\r\n if (undefined === clipVector) {\r\n targetBranch.add(graphics);\r\n } else {\r\n clipVector.transformInPlace(args.location);\r\n if (!this.isTransparent)\r\n for (const primitive of clipVector.clips)\r\n for (const clipPlanes of primitive.fetchClipPlanesRef()!.convexSets)\r\n for (const plane of clipPlanes.planes)\r\n plane.offsetDistance(-displayedDescendant.radius * .05); // Overlap with existing (high resolution) tile slightly to avoid cracks.\r\n\r\n const branch = new GraphicBranch(false);\r\n branch.add(graphics);\r\n const clipVolume = args.context.target.renderSystem.createClipVolume(clipVector);\r\n targetBranch.add(args.context.createGraphicBranch(branch, Transform.createIdentity(), { clipVolume }));\r\n }\r\n }\r\n }\r\n if (preloadDebugBuilder)\r\n targetBranch.add(preloadDebugBuilder.finish());\r\n\r\n if (selectBuilder)\r\n targetBranch.add(selectBuilder.finish());\r\n\r\n const rangeGraphic = selectedTile.getRangeGraphic(args.context);\r\n if (undefined !== rangeGraphic)\r\n targetBranch.add(rangeGraphic);\r\n }\r\n }\r\n\r\n args.drawGraphics();\r\n for (const graphicTypeBranch of graphicTypeBranches) {\r\n args.drawGraphicsWithType(graphicTypeBranch[0], graphicTypeBranch[1]);\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected collectClassifierGraphics(args: TileDrawArgs, selectedTiles: RealityTile[]) {\r\n const classifier = args.context.planarClassifiers.get(this.modelId);\r\n if (classifier)\r\n classifier.collectGraphics(args.context, { modelId: this.modelId, tiles: selectedTiles, location: args.location, isPointCloud: this.isPointCloud });\r\n }\r\n\r\n /** @internal */\r\n public getTraversalChildren(depth: number) {\r\n while (this.traversalChildrenByDepth.length <= depth)\r\n this.traversalChildrenByDepth.push(new TraversalChildrenDetails());\r\n\r\n return this.traversalChildrenByDepth[depth];\r\n }\r\n\r\n /** @internal */\r\n public doReprojectChildren(tile: Tile): boolean {\r\n if (!(tile instanceof RealityTile) || !tile.region || this._gcsConverter === undefined || this._rootToEcef === undefined || undefined === this._ecefToDb)\r\n return false;\r\n\r\n const tileRange = this.iModelTransform.isIdentity ? tile.range : this.iModelTransform.multiplyRange(tile.range, scratchRange);\r\n\r\n return this.cartesianRange.intersectsRange(tileRange);\r\n }\r\n\r\n /** @internal */\r\n public reprojectAndResolveChildren(parent: Tile, children: Tile[], resolve: (children: Tile[] | undefined) => void): void {\r\n if (!this.doReprojectChildren(parent)) {\r\n resolve(children);\r\n return;\r\n }\r\n\r\n const ecefToDb = this._ecefToDb!; // Tested for undefined in doReprojectChildren\r\n const rootToDb = this.iModelTransform;\r\n const dbToEcef = ecefToDb.inverse()!;\r\n const reprojectChildren = new Array<ChildReprojection>();\r\n for (const child of children) {\r\n const realityChild = child as RealityTile;\r\n const childRange = realityChild.rangeCorners ? Range3d.createTransformedArray(rootToDb, realityChild.rangeCorners) : rootToDb.multiplyRange(realityChild.contentRange, scratchRange);\r\n const dbCenter = childRange.center;\r\n const ecefCenter = dbToEcef.multiplyPoint3d(dbCenter);\r\n const dbPoints = [dbCenter, dbCenter.plusXYZ(1), dbCenter.plusXYZ(0, 1), dbCenter.plusXYZ(0, 0, 1)];\r\n reprojectChildren.push({ child: realityChild, ecefCenter, dbPoints });\r\n }\r\n if (reprojectChildren.length === 0)\r\n resolve(children);\r\n else {\r\n const requestProps = new Array<XYZProps>();\r\n\r\n for (const reprojection of reprojectChildren) {\r\n for (const dbPoint of reprojection.dbPoints) {\r\n const ecefPoint = dbToEcef.multiplyPoint3d(dbPoint);\r\n const carto = Cartographic.fromEcef(ecefPoint, scratchCarto);\r\n if (carto)\r\n requestProps.push({ x: carto.longitudeDegrees, y: carto.latitudeDegrees, z: carto.height });\r\n\r\n }\r\n }\r\n\r\n if (requestProps.length !== 4 * reprojectChildren.length)\r\n resolve(children);\r\n else {\r\n this._gcsConverter!.getIModelCoordinatesFromGeoCoordinates(requestProps).then((response) => {\r\n\r\n const reprojectedCoords = response.iModelCoords;\r\n const dbToRoot = rootToDb.inverse()!;\r\n const getReprojectedPoint = (original: Point3d, reprojectedXYZ: XYZProps) => {\r\n scratchPoint.setFromJSON(reprojectedXYZ);\r\n const cartesianDistance = this.cartesianRange.distanceToPoint(scratchPoint);\r\n if (cartesianDistance < this.cartesianTransitionDistance)\r\n return scratchPoint.interpolate(cartesianDistance / this.cartesianTransitionDistance, original, scratchPoint);\r\n else\r\n return original;\r\n };\r\n\r\n let responseIndex = 0;\r\n for (const reprojection of reprojectChildren) {\r\n if (reprojectedCoords.every((coord) => coord.s === GeoCoordStatus.Success)) {\r\n const reprojectedOrigin = getReprojectedPoint(reprojection.dbPoints[0], reprojectedCoords[responseIndex++].p).clone(scratchOrigin);\r\n const xVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[1], reprojectedCoords[responseIndex++].p), scratchX);\r\n const yVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[2], reprojectedCoords[responseIndex++].p), scratchY);\r\n const zVector = Vector3d.createStartEnd(reprojectedOrigin, getReprojectedPoint(reprojection.dbPoints[3], reprojectedCoords[responseIndex++].p), scratchZ);\r\n const matrix = Matrix3d.createColumns(xVector, yVector, zVector, scratchMatrix);\r\n if (matrix !== undefined) {\r\n const dbReprojection = Transform.createMatrixPickupPutdown(matrix, reprojection.dbPoints[0], reprojectedOrigin, scratchTransform);\r\n if (dbReprojection) {\r\n const rootReprojection = dbToRoot.multiplyTransformTransform(dbReprojection).multiplyTransformTransform(rootToDb);\r\n reprojection.child.reproject(rootReprojection);\r\n }\r\n }\r\n }\r\n }\r\n\r\n resolve(children);\r\n }).catch(() => {\r\n resolve(children); // Error occured in reprojection - just resolve with unprojected corners.\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n public getBaseRealityDepth(_sceneContext: SceneContext) { return -1; }\r\n\r\n /** @internal */\r\n public selectRealityTiles(args: TileDrawArgs, displayedDescendants: RealityTile[][], preloadDebugBuilder?: GraphicBuilder): RealityTile[] {\r\n this._lastSelected = BeTimePoint.now();\r\n const selected: RealityTile[] = [];\r\n const context = new TraversalSelectionContext(selected, displayedDescendants, preloadDebugBuilder, args.maxRealityTreeSelectionCount);\r\n const rootTile = this.rootTile;\r\n const debugControl = args.context.target.debugControl;\r\n const freezeTiles = debugControl && debugControl.freezeRealityTiles;\r\n\r\n rootTile.selectRealityTiles(context, args, new TraversalDetails());\r\n\r\n const baseDepth = this.getBaseRealityDepth(args.context);\r\n\r\n if (!args.context.target.renderSystem.isMobile && 0 === context.missing.length) { // We skip preloading on mobile devices.\r\n if (baseDepth > 0) // Maps may force loading of low level globe tiles.\r\n rootTile.preloadRealityTilesAtDepth(baseDepth, context, args);\r\n\r\n if (!freezeTiles)\r\n this.preloadTilesForScene(args, context, undefined);\r\n }\r\n\r\n if (!freezeTiles)\r\n for (const tile of context.missing) {\r\n const loadableTile = tile.loadableTile;\r\n\r\n loadableTile.markUsed(args);\r\n args.insertMissing(loadableTile);\r\n }\r\n\r\n if (debugControl && debugControl.logRealityTiles) {\r\n this.logTiles(\"Selected: \", selected.values());\r\n const preloaded = [];\r\n for (const tile of context.preloaded)\r\n preloaded.push(tile);\r\n\r\n this.logTiles(\"Preloaded: \", preloaded.values());\r\n this.logTiles(\"Missing: \", context.missing.values());\r\n\r\n const imageryTiles: RealityTile[] = [];\r\n for (const selectedTile of selected) {\r\n if (selectedTile instanceof MapTile) {\r\n const selectedImageryTiles = (selectedTile).imageryTiles;\r\n if (selectedImageryTiles)\r\n selectedImageryTiles.forEach((tile) => imageryTiles.push(tile));\r\n }\r\n }\r\n if (imageryTiles.length)\r\n this.logTiles(\"Imagery:\", imageryTiles.values());\r\n }\r\n\r\n IModelApp.tileAdmin.addTilesForUser(args.context.viewport, selected, args.readyTiles);\r\n return selected;\r\n }\r\n\r\n /** @internal */\r\n public preloadTilesForScene(args: TileDrawArgs, context: TraversalSelectionContext, frustumTransform?: Transform) {\r\n const preloadFrustum = args.viewingSpace.getPreloadFrustum(frustumTransform, scratchFrustum);\r\n const preloadFrustumPlanes = new FrustumPlanes(preloadFrustum);\r\n const worldToNpc = preloadFrustum.toMap4d();\r\n const preloadWorldToViewMap = args.viewingSpace.calcNpcToView().multiplyMapMap(worldToNpc!);\r\n const preloadArgs = new RealityTileDrawArgs(args, preloadWorldToViewMap, preloadFrustumPlanes);\r\n\r\n scratchFrustumPlanes.init(preloadFrustum);\r\n if (context.preloadDebugBuilder) {\r\n context.preloadDebugBuilder.setSymbology(ColorDef.blue, ColorDef.blue, 2, 0);\r\n context.preloadDebugBuilder.addFrustum(preloadFrustum);\r\n }\r\n\r\n this.rootTile.preloadTilesInFrustum(preloadArgs, context, 2);\r\n }\r\n\r\n /** @internal */\r\n protected logTiles(label: string, tiles: IterableIterator<Tile>) {\r\n let depthString = \"\";\r\n let min = 10000, max = -10000;\r\n let count = 0;\r\n const depthMap = new Map<number, number>();\r\n for (const tile of tiles) {\r\n count++;\r\n const depth = tile.depth;\r\n min = Math.min(min, tile.depth);\r\n max = Math.max(max, tile.depth);\r\n const found = depthMap.get(depth);\r\n depthMap.set(depth, found === undefined ? 1 : found + 1);\r\n }\r\n\r\n depthMap.forEach((key, value) => depthString += `${key}-${value}, `);\r\n // eslint-disable-next-line no-console\r\n console.log(`${label}: ${count} Min: ${min} Max: ${max} Depths: ${depthString}`);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeDTileFormatInterpreter.d.ts","sourceRoot":"","sources":["../../../src/tile/ThreeDTileFormatInterpreter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqB,OAAO,EAAE,SAAS,EAAgC,MAAM,sBAAsB,CAAC;AAE3G,OAAO,EAAE,oBAAoB,EAAoB,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGzG;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD;;;GAGG;AACH,qBAAa,2BAA2B;IACtC;;;;;OAKG;WACW,4BAA4B,CAAC,IAAI,EAAE,GAAG,GAAG,yBAAyB;IA8EhF;;;;;OAKG;WACW,uBAAuB,CAAC,WAAW,EAAE,GAAG,GAAG,oBAAoB;IAW7E;;;;;OAKG;WACW,WAAW,CAAC,WAAW,EAAE,GAAG,GAAG,kBAAkB;IAM/D;;;;OAIG;WACW,uBAAuB,CAAC,cAAc,EAAE,GAAG,GAAG,OAAO,GAAG,SAAS;IA0B/E;;OAEG;WACW,iCAAiC,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAI/F;;OAEG;WACW,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;CAGrF"}
1
+ {"version":3,"file":"ThreeDTileFormatInterpreter.d.ts","sourceRoot":"","sources":["../../../src/tile/ThreeDTileFormatInterpreter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqB,OAAO,EAAE,SAAS,EAAgC,MAAM,sBAAsB,CAAC;AAE3G,OAAO,EAAE,oBAAoB,EAAoB,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGzG;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD;;;GAGG;AACH,qBAAa,2BAA2B;IACtC;;;;;OAKG;WACW,4BAA4B,CAAC,IAAI,EAAE,GAAG,GAAG,yBAAyB;IAkFhF;;;;;OAKG;WACW,uBAAuB,CAAC,WAAW,EAAE,GAAG,GAAG,oBAAoB;IAW7E;;;;;OAKG;WACW,WAAW,CAAC,WAAW,EAAE,GAAG,GAAG,kBAAkB;IAM/D;;;;OAIG;WACW,uBAAuB,CAAC,cAAc,EAAE,GAAG,GAAG,OAAO,GAAG,SAAS;IA0B/E;;OAEG;WACW,iCAAiC,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAI/F;;OAEG;WACW,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;CAGrF"}
@@ -31,7 +31,9 @@ class ThreeDTileFormatInterpreter {
31
31
  if (undefined === (json === null || json === void 0 ? void 0 : json.root)) {
32
32
  core_bentley_1.Logger.logWarning(loggerCategory, `Error getSpatialLocationAndExtents - no root in json`);
33
33
  // return first 1024 char from the json
34
- const getMetaData = () => { return { json: JSON.stringify(json).substring(0, 1024) }; };
34
+ const getMetaData = () => {
35
+ return { json: JSON.stringify(json).substring(0, 1024) };
36
+ };
35
37
  const error = new RealityDataSource_1.RealityDataError(core_bentley_1.RealityDataStatus.InvalidData, "Invalid or unknown data - no root in json", getMetaData);
36
38
  throw error;
37
39
  }
@@ -92,7 +94,9 @@ class ThreeDTileFormatInterpreter {
92
94
  catch (e) {
93
95
  core_bentley_1.Logger.logWarning(loggerCategory, `Error getSpatialLocationAndExtents - cannot interpret json`);
94
96
  // return first 1024 char from the json
95
- const getMetaData = () => { return { json: JSON.stringify(json).substring(0, 1024) }; };
97
+ const getMetaData = () => {
98
+ return { json: JSON.stringify(json).substring(0, 1024) };
99
+ };
96
100
  const error = new RealityDataSource_1.RealityDataError(core_bentley_1.RealityDataStatus.InvalidData, "Invalid or unknown data", getMetaData);
97
101
  throw error;
98
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeDTileFormatInterpreter.js","sourceRoot":"","sources":["../../../src/tile/ThreeDTileFormatInterpreter.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { JsonUtils, Logger, LoggingMetaData, RealityDataStatus } from \"@itwin/core-bentley\";\r\nimport { Cartographic, EcefLocation } from \"@itwin/core-common\";\r\nimport { Matrix3d, Point3d, Range3d, Transform, Vector3d, YawPitchRollAngles } from \"@itwin/core-geometry\";\r\nimport { FrontendLoggerCategory } from \"../FrontendLoggerCategory\";\r\nimport { PublisherProductInfo, RealityDataError, SpatialLocationAndExtents } from \"../RealityDataSource\";\r\n\r\nconst loggerCategory: string = FrontendLoggerCategory.RealityData;\r\n/** This interface provides information about 3dTile files for this reality data\r\n * Currently only used for debbugging\r\n * @internal\r\n */\r\nexport interface ThreeDTileFileInfo {\r\n /** the number of children at the root of this reality data */\r\n rootChildren?: number;\r\n}\r\n/**\r\n * This class provide methods used to interpret Cesium 3dTile format\r\n * @internal\r\n */\r\nexport class ThreeDTileFormatInterpreter {\r\n /** Gets reality data spatial location and extents\r\n * @param json root document file in json format\r\n * @returns spatial location and volume of interest, in meters, centered around `spatial location`\r\n * @throws [[RealityDataError]] if source is invalid or cannot be read\r\n * @internal\r\n */\r\n public static getSpatialLocationAndExtents(json: any): SpatialLocationAndExtents {\r\n const worldRange = new Range3d();\r\n let isGeolocated = true;\r\n let location: Cartographic | EcefLocation;\r\n Logger.logTrace(loggerCategory, \"RealityData getSpatialLocationAndExtents\");\r\n if (undefined === json?.root) {\r\n Logger.logWarning(loggerCategory, `Error getSpatialLocationAndExtents - no root in json`);\r\n // return first 1024 char from the json\r\n const getMetaData: LoggingMetaData = () => {return {json: JSON.stringify(json).substring(0,1024)};};\r\n const error = new RealityDataError(RealityDataStatus.InvalidData, \"Invalid or unknown data - no root in json\", getMetaData);\r\n throw error;\r\n }\r\n try {\r\n if (undefined !== json?.root?.boundingVolume?.region) {\r\n const region = JsonUtils.asArray(json.root.boundingVolume.region);\r\n\r\n Logger.logTrace(loggerCategory, \"RealityData json.root.boundingVolume.region\", () => ({ ...region }));\r\n if (undefined === region) {\r\n Logger.logError(loggerCategory, `Error getSpatialLocationAndExtents - region undefined`);\r\n throw new TypeError(\"Unable to determine GeoLocation - no root Transform or Region on root.\");\r\n }\r\n const ecefLow = (Cartographic.fromRadians({ longitude: region[0], latitude: region[1], height: region[4] })).toEcef();\r\n const ecefHigh = (Cartographic.fromRadians({ longitude: region[2], latitude: region[3], height: region[5] })).toEcef();\r\n const ecefRange = Range3d.create(ecefLow, ecefHigh);\r\n const cartoCenter = Cartographic.fromRadians({ longitude: (region[0] + region[2]) / 2.0, latitude: (region[1] + region[3]) / 2.0, height: (region[4] + region[5]) / 2.0 });\r\n location = cartoCenter;\r\n const ecefLocation = EcefLocation.createFromCartographicOrigin(cartoCenter);\r\n // iModelDb.setEcefLocation(ecefLocation);\r\n const ecefToWorld = ecefLocation.getTransform().inverse()!;\r\n worldRange.extendRange(Range3d.fromJSON(ecefToWorld.multiplyRange(ecefRange)));\r\n } else {\r\n let worldToEcefTransform = ThreeDTileFormatInterpreter.transformFromJson(json.root.transform);\r\n\r\n Logger.logTrace(loggerCategory, \"RealityData json.root.transform\", () => ({ ...worldToEcefTransform }));\r\n const range = ThreeDTileFormatInterpreter.rangeFromBoundingVolume(json.root.boundingVolume)!;\r\n if (undefined === worldToEcefTransform)\r\n worldToEcefTransform = Transform.createIdentity();\r\n\r\n const ecefRange = worldToEcefTransform.multiplyRange(range); // range in model -> range in ecef\r\n const ecefCenter = worldToEcefTransform.multiplyPoint3d(range.center); // range center in model -> range center in ecef\r\n const cartoCenter = Cartographic.fromEcef(ecefCenter); // ecef center to cartographic center\r\n const isNotNearEarthSurface = cartoCenter && (cartoCenter.height < -5000); // 5 km under ground!\r\n const earthCenterToRangeCenterRayLenght = range.center.magnitude();\r\n\r\n if (worldToEcefTransform.matrix.isIdentity && (earthCenterToRangeCenterRayLenght < 1.0E5 || isNotNearEarthSurface)) {\r\n isGeolocated = false;\r\n worldRange.extendRange(Range3d.fromJSON(ecefRange));\r\n const centerOfEarth = new EcefLocation({ origin: { x: 0.0, y: 0.0, z: 0.0 }, orientation: { yaw: 0.0, pitch: 0.0, roll: 0.0 } });\r\n location = centerOfEarth;\r\n Logger.logTrace(loggerCategory, \"RealityData NOT Geolocated\", () => ({ ...location }));\r\n } else {\r\n let ecefLocation: EcefLocation;\r\n const locationOrientation = YawPitchRollAngles.tryFromTransform(worldToEcefTransform);\r\n // Fix Bug 445630: [RDV][Regression] Orientation of georeferenced Reality Mesh is wrong.\r\n // Use json.root.transform only if defined and not identity -> otherwise will use a transform computed from cartographic center.\r\n if (!worldToEcefTransform.matrix.isIdentity && locationOrientation !== undefined && locationOrientation.angles !== undefined)\r\n ecefLocation = new EcefLocation({ origin: locationOrientation.origin, orientation: locationOrientation.angles.toJSON() });\r\n else\r\n ecefLocation = EcefLocation.createFromCartographicOrigin(cartoCenter!);\r\n location = ecefLocation;\r\n Logger.logTrace(loggerCategory, \"RealityData is worldToEcefTransform.matrix.isIdentity\", () => ({ isIdentity: worldToEcefTransform!.matrix.isIdentity }));\r\n // iModelDb.setEcefLocation(ecefLocation);\r\n const ecefToWorld = ecefLocation.getTransform().inverse()!;\r\n worldRange.extendRange(Range3d.fromJSON(ecefToWorld.multiplyRange(ecefRange)));\r\n Logger.logTrace(loggerCategory, \"RealityData ecefToWorld\", () => ({ ...ecefToWorld }));\r\n }\r\n }\r\n } catch (e) {\r\n Logger.logWarning(loggerCategory, `Error getSpatialLocationAndExtents - cannot interpret json`);\r\n // return first 1024 char from the json\r\n const getMetaData: LoggingMetaData = () => {return {json: JSON.stringify(json).substring(0,1024)};};\r\n const error = new RealityDataError(RealityDataStatus.InvalidData, \"Invalid or unknown data\", getMetaData);\r\n throw error;\r\n }\r\n\r\n const spatialLocation: SpatialLocationAndExtents = { location, worldRange, isGeolocated };\r\n return spatialLocation;\r\n }\r\n /** Gets information to identify the product and engine that create this reality data\r\n * Will return undefined if cannot be resolved\r\n * @param rootDocjson root document file in json format\r\n * @returns information to identify the product and engine that create this reality data\r\n * @alpha\r\n */\r\n public static getPublisherProductInfo(rootDocjson: any): PublisherProductInfo {\r\n const info: PublisherProductInfo = {product: \"\", engine: \"\", version: \"\"};\r\n if (rootDocjson && rootDocjson.root) {\r\n if (rootDocjson.root.SMPublisherInfo) {\r\n info.product = rootDocjson.root.SMPublisherInfo.Product ? rootDocjson.root.SMPublisherInfo.Product : \"\";\r\n info.engine = rootDocjson.root.SMPublisherInfo.Publisher ? rootDocjson.root.SMPublisherInfo.Publisher : \"\";\r\n info.version = rootDocjson.root.SMPublisherInfo[\"Publisher Version\"] ? rootDocjson.root.SMPublisherInfo[\"Publisher Version\"] : \"\" ;\r\n }\r\n }\r\n return info;\r\n }\r\n /** Gets information about 3dTile file for this reality data\r\n * Will return undefined if cannot be resolved\r\n * @param rootDocjson root document file in json format\r\n * @returns information about 3dTile file for this reality data\r\n * @internal\r\n */\r\n public static getFileInfo(rootDocjson: any): ThreeDTileFileInfo {\r\n const info: ThreeDTileFileInfo = {\r\n rootChildren: rootDocjson?.root?.children?.length ?? 0,\r\n };\r\n return info;\r\n }\r\n /** Convert a boundingVolume into a range\r\n * @param boundingVolume the bounding volume to convert\r\n * @returns the range or undefined if cannot convert\r\n * @internal\r\n */\r\n public static rangeFromBoundingVolume(boundingVolume: any): Range3d | undefined {\r\n if (undefined === boundingVolume)\r\n return undefined;\r\n if (Array.isArray(boundingVolume.box)) {\r\n const box: number[] = boundingVolume.box;\r\n const center = Point3d.create(box[0], box[1], box[2]);\r\n const ux = Vector3d.create(box[3], box[4], box[5]);\r\n const uy = Vector3d.create(box[6], box[7], box[8]);\r\n const uz = Vector3d.create(box[9], box[10], box[11]);\r\n const corners: Point3d[] = [];\r\n for (let j = 0; j < 2; j++) {\r\n for (let k = 0; k < 2; k++) {\r\n for (let l = 0; l < 2; l++) {\r\n corners.push(center.plus3Scaled(ux, (j ? -1.0 : 1.0), uy, (k ? -1.0 : 1.0), uz, (l ? -1.0 : 1.0)));\r\n }\r\n }\r\n }\r\n return Range3d.createArray(corners);\r\n } else if (Array.isArray(boundingVolume.sphere)) {\r\n const sphere: number[] = boundingVolume.sphere;\r\n const center = Point3d.create(sphere[0], sphere[1], sphere[2]);\r\n const radius = sphere[3];\r\n return Range3d.createXYZXYZ(center.x - radius, center.y - radius, center.z - radius, center.x + radius, center.y + radius, center.z + radius);\r\n }\r\n return undefined;\r\n }\r\n /** Convert a boundingVolume into a range\r\n * @internal\r\n */\r\n public static maximumSizeFromGeometricTolerance(range: Range3d, geometricError: number): number {\r\n const minToleranceRatio = .5; // Nominally the error on screen size of a tile. Increasing generally increases performance (fewer draw calls) at expense of higher load times.\r\n return minToleranceRatio * range.diagonal().magnitude() / geometricError;\r\n }\r\n /** Convert a boundingVolume into a range\r\n * @internal\r\n */\r\n public static transformFromJson(jTrans: number[] | undefined): Transform | undefined {\r\n return (jTrans === undefined) ? undefined : Transform.createOriginAndMatrix(Point3d.create(jTrans[12], jTrans[13], jTrans[14]), Matrix3d.createRowValues(jTrans[0], jTrans[4], jTrans[8], jTrans[1], jTrans[5], jTrans[9], jTrans[2], jTrans[6], jTrans[10]));\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ThreeDTileFormatInterpreter.js","sourceRoot":"","sources":["../../../src/tile/ThreeDTileFormatInterpreter.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { JsonUtils, Logger, LoggingMetaData, RealityDataStatus } from \"@itwin/core-bentley\";\r\nimport { Cartographic, EcefLocation } from \"@itwin/core-common\";\r\nimport { Matrix3d, Point3d, Range3d, Transform, Vector3d, YawPitchRollAngles } from \"@itwin/core-geometry\";\r\nimport { FrontendLoggerCategory } from \"../FrontendLoggerCategory\";\r\nimport { PublisherProductInfo, RealityDataError, SpatialLocationAndExtents } from \"../RealityDataSource\";\r\n\r\nconst loggerCategory: string = FrontendLoggerCategory.RealityData;\r\n/** This interface provides information about 3dTile files for this reality data\r\n * Currently only used for debbugging\r\n * @internal\r\n */\r\nexport interface ThreeDTileFileInfo {\r\n /** the number of children at the root of this reality data */\r\n rootChildren?: number;\r\n}\r\n/**\r\n * This class provide methods used to interpret Cesium 3dTile format\r\n * @internal\r\n */\r\nexport class ThreeDTileFormatInterpreter {\r\n /** Gets reality data spatial location and extents\r\n * @param json root document file in json format\r\n * @returns spatial location and volume of interest, in meters, centered around `spatial location`\r\n * @throws [[RealityDataError]] if source is invalid or cannot be read\r\n * @internal\r\n */\r\n public static getSpatialLocationAndExtents(json: any): SpatialLocationAndExtents {\r\n const worldRange = new Range3d();\r\n let isGeolocated = true;\r\n let location: Cartographic | EcefLocation;\r\n Logger.logTrace(loggerCategory, \"RealityData getSpatialLocationAndExtents\");\r\n if (undefined === json?.root) {\r\n Logger.logWarning(loggerCategory, `Error getSpatialLocationAndExtents - no root in json`);\r\n // return first 1024 char from the json\r\n const getMetaData: LoggingMetaData = () => {\r\n return {json: JSON.stringify(json).substring(0,1024)};\r\n };\r\n const error = new RealityDataError(RealityDataStatus.InvalidData, \"Invalid or unknown data - no root in json\", getMetaData);\r\n throw error;\r\n }\r\n try {\r\n if (undefined !== json?.root?.boundingVolume?.region) {\r\n const region = JsonUtils.asArray(json.root.boundingVolume.region);\r\n\r\n Logger.logTrace(loggerCategory, \"RealityData json.root.boundingVolume.region\", () => ({ ...region }));\r\n if (undefined === region) {\r\n Logger.logError(loggerCategory, `Error getSpatialLocationAndExtents - region undefined`);\r\n throw new TypeError(\"Unable to determine GeoLocation - no root Transform or Region on root.\");\r\n }\r\n const ecefLow = (Cartographic.fromRadians({ longitude: region[0], latitude: region[1], height: region[4] })).toEcef();\r\n const ecefHigh = (Cartographic.fromRadians({ longitude: region[2], latitude: region[3], height: region[5] })).toEcef();\r\n const ecefRange = Range3d.create(ecefLow, ecefHigh);\r\n const cartoCenter = Cartographic.fromRadians({ longitude: (region[0] + region[2]) / 2.0, latitude: (region[1] + region[3]) / 2.0, height: (region[4] + region[5]) / 2.0 });\r\n location = cartoCenter;\r\n const ecefLocation = EcefLocation.createFromCartographicOrigin(cartoCenter);\r\n // iModelDb.setEcefLocation(ecefLocation);\r\n const ecefToWorld = ecefLocation.getTransform().inverse()!;\r\n worldRange.extendRange(Range3d.fromJSON(ecefToWorld.multiplyRange(ecefRange)));\r\n } else {\r\n let worldToEcefTransform = ThreeDTileFormatInterpreter.transformFromJson(json.root.transform);\r\n\r\n Logger.logTrace(loggerCategory, \"RealityData json.root.transform\", () => ({ ...worldToEcefTransform }));\r\n const range = ThreeDTileFormatInterpreter.rangeFromBoundingVolume(json.root.boundingVolume)!;\r\n if (undefined === worldToEcefTransform)\r\n worldToEcefTransform = Transform.createIdentity();\r\n\r\n const ecefRange = worldToEcefTransform.multiplyRange(range); // range in model -> range in ecef\r\n const ecefCenter = worldToEcefTransform.multiplyPoint3d(range.center); // range center in model -> range center in ecef\r\n const cartoCenter = Cartographic.fromEcef(ecefCenter); // ecef center to cartographic center\r\n const isNotNearEarthSurface = cartoCenter && (cartoCenter.height < -5000); // 5 km under ground!\r\n const earthCenterToRangeCenterRayLenght = range.center.magnitude();\r\n\r\n if (worldToEcefTransform.matrix.isIdentity && (earthCenterToRangeCenterRayLenght < 1.0E5 || isNotNearEarthSurface)) {\r\n isGeolocated = false;\r\n worldRange.extendRange(Range3d.fromJSON(ecefRange));\r\n const centerOfEarth = new EcefLocation({ origin: { x: 0.0, y: 0.0, z: 0.0 }, orientation: { yaw: 0.0, pitch: 0.0, roll: 0.0 } });\r\n location = centerOfEarth;\r\n Logger.logTrace(loggerCategory, \"RealityData NOT Geolocated\", () => ({ ...location }));\r\n } else {\r\n let ecefLocation: EcefLocation;\r\n const locationOrientation = YawPitchRollAngles.tryFromTransform(worldToEcefTransform);\r\n // Fix Bug 445630: [RDV][Regression] Orientation of georeferenced Reality Mesh is wrong.\r\n // Use json.root.transform only if defined and not identity -> otherwise will use a transform computed from cartographic center.\r\n if (!worldToEcefTransform.matrix.isIdentity && locationOrientation !== undefined && locationOrientation.angles !== undefined)\r\n ecefLocation = new EcefLocation({ origin: locationOrientation.origin, orientation: locationOrientation.angles.toJSON() });\r\n else\r\n ecefLocation = EcefLocation.createFromCartographicOrigin(cartoCenter!);\r\n location = ecefLocation;\r\n Logger.logTrace(loggerCategory, \"RealityData is worldToEcefTransform.matrix.isIdentity\", () => ({ isIdentity: worldToEcefTransform!.matrix.isIdentity }));\r\n // iModelDb.setEcefLocation(ecefLocation);\r\n const ecefToWorld = ecefLocation.getTransform().inverse()!;\r\n worldRange.extendRange(Range3d.fromJSON(ecefToWorld.multiplyRange(ecefRange)));\r\n Logger.logTrace(loggerCategory, \"RealityData ecefToWorld\", () => ({ ...ecefToWorld }));\r\n }\r\n }\r\n } catch (e) {\r\n Logger.logWarning(loggerCategory, `Error getSpatialLocationAndExtents - cannot interpret json`);\r\n // return first 1024 char from the json\r\n const getMetaData: LoggingMetaData = () => {\r\n return {json: JSON.stringify(json).substring(0,1024)};\r\n };\r\n const error = new RealityDataError(RealityDataStatus.InvalidData, \"Invalid or unknown data\", getMetaData);\r\n throw error;\r\n }\r\n\r\n const spatialLocation: SpatialLocationAndExtents = { location, worldRange, isGeolocated };\r\n return spatialLocation;\r\n }\r\n /** Gets information to identify the product and engine that create this reality data\r\n * Will return undefined if cannot be resolved\r\n * @param rootDocjson root document file in json format\r\n * @returns information to identify the product and engine that create this reality data\r\n * @alpha\r\n */\r\n public static getPublisherProductInfo(rootDocjson: any): PublisherProductInfo {\r\n const info: PublisherProductInfo = {product: \"\", engine: \"\", version: \"\"};\r\n if (rootDocjson && rootDocjson.root) {\r\n if (rootDocjson.root.SMPublisherInfo) {\r\n info.product = rootDocjson.root.SMPublisherInfo.Product ? rootDocjson.root.SMPublisherInfo.Product : \"\";\r\n info.engine = rootDocjson.root.SMPublisherInfo.Publisher ? rootDocjson.root.SMPublisherInfo.Publisher : \"\";\r\n info.version = rootDocjson.root.SMPublisherInfo[\"Publisher Version\"] ? rootDocjson.root.SMPublisherInfo[\"Publisher Version\"] : \"\" ;\r\n }\r\n }\r\n return info;\r\n }\r\n /** Gets information about 3dTile file for this reality data\r\n * Will return undefined if cannot be resolved\r\n * @param rootDocjson root document file in json format\r\n * @returns information about 3dTile file for this reality data\r\n * @internal\r\n */\r\n public static getFileInfo(rootDocjson: any): ThreeDTileFileInfo {\r\n const info: ThreeDTileFileInfo = {\r\n rootChildren: rootDocjson?.root?.children?.length ?? 0,\r\n };\r\n return info;\r\n }\r\n /** Convert a boundingVolume into a range\r\n * @param boundingVolume the bounding volume to convert\r\n * @returns the range or undefined if cannot convert\r\n * @internal\r\n */\r\n public static rangeFromBoundingVolume(boundingVolume: any): Range3d | undefined {\r\n if (undefined === boundingVolume)\r\n return undefined;\r\n if (Array.isArray(boundingVolume.box)) {\r\n const box: number[] = boundingVolume.box;\r\n const center = Point3d.create(box[0], box[1], box[2]);\r\n const ux = Vector3d.create(box[3], box[4], box[5]);\r\n const uy = Vector3d.create(box[6], box[7], box[8]);\r\n const uz = Vector3d.create(box[9], box[10], box[11]);\r\n const corners: Point3d[] = [];\r\n for (let j = 0; j < 2; j++) {\r\n for (let k = 0; k < 2; k++) {\r\n for (let l = 0; l < 2; l++) {\r\n corners.push(center.plus3Scaled(ux, (j ? -1.0 : 1.0), uy, (k ? -1.0 : 1.0), uz, (l ? -1.0 : 1.0)));\r\n }\r\n }\r\n }\r\n return Range3d.createArray(corners);\r\n } else if (Array.isArray(boundingVolume.sphere)) {\r\n const sphere: number[] = boundingVolume.sphere;\r\n const center = Point3d.create(sphere[0], sphere[1], sphere[2]);\r\n const radius = sphere[3];\r\n return Range3d.createXYZXYZ(center.x - radius, center.y - radius, center.z - radius, center.x + radius, center.y + radius, center.z + radius);\r\n }\r\n return undefined;\r\n }\r\n /** Convert a boundingVolume into a range\r\n * @internal\r\n */\r\n public static maximumSizeFromGeometricTolerance(range: Range3d, geometricError: number): number {\r\n const minToleranceRatio = .5; // Nominally the error on screen size of a tile. Increasing generally increases performance (fewer draw calls) at expense of higher load times.\r\n return minToleranceRatio * range.diagonal().magnitude() / geometricError;\r\n }\r\n /** Convert a boundingVolume into a range\r\n * @internal\r\n */\r\n public static transformFromJson(jTrans: number[] | undefined): Transform | undefined {\r\n return (jTrans === undefined) ? undefined : Transform.createOriginAndMatrix(Point3d.create(jTrans[12], jTrans[13], jTrans[14]), Matrix3d.createRowValues(jTrans[0], jTrans[4], jTrans[8], jTrans[1], jTrans[5], jTrans[9], jTrans[2], jTrans[6], jTrans[10]));\r\n }\r\n}\r\n"]}
@@ -6,6 +6,7 @@ import { EdgeOptions, ElementGraphicsRequestProps, IModelTileTreeProps, RenderSc
6
6
  import { IModelConnection } from "../IModelConnection";
7
7
  import { Viewport } from "../Viewport";
8
8
  import { IModelTileTree, ReadonlyTileUserSet, Tile, TileRequestChannels, TileTreeOwner, TileUsageMarker, TileUser } from "./internal";
9
+ import type { FrontendStorage } from "@itwin/object-storage-core/lib/frontend";
9
10
  /** Details about any tiles not handled by [[TileAdmin]]. At this time, that means OrbitGT point cloud tiles.
10
11
  * Used for bookkeeping by SelectedAndReadyTiles
11
12
  * @internal
@@ -146,6 +147,7 @@ export declare class TileAdmin {
146
147
  private _maxTotalTileContentBytes?;
147
148
  private _gpuMemoryLimit;
148
149
  private readonly _isMobile;
150
+ private readonly _cloudStorage?;
149
151
  /** Create a TileAdmin suitable for passing to [[IModelApp.startup]] via [[IModelAppOptions.tileAdmin]] to customize aspects of
150
152
  * its behavior.
151
153
  * @param props Options for customizing the behavior of the TileAdmin.
@@ -162,6 +164,9 @@ export declare class TileAdmin {
162
164
  * @internal
163
165
  */
164
166
  constructor(isMobile: boolean, rpcConcurrency: number | undefined, options?: TileAdmin.Props);
167
+ private _tileStorage?;
168
+ private _tileStoragePromise?;
169
+ private getTileStorage;
165
170
  /** @internal */
166
171
  get enableInstancing(): boolean;
167
172
  /** @internal */
@@ -408,6 +413,13 @@ export declare namespace TileAdmin {
408
413
  * @public
409
414
  */
410
415
  interface Props {
416
+ /**
417
+ * The client side storage implementation of @itwin/object-storage-core to use for retrieving tiles from tile cache.
418
+ *
419
+ * Defaults to AzureFrontendStorage
420
+ * @beta
421
+ */
422
+ tileStorage?: FrontendStorage;
411
423
  /** The maximum number of simultaneously active requests for IModelTileTreeProps. Requests are fulfilled in FIFO order.
412
424
  *
413
425
  * Default value: 10
@@ -1 +1 @@
1
- {"version":3,"file":"TileAdmin.d.ts","sourceRoot":"","sources":["../../../src/tile/TileAdmin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TileAdmin.d.ts","sourceRoot":"","sources":["../../../src/tile/TileAdmin.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,25 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.overrideRequestTileTreeProps = exports.TileAdmin = void 0;
2
23
  /*---------------------------------------------------------------------------------------------
3
24
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
25
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -6,8 +27,6 @@
6
27
  /** @packageDocumentation
7
28
  * @module Tiles
8
29
  */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.overrideRequestTileTreeProps = exports.TileAdmin = void 0;
11
30
  const core_bentley_1 = require("@itwin/core-bentley");
12
31
  const core_common_1 = require("@itwin/core-common");
13
32
  const IModelApp_1 = require("../IModelApp");
@@ -67,6 +86,7 @@ class TileAdmin {
67
86
  this.useLargerTiles = (_p = options.useLargerTiles) !== null && _p !== void 0 ? _p : core_common_1.defaultTileOptions.useLargerTiles;
68
87
  this.mobileRealityTileMinToleranceRatio = Math.max((_q = options.mobileRealityTileMinToleranceRatio) !== null && _q !== void 0 ? _q : 3.0, 1.0);
69
88
  this.cesiumIonKey = options.cesiumIonKey;
89
+ this._cloudStorage = options.tileStorage;
70
90
  const gpuMemoryLimits = options.gpuMemoryLimits;
71
91
  let gpuMemoryLimit;
72
92
  if (typeof gpuMemoryLimits === "object")
@@ -142,6 +162,28 @@ class TileAdmin {
142
162
  this.channels.resetStatistics();
143
163
  this._totalElided = 0;
144
164
  }
165
+ async getTileStorage() {
166
+ if (this._tileStorage !== undefined)
167
+ return this._tileStorage;
168
+ // if object-storage-azure is already being dynamically loaded, just return the promise.
169
+ if (this._tileStoragePromise !== undefined)
170
+ return this._tileStoragePromise;
171
+ // if custom implementation is provided, construct a new TileStorage instance and return it.
172
+ if (this._cloudStorage !== undefined) {
173
+ this._tileStorage = new internal_1.TileStorage(this._cloudStorage);
174
+ return this._tileStorage;
175
+ }
176
+ // start dynamically loading default implementation and save the promise to avoid duplicate instances
177
+ this._tileStoragePromise = (async () => {
178
+ await Promise.resolve().then(() => __importStar(require("reflect-metadata")));
179
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
180
+ const azureFrontend = await require("./object-storage-azure")();
181
+ const azureStorage = new azureFrontend.AzureFrontendStorage(new azureFrontend.FrontendBlockBlobClientWrapperFactory());
182
+ this._tileStorage = new internal_1.TileStorage(azureStorage);
183
+ return this._tileStorage;
184
+ })();
185
+ return this._tileStoragePromise;
186
+ }
145
187
  /** @internal */
146
188
  get enableInstancing() { return this._enableInstancing && IModelApp_1.IModelApp.renderSystem.supportsInstancing; }
147
189
  /** @internal */
@@ -426,7 +468,11 @@ class TileAdmin {
426
468
  }
427
469
  /** @internal */
428
470
  async requestCachedTileContent(tile) {
429
- return core_common_1.CloudStorageTileCache.getCache().retrieve(this.getTileRequestProps(tile));
471
+ if (tile.iModelTree.iModel.iModelId === undefined)
472
+ throw new Error("Provided iModel has no iModelId");
473
+ const { guid, tokenProps, treeId } = this.getTileRequestProps(tile);
474
+ const content = await (await this.getTileStorage()).downloadTile(tokenProps, tile.iModelTree.iModel.iModelId, tile.iModelTree.iModel.changeset.id, treeId, tile.contentId, guid);
475
+ return content;
430
476
  }
431
477
  /** @internal */
432
478
  async generateTileContent(tile) {
@@ -516,7 +562,11 @@ class TileAdmin {
516
562
  const tileLoad = this.onTileLoad.addListener((tile) => callback(tile.tree.iModel));
517
563
  const treeLoad = this.onTileTreeLoad.addListener((tree) => callback(tree.iModel));
518
564
  const childLoad = this.onTileChildrenLoad.addListener((tile) => callback(tile.tree.iModel));
519
- return () => { tileLoad(); treeLoad(); childLoad(); };
565
+ return () => {
566
+ tileLoad();
567
+ treeLoad();
568
+ childLoad();
569
+ };
520
570
  }
521
571
  /** Determine what information about the schedule script is needed to produce tiles.
522
572
  * If no script, or the script doesn't require batching, then no information is needed - normal tiles can be used.