@itwin/core-frontend 3.4.0-dev.50 → 3.4.0-dev.55

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 (669) hide show
  1. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  2. package/lib/cjs/AccuDraw.js +60 -13
  3. package/lib/cjs/AccuDraw.js.map +1 -1
  4. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  5. package/lib/cjs/AccuSnap.js +36 -12
  6. package/lib/cjs/AccuSnap.js.map +1 -1
  7. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  8. package/lib/cjs/AuxCoordSys.js +2 -3
  9. package/lib/cjs/AuxCoordSys.js.map +1 -1
  10. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  11. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  12. package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
  13. package/lib/cjs/CategorySelectorState.js +6 -4
  14. package/lib/cjs/CategorySelectorState.js.map +1 -1
  15. package/lib/cjs/DevTools.d.ts.map +1 -1
  16. package/lib/cjs/DevTools.js.map +1 -1
  17. package/lib/cjs/DisplayStyleState.js +1 -1
  18. package/lib/cjs/DisplayStyleState.js.map +1 -1
  19. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  20. package/lib/cjs/ElementLocateManager.js +4 -2
  21. package/lib/cjs/ElementLocateManager.js.map +1 -1
  22. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  23. package/lib/cjs/FrustumAnimator.js +5 -1
  24. package/lib/cjs/FrustumAnimator.js.map +1 -1
  25. package/lib/cjs/FuzzySearch.d.ts.map +1 -1
  26. package/lib/cjs/FuzzySearch.js +9 -3
  27. package/lib/cjs/FuzzySearch.js.map +1 -1
  28. package/lib/cjs/HitDetail.d.ts.map +1 -1
  29. package/lib/cjs/HitDetail.js +13 -3
  30. package/lib/cjs/HitDetail.js.map +1 -1
  31. package/lib/cjs/IModelApp.d.ts +7 -2
  32. package/lib/cjs/IModelApp.d.ts.map +1 -1
  33. package/lib/cjs/IModelApp.js +10 -2
  34. package/lib/cjs/IModelApp.js.map +1 -1
  35. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  36. package/lib/cjs/IModelConnection.js +3 -1
  37. package/lib/cjs/IModelConnection.js.map +1 -1
  38. package/lib/cjs/ImageUtil.d.ts +6 -0
  39. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  40. package/lib/cjs/ImageUtil.js +14 -1
  41. package/lib/cjs/ImageUtil.js.map +1 -1
  42. package/lib/cjs/Marker.d.ts.map +1 -1
  43. package/lib/cjs/Marker.js +5 -1
  44. package/lib/cjs/Marker.js.map +1 -1
  45. package/lib/cjs/NativeAppLogger.d.ts.map +1 -1
  46. package/lib/cjs/NativeAppLogger.js +1 -1
  47. package/lib/cjs/NativeAppLogger.js.map +1 -1
  48. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  49. package/lib/cjs/TentativePoint.js.map +1 -1
  50. package/lib/cjs/ViewManager.d.ts.map +1 -1
  51. package/lib/cjs/ViewManager.js +2 -2
  52. package/lib/cjs/ViewManager.js.map +1 -1
  53. package/lib/cjs/ViewRect.d.ts.map +1 -1
  54. package/lib/cjs/ViewRect.js +5 -1
  55. package/lib/cjs/ViewRect.js.map +1 -1
  56. package/lib/cjs/ViewState.d.ts.map +1 -1
  57. package/lib/cjs/ViewState.js +4 -1
  58. package/lib/cjs/ViewState.js.map +1 -1
  59. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  60. package/lib/cjs/ViewingSpace.js +12 -5
  61. package/lib/cjs/ViewingSpace.js.map +1 -1
  62. package/lib/cjs/Viewport.d.ts.map +1 -1
  63. package/lib/cjs/Viewport.js +4 -1
  64. package/lib/cjs/Viewport.js.map +1 -1
  65. package/lib/cjs/core-frontend.d.ts +6 -0
  66. package/lib/cjs/core-frontend.d.ts.map +1 -1
  67. package/lib/cjs/core-frontend.js +6 -0
  68. package/lib/cjs/core-frontend.js.map +1 -1
  69. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  70. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  71. package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -1
  72. package/lib/cjs/extension/ExtensionImpl.js +3 -1
  73. package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
  74. package/lib/cjs/public/scripts/checkbrowser.js +24 -0
  75. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  76. package/lib/cjs/render/Decorations.js +24 -6
  77. package/lib/cjs/render/Decorations.js.map +1 -1
  78. package/lib/cjs/render/RealityMeshGraphicParams.d.ts +19 -0
  79. package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -0
  80. package/lib/cjs/render/RealityMeshGraphicParams.js +10 -0
  81. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -0
  82. package/lib/cjs/render/RealityMeshParams.d.ts +130 -0
  83. package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -0
  84. package/lib/cjs/render/RealityMeshParams.js +176 -0
  85. package/lib/cjs/render/RealityMeshParams.js.map +1 -0
  86. package/lib/cjs/render/RenderSystem.d.ts +6 -4
  87. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  88. package/lib/cjs/render/RenderSystem.js +5 -1
  89. package/lib/cjs/render/RenderSystem.js.map +1 -1
  90. package/lib/cjs/render/RenderTexture.d.ts +1 -1
  91. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  92. package/lib/cjs/render/RenderTexture.js.map +1 -1
  93. package/lib/cjs/render/UpsampleRealityMeshParams.d.ts +11 -0
  94. package/lib/cjs/render/UpsampleRealityMeshParams.d.ts.map +1 -0
  95. package/lib/cjs/render/UpsampleRealityMeshParams.js +205 -0
  96. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -0
  97. package/lib/cjs/render/primitives/DisplayParams.d.ts.map +1 -1
  98. package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
  99. package/lib/cjs/render/primitives/Polyface.d.ts.map +1 -1
  100. package/lib/cjs/render/primitives/Polyface.js +3 -1
  101. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  102. package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
  103. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  104. package/lib/cjs/render/primitives/Strokes.d.ts.map +1 -1
  105. package/lib/cjs/render/primitives/Strokes.js +6 -2
  106. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  107. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  108. package/lib/cjs/render/primitives/VertexTableSplitter.js +7 -85
  109. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -1
  110. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  111. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +4 -1
  112. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  113. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  114. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  115. package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  116. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  117. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  118. package/lib/cjs/render/webgl/ColorInfo.js +4 -1
  119. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  120. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  121. package/lib/cjs/render/webgl/DrawCommand.js +12 -3
  122. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  123. package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
  124. package/lib/cjs/render/webgl/FrameBuffer.js +4 -1
  125. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  126. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  127. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  128. package/lib/cjs/render/webgl/Graphic.js +5 -2
  129. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  130. package/lib/cjs/render/webgl/Matrix.d.ts.map +1 -1
  131. package/lib/cjs/render/webgl/Matrix.js +16 -4
  132. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  133. package/lib/cjs/render/webgl/PerformanceMetrics.js +2 -2
  134. package/lib/cjs/render/webgl/PerformanceMetrics.js.map +1 -1
  135. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  136. package/lib/cjs/render/webgl/PlanarClassifier.js +3 -1
  137. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  138. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  139. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  140. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  141. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  142. package/lib/cjs/render/webgl/RealityMesh.d.ts +5 -5
  143. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  144. package/lib/cjs/render/webgl/RealityMesh.js +20 -10
  145. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  146. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  147. package/lib/cjs/render/webgl/RenderCommands.js +3 -2
  148. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  149. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  150. package/lib/cjs/render/webgl/RenderFlags.js +3 -1
  151. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  152. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  153. package/lib/cjs/render/webgl/ShaderBuilder.js +4 -1
  154. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  155. package/lib/cjs/render/webgl/System.d.ts +5 -4
  156. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  157. package/lib/cjs/render/webgl/System.js +8 -3
  158. package/lib/cjs/render/webgl/System.js.map +1 -1
  159. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  160. package/lib/cjs/render/webgl/Technique.js +3 -1
  161. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  162. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  163. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  164. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  165. package/lib/cjs/render/webgl/Texture.js +21 -12
  166. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  167. package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
  168. package/lib/cjs/render/webgl/ThematicSensors.js +8 -2
  169. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  170. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  171. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +3 -1
  172. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  173. package/lib/cjs/render/webgl/glsl/Common.js +1 -1
  174. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  175. package/lib/cjs/render/webgl/glsl/SkyBox.d.ts.map +1 -1
  176. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  177. package/lib/cjs/tile/GltfReader.d.ts +3 -2
  178. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  179. package/lib/cjs/tile/GltfReader.js +7 -3
  180. package/lib/cjs/tile/GltfReader.js.map +1 -1
  181. package/lib/cjs/tile/ImdlReader.d.ts +1 -1
  182. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  183. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
  184. package/lib/cjs/tile/OPCFormatInterpreter.js +3 -1
  185. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  186. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  187. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  188. package/lib/cjs/tile/RealityTile.d.ts +57 -3
  189. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  190. package/lib/cjs/tile/RealityTile.js +49 -5
  191. package/lib/cjs/tile/RealityTile.js.map +1 -1
  192. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  193. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  194. package/lib/cjs/tile/RealityTileTree.d.ts +37 -2
  195. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  196. package/lib/cjs/tile/RealityTileTree.js +29 -2
  197. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  198. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
  199. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +6 -2
  200. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  201. package/lib/cjs/tile/TileAdmin.d.ts +11 -0
  202. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  203. package/lib/cjs/tile/TileAdmin.js +47 -4
  204. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  205. package/lib/cjs/tile/TileRequest.d.ts +5 -1
  206. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  207. package/lib/cjs/tile/TileRequest.js +6 -2
  208. package/lib/cjs/tile/TileRequest.js.map +1 -1
  209. package/lib/cjs/tile/TileStorage.d.ts +13 -0
  210. package/lib/cjs/tile/TileStorage.d.ts.map +1 -0
  211. package/lib/cjs/tile/TileStorage.js +50 -0
  212. package/lib/cjs/tile/TileStorage.js.map +1 -0
  213. package/lib/cjs/tile/internal.d.ts +2 -0
  214. package/lib/cjs/tile/internal.d.ts.map +1 -1
  215. package/lib/cjs/tile/internal.js +2 -0
  216. package/lib/cjs/tile/internal.js.map +1 -1
  217. package/lib/cjs/tile/map/ArcGISTileMap.js +1 -1
  218. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  219. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  220. package/lib/cjs/tile/map/ArcGisUtilities.js +1 -1
  221. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  222. package/lib/cjs/tile/map/BingElevation.d.ts +8 -3
  223. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  224. package/lib/cjs/tile/map/BingElevation.js +36 -14
  225. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  226. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +2 -7
  227. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  228. package/lib/cjs/tile/map/CesiumTerrainProvider.js +100 -90
  229. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  230. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts +9 -12
  231. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  232. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js +70 -67
  233. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  234. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  235. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +6 -4
  236. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  237. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  238. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  239. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  240. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  241. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  242. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  243. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +8 -6
  244. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  245. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +3 -3
  246. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  247. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  248. package/lib/cjs/tile/map/ImageryTileTree.js +21 -6
  249. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  250. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +62 -6
  251. package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
  252. package/lib/cjs/tile/map/MapCartoRectangle.js +103 -17
  253. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  254. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  255. package/lib/cjs/tile/map/MapLayerImageryFormats.js +4 -2
  256. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  257. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  258. package/lib/cjs/tile/map/MapLayerImageryProvider.js +1 -1
  259. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  260. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  261. package/lib/cjs/tile/map/MapLayerSources.js +11 -7
  262. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  263. package/lib/cjs/tile/map/MapTile.d.ts +68 -15
  264. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  265. package/lib/cjs/tile/map/MapTile.js +88 -30
  266. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  267. package/lib/cjs/tile/map/MapTileAvailability.d.ts.map +1 -1
  268. package/lib/cjs/tile/map/MapTileAvailability.js +1 -1
  269. package/lib/cjs/tile/map/MapTileAvailability.js.map +1 -1
  270. package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -2
  271. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  272. package/lib/cjs/tile/map/MapTileLoader.js +11 -20
  273. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  274. package/lib/cjs/tile/map/MapTileTree.d.ts +72 -7
  275. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  276. package/lib/cjs/tile/map/MapTileTree.js +72 -16
  277. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  278. package/lib/cjs/tile/map/MapTilingScheme.d.ts +67 -55
  279. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  280. package/lib/cjs/tile/map/MapTilingScheme.js +71 -67
  281. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  282. package/lib/cjs/tile/map/QuadId.d.ts +24 -2
  283. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  284. package/lib/cjs/tile/map/QuadId.js +49 -20
  285. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  286. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +79 -19
  287. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  288. package/lib/cjs/tile/map/TerrainMeshProvider.js +28 -13
  289. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  290. package/lib/cjs/tile/map/TerrainProvider.d.ts +34 -0
  291. package/lib/cjs/tile/map/TerrainProvider.d.ts.map +1 -0
  292. package/lib/cjs/tile/map/TerrainProvider.js +41 -0
  293. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -0
  294. package/lib/cjs/tile/map/WmsCapabilities.js +1 -1
  295. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  296. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  297. package/lib/cjs/tile/map/WmtsCapabilities.js +7 -3
  298. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  299. package/lib/cjs/tile/object-storage-azure.js +5 -0
  300. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  301. package/lib/cjs/tools/AccuDrawTool.js +87 -26
  302. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  303. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  304. package/lib/cjs/tools/ClipViewTool.js +23 -14
  305. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  306. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  307. package/lib/cjs/tools/ElementSetTool.js +26 -10
  308. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  309. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  310. package/lib/cjs/tools/MeasureTool.js +46 -17
  311. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  312. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  313. package/lib/cjs/tools/PrimitiveTool.js +9 -4
  314. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  315. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  316. package/lib/cjs/tools/SelectTool.js +20 -9
  317. package/lib/cjs/tools/SelectTool.js.map +1 -1
  318. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  319. package/lib/cjs/tools/Tool.js +13 -5
  320. package/lib/cjs/tools/Tool.js.map +1 -1
  321. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  322. package/lib/cjs/tools/ToolAdmin.js +27 -9
  323. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  324. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  325. package/lib/cjs/tools/ViewTool.js +110 -39
  326. package/lib/cjs/tools/ViewTool.js.map +1 -1
  327. package/lib/esm/AccuDraw.d.ts.map +1 -1
  328. package/lib/esm/AccuDraw.js +60 -13
  329. package/lib/esm/AccuDraw.js.map +1 -1
  330. package/lib/esm/AccuSnap.d.ts.map +1 -1
  331. package/lib/esm/AccuSnap.js +36 -12
  332. package/lib/esm/AccuSnap.js.map +1 -1
  333. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  334. package/lib/esm/AuxCoordSys.js +2 -3
  335. package/lib/esm/AuxCoordSys.js.map +1 -1
  336. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  337. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  338. package/lib/esm/CategorySelectorState.d.ts.map +1 -1
  339. package/lib/esm/CategorySelectorState.js +6 -4
  340. package/lib/esm/CategorySelectorState.js.map +1 -1
  341. package/lib/esm/DevTools.d.ts.map +1 -1
  342. package/lib/esm/DevTools.js.map +1 -1
  343. package/lib/esm/DisplayStyleState.js +1 -1
  344. package/lib/esm/DisplayStyleState.js.map +1 -1
  345. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  346. package/lib/esm/ElementLocateManager.js +4 -2
  347. package/lib/esm/ElementLocateManager.js.map +1 -1
  348. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  349. package/lib/esm/FrustumAnimator.js +5 -1
  350. package/lib/esm/FrustumAnimator.js.map +1 -1
  351. package/lib/esm/FuzzySearch.d.ts.map +1 -1
  352. package/lib/esm/FuzzySearch.js +9 -3
  353. package/lib/esm/FuzzySearch.js.map +1 -1
  354. package/lib/esm/HitDetail.d.ts.map +1 -1
  355. package/lib/esm/HitDetail.js +13 -3
  356. package/lib/esm/HitDetail.js.map +1 -1
  357. package/lib/esm/IModelApp.d.ts +7 -2
  358. package/lib/esm/IModelApp.d.ts.map +1 -1
  359. package/lib/esm/IModelApp.js +11 -3
  360. package/lib/esm/IModelApp.js.map +1 -1
  361. package/lib/esm/IModelConnection.d.ts.map +1 -1
  362. package/lib/esm/IModelConnection.js +3 -1
  363. package/lib/esm/IModelConnection.js.map +1 -1
  364. package/lib/esm/ImageUtil.d.ts +6 -0
  365. package/lib/esm/ImageUtil.d.ts.map +1 -1
  366. package/lib/esm/ImageUtil.js +12 -0
  367. package/lib/esm/ImageUtil.js.map +1 -1
  368. package/lib/esm/Marker.d.ts.map +1 -1
  369. package/lib/esm/Marker.js +5 -1
  370. package/lib/esm/Marker.js.map +1 -1
  371. package/lib/esm/NativeAppLogger.d.ts.map +1 -1
  372. package/lib/esm/NativeAppLogger.js +1 -1
  373. package/lib/esm/NativeAppLogger.js.map +1 -1
  374. package/lib/esm/TentativePoint.d.ts.map +1 -1
  375. package/lib/esm/TentativePoint.js.map +1 -1
  376. package/lib/esm/ViewManager.d.ts.map +1 -1
  377. package/lib/esm/ViewManager.js +2 -2
  378. package/lib/esm/ViewManager.js.map +1 -1
  379. package/lib/esm/ViewRect.d.ts.map +1 -1
  380. package/lib/esm/ViewRect.js +5 -1
  381. package/lib/esm/ViewRect.js.map +1 -1
  382. package/lib/esm/ViewState.d.ts.map +1 -1
  383. package/lib/esm/ViewState.js +4 -1
  384. package/lib/esm/ViewState.js.map +1 -1
  385. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  386. package/lib/esm/ViewingSpace.js +12 -5
  387. package/lib/esm/ViewingSpace.js.map +1 -1
  388. package/lib/esm/Viewport.d.ts.map +1 -1
  389. package/lib/esm/Viewport.js +4 -1
  390. package/lib/esm/Viewport.js.map +1 -1
  391. package/lib/esm/core-frontend.d.ts +6 -0
  392. package/lib/esm/core-frontend.d.ts.map +1 -1
  393. package/lib/esm/core-frontend.js +6 -0
  394. package/lib/esm/core-frontend.js.map +1 -1
  395. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  396. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  397. package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -1
  398. package/lib/esm/extension/ExtensionImpl.js +3 -1
  399. package/lib/esm/extension/ExtensionImpl.js.map +1 -1
  400. package/lib/esm/public/scripts/checkbrowser.js +24 -0
  401. package/lib/esm/render/Decorations.d.ts.map +1 -1
  402. package/lib/esm/render/Decorations.js +24 -6
  403. package/lib/esm/render/Decorations.js.map +1 -1
  404. package/lib/esm/render/RealityMeshGraphicParams.d.ts +19 -0
  405. package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -0
  406. package/lib/esm/render/RealityMeshGraphicParams.js +9 -0
  407. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -0
  408. package/lib/esm/render/RealityMeshParams.d.ts +130 -0
  409. package/lib/esm/render/RealityMeshParams.d.ts.map +1 -0
  410. package/lib/esm/render/RealityMeshParams.js +172 -0
  411. package/lib/esm/render/RealityMeshParams.js.map +1 -0
  412. package/lib/esm/render/RenderSystem.d.ts +6 -4
  413. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  414. package/lib/esm/render/RenderSystem.js +5 -1
  415. package/lib/esm/render/RenderSystem.js.map +1 -1
  416. package/lib/esm/render/RenderTexture.d.ts +1 -1
  417. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  418. package/lib/esm/render/RenderTexture.js.map +1 -1
  419. package/lib/esm/render/UpsampleRealityMeshParams.d.ts +11 -0
  420. package/lib/esm/render/UpsampleRealityMeshParams.d.ts.map +1 -0
  421. package/lib/esm/render/UpsampleRealityMeshParams.js +201 -0
  422. package/lib/esm/render/UpsampleRealityMeshParams.js.map +1 -0
  423. package/lib/esm/render/primitives/DisplayParams.d.ts.map +1 -1
  424. package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
  425. package/lib/esm/render/primitives/Polyface.d.ts.map +1 -1
  426. package/lib/esm/render/primitives/Polyface.js +3 -1
  427. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  428. package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
  429. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  430. package/lib/esm/render/primitives/Strokes.d.ts.map +1 -1
  431. package/lib/esm/render/primitives/Strokes.js +6 -2
  432. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  433. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  434. package/lib/esm/render/primitives/VertexTableSplitter.js +1 -79
  435. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -1
  436. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  437. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +4 -1
  438. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  439. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  440. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  441. package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  442. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  443. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  444. package/lib/esm/render/webgl/ColorInfo.js +4 -1
  445. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  446. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  447. package/lib/esm/render/webgl/DrawCommand.js +12 -3
  448. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  449. package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
  450. package/lib/esm/render/webgl/FrameBuffer.js +4 -1
  451. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  452. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  453. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  454. package/lib/esm/render/webgl/Graphic.js +5 -2
  455. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  456. package/lib/esm/render/webgl/Matrix.d.ts.map +1 -1
  457. package/lib/esm/render/webgl/Matrix.js +16 -4
  458. package/lib/esm/render/webgl/Matrix.js.map +1 -1
  459. package/lib/esm/render/webgl/PerformanceMetrics.js +2 -2
  460. package/lib/esm/render/webgl/PerformanceMetrics.js.map +1 -1
  461. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  462. package/lib/esm/render/webgl/PlanarClassifier.js +3 -1
  463. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  464. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  465. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  466. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  467. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  468. package/lib/esm/render/webgl/RealityMesh.d.ts +5 -5
  469. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  470. package/lib/esm/render/webgl/RealityMesh.js +20 -10
  471. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  472. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  473. package/lib/esm/render/webgl/RenderCommands.js +3 -2
  474. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  475. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  476. package/lib/esm/render/webgl/RenderFlags.js +3 -1
  477. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  478. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  479. package/lib/esm/render/webgl/ShaderBuilder.js +4 -1
  480. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  481. package/lib/esm/render/webgl/System.d.ts +5 -4
  482. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  483. package/lib/esm/render/webgl/System.js +8 -3
  484. package/lib/esm/render/webgl/System.js.map +1 -1
  485. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  486. package/lib/esm/render/webgl/Technique.js +3 -1
  487. package/lib/esm/render/webgl/Technique.js.map +1 -1
  488. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  489. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  490. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  491. package/lib/esm/render/webgl/Texture.js +21 -12
  492. package/lib/esm/render/webgl/Texture.js.map +1 -1
  493. package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
  494. package/lib/esm/render/webgl/ThematicSensors.js +8 -2
  495. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  496. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  497. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +3 -1
  498. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  499. package/lib/esm/render/webgl/glsl/Common.js +1 -1
  500. package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
  501. package/lib/esm/render/webgl/glsl/SkyBox.d.ts.map +1 -1
  502. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  503. package/lib/esm/tile/GltfReader.d.ts +3 -2
  504. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  505. package/lib/esm/tile/GltfReader.js +8 -4
  506. package/lib/esm/tile/GltfReader.js.map +1 -1
  507. package/lib/esm/tile/ImdlReader.d.ts +1 -1
  508. package/lib/esm/tile/ImdlReader.js.map +1 -1
  509. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
  510. package/lib/esm/tile/OPCFormatInterpreter.js +3 -1
  511. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  512. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  513. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  514. package/lib/esm/tile/RealityTile.d.ts +57 -3
  515. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  516. package/lib/esm/tile/RealityTile.js +49 -5
  517. package/lib/esm/tile/RealityTile.js.map +1 -1
  518. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  519. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  520. package/lib/esm/tile/RealityTileTree.d.ts +37 -2
  521. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  522. package/lib/esm/tile/RealityTileTree.js +29 -2
  523. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  524. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
  525. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +6 -2
  526. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  527. package/lib/esm/tile/TileAdmin.d.ts +11 -0
  528. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  529. package/lib/esm/tile/TileAdmin.js +28 -4
  530. package/lib/esm/tile/TileAdmin.js.map +1 -1
  531. package/lib/esm/tile/TileRequest.d.ts +5 -1
  532. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  533. package/lib/esm/tile/TileRequest.js +6 -2
  534. package/lib/esm/tile/TileRequest.js.map +1 -1
  535. package/lib/esm/tile/TileStorage.d.ts +13 -0
  536. package/lib/esm/tile/TileStorage.d.ts.map +1 -0
  537. package/lib/esm/tile/TileStorage.js +46 -0
  538. package/lib/esm/tile/TileStorage.js.map +1 -0
  539. package/lib/esm/tile/internal.d.ts +2 -0
  540. package/lib/esm/tile/internal.d.ts.map +1 -1
  541. package/lib/esm/tile/internal.js +2 -0
  542. package/lib/esm/tile/internal.js.map +1 -1
  543. package/lib/esm/tile/map/ArcGISTileMap.js +1 -1
  544. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  545. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  546. package/lib/esm/tile/map/ArcGisUtilities.js +1 -1
  547. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  548. package/lib/esm/tile/map/BingElevation.d.ts +8 -3
  549. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  550. package/lib/esm/tile/map/BingElevation.js +36 -14
  551. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  552. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +2 -7
  553. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  554. package/lib/esm/tile/map/CesiumTerrainProvider.js +101 -91
  555. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  556. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts +9 -12
  557. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  558. package/lib/esm/tile/map/EllipsoidTerrainProvider.js +71 -68
  559. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  560. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  561. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +6 -4
  562. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  563. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  564. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  565. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  566. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  567. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  568. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  569. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +8 -6
  570. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  571. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +3 -3
  572. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  573. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  574. package/lib/esm/tile/map/ImageryTileTree.js +21 -6
  575. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  576. package/lib/esm/tile/map/MapCartoRectangle.d.ts +62 -6
  577. package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
  578. package/lib/esm/tile/map/MapCartoRectangle.js +103 -17
  579. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  580. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  581. package/lib/esm/tile/map/MapLayerImageryFormats.js +4 -2
  582. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  583. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  584. package/lib/esm/tile/map/MapLayerImageryProvider.js +1 -1
  585. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  586. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  587. package/lib/esm/tile/map/MapLayerSources.js +11 -7
  588. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  589. package/lib/esm/tile/map/MapTile.d.ts +68 -15
  590. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  591. package/lib/esm/tile/map/MapTile.js +88 -30
  592. package/lib/esm/tile/map/MapTile.js.map +1 -1
  593. package/lib/esm/tile/map/MapTileAvailability.d.ts.map +1 -1
  594. package/lib/esm/tile/map/MapTileAvailability.js +1 -1
  595. package/lib/esm/tile/map/MapTileAvailability.js.map +1 -1
  596. package/lib/esm/tile/map/MapTileLoader.d.ts +2 -2
  597. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  598. package/lib/esm/tile/map/MapTileLoader.js +12 -21
  599. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  600. package/lib/esm/tile/map/MapTileTree.d.ts +72 -7
  601. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  602. package/lib/esm/tile/map/MapTileTree.js +73 -17
  603. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  604. package/lib/esm/tile/map/MapTilingScheme.d.ts +67 -55
  605. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  606. package/lib/esm/tile/map/MapTilingScheme.js +72 -68
  607. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  608. package/lib/esm/tile/map/QuadId.d.ts +24 -2
  609. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  610. package/lib/esm/tile/map/QuadId.js +49 -20
  611. package/lib/esm/tile/map/QuadId.js.map +1 -1
  612. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +79 -19
  613. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  614. package/lib/esm/tile/map/TerrainMeshProvider.js +28 -13
  615. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  616. package/lib/esm/tile/map/TerrainProvider.d.ts +34 -0
  617. package/lib/esm/tile/map/TerrainProvider.d.ts.map +1 -0
  618. package/lib/esm/tile/map/TerrainProvider.js +37 -0
  619. package/lib/esm/tile/map/TerrainProvider.js.map +1 -0
  620. package/lib/esm/tile/map/WmsCapabilities.js +1 -1
  621. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  622. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  623. package/lib/esm/tile/map/WmtsCapabilities.js +7 -3
  624. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  625. package/lib/esm/tile/object-storage-azure.js +5 -0
  626. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  627. package/lib/esm/tools/AccuDrawTool.js +87 -26
  628. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  629. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  630. package/lib/esm/tools/ClipViewTool.js +23 -14
  631. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  632. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  633. package/lib/esm/tools/ElementSetTool.js +26 -10
  634. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  635. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  636. package/lib/esm/tools/MeasureTool.js +46 -17
  637. package/lib/esm/tools/MeasureTool.js.map +1 -1
  638. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  639. package/lib/esm/tools/PrimitiveTool.js +9 -4
  640. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  641. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  642. package/lib/esm/tools/SelectTool.js +20 -9
  643. package/lib/esm/tools/SelectTool.js.map +1 -1
  644. package/lib/esm/tools/Tool.d.ts.map +1 -1
  645. package/lib/esm/tools/Tool.js +13 -5
  646. package/lib/esm/tools/Tool.js.map +1 -1
  647. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  648. package/lib/esm/tools/ToolAdmin.js +27 -9
  649. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  650. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  651. package/lib/esm/tools/ViewTool.js +110 -39
  652. package/lib/esm/tools/ViewTool.js.map +1 -1
  653. package/package.json +29 -23
  654. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +0 -47
  655. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +0 -1
  656. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +0 -75
  657. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +0 -1
  658. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +0 -56
  659. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts.map +0 -1
  660. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +0 -270
  661. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +0 -1
  662. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +0 -47
  663. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +0 -1
  664. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +0 -71
  665. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +0 -1
  666. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +0 -56
  667. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts.map +0 -1
  668. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +0 -266
  669. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OrbitGtTileTree.js","sourceRoot":"","sources":["../../../src/tile/OrbitGtTileTree.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 TileTreeSupplier\r\n */\r\n\r\nimport { BeTimePoint, compareStringsOrUndefined, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n BatchType, Cartographic, ColorDef, Feature, FeatureTable, Frustum, FrustumPlanes, GeoCoordStatus, OrbitGtBlobProps, PackedFeatureTable, QParams3d,\r\n Quantization, RealityDataFormat, RealityDataProvider, RealityDataSourceKey, ViewFlagOverrides,\r\n} from \"@itwin/core-common\";\r\nimport { Point3d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\r\nimport {\r\n ALong, CRSManager, Downloader, DownloaderXhr, OnlineEngine, OPCReader, OrbitGtAList, OrbitGtBlockIndex, OrbitGtBounds, OrbitGtCoordinate,\r\n OrbitGtDataManager, OrbitGtFrameData, OrbitGtIProjectToViewForSort, OrbitGtIViewRequest, OrbitGtLevel, OrbitGtTileIndex, OrbitGtTileLoadSorter,\r\n OrbitGtTransform, PageCachedFile, PointDataRaw, UrlFS,\r\n} from \"@itwin/core-orbitgt\";\r\nimport { calculateEcefToDbTransformAtLocation } from \"../BackgroundMapGeometry\";\r\nimport { HitDetail } from \"../HitDetail\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { RealityDataSource } from \"../RealityDataSource\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { PointCloudArgs } from \"../render/primitives/PointCloudPrimitive\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderMemory } from \"../render/RenderMemory\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { ViewingSpace } from \"../ViewingSpace\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport {\r\n RealityModelTileTree, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileParams, TileRequest, TileTree, TileTreeOwner,\r\n TileTreeParams, TileTreeSupplier, TileUsageMarker,\r\n} from \"./internal\";\r\n\r\nconst scratchRange = Range3d.create();\r\nconst scratchWorldFrustum = new Frustum();\r\n\r\ninterface OrbitGtTreeId {\r\n rdSourceKey: RealityDataSourceKey;\r\n modelId: Id64String;\r\n}\r\n\r\nclass OrbitGtTreeSupplier implements TileTreeSupplier {\r\n public getOwner(treeId: OrbitGtTreeId, iModel: IModelConnection): TileTreeOwner {\r\n return iModel.tiles.getTileTreeOwner(treeId, this);\r\n }\r\n\r\n public async createTileTree(treeId: OrbitGtTreeId, iModel: IModelConnection): Promise<TileTree | undefined> {\r\n return OrbitGtTileTree.createOrbitGtTileTree(treeId.rdSourceKey, iModel, treeId.modelId);\r\n }\r\n\r\n public compareTileTreeIds(lhs: OrbitGtTreeId, rhs: OrbitGtTreeId): number {\r\n let cmp = compareStringsOrUndefined(lhs.rdSourceKey.id, rhs.rdSourceKey.id);\r\n if (0 === cmp)\r\n cmp = compareStringsOrUndefined(lhs.rdSourceKey.format, rhs.rdSourceKey.format);\r\n if (0 === cmp)\r\n cmp = compareStringsOrUndefined(lhs.rdSourceKey.iTwinId, rhs.rdSourceKey.iTwinId);\r\n if (0 === cmp)\r\n cmp = compareStringsOrUndefined(lhs.modelId, rhs.modelId);\r\n\r\n return cmp;\r\n }\r\n}\r\n\r\nconst orbitGtTreeSupplier = new OrbitGtTreeSupplier();\r\n\r\nfunction transformFromOrbitGt(ogtTransform: OrbitGtTransform, result?: Transform): Transform {\r\n if (undefined === result)\r\n result = Transform.createIdentity();\r\n\r\n result.matrix.setRowValues(\r\n ogtTransform.getElement(0, 0), ogtTransform.getElement(0, 1), ogtTransform.getElement(0, 2),\r\n ogtTransform.getElement(1, 0), ogtTransform.getElement(1, 1), ogtTransform.getElement(1, 2),\r\n ogtTransform.getElement(2, 0), ogtTransform.getElement(2, 1), ogtTransform.getElement(2, 2));\r\n\r\n result.origin.x = ogtTransform.getElement(0, 3);\r\n result.origin.y = ogtTransform.getElement(1, 3);\r\n result.origin.z = ogtTransform.getElement(2, 3);\r\n return result;\r\n}\r\n\r\nfunction pointFromOrbitGt(ogtCoordinate: OrbitGtCoordinate, result?: Point3d): Point3d {\r\n if (undefined === result)\r\n result = Point3d.create();\r\n\r\n result.x = ogtCoordinate.x;\r\n result.y = ogtCoordinate.y;\r\n result.z = ogtCoordinate.z;\r\n\r\n return result;\r\n}\r\n\r\nfunction rangeFromOrbitGt(ogtBounds: OrbitGtBounds, result?: Range3d) {\r\n if (undefined === result)\r\n result = Range3d.create();\r\n\r\n pointFromOrbitGt(ogtBounds.min, result.low);\r\n pointFromOrbitGt(ogtBounds.max, result.high);\r\n return result;\r\n}\r\n\r\n/** @internal */\r\nexport function createOrbitGtTileTreeReference(props: OrbitGtTileTree.ReferenceProps): RealityModelTileTree.Reference {\r\n return new OrbitGtTreeReference(props);\r\n}\r\n\r\nclass OrbitGtTileTreeParams implements TileTreeParams {\r\n public id: string;\r\n public modelId: string;\r\n public iModel: IModelConnection;\r\n public get priority(): TileLoadPriority { return TileLoadPriority.Context; }\r\n\r\n public constructor(rdSourceKey: RealityDataSourceKey, iModel: IModelConnection, modelId: Id64String, public location: Transform) {\r\n const key = rdSourceKey;\r\n this.id = `${key.provider}:${key.format}:${key.id}:${key.iTwinId}`;\r\n this.modelId = modelId;\r\n this.iModel = iModel;\r\n }\r\n}\r\n\r\nclass OrbitGtRootTile extends Tile {\r\n protected _loadChildren(_resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void { }\r\n public async requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response> { return undefined; }\r\n public get channel() { return IModelApp.tileAdmin.channels.getForHttp(\"itwinjs-orbitgit\"); }\r\n public async readContent(_data: TileRequest.ResponseData, _system: RenderSystem, _isCanceled?: () => boolean): Promise<TileContent> { return {}; }\r\n public override freeMemory(): void { }\r\n\r\n constructor(params: TileParams, tree: TileTree) { super(params, tree); }\r\n}\r\n\r\nclass OrbitGtViewRequest extends OrbitGtIViewRequest {\r\n private _tileToIModelTransform: Transform;\r\n constructor(private _tileDrawArgs: TileDrawArgs, private _centerOffset: Vector3d) {\r\n super();\r\n this._tileToIModelTransform = _tileDrawArgs.location.multiplyTransformTransform(Transform.createTranslation(_centerOffset));\r\n }\r\n\r\n public isVisibleBox(bounds: OrbitGtBounds): boolean {\r\n const box = Frustum.fromRange(rangeFromOrbitGt(bounds, scratchRange));\r\n const worldBox = box.transformBy(this._tileToIModelTransform, scratchWorldFrustum);\r\n return FrustumPlanes.Containment.Outside !== this._tileDrawArgs.frustumPlanes.computeFrustumContainment(worldBox, undefined);\r\n }\r\n public getFrameTime(): number {\r\n return this._tileDrawArgs.now.milliseconds;\r\n }\r\n\r\n public shouldSplit(level: OrbitGtLevel, tile: OrbitGtTileIndex) {\r\n // get the world size of the tile voxels\r\n const tileCenter: OrbitGtCoordinate = level.getTileGrid().getCellCenter(tile.gridIndex);\r\n tileCenter.x += this._centerOffset.x;\r\n tileCenter.y += this._centerOffset.y;\r\n tileCenter.z += this._centerOffset.z;\r\n const worldCenter: Point3d = this._tileDrawArgs.location.multiplyXYZ(tileCenter.x, tileCenter.y, tileCenter.z);\r\n const worldCenter2: Point3d = this._tileDrawArgs.location.multiplyXYZ(tileCenter.x, tileCenter.y, tileCenter.z + level.getTileGrid().size.z);\r\n const voxelSize: number = worldCenter2.distance(worldCenter) / 64;\r\n // get the world size of a screen pixel at the tile center\r\n const viewPt: Point3d = this._tileDrawArgs.worldToViewMap.transform0.multiplyPoint3dQuietNormalize(worldCenter);\r\n const viewPt2: Point3d = new Point3d(viewPt.x + 1.0, viewPt.y, viewPt.z);\r\n const pixelSizeAtCenter: number = this._tileDrawArgs.worldToViewMap.transform1.multiplyPoint3dQuietNormalize(viewPt).distance(this._tileDrawArgs.worldToViewMap.transform1.multiplyPoint3dQuietNormalize(viewPt2));\r\n // stop splitting if the voxel size of the children becomes too small to improve quality\r\n const split: boolean = (0.5 * voxelSize > 2.0 * pixelSizeAtCenter);\r\n return split;\r\n }\r\n}\r\n\r\nclass TileSortProjector implements OrbitGtIProjectToViewForSort {\r\n private _sortTransform: Transform;\r\n constructor(iModelTransform: Transform, viewingSpace: ViewingSpace, centerOffset: Vector3d) {\r\n const rotation = viewingSpace.rotation;\r\n let origin: Vector3d;\r\n if (undefined === viewingSpace.eyePoint) {\r\n origin = Vector3d.createFrom(viewingSpace.viewOrigin);\r\n const viewDelta = viewingSpace.viewDelta;\r\n const eyeDelta = Vector3d.createFrom({ x: viewDelta.x / 2, y: viewDelta.y / 2, z: viewDelta.z * 10 });\r\n rotation.multiplyVector(eyeDelta, eyeDelta);\r\n origin.addInPlace(eyeDelta);\r\n } else {\r\n origin = Vector3d.createFrom(viewingSpace.eyePoint);\r\n }\r\n\r\n rotation.multiplyVector(origin);\r\n origin.scaleInPlace(-1);\r\n const toViewTransform = Transform.createOriginAndMatrix(origin, rotation);\r\n const tileToIModelTransform = iModelTransform.multiplyTransformTransform(Transform.createTranslation(centerOffset));\r\n this._sortTransform = toViewTransform.multiplyTransformTransform(tileToIModelTransform);\r\n }\r\n public projectToViewForSort(coordinate: OrbitGtCoordinate) {\r\n const point = pointFromOrbitGt(coordinate);\r\n this._sortTransform.multiplyPoint3d(point, point);\r\n coordinate.x = point.x;\r\n coordinate.y = point.y;\r\n coordinate.z = point.z;\r\n }\r\n}\r\n\r\nclass OrbitGtTileGraphic extends TileUsageMarker {\r\n public readonly graphic: RenderGraphic;\r\n\r\n public constructor(graphic: RenderGraphic, viewport: Viewport, time: BeTimePoint) {\r\n super();\r\n this.graphic = graphic;\r\n this.mark(viewport, time);\r\n }\r\n\r\n public dispose(): void {\r\n this.graphic.dispose();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class OrbitGtTileTree extends TileTree {\r\n private _tileParams: TileParams;\r\n public rootTile: OrbitGtRootTile;\r\n public viewFlagOverrides: ViewFlagOverrides = {};\r\n private _tileGraphics = new Map<string, OrbitGtTileGraphic>();\r\n\r\n public constructor(treeParams: TileTreeParams, private _dataManager: OrbitGtDataManager, cloudRange: Range3d, private _centerOffset: Vector3d, private _ecefTransform: Transform) {\r\n super(treeParams);\r\n\r\n const worldContentRange = this.iModelTransform.multiplyRange(cloudRange);\r\n this.iModel.expandDisplayedExtents(worldContentRange);\r\n this._tileParams = { contentId: \"0\", range: cloudRange, maximumSize: 256 };\r\n this.rootTile = new OrbitGtRootTile(this._tileParams, this);\r\n }\r\n\r\n public override async getEcefTransform(): Promise<Transform | undefined> {\r\n return this._ecefTransform;\r\n }\r\n\r\n public override dispose(): void {\r\n if (this.isDisposed)\r\n return;\r\n\r\n for (const graphic of this._tileGraphics.values())\r\n graphic.dispose();\r\n\r\n this._tileGraphics.clear();\r\n super.dispose();\r\n }\r\n\r\n protected _selectTiles(_args: TileDrawArgs): Tile[] { return []; }\r\n public get is3d(): boolean { return true; }\r\n public override get isContentUnbounded(): boolean { return false; }\r\n public get maxDepth(): number | undefined { return undefined; }\r\n\r\n private _doPrune(olderThan: BeTimePoint) {\r\n for (const [key, graphic] of this._tileGraphics)\r\n if (graphic.isExpired(olderThan)) {\r\n graphic.dispose();\r\n this._tileGraphics.delete(key);\r\n }\r\n }\r\n\r\n public prune() {\r\n const olderThan = BeTimePoint.now().minus(this.expirationTime);\r\n this._doPrune(olderThan);\r\n }\r\n\r\n public override collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const tileGraphic of this._tileGraphics)\r\n tileGraphic[1].graphic.collectStatistics(stats);\r\n }\r\n\r\n public draw(args: TileDrawArgs) {\r\n const debugControl = args.context.target.debugControl;\r\n const debugBuilder = (debugControl && debugControl.displayRealityTileRanges) ? args.context.createSceneGraphicBuilder() : undefined;\r\n const doLogging = (debugControl && debugControl.logRealityTiles);\r\n const viewRequest = new OrbitGtViewRequest(args, this._centerOffset);\r\n const levelsInView = new OrbitGtAList<OrbitGtLevel>();\r\n const blocksInView = new OrbitGtAList<OrbitGtBlockIndex>();\r\n const tilesInView = new OrbitGtAList<OrbitGtTileIndex>();\r\n const frameData = new OrbitGtFrameData();\r\n\r\n this._dataManager.getViewTree().renderView3D(viewRequest, levelsInView, blocksInView, tilesInView, frameData.tilesToRender);\r\n this._dataManager.filterLoadList(levelsInView, blocksInView, tilesInView, frameData.levelsToLoad, frameData.blocksToLoad, frameData.tilesToLoad);\r\n tilesInView.sort(new OrbitGtTileLoadSorter(this._dataManager.getViewTree(), new TileSortProjector(this.iModelTransform, args.context.viewingSpace, this._centerOffset)));\r\n\r\n let totalPointCount = 0;\r\n const tileCount = frameData.tilesToRender.size();\r\n\r\n // Inform TileAdmin about tiles we are handling ourselves...\r\n IModelApp.tileAdmin.addExternalTilesForUser(args.context.viewport, { requested: frameData.tilesToLoad.size(), selected: tileCount, ready: tileCount });\r\n\r\n if (debugBuilder)\r\n debugBuilder.setSymbology(ColorDef.red, ColorDef.red, 1);\r\n\r\n let minLevel = 100, maxLevel = -100;\r\n for (let t: number = 0; t < tileCount; t++) {\r\n const tile: PointDataRaw = frameData.tilesToRender.get(t) as PointDataRaw;\r\n minLevel = Math.min(minLevel, tile.tileIndex.level);\r\n maxLevel = Math.max(maxLevel, tile.tileIndex.level);\r\n totalPointCount += tile.tileIndex.pointCount;\r\n const key = tile.tileIndex.key;\r\n const cachedGraphic = this._tileGraphics.get(key);\r\n if (undefined !== cachedGraphic) {\r\n cachedGraphic.mark(args.context.viewport, args.now);\r\n args.graphics.add(cachedGraphic.graphic);\r\n } else {\r\n const range = rangeFromOrbitGt(tile.bounds);\r\n range.low.addInPlace(this._centerOffset);\r\n range.high.addInPlace(this._centerOffset);\r\n const qParams = QParams3d.fromRange(range, undefined, (tile.points8 != null) ? Quantization.rangeScale8 : Quantization.rangeScale16);\r\n const featureTable = new FeatureTable(1, this.modelId, BatchType.Primary);\r\n const features = new Mesh.Features(featureTable);\r\n const system = IModelApp.renderSystem;\r\n const voxelSize = (range.high.x - range.low.x) / 64;\r\n\r\n features.add(new Feature(this.modelId), 1);\r\n const tilePoints = (tile.points8 != null) ? tile.points8.toNativeBuffer() : tile.points16.toNativeBuffer();\r\n let renderGraphic = system.createPointCloud(new PointCloudArgs(tilePoints, qParams, tile.colors.toNativeBuffer(), features, voxelSize, true), this.iModel);\r\n renderGraphic = system.createBatch(renderGraphic!, PackedFeatureTable.pack(featureTable), range);\r\n args.graphics.add(renderGraphic);\r\n this._tileGraphics.set(key, new OrbitGtTileGraphic(renderGraphic, args.context.viewport, args.now));\r\n }\r\n\r\n if (debugBuilder)\r\n debugBuilder.addRangeBox(rangeFromOrbitGt(tile.bounds));\r\n }\r\n\r\n if (debugBuilder)\r\n args.graphics.add(debugBuilder.finish());\r\n\r\n if (doLogging) {\r\n // eslint-disable-next-line no-console\r\n console.log(`Total OrbitGtTiles: ${tileCount} MinLevel: ${minLevel} MaxLevel: ${maxLevel} Total Points: ${totalPointCount}`);\r\n }\r\n\r\n args.drawGraphics();\r\n if (frameData.hasMissingData()) {\r\n this._dataManager.loadData(frameData).then(() => IModelApp.tileAdmin.onTileLoad.raiseEvent(this.rootTile)).catch((_err: any) => undefined);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\n// eslint-disable-next-line no-redeclare\r\nexport namespace OrbitGtTileTree {\r\n export interface ReferenceProps extends RealityModelTileTree.ReferenceBaseProps {\r\n orbitGtBlob?: OrbitGtBlobProps;\r\n modelId?: Id64String;\r\n }\r\n function isValidSASToken(downloadUrl: string): boolean {\r\n\r\n // Create fake URL for and parameter parsing and SAS token URI parsing\r\n if(!downloadUrl.startsWith(\"http\"))\r\n downloadUrl = `http://x.com/x?${downloadUrl}`;\r\n\r\n const sasUrl = new URL(downloadUrl);\r\n\r\n const se = sasUrl.searchParams.get(\"se\");\r\n if (se) {\r\n const expiryUTC = new Date(se);\r\n const now = new Date();\r\n const currentUTC = new Date(now?.toUTCString());\r\n\r\n return expiryUTC >= currentUTC;\r\n }\r\n\r\n return false;\r\n }\r\n function isValidOrbitGtBlobProps(props: OrbitGtBlobProps): boolean {\r\n\r\n // Check main OrbitGtBlobProps fields are defined\r\n if(!props.accountName || !props.containerName || !props.blobFileName || !props.sasToken)\r\n return false;\r\n\r\n // Check SAS token is valid\r\n return isValidSASToken(props.sasToken);\r\n }\r\n\r\n export async function createOrbitGtTileTree(rdSourceKey: RealityDataSourceKey, iModel: IModelConnection, modelId: Id64String): Promise<TileTree | undefined> {\r\n const rdSource = await RealityDataSource.fromKey(rdSourceKey, iModel.iTwinId);\r\n const isContextShare = rdSourceKey.provider === RealityDataProvider.ContextShare;\r\n const isTilestUrl = rdSourceKey.provider === RealityDataProvider.TilesetUrl;\r\n\r\n let blobStringUrl: string;\r\n if (isContextShare) {\r\n const realityData = rdSource ? rdSource.realityData : undefined;\r\n if (rdSource === undefined || realityData === undefined )\r\n return undefined;\r\n const docRootName = realityData.rootDocument;\r\n if (!docRootName)\r\n return undefined;\r\n const token = await IModelApp.getAccessToken();\r\n const blobUrl = await realityData.getBlobUrl(token, docRootName);\r\n blobStringUrl = blobUrl.toString();\r\n } else if (isTilestUrl) {\r\n blobStringUrl = rdSourceKey.id;\r\n } else {\r\n const orbitGtBlobProps = RealityDataSource.createOrbitGtBlobPropsFromKey(rdSourceKey);\r\n if (orbitGtBlobProps === undefined)\r\n return undefined;\r\n if(!isValidOrbitGtBlobProps(orbitGtBlobProps))\r\n return undefined;\r\n const { accountName, containerName, blobFileName, sasToken } = orbitGtBlobProps;\r\n blobStringUrl = blobFileName;\r\n if (accountName.length > 0)\r\n blobStringUrl = UrlFS.getAzureBlobSasUrl(accountName, containerName, blobFileName, sasToken);\r\n }\r\n\r\n if (Downloader.INSTANCE == null) Downloader.INSTANCE = new DownloaderXhr();\r\n if (CRSManager.ENGINE == null) CRSManager.ENGINE = await OnlineEngine.create();\r\n // wrap a caching layer (16 MB) around the blob file\r\n const urlFS: UrlFS = new UrlFS();\r\n const blobFileSize: ALong = await urlFS.getFileLength(blobStringUrl);\r\n const cacheKilobytes = 128;\r\n const cachedBlobFile = new PageCachedFile(urlFS, blobStringUrl, blobFileSize, cacheKilobytes * 1024 /* pageSize*/, 128/* maxPageCount*/);\r\n const pointCloudReader = await OPCReader.openFile(cachedBlobFile, blobStringUrl, true/* lazyLoading*/);\r\n let pointCloudCRS = pointCloudReader.getFileCRS();\r\n if (pointCloudCRS == null)\r\n pointCloudCRS = \"\";\r\n const dataManager = new OrbitGtDataManager(pointCloudReader, pointCloudCRS, PointDataRaw.TYPE);\r\n const pointCloudBounds = dataManager.getPointCloudBounds();\r\n const pointCloudRange = rangeFromOrbitGt(pointCloudBounds);\r\n const pointCloudCenter = pointCloudRange.localXYZToWorld(.5, .5, .5)!;\r\n const addCloudCenter = Transform.createTranslation(pointCloudCenter);\r\n const ecefTransform = Transform.createIdentity();\r\n let pointCloudCenterToDb = addCloudCenter;\r\n if (pointCloudCRS.length > 0) {\r\n await CRSManager.ENGINE.prepareForArea(pointCloudCRS, pointCloudBounds);\r\n const wgs84CRS = \"4978\";\r\n await CRSManager.ENGINE.prepareForArea(wgs84CRS, new OrbitGtBounds());\r\n const pointCloudToEcef = transformFromOrbitGt(CRSManager.createTransform(pointCloudCRS, new OrbitGtCoordinate(pointCloudCenter.x, pointCloudCenter.y, pointCloudCenter.z), wgs84CRS));\r\n const pointCloudCenterToEcef = pointCloudToEcef.multiplyTransformTransform(addCloudCenter);\r\n ecefTransform.setFrom(pointCloudCenterToEcef);\r\n\r\n let ecefToDb = iModel.getMapEcefToDb(0);\r\n // In initial publishing version the iModel ecef Transform was used to locate the reality model.\r\n // This would work well only for tilesets published from that iModel but for iModels the ecef transform is calculated\r\n // at the center of the project extents and the reality model location may differ greatly, and the curvature of the earth\r\n // could introduce significant errors.\r\n // The publishing was modified to calculate the ecef transform at the reality model range center and at the same time the \"iModelPublishVersion\"\r\n // member was added to the root object.\r\n const ecefOrigin = pointCloudCenterToEcef.getOrigin();\r\n const dbOrigin = ecefToDb.multiplyPoint3d(ecefOrigin);\r\n const realityOriginToProjectDistance = iModel.projectExtents.distanceToPoint(dbOrigin);\r\n const maxProjectDistance = 1E5; // Only use the project GCS projection if within 100KM of the project. Don't attempt to use GCS if global reality model or in another locale - Results will be unreliable.\r\n if (realityOriginToProjectDistance < maxProjectDistance) {\r\n const cartographicOrigin = Cartographic.fromEcef(ecefOrigin);\r\n const geoConverter = iModel.noGcsDefined ? undefined : iModel.geoServices.getConverter(\"WGS84\");\r\n if (cartographicOrigin !== undefined && geoConverter !== undefined) {\r\n const geoOrigin = Point3d.create(cartographicOrigin.longitudeDegrees, cartographicOrigin.latitudeDegrees, cartographicOrigin.height);\r\n const response = await geoConverter.getIModelCoordinatesFromGeoCoordinates([geoOrigin]);\r\n if (response.iModelCoords[0].s === GeoCoordStatus.Success) {\r\n const ecefToDbOrigin = await calculateEcefToDbTransformAtLocation(Point3d.fromJSON(response.iModelCoords[0].p), iModel);\r\n if (ecefToDbOrigin)\r\n ecefToDb = ecefToDbOrigin;\r\n }\r\n }\r\n }\r\n\r\n pointCloudCenterToDb = ecefToDb.multiplyTransformTransform(pointCloudCenterToEcef);\r\n }\r\n const params = new OrbitGtTileTreeParams(rdSourceKey, iModel, modelId, pointCloudCenterToDb);\r\n\r\n // We use a RTC transform to avoid jitter from large cloud coordinates.\r\n const centerOffset = Vector3d.create(-pointCloudCenter.x, -pointCloudCenter.y, -pointCloudCenter.z);\r\n pointCloudRange.low.addInPlace(centerOffset);\r\n pointCloudRange.high.addInPlace(centerOffset);\r\n return new OrbitGtTileTree(params, dataManager, pointCloudRange, centerOffset, ecefTransform);\r\n }\r\n}\r\n\r\n/** Supplies a reality data [[TileTree]] from a URL. May be associated with a persistent [[GeometricModelState]], or attached at run-time via a [[ContextOrbitGtState]].\r\n * @internal\r\n */\r\nclass OrbitGtTreeReference extends RealityModelTileTree.Reference {\r\n public readonly treeOwner: TileTreeOwner;\r\n protected _rdSourceKey: RealityDataSourceKey;\r\n public override get castsShadows() { return false; }\r\n\r\n public constructor(props: OrbitGtTileTree.ReferenceProps) {\r\n super(props);\r\n // Create rdSourceKey if not provided\r\n if (props.rdSourceKey) {\r\n this._rdSourceKey = props.rdSourceKey;\r\n } else if (props.orbitGtBlob) {\r\n this._rdSourceKey = RealityDataSource.createKeyFromOrbitGtBlobProps(props.orbitGtBlob);\r\n } else {\r\n // TODO: Maybe we should throw an exception\r\n this._rdSourceKey = RealityDataSource.createKeyFromBlobUrl(\"\", RealityDataProvider.OrbitGtBlob, RealityDataFormat.OPC);\r\n }\r\n\r\n const ogtTreeId: OrbitGtTreeId = { rdSourceKey: this._rdSourceKey, modelId: this.modelId };\r\n this.treeOwner = orbitGtTreeSupplier.getOwner(ogtTreeId, props.iModel);\r\n }\r\n\r\n public override async getToolTip(hit: HitDetail): Promise<HTMLElement | string | undefined> {\r\n const tree = this.treeOwner.tileTree;\r\n if (undefined === tree || hit.iModel !== tree.iModel)\r\n return undefined;\r\n\r\n const strings = [];\r\n strings.push(IModelApp.localization.getLocalizedString(\"iModelJs:RealityModelTypes.OrbitGTPointCloud\"));\r\n\r\n if (this._name)\r\n strings.push(`${IModelApp.localization.getLocalizedString(\"iModelJs:TooltipInfo.Name\")} ${this._name}`);\r\n\r\n const div = document.createElement(\"div\");\r\n div.innerHTML = strings.join(\"<br>\");\r\n return div;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"OrbitGtTileTree.js","sourceRoot":"","sources":["../../../src/tile/OrbitGtTileTree.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 TileTreeSupplier\r\n */\r\n\r\nimport { BeTimePoint, compareStringsOrUndefined, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n BatchType, Cartographic, ColorDef, Feature, FeatureTable, Frustum, FrustumPlanes, GeoCoordStatus, OrbitGtBlobProps, PackedFeatureTable, QParams3d,\r\n Quantization, RealityDataFormat, RealityDataProvider, RealityDataSourceKey, ViewFlagOverrides,\r\n} from \"@itwin/core-common\";\r\nimport { Point3d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\r\nimport {\r\n ALong, CRSManager, Downloader, DownloaderXhr, OnlineEngine, OPCReader, OrbitGtAList, OrbitGtBlockIndex, OrbitGtBounds, OrbitGtCoordinate,\r\n OrbitGtDataManager, OrbitGtFrameData, OrbitGtIProjectToViewForSort, OrbitGtIViewRequest, OrbitGtLevel, OrbitGtTileIndex, OrbitGtTileLoadSorter,\r\n OrbitGtTransform, PageCachedFile, PointDataRaw, UrlFS,\r\n} from \"@itwin/core-orbitgt\";\r\nimport { calculateEcefToDbTransformAtLocation } from \"../BackgroundMapGeometry\";\r\nimport { HitDetail } from \"../HitDetail\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { RealityDataSource } from \"../RealityDataSource\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { PointCloudArgs } from \"../render/primitives/PointCloudPrimitive\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderMemory } from \"../render/RenderMemory\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { ViewingSpace } from \"../ViewingSpace\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport {\r\n RealityModelTileTree, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileParams, TileRequest, TileTree, TileTreeOwner,\r\n TileTreeParams, TileTreeSupplier, TileUsageMarker,\r\n} from \"./internal\";\r\n\r\nconst scratchRange = Range3d.create();\r\nconst scratchWorldFrustum = new Frustum();\r\n\r\ninterface OrbitGtTreeId {\r\n rdSourceKey: RealityDataSourceKey;\r\n modelId: Id64String;\r\n}\r\n\r\nclass OrbitGtTreeSupplier implements TileTreeSupplier {\r\n public getOwner(treeId: OrbitGtTreeId, iModel: IModelConnection): TileTreeOwner {\r\n return iModel.tiles.getTileTreeOwner(treeId, this);\r\n }\r\n\r\n public async createTileTree(treeId: OrbitGtTreeId, iModel: IModelConnection): Promise<TileTree | undefined> {\r\n return OrbitGtTileTree.createOrbitGtTileTree(treeId.rdSourceKey, iModel, treeId.modelId);\r\n }\r\n\r\n public compareTileTreeIds(lhs: OrbitGtTreeId, rhs: OrbitGtTreeId): number {\r\n let cmp = compareStringsOrUndefined(lhs.rdSourceKey.id, rhs.rdSourceKey.id);\r\n if (0 === cmp)\r\n cmp = compareStringsOrUndefined(lhs.rdSourceKey.format, rhs.rdSourceKey.format);\r\n if (0 === cmp)\r\n cmp = compareStringsOrUndefined(lhs.rdSourceKey.iTwinId, rhs.rdSourceKey.iTwinId);\r\n if (0 === cmp)\r\n cmp = compareStringsOrUndefined(lhs.modelId, rhs.modelId);\r\n\r\n return cmp;\r\n }\r\n}\r\n\r\nconst orbitGtTreeSupplier = new OrbitGtTreeSupplier();\r\n\r\nfunction transformFromOrbitGt(ogtTransform: OrbitGtTransform, result?: Transform): Transform {\r\n if (undefined === result)\r\n result = Transform.createIdentity();\r\n\r\n result.matrix.setRowValues(\r\n ogtTransform.getElement(0, 0), ogtTransform.getElement(0, 1), ogtTransform.getElement(0, 2),\r\n ogtTransform.getElement(1, 0), ogtTransform.getElement(1, 1), ogtTransform.getElement(1, 2),\r\n ogtTransform.getElement(2, 0), ogtTransform.getElement(2, 1), ogtTransform.getElement(2, 2));\r\n\r\n result.origin.x = ogtTransform.getElement(0, 3);\r\n result.origin.y = ogtTransform.getElement(1, 3);\r\n result.origin.z = ogtTransform.getElement(2, 3);\r\n return result;\r\n}\r\n\r\nfunction pointFromOrbitGt(ogtCoordinate: OrbitGtCoordinate, result?: Point3d): Point3d {\r\n if (undefined === result)\r\n result = Point3d.create();\r\n\r\n result.x = ogtCoordinate.x;\r\n result.y = ogtCoordinate.y;\r\n result.z = ogtCoordinate.z;\r\n\r\n return result;\r\n}\r\n\r\nfunction rangeFromOrbitGt(ogtBounds: OrbitGtBounds, result?: Range3d) {\r\n if (undefined === result)\r\n result = Range3d.create();\r\n\r\n pointFromOrbitGt(ogtBounds.min, result.low);\r\n pointFromOrbitGt(ogtBounds.max, result.high);\r\n return result;\r\n}\r\n\r\n/** @internal */\r\nexport function createOrbitGtTileTreeReference(props: OrbitGtTileTree.ReferenceProps): RealityModelTileTree.Reference {\r\n return new OrbitGtTreeReference(props);\r\n}\r\n\r\nclass OrbitGtTileTreeParams implements TileTreeParams {\r\n public id: string;\r\n public modelId: string;\r\n public iModel: IModelConnection;\r\n public get priority(): TileLoadPriority { return TileLoadPriority.Context; }\r\n\r\n public constructor(rdSourceKey: RealityDataSourceKey, iModel: IModelConnection, modelId: Id64String, public location: Transform) {\r\n const key = rdSourceKey;\r\n this.id = `${key.provider}:${key.format}:${key.id}:${key.iTwinId}`;\r\n this.modelId = modelId;\r\n this.iModel = iModel;\r\n }\r\n}\r\n\r\nclass OrbitGtRootTile extends Tile {\r\n protected _loadChildren(_resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void { }\r\n public async requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response> { return undefined; }\r\n public get channel() { return IModelApp.tileAdmin.channels.getForHttp(\"itwinjs-orbitgit\"); }\r\n public async readContent(_data: TileRequest.ResponseData, _system: RenderSystem, _isCanceled?: () => boolean): Promise<TileContent> { return {}; }\r\n public override freeMemory(): void { }\r\n\r\n constructor(params: TileParams, tree: TileTree) { super(params, tree); }\r\n}\r\n\r\nclass OrbitGtViewRequest extends OrbitGtIViewRequest {\r\n private _tileToIModelTransform: Transform;\r\n constructor(private _tileDrawArgs: TileDrawArgs, private _centerOffset: Vector3d) {\r\n super();\r\n this._tileToIModelTransform = _tileDrawArgs.location.multiplyTransformTransform(Transform.createTranslation(_centerOffset));\r\n }\r\n\r\n public isVisibleBox(bounds: OrbitGtBounds): boolean {\r\n const box = Frustum.fromRange(rangeFromOrbitGt(bounds, scratchRange));\r\n const worldBox = box.transformBy(this._tileToIModelTransform, scratchWorldFrustum);\r\n return FrustumPlanes.Containment.Outside !== this._tileDrawArgs.frustumPlanes.computeFrustumContainment(worldBox, undefined);\r\n }\r\n public getFrameTime(): number {\r\n return this._tileDrawArgs.now.milliseconds;\r\n }\r\n\r\n public shouldSplit(level: OrbitGtLevel, tile: OrbitGtTileIndex) {\r\n // get the world size of the tile voxels\r\n const tileCenter: OrbitGtCoordinate = level.getTileGrid().getCellCenter(tile.gridIndex);\r\n tileCenter.x += this._centerOffset.x;\r\n tileCenter.y += this._centerOffset.y;\r\n tileCenter.z += this._centerOffset.z;\r\n const worldCenter: Point3d = this._tileDrawArgs.location.multiplyXYZ(tileCenter.x, tileCenter.y, tileCenter.z);\r\n const worldCenter2: Point3d = this._tileDrawArgs.location.multiplyXYZ(tileCenter.x, tileCenter.y, tileCenter.z + level.getTileGrid().size.z);\r\n const voxelSize: number = worldCenter2.distance(worldCenter) / 64;\r\n // get the world size of a screen pixel at the tile center\r\n const viewPt: Point3d = this._tileDrawArgs.worldToViewMap.transform0.multiplyPoint3dQuietNormalize(worldCenter);\r\n const viewPt2: Point3d = new Point3d(viewPt.x + 1.0, viewPt.y, viewPt.z);\r\n const pixelSizeAtCenter: number = this._tileDrawArgs.worldToViewMap.transform1.multiplyPoint3dQuietNormalize(viewPt).distance(this._tileDrawArgs.worldToViewMap.transform1.multiplyPoint3dQuietNormalize(viewPt2));\r\n // stop splitting if the voxel size of the children becomes too small to improve quality\r\n const split: boolean = (0.5 * voxelSize > 2.0 * pixelSizeAtCenter);\r\n return split;\r\n }\r\n}\r\n\r\nclass TileSortProjector implements OrbitGtIProjectToViewForSort {\r\n private _sortTransform: Transform;\r\n constructor(iModelTransform: Transform, viewingSpace: ViewingSpace, centerOffset: Vector3d) {\r\n const rotation = viewingSpace.rotation;\r\n let origin: Vector3d;\r\n if (undefined === viewingSpace.eyePoint) {\r\n origin = Vector3d.createFrom(viewingSpace.viewOrigin);\r\n const viewDelta = viewingSpace.viewDelta;\r\n const eyeDelta = Vector3d.createFrom({ x: viewDelta.x / 2, y: viewDelta.y / 2, z: viewDelta.z * 10 });\r\n rotation.multiplyVector(eyeDelta, eyeDelta);\r\n origin.addInPlace(eyeDelta);\r\n } else {\r\n origin = Vector3d.createFrom(viewingSpace.eyePoint);\r\n }\r\n\r\n rotation.multiplyVector(origin);\r\n origin.scaleInPlace(-1);\r\n const toViewTransform = Transform.createOriginAndMatrix(origin, rotation);\r\n const tileToIModelTransform = iModelTransform.multiplyTransformTransform(Transform.createTranslation(centerOffset));\r\n this._sortTransform = toViewTransform.multiplyTransformTransform(tileToIModelTransform);\r\n }\r\n public projectToViewForSort(coordinate: OrbitGtCoordinate) {\r\n const point = pointFromOrbitGt(coordinate);\r\n this._sortTransform.multiplyPoint3d(point, point);\r\n coordinate.x = point.x;\r\n coordinate.y = point.y;\r\n coordinate.z = point.z;\r\n }\r\n}\r\n\r\nclass OrbitGtTileGraphic extends TileUsageMarker {\r\n public readonly graphic: RenderGraphic;\r\n\r\n public constructor(graphic: RenderGraphic, viewport: Viewport, time: BeTimePoint) {\r\n super();\r\n this.graphic = graphic;\r\n this.mark(viewport, time);\r\n }\r\n\r\n public dispose(): void {\r\n this.graphic.dispose();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class OrbitGtTileTree extends TileTree {\r\n private _tileParams: TileParams;\r\n public rootTile: OrbitGtRootTile;\r\n public viewFlagOverrides: ViewFlagOverrides = {};\r\n private _tileGraphics = new Map<string, OrbitGtTileGraphic>();\r\n\r\n public constructor(treeParams: TileTreeParams, private _dataManager: OrbitGtDataManager, cloudRange: Range3d, private _centerOffset: Vector3d, private _ecefTransform: Transform) {\r\n super(treeParams);\r\n\r\n const worldContentRange = this.iModelTransform.multiplyRange(cloudRange);\r\n this.iModel.expandDisplayedExtents(worldContentRange);\r\n this._tileParams = { contentId: \"0\", range: cloudRange, maximumSize: 256 };\r\n this.rootTile = new OrbitGtRootTile(this._tileParams, this);\r\n }\r\n\r\n public override async getEcefTransform(): Promise<Transform | undefined> {\r\n return this._ecefTransform;\r\n }\r\n\r\n public override dispose(): void {\r\n if (this.isDisposed)\r\n return;\r\n\r\n for (const graphic of this._tileGraphics.values())\r\n graphic.dispose();\r\n\r\n this._tileGraphics.clear();\r\n super.dispose();\r\n }\r\n\r\n protected _selectTiles(_args: TileDrawArgs): Tile[] { return []; }\r\n public get is3d(): boolean { return true; }\r\n public override get isContentUnbounded(): boolean { return false; }\r\n public get maxDepth(): number | undefined { return undefined; }\r\n\r\n private _doPrune(olderThan: BeTimePoint) {\r\n for (const [key, graphic] of this._tileGraphics)\r\n if (graphic.isExpired(olderThan)) {\r\n graphic.dispose();\r\n this._tileGraphics.delete(key);\r\n }\r\n }\r\n\r\n public prune() {\r\n const olderThan = BeTimePoint.now().minus(this.expirationTime);\r\n this._doPrune(olderThan);\r\n }\r\n\r\n public override collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const tileGraphic of this._tileGraphics)\r\n tileGraphic[1].graphic.collectStatistics(stats);\r\n }\r\n\r\n public draw(args: TileDrawArgs) {\r\n const debugControl = args.context.target.debugControl;\r\n const debugBuilder = (debugControl && debugControl.displayRealityTileRanges) ? args.context.createSceneGraphicBuilder() : undefined;\r\n const doLogging = (debugControl && debugControl.logRealityTiles);\r\n const viewRequest = new OrbitGtViewRequest(args, this._centerOffset);\r\n const levelsInView = new OrbitGtAList<OrbitGtLevel>();\r\n const blocksInView = new OrbitGtAList<OrbitGtBlockIndex>();\r\n const tilesInView = new OrbitGtAList<OrbitGtTileIndex>();\r\n const frameData = new OrbitGtFrameData();\r\n\r\n this._dataManager.getViewTree().renderView3D(viewRequest, levelsInView, blocksInView, tilesInView, frameData.tilesToRender);\r\n this._dataManager.filterLoadList(levelsInView, blocksInView, tilesInView, frameData.levelsToLoad, frameData.blocksToLoad, frameData.tilesToLoad);\r\n tilesInView.sort(new OrbitGtTileLoadSorter(this._dataManager.getViewTree(), new TileSortProjector(this.iModelTransform, args.context.viewingSpace, this._centerOffset)));\r\n\r\n let totalPointCount = 0;\r\n const tileCount = frameData.tilesToRender.size();\r\n\r\n // Inform TileAdmin about tiles we are handling ourselves...\r\n IModelApp.tileAdmin.addExternalTilesForUser(args.context.viewport, { requested: frameData.tilesToLoad.size(), selected: tileCount, ready: tileCount });\r\n\r\n if (debugBuilder)\r\n debugBuilder.setSymbology(ColorDef.red, ColorDef.red, 1);\r\n\r\n let minLevel = 100, maxLevel = -100;\r\n for (let t: number = 0; t < tileCount; t++) {\r\n const tile: PointDataRaw = frameData.tilesToRender.get(t) as PointDataRaw;\r\n minLevel = Math.min(minLevel, tile.tileIndex.level);\r\n maxLevel = Math.max(maxLevel, tile.tileIndex.level);\r\n totalPointCount += tile.tileIndex.pointCount;\r\n const key = tile.tileIndex.key;\r\n const cachedGraphic = this._tileGraphics.get(key);\r\n if (undefined !== cachedGraphic) {\r\n cachedGraphic.mark(args.context.viewport, args.now);\r\n args.graphics.add(cachedGraphic.graphic);\r\n } else {\r\n const range = rangeFromOrbitGt(tile.bounds);\r\n range.low.addInPlace(this._centerOffset);\r\n range.high.addInPlace(this._centerOffset);\r\n const qParams = QParams3d.fromRange(range, undefined, (tile.points8 != null) ? Quantization.rangeScale8 : Quantization.rangeScale16);\r\n const featureTable = new FeatureTable(1, this.modelId, BatchType.Primary);\r\n const features = new Mesh.Features(featureTable);\r\n const system = IModelApp.renderSystem;\r\n const voxelSize = (range.high.x - range.low.x) / 64;\r\n\r\n features.add(new Feature(this.modelId), 1);\r\n const tilePoints = (tile.points8 != null) ? tile.points8.toNativeBuffer() : tile.points16.toNativeBuffer();\r\n let renderGraphic = system.createPointCloud(new PointCloudArgs(tilePoints, qParams, tile.colors.toNativeBuffer(), features, voxelSize, true), this.iModel);\r\n renderGraphic = system.createBatch(renderGraphic!, PackedFeatureTable.pack(featureTable), range);\r\n args.graphics.add(renderGraphic);\r\n this._tileGraphics.set(key, new OrbitGtTileGraphic(renderGraphic, args.context.viewport, args.now));\r\n }\r\n\r\n if (debugBuilder)\r\n debugBuilder.addRangeBox(rangeFromOrbitGt(tile.bounds));\r\n }\r\n\r\n if (debugBuilder)\r\n args.graphics.add(debugBuilder.finish());\r\n\r\n if (doLogging) {\r\n // eslint-disable-next-line no-console\r\n console.log(`Total OrbitGtTiles: ${tileCount} MinLevel: ${minLevel} MaxLevel: ${maxLevel} Total Points: ${totalPointCount}`);\r\n }\r\n\r\n args.drawGraphics();\r\n if (frameData.hasMissingData()) {\r\n this._dataManager.loadData(frameData).then(() => IModelApp.tileAdmin.onTileLoad.raiseEvent(this.rootTile)).catch((_err: any) => undefined);\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\n// eslint-disable-next-line no-redeclare\r\nexport namespace OrbitGtTileTree {\r\n export interface ReferenceProps extends RealityModelTileTree.ReferenceBaseProps {\r\n orbitGtBlob?: OrbitGtBlobProps;\r\n modelId?: Id64String;\r\n }\r\n function isValidSASToken(downloadUrl: string): boolean {\r\n\r\n // Create fake URL for and parameter parsing and SAS token URI parsing\r\n if(!downloadUrl.startsWith(\"http\"))\r\n downloadUrl = `http://x.com/x?${downloadUrl}`;\r\n\r\n const sasUrl = new URL(downloadUrl);\r\n\r\n const se = sasUrl.searchParams.get(\"se\");\r\n if (se) {\r\n const expiryUTC = new Date(se);\r\n const now = new Date();\r\n const currentUTC = new Date(now?.toUTCString());\r\n\r\n return expiryUTC >= currentUTC;\r\n }\r\n\r\n return false;\r\n }\r\n function isValidOrbitGtBlobProps(props: OrbitGtBlobProps): boolean {\r\n\r\n // Check main OrbitGtBlobProps fields are defined\r\n if(!props.accountName || !props.containerName || !props.blobFileName || !props.sasToken)\r\n return false;\r\n\r\n // Check SAS token is valid\r\n return isValidSASToken(props.sasToken);\r\n }\r\n\r\n export async function createOrbitGtTileTree(rdSourceKey: RealityDataSourceKey, iModel: IModelConnection, modelId: Id64String): Promise<TileTree | undefined> {\r\n const rdSource = await RealityDataSource.fromKey(rdSourceKey, iModel.iTwinId);\r\n const isContextShare = rdSourceKey.provider === RealityDataProvider.ContextShare;\r\n const isTilestUrl = rdSourceKey.provider === RealityDataProvider.TilesetUrl;\r\n\r\n let blobStringUrl: string;\r\n if (isContextShare) {\r\n const realityData = rdSource ? rdSource.realityData : undefined;\r\n if (rdSource === undefined || realityData === undefined )\r\n return undefined;\r\n const docRootName = realityData.rootDocument;\r\n if (!docRootName)\r\n return undefined;\r\n const token = await IModelApp.getAccessToken();\r\n const blobUrl = await realityData.getBlobUrl(token, docRootName);\r\n blobStringUrl = blobUrl.toString();\r\n } else if (isTilestUrl) {\r\n blobStringUrl = rdSourceKey.id;\r\n } else {\r\n const orbitGtBlobProps = RealityDataSource.createOrbitGtBlobPropsFromKey(rdSourceKey);\r\n if (orbitGtBlobProps === undefined)\r\n return undefined;\r\n if(!isValidOrbitGtBlobProps(orbitGtBlobProps))\r\n return undefined;\r\n const { accountName, containerName, blobFileName, sasToken } = orbitGtBlobProps;\r\n blobStringUrl = blobFileName;\r\n if (accountName.length > 0)\r\n blobStringUrl = UrlFS.getAzureBlobSasUrl(accountName, containerName, blobFileName, sasToken);\r\n }\r\n\r\n if (Downloader.INSTANCE == null)\r\n Downloader.INSTANCE = new DownloaderXhr();\r\n\r\n if (CRSManager.ENGINE == null)\r\n CRSManager.ENGINE = await OnlineEngine.create();\r\n\r\n // wrap a caching layer (16 MB) around the blob file\r\n const urlFS: UrlFS = new UrlFS();\r\n const blobFileSize: ALong = await urlFS.getFileLength(blobStringUrl);\r\n const cacheKilobytes = 128;\r\n const cachedBlobFile = new PageCachedFile(urlFS, blobStringUrl, blobFileSize, cacheKilobytes * 1024 /* pageSize*/, 128/* maxPageCount*/);\r\n const pointCloudReader = await OPCReader.openFile(cachedBlobFile, blobStringUrl, true/* lazyLoading*/);\r\n let pointCloudCRS = pointCloudReader.getFileCRS();\r\n if (pointCloudCRS == null)\r\n pointCloudCRS = \"\";\r\n const dataManager = new OrbitGtDataManager(pointCloudReader, pointCloudCRS, PointDataRaw.TYPE);\r\n const pointCloudBounds = dataManager.getPointCloudBounds();\r\n const pointCloudRange = rangeFromOrbitGt(pointCloudBounds);\r\n const pointCloudCenter = pointCloudRange.localXYZToWorld(.5, .5, .5)!;\r\n const addCloudCenter = Transform.createTranslation(pointCloudCenter);\r\n const ecefTransform = Transform.createIdentity();\r\n let pointCloudCenterToDb = addCloudCenter;\r\n if (pointCloudCRS.length > 0) {\r\n await CRSManager.ENGINE.prepareForArea(pointCloudCRS, pointCloudBounds);\r\n const wgs84CRS = \"4978\";\r\n await CRSManager.ENGINE.prepareForArea(wgs84CRS, new OrbitGtBounds());\r\n const pointCloudToEcef = transformFromOrbitGt(CRSManager.createTransform(pointCloudCRS, new OrbitGtCoordinate(pointCloudCenter.x, pointCloudCenter.y, pointCloudCenter.z), wgs84CRS));\r\n const pointCloudCenterToEcef = pointCloudToEcef.multiplyTransformTransform(addCloudCenter);\r\n ecefTransform.setFrom(pointCloudCenterToEcef);\r\n\r\n let ecefToDb = iModel.getMapEcefToDb(0);\r\n // In initial publishing version the iModel ecef Transform was used to locate the reality model.\r\n // This would work well only for tilesets published from that iModel but for iModels the ecef transform is calculated\r\n // at the center of the project extents and the reality model location may differ greatly, and the curvature of the earth\r\n // could introduce significant errors.\r\n // The publishing was modified to calculate the ecef transform at the reality model range center and at the same time the \"iModelPublishVersion\"\r\n // member was added to the root object.\r\n const ecefOrigin = pointCloudCenterToEcef.getOrigin();\r\n const dbOrigin = ecefToDb.multiplyPoint3d(ecefOrigin);\r\n const realityOriginToProjectDistance = iModel.projectExtents.distanceToPoint(dbOrigin);\r\n const maxProjectDistance = 1E5; // Only use the project GCS projection if within 100KM of the project. Don't attempt to use GCS if global reality model or in another locale - Results will be unreliable.\r\n if (realityOriginToProjectDistance < maxProjectDistance) {\r\n const cartographicOrigin = Cartographic.fromEcef(ecefOrigin);\r\n const geoConverter = iModel.noGcsDefined ? undefined : iModel.geoServices.getConverter(\"WGS84\");\r\n if (cartographicOrigin !== undefined && geoConverter !== undefined) {\r\n const geoOrigin = Point3d.create(cartographicOrigin.longitudeDegrees, cartographicOrigin.latitudeDegrees, cartographicOrigin.height);\r\n const response = await geoConverter.getIModelCoordinatesFromGeoCoordinates([geoOrigin]);\r\n if (response.iModelCoords[0].s === GeoCoordStatus.Success) {\r\n const ecefToDbOrigin = await calculateEcefToDbTransformAtLocation(Point3d.fromJSON(response.iModelCoords[0].p), iModel);\r\n if (ecefToDbOrigin)\r\n ecefToDb = ecefToDbOrigin;\r\n }\r\n }\r\n }\r\n\r\n pointCloudCenterToDb = ecefToDb.multiplyTransformTransform(pointCloudCenterToEcef);\r\n }\r\n const params = new OrbitGtTileTreeParams(rdSourceKey, iModel, modelId, pointCloudCenterToDb);\r\n\r\n // We use a RTC transform to avoid jitter from large cloud coordinates.\r\n const centerOffset = Vector3d.create(-pointCloudCenter.x, -pointCloudCenter.y, -pointCloudCenter.z);\r\n pointCloudRange.low.addInPlace(centerOffset);\r\n pointCloudRange.high.addInPlace(centerOffset);\r\n return new OrbitGtTileTree(params, dataManager, pointCloudRange, centerOffset, ecefTransform);\r\n }\r\n}\r\n\r\n/** Supplies a reality data [[TileTree]] from a URL. May be associated with a persistent [[GeometricModelState]], or attached at run-time via a [[ContextOrbitGtState]].\r\n * @internal\r\n */\r\nclass OrbitGtTreeReference extends RealityModelTileTree.Reference {\r\n public readonly treeOwner: TileTreeOwner;\r\n protected _rdSourceKey: RealityDataSourceKey;\r\n public override get castsShadows() { return false; }\r\n\r\n public constructor(props: OrbitGtTileTree.ReferenceProps) {\r\n super(props);\r\n // Create rdSourceKey if not provided\r\n if (props.rdSourceKey) {\r\n this._rdSourceKey = props.rdSourceKey;\r\n } else if (props.orbitGtBlob) {\r\n this._rdSourceKey = RealityDataSource.createKeyFromOrbitGtBlobProps(props.orbitGtBlob);\r\n } else {\r\n // TODO: Maybe we should throw an exception\r\n this._rdSourceKey = RealityDataSource.createKeyFromBlobUrl(\"\", RealityDataProvider.OrbitGtBlob, RealityDataFormat.OPC);\r\n }\r\n\r\n const ogtTreeId: OrbitGtTreeId = { rdSourceKey: this._rdSourceKey, modelId: this.modelId };\r\n this.treeOwner = orbitGtTreeSupplier.getOwner(ogtTreeId, props.iModel);\r\n }\r\n\r\n public override async getToolTip(hit: HitDetail): Promise<HTMLElement | string | undefined> {\r\n const tree = this.treeOwner.tileTree;\r\n if (undefined === tree || hit.iModel !== tree.iModel)\r\n return undefined;\r\n\r\n const strings = [];\r\n strings.push(IModelApp.localization.getLocalizedString(\"iModelJs:RealityModelTypes.OrbitGTPointCloud\"));\r\n\r\n if (this._name)\r\n strings.push(`${IModelApp.localization.getLocalizedString(\"iModelJs:TooltipInfo.Name\")} ${this._name}`);\r\n\r\n const div = document.createElement(\"div\");\r\n div.innerHTML = strings.join(\"<br>\");\r\n return div;\r\n }\r\n}\r\n"]}
@@ -28,61 +28,115 @@ export interface RealityTileGeometry {
28
28
  export interface RealityTileContent extends TileContent {
29
29
  geometry?: RealityTileGeometry;
30
30
  }
31
- /**
32
- * A specialization of tiles that represent reality tiles. 3D Tilesets and maps use this class and have their own optimized traversal and lifetime management.
33
- * @internal
31
+ /** A [[Tile]] within a [[RealityTileTree]], representing part of a reality model (e.g., a point cloud or photogrammetry mesh) or 3d terrain with map imagery.
32
+ * @beta
34
33
  */
35
34
  export declare class RealityTile extends Tile {
35
+ /** @internal */
36
36
  readonly transformToRoot?: Transform;
37
+ /** @internal */
37
38
  readonly additiveRefinement?: boolean;
39
+ /** @internal */
38
40
  readonly noContentButTerminateOnSelection?: boolean;
41
+ /** @internal */
39
42
  readonly rangeCorners?: Point3d[];
43
+ /** @internal */
40
44
  readonly region?: RealityTileRegion;
45
+ /** @internal */
41
46
  protected _geometry?: RealityTileGeometry;
47
+ /** @internal */
42
48
  private _everDisplayed;
49
+ /** @internal */
43
50
  protected _reprojectionTransform?: Transform;
51
+ /** @internal */
44
52
  private _reprojectedGraphic?;
53
+ /** @internal */
45
54
  constructor(props: RealityTileParams, tree: RealityTileTree);
55
+ /** @internal */
46
56
  setContent(content: RealityTileContent): void;
57
+ /** @internal */
47
58
  get realityChildren(): RealityTile[] | undefined;
59
+ /** @internal */
48
60
  get realityParent(): RealityTile;
61
+ /** @internal */
49
62
  get realityRoot(): RealityTileTree;
63
+ /** @internal */
50
64
  get graphicType(): TileGraphicType | undefined;
65
+ /** @internal */
51
66
  get maxDepth(): number;
67
+ /** @internal */
52
68
  get isPointCloud(): boolean;
69
+ /** @internal */
53
70
  get isLoaded(): boolean;
71
+ /** @internal */
54
72
  get geometry(): RealityTileGeometry | undefined;
73
+ /** @internal */
55
74
  get isDisplayable(): boolean;
75
+ /** @internal */
56
76
  markUsed(args: TileDrawArgs): void;
77
+ /** @internal */
57
78
  markDisplayed(): void;
79
+ /** @internal */
58
80
  isOccluded(_viewingSpace: ViewingSpace): boolean;
81
+ /** @internal */
59
82
  get channel(): TileRequestChannel;
83
+ /** @internal */
60
84
  requestContent(isCanceled: () => boolean): Promise<TileRequest.Response>;
85
+ /** @internal */
61
86
  private useAdditiveRefinementStepchildren;
87
+ /** @internal */
62
88
  protected _loadChildren(resolve: (children: Tile[] | undefined) => void, reject: (error: Error) => void): void;
89
+ /** @internal */
63
90
  readContent(data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent>;
91
+ /** @internal */
64
92
  computeLoadPriority(viewports: Iterable<Viewport>, users: Iterable<TileUser>): number;
93
+ /** @internal */
65
94
  getContentClip(): ClipVector | undefined;
95
+ /** Allow tile to select additional tiles (Terrain Imagery...)
96
+ * @internal
97
+ */
66
98
  selectSecondaryTiles(_args: TileDrawArgs, _context: TraversalSelectionContext): void;
99
+ /** An upsampled tile is not loadable - will override to return loadable parent.
100
+ * @internal
101
+ */
67
102
  get loadableTile(): RealityTile;
103
+ /** @internal */
68
104
  preloadRealityTilesAtDepth(depth: number, context: TraversalSelectionContext, args: TileDrawArgs): void;
105
+ /** @internal */
69
106
  protected selectRealityChildren(context: TraversalSelectionContext, args: TileDrawArgs, traversalDetails: TraversalDetails): void;
107
+ /** @internal */
70
108
  addBoundingGraphic(builder: GraphicBuilder, color: ColorDef): void;
109
+ /** @internal */
71
110
  reproject(rootReprojection: Transform): void;
111
+ /** @internal */
72
112
  allChildrenIncluded(tiles: Tile[]): boolean;
113
+ /** @internal */
73
114
  protected getLoadedRealityChildren(args: TileDrawArgs): boolean;
115
+ /** @internal */
74
116
  forceSelectRealityTile(): boolean;
117
+ /** @internal */
75
118
  selectRealityTiles(context: TraversalSelectionContext, args: TileDrawArgs, traversalDetails: TraversalDetails): void;
119
+ /** @internal */
76
120
  purgeContents(olderThan: BeTimePoint): void;
121
+ /** @internal */
77
122
  computeVisibilityFactor(args: TileDrawArgs): number;
123
+ /** @internal */
78
124
  preloadTilesInFrustum(args: TileDrawArgs, context: TraversalSelectionContext, preloadSizeModifier: number): void;
125
+ /** @internal */
79
126
  protected get _anyChildNotFound(): boolean;
127
+ /** @internal */
80
128
  getSizeProjectionCorners(): Point3d[] | undefined;
129
+ /** @internal */
81
130
  get isStepChild(): boolean;
131
+ /** @internal */
82
132
  protected loadAdditiveRefinementChildren(resolve: (children: Tile[]) => void): void;
133
+ /** @internal */
83
134
  produceGraphics(): RenderGraphic | undefined;
135
+ /** @internal */
84
136
  get unprojectedGraphic(): RenderGraphic | undefined;
137
+ /** @internal */
85
138
  disposeContents(): void;
139
+ /** @internal */
86
140
  collectTileGeometry(collector: TileGeometryCollector): void;
87
141
  }
88
142
  //# sourceMappingURL=RealityTile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RealityTile.d.ts","sourceRoot":"","sources":["../../../src/tile/RealityTile.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAW,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAqC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAE,QAAQ,EAAW,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,iBAAiB,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAkB,UAAU,EAAE,WAAW,EAAE,kBAAkB,EACpJ,QAAQ,EAAE,gBAAgB,EAAE,yBAAyB,EAC1E,MAAM,YAAY,CAAC;AAEpB,gBAAgB;AAChB,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC;IACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,OAAO,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,gBAAgB;AAChB,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAQD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,IAAI;IACnC,SAAgB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5C,SAAgB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7C,SAAgB,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3D,SAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzC,SAAgB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3C,SAAS,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAC1C,OAAO,CAAC,cAAc,CAAS;IAC/B,SAAS,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC;IAC7C,OAAO,CAAC,mBAAmB,CAAC,CAAgB;gBAEzB,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe;IAsBlD,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAK7D,IAAW,eAAe,IAAI,WAAW,EAAE,GAAG,SAAS,CAAuD;IAC9G,IAAW,aAAa,IAAI,WAAW,CAAuC;IAC9E,IAAW,WAAW,IAAI,eAAe,CAAyC;IAClF,IAAW,WAAW,IAAI,eAAe,GAAG,SAAS,CAAsB;IAC3E,IAAW,QAAQ,IAAI,MAAM,CAA6C;IAC1E,IAAW,YAAY,YAA0D;IACjF,IAAW,QAAQ,YAAuD;IAC1E,IAAW,QAAQ,IAAI,mBAAmB,GAAG,SAAS,CAA4B;IAElF,IAAoB,aAAa,IAAI,OAAO,CAK3C;IAEM,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIlC,aAAa,IAAI,IAAI;IAIrB,UAAU,CAAC,aAAa,EAAE,YAAY,GAAG,OAAO;IAIvD,IAAW,OAAO,IAAI,kBAAkB,CAEvC;IAEY,cAAc,CAAC,UAAU,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;IAGrF,OAAO,CAAC,iCAAiC;IAOzC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,SAAS,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAgBjG,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAIhH,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM;IAI9F,cAAc,IAAI,UAAU,GAAG,SAAS;IAKxC,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,yBAAyB;IAGpF,IAAW,YAAY,IAAI,WAAW,CAAiB;IAEhD,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,YAAY;IAcvG,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB;IAiBnH,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ;IAQ3D,SAAS,CAAC,gBAAgB,EAAE,SAAS;IAUrC,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE;IASxC,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;IAYxD,sBAAsB,IAAI,OAAO;IAEjC,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB;IAqC7G,aAAa,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAY3C,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;IAsBnD,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM;IAmBhH,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAOzC;IACe,wBAAwB,IAAI,OAAO,EAAE,GAAG,SAAS;IAWjE,IAAW,WAAW,YAAoB;IAE1C,SAAS,CAAC,8BAA8B,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI;IA6BnE,eAAe,IAAI,aAAa,GAAG,SAAS;IAY5D,IAAW,kBAAkB,IAAI,aAAa,GAAG,SAAS,CAEzD;IACe,eAAe,IAAI,IAAI;IAKhC,mBAAmB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;CA6BnE"}
1
+ {"version":3,"file":"RealityTile.d.ts","sourceRoot":"","sources":["../../../src/tile/RealityTile.ts"],"names":[],"mappings":"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"}
@@ -16,14 +16,15 @@ const scratchCorners = [Point3d.createZero(), Point3d.createZero(), Point3d.crea
16
16
  const additiveRefinementThreshold = 10000; // Additive tiles (Cesium OSM tileset) are subdivided until their range diagonal falls below this threshold to ensure accurate reprojection.
17
17
  const additiveRefinementDepthLimit = 20;
18
18
  const scratchFrustum = new Frustum();
19
- /**
20
- * A specialization of tiles that represent reality tiles. 3D Tilesets and maps use this class and have their own optimized traversal and lifetime management.
21
- * @internal
19
+ /** A [[Tile]] within a [[RealityTileTree]], representing part of a reality model (e.g., a point cloud or photogrammetry mesh) or 3d terrain with map imagery.
20
+ * @beta
22
21
  */
23
22
  export class RealityTile extends Tile {
23
+ /** @internal */
24
24
  constructor(props, tree) {
25
25
  var _a;
26
26
  super(props, tree);
27
+ /** @internal */
27
28
  this._everDisplayed = false;
28
29
  this.transformToRoot = props.transformToRoot;
29
30
  this.additiveRefinement = (undefined === props.additiveRefinement) ? (_a = this.realityParent) === null || _a === void 0 ? void 0 : _a.additiveRefinement : props.additiveRefinement;
@@ -40,45 +41,62 @@ export class RealityTile extends Tile {
40
41
  if (undefined !== this._contentRange)
41
42
  this.transformToRoot.multiplyRange(this._contentRange, this._contentRange);
42
43
  }
44
+ /** @internal */
43
45
  setContent(content) {
44
46
  super.setContent(content);
45
47
  this._geometry = content.geometry;
46
48
  }
49
+ /** @internal */
47
50
  get realityChildren() { return this.children; }
51
+ /** @internal */
48
52
  get realityParent() { return this.parent; }
53
+ /** @internal */
49
54
  get realityRoot() { return this.tree; }
55
+ /** @internal */
50
56
  get graphicType() { return undefined; } // If undefined, use tree type.
57
+ /** @internal */
51
58
  get maxDepth() { return this.realityRoot.loader.maxDepth; }
59
+ /** @internal */
52
60
  get isPointCloud() { return this.realityRoot.loader.containsPointClouds; }
61
+ /** @internal */
53
62
  get isLoaded() { return this.loadStatus === TileLoadStatus.Ready; } // Reality tiles may depend on secondary tiles (maps) so can ge loaded but not ready.
63
+ /** @internal */
54
64
  get geometry() { return this._geometry; }
65
+ /** @internal */
55
66
  get isDisplayable() {
56
67
  if (this.noContentButTerminateOnSelection)
57
68
  return false;
58
69
  else
59
70
  return super.isDisplayable;
60
71
  }
72
+ /** @internal */
61
73
  markUsed(args) {
62
74
  args.markUsed(this);
63
75
  }
76
+ /** @internal */
64
77
  markDisplayed() {
65
78
  this._everDisplayed = true;
66
79
  }
80
+ /** @internal */
67
81
  isOccluded(_viewingSpace) {
68
82
  return false;
69
83
  }
84
+ /** @internal */
70
85
  get channel() {
71
86
  return this.realityRoot.loader.getRequestChannel(this);
72
87
  }
88
+ /** @internal */
73
89
  async requestContent(isCanceled) {
74
90
  return this.realityRoot.loader.requestTileContent(this, isCanceled);
75
91
  }
92
+ /** @internal */
76
93
  useAdditiveRefinementStepchildren() {
77
94
  // Create additive stepchildren only if we are this tile is additive and we are repojecting and the radius exceeds the additiveRefinementThreshold.
78
95
  // This criteria is currently only met by the Cesium OSM tileset.
79
96
  const rangeDiagonal = this.rangeCorners ? this.rangeCorners[0].distance(this.rangeCorners[3]) : 0;
80
97
  return this.additiveRefinement && this.isDisplayable && rangeDiagonal > additiveRefinementThreshold && this.depth < additiveRefinementDepthLimit && this.realityRoot.doReprojectChildren(this);
81
98
  }
99
+ /** @internal */
82
100
  _loadChildren(resolve, reject) {
83
101
  this.realityRoot.loader.loadChildren(this).then((children) => {
84
102
  /* If this is a large tile is to be included additively, but we are reprojecting (Cesium OSM) then we must add step-children to display the geometry as an overly large
@@ -91,19 +109,27 @@ export class RealityTile extends Tile {
91
109
  reject(err);
92
110
  });
93
111
  }
112
+ /** @internal */
94
113
  async readContent(data, system, isCanceled) {
95
114
  return this.realityRoot.loader.loadTileContent(this, data, system, isCanceled);
96
115
  }
116
+ /** @internal */
97
117
  computeLoadPriority(viewports, users) {
98
118
  return this.realityRoot.loader.computeTilePriority(this, viewports, users);
99
119
  }
120
+ /** @internal */
100
121
  getContentClip() {
101
122
  return ClipVector.createCapture([ClipShape.createBlock(this.contentRange, ClipMaskXYZRangePlanes.All)]);
102
123
  }
103
- // Allow tile to select additional tiles (Terrain Imagery...)
124
+ /** Allow tile to select additional tiles (Terrain Imagery...)
125
+ * @internal
126
+ */
104
127
  selectSecondaryTiles(_args, _context) { }
105
- // An upsampled tile is not loadable - will override to return loadable parent.
128
+ /** An upsampled tile is not loadable - will override to return loadable parent.
129
+ * @internal
130
+ */
106
131
  get loadableTile() { return this; }
132
+ /** @internal */
107
133
  preloadRealityTilesAtDepth(depth, context, args) {
108
134
  if (this.depth === depth) {
109
135
  context.preload(this, args);
@@ -115,6 +141,7 @@ export class RealityTile extends Tile {
115
141
  child.preloadRealityTilesAtDepth(depth, context, args);
116
142
  }
117
143
  }
144
+ /** @internal */
118
145
  selectRealityChildren(context, args, traversalDetails) {
119
146
  const childrenLoadStatus = this.loadChildren(); // NB: asynchronous
120
147
  if (TileTreeLoadStatus.Loading === childrenLoadStatus) {
@@ -130,6 +157,7 @@ export class RealityTile extends Tile {
130
157
  traversalChildren.combine(traversalDetails);
131
158
  }
132
159
  }
160
+ /** @internal */
133
161
  addBoundingGraphic(builder, color) {
134
162
  builder.setSymbology(color, color, 3);
135
163
  let corners = this.rangeCorners ? this.rangeCorners : this.range.corners();
@@ -137,6 +165,7 @@ export class RealityTile extends Tile {
137
165
  corners = this._reprojectionTransform.multiplyPoint3dArray(corners);
138
166
  builder.addRangeBoxFromCorners(corners);
139
167
  }
168
+ /** @internal */
140
169
  reproject(rootReprojection) {
141
170
  this._reprojectionTransform = rootReprojection;
142
171
  rootReprojection.multiplyRange(this.range, this.range);
@@ -146,6 +175,7 @@ export class RealityTile extends Tile {
146
175
  if (this.rangeCorners)
147
176
  rootReprojection.multiplyPoint3dArrayInPlace(this.rangeCorners);
148
177
  }
178
+ /** @internal */
149
179
  allChildrenIncluded(tiles) {
150
180
  if (this.children === undefined || tiles.length !== this.children.length)
151
181
  return false;
@@ -154,6 +184,7 @@ export class RealityTile extends Tile {
154
184
  return false;
155
185
  return true;
156
186
  }
187
+ /** @internal */
157
188
  getLoadedRealityChildren(args) {
158
189
  if (this._childrenLoadStatus !== TileTreeLoadStatus.Loaded || this.realityChildren === undefined)
159
190
  return false;
@@ -166,7 +197,9 @@ export class RealityTile extends Tile {
166
197
  }
167
198
  return true;
168
199
  }
200
+ /** @internal */
169
201
  forceSelectRealityTile() { return false; }
202
+ /** @internal */
170
203
  selectRealityTiles(context, args, traversalDetails) {
171
204
  const visibility = this.computeVisibilityFactor(args);
172
205
  if (visibility < 0)
@@ -198,6 +231,7 @@ export class RealityTile extends Tile {
198
231
  }
199
232
  }
200
233
  }
234
+ /** @internal */
201
235
  purgeContents(olderThan) {
202
236
  // Discard contents of tiles that have not been "used" recently, where "used" may mean: selected/preloaded for display or content requested.
203
237
  // Note we do not discard the child Tile objects themselves.
@@ -208,6 +242,7 @@ export class RealityTile extends Tile {
208
242
  for (const child of children)
209
243
  child.purgeContents(olderThan);
210
244
  }
245
+ /** @internal */
211
246
  computeVisibilityFactor(args) {
212
247
  if (this.isEmpty)
213
248
  return -1;
@@ -224,6 +259,7 @@ export class RealityTile extends Tile {
224
259
  return this.hasContentRange && this.isContentCulled(args) ? -1 : 1;
225
260
  return this.maximumSize / args.getPixelSize(this);
226
261
  }
262
+ /** @internal */
227
263
  preloadTilesInFrustum(args, context, preloadSizeModifier) {
228
264
  const visibility = this.computeVisibilityFactor(args);
229
265
  if (visibility < 0)
@@ -243,6 +279,7 @@ export class RealityTile extends Tile {
243
279
  }
244
280
  }
245
281
  }
282
+ /** @internal */
246
283
  get _anyChildNotFound() {
247
284
  if (undefined !== this.children)
248
285
  for (const child of this.children)
@@ -250,6 +287,7 @@ export class RealityTile extends Tile {
250
287
  return true;
251
288
  return this._childrenLoadStatus === TileTreeLoadStatus.NotFound;
252
289
  }
290
+ /** @internal */
253
291
  getSizeProjectionCorners() {
254
292
  if (!this.tree.isContentUnbounded)
255
293
  return undefined; // For a non-global tree use the standard size algorithm.
@@ -258,7 +296,9 @@ export class RealityTile extends Tile {
258
296
  return this.range.corners(scratchCorners);
259
297
  return this.region ? this.rangeCorners.slice(4) : this.rangeCorners;
260
298
  }
299
+ /** @internal */
261
300
  get isStepChild() { return false; }
301
+ /** @internal */
262
302
  loadAdditiveRefinementChildren(resolve) {
263
303
  const region = this.region;
264
304
  const corners = this.rangeCorners;
@@ -283,6 +323,7 @@ export class RealityTile extends Tile {
283
323
  }
284
324
  resolve(stepChildren);
285
325
  }
326
+ /** @internal */
286
327
  produceGraphics() {
287
328
  if (undefined === this._reprojectionTransform)
288
329
  return super.produceGraphics();
@@ -293,13 +334,16 @@ export class RealityTile extends Tile {
293
334
  }
294
335
  return this._reprojectedGraphic;
295
336
  }
337
+ /** @internal */
296
338
  get unprojectedGraphic() {
297
339
  return this._graphic;
298
340
  }
341
+ /** @internal */
299
342
  disposeContents() {
300
343
  super.disposeContents();
301
344
  this._reprojectedGraphic = dispose(this._reprojectedGraphic);
302
345
  }
346
+ /** @internal */
303
347
  collectTileGeometry(collector) {
304
348
  var _a;
305
349
  const status = collector.collectTile(this);