@itwin/core-frontend 3.1.0-dev.6 → 3.2.0-dev.0

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 (737) hide show
  1. package/CHANGELOG.md +163 -35
  2. package/lib/cjs/AccuSnap.js +2 -2
  3. package/lib/cjs/AccuSnap.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeights.d.ts +1 -1
  5. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  6. package/lib/cjs/ApproximateTerrainHeights.js +21 -9
  7. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  8. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +12 -0
  9. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -0
  10. package/lib/cjs/ApproximateTerrainHeightsProps.js +13 -0
  11. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -0
  12. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  13. package/lib/cjs/BriefcaseConnection.js +6 -5
  14. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  15. package/lib/cjs/CategorySelectorState.js +1 -1
  16. package/lib/cjs/CategorySelectorState.js.map +1 -1
  17. package/lib/cjs/DisplayStyleState.d.ts +4 -3
  18. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  19. package/lib/cjs/DisplayStyleState.js +32 -8
  20. package/lib/cjs/DisplayStyleState.js.map +1 -1
  21. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  22. package/lib/cjs/DrawingViewState.js +9 -8
  23. package/lib/cjs/DrawingViewState.js.map +1 -1
  24. package/lib/cjs/FrontendLoggerCategory.d.ts +3 -1
  25. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  26. package/lib/cjs/FrontendLoggerCategory.js +2 -0
  27. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  28. package/lib/cjs/IModelApp.d.ts +8 -4
  29. package/lib/cjs/IModelApp.d.ts.map +1 -1
  30. package/lib/cjs/IModelApp.js +20 -10
  31. package/lib/cjs/IModelApp.js.map +1 -1
  32. package/lib/cjs/IModelConnection.d.ts +3 -5
  33. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  34. package/lib/cjs/IModelConnection.js +4 -10
  35. package/lib/cjs/IModelConnection.js.map +1 -1
  36. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  37. package/lib/cjs/ImageUtil.js +8 -14
  38. package/lib/cjs/ImageUtil.js.map +1 -1
  39. package/lib/cjs/LocalhostIpcApp.d.ts +2 -0
  40. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  41. package/lib/cjs/LocalhostIpcApp.js +10 -4
  42. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  43. package/lib/cjs/RealityDataSource.d.ts +60 -14
  44. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  45. package/lib/cjs/RealityDataSource.js +36 -235
  46. package/lib/cjs/RealityDataSource.js.map +1 -1
  47. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
  48. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
  49. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +166 -0
  50. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
  51. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts +83 -0
  52. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts.map +1 -0
  53. package/lib/cjs/RealityDataSourceContextShareImpl.js +234 -0
  54. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -0
  55. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
  56. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
  57. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +135 -0
  58. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -0
  59. package/lib/cjs/SheetViewState.js +7 -3
  60. package/lib/cjs/SheetViewState.js.map +1 -1
  61. package/lib/cjs/ViewState.d.ts +8 -0
  62. package/lib/cjs/ViewState.d.ts.map +1 -1
  63. package/lib/cjs/ViewState.js +1 -1
  64. package/lib/cjs/ViewState.js.map +1 -1
  65. package/lib/cjs/Viewport.d.ts +35 -14
  66. package/lib/cjs/Viewport.d.ts.map +1 -1
  67. package/lib/cjs/Viewport.js +59 -10
  68. package/lib/cjs/Viewport.js.map +1 -1
  69. package/lib/cjs/core-frontend.d.ts +6 -4
  70. package/lib/cjs/core-frontend.d.ts.map +1 -1
  71. package/lib/cjs/core-frontend.js +6 -4
  72. package/lib/cjs/core-frontend.js.map +1 -1
  73. package/lib/cjs/extension/Extension.d.ts +48 -0
  74. package/lib/cjs/extension/Extension.d.ts.map +1 -0
  75. package/lib/cjs/extension/Extension.js +18 -0
  76. package/lib/cjs/extension/Extension.js.map +1 -0
  77. package/lib/cjs/extension/ExtensionAdmin.d.ts +64 -0
  78. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -0
  79. package/lib/cjs/extension/ExtensionAdmin.js +106 -0
  80. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -0
  81. package/lib/cjs/extension/ExtensionHost.d.ts +23 -0
  82. package/lib/cjs/extension/ExtensionHost.d.ts.map +1 -0
  83. package/lib/cjs/extension/ExtensionHost.js +26 -0
  84. package/lib/cjs/extension/ExtensionHost.js.map +1 -0
  85. package/lib/cjs/extension/ExtensionImpl.d.ts +21 -0
  86. package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -0
  87. package/lib/cjs/extension/ExtensionImpl.js +45 -0
  88. package/lib/cjs/extension/ExtensionImpl.js.map +1 -0
  89. package/lib/cjs/extension/ExtensionLoader.d.ts +26 -0
  90. package/lib/cjs/extension/ExtensionLoader.d.ts.map +1 -0
  91. package/lib/cjs/extension/ExtensionLoader.js +10 -0
  92. package/lib/cjs/extension/ExtensionLoader.js.map +1 -0
  93. package/lib/cjs/extension/ExtensionRuntime.d.ts +5 -0
  94. package/lib/cjs/extension/ExtensionRuntime.d.ts.map +1 -0
  95. package/lib/cjs/extension/ExtensionRuntime.js +86 -0
  96. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -0
  97. package/lib/cjs/extension/extensions.d.ts +19 -0
  98. package/lib/cjs/extension/extensions.d.ts.map +1 -0
  99. package/lib/cjs/extension/extensions.js +36 -0
  100. package/lib/cjs/extension/extensions.js.map +1 -0
  101. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
  102. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  103. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +48 -44
  104. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  105. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +90 -80
  106. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  107. package/lib/cjs/quantity-formatting/QuantityFormatter.js +85 -45
  108. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  109. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
  110. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
  111. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js +32 -0
  112. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
  113. package/lib/cjs/quantity-formatting/UnitsData.d.ts +11 -0
  114. package/lib/cjs/quantity-formatting/UnitsData.d.ts.map +1 -0
  115. package/lib/cjs/quantity-formatting/UnitsData.js +59 -0
  116. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -0
  117. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  118. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  119. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  120. package/lib/cjs/render/RenderPlanarClassifier.d.ts +1 -1
  121. package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +1 -1
  122. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  123. package/lib/cjs/render/RenderSystem.d.ts +12 -7
  124. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  125. package/lib/cjs/render/RenderSystem.js +8 -5
  126. package/lib/cjs/render/RenderSystem.js.map +1 -1
  127. package/lib/cjs/render/RenderTarget.d.ts +4 -4
  128. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  129. package/lib/cjs/render/RenderTarget.js.map +1 -1
  130. package/lib/cjs/render/Scene.d.ts.map +1 -1
  131. package/lib/cjs/render/Scene.js.map +1 -1
  132. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
  133. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
  134. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
  135. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
  136. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  137. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  138. package/lib/cjs/render/webgl/BranchState.d.ts +2 -0
  139. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  140. package/lib/cjs/render/webgl/BranchState.js +5 -3
  141. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  142. package/lib/cjs/render/webgl/DrawCommand.js +1 -1
  143. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  144. package/lib/cjs/render/webgl/Graphic.d.ts +5 -3
  145. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  146. package/lib/cjs/render/webgl/Graphic.js +7 -2
  147. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  148. package/lib/cjs/render/webgl/PlanarClassifier.d.ts +4 -1
  149. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  150. package/lib/cjs/render/webgl/PlanarClassifier.js +22 -9
  151. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  152. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +2 -2
  153. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  154. package/lib/cjs/render/webgl/PlanarTextureProjection.js +5 -3
  155. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  156. package/lib/cjs/render/webgl/RealityMesh.d.ts +31 -11
  157. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  158. package/lib/cjs/render/webgl/RealityMesh.js +155 -52
  159. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  160. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  161. package/lib/cjs/render/webgl/RenderCommands.js +4 -0
  162. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  163. package/lib/cjs/render/webgl/SceneCompositor.d.ts +3 -0
  164. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  165. package/lib/cjs/render/webgl/SceneCompositor.js +45 -19
  166. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  167. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -0
  168. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  169. package/lib/cjs/render/webgl/ShaderProgram.js +1 -0
  170. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  171. package/lib/cjs/render/webgl/System.d.ts +9 -9
  172. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  173. package/lib/cjs/render/webgl/System.js +5 -5
  174. package/lib/cjs/render/webgl/System.js.map +1 -1
  175. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  176. package/lib/cjs/render/webgl/Target.js.map +1 -1
  177. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  178. package/lib/cjs/render/webgl/Texture.js +2 -2
  179. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  180. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +1 -1
  181. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  182. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  183. package/lib/cjs/render/webgl/glsl/RealityMesh.js +102 -27
  184. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  185. package/lib/cjs/tile/ClassifierTileTree.d.ts +4 -2
  186. package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
  187. package/lib/cjs/tile/ClassifierTileTree.js +31 -16
  188. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  189. package/lib/cjs/tile/DynamicIModelTile.d.ts.map +1 -1
  190. package/lib/cjs/tile/DynamicIModelTile.js +1 -1
  191. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  192. package/lib/cjs/tile/GltfReader.d.ts +22 -3
  193. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  194. package/lib/cjs/tile/GltfReader.js +224 -40
  195. package/lib/cjs/tile/GltfReader.js.map +1 -1
  196. package/lib/cjs/tile/LRUTileList.d.ts +29 -29
  197. package/lib/cjs/tile/LRUTileList.d.ts.map +1 -1
  198. package/lib/cjs/tile/LRUTileList.js +50 -50
  199. package/lib/cjs/tile/LRUTileList.js.map +1 -1
  200. package/lib/cjs/tile/OPCFormatInterpreter.d.ts +22 -0
  201. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -0
  202. package/lib/cjs/tile/OPCFormatInterpreter.js +92 -0
  203. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -0
  204. package/lib/cjs/tile/OrbitGtTileTree.js +1 -1
  205. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  206. package/lib/cjs/tile/PntsReader.d.ts +1 -1
  207. package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
  208. package/lib/cjs/tile/PntsReader.js +170 -36
  209. package/lib/cjs/tile/PntsReader.js.map +1 -1
  210. package/lib/cjs/tile/PrimaryTileTree.d.ts +18 -2
  211. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  212. package/lib/cjs/tile/PrimaryTileTree.js +53 -2
  213. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  214. package/lib/cjs/tile/RealityModelTileTree.d.ts +24 -3
  215. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  216. package/lib/cjs/tile/RealityModelTileTree.js +37 -12
  217. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  218. package/lib/cjs/tile/RealityTile.d.ts +17 -3
  219. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  220. package/lib/cjs/tile/RealityTile.js +34 -2
  221. package/lib/cjs/tile/RealityTile.js.map +1 -1
  222. package/lib/cjs/tile/RealityTileDrawArgs.d.ts +4 -1
  223. package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +1 -1
  224. package/lib/cjs/tile/RealityTileDrawArgs.js +3 -1
  225. package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
  226. package/lib/cjs/tile/RealityTileLoader.d.ts +8 -5
  227. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  228. package/lib/cjs/tile/RealityTileLoader.js +20 -6
  229. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  230. package/lib/cjs/tile/RealityTileTree.d.ts +4 -1
  231. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  232. package/lib/cjs/tile/RealityTileTree.js +12 -4
  233. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  234. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
  235. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  236. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +179 -0
  237. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  238. package/lib/cjs/tile/Tile.d.ts +5 -4
  239. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  240. package/lib/cjs/tile/Tile.js +3 -2
  241. package/lib/cjs/tile/Tile.js.map +1 -1
  242. package/lib/cjs/tile/TileAdmin.d.ts +43 -45
  243. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  244. package/lib/cjs/tile/TileAdmin.js +104 -99
  245. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  246. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  247. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  248. package/lib/cjs/tile/TileDrawArgs.js +5 -0
  249. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  250. package/lib/cjs/tile/TileGeometryCollector.d.ts +80 -0
  251. package/lib/cjs/tile/TileGeometryCollector.d.ts.map +1 -0
  252. package/lib/cjs/tile/TileGeometryCollector.js +71 -0
  253. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -0
  254. package/lib/cjs/tile/TileRequest.d.ts +12 -9
  255. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  256. package/lib/cjs/tile/TileRequest.js +19 -11
  257. package/lib/cjs/tile/TileRequest.js.map +1 -1
  258. package/lib/cjs/tile/TileRequestChannel.js +3 -3
  259. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  260. package/lib/cjs/tile/TileTree.d.ts +7 -1
  261. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  262. package/lib/cjs/tile/TileTree.js +8 -1
  263. package/lib/cjs/tile/TileTree.js.map +1 -1
  264. package/lib/cjs/tile/TileTreeReference.d.ts +27 -2
  265. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  266. package/lib/cjs/tile/TileTreeReference.js +41 -1
  267. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  268. package/lib/cjs/tile/TileUsageMarker.d.ts +9 -9
  269. package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
  270. package/lib/cjs/tile/TileUsageMarker.js +9 -9
  271. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  272. package/lib/cjs/tile/TileUser.d.ts +33 -0
  273. package/lib/cjs/tile/TileUser.d.ts.map +1 -0
  274. package/lib/cjs/tile/TileUser.js +28 -0
  275. package/lib/cjs/tile/TileUser.js.map +1 -0
  276. package/lib/cjs/tile/TileUserSet.d.ts +28 -0
  277. package/lib/cjs/tile/TileUserSet.d.ts.map +1 -0
  278. package/lib/cjs/tile/TileUserSet.js +123 -0
  279. package/lib/cjs/tile/TileUserSet.js.map +1 -0
  280. package/lib/cjs/tile/internal.d.ts +6 -0
  281. package/lib/cjs/tile/internal.d.ts.map +1 -1
  282. package/lib/cjs/tile/internal.js +6 -0
  283. package/lib/cjs/tile/internal.js.map +1 -1
  284. package/lib/cjs/tile/map/CesiumTerrainProvider.js +2 -2
  285. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  286. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +6 -5
  287. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  288. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -13
  289. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  290. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +3 -4
  291. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  292. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  293. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  294. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
  295. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  296. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  297. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  298. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +3 -4
  299. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  300. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +5 -4
  301. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  302. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
  303. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  304. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  305. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
  306. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  307. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
  308. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  309. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
  310. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  311. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  312. package/lib/cjs/tile/map/ImageryTileTree.d.ts +4 -5
  313. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  314. package/lib/cjs/tile/map/ImageryTileTree.js +5 -4
  315. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  316. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +26 -0
  317. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -0
  318. package/lib/cjs/tile/map/MapFeatureInfo.js +19 -0
  319. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -0
  320. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +4 -4
  321. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  322. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  323. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +3 -3
  324. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  325. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  326. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +5 -4
  327. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  328. package/lib/cjs/tile/map/MapLayerImageryProvider.js +5 -1
  329. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  330. package/lib/cjs/tile/map/MapLayerSources.d.ts +2 -2
  331. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  332. package/lib/cjs/tile/map/MapLayerSources.js +6 -4
  333. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  334. package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts +10 -2
  335. package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
  336. package/lib/cjs/tile/map/MapLayerTileTreeReference.js +26 -3
  337. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  338. package/lib/cjs/tile/map/MapTile.d.ts +12 -10
  339. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  340. package/lib/cjs/tile/map/MapTile.js +60 -39
  341. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  342. package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -1
  343. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  344. package/lib/cjs/tile/map/MapTileLoader.js +4 -1
  345. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  346. package/lib/cjs/tile/map/MapTileTree.d.ts +21 -11
  347. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  348. package/lib/cjs/tile/map/MapTileTree.js +152 -65
  349. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  350. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  351. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +1 -1
  352. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  353. package/lib/cjs/tools/ToolAdmin.d.ts +2 -3
  354. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  355. package/lib/cjs/tools/ToolAdmin.js +7 -2
  356. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  357. package/lib/cjs/tools/ViewTool.d.ts +4 -4
  358. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  359. package/lib/cjs/tools/ViewTool.js +1 -1
  360. package/lib/cjs/tools/ViewTool.js.map +1 -1
  361. package/lib/esm/AccuSnap.js +2 -2
  362. package/lib/esm/AccuSnap.js.map +1 -1
  363. package/lib/esm/ApproximateTerrainHeights.d.ts +1 -1
  364. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  365. package/lib/esm/ApproximateTerrainHeights.js +2 -9
  366. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  367. package/lib/esm/ApproximateTerrainHeightsProps.d.ts +12 -0
  368. package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -0
  369. package/lib/esm/ApproximateTerrainHeightsProps.js +10 -0
  370. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -0
  371. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  372. package/lib/esm/BriefcaseConnection.js +6 -5
  373. package/lib/esm/BriefcaseConnection.js.map +1 -1
  374. package/lib/esm/CategorySelectorState.js +1 -1
  375. package/lib/esm/CategorySelectorState.js.map +1 -1
  376. package/lib/esm/DisplayStyleState.d.ts +4 -3
  377. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  378. package/lib/esm/DisplayStyleState.js +34 -10
  379. package/lib/esm/DisplayStyleState.js.map +1 -1
  380. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  381. package/lib/esm/DrawingViewState.js +9 -8
  382. package/lib/esm/DrawingViewState.js.map +1 -1
  383. package/lib/esm/FrontendLoggerCategory.d.ts +3 -1
  384. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  385. package/lib/esm/FrontendLoggerCategory.js +2 -0
  386. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  387. package/lib/esm/IModelApp.d.ts +8 -4
  388. package/lib/esm/IModelApp.d.ts.map +1 -1
  389. package/lib/esm/IModelApp.js +20 -10
  390. package/lib/esm/IModelApp.js.map +1 -1
  391. package/lib/esm/IModelConnection.d.ts +3 -5
  392. package/lib/esm/IModelConnection.d.ts.map +1 -1
  393. package/lib/esm/IModelConnection.js +5 -11
  394. package/lib/esm/IModelConnection.js.map +1 -1
  395. package/lib/esm/ImageUtil.d.ts.map +1 -1
  396. package/lib/esm/ImageUtil.js +8 -14
  397. package/lib/esm/ImageUtil.js.map +1 -1
  398. package/lib/esm/LocalhostIpcApp.d.ts +2 -0
  399. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  400. package/lib/esm/LocalhostIpcApp.js +10 -4
  401. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  402. package/lib/esm/RealityDataSource.d.ts +60 -14
  403. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  404. package/lib/esm/RealityDataSource.js +37 -237
  405. package/lib/esm/RealityDataSource.js.map +1 -1
  406. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
  407. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
  408. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +162 -0
  409. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
  410. package/lib/esm/RealityDataSourceContextShareImpl.d.ts +83 -0
  411. package/lib/esm/RealityDataSourceContextShareImpl.d.ts.map +1 -0
  412. package/lib/esm/RealityDataSourceContextShareImpl.js +230 -0
  413. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -0
  414. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
  415. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
  416. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +131 -0
  417. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -0
  418. package/lib/esm/SheetViewState.js +7 -3
  419. package/lib/esm/SheetViewState.js.map +1 -1
  420. package/lib/esm/ViewState.d.ts +8 -0
  421. package/lib/esm/ViewState.d.ts.map +1 -1
  422. package/lib/esm/ViewState.js +1 -1
  423. package/lib/esm/ViewState.js.map +1 -1
  424. package/lib/esm/Viewport.d.ts +35 -14
  425. package/lib/esm/Viewport.d.ts.map +1 -1
  426. package/lib/esm/Viewport.js +60 -11
  427. package/lib/esm/Viewport.js.map +1 -1
  428. package/lib/esm/core-frontend.d.ts +6 -4
  429. package/lib/esm/core-frontend.d.ts.map +1 -1
  430. package/lib/esm/core-frontend.js +6 -4
  431. package/lib/esm/core-frontend.js.map +1 -1
  432. package/lib/esm/extension/Extension.d.ts +48 -0
  433. package/lib/esm/extension/Extension.d.ts.map +1 -0
  434. package/lib/esm/extension/Extension.js +15 -0
  435. package/lib/esm/extension/Extension.js.map +1 -0
  436. package/lib/esm/extension/ExtensionAdmin.d.ts +64 -0
  437. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -0
  438. package/lib/esm/extension/ExtensionAdmin.js +102 -0
  439. package/lib/esm/extension/ExtensionAdmin.js.map +1 -0
  440. package/lib/esm/extension/ExtensionHost.d.ts +23 -0
  441. package/lib/esm/extension/ExtensionHost.d.ts.map +1 -0
  442. package/lib/esm/extension/ExtensionHost.js +22 -0
  443. package/lib/esm/extension/ExtensionHost.js.map +1 -0
  444. package/lib/esm/extension/ExtensionImpl.d.ts +21 -0
  445. package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -0
  446. package/lib/esm/extension/ExtensionImpl.js +40 -0
  447. package/lib/esm/extension/ExtensionImpl.js.map +1 -0
  448. package/lib/esm/extension/ExtensionLoader.d.ts +26 -0
  449. package/lib/esm/extension/ExtensionLoader.d.ts.map +1 -0
  450. package/lib/esm/extension/ExtensionLoader.js +9 -0
  451. package/lib/esm/extension/ExtensionLoader.js.map +1 -0
  452. package/lib/esm/extension/ExtensionRuntime.d.ts +5 -0
  453. package/lib/esm/extension/ExtensionRuntime.d.ts.map +1 -0
  454. package/lib/esm/extension/ExtensionRuntime.js +84 -0
  455. package/lib/esm/extension/ExtensionRuntime.js.map +1 -0
  456. package/lib/esm/extension/extensions.d.ts +19 -0
  457. package/lib/esm/extension/extensions.d.ts.map +1 -0
  458. package/lib/esm/extension/extensions.js +24 -0
  459. package/lib/esm/extension/extensions.js.map +1 -0
  460. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
  461. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  462. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +48 -44
  463. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  464. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +90 -80
  465. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  466. package/lib/esm/quantity-formatting/QuantityFormatter.js +85 -42
  467. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  468. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
  469. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
  470. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js +26 -0
  471. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
  472. package/lib/esm/quantity-formatting/UnitsData.d.ts +11 -0
  473. package/lib/esm/quantity-formatting/UnitsData.d.ts.map +1 -0
  474. package/lib/esm/quantity-formatting/UnitsData.js +56 -0
  475. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -0
  476. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  477. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  478. package/lib/esm/render/GraphicBranch.js.map +1 -1
  479. package/lib/esm/render/RenderPlanarClassifier.d.ts +1 -1
  480. package/lib/esm/render/RenderPlanarClassifier.d.ts.map +1 -1
  481. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  482. package/lib/esm/render/RenderSystem.d.ts +12 -7
  483. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  484. package/lib/esm/render/RenderSystem.js +6 -3
  485. package/lib/esm/render/RenderSystem.js.map +1 -1
  486. package/lib/esm/render/RenderTarget.d.ts +4 -4
  487. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  488. package/lib/esm/render/RenderTarget.js.map +1 -1
  489. package/lib/esm/render/Scene.d.ts.map +1 -1
  490. package/lib/esm/render/Scene.js.map +1 -1
  491. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
  492. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
  493. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
  494. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
  495. package/lib/esm/render/webgl/BackgroundMapDrape.js +1 -1
  496. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  497. package/lib/esm/render/webgl/BranchState.d.ts +2 -0
  498. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  499. package/lib/esm/render/webgl/BranchState.js +5 -3
  500. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  501. package/lib/esm/render/webgl/DrawCommand.js +1 -1
  502. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  503. package/lib/esm/render/webgl/Graphic.d.ts +5 -3
  504. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  505. package/lib/esm/render/webgl/Graphic.js +7 -2
  506. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  507. package/lib/esm/render/webgl/PlanarClassifier.d.ts +4 -1
  508. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  509. package/lib/esm/render/webgl/PlanarClassifier.js +22 -9
  510. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  511. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +2 -2
  512. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  513. package/lib/esm/render/webgl/PlanarTextureProjection.js +5 -3
  514. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  515. package/lib/esm/render/webgl/RealityMesh.d.ts +31 -11
  516. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  517. package/lib/esm/render/webgl/RealityMesh.js +155 -52
  518. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  519. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  520. package/lib/esm/render/webgl/RenderCommands.js +4 -0
  521. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  522. package/lib/esm/render/webgl/SceneCompositor.d.ts +3 -0
  523. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  524. package/lib/esm/render/webgl/SceneCompositor.js +45 -19
  525. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  526. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -0
  527. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  528. package/lib/esm/render/webgl/ShaderProgram.js +1 -0
  529. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  530. package/lib/esm/render/webgl/System.d.ts +9 -9
  531. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  532. package/lib/esm/render/webgl/System.js +6 -6
  533. package/lib/esm/render/webgl/System.js.map +1 -1
  534. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  535. package/lib/esm/render/webgl/Target.js.map +1 -1
  536. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  537. package/lib/esm/render/webgl/Texture.js +2 -2
  538. package/lib/esm/render/webgl/Texture.js.map +1 -1
  539. package/lib/esm/render/webgl/glsl/PlanarClassification.js +1 -1
  540. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  541. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  542. package/lib/esm/render/webgl/glsl/RealityMesh.js +103 -28
  543. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  544. package/lib/esm/tile/ClassifierTileTree.d.ts +4 -2
  545. package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
  546. package/lib/esm/tile/ClassifierTileTree.js +32 -17
  547. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  548. package/lib/esm/tile/DynamicIModelTile.d.ts.map +1 -1
  549. package/lib/esm/tile/DynamicIModelTile.js +1 -1
  550. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  551. package/lib/esm/tile/GltfReader.d.ts +22 -3
  552. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  553. package/lib/esm/tile/GltfReader.js +207 -42
  554. package/lib/esm/tile/GltfReader.js.map +1 -1
  555. package/lib/esm/tile/LRUTileList.d.ts +29 -29
  556. package/lib/esm/tile/LRUTileList.d.ts.map +1 -1
  557. package/lib/esm/tile/LRUTileList.js +47 -47
  558. package/lib/esm/tile/LRUTileList.js.map +1 -1
  559. package/lib/esm/tile/OPCFormatInterpreter.d.ts +22 -0
  560. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -0
  561. package/lib/esm/tile/OPCFormatInterpreter.js +88 -0
  562. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -0
  563. package/lib/esm/tile/OrbitGtTileTree.js +1 -1
  564. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  565. package/lib/esm/tile/PntsReader.d.ts +1 -1
  566. package/lib/esm/tile/PntsReader.d.ts.map +1 -1
  567. package/lib/esm/tile/PntsReader.js +154 -39
  568. package/lib/esm/tile/PntsReader.js.map +1 -1
  569. package/lib/esm/tile/PrimaryTileTree.d.ts +18 -2
  570. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  571. package/lib/esm/tile/PrimaryTileTree.js +51 -2
  572. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  573. package/lib/esm/tile/RealityModelTileTree.d.ts +24 -3
  574. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  575. package/lib/esm/tile/RealityModelTileTree.js +37 -13
  576. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  577. package/lib/esm/tile/RealityTile.d.ts +17 -3
  578. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  579. package/lib/esm/tile/RealityTile.js +34 -2
  580. package/lib/esm/tile/RealityTile.js.map +1 -1
  581. package/lib/esm/tile/RealityTileDrawArgs.d.ts +4 -1
  582. package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +1 -1
  583. package/lib/esm/tile/RealityTileDrawArgs.js +3 -1
  584. package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
  585. package/lib/esm/tile/RealityTileLoader.d.ts +8 -5
  586. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  587. package/lib/esm/tile/RealityTileLoader.js +20 -6
  588. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  589. package/lib/esm/tile/RealityTileTree.d.ts +4 -1
  590. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  591. package/lib/esm/tile/RealityTileTree.js +14 -6
  592. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  593. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
  594. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  595. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +175 -0
  596. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  597. package/lib/esm/tile/Tile.d.ts +5 -4
  598. package/lib/esm/tile/Tile.d.ts.map +1 -1
  599. package/lib/esm/tile/Tile.js +3 -2
  600. package/lib/esm/tile/Tile.js.map +1 -1
  601. package/lib/esm/tile/TileAdmin.d.ts +43 -45
  602. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  603. package/lib/esm/tile/TileAdmin.js +105 -100
  604. package/lib/esm/tile/TileAdmin.js.map +1 -1
  605. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  606. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  607. package/lib/esm/tile/TileDrawArgs.js +5 -0
  608. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  609. package/lib/esm/tile/TileGeometryCollector.d.ts +80 -0
  610. package/lib/esm/tile/TileGeometryCollector.d.ts.map +1 -0
  611. package/lib/esm/tile/TileGeometryCollector.js +67 -0
  612. package/lib/esm/tile/TileGeometryCollector.js.map +1 -0
  613. package/lib/esm/tile/TileRequest.d.ts +12 -9
  614. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  615. package/lib/esm/tile/TileRequest.js +19 -11
  616. package/lib/esm/tile/TileRequest.js.map +1 -1
  617. package/lib/esm/tile/TileRequestChannel.js +3 -3
  618. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  619. package/lib/esm/tile/TileTree.d.ts +7 -1
  620. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  621. package/lib/esm/tile/TileTree.js +8 -1
  622. package/lib/esm/tile/TileTree.js.map +1 -1
  623. package/lib/esm/tile/TileTreeReference.d.ts +27 -2
  624. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  625. package/lib/esm/tile/TileTreeReference.js +43 -3
  626. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  627. package/lib/esm/tile/TileUsageMarker.d.ts +9 -9
  628. package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
  629. package/lib/esm/tile/TileUsageMarker.js +9 -9
  630. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  631. package/lib/esm/tile/TileUser.d.ts +33 -0
  632. package/lib/esm/tile/TileUser.d.ts.map +1 -0
  633. package/lib/esm/tile/TileUser.js +25 -0
  634. package/lib/esm/tile/TileUser.js.map +1 -0
  635. package/lib/esm/tile/TileUserSet.d.ts +28 -0
  636. package/lib/esm/tile/TileUserSet.d.ts.map +1 -0
  637. package/lib/esm/tile/TileUserSet.js +118 -0
  638. package/lib/esm/tile/TileUserSet.js.map +1 -0
  639. package/lib/esm/tile/internal.d.ts +6 -0
  640. package/lib/esm/tile/internal.d.ts.map +1 -1
  641. package/lib/esm/tile/internal.js +6 -0
  642. package/lib/esm/tile/internal.js.map +1 -1
  643. package/lib/esm/tile/map/CesiumTerrainProvider.js +2 -2
  644. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  645. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +6 -5
  646. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  647. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +47 -14
  648. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  649. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +3 -4
  650. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  651. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
  652. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  653. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
  654. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  655. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  656. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  657. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +3 -4
  658. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  659. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +5 -4
  660. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  661. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
  662. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  663. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  664. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
  665. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  666. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
  667. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  668. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
  669. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  670. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  671. package/lib/esm/tile/map/ImageryTileTree.d.ts +4 -5
  672. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  673. package/lib/esm/tile/map/ImageryTileTree.js +5 -4
  674. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  675. package/lib/esm/tile/map/MapFeatureInfo.d.ts +26 -0
  676. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -0
  677. package/lib/esm/tile/map/MapFeatureInfo.js +15 -0
  678. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -0
  679. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +4 -4
  680. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  681. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  682. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +3 -3
  683. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  684. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  685. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +5 -4
  686. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  687. package/lib/esm/tile/map/MapLayerImageryProvider.js +5 -1
  688. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  689. package/lib/esm/tile/map/MapLayerSources.d.ts +2 -2
  690. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  691. package/lib/esm/tile/map/MapLayerSources.js +6 -4
  692. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  693. package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts +10 -2
  694. package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
  695. package/lib/esm/tile/map/MapLayerTileTreeReference.js +25 -3
  696. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  697. package/lib/esm/tile/map/MapTile.d.ts +12 -10
  698. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  699. package/lib/esm/tile/map/MapTile.js +60 -39
  700. package/lib/esm/tile/map/MapTile.js.map +1 -1
  701. package/lib/esm/tile/map/MapTileLoader.d.ts +2 -1
  702. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  703. package/lib/esm/tile/map/MapTileLoader.js +4 -1
  704. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  705. package/lib/esm/tile/map/MapTileTree.d.ts +21 -11
  706. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  707. package/lib/esm/tile/map/MapTileTree.js +154 -67
  708. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  709. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  710. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +2 -2
  711. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  712. package/lib/esm/tools/ToolAdmin.d.ts +2 -3
  713. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  714. package/lib/esm/tools/ToolAdmin.js +8 -3
  715. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  716. package/lib/esm/tools/ViewTool.d.ts +4 -4
  717. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  718. package/lib/esm/tools/ViewTool.js +1 -1
  719. package/lib/esm/tools/ViewTool.js.map +1 -1
  720. package/package.json +22 -20
  721. package/lib/cjs/ViewportSet.d.ts +0 -28
  722. package/lib/cjs/ViewportSet.d.ts.map +0 -1
  723. package/lib/cjs/ViewportSet.js +0 -126
  724. package/lib/cjs/ViewportSet.js.map +0 -1
  725. package/lib/cjs/tile/DracoDecoder.d.ts +0 -20
  726. package/lib/cjs/tile/DracoDecoder.d.ts.map +0 -1
  727. package/lib/cjs/tile/DracoDecoder.js +0 -169
  728. package/lib/cjs/tile/DracoDecoder.js.map +0 -1
  729. package/lib/esm/ViewportSet.d.ts +0 -28
  730. package/lib/esm/ViewportSet.d.ts.map +0 -1
  731. package/lib/esm/ViewportSet.js +0 -121
  732. package/lib/esm/ViewportSet.js.map +0 -1
  733. package/lib/esm/tile/DracoDecoder.d.ts +0 -20
  734. package/lib/esm/tile/DracoDecoder.d.ts.map +0 -1
  735. package/lib/esm/tile/DracoDecoder.js +0 -165
  736. package/lib/esm/tile/DracoDecoder.js.map +0 -1
  737. package/lib/public/assets/approximateTerrainHeights.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicIModelTile.js","sourceRoot":"","sources":["../../../src/tile/DynamicIModelTile.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 {\r\n assert, BeTimePoint, ByteStream, compareStrings, DbOpcode, Id64, Id64Array, Id64String, partitionArray, SortedArray,\r\n} from \"@itwin/core-bentley\";\r\nimport { Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n BatchType, ElementGeometryChange, ElementGraphicsRequestProps, FeatureAppearance, FeatureAppearanceProvider, FeatureAppearanceSource, GeometryClass, TileFormat,\r\n} from \"@itwin/core-common\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport {\r\n ImdlReader, IModelTileTree, RootIModelTile, Tile, TileContent, TileDrawArgs, TileParams, TileRequest, TileRequestChannel, TileTree,\r\n} from \"./internal\";\r\n\r\n/** The root tile for the branch of an [[IModelTileTree]] containing graphics for elements that have been modified during the current\r\n * Not intended for direct consumption - exported for use by [[IModelTileTree]].\r\n * [[GraphicalEditingScope]].\r\n * @internal\r\n */\r\nexport abstract class DynamicIModelTile extends Tile {\r\n protected constructor(params: TileParams, tree: TileTree) {\r\n super(params, tree);\r\n }\r\n\r\n public static create(root: RootIModelTile, elements: Iterable<ElementGeometryChange>): DynamicIModelTile {\r\n return new RootTile(root, elements);\r\n }\r\n\r\n /** Updates the tiles when elements are modified during the editing scope. */\r\n public abstract handleGeometryChanges(changes: Iterable<ElementGeometryChange>): void;\r\n\r\n /** Overrides symbology of the *static* [[IModelTile]]s to hide elements that have been deleted or modified. */\r\n public abstract get appearanceProvider(): FeatureAppearanceProvider;\r\n\r\n /** Exposed strictly for tests. */\r\n public abstract get hiddenElements(): Id64Array;\r\n\r\n /** Select tiles for display, requesting content for tiles as necessary. */\r\n public abstract selectTiles(selected: Tile[], args: TileDrawArgs): void;\r\n\r\n /** Discard tiles that have not been used since the specified time point. */\r\n public abstract pruneChildren(olderThan: BeTimePoint): void;\r\n}\r\n\r\n/** The child tiles of the root tile, representing inserted or modified elements and sorted by element Id. */\r\nclass ElementTiles extends SortedArray<ElementTile> {\r\n public constructor() {\r\n super((lhs, rhs) => compareStrings(lhs.contentId, rhs.contentId));\r\n }\r\n\r\n public get array(): ElementTile[] {\r\n return this._array;\r\n }\r\n}\r\n\r\n/** The root tile. Each of its children represent a newly-inserted or modified element. */\r\nclass RootTile extends DynamicIModelTile implements FeatureAppearanceProvider {\r\n private readonly _hiddenElements: Id64.Uint32Set;\r\n public readonly transformToTree: Transform;\r\n private readonly _elements: ElementTiles;\r\n\r\n private get _imodelRoot() { return this.parent as RootIModelTile; }\r\n\r\n private get _elementChildren(): ElementTile[] {\r\n assert(undefined !== this.children);\r\n assert(this.children === this._elements.array);\r\n return this._elements.array;\r\n }\r\n\r\n public constructor(parent: RootIModelTile, elements: Iterable<ElementGeometryChange>) {\r\n const params: TileParams = {\r\n parent,\r\n isLeaf: false,\r\n contentId: \"dynamic\",\r\n range: Range3d.createNull(),\r\n maximumSize: parent.tileScreenSize,\r\n };\r\n\r\n super(params, parent.tree);\r\n\r\n this._hiddenElements = new Id64.Uint32Set();\r\n\r\n const inverseTransform = parent.tree.iModelTransform.inverse();\r\n assert(undefined !== inverseTransform);\r\n this.transformToTree = inverseTransform;\r\n\r\n this._elements = new ElementTiles();\r\n this.loadChildren(); // initially empty.\r\n assert(undefined !== this.children);\r\n\r\n this.setIsReady();\r\n this.handleGeometryChanges(elements);\r\n }\r\n\r\n public get hiddenElements(): Id64Array {\r\n return this._hiddenElements.toId64Array();\r\n }\r\n\r\n public get appearanceProvider(): FeatureAppearanceProvider {\r\n return this;\r\n }\r\n\r\n public getFeatureAppearance(source: FeatureAppearanceSource, elemLo: number, elemHi: number, subcatLo: number, subcatHi: number, geomClass: GeometryClass, modelLo: number, modelHi: number, type: BatchType, animationNodeId: number): FeatureAppearance | undefined {\r\n if (this._hiddenElements.has(elemLo, elemHi))\r\n return undefined;\r\n\r\n return source.getAppearance(elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId);\r\n }\r\n\r\n public handleGeometryChanges(changes: Iterable<ElementGeometryChange>): void {\r\n assert(undefined !== this.children);\r\n\r\n for (const change of changes) {\r\n if (change.type !== DbOpcode.Insert)\r\n this._hiddenElements.addId(change.id);\r\n\r\n let tile = this._elements.findEquivalent((t: ElementTile) => compareStrings(t.contentId, change.id));\r\n if (change.type === DbOpcode.Delete) {\r\n if (tile) {\r\n tile.dispose();\r\n this._elements.remove(tile);\r\n }\r\n } else {\r\n const range = change.range.isNull ? change.range.clone() : this.transformToTree.multiplyRange(change.range);\r\n if (tile)\r\n tile.update(range);\r\n else\r\n this._elements.insert(tile = new ElementTile(this, change.id, range));\r\n }\r\n }\r\n\r\n // Recompute range.\r\n this.range.setNull();\r\n for (const element of this._elements)\r\n this.range.extendRange(element.range);\r\n\r\n this._imodelRoot.updateDynamicRange(this);\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (errpr: Error) => void): void {\r\n // This is invoked from constructor. We will add a child per element later - for now just mark the children as having been loaded.\r\n resolve(this._elements.array);\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n throw new Error(\"Root dynamic tile has no content\");\r\n }\r\n\r\n public async requestContent(): Promise<TileRequest.Response> {\r\n assert(false, \"Root dynamic tile has no content\");\r\n return undefined;\r\n }\r\n\r\n public async readContent(_data: TileRequest.ResponseData, _system: RenderSystem, _isCanceled: () => boolean): Promise<TileContent> {\r\n throw new Error(\"Root dynamic tile has no content\");\r\n }\r\n\r\n public selectTiles(selected: Tile[], args: TileDrawArgs): void {\r\n for (const child of this._elementChildren)\r\n child.selectTiles(selected, args);\r\n }\r\n\r\n public pruneChildren(olderThan: BeTimePoint): void {\r\n // Never discard ElementTiles - do discard not-recently-used graphics.\r\n for (const child of this._elementChildren)\r\n child.pruneChildren(olderThan);\r\n }\r\n}\r\n\r\n/** Represents a single element that has been inserted or had its geometric properties modified during the current [[GraphicalEditingScope]].\r\n * It has no graphics of its own; it has any number of child tiles, each of which have graphics of a different level of detail.\r\n * Its contentId is the element's Id.\r\n */\r\nclass ElementTile extends Tile {\r\n public constructor(parent: RootTile, elementId: Id64String, range: Range3d) {\r\n super({\r\n parent,\r\n isLeaf: false,\r\n contentId: elementId,\r\n range,\r\n maximumSize: parent.maximumSize,\r\n }, parent.tree);\r\n\r\n this.loadChildren();\r\n this.setIsReady();\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void {\r\n // Invoked from constructor. We'll add child tiles later as needed.\r\n resolve([]);\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n throw new Error(\"ElementTile has no content\");\r\n }\r\n\r\n public async requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n assert(false, \"ElementTile has no content\");\r\n return undefined;\r\n }\r\n\r\n public async readContent(_data: TileRequest.ResponseData, _system: RenderSystem, _isCanceled: () => boolean): Promise<TileContent> {\r\n throw new Error(\"ElementTile has no content\");\r\n }\r\n\r\n public pruneChildren(olderThan: BeTimePoint): void {\r\n const children = this.children as GraphicsTile[];\r\n assert(undefined !== children);\r\n\r\n const partitionIndex = partitionArray(children, (child) => !child.usageMarker.isExpired(olderThan));\r\n\r\n // Remove expired children.\r\n if (partitionIndex < children.length) {\r\n const expired = children.splice(partitionIndex);\r\n for (const child of expired)\r\n child.dispose();\r\n }\r\n\r\n // Restore ordering.\r\n children.sort((x, y) => y.toleranceLog10 - x.toleranceLog10);\r\n }\r\n\r\n public selectTiles(selected: Tile[], args: TileDrawArgs): void {\r\n assert(undefined !== this.children);\r\n if (this.isRegionCulled(args))\r\n return;\r\n\r\n args.markUsed(this);\r\n\r\n // ###TODO: Test content range culled.\r\n\r\n // Compute the ideal chord tolerance.\r\n assert(this.maximumSize > 0);\r\n const pixelSize = args.getPixelSizeInMetersAtClosestPoint(this);\r\n assert(pixelSize > 0);\r\n\r\n // Round down to the nearest power of ten.\r\n const toleranceLog10 = Math.floor(Math.log10(pixelSize));\r\n\r\n // Find (or create) a child tile of desired tolerance. Also find a child tile that can be substituted for the desired tile if that tile's content is not yet loaded.\r\n // NB: Children are sorted in descending order by log10(tolerance)\r\n const children = this.children as GraphicsTile[];\r\n let closestMatch: GraphicsTile | undefined;\r\n let exactMatch: GraphicsTile | undefined;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n const tol = child.toleranceLog10;\r\n if (tol > toleranceLog10) {\r\n assert(undefined === exactMatch);\r\n if (child.hasGraphics)\r\n closestMatch = child;\r\n } else if (tol === toleranceLog10) {\r\n exactMatch = child;\r\n } else if (tol < toleranceLog10) {\r\n if (!exactMatch)\r\n children.splice(i++, 0, exactMatch = new GraphicsTile(this, toleranceLog10));\r\n\r\n if (child.hasGraphics && (!closestMatch || closestMatch.toleranceLog10 > toleranceLog10))\r\n closestMatch = child;\r\n }\r\n }\r\n\r\n if (!exactMatch) {\r\n assert(children.length === 0 || children[children.length - 1].toleranceLog10 > toleranceLog10);\r\n children.push(exactMatch = new GraphicsTile(this, toleranceLog10));\r\n }\r\n\r\n if (!exactMatch.isReady) {\r\n args.insertMissing(exactMatch);\r\n if (closestMatch) {\r\n selected.push(closestMatch);\r\n args.markUsed(closestMatch);\r\n }\r\n } else if (exactMatch.hasGraphics) {\r\n selected.push(exactMatch);\r\n args.markUsed(exactMatch);\r\n }\r\n }\r\n\r\n public update(range: Range3d): void {\r\n range.clone(this.range);\r\n\r\n // Discard out-dated graphics.\r\n assert(undefined !== this.children);\r\n for (const child of this.children)\r\n child.dispose();\r\n\r\n this.children.length = 0;\r\n }\r\n}\r\n\r\nfunction* makeIdSequence() {\r\n let current = 0;\r\n while (true) {\r\n if (current >= Number.MAX_SAFE_INTEGER)\r\n current = 0;\r\n\r\n yield ++current;\r\n }\r\n}\r\n\r\nconst requestIdSequence = makeIdSequence();\r\n\r\n/** Supplies graphics of a specific LOD for a single element. */\r\nclass GraphicsTile extends Tile {\r\n public readonly toleranceLog10: number;\r\n public readonly tolerance: number;\r\n\r\n public constructor(parent: ElementTile, toleranceLog10: number) {\r\n assert(Math.round(toleranceLog10) === toleranceLog10);\r\n super({\r\n parent,\r\n isLeaf: true,\r\n contentId: `${parent.contentId}_${toleranceLog10}`,\r\n range: parent.range,\r\n maximumSize: parent.maximumSize,\r\n }, parent.tree);\r\n\r\n this.toleranceLog10 = toleranceLog10;\r\n this.tolerance = 10 ** toleranceLog10;\r\n }\r\n\r\n public override computeLoadPriority(_viewports: Iterable<Viewport>): number {\r\n // We want the element's graphics to be updated as soon as possible\r\n return 0;\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void {\r\n resolve(undefined);\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n return IModelApp.tileAdmin.channels.elementGraphicsRpc;\r\n }\r\n\r\n public async requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n // ###TODO tree flags (enforce display priority)\r\n // ###TODO classifiers, animation\r\n\r\n assert(undefined !== this.parent);\r\n\r\n const requestId = requestIdSequence.next();\r\n assert(!requestId.done);\r\n\r\n assert(this.tree instanceof IModelTileTree);\r\n const idProvider = this.tree.contentIdProvider;\r\n\r\n const props: ElementGraphicsRequestProps = {\r\n id: requestId.value.toString(16),\r\n elementId: this.parent.contentId,\r\n toleranceLog10: this.toleranceLog10,\r\n formatVersion: idProvider.majorFormatVersion,\r\n location: this.tree.iModelTransform.toJSON(),\r\n contentFlags: idProvider.contentFlags,\r\n omitEdges: !this.tree.hasEdges,\r\n clipToProjectExtents: true,\r\n sectionCut: this.tree.stringifiedSectionClip,\r\n };\r\n\r\n return IModelApp.tileAdmin.requestElementGraphics(this.tree.iModel, props);\r\n }\r\n\r\n public async readContent(data: TileRequest.ResponseData, system: RenderSystem, isCanceled: () => boolean): Promise<TileContent> {\r\n if (undefined === isCanceled)\r\n isCanceled = () => !this.isLoading;\r\n\r\n assert(data instanceof Uint8Array);\r\n const stream = ByteStream.fromUint8Array(data);\r\n\r\n const position = stream.curPos;\r\n const format = stream.nextUint32;\r\n stream.curPos = position;\r\n\r\n // ###TODO: IModelGraphics format wraps IModel format.\r\n assert(TileFormat.IModel === format);\r\n\r\n const tree = this.tree;\r\n assert(tree instanceof IModelTileTree);\r\n const { iModel, modelId, is3d, containsTransformNodes } = tree;\r\n const reader = ImdlReader.create({\r\n stream, iModel, modelId, is3d, system, isCanceled, containsTransformNodes,\r\n type: tree.batchType,\r\n loadEdges: tree.hasEdges,\r\n options: { tileId: this.contentId },\r\n });\r\n\r\n let content: TileContent = { isLeaf: true };\r\n if (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"]}
1
+ {"version":3,"file":"DynamicIModelTile.js","sourceRoot":"","sources":["../../../src/tile/DynamicIModelTile.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 {\r\n assert, BeTimePoint, ByteStream, compareStrings, DbOpcode, Id64, Id64Array, Id64String, partitionArray, SortedArray,\r\n} from \"@itwin/core-bentley\";\r\nimport { Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n BatchType, ElementGeometryChange, ElementGraphicsRequestProps, FeatureAppearance, FeatureAppearanceProvider, FeatureAppearanceSource, GeometryClass, TileFormat,\r\n} from \"@itwin/core-common\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport {\r\n ImdlReader, IModelTileTree, RootIModelTile, Tile, TileContent, TileDrawArgs, TileParams, TileRequest, TileRequestChannel, TileTree,\r\n} from \"./internal\";\r\n\r\n/** The root tile for the branch of an [[IModelTileTree]] containing graphics for elements that have been modified during the current\r\n * Not intended for direct consumption - exported for use by [[IModelTileTree]].\r\n * [[GraphicalEditingScope]].\r\n * @internal\r\n */\r\nexport abstract class DynamicIModelTile extends Tile {\r\n protected constructor(params: TileParams, tree: TileTree) {\r\n super(params, tree);\r\n }\r\n\r\n public static create(root: RootIModelTile, elements: Iterable<ElementGeometryChange>): DynamicIModelTile {\r\n return new RootTile(root, elements);\r\n }\r\n\r\n /** Updates the tiles when elements are modified during the editing scope. */\r\n public abstract handleGeometryChanges(changes: Iterable<ElementGeometryChange>): void;\r\n\r\n /** Overrides symbology of the *static* [[IModelTile]]s to hide elements that have been deleted or modified. */\r\n public abstract get appearanceProvider(): FeatureAppearanceProvider;\r\n\r\n /** Exposed strictly for tests. */\r\n public abstract get hiddenElements(): Id64Array;\r\n\r\n /** Select tiles for display, requesting content for tiles as necessary. */\r\n public abstract selectTiles(selected: Tile[], args: TileDrawArgs): void;\r\n\r\n /** Discard tiles that have not been used since the specified time point. */\r\n public abstract pruneChildren(olderThan: BeTimePoint): void;\r\n}\r\n\r\n/** The child tiles of the root tile, representing inserted or modified elements and sorted by element Id. */\r\nclass ElementTiles extends SortedArray<ElementTile> {\r\n public constructor() {\r\n super((lhs, rhs) => compareStrings(lhs.contentId, rhs.contentId));\r\n }\r\n\r\n public get array(): ElementTile[] {\r\n return this._array;\r\n }\r\n}\r\n\r\n/** The root tile. Each of its children represent a newly-inserted or modified element. */\r\nclass RootTile extends DynamicIModelTile implements FeatureAppearanceProvider {\r\n private readonly _hiddenElements: Id64.Uint32Set;\r\n public readonly transformToTree: Transform;\r\n private readonly _elements: ElementTiles;\r\n\r\n private get _imodelRoot() { return this.parent as RootIModelTile; }\r\n\r\n private get _elementChildren(): ElementTile[] {\r\n assert(undefined !== this.children);\r\n assert(this.children === this._elements.array);\r\n return this._elements.array;\r\n }\r\n\r\n public constructor(parent: RootIModelTile, elements: Iterable<ElementGeometryChange>) {\r\n const params: TileParams = {\r\n parent,\r\n isLeaf: false,\r\n contentId: \"dynamic\",\r\n range: Range3d.createNull(),\r\n maximumSize: parent.tileScreenSize,\r\n };\r\n\r\n super(params, parent.tree);\r\n\r\n this._hiddenElements = new Id64.Uint32Set();\r\n\r\n const inverseTransform = parent.tree.iModelTransform.inverse();\r\n assert(undefined !== inverseTransform);\r\n this.transformToTree = inverseTransform;\r\n\r\n this._elements = new ElementTiles();\r\n this.loadChildren(); // initially empty.\r\n assert(undefined !== this.children);\r\n\r\n this.setIsReady();\r\n this.handleGeometryChanges(elements);\r\n }\r\n\r\n public get hiddenElements(): Id64Array {\r\n return this._hiddenElements.toId64Array();\r\n }\r\n\r\n public get appearanceProvider(): FeatureAppearanceProvider {\r\n return this;\r\n }\r\n\r\n public getFeatureAppearance(source: FeatureAppearanceSource, elemLo: number, elemHi: number, subcatLo: number, subcatHi: number, geomClass: GeometryClass, modelLo: number, modelHi: number, type: BatchType, animationNodeId: number): FeatureAppearance | undefined {\r\n if (this._hiddenElements.has(elemLo, elemHi))\r\n return undefined;\r\n\r\n return source.getAppearance(elemLo, elemHi, subcatLo, subcatHi, geomClass, modelLo, modelHi, type, animationNodeId);\r\n }\r\n\r\n public handleGeometryChanges(changes: Iterable<ElementGeometryChange>): void {\r\n assert(undefined !== this.children);\r\n\r\n for (const change of changes) {\r\n if (change.type !== DbOpcode.Insert)\r\n this._hiddenElements.addId(change.id);\r\n\r\n let tile = this._elements.findEquivalent((t: ElementTile) => compareStrings(t.contentId, change.id));\r\n if (change.type === DbOpcode.Delete) {\r\n if (tile) {\r\n tile.dispose();\r\n this._elements.remove(tile);\r\n }\r\n } else {\r\n const range = change.range.isNull ? change.range.clone() : this.transformToTree.multiplyRange(change.range);\r\n if (tile)\r\n tile.update(range);\r\n else\r\n this._elements.insert(tile = new ElementTile(this, change.id, range));\r\n }\r\n }\r\n\r\n // Recompute range.\r\n this.range.setNull();\r\n for (const element of this._elements)\r\n this.range.extendRange(element.range);\r\n\r\n this._imodelRoot.updateDynamicRange(this);\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (errpr: Error) => void): void {\r\n // This is invoked from constructor. We will add a child per element later - for now just mark the children as having been loaded.\r\n resolve(this._elements.array);\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n throw new Error(\"Root dynamic tile has no content\");\r\n }\r\n\r\n public async requestContent(): Promise<TileRequest.Response> {\r\n assert(false, \"Root dynamic tile has no content\");\r\n return undefined;\r\n }\r\n\r\n public async readContent(_data: TileRequest.ResponseData, _system: RenderSystem, _isCanceled: () => boolean): Promise<TileContent> {\r\n throw new Error(\"Root dynamic tile has no content\");\r\n }\r\n\r\n public selectTiles(selected: Tile[], args: TileDrawArgs): void {\r\n for (const child of this._elementChildren)\r\n child.selectTiles(selected, args);\r\n }\r\n\r\n public pruneChildren(olderThan: BeTimePoint): void {\r\n // Never discard ElementTiles - do discard not-recently-used graphics.\r\n for (const child of this._elementChildren)\r\n child.pruneChildren(olderThan);\r\n }\r\n}\r\n\r\n/** Represents a single element that has been inserted or had its geometric properties modified during the current [[GraphicalEditingScope]].\r\n * It has no graphics of its own; it has any number of child tiles, each of which have graphics of a different level of detail.\r\n * Its contentId is the element's Id.\r\n */\r\nclass ElementTile extends Tile {\r\n public constructor(parent: RootTile, elementId: Id64String, range: Range3d) {\r\n super({\r\n parent,\r\n isLeaf: false,\r\n contentId: elementId,\r\n range,\r\n maximumSize: parent.maximumSize,\r\n }, parent.tree);\r\n\r\n this.loadChildren();\r\n this.setIsReady();\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void {\r\n // Invoked from constructor. We'll add child tiles later as needed.\r\n resolve([]);\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n throw new Error(\"ElementTile has no content\");\r\n }\r\n\r\n public async requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n assert(false, \"ElementTile has no content\");\r\n return undefined;\r\n }\r\n\r\n public async readContent(_data: TileRequest.ResponseData, _system: RenderSystem, _isCanceled: () => boolean): Promise<TileContent> {\r\n throw new Error(\"ElementTile has no content\");\r\n }\r\n\r\n public pruneChildren(olderThan: BeTimePoint): void {\r\n const children = this.children as GraphicsTile[];\r\n assert(undefined !== children);\r\n\r\n const partitionIndex = partitionArray(children, (child) => !child.usageMarker.isExpired(olderThan));\r\n\r\n // Remove expired children.\r\n if (partitionIndex < children.length) {\r\n const expired = children.splice(partitionIndex);\r\n for (const child of expired)\r\n child.dispose();\r\n }\r\n\r\n // Restore ordering.\r\n children.sort((x, y) => y.toleranceLog10 - x.toleranceLog10);\r\n }\r\n\r\n public selectTiles(selected: Tile[], args: TileDrawArgs): void {\r\n assert(undefined !== this.children);\r\n if (this.isRegionCulled(args))\r\n return;\r\n\r\n args.markUsed(this);\r\n\r\n // ###TODO: Test content range culled.\r\n\r\n // Compute the ideal chord tolerance.\r\n assert(this.maximumSize > 0);\r\n const pixelSize = args.getPixelSizeInMetersAtClosestPoint(this);\r\n assert(pixelSize > 0);\r\n\r\n // Round down to the nearest power of ten.\r\n const toleranceLog10 = Math.floor(Math.log10(pixelSize));\r\n\r\n // Find (or create) a child tile of desired tolerance. Also find a child tile that can be substituted for the desired tile if that tile's content is not yet loaded.\r\n // NB: Children are sorted in descending order by log10(tolerance)\r\n const children = this.children as GraphicsTile[];\r\n let closestMatch: GraphicsTile | undefined;\r\n let exactMatch: GraphicsTile | undefined;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n const tol = child.toleranceLog10;\r\n if (tol > toleranceLog10) {\r\n assert(undefined === exactMatch);\r\n if (child.hasGraphics)\r\n closestMatch = child;\r\n } else if (tol === toleranceLog10) {\r\n exactMatch = child;\r\n } else if (tol < toleranceLog10) {\r\n if (!exactMatch)\r\n children.splice(i++, 0, exactMatch = new GraphicsTile(this, toleranceLog10));\r\n\r\n if (child.hasGraphics && (!closestMatch || closestMatch.toleranceLog10 > toleranceLog10))\r\n closestMatch = child;\r\n }\r\n }\r\n\r\n if (!exactMatch) {\r\n assert(children.length === 0 || children[children.length - 1].toleranceLog10 > toleranceLog10);\r\n children.push(exactMatch = new GraphicsTile(this, toleranceLog10));\r\n }\r\n\r\n if (!exactMatch.isReady) {\r\n args.insertMissing(exactMatch);\r\n if (closestMatch) {\r\n selected.push(closestMatch);\r\n args.markUsed(closestMatch);\r\n }\r\n } else if (exactMatch.hasGraphics) {\r\n selected.push(exactMatch);\r\n args.markUsed(exactMatch);\r\n }\r\n }\r\n\r\n public update(range: Range3d): void {\r\n range.clone(this.range);\r\n\r\n // Discard out-dated graphics.\r\n assert(undefined !== this.children);\r\n for (const child of this.children)\r\n child.dispose();\r\n\r\n this.children.length = 0;\r\n }\r\n}\r\n\r\nfunction* makeIdSequence() {\r\n let current = 0;\r\n while (true) {\r\n if (current >= Number.MAX_SAFE_INTEGER)\r\n current = 0;\r\n\r\n yield ++current;\r\n }\r\n}\r\n\r\nconst requestIdSequence = makeIdSequence();\r\n\r\n/** Supplies graphics of a specific LOD for a single element. */\r\nclass GraphicsTile extends Tile {\r\n public readonly toleranceLog10: number;\r\n public readonly tolerance: number;\r\n\r\n public constructor(parent: ElementTile, toleranceLog10: number) {\r\n assert(Math.round(toleranceLog10) === toleranceLog10);\r\n super({\r\n parent,\r\n isLeaf: true,\r\n contentId: `${parent.contentId}_${toleranceLog10}`,\r\n range: parent.range,\r\n maximumSize: parent.maximumSize,\r\n }, parent.tree);\r\n\r\n this.toleranceLog10 = toleranceLog10;\r\n this.tolerance = 10 ** toleranceLog10;\r\n }\r\n\r\n public override computeLoadPriority(): number {\r\n // We want the element's graphics to be updated as soon as possible\r\n return 0;\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void {\r\n resolve(undefined);\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n return IModelApp.tileAdmin.channels.elementGraphicsRpc;\r\n }\r\n\r\n public async requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n // ###TODO tree flags (enforce display priority)\r\n // ###TODO classifiers, animation\r\n\r\n assert(undefined !== this.parent);\r\n\r\n const requestId = requestIdSequence.next();\r\n assert(!requestId.done);\r\n\r\n assert(this.tree instanceof IModelTileTree);\r\n const idProvider = this.tree.contentIdProvider;\r\n\r\n const props: ElementGraphicsRequestProps = {\r\n id: requestId.value.toString(16),\r\n elementId: this.parent.contentId,\r\n toleranceLog10: this.toleranceLog10,\r\n formatVersion: idProvider.majorFormatVersion,\r\n location: this.tree.iModelTransform.toJSON(),\r\n contentFlags: idProvider.contentFlags,\r\n omitEdges: !this.tree.hasEdges,\r\n clipToProjectExtents: true,\r\n sectionCut: this.tree.stringifiedSectionClip,\r\n };\r\n\r\n return IModelApp.tileAdmin.requestElementGraphics(this.tree.iModel, props);\r\n }\r\n\r\n public async readContent(data: TileRequest.ResponseData, system: RenderSystem, isCanceled: () => boolean): Promise<TileContent> {\r\n if (undefined === isCanceled)\r\n isCanceled = () => !this.isLoading;\r\n\r\n assert(data instanceof Uint8Array);\r\n const stream = ByteStream.fromUint8Array(data);\r\n\r\n const position = stream.curPos;\r\n const format = stream.nextUint32;\r\n stream.curPos = position;\r\n\r\n // ###TODO: IModelGraphics format wraps IModel format.\r\n assert(TileFormat.IModel === format);\r\n\r\n const tree = this.tree;\r\n assert(tree instanceof IModelTileTree);\r\n const { iModel, modelId, is3d, containsTransformNodes } = tree;\r\n const reader = ImdlReader.create({\r\n stream, iModel, modelId, is3d, system, isCanceled, containsTransformNodes,\r\n type: tree.batchType,\r\n loadEdges: tree.hasEdges,\r\n options: { tileId: this.contentId },\r\n });\r\n\r\n let content: TileContent = { isLeaf: true };\r\n if (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"]}
@@ -11,7 +11,7 @@ import { DisplayParams } from "../render/primitives/DisplayParams";
11
11
  import { Mesh } from "../render/primitives/mesh/MeshPrimitives";
12
12
  import { RenderGraphic } from "../render/RenderGraphic";
13
13
  import { RenderSystem } from "../render/RenderSystem";
14
- import { TileContent } from "./internal";
14
+ import { RealityTileGeometry, TileContent } from "./internal";
15
15
  /** Enumerates the types of [[GltfMeshPrimitive]] topologies. */
16
16
  declare enum GltfMeshMode {
17
17
  Points = 0,
@@ -96,6 +96,12 @@ interface GltfChildOfRootProperty extends GltfProperty {
96
96
  /** Optional name, strictly for human consumption. */
97
97
  name?: string;
98
98
  }
99
+ interface DracoMeshCompression {
100
+ bufferView: GltfId;
101
+ attributes: {
102
+ [k: string]: number | undefined;
103
+ };
104
+ }
99
105
  /** A unit of geometry belonging to a [[GltfMesh]]. */
100
106
  interface GltfMeshPrimitive extends GltfProperty {
101
107
  /** Maps the name of each mesh attribute semantic to the Id of the [[GltfAccessor]] providing the attribute's data. */
@@ -123,6 +129,10 @@ interface GltfMeshPrimitive extends GltfProperty {
123
129
  */
124
130
  indices?: GltfId;
125
131
  };
132
+ /** The [KHR_draco_mesh_compression](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md) extension
133
+ * allows glTF to support geometry compressed with Draco geometry compression.
134
+ */
135
+ KHR_draco_mesh_compression?: DracoMeshCompression;
126
136
  };
127
137
  }
128
138
  /** A collection of [[GltfMeshPrimitive]]s to be rendered. Each mesh is referenced by a node. Multiple nodes can refer to the same mesh.
@@ -468,8 +478,8 @@ export declare class GltfReaderProps {
468
478
  static create(source: Uint8Array | Gltf, yAxisUp?: boolean, baseUrl?: string): GltfReaderProps | undefined;
469
479
  }
470
480
  /** The GltfMeshData contains the raw GLTF mesh data. If the data is suitable to create a [[RealityMesh]] directly, basically in the quantized format produced by
471
- * ContextCapture, then a RealityMesh is created directly from this data. Otherwise, the mesh primitive is populated from the raw data and a MeshPrimitive
472
- * is generated. The MeshPrimitve path is much less efficient but should be rarely used.
481
+ * ContextCapture, then a RealityMesh is created directly from this data. Otherwise, the mesh primitive is populated from the raw data and a MeshPrimitive
482
+ * is generated. The MeshPrimitve path is much less efficient but should be rarely used.
473
483
  *
474
484
  * @internal
475
485
  */
@@ -535,6 +545,7 @@ export declare abstract class GltfReader {
535
545
  protected readonly _sceneNodes: GltfId[];
536
546
  protected _computedContentRange?: ElementAlignedBox3d;
537
547
  private readonly _resolvedTextures;
548
+ private readonly _dracoMeshes;
538
549
  protected get _nodes(): GltfDictionary<GltfNode>;
539
550
  protected get _meshes(): GltfDictionary<GltfMesh>;
540
551
  protected get _accessors(): GltfDictionary<GltfAccessor>;
@@ -561,9 +572,13 @@ export declare abstract class GltfReader {
561
572
  * @throws Error if a node appears more than once during traversal
562
573
  */
563
574
  traverseScene(): Iterable<GltfNode>;
575
+ private getTileTransform;
564
576
  protected readGltfAndCreateGraphics(isLeaf: boolean, featureTable: FeatureTable | undefined, contentRange: ElementAlignedBox3d | undefined, transformToRoot?: Transform, pseudoRtcBias?: Vector3d, instances?: InstancedGraphicParams): GltfReaderResult;
577
+ readGltfAndCreateGeometry(transformToRoot?: Transform, needNormals?: boolean, needParams?: boolean): RealityTileGeometry;
565
578
  private graphicFromMeshData;
566
579
  private readNodeAndCreateGraphics;
580
+ private readNodeAndCreatePolyfaces;
581
+ private polyfaceFromGltfMesh;
567
582
  getBufferView(json: {
568
583
  [k: string]: any;
569
584
  }, accessorName: string): GltfBufferView | undefined;
@@ -587,7 +602,9 @@ export declare abstract class GltfReader {
587
602
  private extractTextureId;
588
603
  private isMaterialTransparent;
589
604
  protected createDisplayParams(material: GltfMaterial, hasBakedLighting: boolean): DisplayParams | undefined;
605
+ private readMeshPrimitives;
590
606
  protected readMeshPrimitive(primitive: GltfMeshPrimitive, featureTable?: FeatureTable, pseudoRtcBias?: Vector3d): GltfMeshData | undefined;
607
+ private readDracoMeshPrimitive;
591
608
  private deduplicateVertices;
592
609
  /**
593
610
  *
@@ -613,6 +630,8 @@ export declare abstract class GltfReader {
613
630
  [k: string]: any;
614
631
  }, accessorName: string, disjoint: boolean): boolean;
615
632
  protected resolveResources(): Promise<void>;
633
+ private _resolveResources;
634
+ private decodeDracoMesh;
616
635
  private resolveUrl;
617
636
  private resolveBuffer;
618
637
  private resolveImage;
@@ -1 +1 @@
1
- {"version":3,"file":"GltfReader.d.ts","sourceRoot":"","sources":["../../../src/tile/GltfReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GltfReader.d.ts","sourceRoot":"","sources":["../../../src/tile/GltfReader.ts"],"names":[],"mappings":"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"}
@@ -5,15 +5,17 @@
5
5
  /** @packageDocumentation
6
6
  * @module Tiles
7
7
  */
8
- import { assert, ByteStream, compareBooleans, compareNumbers, compareStrings, Dictionary, JsonUtils, utf8ToString } from "@itwin/core-bentley";
9
- import { Angle, Matrix3d, Point2d, Point3d, Point4d, Range2d, Range3d, Transform, Vector3d } from "@itwin/core-geometry";
8
+ import { assert, ByteStream, compareBooleans, compareNumbers, compareStrings, Dictionary, JsonUtils, Logger, utf8ToString, } from "@itwin/core-bentley";
9
+ import { Angle, IndexedPolyface, Matrix3d, Point2d, Point3d, Point4d, Range2d, Range3d, Transform, Vector3d, } from "@itwin/core-geometry";
10
10
  import { BatchType, ColorDef, Feature, FeatureTable, FillFlags, GlbHeader, ImageSource, LinePixels, MeshEdge, MeshEdges, MeshPolyline, OctEncodedNormal, PackedFeatureTable, QParams2d, QParams3d, QPoint2dList, QPoint3dList, Quantization, RenderTexture, TextureMapping, TextureTransparency, TileFormat, TileReadStatus, } from "@itwin/core-common";
11
+ import { FrontendLoggerCategory } from "../FrontendLoggerCategory";
11
12
  import { getImageSourceFormatForMimeType, imageElementFromImageSource, tryImageElementFromUrl } from "../ImageUtil";
12
13
  import { IModelApp } from "../IModelApp";
13
14
  import { GraphicBranch } from "../render/GraphicBranch";
14
15
  import { DisplayParams } from "../render/primitives/DisplayParams";
15
16
  import { Mesh, MeshGraphicArgs } from "../render/primitives/mesh/MeshPrimitives";
16
17
  import { RealityMeshPrimitive } from "../render/primitives/mesh/RealityMeshPrimitive";
18
+ import { Triangle } from "../render/primitives/Primitives";
17
19
  /* eslint-disable no-restricted-syntax */
18
20
  /** Enumerates the types of [[GltfMeshPrimitive]] topologies. */
19
21
  var GltfMeshMode;
@@ -264,8 +266,8 @@ export class GltfReaderProps {
264
266
  }
265
267
  }
266
268
  /** The GltfMeshData contains the raw GLTF mesh data. If the data is suitable to create a [[RealityMesh]] directly, basically in the quantized format produced by
267
- * ContextCapture, then a RealityMesh is created directly from this data. Otherwise, the mesh primitive is populated from the raw data and a MeshPrimitive
268
- * is generated. The MeshPrimitve path is much less efficient but should be rarely used.
269
+ * ContextCapture, then a RealityMesh is created directly from this data. Otherwise, the mesh primitive is populated from the raw data and a MeshPrimitive
270
+ * is generated. The MeshPrimitve path is much less efficient but should be rarely used.
269
271
  *
270
272
  * @internal
271
273
  */
@@ -307,8 +309,10 @@ function colorFromMaterial(material, isTransparent) {
307
309
  return color;
308
310
  }
309
311
  class TransformStack {
310
- constructor() {
312
+ constructor(transform) {
311
313
  this._stack = [];
314
+ if (transform)
315
+ this._stack.push(transform);
312
316
  }
313
317
  get transform() {
314
318
  return this._stack.length > 0 ? this._stack[this._stack.length - 1] : undefined;
@@ -377,6 +381,7 @@ export class GltfReader {
377
381
  constructor(args) {
378
382
  var _a, _b, _c, _d, _e, _f, _g;
379
383
  this._resolvedTextures = new Dictionary((lhs, rhs) => compareTextureKeys(lhs, rhs));
384
+ this._dracoMeshes = new Map();
380
385
  this._glTF = args.props.glTF;
381
386
  this._version = args.props.version;
382
387
  this._yAxisUp = args.props.yAxisUp;
@@ -433,6 +438,22 @@ export class GltfReader {
433
438
  traverseScene() {
434
439
  return this.traverseNodes(this._sceneNodes);
435
440
  }
441
+ getTileTransform(transformToRoot, pseudoRtcBias) {
442
+ let transform;
443
+ if (this._returnToCenter || pseudoRtcBias || this._yAxisUp || transformToRoot) {
444
+ if (this._returnToCenter)
445
+ transform = Transform.createTranslation(this._returnToCenter.clone());
446
+ else if (pseudoRtcBias)
447
+ transform = Transform.createTranslationXYZ(pseudoRtcBias.x, pseudoRtcBias.y, pseudoRtcBias.z);
448
+ else
449
+ transform = Transform.createIdentity();
450
+ if (this._yAxisUp)
451
+ transform = transform.multiplyTransformMatrix3d(Matrix3d.createRotationAroundVector(Vector3d.create(1.0, 0.0, 0.0), Angle.createRadians(Angle.piOver2Radians)));
452
+ if (transformToRoot)
453
+ transform = transformToRoot.multiplyTransformTransform(transform);
454
+ }
455
+ return transform;
456
+ }
436
457
  readGltfAndCreateGraphics(isLeaf, featureTable, contentRange, transformToRoot, pseudoRtcBias, instances) {
437
458
  var _a;
438
459
  if (this._isCanceled)
@@ -461,21 +482,11 @@ export class GltfReader {
461
482
  renderGraphic = renderGraphicList[0];
462
483
  else
463
484
  renderGraphic = this._system.createGraphicList(renderGraphicList);
464
- let transform;
485
+ const transform = this.getTileTransform(transformToRoot, pseudoRtcBias);
465
486
  let range = contentRange;
466
- if (this._returnToCenter || pseudoRtcBias || this._yAxisUp || transformToRoot) {
467
- if (this._returnToCenter)
468
- transform = Transform.createTranslation(this._returnToCenter.clone());
469
- else if (pseudoRtcBias)
470
- transform = Transform.createTranslationXYZ(pseudoRtcBias.x, pseudoRtcBias.y, pseudoRtcBias.z);
471
- else
472
- transform = Transform.createIdentity();
473
- if (this._yAxisUp)
474
- transform = transform.multiplyTransformMatrix3d(Matrix3d.createRotationAroundVector(Vector3d.create(1.0, 0.0, 0.0), Angle.createRadians(Angle.piOver2Radians)));
475
- if (transformToRoot)
476
- transform = transformToRoot.multiplyTransformTransform(transform);
477
- range = transform.inverse().multiplyRange(contentRange);
478
- }
487
+ const invTransform = transform === null || transform === void 0 ? void 0 : transform.inverse();
488
+ if (invTransform)
489
+ range = invTransform.multiplyRange(contentRange);
479
490
  if (featureTable)
480
491
  renderGraphic = this._system.createBatch(renderGraphic, PackedFeatureTable.pack(featureTable), range);
481
492
  if (transform) {
@@ -490,9 +501,19 @@ export class GltfReader {
490
501
  graphic: renderGraphic,
491
502
  };
492
503
  }
504
+ readGltfAndCreateGeometry(transformToRoot, needNormals = false, needParams = false) {
505
+ const transformStack = new TransformStack(this.getTileTransform(transformToRoot));
506
+ const polyfaces = [];
507
+ for (const nodeKey of this._sceneNodes) {
508
+ const node = this._nodes[nodeKey];
509
+ if (node)
510
+ this.readNodeAndCreatePolyfaces(polyfaces, node, transformStack, needNormals, needParams);
511
+ }
512
+ return { polyfaces };
513
+ }
493
514
  graphicFromMeshData(gltfMesh, meshGraphicArgs, instances) {
494
515
  if (!gltfMesh.points || !gltfMesh.pointRange)
495
- return;
516
+ return gltfMesh.primitive.getGraphics(meshGraphicArgs, this._system, instances);
496
517
  const realityMeshPrimitive = (this._vertexTableRequired || instances) ? undefined : RealityMeshPrimitive.createFromGltfMesh(gltfMesh);
497
518
  if (realityMeshPrimitive) {
498
519
  const realityMesh = this._system.createRealityMesh(realityMeshPrimitive);
@@ -535,18 +556,7 @@ export class GltfReader {
535
556
  const nodeMesh = this._meshes[meshKey];
536
557
  if (nodeMesh === null || nodeMesh === void 0 ? void 0 : nodeMesh.primitives) {
537
558
  const meshGraphicArgs = new MeshGraphicArgs();
538
- const meshes = [];
539
- for (const primitive of nodeMesh.primitives) {
540
- const geometry = this.readMeshPrimitive(primitive, featureTable, thisBias);
541
- if (geometry) {
542
- meshes.push(geometry);
543
- if (this._computedContentRange && geometry.pointRange) {
544
- const invTransform = thisTransform === null || thisTransform === void 0 ? void 0 : thisTransform.inverse();
545
- const meshRange = invTransform ? invTransform.multiplyRange(geometry.pointRange) : geometry.pointRange;
546
- this._computedContentRange.extendRange(meshRange);
547
- }
548
- }
549
- }
559
+ const meshes = this.readMeshPrimitives(node, featureTable, thisTransform, thisBias);
550
560
  let renderGraphic;
551
561
  if (0 !== meshes.length) {
552
562
  if (1 === meshes.length) {
@@ -583,6 +593,54 @@ export class GltfReader {
583
593
  transformStack.pop();
584
594
  return TileReadStatus.Success;
585
595
  }
596
+ readNodeAndCreatePolyfaces(polyfaces, node, transformStack, needNormals, needParams) {
597
+ // IMPORTANT: Do not return without popping this node from the stack.
598
+ transformStack.push(node);
599
+ const meshes = this.readMeshPrimitives(node);
600
+ for (const mesh of meshes) {
601
+ const polyface = this.polyfaceFromGltfMesh(mesh, transformStack.transform, needNormals, needParams);
602
+ if (polyface)
603
+ polyfaces.push(polyface);
604
+ }
605
+ if (node.children) {
606
+ for (const childId of node.children) {
607
+ const child = this._nodes[childId];
608
+ if (child)
609
+ this.readNodeAndCreatePolyfaces(polyfaces, child, transformStack, needNormals, needParams);
610
+ }
611
+ }
612
+ }
613
+ polyfaceFromGltfMesh(mesh, transform, needNormals, needParams) {
614
+ if (!mesh.pointQParams || !mesh.points || !mesh.indices)
615
+ return undefined;
616
+ const { points, pointQParams, normals, uvs, uvQParams, indices } = mesh;
617
+ const includeNormals = needNormals && undefined !== normals;
618
+ const includeParams = needParams && undefined !== uvQParams && undefined !== uvs;
619
+ const polyface = IndexedPolyface.create(includeNormals, includeParams);
620
+ for (let i = 0; i < points.length;) {
621
+ const point = pointQParams.unquantize(points[i++], points[i++], points[i++]);
622
+ if (transform)
623
+ transform.multiplyPoint3d(point, point);
624
+ polyface.addPoint(point);
625
+ }
626
+ if (includeNormals && normals)
627
+ for (let i = 0; i < normals.length;)
628
+ polyface.addNormal(OctEncodedNormal.decodeValue(normals[i++]));
629
+ if (includeParams && uvs && uvQParams)
630
+ for (let i = 0; i < uvs.length;)
631
+ polyface.addParam(uvQParams.unquantize(uvs[i++], uvs[i++]));
632
+ let j = 0;
633
+ for (const index of indices) {
634
+ polyface.addPointIndex(index);
635
+ if (includeNormals)
636
+ polyface.addNormalIndex(index);
637
+ if (includeParams)
638
+ polyface.addParamIndex(index);
639
+ if (0 === (++j % 3))
640
+ polyface.terminateFacet();
641
+ }
642
+ return polyface;
643
+ }
586
644
  // ###TODO what is the actual type of `json`?
587
645
  getBufferView(json, accessorName) {
588
646
  try {
@@ -700,6 +758,26 @@ export class GltfReader {
700
758
  const color = colorFromMaterial(material, isTransparent);
701
759
  return new DisplayParams(DisplayParams.Type.Mesh, color, color, 1, LinePixels.Solid, FillFlags.Always, undefined, undefined, hasBakedLighting, textureMapping);
702
760
  }
761
+ readMeshPrimitives(node, featureTable, thisTransform, thisBias) {
762
+ const meshes = [];
763
+ for (const meshKey of getNodeMeshIds(node)) {
764
+ const nodeMesh = this._meshes[meshKey];
765
+ if (nodeMesh === null || nodeMesh === void 0 ? void 0 : nodeMesh.primitives) {
766
+ for (const primitive of nodeMesh.primitives) {
767
+ const mesh = this.readMeshPrimitive(primitive, featureTable, thisBias);
768
+ if (mesh) {
769
+ meshes.push(mesh);
770
+ if (this._computedContentRange && mesh.pointRange) {
771
+ const invTransform = thisTransform === null || thisTransform === void 0 ? void 0 : thisTransform.inverse();
772
+ const meshRange = invTransform ? invTransform.multiplyRange(mesh.pointRange) : mesh.pointRange;
773
+ this._computedContentRange.extendRange(meshRange);
774
+ }
775
+ }
776
+ }
777
+ }
778
+ }
779
+ return meshes;
780
+ }
703
781
  readMeshPrimitive(primitive, featureTable, pseudoRtcBias) {
704
782
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
705
783
  const materialName = JsonUtils.asString(primitive.material);
@@ -758,16 +836,9 @@ export class GltfReader {
758
836
  mesh.uvQParams = paramList.params;
759
837
  }
760
838
  }
761
- if ((_f = primitive.extensions) === null || _f === void 0 ? void 0 : _f.KHR_draco_mesh_compression) {
762
- return undefined; // Defer Draco decompression until web workers implementation.
763
- /*
764
- const dracoExtension = primitive.extensions.KHR_draco_mesh_compression;
765
- const bufferView = this._bufferViews[dracoExtension.bufferView];
766
- if (undefined === bufferView) return undefined;
767
- const bufferData = this._binaryData.subarray(bufferView.byteOffset, bufferView.byteOffset + bufferView.byteLength);
768
-
769
- return DracoDecoder.readDracoMesh(mesh, primitive, bufferData, dracoExtension.attributes); */
770
- }
839
+ const draco = (_f = primitive.extensions) === null || _f === void 0 ? void 0 : _f.KHR_draco_mesh_compression;
840
+ if (draco)
841
+ return this.readDracoMeshPrimitive(mesh.primitive, draco) ? mesh : undefined;
771
842
  this.readBatchTable(mesh.primitive, primitive);
772
843
  if (!this.readVertices(mesh, primitive, pseudoRtcBias))
773
844
  return undefined;
@@ -811,6 +882,60 @@ export class GltfReader {
811
882
  }
812
883
  return mesh;
813
884
  }
885
+ readDracoMeshPrimitive(mesh, ext) {
886
+ var _a, _b, _c, _d, _e, _f;
887
+ const draco = this._dracoMeshes.get(ext);
888
+ if (!draco || "triangle-list" !== draco.topology)
889
+ return false;
890
+ const indices = (_a = draco.indices) === null || _a === void 0 ? void 0 : _a.value;
891
+ if (!indices || (indices.length % 3) !== 0)
892
+ return false;
893
+ const pos = (_b = draco.attributes.POSITION) === null || _b === void 0 ? void 0 : _b.value;
894
+ if (!pos || (pos.length % 3) !== 0)
895
+ return false;
896
+ // ###TODO: I have yet to see a draco-encoded mesh with interleaved attributes. Currently not checking.
897
+ const triangle = new Triangle();
898
+ for (let i = 0; i < indices.length; i += 3) {
899
+ triangle.setIndices(indices[i], indices[i + 1], indices[i + 2]);
900
+ mesh.addTriangle(triangle);
901
+ }
902
+ let posRange;
903
+ const bbox = (_c = draco.header) === null || _c === void 0 ? void 0 : _c.boundingBox;
904
+ if (bbox) {
905
+ posRange = Range3d.createXYZXYZ(bbox[0][0], bbox[0][1], bbox[0][2], bbox[1][0], bbox[1][1], bbox[1][2]);
906
+ }
907
+ else {
908
+ posRange = Range3d.createNull();
909
+ for (let i = 0; i < pos.length; i += 3)
910
+ posRange.extendXYZ(pos[i], pos[i + 1], pos[i + 2]);
911
+ }
912
+ mesh.points.params.setFromRange(posRange);
913
+ const pt = Point3d.createZero();
914
+ for (let i = 0; i < pos.length; i += 3) {
915
+ pt.set(pos[i], pos[i + 1], pos[i + 2]);
916
+ mesh.points.add(pt);
917
+ }
918
+ const normals = (_d = draco.attributes.NORMAL) === null || _d === void 0 ? void 0 : _d.value;
919
+ if (normals && (normals.length % 3) === 0) {
920
+ const vec = Vector3d.createZero();
921
+ for (let i = 0; i < normals.length; i += 3) {
922
+ vec.set(normals[i], normals[i + 1], normals[i + 2]);
923
+ mesh.normals.push(OctEncodedNormal.fromVector(vec));
924
+ }
925
+ }
926
+ const uvs = (_e = draco.attributes.TEXCOORD_0) === null || _e === void 0 ? void 0 : _e.value;
927
+ if (uvs && (uvs.length & 2) === 0)
928
+ for (let i = 0; i < uvs.length; i += 2)
929
+ mesh.uvParams.push(new Point2d(uvs[i], uvs[i + 1]));
930
+ const batchIds = (_f = draco.attributes._BATCHID) === null || _f === void 0 ? void 0 : _f.value;
931
+ if (batchIds && mesh.features) {
932
+ const featureIndices = [];
933
+ for (const batchId of batchIds)
934
+ featureIndices.push(batchId);
935
+ mesh.features.setIndices(featureIndices);
936
+ }
937
+ return true;
938
+ }
814
939
  deduplicateVertices(mesh) {
815
940
  if (!mesh.points || !mesh.indices)
816
941
  return false;
@@ -1059,6 +1184,32 @@ export class GltfReader {
1059
1184
  return true;
1060
1185
  }
1061
1186
  async resolveResources() {
1187
+ var _a;
1188
+ // Load any external images and buffers.
1189
+ await this._resolveResources();
1190
+ // If any meshes are draco-compressed, dynamically load the decoder module and then decode the meshes.
1191
+ const dracoMeshes = [];
1192
+ for (const node of this.traverseScene()) {
1193
+ for (const meshId of getNodeMeshIds(node)) {
1194
+ const mesh = this._meshes[meshId];
1195
+ if (mesh === null || mesh === void 0 ? void 0 : mesh.primitives)
1196
+ for (const primitive of mesh.primitives)
1197
+ if ((_a = primitive.extensions) === null || _a === void 0 ? void 0 : _a.KHR_draco_mesh_compression)
1198
+ dracoMeshes.push(primitive.extensions.KHR_draco_mesh_compression);
1199
+ }
1200
+ }
1201
+ if (dracoMeshes.length === 0)
1202
+ return;
1203
+ try {
1204
+ const dracoLoader = (await import("@loaders.gl/draco")).DracoLoader;
1205
+ await Promise.all(dracoMeshes.map(async (x) => this.decodeDracoMesh(x, dracoLoader)));
1206
+ }
1207
+ catch (err) {
1208
+ Logger.logWarning(FrontendLoggerCategory.Render, "Failed to decode draco-encoded glTF mesh");
1209
+ Logger.logException(FrontendLoggerCategory.Render, err);
1210
+ }
1211
+ }
1212
+ async _resolveResources() {
1062
1213
  // ###TODO traverse the scene nodes to find resources referenced by them, instead of resolving everything - some resources may not
1063
1214
  // be required for the scene.
1064
1215
  const promises = [];
@@ -1078,6 +1229,20 @@ export class GltfReader {
1078
1229
  catch (_) {
1079
1230
  }
1080
1231
  }
1232
+ async decodeDracoMesh(ext, loader) {
1233
+ var _a, _b;
1234
+ const bv = this._bufferViews[ext.bufferView];
1235
+ if (!bv || !bv.byteLength)
1236
+ return;
1237
+ let buf = (_a = this._buffers[bv.buffer]) === null || _a === void 0 ? void 0 : _a.resolvedBuffer;
1238
+ if (!buf)
1239
+ return;
1240
+ const offset = (_b = bv.byteOffset) !== null && _b !== void 0 ? _b : 0;
1241
+ buf = buf.subarray(offset, offset + bv.byteLength);
1242
+ const mesh = await loader.parse(buf, {}); // NB: `options` argument declared optional but will produce exception if not supplied.
1243
+ if (mesh)
1244
+ this._dracoMeshes.set(ext, mesh);
1245
+ }
1081
1246
  resolveUrl(uri) {
1082
1247
  try {
1083
1248
  return new URL(uri, this._baseUrl).toString();