@itwin/core-frontend 3.5.0-dev.8 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/CHANGELOG.md +103 -1
  2. package/lib/cjs/AccuSnap.d.ts +7 -1
  3. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  4. package/lib/cjs/AccuSnap.js +26 -3
  5. package/lib/cjs/AccuSnap.js.map +1 -1
  6. package/lib/cjs/BriefcaseConnection.d.ts +28 -1
  7. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  8. package/lib/cjs/BriefcaseConnection.js +29 -8
  9. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  10. package/lib/cjs/BriefcaseTxns.js +9 -9
  11. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  12. package/lib/cjs/GraphicalEditingScope.js +2 -2
  13. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  14. package/lib/cjs/IModelApp.d.ts +6 -0
  15. package/lib/cjs/IModelApp.d.ts.map +1 -1
  16. package/lib/cjs/IModelApp.js +6 -0
  17. package/lib/cjs/IModelApp.js.map +1 -1
  18. package/lib/cjs/IModelConnection.d.ts +32 -2
  19. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  20. package/lib/cjs/IModelConnection.js +44 -6
  21. package/lib/cjs/IModelConnection.js.map +1 -1
  22. package/lib/cjs/IpcApp.d.ts +14 -1
  23. package/lib/cjs/IpcApp.d.ts.map +1 -1
  24. package/lib/cjs/IpcApp.js +25 -0
  25. package/lib/cjs/IpcApp.js.map +1 -1
  26. package/lib/cjs/MarginPercent.d.ts +27 -2
  27. package/lib/cjs/MarginPercent.d.ts.map +1 -1
  28. package/lib/cjs/MarginPercent.js +8 -2
  29. package/lib/cjs/MarginPercent.js.map +1 -1
  30. package/lib/cjs/ModelState.d.ts +2 -1
  31. package/lib/cjs/ModelState.d.ts.map +1 -1
  32. package/lib/cjs/ModelState.js +5 -3
  33. package/lib/cjs/ModelState.js.map +1 -1
  34. package/lib/cjs/NativeApp.d.ts +5 -1
  35. package/lib/cjs/NativeApp.d.ts.map +1 -1
  36. package/lib/cjs/NativeApp.js +25 -20
  37. package/lib/cjs/NativeApp.js.map +1 -1
  38. package/lib/cjs/NativeAppLogger.js +1 -1
  39. package/lib/cjs/NativeAppLogger.js.map +1 -1
  40. package/lib/cjs/RealityDataSource.d.ts +44 -1
  41. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  42. package/lib/cjs/RealityDataSource.js +41 -14
  43. package/lib/cjs/RealityDataSource.js.map +1 -1
  44. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +1 -0
  45. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  46. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +3 -0
  47. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  48. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts +1 -0
  49. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts.map +1 -1
  50. package/lib/cjs/RealityDataSourceContextShareImpl.js +3 -0
  51. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  52. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +1 -0
  53. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
  54. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +3 -0
  55. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  56. package/lib/cjs/ViewAnimation.d.ts +10 -2
  57. package/lib/cjs/ViewAnimation.d.ts.map +1 -1
  58. package/lib/cjs/ViewAnimation.js.map +1 -1
  59. package/lib/cjs/ViewCreator2d.js +3 -2
  60. package/lib/cjs/ViewCreator2d.js.map +1 -1
  61. package/lib/cjs/ViewPose.d.ts +62 -10
  62. package/lib/cjs/ViewPose.d.ts.map +1 -1
  63. package/lib/cjs/ViewPose.js +37 -8
  64. package/lib/cjs/ViewPose.js.map +1 -1
  65. package/lib/cjs/ViewState.d.ts +18 -10
  66. package/lib/cjs/ViewState.d.ts.map +1 -1
  67. package/lib/cjs/ViewState.js +39 -15
  68. package/lib/cjs/ViewState.js.map +1 -1
  69. package/lib/cjs/Viewport.d.ts.map +1 -1
  70. package/lib/cjs/Viewport.js +7 -2
  71. package/lib/cjs/Viewport.js.map +1 -1
  72. package/lib/cjs/extension/ExtensionRuntime.js +13 -0
  73. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  74. package/lib/cjs/render/GraphicBranch.d.ts +3 -0
  75. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  76. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  77. package/lib/cjs/render/RealityMeshParams.d.ts +3 -4
  78. package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
  79. package/lib/cjs/render/RealityMeshParams.js +9 -3
  80. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  81. package/lib/cjs/render/RenderMaterial.d.ts +3 -1
  82. package/lib/cjs/render/RenderMaterial.d.ts.map +1 -1
  83. package/lib/cjs/render/RenderMaterial.js.map +1 -1
  84. package/lib/cjs/render/RenderTarget.d.ts +1 -0
  85. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  86. package/lib/cjs/render/RenderTarget.js.map +1 -1
  87. package/lib/cjs/render/primitives/SurfaceParams.d.ts +0 -1
  88. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +1 -1
  89. package/lib/cjs/render/primitives/SurfaceParams.js.map +1 -1
  90. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  91. package/lib/cjs/render/primitives/VertexTable.js +0 -1
  92. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  93. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  94. package/lib/cjs/render/primitives/VertexTableSplitter.js +0 -1
  95. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -1
  96. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +0 -1
  97. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  98. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +0 -1
  99. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  100. package/lib/cjs/render/webgl/BackgroundMapDrape.js +2 -2
  101. package/lib/cjs/render/webgl/CachedGeometry.d.ts +32 -0
  102. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  103. package/lib/cjs/render/webgl/CachedGeometry.js +74 -1
  104. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  105. package/lib/cjs/render/webgl/DrawCommand.js +3 -3
  106. package/lib/cjs/render/webgl/EDL.d.ts +40 -0
  107. package/lib/cjs/render/webgl/EDL.d.ts.map +1 -0
  108. package/lib/cjs/render/webgl/EDL.js +264 -0
  109. package/lib/cjs/render/webgl/EDL.js.map +1 -0
  110. package/lib/cjs/render/webgl/EdgeSettings.js +2 -2
  111. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +0 -1
  112. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  113. package/lib/cjs/render/webgl/FeatureOverrides.js +16 -11
  114. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  115. package/lib/cjs/render/webgl/FrameBuffer.d.ts +4 -0
  116. package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
  117. package/lib/cjs/render/webgl/FrameBuffer.js +9 -0
  118. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  119. package/lib/cjs/render/webgl/FrustumUniforms.d.ts +7 -0
  120. package/lib/cjs/render/webgl/FrustumUniforms.d.ts.map +1 -1
  121. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  122. package/lib/cjs/render/webgl/Layer.js +2 -2
  123. package/lib/cjs/render/webgl/LayerCommands.js +2 -2
  124. package/lib/cjs/render/webgl/MeshData.d.ts +1 -1
  125. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  126. package/lib/cjs/render/webgl/MeshData.js +13 -1
  127. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  128. package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
  129. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
  130. package/lib/cjs/render/webgl/MeshGeometry.js +1 -1
  131. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -1
  132. package/lib/cjs/render/webgl/PlanarClassifier.js +7 -7
  133. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  134. package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
  135. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  136. package/lib/cjs/render/webgl/PointCloud.js +2 -0
  137. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  138. package/lib/cjs/render/webgl/RealityMesh.d.ts +3 -1
  139. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  140. package/lib/cjs/render/webgl/RealityMesh.js +8 -3
  141. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  142. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts +9 -0
  143. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts.map +1 -1
  144. package/lib/cjs/render/webgl/RealityModelUniforms.js +50 -0
  145. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
  146. package/lib/cjs/render/webgl/RenderCommands.js +30 -30
  147. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  148. package/lib/cjs/render/webgl/RenderFlags.d.ts +33 -21
  149. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  150. package/lib/cjs/render/webgl/RenderFlags.js +10 -6
  151. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  152. package/lib/cjs/render/webgl/SceneCompositor.d.ts +5 -0
  153. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  154. package/lib/cjs/render/webgl/SceneCompositor.js +192 -73
  155. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  156. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +2 -1
  157. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  158. package/lib/cjs/render/webgl/ShaderBuilder.js +6 -1
  159. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  160. package/lib/cjs/render/webgl/SolarShadowMap.js +2 -2
  161. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +3 -1
  162. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  163. package/lib/cjs/render/webgl/SurfaceGeometry.js +22 -11
  164. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  165. package/lib/cjs/render/webgl/System.d.ts +1 -1
  166. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  167. package/lib/cjs/render/webgl/System.js +1 -0
  168. package/lib/cjs/render/webgl/System.js.map +1 -1
  169. package/lib/cjs/render/webgl/Target.d.ts +1 -0
  170. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  171. package/lib/cjs/render/webgl/Target.js +4 -3
  172. package/lib/cjs/render/webgl/Target.js.map +1 -1
  173. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  174. package/lib/cjs/render/webgl/Technique.js +18 -3
  175. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  176. package/lib/cjs/render/webgl/TechniqueFlags.js +4 -4
  177. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  178. package/lib/cjs/render/webgl/TechniqueId.d.ts +6 -2
  179. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  180. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  181. package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
  182. package/lib/cjs/render/webgl/UniformHandle.js +1 -2
  183. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  184. package/lib/cjs/render/webgl/VisibleTileFeatures.js +5 -5
  185. package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
  186. package/lib/cjs/render/webgl/glsl/Animation.js +2 -1
  187. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  188. package/lib/cjs/render/webgl/glsl/Common.d.ts +3 -1
  189. package/lib/cjs/render/webgl/glsl/Common.d.ts.map +1 -1
  190. package/lib/cjs/render/webgl/glsl/Common.js +28 -33
  191. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  192. package/lib/cjs/render/webgl/glsl/EDL.d.ts +14 -0
  193. package/lib/cjs/render/webgl/glsl/EDL.d.ts.map +1 -0
  194. package/lib/cjs/render/webgl/glsl/EDL.js +260 -0
  195. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -0
  196. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  197. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +9 -1
  198. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  199. package/lib/cjs/render/webgl/glsl/Lighting.d.ts.map +1 -1
  200. package/lib/cjs/render/webgl/glsl/Lighting.js +6 -8
  201. package/lib/cjs/render/webgl/glsl/Lighting.js.map +1 -1
  202. package/lib/cjs/render/webgl/glsl/PointCloud.d.ts.map +1 -1
  203. package/lib/cjs/render/webgl/glsl/PointCloud.js +8 -3
  204. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  205. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts +1 -0
  206. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  207. package/lib/cjs/render/webgl/glsl/RealityMesh.js +6 -1
  208. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  209. package/lib/cjs/render/webgl/glsl/RenderPass.js +12 -12
  210. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  211. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.d.ts.map +1 -1
  212. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +1 -4
  213. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  214. package/lib/cjs/render/webgl/glsl/Surface.d.ts +1 -1
  215. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  216. package/lib/cjs/render/webgl/glsl/Surface.js +87 -15
  217. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  218. package/lib/cjs/render/webgl/glsl/Thematic.d.ts.map +1 -1
  219. package/lib/cjs/render/webgl/glsl/Thematic.js +2 -6
  220. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  221. package/lib/cjs/tile/DynamicIModelTile.js +1 -1
  222. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  223. package/lib/cjs/tile/GltfReader.d.ts +13 -2
  224. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  225. package/lib/cjs/tile/GltfReader.js +67 -23
  226. package/lib/cjs/tile/GltfReader.js.map +1 -1
  227. package/lib/cjs/tile/IModelTile.js +1 -1
  228. package/lib/cjs/tile/IModelTile.js.map +1 -1
  229. package/lib/cjs/tile/IModelTileRequestChannels.js +1 -1
  230. package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
  231. package/lib/cjs/tile/ImdlReader.d.ts +5 -0
  232. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  233. package/lib/cjs/tile/ImdlReader.js +14 -7
  234. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  235. package/lib/cjs/tile/PrimaryTileTree.js +2 -2
  236. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  237. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  238. package/lib/cjs/tile/RealityModelTileTree.js +52 -20
  239. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  240. package/lib/cjs/tile/RealityTile.d.ts +2 -2
  241. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  242. package/lib/cjs/tile/RealityTile.js +11 -4
  243. package/lib/cjs/tile/RealityTile.js.map +1 -1
  244. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -0
  245. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  246. package/lib/cjs/tile/RealityTileLoader.js +15 -2
  247. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  248. package/lib/cjs/tile/RealityTileTree.js +1 -1
  249. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  250. package/lib/cjs/tile/Tile.d.ts +5 -0
  251. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  252. package/lib/cjs/tile/Tile.js +5 -0
  253. package/lib/cjs/tile/Tile.js.map +1 -1
  254. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  255. package/lib/cjs/tile/TileAdmin.js +13 -6
  256. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  257. package/lib/cjs/tile/TileDrawArgs.d.ts +5 -1
  258. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  259. package/lib/cjs/tile/TileDrawArgs.js +2 -0
  260. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  261. package/lib/cjs/tile/TileRequestChannels.js +1 -1
  262. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  263. package/lib/cjs/tile/TileStorage.d.ts.map +1 -1
  264. package/lib/cjs/tile/TileStorage.js +12 -6
  265. package/lib/cjs/tile/TileStorage.js.map +1 -1
  266. package/lib/cjs/tile/internal.d.ts +1 -0
  267. package/lib/cjs/tile/internal.d.ts.map +1 -1
  268. package/lib/cjs/tile/internal.js +1 -0
  269. package/lib/cjs/tile/internal.js.map +1 -1
  270. package/lib/cjs/tile/map/ArcGISTileMap.d.ts +5 -2
  271. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -1
  272. package/lib/cjs/tile/map/ArcGISTileMap.js +17 -2
  273. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  274. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +51 -5
  275. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  276. package/lib/cjs/tile/map/ArcGisUtilities.js +120 -48
  277. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  278. package/lib/cjs/tile/map/CesiumTerrainProvider.js +9 -9
  279. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  280. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +26 -0
  281. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -0
  282. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +97 -0
  283. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -0
  284. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -4
  285. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  286. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +11 -96
  287. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  288. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  289. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -1
  290. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  291. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -0
  292. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  293. package/lib/cjs/tile/map/ImageryTileTree.js +6 -4
  294. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  295. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +18 -4
  296. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  297. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +25 -5
  298. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  299. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +6 -4
  300. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  301. package/lib/cjs/tile/map/MapLayerImageryFormats.js +12 -16
  302. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  303. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +26 -5
  304. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  305. package/lib/cjs/tile/map/MapLayerImageryProvider.js +69 -48
  306. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  307. package/lib/cjs/tile/map/MapLayerSources.js +1 -1
  308. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  309. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  310. package/lib/cjs/tile/map/WmsCapabilities.js +4 -1
  311. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  312. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  313. package/lib/cjs/tools/EditManipulator.js +2 -1
  314. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  315. package/lib/cjs/tools/Tool.js +1 -1
  316. package/lib/cjs/tools/Tool.js.map +1 -1
  317. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  318. package/lib/cjs/tools/ToolAdmin.js +6 -4
  319. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  320. package/lib/esm/AccuSnap.d.ts +7 -1
  321. package/lib/esm/AccuSnap.d.ts.map +1 -1
  322. package/lib/esm/AccuSnap.js +27 -4
  323. package/lib/esm/AccuSnap.js.map +1 -1
  324. package/lib/esm/BriefcaseConnection.d.ts +28 -1
  325. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  326. package/lib/esm/BriefcaseConnection.js +30 -9
  327. package/lib/esm/BriefcaseConnection.js.map +1 -1
  328. package/lib/esm/BriefcaseTxns.js +9 -9
  329. package/lib/esm/BriefcaseTxns.js.map +1 -1
  330. package/lib/esm/GraphicalEditingScope.js +2 -2
  331. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  332. package/lib/esm/IModelApp.d.ts +6 -0
  333. package/lib/esm/IModelApp.d.ts.map +1 -1
  334. package/lib/esm/IModelApp.js +6 -0
  335. package/lib/esm/IModelApp.js.map +1 -1
  336. package/lib/esm/IModelConnection.d.ts +32 -2
  337. package/lib/esm/IModelConnection.d.ts.map +1 -1
  338. package/lib/esm/IModelConnection.js +44 -6
  339. package/lib/esm/IModelConnection.js.map +1 -1
  340. package/lib/esm/IpcApp.d.ts +14 -1
  341. package/lib/esm/IpcApp.d.ts.map +1 -1
  342. package/lib/esm/IpcApp.js +25 -0
  343. package/lib/esm/IpcApp.js.map +1 -1
  344. package/lib/esm/MarginPercent.d.ts +27 -2
  345. package/lib/esm/MarginPercent.d.ts.map +1 -1
  346. package/lib/esm/MarginPercent.js +8 -2
  347. package/lib/esm/MarginPercent.js.map +1 -1
  348. package/lib/esm/ModelState.d.ts +2 -1
  349. package/lib/esm/ModelState.d.ts.map +1 -1
  350. package/lib/esm/ModelState.js +5 -3
  351. package/lib/esm/ModelState.js.map +1 -1
  352. package/lib/esm/NativeApp.d.ts +5 -1
  353. package/lib/esm/NativeApp.d.ts.map +1 -1
  354. package/lib/esm/NativeApp.js +25 -20
  355. package/lib/esm/NativeApp.js.map +1 -1
  356. package/lib/esm/NativeAppLogger.js +1 -1
  357. package/lib/esm/NativeAppLogger.js.map +1 -1
  358. package/lib/esm/RealityDataSource.d.ts +44 -1
  359. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  360. package/lib/esm/RealityDataSource.js +39 -13
  361. package/lib/esm/RealityDataSource.js.map +1 -1
  362. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +1 -0
  363. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  364. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +3 -0
  365. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  366. package/lib/esm/RealityDataSourceContextShareImpl.d.ts +1 -0
  367. package/lib/esm/RealityDataSourceContextShareImpl.d.ts.map +1 -1
  368. package/lib/esm/RealityDataSourceContextShareImpl.js +3 -0
  369. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  370. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +1 -0
  371. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
  372. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +3 -0
  373. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  374. package/lib/esm/ViewAnimation.d.ts +10 -2
  375. package/lib/esm/ViewAnimation.d.ts.map +1 -1
  376. package/lib/esm/ViewAnimation.js.map +1 -1
  377. package/lib/esm/ViewCreator2d.js +3 -2
  378. package/lib/esm/ViewCreator2d.js.map +1 -1
  379. package/lib/esm/ViewPose.d.ts +62 -10
  380. package/lib/esm/ViewPose.d.ts.map +1 -1
  381. package/lib/esm/ViewPose.js +37 -8
  382. package/lib/esm/ViewPose.js.map +1 -1
  383. package/lib/esm/ViewState.d.ts +18 -10
  384. package/lib/esm/ViewState.d.ts.map +1 -1
  385. package/lib/esm/ViewState.js +39 -15
  386. package/lib/esm/ViewState.js.map +1 -1
  387. package/lib/esm/Viewport.d.ts.map +1 -1
  388. package/lib/esm/Viewport.js +7 -2
  389. package/lib/esm/Viewport.js.map +1 -1
  390. package/lib/esm/extension/ExtensionRuntime.js +15 -2
  391. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  392. package/lib/esm/render/GraphicBranch.d.ts +3 -0
  393. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  394. package/lib/esm/render/GraphicBranch.js.map +1 -1
  395. package/lib/esm/render/RealityMeshParams.d.ts +3 -4
  396. package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
  397. package/lib/esm/render/RealityMeshParams.js +10 -4
  398. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  399. package/lib/esm/render/RenderMaterial.d.ts +3 -1
  400. package/lib/esm/render/RenderMaterial.d.ts.map +1 -1
  401. package/lib/esm/render/RenderMaterial.js.map +1 -1
  402. package/lib/esm/render/RenderTarget.d.ts +1 -0
  403. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  404. package/lib/esm/render/RenderTarget.js.map +1 -1
  405. package/lib/esm/render/primitives/SurfaceParams.d.ts +0 -1
  406. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +1 -1
  407. package/lib/esm/render/primitives/SurfaceParams.js.map +1 -1
  408. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  409. package/lib/esm/render/primitives/VertexTable.js +0 -1
  410. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  411. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  412. package/lib/esm/render/primitives/VertexTableSplitter.js +0 -1
  413. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -1
  414. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +0 -1
  415. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  416. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +0 -1
  417. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  418. package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
  419. package/lib/esm/render/webgl/CachedGeometry.d.ts +32 -0
  420. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  421. package/lib/esm/render/webgl/CachedGeometry.js +69 -0
  422. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  423. package/lib/esm/render/webgl/DrawCommand.js +3 -3
  424. package/lib/esm/render/webgl/EDL.d.ts +40 -0
  425. package/lib/esm/render/webgl/EDL.d.ts.map +1 -0
  426. package/lib/esm/render/webgl/EDL.js +260 -0
  427. package/lib/esm/render/webgl/EDL.js.map +1 -0
  428. package/lib/esm/render/webgl/EdgeSettings.js +2 -2
  429. package/lib/esm/render/webgl/FeatureOverrides.d.ts +0 -1
  430. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  431. package/lib/esm/render/webgl/FeatureOverrides.js +16 -11
  432. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  433. package/lib/esm/render/webgl/FrameBuffer.d.ts +4 -0
  434. package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
  435. package/lib/esm/render/webgl/FrameBuffer.js +9 -0
  436. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  437. package/lib/esm/render/webgl/FrustumUniforms.d.ts +7 -0
  438. package/lib/esm/render/webgl/FrustumUniforms.d.ts.map +1 -1
  439. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  440. package/lib/esm/render/webgl/Layer.js +2 -2
  441. package/lib/esm/render/webgl/LayerCommands.js +2 -2
  442. package/lib/esm/render/webgl/MeshData.d.ts +1 -1
  443. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  444. package/lib/esm/render/webgl/MeshData.js +13 -1
  445. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  446. package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
  447. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
  448. package/lib/esm/render/webgl/MeshGeometry.js +1 -1
  449. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -1
  450. package/lib/esm/render/webgl/PlanarClassifier.js +7 -7
  451. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  452. package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
  453. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  454. package/lib/esm/render/webgl/PointCloud.js +2 -0
  455. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  456. package/lib/esm/render/webgl/RealityMesh.d.ts +3 -1
  457. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  458. package/lib/esm/render/webgl/RealityMesh.js +8 -3
  459. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  460. package/lib/esm/render/webgl/RealityModelUniforms.d.ts +9 -0
  461. package/lib/esm/render/webgl/RealityModelUniforms.d.ts.map +1 -1
  462. package/lib/esm/render/webgl/RealityModelUniforms.js +50 -0
  463. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
  464. package/lib/esm/render/webgl/RenderCommands.js +30 -30
  465. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  466. package/lib/esm/render/webgl/RenderFlags.d.ts +33 -21
  467. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  468. package/lib/esm/render/webgl/RenderFlags.js +10 -6
  469. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  470. package/lib/esm/render/webgl/SceneCompositor.d.ts +5 -0
  471. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  472. package/lib/esm/render/webgl/SceneCompositor.js +191 -74
  473. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  474. package/lib/esm/render/webgl/ShaderBuilder.d.ts +2 -1
  475. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  476. package/lib/esm/render/webgl/ShaderBuilder.js +6 -1
  477. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  478. package/lib/esm/render/webgl/SolarShadowMap.js +2 -2
  479. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +3 -1
  480. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  481. package/lib/esm/render/webgl/SurfaceGeometry.js +22 -11
  482. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  483. package/lib/esm/render/webgl/System.d.ts +1 -1
  484. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  485. package/lib/esm/render/webgl/System.js +1 -0
  486. package/lib/esm/render/webgl/System.js.map +1 -1
  487. package/lib/esm/render/webgl/Target.d.ts +1 -0
  488. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  489. package/lib/esm/render/webgl/Target.js +4 -3
  490. package/lib/esm/render/webgl/Target.js.map +1 -1
  491. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  492. package/lib/esm/render/webgl/Technique.js +18 -3
  493. package/lib/esm/render/webgl/Technique.js.map +1 -1
  494. package/lib/esm/render/webgl/TechniqueFlags.js +4 -4
  495. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  496. package/lib/esm/render/webgl/TechniqueId.d.ts +6 -2
  497. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  498. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  499. package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
  500. package/lib/esm/render/webgl/UniformHandle.js +1 -2
  501. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  502. package/lib/esm/render/webgl/VisibleTileFeatures.js +5 -5
  503. package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
  504. package/lib/esm/render/webgl/glsl/Animation.js +2 -1
  505. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  506. package/lib/esm/render/webgl/glsl/Common.d.ts +3 -1
  507. package/lib/esm/render/webgl/glsl/Common.d.ts.map +1 -1
  508. package/lib/esm/render/webgl/glsl/Common.js +25 -31
  509. package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
  510. package/lib/esm/render/webgl/glsl/EDL.d.ts +14 -0
  511. package/lib/esm/render/webgl/glsl/EDL.d.ts.map +1 -0
  512. package/lib/esm/render/webgl/glsl/EDL.js +253 -0
  513. package/lib/esm/render/webgl/glsl/EDL.js.map +1 -0
  514. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  515. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +9 -1
  516. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  517. package/lib/esm/render/webgl/glsl/Lighting.d.ts.map +1 -1
  518. package/lib/esm/render/webgl/glsl/Lighting.js +6 -8
  519. package/lib/esm/render/webgl/glsl/Lighting.js.map +1 -1
  520. package/lib/esm/render/webgl/glsl/PointCloud.d.ts.map +1 -1
  521. package/lib/esm/render/webgl/glsl/PointCloud.js +8 -3
  522. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  523. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts +1 -0
  524. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  525. package/lib/esm/render/webgl/glsl/RealityMesh.js +5 -0
  526. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  527. package/lib/esm/render/webgl/glsl/RenderPass.js +12 -12
  528. package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
  529. package/lib/esm/render/webgl/glsl/SolarShadowMapping.d.ts.map +1 -1
  530. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +1 -4
  531. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  532. package/lib/esm/render/webgl/glsl/Surface.d.ts +1 -1
  533. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  534. package/lib/esm/render/webgl/glsl/Surface.js +88 -16
  535. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  536. package/lib/esm/render/webgl/glsl/Thematic.d.ts.map +1 -1
  537. package/lib/esm/render/webgl/glsl/Thematic.js +2 -6
  538. package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
  539. package/lib/esm/tile/DynamicIModelTile.js +1 -1
  540. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  541. package/lib/esm/tile/GltfReader.d.ts +13 -2
  542. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  543. package/lib/esm/tile/GltfReader.js +67 -23
  544. package/lib/esm/tile/GltfReader.js.map +1 -1
  545. package/lib/esm/tile/IModelTile.js +1 -1
  546. package/lib/esm/tile/IModelTile.js.map +1 -1
  547. package/lib/esm/tile/IModelTileRequestChannels.js +1 -1
  548. package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
  549. package/lib/esm/tile/ImdlReader.d.ts +5 -0
  550. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  551. package/lib/esm/tile/ImdlReader.js +14 -7
  552. package/lib/esm/tile/ImdlReader.js.map +1 -1
  553. package/lib/esm/tile/PrimaryTileTree.js +2 -2
  554. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  555. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  556. package/lib/esm/tile/RealityModelTileTree.js +52 -20
  557. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  558. package/lib/esm/tile/RealityTile.d.ts +2 -2
  559. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  560. package/lib/esm/tile/RealityTile.js +11 -4
  561. package/lib/esm/tile/RealityTile.js.map +1 -1
  562. package/lib/esm/tile/RealityTileLoader.d.ts +1 -0
  563. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  564. package/lib/esm/tile/RealityTileLoader.js +16 -3
  565. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  566. package/lib/esm/tile/RealityTileTree.js +1 -1
  567. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  568. package/lib/esm/tile/Tile.d.ts +5 -0
  569. package/lib/esm/tile/Tile.d.ts.map +1 -1
  570. package/lib/esm/tile/Tile.js +5 -0
  571. package/lib/esm/tile/Tile.js.map +1 -1
  572. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  573. package/lib/esm/tile/TileAdmin.js +13 -6
  574. package/lib/esm/tile/TileAdmin.js.map +1 -1
  575. package/lib/esm/tile/TileDrawArgs.d.ts +5 -1
  576. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  577. package/lib/esm/tile/TileDrawArgs.js +2 -0
  578. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  579. package/lib/esm/tile/TileRequestChannels.js +1 -1
  580. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  581. package/lib/esm/tile/TileStorage.d.ts.map +1 -1
  582. package/lib/esm/tile/TileStorage.js +12 -6
  583. package/lib/esm/tile/TileStorage.js.map +1 -1
  584. package/lib/esm/tile/internal.d.ts +1 -0
  585. package/lib/esm/tile/internal.d.ts.map +1 -1
  586. package/lib/esm/tile/internal.js +1 -0
  587. package/lib/esm/tile/internal.js.map +1 -1
  588. package/lib/esm/tile/map/ArcGISTileMap.d.ts +5 -2
  589. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -1
  590. package/lib/esm/tile/map/ArcGISTileMap.js +18 -3
  591. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  592. package/lib/esm/tile/map/ArcGisUtilities.d.ts +51 -5
  593. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  594. package/lib/esm/tile/map/ArcGisUtilities.js +121 -49
  595. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  596. package/lib/esm/tile/map/CesiumTerrainProvider.js +9 -9
  597. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  598. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +26 -0
  599. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -0
  600. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +93 -0
  601. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -0
  602. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -4
  603. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  604. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +10 -95
  605. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  606. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  607. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -1
  608. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  609. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -0
  610. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  611. package/lib/esm/tile/map/ImageryTileTree.js +6 -4
  612. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  613. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +18 -4
  614. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  615. package/lib/esm/tile/map/MapLayerFormatRegistry.js +26 -6
  616. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  617. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +6 -4
  618. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  619. package/lib/esm/tile/map/MapLayerImageryFormats.js +12 -16
  620. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  621. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +26 -5
  622. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  623. package/lib/esm/tile/map/MapLayerImageryProvider.js +70 -49
  624. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  625. package/lib/esm/tile/map/MapLayerSources.js +1 -1
  626. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  627. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  628. package/lib/esm/tile/map/WmsCapabilities.js +4 -1
  629. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  630. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  631. package/lib/esm/tools/EditManipulator.js +2 -1
  632. package/lib/esm/tools/EditManipulator.js.map +1 -1
  633. package/lib/esm/tools/Tool.js +1 -1
  634. package/lib/esm/tools/Tool.js.map +1 -1
  635. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  636. package/lib/esm/tools/ToolAdmin.js +6 -4
  637. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  638. package/package.json +25 -23
  639. package/lib/cjs/tile/object-storage-azure.js +0 -5
  640. package/lib/esm/tile/object-storage-azure.js +0 -5
@@ -67,7 +67,7 @@ class IModelTile extends internal_1.Tile {
67
67
  (0, core_bentley_1.assert)(data instanceof Uint8Array);
68
68
  const streamBuffer = core_bentley_1.ByteStream.fromUint8Array(data);
69
69
  const position = streamBuffer.curPos;
70
- const format = streamBuffer.nextUint32;
70
+ const format = streamBuffer.readUint32();
71
71
  streamBuffer.curPos = position;
72
72
  let content = { isLeaf: true };
73
73
  (0, core_bentley_1.assert)(core_common_1.TileFormat.IModel === format);
@@ -1 +1 @@
1
- {"version":3,"file":"IModelTile.js","sourceRoot":"","sources":["../../../src/tile/IModelTile.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, BentleyError, BeTimePoint, ByteStream } from \"@itwin/core-bentley\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, computeChildTileProps, computeChildTileRanges, computeTileChordTolerance, ElementAlignedBox3d, LinePixels, TileFormat, TileProps,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport {\r\n addRangeGraphic, ImdlReader, IModelTileTree, Tile, TileBoundingBoxes, TileContent, TileDrawArgs, TileLoadStatus, TileParams, TileRequest,\r\n TileRequestChannel, TileTreeLoadStatus, TileVisibility,\r\n} from \"./internal\";\r\n\r\n/** Parameters used to construct an [[IModelTile]].\r\n * @internal\r\n */\r\nexport interface IModelTileParams extends TileParams {\r\n sizeMultiplier?: number;\r\n}\r\n\r\n/** @internal */\r\nexport function iModelTileParamsFromJSON(props: TileProps, parent: IModelTile | undefined): IModelTileParams {\r\n const { contentId, maximumSize, isLeaf, sizeMultiplier } = props;\r\n const range = Range3d.fromJSON(props.range);\r\n\r\n let contentRange;\r\n if (undefined !== props.contentRange)\r\n contentRange = Range3d.fromJSON<ElementAlignedBox3d>(props.contentRange);\r\n\r\n return { contentId, range, maximumSize, isLeaf, parent, contentRange, sizeMultiplier };\r\n}\r\n\r\n/**\r\n * Indicates whether a parent tile should be drawn in place of a child tile.\r\n * @internal\r\n */\r\nexport enum SelectParent {\r\n No,\r\n Yes,\r\n}\r\n\r\n/** @internal */\r\nexport interface IModelTileContent extends TileContent {\r\n /** If this tile was produced by refinement, the multiplier applied to its screen size. */\r\n sizeMultiplier?: number;\r\n /** A bitfield describing empty sub-volumes of this tile's volume. */\r\n emptySubRangeMask?: number;\r\n}\r\n\r\n/** A tile belonging to an [[IModelTileTree].\r\n * @internal\r\n */\r\nexport class IModelTile extends Tile {\r\n private _sizeMultiplier?: number;\r\n private _emptySubRangeMask?: number;\r\n /** If an initial attempt to obtain this tile's content (e.g., from cloud storage cache) failed,\r\n * the next channel to try.\r\n */\r\n public requestChannel?: TileRequestChannel;\r\n\r\n public constructor(params: IModelTileParams, tree: IModelTileTree) {\r\n super(params, tree);\r\n this._sizeMultiplier = params.sizeMultiplier;\r\n\r\n if (!this.isLeaf && this.tree.is3d && !this.isReady) { // ###TODO: Want to know specifically if tree is *spatial*.\r\n // Do not sub-divide such that chord tolerance would be below specified minimum, if minimum defined.\r\n const minTolerance = IModelApp.tileAdmin.minimumSpatialTolerance;\r\n if (minTolerance > 0 && computeTileChordTolerance(this, this.tree.is3d, this.iModelTree.tileScreenSize) <= minTolerance)\r\n this.setLeaf();\r\n }\r\n }\r\n\r\n public get iModelTree(): IModelTileTree { return this.tree as IModelTileTree; }\r\n public get iModelChildren(): IModelTile[] | undefined { return this.children as IModelTile[] | undefined; }\r\n public get emptySubRangeMask(): number { return this._emptySubRangeMask ?? 0; }\r\n\r\n public get sizeMultiplier(): number | undefined { return this._sizeMultiplier; }\r\n public get hasSizeMultiplier() { return undefined !== this.sizeMultiplier; }\r\n public override get maximumSize(): number {\r\n return super.maximumSize * (this.sizeMultiplier ?? 1.0);\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n return IModelApp.tileAdmin.channels.getIModelTileChannel(this);\r\n }\r\n\r\n public async requestContent(): Promise<TileRequest.Response> {\r\n return IModelApp.tileAdmin.generateTileContent(this);\r\n }\r\n\r\n public async readContent(data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<IModelTileContent> {\r\n if (undefined === isCanceled)\r\n isCanceled = () => !this.isLoading;\r\n\r\n assert(data instanceof Uint8Array);\r\n const streamBuffer = ByteStream.fromUint8Array(data);\r\n\r\n const position = streamBuffer.curPos;\r\n const format = streamBuffer.nextUint32;\r\n streamBuffer.curPos = position;\r\n\r\n let content: IModelTileContent = { isLeaf: true };\r\n assert(TileFormat.IModel === format);\r\n if (format !== TileFormat.IModel)\r\n return content;\r\n\r\n const tree = this.iModelTree;\r\n const sizeMultiplier = this.hasSizeMultiplier ? this.sizeMultiplier : undefined;\r\n const { iModel, modelId, is3d, containsTransformNodes } = tree;\r\n const reader = ImdlReader.create({\r\n stream: streamBuffer,\r\n type: tree.batchType,\r\n loadEdges: false !== tree.edgeOptions,\r\n options: { tileId: this.contentId },\r\n timeline: tree.timeline,\r\n iModel, modelId, is3d, system, isCanceled, sizeMultiplier, containsTransformNodes,\r\n });\r\n\r\n if (undefined !== reader) {\r\n try {\r\n content = await reader.read();\r\n } catch {\r\n //\r\n }\r\n }\r\n\r\n return content;\r\n }\r\n\r\n public override setContent(content: IModelTileContent): void {\r\n super.setContent(content);\r\n\r\n this._emptySubRangeMask = content.emptySubRangeMask;\r\n\r\n // NB: If this tile has no graphics, it may or may not have children - but we don't want to load the children until\r\n // this tile is too coarse for view based on its size in pixels.\r\n // That is different than an \"undisplayable\" tile (maximumSize=0) whose children should be loaded immediately.\r\n if (undefined !== content.graphic && 0 === this.maximumSize)\r\n this._maximumSize = this.iModelTree.tileScreenSize;\r\n\r\n const sizeMult = content.sizeMultiplier;\r\n if (undefined !== sizeMult && (undefined === this._sizeMultiplier || sizeMult > this._sizeMultiplier)) {\r\n this._sizeMultiplier = sizeMult;\r\n this._contentId = this.iModelTree.contentIdProvider.idFromParentAndMultiplier(this.contentId, sizeMult);\r\n if (undefined !== this.children && this.children.length > 1)\r\n this.disposeChildren();\r\n }\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[]) => void, reject: (error: Error) => void): void {\r\n try {\r\n const tree = this.iModelTree;\r\n const kids = computeChildTileProps(this, tree.contentIdProvider, tree);\r\n IModelApp.tileAdmin.onTilesElided(kids.numEmpty);\r\n\r\n const children: IModelTile[] = [];\r\n for (const props of kids.children) {\r\n const child = new IModelTile(iModelTileParamsFromJSON(props, this), tree);\r\n children.push(child);\r\n }\r\n\r\n resolve(children);\r\n } catch (err) {\r\n reject(err instanceof Error ? err : new Error(BentleyError.getErrorMessage(err)));\r\n }\r\n }\r\n\r\n protected override get rangeGraphicColor(): ColorDef {\r\n return this.hasSizeMultiplier ? ColorDef.red : super.rangeGraphicColor;\r\n }\r\n\r\n protected override addRangeGraphic(builder: GraphicBuilder, type: TileBoundingBoxes): void {\r\n if (TileBoundingBoxes.ChildVolumes !== type) {\r\n super.addRangeGraphic(builder, type);\r\n return;\r\n }\r\n\r\n const ranges = computeChildTileRanges(this, this.iModelTree);\r\n for (const range of ranges) {\r\n const color = range.isEmpty ? ColorDef.blue : ColorDef.green;\r\n const pixels = !range.isEmpty ? LinePixels.HiddenLine : LinePixels.Solid;\r\n const width = !range.isEmpty ? 2 : 1;\r\n builder.setSymbology(color, color, width, pixels);\r\n addRangeGraphic(builder, range.range, this.tree.is2d);\r\n }\r\n }\r\n\r\n public pruneChildren(olderThan: BeTimePoint): void {\r\n // A tile's usage marker indicates its the most recent time its *children* were used.\r\n if (this.usageMarker.isExpired(olderThan)) {\r\n this.disposeChildren();\r\n return;\r\n }\r\n\r\n // this node has been used recently. Keep it, but potentially unload its grandchildren.\r\n const children = this.iModelChildren;\r\n if (undefined !== children)\r\n for (const child of children)\r\n child.pruneChildren(olderThan);\r\n }\r\n\r\n public selectTiles(selected: Tile[], args: TileDrawArgs, numSkipped: number): SelectParent {\r\n let vis = this.computeVisibility(args);\r\n if (TileVisibility.OutsideFrustum === vis)\r\n return SelectParent.No;\r\n\r\n const maxDepth = this.iModelTree.debugMaxDepth;\r\n if (undefined !== maxDepth && this.depth >= maxDepth)\r\n vis = TileVisibility.Visible;\r\n\r\n if (TileVisibility.Visible === vis) {\r\n // This tile is of appropriate resolution to draw. If need loading or refinement, enqueue.\r\n if (!this.isReady)\r\n args.insertMissing(this);\r\n\r\n if (this.hasGraphics) {\r\n // It can be drawn - select it\r\n args.markReady(this);\r\n selected.push(this);\r\n } else if (!this.isReady) {\r\n // It can't be drawn. Try to draw children in its place; otherwise draw the parent.\r\n // Do not load/request the children for this purpose.\r\n const initialSize = selected.length;\r\n const kids = this.iModelChildren;\r\n if (undefined === kids)\r\n return SelectParent.Yes;\r\n\r\n // Find any descendant to draw, until we exceed max initial tiles to skip.\r\n if (this.depth < this.iModelTree.maxInitialTilesToSkip) {\r\n for (const kid of kids) {\r\n if (SelectParent.Yes === kid.selectTiles(selected, args, numSkipped)) {\r\n selected.length = initialSize;\r\n return SelectParent.Yes;\r\n }\r\n\r\n return SelectParent.No;\r\n }\r\n }\r\n\r\n // If all visible direct children can be drawn, draw them.\r\n for (const kid of kids) {\r\n if (TileVisibility.OutsideFrustum !== kid.computeVisibility(args)) {\r\n if (!kid.hasGraphics) {\r\n selected.length = initialSize;\r\n return SelectParent.Yes;\r\n } else {\r\n selected.push(kid);\r\n }\r\n }\r\n }\r\n\r\n args.markUsed(this);\r\n }\r\n\r\n // We're drawing either this tile, or its direct children.\r\n return SelectParent.No;\r\n }\r\n\r\n // This tile is too coarse to draw. Try to draw something more appropriate.\r\n // If it is not ready to draw, we may want to skip loading in favor of loading its descendants.\r\n // If we previously loaded and later unloaded content for this tile to free memory, don't force it to reload its content - proceed to children.\r\n let canSkipThisTile = (this._hadGraphics && !this.hasGraphics) || this.depth < this.iModelTree.maxInitialTilesToSkip;\r\n if (canSkipThisTile) {\r\n numSkipped = 1;\r\n } else {\r\n canSkipThisTile = this.isReady || this.isParentDisplayable || this.depth < this.iModelTree.maxInitialTilesToSkip;\r\n if (canSkipThisTile && this.isDisplayable) { // skipping an undisplayable tile doesn't count toward the maximum\r\n // Some tiles do not sub-divide - they only facet the same geometry to a higher resolution. We can skip directly to the correct resolution.\r\n const isNotReady = !this.isReady && !this.hasGraphics && !this.hasSizeMultiplier;\r\n if (isNotReady) {\r\n if (numSkipped >= this.iModelTree.maxTilesToSkip)\r\n canSkipThisTile = false;\r\n else\r\n numSkipped += 1;\r\n }\r\n }\r\n }\r\n\r\n const childrenLoadStatus = this.loadChildren(); // NB: asynchronous\r\n const children = canSkipThisTile ? this.iModelChildren : undefined;\r\n if (canSkipThisTile && TileTreeLoadStatus.Loading === childrenLoadStatus) {\r\n args.markChildrenLoading();\r\n args.markUsed(this);\r\n }\r\n\r\n if (undefined !== children) {\r\n // If we are the root tile and we are not displayable, then we want to draw *any* currently available children in our place, or else we would draw nothing.\r\n // Otherwise, if we want to draw children in our place, we should wait for *all* of them to load, or else we would show missing chunks where not-yet-loaded children belong.\r\n const isUndisplayableRootTile = this.isUndisplayableRootTile;\r\n args.markUsed(this);\r\n let drawChildren = true;\r\n const initialSize = selected.length;\r\n for (const child of children) {\r\n // NB: We must continue iterating children so that they can be requested if missing.\r\n if (SelectParent.Yes === child.selectTiles(selected, args, numSkipped)) {\r\n if (child.loadStatus === TileLoadStatus.NotFound) {\r\n // At least one child we want to draw failed to load. e.g., we reached max depth of map tile tree. Draw parent instead.\r\n drawChildren = canSkipThisTile = false;\r\n } else {\r\n // At least one child we want to draw is not yet loaded. Wait for it to load before drawing it and its siblings, unless we have nothing to draw in their place.\r\n drawChildren = isUndisplayableRootTile;\r\n }\r\n }\r\n }\r\n\r\n if (drawChildren)\r\n return SelectParent.No;\r\n\r\n // Some types of tiles (like maps) allow the ready children to be drawn on top of the parent while other children are not yet loaded.\r\n if (args.parentsAndChildrenExclusive)\r\n selected.length = initialSize;\r\n }\r\n\r\n if (this.isReady) {\r\n if (this.hasGraphics) {\r\n selected.push(this);\r\n if (!canSkipThisTile) {\r\n // This tile is too coarse, but we require loading it before we can start loading higher-res children.\r\n args.markReady(this);\r\n }\r\n }\r\n\r\n return SelectParent.No;\r\n }\r\n\r\n // This tile is not ready to be drawn. Request it *only* if we cannot skip it.\r\n if (!canSkipThisTile)\r\n args.insertMissing(this);\r\n\r\n return this.isParentDisplayable ? SelectParent.Yes : SelectParent.No;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IModelTile.js","sourceRoot":"","sources":["../../../src/tile/IModelTile.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, BentleyError, BeTimePoint, ByteStream } from \"@itwin/core-bentley\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, computeChildTileProps, computeChildTileRanges, computeTileChordTolerance, ElementAlignedBox3d, LinePixels, TileFormat, TileProps,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport {\r\n addRangeGraphic, ImdlReader, IModelTileTree, Tile, TileBoundingBoxes, TileContent, TileDrawArgs, TileLoadStatus, TileParams, TileRequest,\r\n TileRequestChannel, TileTreeLoadStatus, TileVisibility,\r\n} from \"./internal\";\r\n\r\n/** Parameters used to construct an [[IModelTile]].\r\n * @internal\r\n */\r\nexport interface IModelTileParams extends TileParams {\r\n sizeMultiplier?: number;\r\n}\r\n\r\n/** @internal */\r\nexport function iModelTileParamsFromJSON(props: TileProps, parent: IModelTile | undefined): IModelTileParams {\r\n const { contentId, maximumSize, isLeaf, sizeMultiplier } = props;\r\n const range = Range3d.fromJSON(props.range);\r\n\r\n let contentRange;\r\n if (undefined !== props.contentRange)\r\n contentRange = Range3d.fromJSON<ElementAlignedBox3d>(props.contentRange);\r\n\r\n return { contentId, range, maximumSize, isLeaf, parent, contentRange, sizeMultiplier };\r\n}\r\n\r\n/**\r\n * Indicates whether a parent tile should be drawn in place of a child tile.\r\n * @internal\r\n */\r\nexport enum SelectParent {\r\n No,\r\n Yes,\r\n}\r\n\r\n/** @internal */\r\nexport interface IModelTileContent extends TileContent {\r\n /** If this tile was produced by refinement, the multiplier applied to its screen size. */\r\n sizeMultiplier?: number;\r\n /** A bitfield describing empty sub-volumes of this tile's volume. */\r\n emptySubRangeMask?: number;\r\n}\r\n\r\n/** A tile belonging to an [[IModelTileTree].\r\n * @internal\r\n */\r\nexport class IModelTile extends Tile {\r\n private _sizeMultiplier?: number;\r\n private _emptySubRangeMask?: number;\r\n /** If an initial attempt to obtain this tile's content (e.g., from cloud storage cache) failed,\r\n * the next channel to try.\r\n */\r\n public requestChannel?: TileRequestChannel;\r\n\r\n public constructor(params: IModelTileParams, tree: IModelTileTree) {\r\n super(params, tree);\r\n this._sizeMultiplier = params.sizeMultiplier;\r\n\r\n if (!this.isLeaf && this.tree.is3d && !this.isReady) { // ###TODO: Want to know specifically if tree is *spatial*.\r\n // Do not sub-divide such that chord tolerance would be below specified minimum, if minimum defined.\r\n const minTolerance = IModelApp.tileAdmin.minimumSpatialTolerance;\r\n if (minTolerance > 0 && computeTileChordTolerance(this, this.tree.is3d, this.iModelTree.tileScreenSize) <= minTolerance)\r\n this.setLeaf();\r\n }\r\n }\r\n\r\n public get iModelTree(): IModelTileTree { return this.tree as IModelTileTree; }\r\n public get iModelChildren(): IModelTile[] | undefined { return this.children as IModelTile[] | undefined; }\r\n public get emptySubRangeMask(): number { return this._emptySubRangeMask ?? 0; }\r\n\r\n public get sizeMultiplier(): number | undefined { return this._sizeMultiplier; }\r\n public get hasSizeMultiplier() { return undefined !== this.sizeMultiplier; }\r\n public override get maximumSize(): number {\r\n return super.maximumSize * (this.sizeMultiplier ?? 1.0);\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n return IModelApp.tileAdmin.channels.getIModelTileChannel(this);\r\n }\r\n\r\n public async requestContent(): Promise<TileRequest.Response> {\r\n return IModelApp.tileAdmin.generateTileContent(this);\r\n }\r\n\r\n public async readContent(data: TileRequest.ResponseData, system: RenderSystem, isCanceled?: () => boolean): Promise<IModelTileContent> {\r\n if (undefined === isCanceled)\r\n isCanceled = () => !this.isLoading;\r\n\r\n assert(data instanceof Uint8Array);\r\n const streamBuffer = ByteStream.fromUint8Array(data);\r\n\r\n const position = streamBuffer.curPos;\r\n const format = streamBuffer.readUint32();\r\n streamBuffer.curPos = position;\r\n\r\n let content: IModelTileContent = { isLeaf: true };\r\n assert(TileFormat.IModel === format);\r\n if (format !== TileFormat.IModel)\r\n return content;\r\n\r\n const tree = this.iModelTree;\r\n const sizeMultiplier = this.hasSizeMultiplier ? this.sizeMultiplier : undefined;\r\n const { iModel, modelId, is3d, containsTransformNodes } = tree;\r\n const reader = ImdlReader.create({\r\n stream: streamBuffer,\r\n type: tree.batchType,\r\n loadEdges: false !== tree.edgeOptions,\r\n options: { tileId: this.contentId },\r\n timeline: tree.timeline,\r\n iModel, modelId, is3d, system, isCanceled, sizeMultiplier, containsTransformNodes,\r\n });\r\n\r\n if (undefined !== reader) {\r\n try {\r\n content = await reader.read();\r\n } catch {\r\n //\r\n }\r\n }\r\n\r\n return content;\r\n }\r\n\r\n public override setContent(content: IModelTileContent): void {\r\n super.setContent(content);\r\n\r\n this._emptySubRangeMask = content.emptySubRangeMask;\r\n\r\n // NB: If this tile has no graphics, it may or may not have children - but we don't want to load the children until\r\n // this tile is too coarse for view based on its size in pixels.\r\n // That is different than an \"undisplayable\" tile (maximumSize=0) whose children should be loaded immediately.\r\n if (undefined !== content.graphic && 0 === this.maximumSize)\r\n this._maximumSize = this.iModelTree.tileScreenSize;\r\n\r\n const sizeMult = content.sizeMultiplier;\r\n if (undefined !== sizeMult && (undefined === this._sizeMultiplier || sizeMult > this._sizeMultiplier)) {\r\n this._sizeMultiplier = sizeMult;\r\n this._contentId = this.iModelTree.contentIdProvider.idFromParentAndMultiplier(this.contentId, sizeMult);\r\n if (undefined !== this.children && this.children.length > 1)\r\n this.disposeChildren();\r\n }\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[]) => void, reject: (error: Error) => void): void {\r\n try {\r\n const tree = this.iModelTree;\r\n const kids = computeChildTileProps(this, tree.contentIdProvider, tree);\r\n IModelApp.tileAdmin.onTilesElided(kids.numEmpty);\r\n\r\n const children: IModelTile[] = [];\r\n for (const props of kids.children) {\r\n const child = new IModelTile(iModelTileParamsFromJSON(props, this), tree);\r\n children.push(child);\r\n }\r\n\r\n resolve(children);\r\n } catch (err) {\r\n reject(err instanceof Error ? err : new Error(BentleyError.getErrorMessage(err)));\r\n }\r\n }\r\n\r\n protected override get rangeGraphicColor(): ColorDef {\r\n return this.hasSizeMultiplier ? ColorDef.red : super.rangeGraphicColor;\r\n }\r\n\r\n protected override addRangeGraphic(builder: GraphicBuilder, type: TileBoundingBoxes): void {\r\n if (TileBoundingBoxes.ChildVolumes !== type) {\r\n super.addRangeGraphic(builder, type);\r\n return;\r\n }\r\n\r\n const ranges = computeChildTileRanges(this, this.iModelTree);\r\n for (const range of ranges) {\r\n const color = range.isEmpty ? ColorDef.blue : ColorDef.green;\r\n const pixels = !range.isEmpty ? LinePixels.HiddenLine : LinePixels.Solid;\r\n const width = !range.isEmpty ? 2 : 1;\r\n builder.setSymbology(color, color, width, pixels);\r\n addRangeGraphic(builder, range.range, this.tree.is2d);\r\n }\r\n }\r\n\r\n public pruneChildren(olderThan: BeTimePoint): void {\r\n // A tile's usage marker indicates its the most recent time its *children* were used.\r\n if (this.usageMarker.isExpired(olderThan)) {\r\n this.disposeChildren();\r\n return;\r\n }\r\n\r\n // this node has been used recently. Keep it, but potentially unload its grandchildren.\r\n const children = this.iModelChildren;\r\n if (undefined !== children)\r\n for (const child of children)\r\n child.pruneChildren(olderThan);\r\n }\r\n\r\n public selectTiles(selected: Tile[], args: TileDrawArgs, numSkipped: number): SelectParent {\r\n let vis = this.computeVisibility(args);\r\n if (TileVisibility.OutsideFrustum === vis)\r\n return SelectParent.No;\r\n\r\n const maxDepth = this.iModelTree.debugMaxDepth;\r\n if (undefined !== maxDepth && this.depth >= maxDepth)\r\n vis = TileVisibility.Visible;\r\n\r\n if (TileVisibility.Visible === vis) {\r\n // This tile is of appropriate resolution to draw. If need loading or refinement, enqueue.\r\n if (!this.isReady)\r\n args.insertMissing(this);\r\n\r\n if (this.hasGraphics) {\r\n // It can be drawn - select it\r\n args.markReady(this);\r\n selected.push(this);\r\n } else if (!this.isReady) {\r\n // It can't be drawn. Try to draw children in its place; otherwise draw the parent.\r\n // Do not load/request the children for this purpose.\r\n const initialSize = selected.length;\r\n const kids = this.iModelChildren;\r\n if (undefined === kids)\r\n return SelectParent.Yes;\r\n\r\n // Find any descendant to draw, until we exceed max initial tiles to skip.\r\n if (this.depth < this.iModelTree.maxInitialTilesToSkip) {\r\n for (const kid of kids) {\r\n if (SelectParent.Yes === kid.selectTiles(selected, args, numSkipped)) {\r\n selected.length = initialSize;\r\n return SelectParent.Yes;\r\n }\r\n\r\n return SelectParent.No;\r\n }\r\n }\r\n\r\n // If all visible direct children can be drawn, draw them.\r\n for (const kid of kids) {\r\n if (TileVisibility.OutsideFrustum !== kid.computeVisibility(args)) {\r\n if (!kid.hasGraphics) {\r\n selected.length = initialSize;\r\n return SelectParent.Yes;\r\n } else {\r\n selected.push(kid);\r\n }\r\n }\r\n }\r\n\r\n args.markUsed(this);\r\n }\r\n\r\n // We're drawing either this tile, or its direct children.\r\n return SelectParent.No;\r\n }\r\n\r\n // This tile is too coarse to draw. Try to draw something more appropriate.\r\n // If it is not ready to draw, we may want to skip loading in favor of loading its descendants.\r\n // If we previously loaded and later unloaded content for this tile to free memory, don't force it to reload its content - proceed to children.\r\n let canSkipThisTile = (this._hadGraphics && !this.hasGraphics) || this.depth < this.iModelTree.maxInitialTilesToSkip;\r\n if (canSkipThisTile) {\r\n numSkipped = 1;\r\n } else {\r\n canSkipThisTile = this.isReady || this.isParentDisplayable || this.depth < this.iModelTree.maxInitialTilesToSkip;\r\n if (canSkipThisTile && this.isDisplayable) { // skipping an undisplayable tile doesn't count toward the maximum\r\n // Some tiles do not sub-divide - they only facet the same geometry to a higher resolution. We can skip directly to the correct resolution.\r\n const isNotReady = !this.isReady && !this.hasGraphics && !this.hasSizeMultiplier;\r\n if (isNotReady) {\r\n if (numSkipped >= this.iModelTree.maxTilesToSkip)\r\n canSkipThisTile = false;\r\n else\r\n numSkipped += 1;\r\n }\r\n }\r\n }\r\n\r\n const childrenLoadStatus = this.loadChildren(); // NB: asynchronous\r\n const children = canSkipThisTile ? this.iModelChildren : undefined;\r\n if (canSkipThisTile && TileTreeLoadStatus.Loading === childrenLoadStatus) {\r\n args.markChildrenLoading();\r\n args.markUsed(this);\r\n }\r\n\r\n if (undefined !== children) {\r\n // If we are the root tile and we are not displayable, then we want to draw *any* currently available children in our place, or else we would draw nothing.\r\n // Otherwise, if we want to draw children in our place, we should wait for *all* of them to load, or else we would show missing chunks where not-yet-loaded children belong.\r\n const isUndisplayableRootTile = this.isUndisplayableRootTile;\r\n args.markUsed(this);\r\n let drawChildren = true;\r\n const initialSize = selected.length;\r\n for (const child of children) {\r\n // NB: We must continue iterating children so that they can be requested if missing.\r\n if (SelectParent.Yes === child.selectTiles(selected, args, numSkipped)) {\r\n if (child.loadStatus === TileLoadStatus.NotFound) {\r\n // At least one child we want to draw failed to load. e.g., we reached max depth of map tile tree. Draw parent instead.\r\n drawChildren = canSkipThisTile = false;\r\n } else {\r\n // At least one child we want to draw is not yet loaded. Wait for it to load before drawing it and its siblings, unless we have nothing to draw in their place.\r\n drawChildren = isUndisplayableRootTile;\r\n }\r\n }\r\n }\r\n\r\n if (drawChildren)\r\n return SelectParent.No;\r\n\r\n // Some types of tiles (like maps) allow the ready children to be drawn on top of the parent while other children are not yet loaded.\r\n if (args.parentsAndChildrenExclusive)\r\n selected.length = initialSize;\r\n }\r\n\r\n if (this.isReady) {\r\n if (this.hasGraphics) {\r\n selected.push(this);\r\n if (!canSkipThisTile) {\r\n // This tile is too coarse, but we require loading it before we can start loading higher-res children.\r\n args.markReady(this);\r\n }\r\n }\r\n\r\n return SelectParent.No;\r\n }\r\n\r\n // This tile is not ready to be drawn. Request it *only* if we cannot skip it.\r\n if (!canSkipThisTile)\r\n args.insertMissing(this);\r\n\r\n return this.isParentDisplayable ? SelectParent.Yes : SelectParent.No;\r\n }\r\n}\r\n"]}
@@ -52,7 +52,7 @@ class IModelTileChannel extends internal_1.TileRequestChannel {
52
52
  this._statistics.totalAbortedRequests += contentIds.length;
53
53
  }
54
54
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
55
- IpcApp_1.IpcApp.callIpcHost("cancelTileContentRequests", imodel.getRpcProps(), treeContentIds);
55
+ IpcApp_1.IpcApp.appFunctionIpc.cancelTileContentRequests(imodel.getRpcProps(), treeContentIds);
56
56
  }
57
57
  this._canceled.clear();
58
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IModelTileRequestChannels.js","sourceRoot":"","sources":["../../../src/tile/IModelTileRequestChannels.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, compareStrings, SortedArray } from \"@itwin/core-bentley\";\r\nimport { TileTreeContentIds } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IpcApp } from \"../IpcApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { IModelTile, IModelTileContent, Tile, TileRequest, TileRequestChannel, TileTree } from \"./internal\";\r\n\r\n/** Handles requests to the cloud storage tile cache, if one is configured. If a tile's content is not found in the cache, subsequent requests for the same tile will\r\n * use the IModelTileChannel instead.\r\n */\r\nclass CloudStorageCacheChannel extends TileRequestChannel {\r\n public override async requestContent(tile: Tile): Promise<TileRequest.Response> {\r\n assert(tile instanceof IModelTile);\r\n return IModelApp.tileAdmin.requestCachedTileContent(tile);\r\n }\r\n\r\n public override onNoContent(request: TileRequest): boolean {\r\n assert(request.tile instanceof IModelTile);\r\n request.tile.requestChannel = IModelApp.tileAdmin.channels.iModelChannels.rpc;\r\n ++this._statistics.totalCacheMisses;\r\n return true;\r\n }\r\n}\r\n\r\n/** For an [[IpcApp]], allows backend tile generation requests in progress to be canceled. */\r\nclass IModelTileChannel extends TileRequestChannel {\r\n private readonly _canceled = new Map<IModelConnection, Map<string, Set<string>>>();\r\n\r\n public override onActiveRequestCanceled(request: TileRequest): void {\r\n const tree = request.tile.tree;\r\n let entry = this._canceled.get(tree.iModel);\r\n if (!entry)\r\n this._canceled.set(tree.iModel, entry = new Map<string, Set<string>>());\r\n\r\n let ids = entry.get(tree.id);\r\n if (!ids)\r\n entry.set(tree.id, ids = new Set<string>());\r\n\r\n ids.add(request.tile.contentId);\r\n }\r\n\r\n public override processCancellations(): void {\r\n for (const [imodel, entries] of this._canceled) {\r\n const treeContentIds: TileTreeContentIds[] = [];\r\n for (const [treeId, tileIds] of entries) {\r\n const contentIds = Array.from(tileIds);\r\n treeContentIds.push({ treeId, contentIds });\r\n this._statistics.totalAbortedRequests += contentIds.length;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n IpcApp.callIpcHost(\"cancelTileContentRequests\", imodel.getRpcProps(), treeContentIds);\r\n }\r\n\r\n this._canceled.clear();\r\n }\r\n\r\n public override onIModelClosed(imodel: IModelConnection): void {\r\n this._canceled.delete(imodel);\r\n }\r\n}\r\n\r\ninterface CachedContent extends Omit<IModelTileContent, \"graphic\"> {\r\n contentId: string;\r\n hasGraphic: boolean;\r\n}\r\n\r\n/** If TileAdmin.Props.cacheTileMetadata is true, then this is the first channel through which we request content for an IModelTile.\r\n * It serves a niche purpose: a tile pre-generation agent that wants to ensure that every tile selected during interaction with the application\r\n * has its tile generated and cached in cloud storage. This agent might request thousands of tiles in sequence, causing a given tile to be discarded\r\n * and reloaded many times. To avoid pointlessly reloading tiles whose contents have already been generated, this channel caches the metadata for each tile;\r\n * on subsequent requests for the same tile, it produces the metadata and an empty RenderGraphic.\r\n */\r\nclass IModelTileMetadataCacheChannel extends TileRequestChannel {\r\n private readonly _cacheByIModel = new Map<IModelConnection, Map<TileTree, SortedArray<CachedContent>>>();\r\n\r\n public constructor() {\r\n super(\"itwinjs-imodel-metadata-cache\", 100);\r\n }\r\n\r\n public override onNoContent(request: TileRequest): boolean {\r\n assert(request.tile instanceof IModelTile);\r\n const channels = IModelApp.tileAdmin.channels.iModelChannels;\r\n request.tile.requestChannel = channels.cloudStorage ?? channels.rpc;\r\n return true;\r\n }\r\n\r\n public override async requestContent(tile: Tile): Promise<TileRequest.Response> {\r\n assert(tile instanceof IModelTile);\r\n const content = this.getCachedContent(tile);\r\n return content ? { content } : undefined;\r\n }\r\n\r\n public getCachedContent(tile: IModelTile): IModelTileContent | undefined {\r\n const cached = this._cacheByIModel.get(tile.iModel)?.get(tile.tree)?.findEquivalent((x) => compareStrings(x.contentId, tile.contentId));\r\n if (!cached)\r\n return undefined;\r\n\r\n const content: IModelTileContent = {\r\n ...cached,\r\n graphic: cached.hasGraphic ? IModelApp.renderSystem.createGraphicList([]) : undefined,\r\n contentRange: cached.contentRange?.clone(),\r\n };\r\n\r\n return content;\r\n }\r\n\r\n public override onIModelClosed(imodel: IModelConnection): void {\r\n this._cacheByIModel.delete(imodel);\r\n }\r\n\r\n public registerChannel(channel: TileRequestChannel): void {\r\n channel.contentCallback = (tile, content) => this.cache(tile, content);\r\n }\r\n\r\n private cache(tile: Tile, content: IModelTileContent): void {\r\n assert(tile instanceof IModelTile);\r\n let trees = this._cacheByIModel.get(tile.iModel);\r\n if (!trees)\r\n this._cacheByIModel.set(tile.iModel, trees = new Map<TileTree, SortedArray<CachedContent>>());\r\n\r\n let list = trees.get(tile.tree);\r\n if (!list)\r\n trees.set(tile.tree, list = new SortedArray<CachedContent>((lhs, rhs) => compareStrings(lhs.contentId, rhs.contentId)));\r\n\r\n assert(undefined === list.findEquivalent((x) => compareStrings(x.contentId, tile.contentId)));\r\n list.insert({\r\n contentId: tile.contentId,\r\n hasGraphic: undefined !== content.graphic,\r\n contentRange: content.contentRange?.clone(),\r\n isLeaf: content.isLeaf,\r\n sizeMultiplier: content.sizeMultiplier,\r\n emptySubRangeMask: content.emptySubRangeMask,\r\n });\r\n }\r\n}\r\n\r\n/** TileRequestChannels used for requesting content for IModelTiles.\r\n * @internal\r\n */\r\nexport class IModelTileRequestChannels {\r\n private _cloudStorage: TileRequestChannel;\r\n private readonly _contentCache?: IModelTileMetadataCacheChannel;\r\n public readonly rpc: TileRequestChannel;\r\n\r\n public constructor(args: {\r\n concurrency: number;\r\n usesHttp: boolean;\r\n cacheMetadata: boolean;\r\n cacheConcurrency: number;\r\n }) {\r\n const channelName = \"itwinjs-tile-rpc\";\r\n this.rpc = args.usesHttp ? new TileRequestChannel(channelName, args.concurrency) : new IModelTileChannel(channelName, args.concurrency);\r\n\r\n if (args.cacheMetadata) {\r\n this._contentCache = new IModelTileMetadataCacheChannel();\r\n this._contentCache.registerChannel(this.rpc);\r\n }\r\n\r\n this._cloudStorage = new CloudStorageCacheChannel(\"itwinjs-cloud-cache\", args.cacheConcurrency);\r\n this._contentCache?.registerChannel(this._cloudStorage);\r\n }\r\n\r\n public get cloudStorage(): TileRequestChannel {\r\n return this._cloudStorage;\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<TileRequestChannel> {\r\n const channels = [this.rpc];\r\n if (this._cloudStorage)\r\n channels.push(this._cloudStorage);\r\n\r\n if (this._contentCache)\r\n channels.push(this._contentCache);\r\n\r\n return channels[Symbol.iterator]();\r\n }\r\n\r\n public setRpcConcurrency(concurrency: number): void {\r\n this.rpc.concurrency = concurrency;\r\n }\r\n\r\n public getChannelForTile(tile: IModelTile): TileRequestChannel {\r\n return tile.requestChannel || this._contentCache || this._cloudStorage || this.rpc;\r\n }\r\n\r\n /** Strictly for tests. */\r\n public getCachedContent(tile: IModelTile): IModelTileContent | undefined {\r\n return this._contentCache?.getCachedContent(tile);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IModelTileRequestChannels.js","sourceRoot":"","sources":["../../../src/tile/IModelTileRequestChannels.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, compareStrings, SortedArray } from \"@itwin/core-bentley\";\r\nimport { TileTreeContentIds } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IpcApp } from \"../IpcApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { IModelTile, IModelTileContent, Tile, TileRequest, TileRequestChannel, TileTree } from \"./internal\";\r\n\r\n/** Handles requests to the cloud storage tile cache, if one is configured. If a tile's content is not found in the cache, subsequent requests for the same tile will\r\n * use the IModelTileChannel instead.\r\n */\r\nclass CloudStorageCacheChannel extends TileRequestChannel {\r\n public override async requestContent(tile: Tile): Promise<TileRequest.Response> {\r\n assert(tile instanceof IModelTile);\r\n return IModelApp.tileAdmin.requestCachedTileContent(tile);\r\n }\r\n\r\n public override onNoContent(request: TileRequest): boolean {\r\n assert(request.tile instanceof IModelTile);\r\n request.tile.requestChannel = IModelApp.tileAdmin.channels.iModelChannels.rpc;\r\n ++this._statistics.totalCacheMisses;\r\n return true;\r\n }\r\n}\r\n\r\n/** For an [[IpcApp]], allows backend tile generation requests in progress to be canceled. */\r\nclass IModelTileChannel extends TileRequestChannel {\r\n private readonly _canceled = new Map<IModelConnection, Map<string, Set<string>>>();\r\n\r\n public override onActiveRequestCanceled(request: TileRequest): void {\r\n const tree = request.tile.tree;\r\n let entry = this._canceled.get(tree.iModel);\r\n if (!entry)\r\n this._canceled.set(tree.iModel, entry = new Map<string, Set<string>>());\r\n\r\n let ids = entry.get(tree.id);\r\n if (!ids)\r\n entry.set(tree.id, ids = new Set<string>());\r\n\r\n ids.add(request.tile.contentId);\r\n }\r\n\r\n public override processCancellations(): void {\r\n for (const [imodel, entries] of this._canceled) {\r\n const treeContentIds: TileTreeContentIds[] = [];\r\n for (const [treeId, tileIds] of entries) {\r\n const contentIds = Array.from(tileIds);\r\n treeContentIds.push({ treeId, contentIds });\r\n this._statistics.totalAbortedRequests += contentIds.length;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n IpcApp.appFunctionIpc.cancelTileContentRequests(imodel.getRpcProps(), treeContentIds);\r\n }\r\n\r\n this._canceled.clear();\r\n }\r\n\r\n public override onIModelClosed(imodel: IModelConnection): void {\r\n this._canceled.delete(imodel);\r\n }\r\n}\r\n\r\ninterface CachedContent extends Omit<IModelTileContent, \"graphic\"> {\r\n contentId: string;\r\n hasGraphic: boolean;\r\n}\r\n\r\n/** If TileAdmin.Props.cacheTileMetadata is true, then this is the first channel through which we request content for an IModelTile.\r\n * It serves a niche purpose: a tile pre-generation agent that wants to ensure that every tile selected during interaction with the application\r\n * has its tile generated and cached in cloud storage. This agent might request thousands of tiles in sequence, causing a given tile to be discarded\r\n * and reloaded many times. To avoid pointlessly reloading tiles whose contents have already been generated, this channel caches the metadata for each tile;\r\n * on subsequent requests for the same tile, it produces the metadata and an empty RenderGraphic.\r\n */\r\nclass IModelTileMetadataCacheChannel extends TileRequestChannel {\r\n private readonly _cacheByIModel = new Map<IModelConnection, Map<TileTree, SortedArray<CachedContent>>>();\r\n\r\n public constructor() {\r\n super(\"itwinjs-imodel-metadata-cache\", 100);\r\n }\r\n\r\n public override onNoContent(request: TileRequest): boolean {\r\n assert(request.tile instanceof IModelTile);\r\n const channels = IModelApp.tileAdmin.channels.iModelChannels;\r\n request.tile.requestChannel = channels.cloudStorage ?? channels.rpc;\r\n return true;\r\n }\r\n\r\n public override async requestContent(tile: Tile): Promise<TileRequest.Response> {\r\n assert(tile instanceof IModelTile);\r\n const content = this.getCachedContent(tile);\r\n return content ? { content } : undefined;\r\n }\r\n\r\n public getCachedContent(tile: IModelTile): IModelTileContent | undefined {\r\n const cached = this._cacheByIModel.get(tile.iModel)?.get(tile.tree)?.findEquivalent((x) => compareStrings(x.contentId, tile.contentId));\r\n if (!cached)\r\n return undefined;\r\n\r\n const content: IModelTileContent = {\r\n ...cached,\r\n graphic: cached.hasGraphic ? IModelApp.renderSystem.createGraphicList([]) : undefined,\r\n contentRange: cached.contentRange?.clone(),\r\n };\r\n\r\n return content;\r\n }\r\n\r\n public override onIModelClosed(imodel: IModelConnection): void {\r\n this._cacheByIModel.delete(imodel);\r\n }\r\n\r\n public registerChannel(channel: TileRequestChannel): void {\r\n channel.contentCallback = (tile, content) => this.cache(tile, content);\r\n }\r\n\r\n private cache(tile: Tile, content: IModelTileContent): void {\r\n assert(tile instanceof IModelTile);\r\n let trees = this._cacheByIModel.get(tile.iModel);\r\n if (!trees)\r\n this._cacheByIModel.set(tile.iModel, trees = new Map<TileTree, SortedArray<CachedContent>>());\r\n\r\n let list = trees.get(tile.tree);\r\n if (!list)\r\n trees.set(tile.tree, list = new SortedArray<CachedContent>((lhs, rhs) => compareStrings(lhs.contentId, rhs.contentId)));\r\n\r\n assert(undefined === list.findEquivalent((x) => compareStrings(x.contentId, tile.contentId)));\r\n list.insert({\r\n contentId: tile.contentId,\r\n hasGraphic: undefined !== content.graphic,\r\n contentRange: content.contentRange?.clone(),\r\n isLeaf: content.isLeaf,\r\n sizeMultiplier: content.sizeMultiplier,\r\n emptySubRangeMask: content.emptySubRangeMask,\r\n });\r\n }\r\n}\r\n\r\n/** TileRequestChannels used for requesting content for IModelTiles.\r\n * @internal\r\n */\r\nexport class IModelTileRequestChannels {\r\n private _cloudStorage: TileRequestChannel;\r\n private readonly _contentCache?: IModelTileMetadataCacheChannel;\r\n public readonly rpc: TileRequestChannel;\r\n\r\n public constructor(args: {\r\n concurrency: number;\r\n usesHttp: boolean;\r\n cacheMetadata: boolean;\r\n cacheConcurrency: number;\r\n }) {\r\n const channelName = \"itwinjs-tile-rpc\";\r\n this.rpc = args.usesHttp ? new TileRequestChannel(channelName, args.concurrency) : new IModelTileChannel(channelName, args.concurrency);\r\n\r\n if (args.cacheMetadata) {\r\n this._contentCache = new IModelTileMetadataCacheChannel();\r\n this._contentCache.registerChannel(this.rpc);\r\n }\r\n\r\n this._cloudStorage = new CloudStorageCacheChannel(\"itwinjs-cloud-cache\", args.cacheConcurrency);\r\n this._contentCache?.registerChannel(this._cloudStorage);\r\n }\r\n\r\n public get cloudStorage(): TileRequestChannel {\r\n return this._cloudStorage;\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<TileRequestChannel> {\r\n const channels = [this.rpc];\r\n if (this._cloudStorage)\r\n channels.push(this._cloudStorage);\r\n\r\n if (this._contentCache)\r\n channels.push(this._contentCache);\r\n\r\n return channels[Symbol.iterator]();\r\n }\r\n\r\n public setRpcConcurrency(concurrency: number): void {\r\n this.rpc.concurrency = concurrency;\r\n }\r\n\r\n public getChannelForTile(tile: IModelTile): TileRequestChannel {\r\n return tile.requestChannel || this._contentCache || this._cloudStorage || this.rpc;\r\n }\r\n\r\n /** Strictly for tests. */\r\n public getCachedContent(tile: IModelTile): IModelTileContent | undefined {\r\n return this._contentCache?.getCachedContent(tile);\r\n }\r\n}\r\n"]}
@@ -335,6 +335,10 @@ export interface Imdl {
335
335
  scene: string;
336
336
  /** The collection of ImdlScenes included in the tile. */
337
337
  scenes: ImdlDictionary<ImdlScene>;
338
+ /** Specifies point to which all vertex positions in the tile are relative, as an array of 3 numbers.
339
+ * Currently only used for requestElementGraphics - see GraphicsRequestProps.useAbsolutePositions.
340
+ */
341
+ rtcCenter?: number[];
338
342
  /** Maps each node Id to the Id of the corresponding mesh in [[meshes]]. */
339
343
  nodes: ImdlDictionary<string>;
340
344
  meshes: ImdlDictionary<ImdlMesh>;
@@ -389,6 +393,7 @@ export declare class ImdlReader {
389
393
  private readonly _patternGeometry;
390
394
  private readonly _containsTransformNodes;
391
395
  private readonly _timeline?;
396
+ private readonly _rtcCenter?;
392
397
  private get _isCanceled();
393
398
  private get _isVolumeClassifier();
394
399
  /** Attempt to initialize an ImdlReader to deserialize iModel tile data beginning at the stream's current position. */
@@ -1 +1 @@
1
- {"version":3,"file":"ImdlReader.d.ts","sourceRoot":"","sources":["../../../src/tile/ImdlReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImdlReader.d.ts","sourceRoot":"","sources":["../../../src/tile/ImdlReader.ts"],"names":[],"mappings":"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"}
@@ -30,9 +30,9 @@ class GltfHeader extends core_common_1.TileHeader {
30
30
  this.scenePosition = 0;
31
31
  this.sceneStrLength = 0;
32
32
  this.binaryPosition = 0;
33
- this.gltfLength = stream.nextUint32;
34
- this.sceneStrLength = stream.nextUint32;
35
- const value5 = stream.nextUint32;
33
+ this.gltfLength = stream.readUint32();
34
+ this.sceneStrLength = stream.readUint32();
35
+ const value5 = stream.readUint32();
36
36
  // Early versions of the reality data tile publisher incorrectly put version 2 into header - handle these old tiles
37
37
  // validating the chunk type.
38
38
  if (this.version === core_common_1.GltfVersions.Version2 && value5 === core_common_1.GltfVersions.Gltf1SceneFormat)
@@ -50,8 +50,8 @@ class GltfHeader extends core_common_1.TileHeader {
50
50
  const sceneChunkType = value5;
51
51
  this.scenePosition = stream.curPos;
52
52
  stream.curPos = stream.curPos + this.sceneStrLength;
53
- const binaryLength = stream.nextUint32;
54
- const binaryChunkType = stream.nextUint32;
53
+ const binaryLength = stream.readUint32();
54
+ const binaryChunkType = stream.readUint32();
55
55
  if (core_common_1.GltfV2ChunkTypes.JSON !== sceneChunkType || core_common_1.GltfV2ChunkTypes.Binary !== binaryChunkType || 0 === binaryLength) {
56
56
  this.invalidate();
57
57
  return;
@@ -113,6 +113,7 @@ class ImdlReader {
113
113
  this._renderMaterials = (_b = imdl.renderMaterials) !== null && _b !== void 0 ? _b : {};
114
114
  this._namedTextures = (_c = imdl.namedTextures) !== null && _c !== void 0 ? _c : {};
115
115
  this._patternSymbols = (_d = imdl.patternSymbols) !== null && _d !== void 0 ? _d : {};
116
+ this._rtcCenter = imdl.rtcCenter ? core_geometry_1.Point3d.fromJSON(imdl.rtcCenter) : undefined;
116
117
  this._iModel = args.iModel;
117
118
  this._modelId = args.modelId;
118
119
  this._is3d = args.is3d;
@@ -157,6 +158,7 @@ class ImdlReader {
157
158
  renderMaterials: core_bentley_1.JsonUtils.asObject(sceneValue.renderMaterials),
158
159
  namedTextures: core_bentley_1.JsonUtils.asObject(sceneValue.namedTextures),
159
160
  patternSymbols: core_bentley_1.JsonUtils.asObject(sceneValue.patternSymbols),
161
+ rtcCenter: core_bentley_1.JsonUtils.asArray(sceneValue.rtcCenter),
160
162
  };
161
163
  return undefined !== imdl.meshes ? new ImdlReader(imdl, gltfHeader.binaryPosition, args) : undefined;
162
164
  }
@@ -272,6 +274,7 @@ class ImdlReader {
272
274
  mapMode: core_bentley_1.JsonUtils.asInt(paramsJson.mode),
273
275
  worldMapping: core_bentley_1.JsonUtils.asBool(paramsJson.worldMapping),
274
276
  };
277
+ // TODO: Need to extract normal map properties from json once they're sent by the backend.
275
278
  return new core_common_1.TextureMapping(texture, new core_common_1.TextureMapping.Params(paramProps));
276
279
  }
277
280
  async loadNamedTextures() {
@@ -566,7 +569,6 @@ class ImdlReader {
566
569
  indices,
567
570
  fillFlags: displayParams.fillFlags,
568
571
  hasBakedLighting: false,
569
- hasFixedNormals: false,
570
572
  material,
571
573
  textureMapping,
572
574
  };
@@ -884,8 +886,13 @@ class ImdlReader {
884
886
  tileGraphic = this._system.createGraphicList(graphics);
885
887
  break;
886
888
  }
887
- if (undefined !== tileGraphic && false !== this._options)
889
+ if (tileGraphic && false !== this._options)
888
890
  tileGraphic = this._system.createBatch(tileGraphic, featureTable, contentRange, this._options);
891
+ if (tileGraphic && this._rtcCenter) {
892
+ const rtcBranch = new GraphicBranch_1.GraphicBranch(true);
893
+ rtcBranch.add(tileGraphic);
894
+ tileGraphic = this._system.createBranch(rtcBranch, core_geometry_1.Transform.createTranslation(this._rtcCenter));
895
+ }
889
896
  return {
890
897
  readStatus: core_common_1.TileReadStatus.Success,
891
898
  isLeaf,