@itwin/core-frontend 3.4.0-dev.8 → 3.5.0-dev.4

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 (698) hide show
  1. package/CHANGELOG.md +37 -1
  2. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  3. package/lib/cjs/AccuDraw.js +60 -15
  4. package/lib/cjs/AccuDraw.js.map +1 -1
  5. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  6. package/lib/cjs/AccuSnap.js +46 -36
  7. package/lib/cjs/AccuSnap.js.map +1 -1
  8. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  9. package/lib/cjs/AuxCoordSys.js +2 -3
  10. package/lib/cjs/AuxCoordSys.js.map +1 -1
  11. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  12. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  13. package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
  14. package/lib/cjs/CategorySelectorState.js +6 -4
  15. package/lib/cjs/CategorySelectorState.js.map +1 -1
  16. package/lib/cjs/DevTools.d.ts.map +1 -1
  17. package/lib/cjs/DevTools.js.map +1 -1
  18. package/lib/cjs/DisplayStyleState.js +1 -1
  19. package/lib/cjs/DisplayStyleState.js.map +1 -1
  20. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  21. package/lib/cjs/ElementLocateManager.js +4 -2
  22. package/lib/cjs/ElementLocateManager.js.map +1 -1
  23. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  24. package/lib/cjs/FrustumAnimator.js +5 -1
  25. package/lib/cjs/FrustumAnimator.js.map +1 -1
  26. package/lib/cjs/FuzzySearch.d.ts.map +1 -1
  27. package/lib/cjs/FuzzySearch.js +9 -3
  28. package/lib/cjs/FuzzySearch.js.map +1 -1
  29. package/lib/cjs/HitDetail.d.ts.map +1 -1
  30. package/lib/cjs/HitDetail.js +13 -3
  31. package/lib/cjs/HitDetail.js.map +1 -1
  32. package/lib/cjs/IModelApp.d.ts +7 -2
  33. package/lib/cjs/IModelApp.d.ts.map +1 -1
  34. package/lib/cjs/IModelApp.js +10 -2
  35. package/lib/cjs/IModelApp.js.map +1 -1
  36. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  37. package/lib/cjs/IModelConnection.js +3 -1
  38. package/lib/cjs/IModelConnection.js.map +1 -1
  39. package/lib/cjs/ImageUtil.d.ts +6 -0
  40. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  41. package/lib/cjs/ImageUtil.js +14 -1
  42. package/lib/cjs/ImageUtil.js.map +1 -1
  43. package/lib/cjs/Marker.d.ts.map +1 -1
  44. package/lib/cjs/Marker.js +5 -1
  45. package/lib/cjs/Marker.js.map +1 -1
  46. package/lib/cjs/NativeAppLogger.d.ts.map +1 -1
  47. package/lib/cjs/NativeAppLogger.js +1 -1
  48. package/lib/cjs/NativeAppLogger.js.map +1 -1
  49. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  50. package/lib/cjs/TentativePoint.js.map +1 -1
  51. package/lib/cjs/ViewManager.d.ts +4 -0
  52. package/lib/cjs/ViewManager.d.ts.map +1 -1
  53. package/lib/cjs/ViewManager.js +9 -3
  54. package/lib/cjs/ViewManager.js.map +1 -1
  55. package/lib/cjs/ViewRect.d.ts.map +1 -1
  56. package/lib/cjs/ViewRect.js +5 -1
  57. package/lib/cjs/ViewRect.js.map +1 -1
  58. package/lib/cjs/ViewState.d.ts +36 -12
  59. package/lib/cjs/ViewState.d.ts.map +1 -1
  60. package/lib/cjs/ViewState.js +35 -25
  61. package/lib/cjs/ViewState.js.map +1 -1
  62. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  63. package/lib/cjs/ViewingSpace.js +12 -5
  64. package/lib/cjs/ViewingSpace.js.map +1 -1
  65. package/lib/cjs/Viewport.d.ts +14 -0
  66. package/lib/cjs/Viewport.d.ts.map +1 -1
  67. package/lib/cjs/Viewport.js +106 -5
  68. package/lib/cjs/Viewport.js.map +1 -1
  69. package/lib/cjs/core-frontend.d.ts +6 -0
  70. package/lib/cjs/core-frontend.d.ts.map +1 -1
  71. package/lib/cjs/core-frontend.js +6 -0
  72. package/lib/cjs/core-frontend.js.map +1 -1
  73. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  74. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  75. package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -1
  76. package/lib/cjs/extension/ExtensionImpl.js +3 -1
  77. package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
  78. package/lib/cjs/public/scripts/checkbrowser.js +24 -0
  79. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  80. package/lib/cjs/render/Decorations.js +24 -6
  81. package/lib/cjs/render/Decorations.js.map +1 -1
  82. package/lib/cjs/render/RealityMeshGraphicParams.d.ts +19 -0
  83. package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -0
  84. package/lib/cjs/render/RealityMeshGraphicParams.js +10 -0
  85. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -0
  86. package/lib/cjs/render/RealityMeshParams.d.ts +130 -0
  87. package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -0
  88. package/lib/cjs/render/RealityMeshParams.js +176 -0
  89. package/lib/cjs/render/RealityMeshParams.js.map +1 -0
  90. package/lib/cjs/render/RenderSystem.d.ts +8 -4
  91. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  92. package/lib/cjs/render/RenderSystem.js +7 -1
  93. package/lib/cjs/render/RenderSystem.js.map +1 -1
  94. package/lib/cjs/render/RenderTexture.d.ts +1 -1
  95. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  96. package/lib/cjs/render/RenderTexture.js.map +1 -1
  97. package/lib/cjs/render/UpsampleRealityMeshParams.d.ts +11 -0
  98. package/lib/cjs/render/UpsampleRealityMeshParams.d.ts.map +1 -0
  99. package/lib/cjs/render/UpsampleRealityMeshParams.js +205 -0
  100. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -0
  101. package/lib/cjs/render/primitives/DisplayParams.d.ts.map +1 -1
  102. package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
  103. package/lib/cjs/render/primitives/Polyface.d.ts.map +1 -1
  104. package/lib/cjs/render/primitives/Polyface.js +3 -1
  105. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  106. package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
  107. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  108. package/lib/cjs/render/primitives/Strokes.d.ts.map +1 -1
  109. package/lib/cjs/render/primitives/Strokes.js +6 -2
  110. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  111. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  112. package/lib/cjs/render/primitives/VertexTableSplitter.js +7 -85
  113. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -1
  114. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  115. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +4 -1
  116. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  117. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  118. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  119. package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  120. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  121. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  122. package/lib/cjs/render/webgl/ColorInfo.js +4 -1
  123. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  124. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  125. package/lib/cjs/render/webgl/DrawCommand.js +12 -3
  126. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  127. package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
  128. package/lib/cjs/render/webgl/FrameBuffer.js +4 -1
  129. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  130. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  131. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  132. package/lib/cjs/render/webgl/Graphic.js +5 -2
  133. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  134. package/lib/cjs/render/webgl/Matrix.d.ts.map +1 -1
  135. package/lib/cjs/render/webgl/Matrix.js +16 -4
  136. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  137. package/lib/cjs/render/webgl/PerformanceMetrics.js +2 -2
  138. package/lib/cjs/render/webgl/PerformanceMetrics.js.map +1 -1
  139. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  140. package/lib/cjs/render/webgl/PlanarClassifier.js +3 -1
  141. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  142. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  143. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  144. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  145. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  146. package/lib/cjs/render/webgl/RealityMesh.d.ts +6 -6
  147. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  148. package/lib/cjs/render/webgl/RealityMesh.js +20 -12
  149. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  150. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  151. package/lib/cjs/render/webgl/RenderCommands.js +3 -2
  152. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  153. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  154. package/lib/cjs/render/webgl/RenderFlags.js +3 -1
  155. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  156. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  157. package/lib/cjs/render/webgl/ShaderBuilder.js +4 -1
  158. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  159. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  160. package/lib/cjs/render/webgl/SolarShadowMap.js +17 -5
  161. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  162. package/lib/cjs/render/webgl/System.d.ts +6 -4
  163. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  164. package/lib/cjs/render/webgl/System.js +21 -4
  165. package/lib/cjs/render/webgl/System.js.map +1 -1
  166. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  167. package/lib/cjs/render/webgl/Technique.js +3 -1
  168. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  169. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  170. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  171. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  172. package/lib/cjs/render/webgl/Texture.js +21 -12
  173. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  174. package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
  175. package/lib/cjs/render/webgl/ThematicSensors.js +8 -2
  176. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  177. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  178. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +3 -1
  179. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  180. package/lib/cjs/render/webgl/glsl/Common.js +1 -1
  181. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  182. package/lib/cjs/render/webgl/glsl/SkyBox.d.ts.map +1 -1
  183. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  184. package/lib/cjs/tile/GltfReader.d.ts +3 -2
  185. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  186. package/lib/cjs/tile/GltfReader.js +7 -3
  187. package/lib/cjs/tile/GltfReader.js.map +1 -1
  188. package/lib/cjs/tile/ImdlReader.d.ts +1 -1
  189. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  190. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
  191. package/lib/cjs/tile/OPCFormatInterpreter.js +3 -1
  192. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  193. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  194. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  195. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  196. package/lib/cjs/tile/PrimaryTileTree.js +14 -11
  197. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  198. package/lib/cjs/tile/RealityTile.d.ts +57 -3
  199. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  200. package/lib/cjs/tile/RealityTile.js +49 -5
  201. package/lib/cjs/tile/RealityTile.js.map +1 -1
  202. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  203. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  204. package/lib/cjs/tile/RealityTileTree.d.ts +37 -2
  205. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  206. package/lib/cjs/tile/RealityTileTree.js +30 -2
  207. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  208. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
  209. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +6 -2
  210. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  211. package/lib/cjs/tile/TileAdmin.d.ts +11 -0
  212. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  213. package/lib/cjs/tile/TileAdmin.js +47 -4
  214. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  215. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  216. package/lib/cjs/tile/TileDrawArgs.js +10 -16
  217. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  218. package/lib/cjs/tile/TileRequest.d.ts +5 -1
  219. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  220. package/lib/cjs/tile/TileRequest.js +6 -2
  221. package/lib/cjs/tile/TileRequest.js.map +1 -1
  222. package/lib/cjs/tile/TileStorage.d.ts +13 -0
  223. package/lib/cjs/tile/TileStorage.d.ts.map +1 -0
  224. package/lib/cjs/tile/TileStorage.js +50 -0
  225. package/lib/cjs/tile/TileStorage.js.map +1 -0
  226. package/lib/cjs/tile/internal.d.ts +2 -0
  227. package/lib/cjs/tile/internal.d.ts.map +1 -1
  228. package/lib/cjs/tile/internal.js +2 -0
  229. package/lib/cjs/tile/internal.js.map +1 -1
  230. package/lib/cjs/tile/map/ArcGISTileMap.js +1 -1
  231. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  232. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +0 -2
  233. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  234. package/lib/cjs/tile/map/ArcGisUtilities.js +1 -24
  235. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  236. package/lib/cjs/tile/map/BingElevation.d.ts +8 -3
  237. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  238. package/lib/cjs/tile/map/BingElevation.js +36 -14
  239. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  240. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +2 -7
  241. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  242. package/lib/cjs/tile/map/CesiumTerrainProvider.js +100 -90
  243. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  244. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts +9 -12
  245. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  246. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js +70 -67
  247. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  248. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  249. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +9 -16
  250. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  251. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  252. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  253. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  254. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  255. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  256. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  257. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +8 -6
  258. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  259. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +3 -3
  260. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  261. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  262. package/lib/cjs/tile/map/ImageryTileTree.js +21 -6
  263. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  264. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +62 -6
  265. package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
  266. package/lib/cjs/tile/map/MapCartoRectangle.js +103 -17
  267. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  268. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  269. package/lib/cjs/tile/map/MapLayerImageryFormats.js +4 -2
  270. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  271. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  272. package/lib/cjs/tile/map/MapLayerImageryProvider.js +1 -1
  273. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  274. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  275. package/lib/cjs/tile/map/MapLayerSources.js +11 -7
  276. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  277. package/lib/cjs/tile/map/MapTile.d.ts +68 -15
  278. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  279. package/lib/cjs/tile/map/MapTile.js +88 -30
  280. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  281. package/lib/cjs/tile/map/MapTileAvailability.d.ts.map +1 -1
  282. package/lib/cjs/tile/map/MapTileAvailability.js +1 -1
  283. package/lib/cjs/tile/map/MapTileAvailability.js.map +1 -1
  284. package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -2
  285. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  286. package/lib/cjs/tile/map/MapTileLoader.js +11 -20
  287. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  288. package/lib/cjs/tile/map/MapTileTree.d.ts +72 -7
  289. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  290. package/lib/cjs/tile/map/MapTileTree.js +72 -16
  291. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  292. package/lib/cjs/tile/map/MapTilingScheme.d.ts +67 -55
  293. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  294. package/lib/cjs/tile/map/MapTilingScheme.js +71 -67
  295. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  296. package/lib/cjs/tile/map/QuadId.d.ts +24 -2
  297. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  298. package/lib/cjs/tile/map/QuadId.js +49 -20
  299. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  300. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +79 -19
  301. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  302. package/lib/cjs/tile/map/TerrainMeshProvider.js +28 -13
  303. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  304. package/lib/cjs/tile/map/TerrainProvider.d.ts +34 -0
  305. package/lib/cjs/tile/map/TerrainProvider.d.ts.map +1 -0
  306. package/lib/cjs/tile/map/TerrainProvider.js +41 -0
  307. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -0
  308. package/lib/cjs/tile/map/WmsCapabilities.js +1 -1
  309. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  310. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  311. package/lib/cjs/tile/map/WmtsCapabilities.js +7 -3
  312. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  313. package/lib/cjs/tile/object-storage-azure.js +5 -0
  314. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  315. package/lib/cjs/tools/AccuDrawTool.js +87 -26
  316. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  317. package/lib/cjs/tools/ClipViewTool.d.ts +2 -2
  318. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  319. package/lib/cjs/tools/ClipViewTool.js +29 -16
  320. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  321. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  322. package/lib/cjs/tools/ElementSetTool.js +26 -10
  323. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  324. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  325. package/lib/cjs/tools/MeasureTool.js +65 -41
  326. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  327. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  328. package/lib/cjs/tools/PrimitiveTool.js +9 -4
  329. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  330. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  331. package/lib/cjs/tools/SelectTool.js +20 -9
  332. package/lib/cjs/tools/SelectTool.js.map +1 -1
  333. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  334. package/lib/cjs/tools/Tool.js +13 -5
  335. package/lib/cjs/tools/Tool.js.map +1 -1
  336. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  337. package/lib/cjs/tools/ToolAdmin.js +27 -9
  338. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  339. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  340. package/lib/cjs/tools/ViewTool.js +111 -40
  341. package/lib/cjs/tools/ViewTool.js.map +1 -1
  342. package/lib/esm/AccuDraw.d.ts.map +1 -1
  343. package/lib/esm/AccuDraw.js +60 -15
  344. package/lib/esm/AccuDraw.js.map +1 -1
  345. package/lib/esm/AccuSnap.d.ts.map +1 -1
  346. package/lib/esm/AccuSnap.js +47 -37
  347. package/lib/esm/AccuSnap.js.map +1 -1
  348. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  349. package/lib/esm/AuxCoordSys.js +2 -3
  350. package/lib/esm/AuxCoordSys.js.map +1 -1
  351. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  352. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  353. package/lib/esm/CategorySelectorState.d.ts.map +1 -1
  354. package/lib/esm/CategorySelectorState.js +6 -4
  355. package/lib/esm/CategorySelectorState.js.map +1 -1
  356. package/lib/esm/DevTools.d.ts.map +1 -1
  357. package/lib/esm/DevTools.js.map +1 -1
  358. package/lib/esm/DisplayStyleState.js +1 -1
  359. package/lib/esm/DisplayStyleState.js.map +1 -1
  360. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  361. package/lib/esm/ElementLocateManager.js +4 -2
  362. package/lib/esm/ElementLocateManager.js.map +1 -1
  363. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  364. package/lib/esm/FrustumAnimator.js +5 -1
  365. package/lib/esm/FrustumAnimator.js.map +1 -1
  366. package/lib/esm/FuzzySearch.d.ts.map +1 -1
  367. package/lib/esm/FuzzySearch.js +9 -3
  368. package/lib/esm/FuzzySearch.js.map +1 -1
  369. package/lib/esm/HitDetail.d.ts.map +1 -1
  370. package/lib/esm/HitDetail.js +13 -3
  371. package/lib/esm/HitDetail.js.map +1 -1
  372. package/lib/esm/IModelApp.d.ts +7 -2
  373. package/lib/esm/IModelApp.d.ts.map +1 -1
  374. package/lib/esm/IModelApp.js +11 -3
  375. package/lib/esm/IModelApp.js.map +1 -1
  376. package/lib/esm/IModelConnection.d.ts.map +1 -1
  377. package/lib/esm/IModelConnection.js +3 -1
  378. package/lib/esm/IModelConnection.js.map +1 -1
  379. package/lib/esm/ImageUtil.d.ts +6 -0
  380. package/lib/esm/ImageUtil.d.ts.map +1 -1
  381. package/lib/esm/ImageUtil.js +12 -0
  382. package/lib/esm/ImageUtil.js.map +1 -1
  383. package/lib/esm/Marker.d.ts.map +1 -1
  384. package/lib/esm/Marker.js +5 -1
  385. package/lib/esm/Marker.js.map +1 -1
  386. package/lib/esm/NativeAppLogger.d.ts.map +1 -1
  387. package/lib/esm/NativeAppLogger.js +1 -1
  388. package/lib/esm/NativeAppLogger.js.map +1 -1
  389. package/lib/esm/TentativePoint.d.ts.map +1 -1
  390. package/lib/esm/TentativePoint.js.map +1 -1
  391. package/lib/esm/ViewManager.d.ts +4 -0
  392. package/lib/esm/ViewManager.d.ts.map +1 -1
  393. package/lib/esm/ViewManager.js +9 -3
  394. package/lib/esm/ViewManager.js.map +1 -1
  395. package/lib/esm/ViewRect.d.ts.map +1 -1
  396. package/lib/esm/ViewRect.js +5 -1
  397. package/lib/esm/ViewRect.js.map +1 -1
  398. package/lib/esm/ViewState.d.ts +36 -12
  399. package/lib/esm/ViewState.d.ts.map +1 -1
  400. package/lib/esm/ViewState.js +35 -25
  401. package/lib/esm/ViewState.js.map +1 -1
  402. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  403. package/lib/esm/ViewingSpace.js +12 -5
  404. package/lib/esm/ViewingSpace.js.map +1 -1
  405. package/lib/esm/Viewport.d.ts +14 -0
  406. package/lib/esm/Viewport.d.ts.map +1 -1
  407. package/lib/esm/Viewport.js +106 -5
  408. package/lib/esm/Viewport.js.map +1 -1
  409. package/lib/esm/core-frontend.d.ts +6 -0
  410. package/lib/esm/core-frontend.d.ts.map +1 -1
  411. package/lib/esm/core-frontend.js +6 -0
  412. package/lib/esm/core-frontend.js.map +1 -1
  413. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  414. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  415. package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -1
  416. package/lib/esm/extension/ExtensionImpl.js +3 -1
  417. package/lib/esm/extension/ExtensionImpl.js.map +1 -1
  418. package/lib/esm/public/scripts/checkbrowser.js +24 -0
  419. package/lib/esm/render/Decorations.d.ts.map +1 -1
  420. package/lib/esm/render/Decorations.js +24 -6
  421. package/lib/esm/render/Decorations.js.map +1 -1
  422. package/lib/esm/render/RealityMeshGraphicParams.d.ts +19 -0
  423. package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -0
  424. package/lib/esm/render/RealityMeshGraphicParams.js +9 -0
  425. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -0
  426. package/lib/esm/render/RealityMeshParams.d.ts +130 -0
  427. package/lib/esm/render/RealityMeshParams.d.ts.map +1 -0
  428. package/lib/esm/render/RealityMeshParams.js +172 -0
  429. package/lib/esm/render/RealityMeshParams.js.map +1 -0
  430. package/lib/esm/render/RenderSystem.d.ts +8 -4
  431. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  432. package/lib/esm/render/RenderSystem.js +7 -1
  433. package/lib/esm/render/RenderSystem.js.map +1 -1
  434. package/lib/esm/render/RenderTexture.d.ts +1 -1
  435. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  436. package/lib/esm/render/RenderTexture.js.map +1 -1
  437. package/lib/esm/render/UpsampleRealityMeshParams.d.ts +11 -0
  438. package/lib/esm/render/UpsampleRealityMeshParams.d.ts.map +1 -0
  439. package/lib/esm/render/UpsampleRealityMeshParams.js +201 -0
  440. package/lib/esm/render/UpsampleRealityMeshParams.js.map +1 -0
  441. package/lib/esm/render/primitives/DisplayParams.d.ts.map +1 -1
  442. package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
  443. package/lib/esm/render/primitives/Polyface.d.ts.map +1 -1
  444. package/lib/esm/render/primitives/Polyface.js +3 -1
  445. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  446. package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
  447. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  448. package/lib/esm/render/primitives/Strokes.d.ts.map +1 -1
  449. package/lib/esm/render/primitives/Strokes.js +6 -2
  450. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  451. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  452. package/lib/esm/render/primitives/VertexTableSplitter.js +1 -79
  453. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -1
  454. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  455. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +4 -1
  456. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  457. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  458. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  459. package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  460. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  461. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  462. package/lib/esm/render/webgl/ColorInfo.js +4 -1
  463. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  464. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  465. package/lib/esm/render/webgl/DrawCommand.js +12 -3
  466. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  467. package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
  468. package/lib/esm/render/webgl/FrameBuffer.js +4 -1
  469. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  470. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  471. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  472. package/lib/esm/render/webgl/Graphic.js +5 -2
  473. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  474. package/lib/esm/render/webgl/Matrix.d.ts.map +1 -1
  475. package/lib/esm/render/webgl/Matrix.js +16 -4
  476. package/lib/esm/render/webgl/Matrix.js.map +1 -1
  477. package/lib/esm/render/webgl/PerformanceMetrics.js +2 -2
  478. package/lib/esm/render/webgl/PerformanceMetrics.js.map +1 -1
  479. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  480. package/lib/esm/render/webgl/PlanarClassifier.js +3 -1
  481. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  482. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  483. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  484. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  485. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  486. package/lib/esm/render/webgl/RealityMesh.d.ts +6 -6
  487. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  488. package/lib/esm/render/webgl/RealityMesh.js +20 -12
  489. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  490. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  491. package/lib/esm/render/webgl/RenderCommands.js +3 -2
  492. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  493. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  494. package/lib/esm/render/webgl/RenderFlags.js +3 -1
  495. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  496. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  497. package/lib/esm/render/webgl/ShaderBuilder.js +4 -1
  498. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  499. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  500. package/lib/esm/render/webgl/SolarShadowMap.js +17 -5
  501. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  502. package/lib/esm/render/webgl/System.d.ts +6 -4
  503. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  504. package/lib/esm/render/webgl/System.js +21 -4
  505. package/lib/esm/render/webgl/System.js.map +1 -1
  506. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  507. package/lib/esm/render/webgl/Technique.js +3 -1
  508. package/lib/esm/render/webgl/Technique.js.map +1 -1
  509. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  510. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  511. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  512. package/lib/esm/render/webgl/Texture.js +21 -12
  513. package/lib/esm/render/webgl/Texture.js.map +1 -1
  514. package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
  515. package/lib/esm/render/webgl/ThematicSensors.js +8 -2
  516. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  517. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  518. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +3 -1
  519. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  520. package/lib/esm/render/webgl/glsl/Common.js +1 -1
  521. package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
  522. package/lib/esm/render/webgl/glsl/SkyBox.d.ts.map +1 -1
  523. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  524. package/lib/esm/tile/GltfReader.d.ts +3 -2
  525. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  526. package/lib/esm/tile/GltfReader.js +8 -4
  527. package/lib/esm/tile/GltfReader.js.map +1 -1
  528. package/lib/esm/tile/ImdlReader.d.ts +1 -1
  529. package/lib/esm/tile/ImdlReader.js.map +1 -1
  530. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
  531. package/lib/esm/tile/OPCFormatInterpreter.js +3 -1
  532. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  533. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  534. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  535. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  536. package/lib/esm/tile/PrimaryTileTree.js +14 -11
  537. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  538. package/lib/esm/tile/RealityTile.d.ts +57 -3
  539. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  540. package/lib/esm/tile/RealityTile.js +49 -5
  541. package/lib/esm/tile/RealityTile.js.map +1 -1
  542. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  543. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  544. package/lib/esm/tile/RealityTileTree.d.ts +37 -2
  545. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  546. package/lib/esm/tile/RealityTileTree.js +30 -2
  547. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  548. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
  549. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +6 -2
  550. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  551. package/lib/esm/tile/TileAdmin.d.ts +11 -0
  552. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  553. package/lib/esm/tile/TileAdmin.js +28 -4
  554. package/lib/esm/tile/TileAdmin.js.map +1 -1
  555. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  556. package/lib/esm/tile/TileDrawArgs.js +11 -17
  557. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  558. package/lib/esm/tile/TileRequest.d.ts +5 -1
  559. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  560. package/lib/esm/tile/TileRequest.js +6 -2
  561. package/lib/esm/tile/TileRequest.js.map +1 -1
  562. package/lib/esm/tile/TileStorage.d.ts +13 -0
  563. package/lib/esm/tile/TileStorage.d.ts.map +1 -0
  564. package/lib/esm/tile/TileStorage.js +46 -0
  565. package/lib/esm/tile/TileStorage.js.map +1 -0
  566. package/lib/esm/tile/internal.d.ts +2 -0
  567. package/lib/esm/tile/internal.d.ts.map +1 -1
  568. package/lib/esm/tile/internal.js +2 -0
  569. package/lib/esm/tile/internal.js.map +1 -1
  570. package/lib/esm/tile/map/ArcGISTileMap.js +1 -1
  571. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  572. package/lib/esm/tile/map/ArcGisUtilities.d.ts +0 -2
  573. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  574. package/lib/esm/tile/map/ArcGisUtilities.js +1 -24
  575. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  576. package/lib/esm/tile/map/BingElevation.d.ts +8 -3
  577. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  578. package/lib/esm/tile/map/BingElevation.js +36 -14
  579. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  580. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +2 -7
  581. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  582. package/lib/esm/tile/map/CesiumTerrainProvider.js +101 -91
  583. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  584. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts +9 -12
  585. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  586. package/lib/esm/tile/map/EllipsoidTerrainProvider.js +71 -68
  587. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  588. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  589. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +9 -16
  590. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  591. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  592. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  593. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  594. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  595. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  596. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  597. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +8 -6
  598. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  599. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +3 -3
  600. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  601. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  602. package/lib/esm/tile/map/ImageryTileTree.js +21 -6
  603. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  604. package/lib/esm/tile/map/MapCartoRectangle.d.ts +62 -6
  605. package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
  606. package/lib/esm/tile/map/MapCartoRectangle.js +103 -17
  607. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  608. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  609. package/lib/esm/tile/map/MapLayerImageryFormats.js +4 -2
  610. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  611. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  612. package/lib/esm/tile/map/MapLayerImageryProvider.js +1 -1
  613. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  614. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  615. package/lib/esm/tile/map/MapLayerSources.js +11 -7
  616. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  617. package/lib/esm/tile/map/MapTile.d.ts +68 -15
  618. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  619. package/lib/esm/tile/map/MapTile.js +88 -30
  620. package/lib/esm/tile/map/MapTile.js.map +1 -1
  621. package/lib/esm/tile/map/MapTileAvailability.d.ts.map +1 -1
  622. package/lib/esm/tile/map/MapTileAvailability.js +1 -1
  623. package/lib/esm/tile/map/MapTileAvailability.js.map +1 -1
  624. package/lib/esm/tile/map/MapTileLoader.d.ts +2 -2
  625. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  626. package/lib/esm/tile/map/MapTileLoader.js +12 -21
  627. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  628. package/lib/esm/tile/map/MapTileTree.d.ts +72 -7
  629. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  630. package/lib/esm/tile/map/MapTileTree.js +73 -17
  631. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  632. package/lib/esm/tile/map/MapTilingScheme.d.ts +67 -55
  633. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  634. package/lib/esm/tile/map/MapTilingScheme.js +72 -68
  635. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  636. package/lib/esm/tile/map/QuadId.d.ts +24 -2
  637. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  638. package/lib/esm/tile/map/QuadId.js +49 -20
  639. package/lib/esm/tile/map/QuadId.js.map +1 -1
  640. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +79 -19
  641. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  642. package/lib/esm/tile/map/TerrainMeshProvider.js +28 -13
  643. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  644. package/lib/esm/tile/map/TerrainProvider.d.ts +34 -0
  645. package/lib/esm/tile/map/TerrainProvider.d.ts.map +1 -0
  646. package/lib/esm/tile/map/TerrainProvider.js +37 -0
  647. package/lib/esm/tile/map/TerrainProvider.js.map +1 -0
  648. package/lib/esm/tile/map/WmsCapabilities.js +1 -1
  649. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  650. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  651. package/lib/esm/tile/map/WmtsCapabilities.js +7 -3
  652. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  653. package/lib/esm/tile/object-storage-azure.js +5 -0
  654. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  655. package/lib/esm/tools/AccuDrawTool.js +87 -26
  656. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  657. package/lib/esm/tools/ClipViewTool.d.ts +2 -2
  658. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  659. package/lib/esm/tools/ClipViewTool.js +29 -16
  660. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  661. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  662. package/lib/esm/tools/ElementSetTool.js +26 -10
  663. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  664. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  665. package/lib/esm/tools/MeasureTool.js +65 -41
  666. package/lib/esm/tools/MeasureTool.js.map +1 -1
  667. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  668. package/lib/esm/tools/PrimitiveTool.js +9 -4
  669. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  670. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  671. package/lib/esm/tools/SelectTool.js +20 -9
  672. package/lib/esm/tools/SelectTool.js.map +1 -1
  673. package/lib/esm/tools/Tool.d.ts.map +1 -1
  674. package/lib/esm/tools/Tool.js +13 -5
  675. package/lib/esm/tools/Tool.js.map +1 -1
  676. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  677. package/lib/esm/tools/ToolAdmin.js +27 -9
  678. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  679. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  680. package/lib/esm/tools/ViewTool.js +111 -40
  681. package/lib/esm/tools/ViewTool.js.map +1 -1
  682. package/package.json +31 -25
  683. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +0 -47
  684. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +0 -1
  685. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +0 -75
  686. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +0 -1
  687. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +0 -56
  688. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts.map +0 -1
  689. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +0 -270
  690. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +0 -1
  691. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +0 -47
  692. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +0 -1
  693. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +0 -71
  694. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +0 -1
  695. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +0 -56
  696. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts.map +0 -1
  697. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +0 -266
  698. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +0 -1
@@ -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":"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"}
1
+ {"version":3,"file":"RealityTile.d.ts","sourceRoot":"","sources":["../../../src/tile/RealityTile.ts"],"names":[],"mappings":"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"}
@@ -19,14 +19,15 @@ const scratchCorners = [core_geometry_1.Point3d.createZero(), core_geometry_1.Po
19
19
  const additiveRefinementThreshold = 10000; // Additive tiles (Cesium OSM tileset) are subdivided until their range diagonal falls below this threshold to ensure accurate reprojection.
20
20
  const additiveRefinementDepthLimit = 20;
21
21
  const scratchFrustum = new core_common_1.Frustum();
22
- /**
23
- * A specialization of tiles that represent reality tiles. 3D Tilesets and maps use this class and have their own optimized traversal and lifetime management.
24
- * @internal
22
+ /** 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.
23
+ * @beta
25
24
  */
26
25
  class RealityTile extends internal_1.Tile {
26
+ /** @internal */
27
27
  constructor(props, tree) {
28
28
  var _a;
29
29
  super(props, tree);
30
+ /** @internal */
30
31
  this._everDisplayed = false;
31
32
  this.transformToRoot = props.transformToRoot;
32
33
  this.additiveRefinement = (undefined === props.additiveRefinement) ? (_a = this.realityParent) === null || _a === void 0 ? void 0 : _a.additiveRefinement : props.additiveRefinement;
@@ -43,45 +44,62 @@ class RealityTile extends internal_1.Tile {
43
44
  if (undefined !== this._contentRange)
44
45
  this.transformToRoot.multiplyRange(this._contentRange, this._contentRange);
45
46
  }
47
+ /** @internal */
46
48
  setContent(content) {
47
49
  super.setContent(content);
48
50
  this._geometry = content.geometry;
49
51
  }
52
+ /** @internal */
50
53
  get realityChildren() { return this.children; }
54
+ /** @internal */
51
55
  get realityParent() { return this.parent; }
56
+ /** @internal */
52
57
  get realityRoot() { return this.tree; }
58
+ /** @internal */
53
59
  get graphicType() { return undefined; } // If undefined, use tree type.
60
+ /** @internal */
54
61
  get maxDepth() { return this.realityRoot.loader.maxDepth; }
62
+ /** @internal */
55
63
  get isPointCloud() { return this.realityRoot.loader.containsPointClouds; }
64
+ /** @internal */
56
65
  get isLoaded() { return this.loadStatus === internal_1.TileLoadStatus.Ready; } // Reality tiles may depend on secondary tiles (maps) so can ge loaded but not ready.
66
+ /** @internal */
57
67
  get geometry() { return this._geometry; }
68
+ /** @internal */
58
69
  get isDisplayable() {
59
70
  if (this.noContentButTerminateOnSelection)
60
71
  return false;
61
72
  else
62
73
  return super.isDisplayable;
63
74
  }
75
+ /** @internal */
64
76
  markUsed(args) {
65
77
  args.markUsed(this);
66
78
  }
79
+ /** @internal */
67
80
  markDisplayed() {
68
81
  this._everDisplayed = true;
69
82
  }
83
+ /** @internal */
70
84
  isOccluded(_viewingSpace) {
71
85
  return false;
72
86
  }
87
+ /** @internal */
73
88
  get channel() {
74
89
  return this.realityRoot.loader.getRequestChannel(this);
75
90
  }
91
+ /** @internal */
76
92
  async requestContent(isCanceled) {
77
93
  return this.realityRoot.loader.requestTileContent(this, isCanceled);
78
94
  }
95
+ /** @internal */
79
96
  useAdditiveRefinementStepchildren() {
80
97
  // Create additive stepchildren only if we are this tile is additive and we are repojecting and the radius exceeds the additiveRefinementThreshold.
81
98
  // This criteria is currently only met by the Cesium OSM tileset.
82
99
  const rangeDiagonal = this.rangeCorners ? this.rangeCorners[0].distance(this.rangeCorners[3]) : 0;
83
100
  return this.additiveRefinement && this.isDisplayable && rangeDiagonal > additiveRefinementThreshold && this.depth < additiveRefinementDepthLimit && this.realityRoot.doReprojectChildren(this);
84
101
  }
102
+ /** @internal */
85
103
  _loadChildren(resolve, reject) {
86
104
  this.realityRoot.loader.loadChildren(this).then((children) => {
87
105
  /* 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
@@ -94,19 +112,27 @@ class RealityTile extends internal_1.Tile {
94
112
  reject(err);
95
113
  });
96
114
  }
115
+ /** @internal */
97
116
  async readContent(data, system, isCanceled) {
98
117
  return this.realityRoot.loader.loadTileContent(this, data, system, isCanceled);
99
118
  }
119
+ /** @internal */
100
120
  computeLoadPriority(viewports, users) {
101
121
  return this.realityRoot.loader.computeTilePriority(this, viewports, users);
102
122
  }
123
+ /** @internal */
103
124
  getContentClip() {
104
125
  return core_geometry_1.ClipVector.createCapture([core_geometry_1.ClipShape.createBlock(this.contentRange, core_geometry_1.ClipMaskXYZRangePlanes.All)]);
105
126
  }
106
- // Allow tile to select additional tiles (Terrain Imagery...)
127
+ /** Allow tile to select additional tiles (Terrain Imagery...)
128
+ * @internal
129
+ */
107
130
  selectSecondaryTiles(_args, _context) { }
108
- // An upsampled tile is not loadable - will override to return loadable parent.
131
+ /** An upsampled tile is not loadable - will override to return loadable parent.
132
+ * @internal
133
+ */
109
134
  get loadableTile() { return this; }
135
+ /** @internal */
110
136
  preloadRealityTilesAtDepth(depth, context, args) {
111
137
  if (this.depth === depth) {
112
138
  context.preload(this, args);
@@ -118,6 +144,7 @@ class RealityTile extends internal_1.Tile {
118
144
  child.preloadRealityTilesAtDepth(depth, context, args);
119
145
  }
120
146
  }
147
+ /** @internal */
121
148
  selectRealityChildren(context, args, traversalDetails) {
122
149
  const childrenLoadStatus = this.loadChildren(); // NB: asynchronous
123
150
  if (internal_1.TileTreeLoadStatus.Loading === childrenLoadStatus) {
@@ -133,6 +160,7 @@ class RealityTile extends internal_1.Tile {
133
160
  traversalChildren.combine(traversalDetails);
134
161
  }
135
162
  }
163
+ /** @internal */
136
164
  addBoundingGraphic(builder, color) {
137
165
  builder.setSymbology(color, color, 3);
138
166
  let corners = this.rangeCorners ? this.rangeCorners : this.range.corners();
@@ -140,6 +168,7 @@ class RealityTile extends internal_1.Tile {
140
168
  corners = this._reprojectionTransform.multiplyPoint3dArray(corners);
141
169
  builder.addRangeBoxFromCorners(corners);
142
170
  }
171
+ /** @internal */
143
172
  reproject(rootReprojection) {
144
173
  this._reprojectionTransform = rootReprojection;
145
174
  rootReprojection.multiplyRange(this.range, this.range);
@@ -149,6 +178,7 @@ class RealityTile extends internal_1.Tile {
149
178
  if (this.rangeCorners)
150
179
  rootReprojection.multiplyPoint3dArrayInPlace(this.rangeCorners);
151
180
  }
181
+ /** @internal */
152
182
  allChildrenIncluded(tiles) {
153
183
  if (this.children === undefined || tiles.length !== this.children.length)
154
184
  return false;
@@ -157,6 +187,7 @@ class RealityTile extends internal_1.Tile {
157
187
  return false;
158
188
  return true;
159
189
  }
190
+ /** @internal */
160
191
  getLoadedRealityChildren(args) {
161
192
  if (this._childrenLoadStatus !== internal_1.TileTreeLoadStatus.Loaded || this.realityChildren === undefined)
162
193
  return false;
@@ -169,7 +200,9 @@ class RealityTile extends internal_1.Tile {
169
200
  }
170
201
  return true;
171
202
  }
203
+ /** @internal */
172
204
  forceSelectRealityTile() { return false; }
205
+ /** @internal */
173
206
  selectRealityTiles(context, args, traversalDetails) {
174
207
  const visibility = this.computeVisibilityFactor(args);
175
208
  if (visibility < 0)
@@ -201,6 +234,7 @@ class RealityTile extends internal_1.Tile {
201
234
  }
202
235
  }
203
236
  }
237
+ /** @internal */
204
238
  purgeContents(olderThan) {
205
239
  // Discard contents of tiles that have not been "used" recently, where "used" may mean: selected/preloaded for display or content requested.
206
240
  // Note we do not discard the child Tile objects themselves.
@@ -211,6 +245,7 @@ class RealityTile extends internal_1.Tile {
211
245
  for (const child of children)
212
246
  child.purgeContents(olderThan);
213
247
  }
248
+ /** @internal */
214
249
  computeVisibilityFactor(args) {
215
250
  if (this.isEmpty)
216
251
  return -1;
@@ -227,6 +262,7 @@ class RealityTile extends internal_1.Tile {
227
262
  return this.hasContentRange && this.isContentCulled(args) ? -1 : 1;
228
263
  return this.maximumSize / args.getPixelSize(this);
229
264
  }
265
+ /** @internal */
230
266
  preloadTilesInFrustum(args, context, preloadSizeModifier) {
231
267
  const visibility = this.computeVisibilityFactor(args);
232
268
  if (visibility < 0)
@@ -246,6 +282,7 @@ class RealityTile extends internal_1.Tile {
246
282
  }
247
283
  }
248
284
  }
285
+ /** @internal */
249
286
  get _anyChildNotFound() {
250
287
  if (undefined !== this.children)
251
288
  for (const child of this.children)
@@ -253,6 +290,7 @@ class RealityTile extends internal_1.Tile {
253
290
  return true;
254
291
  return this._childrenLoadStatus === internal_1.TileTreeLoadStatus.NotFound;
255
292
  }
293
+ /** @internal */
256
294
  getSizeProjectionCorners() {
257
295
  if (!this.tree.isContentUnbounded)
258
296
  return undefined; // For a non-global tree use the standard size algorithm.
@@ -261,7 +299,9 @@ class RealityTile extends internal_1.Tile {
261
299
  return this.range.corners(scratchCorners);
262
300
  return this.region ? this.rangeCorners.slice(4) : this.rangeCorners;
263
301
  }
302
+ /** @internal */
264
303
  get isStepChild() { return false; }
304
+ /** @internal */
265
305
  loadAdditiveRefinementChildren(resolve) {
266
306
  const region = this.region;
267
307
  const corners = this.rangeCorners;
@@ -286,6 +326,7 @@ class RealityTile extends internal_1.Tile {
286
326
  }
287
327
  resolve(stepChildren);
288
328
  }
329
+ /** @internal */
289
330
  produceGraphics() {
290
331
  if (undefined === this._reprojectionTransform)
291
332
  return super.produceGraphics();
@@ -296,13 +337,16 @@ class RealityTile extends internal_1.Tile {
296
337
  }
297
338
  return this._reprojectedGraphic;
298
339
  }
340
+ /** @internal */
299
341
  get unprojectedGraphic() {
300
342
  return this._graphic;
301
343
  }
344
+ /** @internal */
302
345
  disposeContents() {
303
346
  super.disposeContents();
304
347
  this._reprojectedGraphic = (0, core_bentley_1.dispose)(this._reprojectedGraphic);
305
348
  }
349
+ /** @internal */
306
350
  collectTileGeometry(collector) {
307
351
  var _a;
308
352
  const status = collector.collectTile(this);
@@ -1 +1 @@
1
- {"version":3,"file":"RealityTile.js","sourceRoot":"","sources":["../../../src/tile/RealityTile.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { BeTimePoint, dispose } from \"@itwin/core-bentley\";\r\nimport { ClipMaskXYZRangePlanes, ClipShape, ClipVector, Point3d, Polyface, Transform } from \"@itwin/core-geometry\";\r\nimport { ColorDef, Frustum } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"../render/GraphicBranch\";\r\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { ViewingSpace } from \"../ViewingSpace\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport {\r\n RealityTileRegion, RealityTileTree, Tile, TileContent, TileDrawArgs, TileGeometryCollector, TileGraphicType, TileLoadStatus, TileParams, TileRequest, TileRequestChannel,\r\n TileTreeLoadStatus, TileUser, TraversalDetails, TraversalSelectionContext,\r\n} from \"./internal\";\r\n\r\n/** @internal */\r\nexport interface RealityTileParams extends TileParams {\r\n readonly transformToRoot?: Transform;\r\n readonly additiveRefinement?: boolean;\r\n readonly noContentButTerminateOnSelection?: boolean;\r\n readonly rangeCorners?: Point3d[];\r\n readonly region?: RealityTileRegion;\r\n}\r\n\r\n/** The geometry representing the contents of a reality tile. Currently only polyfaces are returned\r\n * @alpha\r\n */\r\nexport interface RealityTileGeometry {\r\n polyfaces?: Polyface[];\r\n}\r\n\r\n/** @internal */\r\nexport interface RealityTileContent extends TileContent {\r\n geometry?: RealityTileGeometry;\r\n}\r\n\r\nconst scratchLoadedChildren = new Array<RealityTile>();\r\nconst scratchCorners = [Point3d.createZero(), Point3d.createZero(), Point3d.createZero(), Point3d.createZero(), Point3d.createZero(), Point3d.createZero(), Point3d.createZero(), Point3d.createZero()];\r\nconst additiveRefinementThreshold = 10000; // Additive tiles (Cesium OSM tileset) are subdivided until their range diagonal falls below this threshold to ensure accurate reprojection.\r\nconst additiveRefinementDepthLimit = 20;\r\nconst scratchFrustum = new Frustum();\r\n\r\n/**\r\n * A specialization of tiles that represent reality tiles. 3D Tilesets and maps use this class and have their own optimized traversal and lifetime management.\r\n * @internal\r\n */\r\nexport class RealityTile extends Tile {\r\n public readonly transformToRoot?: Transform;\r\n public readonly additiveRefinement?: boolean;\r\n public readonly noContentButTerminateOnSelection?: boolean;\r\n public readonly rangeCorners?: Point3d[];\r\n public readonly region?: RealityTileRegion;\r\n protected _geometry?: RealityTileGeometry;\r\n private _everDisplayed = false;\r\n protected _reprojectionTransform?: Transform;\r\n private _reprojectedGraphic?: RenderGraphic;\r\n\r\n public constructor(props: RealityTileParams, tree: RealityTileTree) {\r\n super(props, tree);\r\n this.transformToRoot = props.transformToRoot;\r\n this.additiveRefinement = (undefined === props.additiveRefinement) ? this.realityParent?.additiveRefinement : props.additiveRefinement;\r\n this.noContentButTerminateOnSelection = props.noContentButTerminateOnSelection;\r\n this.rangeCorners = props.rangeCorners;\r\n this.region = props.region;\r\n\r\n if (undefined === this.transformToRoot)\r\n return;\r\n\r\n // Can transform be non-rigid?? -- if so would have to handle (readonly) radius.\r\n this.boundingSphere.transformBy(this.transformToRoot, this.boundingSphere);\r\n this.transformToRoot.multiplyRange(this.range, this.range);\r\n\r\n if (this.rangeCorners)\r\n this.transformToRoot.multiplyPoint3dArrayInPlace(this.rangeCorners);\r\n\r\n if (undefined !== this._contentRange)\r\n this.transformToRoot.multiplyRange(this._contentRange, this._contentRange);\r\n }\r\n\r\n public override setContent(content: RealityTileContent): void {\r\n super.setContent(content);\r\n this._geometry = content.geometry;\r\n }\r\n\r\n public get realityChildren(): RealityTile[] | undefined { return this.children as RealityTile[] | undefined; }\r\n public get realityParent(): RealityTile { return this.parent as RealityTile; }\r\n public get realityRoot(): RealityTileTree { return this.tree as RealityTileTree; }\r\n public get graphicType(): TileGraphicType | undefined { return undefined; } // If undefined, use tree type.\r\n public get maxDepth(): number { return this.realityRoot.loader.maxDepth; }\r\n public get isPointCloud() { return this.realityRoot.loader.containsPointClouds; }\r\n public get isLoaded() { return this.loadStatus === TileLoadStatus.Ready; } // Reality tiles may depend on secondary tiles (maps) so can ge loaded but not ready.\r\n public get geometry(): RealityTileGeometry | undefined { return this._geometry; }\r\n\r\n public override get isDisplayable(): boolean {\r\n if (this.noContentButTerminateOnSelection)\r\n return false;\r\n else\r\n return super.isDisplayable;\r\n }\r\n\r\n public markUsed(args: TileDrawArgs): void {\r\n args.markUsed(this);\r\n }\r\n\r\n public markDisplayed(): void {\r\n this._everDisplayed = true;\r\n }\r\n\r\n public isOccluded(_viewingSpace: ViewingSpace): boolean {\r\n return false;\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n return this.realityRoot.loader.getRequestChannel(this);\r\n }\r\n\r\n public async requestContent(isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n return this.realityRoot.loader.requestTileContent(this, isCanceled);\r\n }\r\n private useAdditiveRefinementStepchildren() {\r\n // Create additive stepchildren only if we are this tile is additive and we are repojecting and the radius exceeds the additiveRefinementThreshold.\r\n // This criteria is currently only met by the Cesium OSM tileset.\r\n const rangeDiagonal = this.rangeCorners ? this.rangeCorners[0].distance(this.rangeCorners[3]) : 0;\r\n return this.additiveRefinement && this.isDisplayable && rangeDiagonal > additiveRefinementThreshold && this.depth < additiveRefinementDepthLimit && this.realityRoot.doReprojectChildren(this);\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[] | undefined) => void, reject: (error: Error) => void): void {\r\n this.realityRoot.loader.loadChildren(this).then((children: Tile[] | undefined) => {\r\n\r\n /* 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\r\n tile cannot be reprojected accurately. */\r\n if (this.useAdditiveRefinementStepchildren())\r\n this.loadAdditiveRefinementChildren((stepChildren: Tile[]) => { children = children ? children?.concat(stepChildren) : stepChildren; });\r\n\r\n if (children)\r\n this.realityRoot.reprojectAndResolveChildren(this, children, resolve); /* Potentially reprojecect and resolve these children */\r\n\r\n }).catch((err) => {\r\n reject(err);\r\n });\r\n }\r\n\r\n public async readContent(data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent> {\r\n return this.realityRoot.loader.loadTileContent(this, data, system, isCanceled);\r\n }\r\n\r\n public override computeLoadPriority(viewports: Iterable<Viewport>, users: Iterable<TileUser>): number {\r\n return this.realityRoot.loader.computeTilePriority(this, viewports, users);\r\n }\r\n\r\n public getContentClip(): ClipVector | undefined {\r\n return ClipVector.createCapture([ClipShape.createBlock(this.contentRange, ClipMaskXYZRangePlanes.All)]);\r\n }\r\n\r\n // Allow tile to select additional tiles (Terrain Imagery...)\r\n public selectSecondaryTiles(_args: TileDrawArgs, _context: TraversalSelectionContext) { }\r\n\r\n // An upsampled tile is not loadable - will override to return loadable parent.\r\n public get loadableTile(): RealityTile { return this; }\r\n\r\n public preloadRealityTilesAtDepth(depth: number, context: TraversalSelectionContext, args: TileDrawArgs) {\r\n if (this.depth === depth) {\r\n context.preload(this, args);\r\n return;\r\n }\r\n\r\n this.loadChildren();\r\n\r\n if (undefined !== this.realityChildren) {\r\n for (const child of this.realityChildren)\r\n child.preloadRealityTilesAtDepth(depth, context, args);\r\n }\r\n }\r\n\r\n protected selectRealityChildren(context: TraversalSelectionContext, args: TileDrawArgs, traversalDetails: TraversalDetails) {\r\n const childrenLoadStatus = this.loadChildren(); // NB: asynchronous\r\n if (TileTreeLoadStatus.Loading === childrenLoadStatus) {\r\n args.markChildrenLoading();\r\n traversalDetails.childrenLoading = true;\r\n return;\r\n }\r\n\r\n if (undefined !== this.realityChildren) {\r\n const traversalChildren = this.realityRoot.getTraversalChildren(this.depth);\r\n traversalChildren.initialize();\r\n for (let i = 0; i < this.children!.length; i++)\r\n this.realityChildren[i].selectRealityTiles(context, args, traversalChildren.getChildDetail(i));\r\n\r\n traversalChildren.combine(traversalDetails);\r\n }\r\n }\r\n public addBoundingGraphic(builder: GraphicBuilder, color: ColorDef) {\r\n builder.setSymbology(color, color, 3);\r\n let corners = this.rangeCorners ? this.rangeCorners : this.range.corners();\r\n if (this._reprojectionTransform)\r\n corners = this._reprojectionTransform.multiplyPoint3dArray(corners);\r\n builder.addRangeBoxFromCorners(corners);\r\n }\r\n\r\n public reproject(rootReprojection: Transform) {\r\n this._reprojectionTransform = rootReprojection;\r\n rootReprojection.multiplyRange(this.range, this.range);\r\n this.boundingSphere.transformBy(rootReprojection, this.boundingSphere);\r\n if (this.contentRange)\r\n rootReprojection.multiplyRange(this.contentRange, this.contentRange);\r\n if (this.rangeCorners)\r\n rootReprojection.multiplyPoint3dArrayInPlace(this.rangeCorners);\r\n }\r\n\r\n public allChildrenIncluded(tiles: Tile[]) {\r\n if (this.children === undefined || tiles.length !== this.children.length)\r\n return false;\r\n for (const tile of tiles)\r\n if (tile.parent !== this)\r\n return false;\r\n return true;\r\n }\r\n\r\n protected getLoadedRealityChildren(args: TileDrawArgs): boolean {\r\n if (this._childrenLoadStatus !== TileTreeLoadStatus.Loaded || this.realityChildren === undefined)\r\n return false;\r\n\r\n for (const child of this.realityChildren) {\r\n if (child.isReady && child.computeVisibilityFactor(args) > 0) {\r\n scratchLoadedChildren.push(child);\r\n } else if (!child.getLoadedRealityChildren(args))\r\n return false;\r\n }\r\n return true;\r\n }\r\n public forceSelectRealityTile(): boolean { return false; }\r\n\r\n public selectRealityTiles(context: TraversalSelectionContext, args: TileDrawArgs, traversalDetails: TraversalDetails) {\r\n const visibility = this.computeVisibilityFactor(args);\r\n if (visibility < 0)\r\n return;\r\n\r\n if (this.realityRoot.loader.forceTileLoad(this) && !this.isReady) {\r\n context.selectOrQueue(this, args, traversalDetails); // Force loading if loader requires this tile. (cesium terrain visibility).\r\n return;\r\n }\r\n\r\n if (visibility >= 1 && this.noContentButTerminateOnSelection)\r\n return;\r\n\r\n if (this.isDisplayable && (visibility >= 1 || this._anyChildNotFound || this.forceSelectRealityTile() || context.selectionCountExceeded)) {\r\n if (!this.isOccluded(args.viewingSpace)) {\r\n context.selectOrQueue(this, args, traversalDetails);\r\n\r\n if (!this.isReady) { // This tile is visible but not loaded - Use higher resolution children if present\r\n if (this.getLoadedRealityChildren(args))\r\n context.select(scratchLoadedChildren, args);\r\n scratchLoadedChildren.length = 0;\r\n }\r\n }\r\n } else {\r\n if (this.additiveRefinement && this.isDisplayable && !this.useAdditiveRefinementStepchildren())\r\n context.selectOrQueue(this, args, traversalDetails); // With additive refinement it is necessary to display this tile along with any displayed children.\r\n\r\n this.selectRealityChildren(context, args, traversalDetails);\r\n if (this.isReady && (traversalDetails.childrenLoading || 0 !== traversalDetails.queuedChildren.length)) {\r\n const minimumVisibleFactor = .25; // If the tile has not yet been displayed in this viewport -- display only if it is within 25% of visible. Avoid overly tiles popping into view unexpectedly (terrain)\r\n\r\n if (visibility > minimumVisibleFactor || this._everDisplayed)\r\n context.selectOrQueue(this, args, traversalDetails);\r\n }\r\n }\r\n }\r\n\r\n public purgeContents(olderThan: BeTimePoint): void {\r\n // Discard contents of tiles that have not been \"used\" recently, where \"used\" may mean: selected/preloaded for display or content requested.\r\n // Note we do not discard the child Tile objects themselves.\r\n if (this.usageMarker.isExpired(olderThan))\r\n this.disposeContents();\r\n\r\n const children = this.realityChildren;\r\n if (children)\r\n for (const child of children)\r\n child.purgeContents(olderThan);\r\n }\r\n\r\n public computeVisibilityFactor(args: TileDrawArgs): number {\r\n if (this.isEmpty)\r\n return -1;\r\n\r\n if (this.rangeCorners)\r\n scratchFrustum.setFromCorners(this.rangeCorners);\r\n else\r\n Frustum.fromRange(this.range, scratchFrustum);\r\n\r\n if (this.isFrustumCulled(scratchFrustum, args, true, this.boundingSphere))\r\n return -1;\r\n\r\n // some nodes are merely for structure and don't have any geometry\r\n if (0 === this.maximumSize)\r\n return 0;\r\n\r\n if (this.isLeaf)\r\n return this.hasContentRange && this.isContentCulled(args) ? -1 : 1;\r\n\r\n return this.maximumSize / args.getPixelSize(this);\r\n }\r\n\r\n public preloadTilesInFrustum(args: TileDrawArgs, context: TraversalSelectionContext, preloadSizeModifier: number) {\r\n const visibility = this.computeVisibilityFactor(args);\r\n if (visibility < 0)\r\n return;\r\n\r\n if (visibility * preloadSizeModifier > 1) {\r\n if (this.isDisplayable)\r\n context.preload(this, args);\r\n } else {\r\n const childrenLoadStatus = this.loadChildren(); // NB: asynchronous\r\n if (TileTreeLoadStatus.Loading === childrenLoadStatus) {\r\n args.markChildrenLoading();\r\n } else if (undefined !== this.realityChildren) {\r\n for (const child of this.realityChildren)\r\n child.preloadTilesInFrustum(args, context, preloadSizeModifier);\r\n }\r\n }\r\n }\r\n\r\n protected get _anyChildNotFound(): boolean {\r\n if (undefined !== this.children)\r\n for (const child of this.children)\r\n if (child.isNotFound)\r\n return true;\r\n\r\n return this._childrenLoadStatus === TileTreeLoadStatus.NotFound;\r\n }\r\n public override getSizeProjectionCorners(): Point3d[] | undefined {\r\n if (!this.tree.isContentUnbounded)\r\n return undefined; // For a non-global tree use the standard size algorithm.\r\n\r\n // For global tiles (as in OSM buildings) return the range corners or X-Y corners only if bounded by region- this allows an algorithm that uses the area of the projected corners to attenuate horizon tiles.\r\n if (!this.rangeCorners)\r\n return this.range.corners(scratchCorners);\r\n\r\n return this.region ? this.rangeCorners.slice(4) : this.rangeCorners;\r\n }\r\n\r\n public get isStepChild() { return false; }\r\n\r\n protected loadAdditiveRefinementChildren(resolve: (children: Tile[]) => void): void {\r\n const region = this.region;\r\n const corners = this.rangeCorners;\r\n if (!region || !corners)\r\n return;\r\n\r\n const maximumSize = this.maximumSize;\r\n const rangeDiagonal = corners[0].distance(corners[3]);\r\n const isLeaf = rangeDiagonal < additiveRefinementThreshold || this.depth > additiveRefinementDepthLimit;\r\n\r\n const stepChildren = new Array<AdditiveRefinementStepChild>();\r\n const latitudeDelta = (region.maxLatitude - region.minLatitude) / 2;\r\n const longitudeDelta = (region.maxLongitude - region.minLongitude) / 2;\r\n const minHeight = region.minHeight;\r\n const maxHeight = region.maxHeight;\r\n\r\n for (let i = 0, minLongitude = region.minLongitude, step = 0; i < 2; i++, minLongitude += longitudeDelta, step++) {\r\n for (let j = 0, minLatitude = region.minLatitude; j < 2; j++, minLatitude += latitudeDelta) {\r\n const childRegion = new RealityTileRegion({ minLatitude, maxLatitude: minLatitude + latitudeDelta, minLongitude, maxLongitude: minLongitude + longitudeDelta, minHeight, maxHeight });\r\n const childRange = childRegion.getRange();\r\n\r\n const contentId = `${this.contentId}_S${step++}`;\r\n const childParams: RealityTileParams = { rangeCorners: childRange.corners, contentId, range: childRange.range, maximumSize, parent: this, additiveRefinement: false, isLeaf, region: childRegion };\r\n\r\n stepChildren.push(new AdditiveRefinementStepChild(childParams, this.realityRoot));\r\n }\r\n }\r\n resolve(stepChildren);\r\n }\r\n public override produceGraphics(): RenderGraphic | undefined {\r\n if (undefined === this._reprojectionTransform)\r\n return super.produceGraphics();\r\n\r\n if (undefined === this._reprojectedGraphic && undefined !== this._graphic) {\r\n const branch = new GraphicBranch(false);\r\n branch.add(this._graphic);\r\n this._reprojectedGraphic = IModelApp.renderSystem.createGraphicBranch(branch, this._reprojectionTransform);\r\n }\r\n return this._reprojectedGraphic;\r\n }\r\n\r\n public get unprojectedGraphic(): RenderGraphic | undefined {\r\n return this._graphic;\r\n }\r\n public override disposeContents(): void {\r\n super.disposeContents();\r\n this._reprojectedGraphic = dispose(this._reprojectedGraphic);\r\n }\r\n\r\n public collectTileGeometry(collector: TileGeometryCollector): void {\r\n const status = collector.collectTile(this);\r\n\r\n switch(status) {\r\n case \"reject\":\r\n return;\r\n\r\n case \"continue\":\r\n if (!this.isLeaf && !this._anyChildNotFound) {\r\n const childrenLoadStatus = this.loadChildren();\r\n if (TileTreeLoadStatus.Loading === childrenLoadStatus) {\r\n collector.markLoading();\r\n } else if (undefined !== this.realityChildren && !this._anyChildNotFound) {\r\n for (const child of this.realityChildren)\r\n child.collectTileGeometry(collector);\r\n }\r\n\r\n break;\r\n } // else fall through to \"accept\"\r\n // eslint-disable-next-line no-fallthrough\r\n case \"accept\":\r\n if (!this.isReady)\r\n collector.addMissingTile(this.loadableTile);\r\n else if (this.geometry?.polyfaces)\r\n collector.polyfaces.push(...this.geometry.polyfaces);\r\n\r\n break;\r\n }\r\n }\r\n}\r\n\r\n/** When additive refinement is used (as in the Cesium OSM tileset) it is not possible to accurately reproject very large, low level tiles\r\n * In this case we create additional \"step\" children (grandchildren etc. ) that will clipped portions display the their ancestor's additive geometry.\r\n * These step children are subdivided until they are small enough to be accurately reprojected - this is controlled by the additiveRefinementThreshold (currently 2KM).\r\n * The stepchildren do not contain any tile graphics - they just create a branch with clipping and reprojection to display their additive refinement ancestor graphics.\r\n */\r\nclass AdditiveRefinementStepChild extends RealityTile {\r\n public override get isStepChild() { return true; }\r\n private _loadableTile: RealityTile;\r\n\r\n public constructor(props: RealityTileParams, tree: RealityTileTree) {\r\n super(props, tree);\r\n this._loadableTile = this.realityParent;\r\n for (; this._loadableTile && this._loadableTile.isStepChild; this._loadableTile = this._loadableTile.realityParent)\r\n ;\r\n }\r\n public override get loadableTile(): RealityTile {\r\n return this._loadableTile;\r\n }\r\n public override get isLoading(): boolean { return this._loadableTile.isLoading; }\r\n public override get isQueued(): boolean { return this._loadableTile.isQueued; }\r\n public override get isNotFound(): boolean { return this._loadableTile.isNotFound; }\r\n public override get isReady(): boolean { return this._loadableTile.isReady; }\r\n public override get isLoaded(): boolean { return this._loadableTile.isLoaded; }\r\n public override get isEmpty() { return false; }\r\n public override produceGraphics(): RenderGraphic | undefined {\r\n if (undefined === this._graphic) {\r\n const parentGraphics = this._loadableTile.unprojectedGraphic;\r\n\r\n if (!parentGraphics || !this._reprojectionTransform)\r\n return undefined;\r\n\r\n const branch = new GraphicBranch(false);\r\n branch.add(parentGraphics);\r\n const renderSystem = IModelApp.renderSystem;\r\n const branchOptions: GraphicBranchOptions = {};\r\n if (this.rangeCorners) {\r\n const clipPolygon = [this.rangeCorners[0], this.rangeCorners[1], this.rangeCorners[3], this.rangeCorners[2]];\r\n branchOptions.clipVolume = renderSystem.createClipVolume(ClipVector.create([ClipShape.createShape(clipPolygon, undefined, undefined, this.tree.iModelTransform)!]));\r\n }\r\n this._graphic = renderSystem.createGraphicBranch(branch, this._reprojectionTransform, branchOptions);\r\n }\r\n return this._graphic;\r\n }\r\n\r\n public override markUsed(args: TileDrawArgs): void {\r\n args.markUsed(this);\r\n args.markUsed(this._loadableTile);\r\n }\r\n protected override _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void {\r\n this.loadAdditiveRefinementChildren((stepChildren: Tile[]) => {\r\n if (stepChildren)\r\n this.realityRoot.reprojectAndResolveChildren(this, stepChildren, resolve);\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RealityTile.js","sourceRoot":"","sources":["../../../src/tile/RealityTile.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { BeTimePoint, dispose } from \"@itwin/core-bentley\";\r\nimport { ClipMaskXYZRangePlanes, ClipShape, ClipVector, Point3d, Polyface, Transform } from \"@itwin/core-geometry\";\r\nimport { ColorDef, Frustum } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"../render/GraphicBranch\";\r\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { ViewingSpace } from \"../ViewingSpace\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport {\r\n RealityTileRegion, RealityTileTree, Tile, TileContent, TileDrawArgs, TileGeometryCollector, TileGraphicType, TileLoadStatus, TileParams, TileRequest, TileRequestChannel,\r\n TileTreeLoadStatus, TileUser, TraversalDetails, TraversalSelectionContext,\r\n} from \"./internal\";\r\n\r\n/** @internal */\r\nexport interface RealityTileParams extends TileParams {\r\n readonly transformToRoot?: Transform;\r\n readonly additiveRefinement?: boolean;\r\n readonly noContentButTerminateOnSelection?: boolean;\r\n readonly rangeCorners?: Point3d[];\r\n readonly region?: RealityTileRegion;\r\n}\r\n\r\n/** The geometry representing the contents of a reality tile. Currently only polyfaces are returned\r\n * @alpha\r\n */\r\nexport interface RealityTileGeometry {\r\n polyfaces?: Polyface[];\r\n}\r\n\r\n/** @internal */\r\nexport interface RealityTileContent extends TileContent {\r\n geometry?: RealityTileGeometry;\r\n}\r\n\r\nconst scratchLoadedChildren = new Array<RealityTile>();\r\nconst scratchCorners = [Point3d.createZero(), Point3d.createZero(), Point3d.createZero(), Point3d.createZero(), Point3d.createZero(), Point3d.createZero(), Point3d.createZero(), Point3d.createZero()];\r\nconst additiveRefinementThreshold = 10000; // Additive tiles (Cesium OSM tileset) are subdivided until their range diagonal falls below this threshold to ensure accurate reprojection.\r\nconst additiveRefinementDepthLimit = 20;\r\nconst scratchFrustum = new Frustum();\r\n\r\n/** 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.\r\n * @beta\r\n */\r\nexport class RealityTile extends Tile {\r\n /** @internal */\r\n public readonly transformToRoot?: Transform;\r\n /** @internal */\r\n public readonly additiveRefinement?: boolean;\r\n /** @internal */\r\n public readonly noContentButTerminateOnSelection?: boolean;\r\n /** @internal */\r\n public readonly rangeCorners?: Point3d[];\r\n /** @internal */\r\n public readonly region?: RealityTileRegion;\r\n /** @internal */\r\n protected _geometry?: RealityTileGeometry;\r\n /** @internal */\r\n private _everDisplayed = false;\r\n /** @internal */\r\n protected _reprojectionTransform?: Transform;\r\n /** @internal */\r\n private _reprojectedGraphic?: RenderGraphic;\r\n\r\n /** @internal */\r\n public constructor(props: RealityTileParams, tree: RealityTileTree) {\r\n super(props, tree);\r\n this.transformToRoot = props.transformToRoot;\r\n this.additiveRefinement = (undefined === props.additiveRefinement) ? this.realityParent?.additiveRefinement : props.additiveRefinement;\r\n this.noContentButTerminateOnSelection = props.noContentButTerminateOnSelection;\r\n this.rangeCorners = props.rangeCorners;\r\n this.region = props.region;\r\n\r\n if (undefined === this.transformToRoot)\r\n return;\r\n\r\n // Can transform be non-rigid?? -- if so would have to handle (readonly) radius.\r\n this.boundingSphere.transformBy(this.transformToRoot, this.boundingSphere);\r\n this.transformToRoot.multiplyRange(this.range, this.range);\r\n\r\n if (this.rangeCorners)\r\n this.transformToRoot.multiplyPoint3dArrayInPlace(this.rangeCorners);\r\n\r\n if (undefined !== this._contentRange)\r\n this.transformToRoot.multiplyRange(this._contentRange, this._contentRange);\r\n }\r\n\r\n /** @internal */\r\n public override setContent(content: RealityTileContent): void {\r\n super.setContent(content);\r\n this._geometry = content.geometry;\r\n }\r\n\r\n /** @internal */\r\n public get realityChildren(): RealityTile[] | undefined { return this.children as RealityTile[] | undefined; }\r\n /** @internal */\r\n public get realityParent(): RealityTile { return this.parent as RealityTile; }\r\n /** @internal */\r\n public get realityRoot(): RealityTileTree { return this.tree as RealityTileTree; }\r\n /** @internal */\r\n public get graphicType(): TileGraphicType | undefined { return undefined; } // If undefined, use tree type.\r\n /** @internal */\r\n public get maxDepth(): number { return this.realityRoot.loader.maxDepth; }\r\n /** @internal */\r\n public get isPointCloud() { return this.realityRoot.loader.containsPointClouds; }\r\n /** @internal */\r\n public get isLoaded() { return this.loadStatus === TileLoadStatus.Ready; } // Reality tiles may depend on secondary tiles (maps) so can ge loaded but not ready.\r\n /** @internal */\r\n public get geometry(): RealityTileGeometry | undefined { return this._geometry; }\r\n\r\n /** @internal */\r\n public override get isDisplayable(): boolean {\r\n if (this.noContentButTerminateOnSelection)\r\n return false;\r\n else\r\n return super.isDisplayable;\r\n }\r\n\r\n /** @internal */\r\n public markUsed(args: TileDrawArgs): void {\r\n args.markUsed(this);\r\n }\r\n\r\n /** @internal */\r\n public markDisplayed(): void {\r\n this._everDisplayed = true;\r\n }\r\n\r\n /** @internal */\r\n public isOccluded(_viewingSpace: ViewingSpace): boolean {\r\n return false;\r\n }\r\n\r\n /** @internal */\r\n public get channel(): TileRequestChannel {\r\n return this.realityRoot.loader.getRequestChannel(this);\r\n }\r\n\r\n /** @internal */\r\n public async requestContent(isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n return this.realityRoot.loader.requestTileContent(this, isCanceled);\r\n }\r\n\r\n /** @internal */\r\n private useAdditiveRefinementStepchildren() {\r\n // Create additive stepchildren only if we are this tile is additive and we are repojecting and the radius exceeds the additiveRefinementThreshold.\r\n // This criteria is currently only met by the Cesium OSM tileset.\r\n const rangeDiagonal = this.rangeCorners ? this.rangeCorners[0].distance(this.rangeCorners[3]) : 0;\r\n return this.additiveRefinement && this.isDisplayable && rangeDiagonal > additiveRefinementThreshold && this.depth < additiveRefinementDepthLimit && this.realityRoot.doReprojectChildren(this);\r\n }\r\n\r\n /** @internal */\r\n protected _loadChildren(resolve: (children: Tile[] | undefined) => void, reject: (error: Error) => void): void {\r\n this.realityRoot.loader.loadChildren(this).then((children: Tile[] | undefined) => {\r\n\r\n /* 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\r\n tile cannot be reprojected accurately. */\r\n if (this.useAdditiveRefinementStepchildren())\r\n this.loadAdditiveRefinementChildren((stepChildren: Tile[]) => { children = children ? children?.concat(stepChildren) : stepChildren; });\r\n\r\n if (children)\r\n this.realityRoot.reprojectAndResolveChildren(this, children, resolve); /* Potentially reprojecect and resolve these children */\r\n\r\n }).catch((err) => {\r\n reject(err);\r\n });\r\n }\r\n\r\n /** @internal */\r\n public async readContent(data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<TileContent> {\r\n return this.realityRoot.loader.loadTileContent(this, data, system, isCanceled);\r\n }\r\n\r\n /** @internal */\r\n public override computeLoadPriority(viewports: Iterable<Viewport>, users: Iterable<TileUser>): number {\r\n return this.realityRoot.loader.computeTilePriority(this, viewports, users);\r\n }\r\n\r\n /** @internal */\r\n public getContentClip(): ClipVector | undefined {\r\n return ClipVector.createCapture([ClipShape.createBlock(this.contentRange, ClipMaskXYZRangePlanes.All)]);\r\n }\r\n\r\n /** Allow tile to select additional tiles (Terrain Imagery...)\r\n * @internal\r\n */\r\n public selectSecondaryTiles(_args: TileDrawArgs, _context: TraversalSelectionContext) { }\r\n\r\n /** An upsampled tile is not loadable - will override to return loadable parent.\r\n * @internal\r\n */\r\n public get loadableTile(): RealityTile { return this; }\r\n\r\n /** @internal */\r\n public preloadRealityTilesAtDepth(depth: number, context: TraversalSelectionContext, args: TileDrawArgs) {\r\n if (this.depth === depth) {\r\n context.preload(this, args);\r\n return;\r\n }\r\n\r\n this.loadChildren();\r\n\r\n if (undefined !== this.realityChildren) {\r\n for (const child of this.realityChildren)\r\n child.preloadRealityTilesAtDepth(depth, context, args);\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected selectRealityChildren(context: TraversalSelectionContext, args: TileDrawArgs, traversalDetails: TraversalDetails) {\r\n const childrenLoadStatus = this.loadChildren(); // NB: asynchronous\r\n if (TileTreeLoadStatus.Loading === childrenLoadStatus) {\r\n args.markChildrenLoading();\r\n traversalDetails.childrenLoading = true;\r\n return;\r\n }\r\n\r\n if (undefined !== this.realityChildren) {\r\n const traversalChildren = this.realityRoot.getTraversalChildren(this.depth);\r\n traversalChildren.initialize();\r\n for (let i = 0; i < this.children!.length; i++)\r\n this.realityChildren[i].selectRealityTiles(context, args, traversalChildren.getChildDetail(i));\r\n\r\n traversalChildren.combine(traversalDetails);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public addBoundingGraphic(builder: GraphicBuilder, color: ColorDef) {\r\n builder.setSymbology(color, color, 3);\r\n let corners = this.rangeCorners ? this.rangeCorners : this.range.corners();\r\n if (this._reprojectionTransform)\r\n corners = this._reprojectionTransform.multiplyPoint3dArray(corners);\r\n builder.addRangeBoxFromCorners(corners);\r\n }\r\n\r\n /** @internal */\r\n public reproject(rootReprojection: Transform) {\r\n this._reprojectionTransform = rootReprojection;\r\n rootReprojection.multiplyRange(this.range, this.range);\r\n this.boundingSphere.transformBy(rootReprojection, this.boundingSphere);\r\n if (this.contentRange)\r\n rootReprojection.multiplyRange(this.contentRange, this.contentRange);\r\n if (this.rangeCorners)\r\n rootReprojection.multiplyPoint3dArrayInPlace(this.rangeCorners);\r\n }\r\n\r\n /** @internal */\r\n public allChildrenIncluded(tiles: Tile[]) {\r\n if (this.children === undefined || tiles.length !== this.children.length)\r\n return false;\r\n for (const tile of tiles)\r\n if (tile.parent !== this)\r\n return false;\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n protected getLoadedRealityChildren(args: TileDrawArgs): boolean {\r\n if (this._childrenLoadStatus !== TileTreeLoadStatus.Loaded || this.realityChildren === undefined)\r\n return false;\r\n\r\n for (const child of this.realityChildren) {\r\n if (child.isReady && child.computeVisibilityFactor(args) > 0) {\r\n scratchLoadedChildren.push(child);\r\n } else if (!child.getLoadedRealityChildren(args))\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public forceSelectRealityTile(): boolean { return false; }\r\n\r\n /** @internal */\r\n public selectRealityTiles(context: TraversalSelectionContext, args: TileDrawArgs, traversalDetails: TraversalDetails) {\r\n const visibility = this.computeVisibilityFactor(args);\r\n if (visibility < 0)\r\n return;\r\n\r\n if (this.realityRoot.loader.forceTileLoad(this) && !this.isReady) {\r\n context.selectOrQueue(this, args, traversalDetails); // Force loading if loader requires this tile. (cesium terrain visibility).\r\n return;\r\n }\r\n\r\n if (visibility >= 1 && this.noContentButTerminateOnSelection)\r\n return;\r\n\r\n if (this.isDisplayable && (visibility >= 1 || this._anyChildNotFound || this.forceSelectRealityTile() || context.selectionCountExceeded)) {\r\n if (!this.isOccluded(args.viewingSpace)) {\r\n context.selectOrQueue(this, args, traversalDetails);\r\n\r\n if (!this.isReady) { // This tile is visible but not loaded - Use higher resolution children if present\r\n if (this.getLoadedRealityChildren(args))\r\n context.select(scratchLoadedChildren, args);\r\n scratchLoadedChildren.length = 0;\r\n }\r\n }\r\n } else {\r\n if (this.additiveRefinement && this.isDisplayable && !this.useAdditiveRefinementStepchildren())\r\n context.selectOrQueue(this, args, traversalDetails); // With additive refinement it is necessary to display this tile along with any displayed children.\r\n\r\n this.selectRealityChildren(context, args, traversalDetails);\r\n if (this.isReady && (traversalDetails.childrenLoading || 0 !== traversalDetails.queuedChildren.length)) {\r\n const minimumVisibleFactor = .25; // If the tile has not yet been displayed in this viewport -- display only if it is within 25% of visible. Avoid overly tiles popping into view unexpectedly (terrain)\r\n\r\n if (visibility > minimumVisibleFactor || this._everDisplayed)\r\n context.selectOrQueue(this, args, traversalDetails);\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n public purgeContents(olderThan: BeTimePoint): void {\r\n // Discard contents of tiles that have not been \"used\" recently, where \"used\" may mean: selected/preloaded for display or content requested.\r\n // Note we do not discard the child Tile objects themselves.\r\n if (this.usageMarker.isExpired(olderThan))\r\n this.disposeContents();\r\n\r\n const children = this.realityChildren;\r\n if (children)\r\n for (const child of children)\r\n child.purgeContents(olderThan);\r\n }\r\n\r\n /** @internal */\r\n public computeVisibilityFactor(args: TileDrawArgs): number {\r\n if (this.isEmpty)\r\n return -1;\r\n\r\n if (this.rangeCorners)\r\n scratchFrustum.setFromCorners(this.rangeCorners);\r\n else\r\n Frustum.fromRange(this.range, scratchFrustum);\r\n\r\n if (this.isFrustumCulled(scratchFrustum, args, true, this.boundingSphere))\r\n return -1;\r\n\r\n // some nodes are merely for structure and don't have any geometry\r\n if (0 === this.maximumSize)\r\n return 0;\r\n\r\n if (this.isLeaf)\r\n return this.hasContentRange && this.isContentCulled(args) ? -1 : 1;\r\n\r\n return this.maximumSize / args.getPixelSize(this);\r\n }\r\n\r\n /** @internal */\r\n public preloadTilesInFrustum(args: TileDrawArgs, context: TraversalSelectionContext, preloadSizeModifier: number) {\r\n const visibility = this.computeVisibilityFactor(args);\r\n if (visibility < 0)\r\n return;\r\n\r\n if (visibility * preloadSizeModifier > 1) {\r\n if (this.isDisplayable)\r\n context.preload(this, args);\r\n } else {\r\n const childrenLoadStatus = this.loadChildren(); // NB: asynchronous\r\n if (TileTreeLoadStatus.Loading === childrenLoadStatus) {\r\n args.markChildrenLoading();\r\n } else if (undefined !== this.realityChildren) {\r\n for (const child of this.realityChildren)\r\n child.preloadTilesInFrustum(args, context, preloadSizeModifier);\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected get _anyChildNotFound(): boolean {\r\n if (undefined !== this.children)\r\n for (const child of this.children)\r\n if (child.isNotFound)\r\n return true;\r\n\r\n return this._childrenLoadStatus === TileTreeLoadStatus.NotFound;\r\n }\r\n\r\n /** @internal */\r\n public override getSizeProjectionCorners(): Point3d[] | undefined {\r\n if (!this.tree.isContentUnbounded)\r\n return undefined; // For a non-global tree use the standard size algorithm.\r\n\r\n // For global tiles (as in OSM buildings) return the range corners or X-Y corners only if bounded by region- this allows an algorithm that uses the area of the projected corners to attenuate horizon tiles.\r\n if (!this.rangeCorners)\r\n return this.range.corners(scratchCorners);\r\n\r\n return this.region ? this.rangeCorners.slice(4) : this.rangeCorners;\r\n }\r\n\r\n /** @internal */\r\n public get isStepChild() { return false; }\r\n\r\n /** @internal */\r\n protected loadAdditiveRefinementChildren(resolve: (children: Tile[]) => void): void {\r\n const region = this.region;\r\n const corners = this.rangeCorners;\r\n if (!region || !corners)\r\n return;\r\n\r\n const maximumSize = this.maximumSize;\r\n const rangeDiagonal = corners[0].distance(corners[3]);\r\n const isLeaf = rangeDiagonal < additiveRefinementThreshold || this.depth > additiveRefinementDepthLimit;\r\n\r\n const stepChildren = new Array<AdditiveRefinementStepChild>();\r\n const latitudeDelta = (region.maxLatitude - region.minLatitude) / 2;\r\n const longitudeDelta = (region.maxLongitude - region.minLongitude) / 2;\r\n const minHeight = region.minHeight;\r\n const maxHeight = region.maxHeight;\r\n\r\n for (let i = 0, minLongitude = region.minLongitude, step = 0; i < 2; i++, minLongitude += longitudeDelta, step++) {\r\n for (let j = 0, minLatitude = region.minLatitude; j < 2; j++, minLatitude += latitudeDelta) {\r\n const childRegion = new RealityTileRegion({ minLatitude, maxLatitude: minLatitude + latitudeDelta, minLongitude, maxLongitude: minLongitude + longitudeDelta, minHeight, maxHeight });\r\n const childRange = childRegion.getRange();\r\n\r\n const contentId = `${this.contentId}_S${step++}`;\r\n const childParams: RealityTileParams = { rangeCorners: childRange.corners, contentId, range: childRange.range, maximumSize, parent: this, additiveRefinement: false, isLeaf, region: childRegion };\r\n\r\n stepChildren.push(new AdditiveRefinementStepChild(childParams, this.realityRoot));\r\n }\r\n }\r\n resolve(stepChildren);\r\n }\r\n\r\n /** @internal */\r\n public override produceGraphics(): RenderGraphic | undefined {\r\n if (undefined === this._reprojectionTransform)\r\n return super.produceGraphics();\r\n\r\n if (undefined === this._reprojectedGraphic && undefined !== this._graphic) {\r\n const branch = new GraphicBranch(false);\r\n branch.add(this._graphic);\r\n this._reprojectedGraphic = IModelApp.renderSystem.createGraphicBranch(branch, this._reprojectionTransform);\r\n }\r\n return this._reprojectedGraphic;\r\n }\r\n\r\n /** @internal */\r\n public get unprojectedGraphic(): RenderGraphic | undefined {\r\n return this._graphic;\r\n }\r\n\r\n /** @internal */\r\n public override disposeContents(): void {\r\n super.disposeContents();\r\n this._reprojectedGraphic = dispose(this._reprojectedGraphic);\r\n }\r\n\r\n /** @internal */\r\n public collectTileGeometry(collector: TileGeometryCollector): void {\r\n const status = collector.collectTile(this);\r\n\r\n switch(status) {\r\n case \"reject\":\r\n return;\r\n\r\n case \"continue\":\r\n if (!this.isLeaf && !this._anyChildNotFound) {\r\n const childrenLoadStatus = this.loadChildren();\r\n if (TileTreeLoadStatus.Loading === childrenLoadStatus) {\r\n collector.markLoading();\r\n } else if (undefined !== this.realityChildren && !this._anyChildNotFound) {\r\n for (const child of this.realityChildren)\r\n child.collectTileGeometry(collector);\r\n }\r\n\r\n break;\r\n } // else fall through to \"accept\"\r\n // eslint-disable-next-line no-fallthrough\r\n case \"accept\":\r\n if (!this.isReady)\r\n collector.addMissingTile(this.loadableTile);\r\n else if (this.geometry?.polyfaces)\r\n collector.polyfaces.push(...this.geometry.polyfaces);\r\n\r\n break;\r\n }\r\n }\r\n}\r\n\r\n/** When additive refinement is used (as in the Cesium OSM tileset) it is not possible to accurately reproject very large, low level tiles\r\n * In this case we create additional \"step\" children (grandchildren etc. ) that will clipped portions display the their ancestor's additive geometry.\r\n * These step children are subdivided until they are small enough to be accurately reprojected - this is controlled by the additiveRefinementThreshold (currently 2KM).\r\n * The stepchildren do not contain any tile graphics - they just create a branch with clipping and reprojection to display their additive refinement ancestor graphics.\r\n */\r\nclass AdditiveRefinementStepChild extends RealityTile {\r\n public override get isStepChild() { return true; }\r\n private _loadableTile: RealityTile;\r\n\r\n public constructor(props: RealityTileParams, tree: RealityTileTree) {\r\n super(props, tree);\r\n this._loadableTile = this.realityParent;\r\n for (; this._loadableTile && this._loadableTile.isStepChild; this._loadableTile = this._loadableTile.realityParent)\r\n ;\r\n }\r\n public override get loadableTile(): RealityTile {\r\n return this._loadableTile;\r\n }\r\n public override get isLoading(): boolean { return this._loadableTile.isLoading; }\r\n public override get isQueued(): boolean { return this._loadableTile.isQueued; }\r\n public override get isNotFound(): boolean { return this._loadableTile.isNotFound; }\r\n public override get isReady(): boolean { return this._loadableTile.isReady; }\r\n public override get isLoaded(): boolean { return this._loadableTile.isLoaded; }\r\n public override get isEmpty() { return false; }\r\n public override produceGraphics(): RenderGraphic | undefined {\r\n if (undefined === this._graphic) {\r\n const parentGraphics = this._loadableTile.unprojectedGraphic;\r\n\r\n if (!parentGraphics || !this._reprojectionTransform)\r\n return undefined;\r\n\r\n const branch = new GraphicBranch(false);\r\n branch.add(parentGraphics);\r\n const renderSystem = IModelApp.renderSystem;\r\n const branchOptions: GraphicBranchOptions = {};\r\n if (this.rangeCorners) {\r\n const clipPolygon = [this.rangeCorners[0], this.rangeCorners[1], this.rangeCorners[3], this.rangeCorners[2]];\r\n branchOptions.clipVolume = renderSystem.createClipVolume(ClipVector.create([ClipShape.createShape(clipPolygon, undefined, undefined, this.tree.iModelTransform)!]));\r\n }\r\n this._graphic = renderSystem.createGraphicBranch(branch, this._reprojectionTransform, branchOptions);\r\n }\r\n return this._graphic;\r\n }\r\n\r\n public override markUsed(args: TileDrawArgs): void {\r\n args.markUsed(this);\r\n args.markUsed(this._loadableTile);\r\n }\r\n protected override _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void {\r\n this.loadAdditiveRefinementChildren((stepChildren: Tile[]) => {\r\n if (stepChildren)\r\n this.realityRoot.reprojectAndResolveChildren(this, stepChildren, resolve);\r\n });\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RealityTileLoader.d.ts","sourceRoot":"","sources":["../../../src/tile/RealityTileLoader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAoB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAmC,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGnG,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAkB,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACO,gBAAgB,EAAmG,WAAW,EAAE,kBAAkB,EAAE,IAAI,EACpK,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAC1E,MAAM,YAAY,CAAC;AAOpB;;GAEG;AACH,8BAAsB,iBAAiB;IAKlB,OAAO,CAAC,gBAAgB,CAAC;IAJ5C,OAAO,CAAC,oBAAoB,CAAS;IACrC,SAAgB,yBAAyB,EAAE,MAAM,CAAC;IAClD,SAAgB,wBAAwB,EAAE,MAAM,CAAC;gBAEtB,gBAAgB,CAAC,qBAAS;IAK9C,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM;aAKzF,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC;aAC5D,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB;aACjD,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;IACxG,IAAW,wBAAwB,IAAI,OAAO,CAAkB;IAChE,aAAoB,QAAQ,IAAI,MAAM,CAAC;IACvC,aAAoB,QAAQ,IAAI,MAAM,CAAC;IACvC,aAAoB,QAAQ,IAAI,gBAAgB,CAAC;IACjD,SAAS,KAAK,UAAU,IAAI,SAAS,CAA8B;IACnE,SAAS,KAAK,UAAU,IAAI,OAAO,CAAiB;IAC7C,aAAa,IAAI,gBAAgB,GAAG,SAAS;IACpD,IAAW,kBAAkB,IAAI,OAAO,CAAkB;IAC1D,IAAW,mBAAmB,IAAI,OAAO,CAAsC;IAC/E,IAAW,2BAA2B,IAAI,OAAO,CAAiB;IAC3D,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAEnC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE;IAG7D,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQvJ,OAAO,CAAC,UAAU;IAQL,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAG,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAatH,sBAAsB;IA8DpC,IAAW,iBAAiB,IAAI,iBAAiB,CAAqC;WAExE,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,MAAM;CA4ClH"}
1
+ {"version":3,"file":"RealityTileLoader.d.ts","sourceRoot":"","sources":["../../../src/tile/RealityTileLoader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAoB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAmC,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGnG,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAkB,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACO,gBAAgB,EAAmG,WAAW,EAAE,kBAAkB,EAAE,IAAI,EACpK,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAC1E,MAAM,YAAY,CAAC;AAOpB;;GAEG;AACH,8BAAsB,iBAAiB;IAKlB,OAAO,CAAC,gBAAgB,CAAC;IAJ5C,OAAO,CAAC,oBAAoB,CAAS;IACrC,SAAgB,yBAAyB,EAAE,MAAM,CAAC;IAClD,SAAgB,wBAAwB,EAAE,MAAM,CAAC;gBAEtB,gBAAgB,CAAC,qBAAS;IAK9C,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM;aAKzF,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC;aAC5D,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB;aACjD,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;IACxG,IAAW,wBAAwB,IAAI,OAAO,CAAkB;IAChE,aAAoB,QAAQ,IAAI,MAAM,CAAC;IACvC,aAAoB,QAAQ,IAAI,MAAM,CAAC;IACvC,aAAoB,QAAQ,IAAI,gBAAgB,CAAC;IACjD,SAAS,KAAK,UAAU,IAAI,SAAS,CAA8B;IACnE,SAAS,KAAK,UAAU,IAAI,OAAO,CAAiB;IAC7C,aAAa,IAAI,gBAAgB,GAAG,SAAS;IACpD,IAAW,kBAAkB,IAAI,OAAO,CAAkB;IAC1D,IAAW,mBAAmB,IAAI,OAAO,CAAsC;IAC/E,IAAW,2BAA2B,IAAI,OAAO,CAAiB;IAC3D,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAEnC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE;IAG7D,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQvJ,OAAO,CAAC,UAAU;IAQL,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAG,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAatH,sBAAsB;IAgEpC,IAAW,iBAAiB,IAAI,iBAAiB,CAAqC;WAExE,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,MAAM;CA4ClH"}