@itwin/core-frontend 3.3.0-dev.9 → 3.4.0-dev.2

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 (352) hide show
  1. package/CHANGELOG.md +47 -1
  2. package/lib/cjs/DisplayStyleState.d.ts +80 -31
  3. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  4. package/lib/cjs/DisplayStyleState.js +150 -89
  5. package/lib/cjs/DisplayStyleState.js.map +1 -1
  6. package/lib/cjs/DrawingViewState.js +1 -1
  7. package/lib/cjs/DrawingViewState.js.map +1 -1
  8. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  9. package/lib/cjs/EmphasizeElements.js +5 -0
  10. package/lib/cjs/EmphasizeElements.js.map +1 -1
  11. package/lib/cjs/EntityState.d.ts +5 -5
  12. package/lib/cjs/EntityState.d.ts.map +1 -1
  13. package/lib/cjs/EntityState.js.map +1 -1
  14. package/lib/cjs/IModelApp.d.ts +5 -0
  15. package/lib/cjs/IModelApp.d.ts.map +1 -1
  16. package/lib/cjs/IModelApp.js +16 -12
  17. package/lib/cjs/IModelApp.js.map +1 -1
  18. package/lib/cjs/IModelConnection.d.ts +51 -4
  19. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  20. package/lib/cjs/IModelConnection.js +38 -3
  21. package/lib/cjs/IModelConnection.js.map +1 -1
  22. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  23. package/lib/cjs/LocalhostIpcApp.js +10 -0
  24. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  25. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  26. package/lib/cjs/NoRenderApp.js +1 -0
  27. package/lib/cjs/NoRenderApp.js.map +1 -1
  28. package/lib/cjs/PerModelCategoryVisibility.d.ts +17 -0
  29. package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
  30. package/lib/cjs/PerModelCategoryVisibility.js +63 -19
  31. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  32. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  33. package/lib/cjs/RealityDataSource.js +6 -2
  34. package/lib/cjs/RealityDataSource.js.map +1 -1
  35. package/lib/cjs/SelectionSet.d.ts +30 -4
  36. package/lib/cjs/SelectionSet.d.ts.map +1 -1
  37. package/lib/cjs/SelectionSet.js +26 -2
  38. package/lib/cjs/SelectionSet.js.map +1 -1
  39. package/lib/cjs/SheetViewState.js +1 -1
  40. package/lib/cjs/SheetViewState.js.map +1 -1
  41. package/lib/cjs/SubCategoriesCache.d.ts +6 -12
  42. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  43. package/lib/cjs/SubCategoriesCache.js +48 -37
  44. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  45. package/lib/cjs/TentativePoint.js +1 -1
  46. package/lib/cjs/TentativePoint.js.map +1 -1
  47. package/lib/cjs/ViewState.d.ts +2 -3
  48. package/lib/cjs/ViewState.d.ts.map +1 -1
  49. package/lib/cjs/ViewState.js +13 -9
  50. package/lib/cjs/ViewState.js.map +1 -1
  51. package/lib/cjs/Viewport.d.ts +10 -10
  52. package/lib/cjs/Viewport.d.ts.map +1 -1
  53. package/lib/cjs/Viewport.js +19 -14
  54. package/lib/cjs/Viewport.js.map +1 -1
  55. package/lib/cjs/core-frontend.d.ts +0 -2
  56. package/lib/cjs/core-frontend.d.ts.map +1 -1
  57. package/lib/cjs/core-frontend.js +0 -2
  58. package/lib/cjs/core-frontend.js.map +1 -1
  59. package/lib/cjs/extension/ExtensionAdmin.d.ts +5 -2
  60. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  61. package/lib/cjs/extension/ExtensionAdmin.js +24 -6
  62. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  63. package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts +0 -2
  64. package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts.map +1 -1
  65. package/lib/cjs/extension/providers/RemoteExtensionProvider.js +9 -22
  66. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
  67. package/lib/cjs/render/FeatureSymbology.js +2 -2
  68. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  69. package/lib/cjs/render/GraphicBranch.d.ts +15 -9
  70. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  71. package/lib/cjs/render/GraphicBranch.js +38 -1
  72. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  73. package/lib/cjs/render/RenderSystem.d.ts +5 -0
  74. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  75. package/lib/cjs/render/RenderSystem.js.map +1 -1
  76. package/lib/cjs/render/primitives/EdgeParams.d.ts +11 -0
  77. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
  78. package/lib/cjs/render/primitives/EdgeParams.js +36 -29
  79. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  80. package/lib/cjs/render/primitives/VertexTable.d.ts +11 -4
  81. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  82. package/lib/cjs/render/primitives/VertexTable.js +13 -6
  83. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  84. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts +41 -0
  85. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  86. package/lib/cjs/render/primitives/VertexTableSplitter.js +662 -0
  87. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -0
  88. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  89. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +3 -1
  90. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  91. package/lib/cjs/render/webgl/DrawCommand.js +1 -1
  92. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  93. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +4 -1
  94. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  95. package/lib/cjs/render/webgl/FeatureOverrides.js +56 -26
  96. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  97. package/lib/cjs/render/webgl/ShaderProgram.js +1 -1
  98. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  99. package/lib/cjs/render/webgl/Target.d.ts +2 -1
  100. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  101. package/lib/cjs/render/webgl/Target.js +1 -0
  102. package/lib/cjs/render/webgl/Target.js.map +1 -1
  103. package/lib/cjs/render/webgl/UniformHandle.d.ts +2 -1
  104. package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
  105. package/lib/cjs/render/webgl/UniformHandle.js +15 -3
  106. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  107. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  108. package/lib/cjs/render/webgl/glsl/RealityMesh.js +5 -2
  109. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  110. package/lib/cjs/render-primitives.d.ts +1 -0
  111. package/lib/cjs/render-primitives.d.ts.map +1 -1
  112. package/lib/cjs/render-primitives.js +1 -0
  113. package/lib/cjs/render-primitives.js.map +1 -1
  114. package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
  115. package/lib/cjs/tile/ClassifierTileTree.js +8 -8
  116. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  117. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  118. package/lib/cjs/tile/IModelTile.js +1 -0
  119. package/lib/cjs/tile/IModelTile.js.map +1 -1
  120. package/lib/cjs/tile/IModelTileTree.d.ts +3 -1
  121. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  122. package/lib/cjs/tile/IModelTileTree.js +1 -0
  123. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  124. package/lib/cjs/tile/ImdlReader.d.ts +9 -4
  125. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  126. package/lib/cjs/tile/ImdlReader.js +174 -60
  127. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  128. package/lib/cjs/tile/PrimaryTileTree.d.ts +8 -7
  129. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  130. package/lib/cjs/tile/PrimaryTileTree.js +30 -25
  131. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  132. package/lib/cjs/tile/TileAdmin.d.ts +21 -2
  133. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  134. package/lib/cjs/tile/TileAdmin.js +32 -12
  135. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  136. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  137. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -2
  138. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  139. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +1 -0
  140. package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
  141. package/lib/cjs/tile/map/MapCartoRectangle.js +1 -0
  142. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  143. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +2 -1
  144. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  145. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  146. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +2 -0
  147. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  148. package/lib/cjs/tile/map/MapLayerImageryProvider.js +23 -9
  149. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  150. package/lib/cjs/tile/map/MapLayerSources.d.ts +14 -9
  151. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  152. package/lib/cjs/tile/map/MapLayerSources.js +14 -6
  153. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  154. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  155. package/lib/cjs/tools/ClipViewTool.js +25 -2
  156. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  157. package/lib/cjs/tools/PrimitiveTool.js +4 -4
  158. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  159. package/lib/cjs/tools/Tool.d.ts +7 -7
  160. package/lib/cjs/tools/Tool.js +7 -7
  161. package/lib/cjs/tools/Tool.js.map +1 -1
  162. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  163. package/lib/cjs/tools/ToolAdmin.js +25 -10
  164. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  165. package/lib/esm/DisplayStyleState.d.ts +80 -31
  166. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  167. package/lib/esm/DisplayStyleState.js +150 -89
  168. package/lib/esm/DisplayStyleState.js.map +1 -1
  169. package/lib/esm/DrawingViewState.js +1 -1
  170. package/lib/esm/DrawingViewState.js.map +1 -1
  171. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  172. package/lib/esm/EmphasizeElements.js +5 -0
  173. package/lib/esm/EmphasizeElements.js.map +1 -1
  174. package/lib/esm/EntityState.d.ts +5 -5
  175. package/lib/esm/EntityState.d.ts.map +1 -1
  176. package/lib/esm/EntityState.js.map +1 -1
  177. package/lib/esm/IModelApp.d.ts +5 -0
  178. package/lib/esm/IModelApp.d.ts.map +1 -1
  179. package/lib/esm/IModelApp.js +16 -12
  180. package/lib/esm/IModelApp.js.map +1 -1
  181. package/lib/esm/IModelConnection.d.ts +51 -4
  182. package/lib/esm/IModelConnection.d.ts.map +1 -1
  183. package/lib/esm/IModelConnection.js +38 -3
  184. package/lib/esm/IModelConnection.js.map +1 -1
  185. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  186. package/lib/esm/LocalhostIpcApp.js +11 -1
  187. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  188. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  189. package/lib/esm/NoRenderApp.js +1 -0
  190. package/lib/esm/NoRenderApp.js.map +1 -1
  191. package/lib/esm/PerModelCategoryVisibility.d.ts +17 -0
  192. package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
  193. package/lib/esm/PerModelCategoryVisibility.js +63 -19
  194. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  195. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  196. package/lib/esm/RealityDataSource.js +6 -2
  197. package/lib/esm/RealityDataSource.js.map +1 -1
  198. package/lib/esm/SelectionSet.d.ts +30 -4
  199. package/lib/esm/SelectionSet.d.ts.map +1 -1
  200. package/lib/esm/SelectionSet.js +26 -2
  201. package/lib/esm/SelectionSet.js.map +1 -1
  202. package/lib/esm/SheetViewState.js +1 -1
  203. package/lib/esm/SheetViewState.js.map +1 -1
  204. package/lib/esm/SubCategoriesCache.d.ts +6 -12
  205. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  206. package/lib/esm/SubCategoriesCache.js +50 -39
  207. package/lib/esm/SubCategoriesCache.js.map +1 -1
  208. package/lib/esm/TentativePoint.js +1 -1
  209. package/lib/esm/TentativePoint.js.map +1 -1
  210. package/lib/esm/ViewState.d.ts +2 -3
  211. package/lib/esm/ViewState.d.ts.map +1 -1
  212. package/lib/esm/ViewState.js +13 -9
  213. package/lib/esm/ViewState.js.map +1 -1
  214. package/lib/esm/Viewport.d.ts +10 -10
  215. package/lib/esm/Viewport.d.ts.map +1 -1
  216. package/lib/esm/Viewport.js +19 -14
  217. package/lib/esm/Viewport.js.map +1 -1
  218. package/lib/esm/core-frontend.d.ts +0 -2
  219. package/lib/esm/core-frontend.d.ts.map +1 -1
  220. package/lib/esm/core-frontend.js +0 -2
  221. package/lib/esm/core-frontend.js.map +1 -1
  222. package/lib/esm/extension/ExtensionAdmin.d.ts +5 -2
  223. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  224. package/lib/esm/extension/ExtensionAdmin.js +24 -6
  225. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  226. package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts +0 -2
  227. package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts.map +1 -1
  228. package/lib/esm/extension/providers/RemoteExtensionProvider.js +9 -22
  229. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
  230. package/lib/esm/render/FeatureSymbology.js +2 -2
  231. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  232. package/lib/esm/render/GraphicBranch.d.ts +15 -9
  233. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  234. package/lib/esm/render/GraphicBranch.js +36 -0
  235. package/lib/esm/render/GraphicBranch.js.map +1 -1
  236. package/lib/esm/render/RenderSystem.d.ts +5 -0
  237. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  238. package/lib/esm/render/RenderSystem.js.map +1 -1
  239. package/lib/esm/render/primitives/EdgeParams.d.ts +11 -0
  240. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
  241. package/lib/esm/render/primitives/EdgeParams.js +34 -28
  242. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  243. package/lib/esm/render/primitives/VertexTable.d.ts +11 -4
  244. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  245. package/lib/esm/render/primitives/VertexTable.js +14 -7
  246. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  247. package/lib/esm/render/primitives/VertexTableSplitter.d.ts +41 -0
  248. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  249. package/lib/esm/render/primitives/VertexTableSplitter.js +655 -0
  250. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -0
  251. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  252. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +3 -1
  253. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  254. package/lib/esm/render/webgl/DrawCommand.js +1 -1
  255. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  256. package/lib/esm/render/webgl/FeatureOverrides.d.ts +4 -1
  257. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  258. package/lib/esm/render/webgl/FeatureOverrides.js +56 -26
  259. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  260. package/lib/esm/render/webgl/ShaderProgram.js +1 -1
  261. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  262. package/lib/esm/render/webgl/Target.d.ts +2 -1
  263. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  264. package/lib/esm/render/webgl/Target.js +1 -0
  265. package/lib/esm/render/webgl/Target.js.map +1 -1
  266. package/lib/esm/render/webgl/UniformHandle.d.ts +2 -1
  267. package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
  268. package/lib/esm/render/webgl/UniformHandle.js +15 -3
  269. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  270. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  271. package/lib/esm/render/webgl/glsl/RealityMesh.js +5 -2
  272. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  273. package/lib/esm/render-primitives.d.ts +1 -0
  274. package/lib/esm/render-primitives.d.ts.map +1 -1
  275. package/lib/esm/render-primitives.js +1 -0
  276. package/lib/esm/render-primitives.js.map +1 -1
  277. package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
  278. package/lib/esm/tile/ClassifierTileTree.js +10 -10
  279. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  280. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  281. package/lib/esm/tile/IModelTile.js +1 -0
  282. package/lib/esm/tile/IModelTile.js.map +1 -1
  283. package/lib/esm/tile/IModelTileTree.d.ts +3 -1
  284. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  285. package/lib/esm/tile/IModelTileTree.js +1 -0
  286. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  287. package/lib/esm/tile/ImdlReader.d.ts +9 -4
  288. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  289. package/lib/esm/tile/ImdlReader.js +174 -60
  290. package/lib/esm/tile/ImdlReader.js.map +1 -1
  291. package/lib/esm/tile/PrimaryTileTree.d.ts +8 -7
  292. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  293. package/lib/esm/tile/PrimaryTileTree.js +31 -26
  294. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  295. package/lib/esm/tile/TileAdmin.d.ts +21 -2
  296. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  297. package/lib/esm/tile/TileAdmin.js +33 -13
  298. package/lib/esm/tile/TileAdmin.js.map +1 -1
  299. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  300. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -2
  301. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  302. package/lib/esm/tile/map/MapCartoRectangle.d.ts +1 -0
  303. package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
  304. package/lib/esm/tile/map/MapCartoRectangle.js +1 -0
  305. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  306. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +2 -1
  307. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  308. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  309. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +2 -0
  310. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  311. package/lib/esm/tile/map/MapLayerImageryProvider.js +24 -10
  312. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  313. package/lib/esm/tile/map/MapLayerSources.d.ts +14 -9
  314. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  315. package/lib/esm/tile/map/MapLayerSources.js +14 -6
  316. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  317. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  318. package/lib/esm/tools/ClipViewTool.js +25 -2
  319. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  320. package/lib/esm/tools/PrimitiveTool.js +4 -4
  321. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  322. package/lib/esm/tools/Tool.d.ts +7 -7
  323. package/lib/esm/tools/Tool.js +7 -7
  324. package/lib/esm/tools/Tool.js.map +1 -1
  325. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  326. package/lib/esm/tools/ToolAdmin.js +25 -10
  327. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  328. package/package.json +27 -27
  329. package/lib/cjs/RenderScheduleState.d.ts +0 -24
  330. package/lib/cjs/RenderScheduleState.d.ts.map +0 -1
  331. package/lib/cjs/RenderScheduleState.js +0 -76
  332. package/lib/cjs/RenderScheduleState.js.map +0 -1
  333. package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts +0 -52
  334. package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts.map +0 -1
  335. package/lib/cjs/extension/providers/ExtensionServiceClient.js +0 -131
  336. package/lib/cjs/extension/providers/ExtensionServiceClient.js.map +0 -1
  337. package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts +0 -37
  338. package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts.map +0 -1
  339. package/lib/cjs/extension/providers/ServiceExtensionProvider.js +0 -84
  340. package/lib/cjs/extension/providers/ServiceExtensionProvider.js.map +0 -1
  341. package/lib/esm/RenderScheduleState.d.ts +0 -24
  342. package/lib/esm/RenderScheduleState.d.ts.map +0 -1
  343. package/lib/esm/RenderScheduleState.js +0 -71
  344. package/lib/esm/RenderScheduleState.js.map +0 -1
  345. package/lib/esm/extension/providers/ExtensionServiceClient.d.ts +0 -52
  346. package/lib/esm/extension/providers/ExtensionServiceClient.d.ts.map +0 -1
  347. package/lib/esm/extension/providers/ExtensionServiceClient.js +0 -127
  348. package/lib/esm/extension/providers/ExtensionServiceClient.js.map +0 -1
  349. package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts +0 -37
  350. package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts.map +0 -1
  351. package/lib/esm/extension/providers/ServiceExtensionProvider.js +0 -80
  352. package/lib/esm/extension/providers/ServiceExtensionProvider.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"IModelTileTree.js","sourceRoot":"","sources":["../../../src/tile/IModelTileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, BeTimePoint, GuidString, Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n BatchType, ContentIdProvider, EdgeOptions, ElementAlignedBox3d, ElementGeometryChange, FeatureAppearanceProvider,\r\n IModelTileTreeId, IModelTileTreeProps, ModelGeometryChanges, TileProps,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { GraphicalEditingScope } from \"../GraphicalEditingScope\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { GraphicBranch } from \"../render/GraphicBranch\";\r\nimport {\r\n DynamicIModelTile, IModelTile, IModelTileParams, iModelTileParamsFromJSON, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileParams, TileRequest,\r\n TileRequestChannel, TileTree, TileTreeParams,\r\n} from \"./internal\";\r\n\r\n/** @internal */\r\nexport interface IModelTileTreeOptions {\r\n readonly allowInstancing: boolean;\r\n readonly edges: EdgeOptions | false;\r\n readonly batchType: BatchType;\r\n readonly is3d: boolean;\r\n}\r\n\r\n// Overrides nothing.\r\nconst viewFlagOverrides = {};\r\n\r\n/** Parameters used to construct an [[IModelTileTree]]\r\n * @internal\r\n */\r\nexport interface IModelTileTreeParams extends TileTreeParams {\r\n rootTile: TileProps;\r\n contentIdQualifier?: string;\r\n geometryGuid?: GuidString;\r\n maxInitialTilesToSkip?: number;\r\n formatVersion?: number;\r\n tileScreenSize: number;\r\n options: IModelTileTreeOptions;\r\n transformNodeRanges?: Map<number, Range3d>;\r\n}\r\n\r\n/** @internal */\r\nexport function iModelTileTreeParamsFromJSON(props: IModelTileTreeProps, iModel: IModelConnection, modelId: Id64String, options: IModelTileTreeOptions): IModelTileTreeParams {\r\n const location = Transform.fromJSON(props.location);\r\n const { formatVersion, id, rootTile, contentIdQualifier, maxInitialTilesToSkip, geometryGuid } = props;\r\n const tileScreenSize = props.tileScreenSize ?? 512;\r\n\r\n let contentRange;\r\n if (undefined !== props.contentRange)\r\n contentRange = Range3d.fromJSON<ElementAlignedBox3d>(props.contentRange);\r\n\r\n let transformNodeRanges;\r\n if (props.transformNodeRanges) {\r\n transformNodeRanges = new Map<number, Range3d>();\r\n for (const entry of props.transformNodeRanges)\r\n transformNodeRanges.set(entry.id, Range3d.fromJSON(entry));\r\n }\r\n\r\n const priority = BatchType.Primary === options.batchType ? TileLoadPriority.Primary : TileLoadPriority.Classifier;\r\n return {\r\n formatVersion,\r\n id,\r\n rootTile,\r\n iModel,\r\n location,\r\n modelId,\r\n contentRange,\r\n geometryGuid,\r\n contentIdQualifier,\r\n maxInitialTilesToSkip,\r\n priority,\r\n options,\r\n tileScreenSize,\r\n transformNodeRanges,\r\n };\r\n}\r\n\r\nfunction findElementChangesForModel(changes: Iterable<ModelGeometryChanges>, modelId: Id64String): Iterable<ElementGeometryChange> | undefined {\r\n for (const change of changes)\r\n if (change.id === modelId)\r\n return change.elements;\r\n\r\n return undefined;\r\n}\r\n\r\n/** No graphical editing scope is currently active. */\r\nclass StaticState {\r\n public readonly type = \"static\";\r\n public readonly dispose: () => void;\r\n\r\n public constructor(root: RootTile) {\r\n this.dispose = GraphicalEditingScope.onEnter.addOnce((scope: GraphicalEditingScope) => {\r\n root.transition(new InteractiveState(scope, root));\r\n });\r\n }\r\n}\r\n\r\n/** A graphical editing scope is currently active, but no elements in the tile tree's model have been modified. */\r\nclass InteractiveState {\r\n public readonly type = \"interactive\";\r\n public readonly dispose: () => void;\r\n\r\n public constructor(scope: GraphicalEditingScope, root: RootTile) {\r\n const removeEndingListener = scope.onExiting.addOnce((_) => {\r\n root.transition(new StaticState(root));\r\n });\r\n\r\n const removeGeomListener = scope.onGeometryChanges.addListener((changes: Iterable<ModelGeometryChanges>, _scope: GraphicalEditingScope) => {\r\n assert(scope === _scope);\r\n const elemChanges = findElementChangesForModel(changes, root.tree.modelId);\r\n if (elemChanges)\r\n root.transition(new DynamicState(root, elemChanges, scope));\r\n });\r\n\r\n this.dispose = () => {\r\n removeEndingListener();\r\n removeGeomListener();\r\n };\r\n }\r\n}\r\n\r\n/** Elements in the tile tree's model have been modified during the current editing scope. */\r\nclass DynamicState {\r\n public readonly type = \"dynamic\";\r\n public readonly rootTile: DynamicIModelTile;\r\n private readonly _dispose: () => void;\r\n\r\n public dispose(): void {\r\n this._dispose();\r\n this.rootTile.dispose();\r\n }\r\n\r\n public constructor(root: RootTile, elemChanges: Iterable<ElementGeometryChange>, scope: GraphicalEditingScope) {\r\n this.rootTile = DynamicIModelTile.create(root, elemChanges);\r\n\r\n const removeEndingListener = scope.onExiting.addOnce((_) => {\r\n root.transition(new StaticState(root));\r\n });\r\n\r\n const removeGeomListener = scope.onGeometryChanges.addListener((changes: Iterable<ModelGeometryChanges>, _scope: GraphicalEditingScope) => {\r\n assert(scope === _scope);\r\n const elems = findElementChangesForModel(changes, root.tree.modelId);\r\n if (elems)\r\n this.rootTile.handleGeometryChanges(elems);\r\n });\r\n\r\n this._dispose = () => {\r\n removeEndingListener();\r\n removeGeomListener();\r\n };\r\n }\r\n}\r\n\r\n/** The tile tree has been disposed. */\r\nclass DisposedState {\r\n public readonly type = \"disposed\";\r\n public dispose(): void { }\r\n}\r\n\r\nconst disposedState = new DisposedState();\r\n\r\n/** The current state of an [[IModelTileTree]]'s [[RootTile]]. The tile transitions between these states primarily in response to GraphicalEditingScope events. */\r\ntype RootTileState = StaticState | InteractiveState | DynamicState | DisposedState;\r\n\r\n/** The root tile for an [[IModelTileTree]].\r\n * @internal\r\n */\r\nexport type RootIModelTile = Tile & { tileScreenSize: number, updateDynamicRange: (childTile: Tile) => void };\r\n\r\n/** Represents the root [[Tile]] of an [[IModelTileTree]]. The root tile has one or two direct child tiles which represent different branches of the tree:\r\n * - The static branch, containing tiles that represent the state of the model's geometry as of the beginning of the current [[GraphicalEditingScope]].\r\n * - The dynamic branch, containing tiles representing the geometry of elements that have been modified during the current [[GraphicalEditingScope]].\r\n * If no editing scope is currently active, the dynamic branch does not exist, and the static branch represents the current state of all elements in the model.\r\n */\r\nclass RootTile extends Tile {\r\n public readonly staticBranch: IModelTile;\r\n private _tileState: RootTileState;\r\n private readonly _staticTreeContentRange?: Range3d;\r\n\r\n public get tileState(): RootTileState {\r\n return this._tileState;\r\n }\r\n\r\n public constructor(params: IModelTileParams, tree: IModelTileTree) {\r\n const rootParams: TileParams = {\r\n ...params,\r\n range: params.range.clone(),\r\n contentRange: params.contentRange?.clone(),\r\n isLeaf: false,\r\n contentId: \"\",\r\n };\r\n\r\n super(rootParams, tree);\r\n this.staticBranch = new IModelTile(params, tree);\r\n this._staticTreeContentRange = tree.contentRange?.clone();\r\n\r\n if (!this._contentRange)\r\n this._contentRange = this.staticBranch.contentRange.clone();\r\n\r\n // Determine initial state.\r\n const scope = tree.iModel.isBriefcaseConnection() ? tree.iModel.editingScope : undefined;\r\n if (undefined === scope) {\r\n this._tileState = new StaticState(this);\r\n } else {\r\n const changes = scope.getGeometryChangesForModel(tree.modelId);\r\n this._tileState = changes ? new DynamicState(this, changes, scope) : new InteractiveState(scope, this);\r\n }\r\n\r\n // Load the children immediately.\r\n this.setIsReady();\r\n this.loadChildren();\r\n }\r\n\r\n public override dispose(): void {\r\n this.transition(disposedState);\r\n super.dispose();\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void {\r\n const children: Tile[] = [this.staticBranch];\r\n if (this._tileState.type === \"dynamic\")\r\n children.push(this._tileState.rootTile);\r\n\r\n resolve(children);\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n throw new Error(\"Root iModel tile has no content\");\r\n }\r\n\r\n public async requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n assert(false, \"Root iModel 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 iModel tile has no content\");\r\n }\r\n\r\n public draw(args: TileDrawArgs, tiles: Tile[], numStaticTiles: number): void {\r\n assert(numStaticTiles >= 0 && numStaticTiles <= tiles.length);\r\n\r\n // Draw the static tiles.\r\n for (let i = 0; i < numStaticTiles; i++)\r\n tiles[i].drawGraphics(args);\r\n\r\n if (\"dynamic\" !== this._tileState.type || numStaticTiles === tiles.length) {\r\n if (\"dynamic\" === this._tileState.type)\r\n args.addAppearanceProvider(this._tileState.rootTile.appearanceProvider);\r\n\r\n args.drawGraphics();\r\n return;\r\n }\r\n\r\n // We need to hide any modified elements in the static tiles. Pull their graphics into a separate branch.\r\n if (!args.graphics.isEmpty) {\r\n const staticBranch = new GraphicBranch();\r\n for (const staticGraphic of args.graphics.entries)\r\n staticBranch.add(staticGraphic);\r\n\r\n let appearanceProvider = this._tileState.rootTile.appearanceProvider;\r\n if (args.appearanceProvider)\r\n appearanceProvider = FeatureAppearanceProvider.chain(args.appearanceProvider, appearanceProvider);\r\n\r\n args.graphics.clear();\r\n args.graphics.add(args.context.createGraphicBranch(staticBranch, Transform.createIdentity(), { appearanceProvider }));\r\n }\r\n\r\n // Draw the dynamic tiles.\r\n for (let i = numStaticTiles; i < tiles.length; i++)\r\n tiles[i].drawGraphics(args);\r\n\r\n args.drawGraphics();\r\n }\r\n\r\n public prune(olderThan: BeTimePoint): void {\r\n this.staticBranch.pruneChildren(olderThan);\r\n if (\"dynamic\" === this._tileState.type)\r\n this._tileState.rootTile.pruneChildren(olderThan);\r\n }\r\n\r\n public transition(newState: RootTileState): void {\r\n assert(newState.type !== this._tileState.type);\r\n const resetRange = \"dynamic\" === this._tileState.type;\r\n\r\n assert(undefined !== this.children);\r\n if (\"dynamic\" === this._tileState.type) {\r\n assert(2 === this.children.length);\r\n this.children.pop();\r\n } else if (\"dynamic\" === newState.type) {\r\n assert(1 === this.children.length);\r\n this.children.push(newState.rootTile);\r\n }\r\n\r\n this._tileState.dispose();\r\n this._tileState = newState;\r\n\r\n if (resetRange)\r\n this.resetRange();\r\n }\r\n\r\n private resetRange(): void {\r\n this.staticBranch.range.clone(this.range);\r\n this.staticBranch.contentRange.clone(this._contentRange);\r\n\r\n if (this._staticTreeContentRange && this.tree.contentRange)\r\n this._staticTreeContentRange.clone(this.tree.contentRange);\r\n\r\n }\r\n\r\n public get tileScreenSize(): number {\r\n return this.staticBranch.iModelTree.tileScreenSize;\r\n }\r\n\r\n public updateDynamicRange(tile: Tile): void {\r\n this.resetRange();\r\n if (this._staticTreeContentRange && this.tree.contentRange && !tile.contentRange.isNull)\r\n this.tree.contentRange.extendRange(tile.contentRange);\r\n\r\n if (!tile.range.isNull)\r\n this.range.extendRange(tile.range);\r\n\r\n assert(undefined !== this._contentRange);\r\n if (!tile.contentRange.isNull)\r\n this._contentRange.extendRange(tile.contentRange);\r\n }\r\n}\r\n\r\n/** A TileTree whose contents are derived from geometry stored in a Model in an IModelDb.\r\n * @internal\r\n */\r\nexport class IModelTileTree extends TileTree {\r\n private readonly _rootTile: RootTile;\r\n private readonly _options: IModelTileTreeOptions;\r\n private readonly _transformNodeRanges?: Map<number, Range3d>;\r\n public readonly contentIdQualifier?: string;\r\n public readonly geometryGuid?: string;\r\n public readonly maxTilesToSkip: number;\r\n public readonly maxInitialTilesToSkip: number;\r\n public readonly contentIdProvider: ContentIdProvider;\r\n public readonly stringifiedSectionClip?: string;\r\n public readonly tileScreenSize: number;\r\n /** Strictly for debugging/testing - forces tile selection to halt at the specified depth. */\r\n public debugMaxDepth?: number;\r\n /** A little hacky...we must not override selectTiles(), but draw() needs to distinguish between static and dynamic tiles.\r\n * So _selectTiles() puts the static tiles first in the Tile[] array, and records the number of static tiles selected, to be\r\n * used by draw().\r\n */\r\n private _numStaticTilesSelected = 0;\r\n\r\n public constructor(params: IModelTileTreeParams, treeId: IModelTileTreeId) {\r\n super(params);\r\n this.contentIdQualifier = params.contentIdQualifier;\r\n this.geometryGuid = params.geometryGuid;\r\n this.tileScreenSize = params.tileScreenSize;\r\n\r\n if (BatchType.Primary === treeId.type)\r\n this.stringifiedSectionClip = treeId.sectionCut;\r\n\r\n this.maxInitialTilesToSkip = params.maxInitialTilesToSkip ?? 0;\r\n this.maxTilesToSkip = IModelApp.tileAdmin.maximumLevelsToSkip;\r\n\r\n this._options = params.options;\r\n this._transformNodeRanges = params.transformNodeRanges;\r\n\r\n this.contentIdProvider = ContentIdProvider.create(params.options.allowInstancing, IModelApp.tileAdmin, params.formatVersion);\r\n\r\n params.rootTile.contentId = this.contentIdProvider.rootContentId;\r\n this._rootTile = new RootTile(iModelTileParamsFromJSON(params.rootTile, undefined), this);\r\n }\r\n\r\n public get maxDepth() { return 32; }\r\n public get rootTile(): Tile { return this._rootTile; }\r\n /** Exposed chiefly for tests. */\r\n public get staticBranch(): IModelTile { return this._rootTile.staticBranch; }\r\n public get is3d() { return this._options.is3d; }\r\n public override get isContentUnbounded() { return false; }\r\n public get viewFlagOverrides() { return viewFlagOverrides; }\r\n\r\n public get batchType(): BatchType { return this._options.batchType; }\r\n public get edgeOptions(): EdgeOptions | false { return this._options.edges; }\r\n\r\n public override get loadPriority(): TileLoadPriority {\r\n // If the model has been modified, we want to prioritize keeping its graphics up to date.\r\n return this.tileState === \"dynamic\" ? TileLoadPriority.Dynamic : super.loadPriority;\r\n }\r\n\r\n protected _selectTiles(args: TileDrawArgs): Tile[] {\r\n args.markUsed(this._rootTile);\r\n const tiles: Tile[] = [];\r\n this._rootTile.staticBranch.selectTiles(tiles, args, 0);\r\n this._numStaticTilesSelected = tiles.length;\r\n\r\n if (this._rootTile.tileState.type === \"dynamic\")\r\n this._rootTile.tileState.rootTile.selectTiles(tiles, args);\r\n\r\n return tiles;\r\n }\r\n\r\n public draw(args: TileDrawArgs): void {\r\n const tiles = this.selectTiles(args);\r\n this._rootTile.draw(args, tiles, this._numStaticTilesSelected);\r\n }\r\n\r\n public prune(): void {\r\n const olderThan = BeTimePoint.now().minus(this.expirationTime);\r\n this._rootTile.prune(olderThan);\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public get tileState(): \"static\" | \"dynamic\" | \"interactive\" | \"disposed\" {\r\n return this._rootTile.tileState.type;\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public get hiddenElements(): Id64Array {\r\n const state = this._rootTile.tileState;\r\n return \"dynamic\" === state.type ? state.rootTile.hiddenElements : [];\r\n }\r\n\r\n public getTransformNodeRange(nodeId: number): Range3d | undefined {\r\n return this._transformNodeRanges?.get(nodeId);\r\n }\r\n\r\n public get containsTransformNodes(): boolean {\r\n return undefined !== this._transformNodeRanges;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IModelTileTree.js","sourceRoot":"","sources":["../../../src/tile/IModelTileTree.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, BeTimePoint, GuidString, Id64Array, Id64String } from \"@itwin/core-bentley\";\r\nimport { Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n BatchType, ContentIdProvider, EdgeOptions, ElementAlignedBox3d, ElementGeometryChange, FeatureAppearanceProvider,\r\n IModelTileTreeId, IModelTileTreeProps, ModelGeometryChanges, RenderSchedule, TileProps,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { GraphicalEditingScope } from \"../GraphicalEditingScope\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { GraphicBranch } from \"../render/GraphicBranch\";\r\nimport {\r\n DynamicIModelTile, IModelTile, IModelTileParams, iModelTileParamsFromJSON, Tile, TileContent, TileDrawArgs, TileLoadPriority, TileParams, TileRequest,\r\n TileRequestChannel, TileTree, TileTreeParams,\r\n} from \"./internal\";\r\n\r\n/** @internal */\r\nexport interface IModelTileTreeOptions {\r\n readonly allowInstancing: boolean;\r\n readonly edges: EdgeOptions | false;\r\n readonly batchType: BatchType;\r\n readonly is3d: boolean;\r\n readonly timeline: RenderSchedule.ModelTimeline | undefined;\r\n}\r\n\r\n// Overrides nothing.\r\nconst viewFlagOverrides = {};\r\n\r\n/** Parameters used to construct an [[IModelTileTree]]\r\n * @internal\r\n */\r\nexport interface IModelTileTreeParams extends TileTreeParams {\r\n rootTile: TileProps;\r\n contentIdQualifier?: string;\r\n geometryGuid?: GuidString;\r\n maxInitialTilesToSkip?: number;\r\n formatVersion?: number;\r\n tileScreenSize: number;\r\n options: IModelTileTreeOptions;\r\n transformNodeRanges?: Map<number, Range3d>;\r\n}\r\n\r\n/** @internal */\r\nexport function iModelTileTreeParamsFromJSON(props: IModelTileTreeProps, iModel: IModelConnection, modelId: Id64String, options: IModelTileTreeOptions): IModelTileTreeParams {\r\n const location = Transform.fromJSON(props.location);\r\n const { formatVersion, id, rootTile, contentIdQualifier, maxInitialTilesToSkip, geometryGuid } = props;\r\n const tileScreenSize = props.tileScreenSize ?? 512;\r\n\r\n let contentRange;\r\n if (undefined !== props.contentRange)\r\n contentRange = Range3d.fromJSON<ElementAlignedBox3d>(props.contentRange);\r\n\r\n let transformNodeRanges;\r\n if (props.transformNodeRanges) {\r\n transformNodeRanges = new Map<number, Range3d>();\r\n for (const entry of props.transformNodeRanges)\r\n transformNodeRanges.set(entry.id, Range3d.fromJSON(entry));\r\n }\r\n\r\n const priority = BatchType.Primary === options.batchType ? TileLoadPriority.Primary : TileLoadPriority.Classifier;\r\n return {\r\n formatVersion,\r\n id,\r\n rootTile,\r\n iModel,\r\n location,\r\n modelId,\r\n contentRange,\r\n geometryGuid,\r\n contentIdQualifier,\r\n maxInitialTilesToSkip,\r\n priority,\r\n options,\r\n tileScreenSize,\r\n transformNodeRanges,\r\n };\r\n}\r\n\r\nfunction findElementChangesForModel(changes: Iterable<ModelGeometryChanges>, modelId: Id64String): Iterable<ElementGeometryChange> | undefined {\r\n for (const change of changes)\r\n if (change.id === modelId)\r\n return change.elements;\r\n\r\n return undefined;\r\n}\r\n\r\n/** No graphical editing scope is currently active. */\r\nclass StaticState {\r\n public readonly type = \"static\";\r\n public readonly dispose: () => void;\r\n\r\n public constructor(root: RootTile) {\r\n this.dispose = GraphicalEditingScope.onEnter.addOnce((scope: GraphicalEditingScope) => {\r\n root.transition(new InteractiveState(scope, root));\r\n });\r\n }\r\n}\r\n\r\n/** A graphical editing scope is currently active, but no elements in the tile tree's model have been modified. */\r\nclass InteractiveState {\r\n public readonly type = \"interactive\";\r\n public readonly dispose: () => void;\r\n\r\n public constructor(scope: GraphicalEditingScope, root: RootTile) {\r\n const removeEndingListener = scope.onExiting.addOnce((_) => {\r\n root.transition(new StaticState(root));\r\n });\r\n\r\n const removeGeomListener = scope.onGeometryChanges.addListener((changes: Iterable<ModelGeometryChanges>, _scope: GraphicalEditingScope) => {\r\n assert(scope === _scope);\r\n const elemChanges = findElementChangesForModel(changes, root.tree.modelId);\r\n if (elemChanges)\r\n root.transition(new DynamicState(root, elemChanges, scope));\r\n });\r\n\r\n this.dispose = () => {\r\n removeEndingListener();\r\n removeGeomListener();\r\n };\r\n }\r\n}\r\n\r\n/** Elements in the tile tree's model have been modified during the current editing scope. */\r\nclass DynamicState {\r\n public readonly type = \"dynamic\";\r\n public readonly rootTile: DynamicIModelTile;\r\n private readonly _dispose: () => void;\r\n\r\n public dispose(): void {\r\n this._dispose();\r\n this.rootTile.dispose();\r\n }\r\n\r\n public constructor(root: RootTile, elemChanges: Iterable<ElementGeometryChange>, scope: GraphicalEditingScope) {\r\n this.rootTile = DynamicIModelTile.create(root, elemChanges);\r\n\r\n const removeEndingListener = scope.onExiting.addOnce((_) => {\r\n root.transition(new StaticState(root));\r\n });\r\n\r\n const removeGeomListener = scope.onGeometryChanges.addListener((changes: Iterable<ModelGeometryChanges>, _scope: GraphicalEditingScope) => {\r\n assert(scope === _scope);\r\n const elems = findElementChangesForModel(changes, root.tree.modelId);\r\n if (elems)\r\n this.rootTile.handleGeometryChanges(elems);\r\n });\r\n\r\n this._dispose = () => {\r\n removeEndingListener();\r\n removeGeomListener();\r\n };\r\n }\r\n}\r\n\r\n/** The tile tree has been disposed. */\r\nclass DisposedState {\r\n public readonly type = \"disposed\";\r\n public dispose(): void { }\r\n}\r\n\r\nconst disposedState = new DisposedState();\r\n\r\n/** The current state of an [[IModelTileTree]]'s [[RootTile]]. The tile transitions between these states primarily in response to GraphicalEditingScope events. */\r\ntype RootTileState = StaticState | InteractiveState | DynamicState | DisposedState;\r\n\r\n/** The root tile for an [[IModelTileTree]].\r\n * @internal\r\n */\r\nexport type RootIModelTile = Tile & { tileScreenSize: number, updateDynamicRange: (childTile: Tile) => void };\r\n\r\n/** Represents the root [[Tile]] of an [[IModelTileTree]]. The root tile has one or two direct child tiles which represent different branches of the tree:\r\n * - The static branch, containing tiles that represent the state of the model's geometry as of the beginning of the current [[GraphicalEditingScope]].\r\n * - The dynamic branch, containing tiles representing the geometry of elements that have been modified during the current [[GraphicalEditingScope]].\r\n * If no editing scope is currently active, the dynamic branch does not exist, and the static branch represents the current state of all elements in the model.\r\n */\r\nclass RootTile extends Tile {\r\n public readonly staticBranch: IModelTile;\r\n private _tileState: RootTileState;\r\n private readonly _staticTreeContentRange?: Range3d;\r\n\r\n public get tileState(): RootTileState {\r\n return this._tileState;\r\n }\r\n\r\n public constructor(params: IModelTileParams, tree: IModelTileTree) {\r\n const rootParams: TileParams = {\r\n ...params,\r\n range: params.range.clone(),\r\n contentRange: params.contentRange?.clone(),\r\n isLeaf: false,\r\n contentId: \"\",\r\n };\r\n\r\n super(rootParams, tree);\r\n this.staticBranch = new IModelTile(params, tree);\r\n this._staticTreeContentRange = tree.contentRange?.clone();\r\n\r\n if (!this._contentRange)\r\n this._contentRange = this.staticBranch.contentRange.clone();\r\n\r\n // Determine initial state.\r\n const scope = tree.iModel.isBriefcaseConnection() ? tree.iModel.editingScope : undefined;\r\n if (undefined === scope) {\r\n this._tileState = new StaticState(this);\r\n } else {\r\n const changes = scope.getGeometryChangesForModel(tree.modelId);\r\n this._tileState = changes ? new DynamicState(this, changes, scope) : new InteractiveState(scope, this);\r\n }\r\n\r\n // Load the children immediately.\r\n this.setIsReady();\r\n this.loadChildren();\r\n }\r\n\r\n public override dispose(): void {\r\n this.transition(disposedState);\r\n super.dispose();\r\n }\r\n\r\n protected _loadChildren(resolve: (children: Tile[] | undefined) => void, _reject: (error: Error) => void): void {\r\n const children: Tile[] = [this.staticBranch];\r\n if (this._tileState.type === \"dynamic\")\r\n children.push(this._tileState.rootTile);\r\n\r\n resolve(children);\r\n }\r\n\r\n public get channel(): TileRequestChannel {\r\n throw new Error(\"Root iModel tile has no content\");\r\n }\r\n\r\n public async requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response> {\r\n assert(false, \"Root iModel 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 iModel tile has no content\");\r\n }\r\n\r\n public draw(args: TileDrawArgs, tiles: Tile[], numStaticTiles: number): void {\r\n assert(numStaticTiles >= 0 && numStaticTiles <= tiles.length);\r\n\r\n // Draw the static tiles.\r\n for (let i = 0; i < numStaticTiles; i++)\r\n tiles[i].drawGraphics(args);\r\n\r\n if (\"dynamic\" !== this._tileState.type || numStaticTiles === tiles.length) {\r\n if (\"dynamic\" === this._tileState.type)\r\n args.addAppearanceProvider(this._tileState.rootTile.appearanceProvider);\r\n\r\n args.drawGraphics();\r\n return;\r\n }\r\n\r\n // We need to hide any modified elements in the static tiles. Pull their graphics into a separate branch.\r\n if (!args.graphics.isEmpty) {\r\n const staticBranch = new GraphicBranch();\r\n for (const staticGraphic of args.graphics.entries)\r\n staticBranch.add(staticGraphic);\r\n\r\n let appearanceProvider = this._tileState.rootTile.appearanceProvider;\r\n if (args.appearanceProvider)\r\n appearanceProvider = FeatureAppearanceProvider.chain(args.appearanceProvider, appearanceProvider);\r\n\r\n args.graphics.clear();\r\n args.graphics.add(args.context.createGraphicBranch(staticBranch, Transform.createIdentity(), { appearanceProvider }));\r\n }\r\n\r\n // Draw the dynamic tiles.\r\n for (let i = numStaticTiles; i < tiles.length; i++)\r\n tiles[i].drawGraphics(args);\r\n\r\n args.drawGraphics();\r\n }\r\n\r\n public prune(olderThan: BeTimePoint): void {\r\n this.staticBranch.pruneChildren(olderThan);\r\n if (\"dynamic\" === this._tileState.type)\r\n this._tileState.rootTile.pruneChildren(olderThan);\r\n }\r\n\r\n public transition(newState: RootTileState): void {\r\n assert(newState.type !== this._tileState.type);\r\n const resetRange = \"dynamic\" === this._tileState.type;\r\n\r\n assert(undefined !== this.children);\r\n if (\"dynamic\" === this._tileState.type) {\r\n assert(2 === this.children.length);\r\n this.children.pop();\r\n } else if (\"dynamic\" === newState.type) {\r\n assert(1 === this.children.length);\r\n this.children.push(newState.rootTile);\r\n }\r\n\r\n this._tileState.dispose();\r\n this._tileState = newState;\r\n\r\n if (resetRange)\r\n this.resetRange();\r\n }\r\n\r\n private resetRange(): void {\r\n this.staticBranch.range.clone(this.range);\r\n this.staticBranch.contentRange.clone(this._contentRange);\r\n\r\n if (this._staticTreeContentRange && this.tree.contentRange)\r\n this._staticTreeContentRange.clone(this.tree.contentRange);\r\n\r\n }\r\n\r\n public get tileScreenSize(): number {\r\n return this.staticBranch.iModelTree.tileScreenSize;\r\n }\r\n\r\n public updateDynamicRange(tile: Tile): void {\r\n this.resetRange();\r\n if (this._staticTreeContentRange && this.tree.contentRange && !tile.contentRange.isNull)\r\n this.tree.contentRange.extendRange(tile.contentRange);\r\n\r\n if (!tile.range.isNull)\r\n this.range.extendRange(tile.range);\r\n\r\n assert(undefined !== this._contentRange);\r\n if (!tile.contentRange.isNull)\r\n this._contentRange.extendRange(tile.contentRange);\r\n }\r\n}\r\n\r\n/** A TileTree whose contents are derived from geometry stored in a Model in an IModelDb.\r\n * @internal\r\n */\r\nexport class IModelTileTree extends TileTree {\r\n private readonly _rootTile: RootTile;\r\n private readonly _options: IModelTileTreeOptions;\r\n private readonly _transformNodeRanges?: Map<number, Range3d>;\r\n public readonly contentIdQualifier?: string;\r\n public readonly geometryGuid?: string;\r\n public readonly maxTilesToSkip: number;\r\n public readonly maxInitialTilesToSkip: number;\r\n public readonly contentIdProvider: ContentIdProvider;\r\n public readonly stringifiedSectionClip?: string;\r\n public readonly tileScreenSize: number;\r\n /** Strictly for debugging/testing - forces tile selection to halt at the specified depth. */\r\n public debugMaxDepth?: number;\r\n /** A little hacky...we must not override selectTiles(), but draw() needs to distinguish between static and dynamic tiles.\r\n * So _selectTiles() puts the static tiles first in the Tile[] array, and records the number of static tiles selected, to be\r\n * used by draw().\r\n */\r\n private _numStaticTilesSelected = 0;\r\n\r\n public constructor(params: IModelTileTreeParams, treeId: IModelTileTreeId) {\r\n super(params);\r\n this.contentIdQualifier = params.contentIdQualifier;\r\n this.geometryGuid = params.geometryGuid;\r\n this.tileScreenSize = params.tileScreenSize;\r\n\r\n if (BatchType.Primary === treeId.type)\r\n this.stringifiedSectionClip = treeId.sectionCut;\r\n\r\n this.maxInitialTilesToSkip = params.maxInitialTilesToSkip ?? 0;\r\n this.maxTilesToSkip = IModelApp.tileAdmin.maximumLevelsToSkip;\r\n\r\n this._options = params.options;\r\n this._transformNodeRanges = params.transformNodeRanges;\r\n\r\n this.contentIdProvider = ContentIdProvider.create(params.options.allowInstancing, IModelApp.tileAdmin, params.formatVersion);\r\n\r\n params.rootTile.contentId = this.contentIdProvider.rootContentId;\r\n this._rootTile = new RootTile(iModelTileParamsFromJSON(params.rootTile, undefined), this);\r\n }\r\n\r\n public get maxDepth() { return 32; }\r\n public get rootTile(): Tile { return this._rootTile; }\r\n /** Exposed chiefly for tests. */\r\n public get staticBranch(): IModelTile { return this._rootTile.staticBranch; }\r\n public get is3d() { return this._options.is3d; }\r\n public override get isContentUnbounded() { return false; }\r\n public get viewFlagOverrides() { return viewFlagOverrides; }\r\n\r\n public get batchType(): BatchType { return this._options.batchType; }\r\n public get edgeOptions(): EdgeOptions | false { return this._options.edges; }\r\n public get timeline(): RenderSchedule.ModelTimeline | undefined { return this._options.timeline; }\r\n\r\n public override get loadPriority(): TileLoadPriority {\r\n // If the model has been modified, we want to prioritize keeping its graphics up to date.\r\n return this.tileState === \"dynamic\" ? TileLoadPriority.Dynamic : super.loadPriority;\r\n }\r\n\r\n protected _selectTiles(args: TileDrawArgs): Tile[] {\r\n args.markUsed(this._rootTile);\r\n const tiles: Tile[] = [];\r\n this._rootTile.staticBranch.selectTiles(tiles, args, 0);\r\n this._numStaticTilesSelected = tiles.length;\r\n\r\n if (this._rootTile.tileState.type === \"dynamic\")\r\n this._rootTile.tileState.rootTile.selectTiles(tiles, args);\r\n\r\n return tiles;\r\n }\r\n\r\n public draw(args: TileDrawArgs): void {\r\n const tiles = this.selectTiles(args);\r\n this._rootTile.draw(args, tiles, this._numStaticTilesSelected);\r\n }\r\n\r\n public prune(): void {\r\n const olderThan = BeTimePoint.now().minus(this.expirationTime);\r\n this._rootTile.prune(olderThan);\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public get tileState(): \"static\" | \"dynamic\" | \"interactive\" | \"disposed\" {\r\n return this._rootTile.tileState.type;\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public get hiddenElements(): Id64Array {\r\n const state = this._rootTile.tileState;\r\n return \"dynamic\" === state.type ? state.rootTile.hiddenElements : [];\r\n }\r\n\r\n public getTransformNodeRange(nodeId: number): Range3d | undefined {\r\n return this._transformNodeRanges?.get(nodeId);\r\n }\r\n\r\n public get containsTransformNodes(): boolean {\r\n return undefined !== this._transformNodeRanges;\r\n }\r\n}\r\n"]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { ByteStream, Id64String } from "@itwin/core-bentley";
5
5
  import { ClipVectorProps, Range3dProps, TransformProps, XYProps, XYZProps } from "@itwin/core-geometry";
6
- import { BatchType, ColorDef, ColorDefProps, FeatureIndexType, FillFlags, Gradient, ImageSourceFormat, LinePixels, PackedFeatureTable, RenderMaterial, TextureMapping, TextureTransparency, TileHeader, TileReadStatus } from "@itwin/core-common";
6
+ import { BatchType, ColorDef, ColorDefProps, FeatureIndexType, FillFlags, Gradient, ImageSourceFormat, LinePixels, PackedFeatureTable, RenderMaterial, RenderSchedule, TextureMapping, TextureTransparency, TileHeader, TileReadStatus } from "@itwin/core-common";
7
7
  import { IModelConnection } from "../IModelConnection";
8
8
  import { AuxChannelTableProps } from "../render/primitives/AuxChannelTable";
9
9
  import { DisplayParams } from "../render/primitives/DisplayParams";
@@ -360,6 +360,8 @@ export interface ImdlReaderCreateArgs {
360
360
  sizeMultiplier?: number;
361
361
  options?: BatchOptions | false;
362
362
  containsTransformNodes?: boolean;
363
+ /** Supplied if the graphics in the tile are to be split up based on the nodes in the timeline. */
364
+ timeline?: RenderSchedule.ModelTimeline;
363
365
  }
364
366
  /** Deserializes tile content in iMdl format. These tiles contain element geometry encoded into a format optimized for the imodeljs webgl renderer.
365
367
  * @internal
@@ -386,6 +388,7 @@ export declare class ImdlReader {
386
388
  private readonly _options;
387
389
  private readonly _patternGeometry;
388
390
  private readonly _containsTransformNodes;
391
+ private readonly _timeline?;
389
392
  private get _isCanceled();
390
393
  private get _isVolumeClassifier();
391
394
  /** Attempt to initialize an ImdlReader to deserialize iModel tile data beginning at the stream's current position. */
@@ -407,23 +410,25 @@ export declare class ImdlReader {
407
410
  protected readFeatureTable(startPos: number): PackedFeatureTable | undefined;
408
411
  private static skipFeatureTable;
409
412
  private readAreaPattern;
413
+ private readMeshGeometry;
410
414
  private readMeshGraphic;
411
415
  private findBuffer;
412
416
  private readVertexTable;
413
417
  private readAuxChannelTable;
414
418
  private readInstances;
415
419
  private readVertexIndices;
416
- private createPointStringGeometry;
417
420
  private readTesselatedPolyline;
418
- private createPolylineGeometry;
419
421
  private readSurface;
420
422
  private readSegmentEdges;
421
423
  private readSilhouettes;
422
424
  private readIndexedEdges;
423
425
  private readEdges;
424
- private createMeshGeometry;
426
+ private readPrimitiveParams;
425
427
  private readPrimitiveGeometry;
428
+ private createPrimitiveGeometry;
426
429
  private getPatternGeometry;
430
+ private readAnimationBranches;
431
+ private readBranch;
427
432
  private finishRead;
428
433
  }
429
434
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ImdlReader.d.ts","sourceRoot":"","sources":["../../../src/tile/ImdlReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImdlReader.d.ts","sourceRoot":"","sources":["../../../src/tile/ImdlReader.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import { DisplayParams } from "../render/primitives/DisplayParams";
15
15
  import { Mesh } from "../render/primitives/mesh/MeshPrimitives";
16
16
  import { createSurfaceMaterial, isValidSurfaceType, SurfaceType } from "../render/primitives/SurfaceParams";
17
17
  import { MeshParams, VertexIndices, VertexTable } from "../render/primitives/VertexTable";
18
+ import { splitMeshParams, splitPointStringParams, splitPolylineParams } from "../render/primitives/VertexTableSplitter";
18
19
  import { PointStringParams } from "../render/primitives/PointStringParams";
19
20
  import { PolylineParams } from "../render/primitives/PolylineParams";
20
21
  /** Header preceding "glTF" data in iMdl tile.
@@ -117,6 +118,7 @@ export class ImdlReader {
117
118
  this._loadEdges = (_f = args.loadEdges) !== null && _f !== void 0 ? _f : true;
118
119
  this._options = (_g = args.options) !== null && _g !== void 0 ? _g : {};
119
120
  this._containsTransformNodes = (_h = args.containsTransformNodes) !== null && _h !== void 0 ? _h : false;
121
+ this._timeline = args.timeline;
120
122
  }
121
123
  get _isCanceled() { return undefined !== this._canceled && this._canceled(this); }
122
124
  get _isVolumeClassifier() { return BatchType.VolumeClassifier === this._type; }
@@ -408,12 +410,18 @@ export class ImdlReader {
408
410
  return undefined;
409
411
  return this._system.createGraphicBranch(branch, Transform.createIdentity(), { clipVolume });
410
412
  }
413
+ readMeshGeometry(primitive) {
414
+ const geometry = this.readPrimitiveGeometry(primitive);
415
+ if (!geometry)
416
+ return undefined;
417
+ const instances = this.readInstances(primitive);
418
+ return { geometry, instances };
419
+ }
411
420
  readMeshGraphic(primitive) {
412
421
  if (primitive.type === "areaPattern")
413
422
  return this.readAreaPattern(primitive);
414
- const instances = this.readInstances(primitive);
415
- const geometry = this.readPrimitiveGeometry(primitive);
416
- return geometry ? this._system.createRenderGraphic(geometry, instances) : undefined;
423
+ const geom = this.readMeshGeometry(primitive);
424
+ return geom ? this._system.createRenderGraphic(geom.geometry, geom.instances) : undefined;
417
425
  }
418
426
  findBuffer(bufferViewId) {
419
427
  if (typeof bufferViewId !== "string" || 0 === bufferViewId.length)
@@ -513,13 +521,6 @@ export class ImdlReader {
513
521
  const bytes = this.findBuffer(bufferName);
514
522
  return undefined !== bytes ? new VertexIndices(bytes) : undefined;
515
523
  }
516
- createPointStringGeometry(primitive, displayParams, vertices, viewIndependentOrigin) {
517
- const indices = this.readVertexIndices(primitive.indices);
518
- if (undefined === indices)
519
- return undefined;
520
- const params = new PointStringParams(vertices, indices, displayParams.width);
521
- return this._system.createPointStringGeometry(params, viewIndependentOrigin);
522
- }
523
524
  readTesselatedPolyline(json) {
524
525
  const indices = this.readVertexIndices(json.indices);
525
526
  const prevIndices = this.readVertexIndices(json.prevIndices);
@@ -528,16 +529,6 @@ export class ImdlReader {
528
529
  return undefined;
529
530
  return { indices, prevIndices, nextIndicesAndParams };
530
531
  }
531
- createPolylineGeometry(primitive, displayParams, vertices, isPlanar, viewIndependentOrigin) {
532
- const polyline = this.readTesselatedPolyline(primitive);
533
- if (undefined === polyline)
534
- return undefined;
535
- let flags = PolylineTypeFlags.Normal;
536
- if (DisplayParams.RegionEdgeType.Outline === displayParams.regionEdgeType)
537
- flags = (undefined === displayParams.gradient || displayParams.gradient.isOutlined) ? PolylineTypeFlags.Edge : PolylineTypeFlags.Outline;
538
- const params = new PolylineParams(vertices, polyline, displayParams.width, displayParams.linePixels, isPlanar, flags);
539
- return this._system.createPolylineGeometry(params, viewIndependentOrigin);
540
- }
541
532
  readSurface(mesh, displayParams) {
542
533
  const surf = mesh.surface;
543
534
  if (undefined === surf)
@@ -629,23 +620,7 @@ export class ImdlReader {
629
620
  }
630
621
  return { succeeded, params };
631
622
  }
632
- createMeshGeometry(primitive, displayParams, vertices, isPlanar, auxChannels, viewIndependentOrigin) {
633
- const surface = this.readSurface(primitive, displayParams);
634
- if (undefined === surface)
635
- return undefined;
636
- // ###TODO: Tile generator shouldn't bother producing edges for classification meshes in the first place...
637
- let edgeParams;
638
- if (this._loadEdges && undefined !== primitive.edges && SurfaceType.VolumeClassifier !== surface.type) {
639
- const edgeResult = this.readEdges(primitive.edges, displayParams);
640
- if (!edgeResult.succeeded)
641
- return undefined;
642
- else
643
- edgeParams = edgeResult.params;
644
- }
645
- const params = new MeshParams(vertices, surface, edgeParams, isPlanar, auxChannels);
646
- return this._system.createMeshGeometry(params, viewIndependentOrigin);
647
- }
648
- readPrimitiveGeometry(primitive) {
623
+ readPrimitiveParams(primitive) {
649
624
  var _a;
650
625
  const materialName = (_a = primitive.material) !== null && _a !== void 0 ? _a : "";
651
626
  const materialValue = 0 < materialName.length ? JsonUtils.asObject(this._materialValues[materialName]) : undefined;
@@ -660,17 +635,67 @@ export class ImdlReader {
660
635
  const viOrigin = primitive.viewIndependentOrigin ? Point3d.fromJSON(primitive.viewIndependentOrigin) : undefined;
661
636
  const isPlanar = !this._is3d || JsonUtils.asBool(primitive.isPlanar);
662
637
  switch (primitive.type) {
663
- case Mesh.PrimitiveType.Mesh:
664
- return this.createMeshGeometry(primitive, displayParams, vertices, isPlanar, this.readAuxChannelTable(primitive), viOrigin);
665
- case Mesh.PrimitiveType.Polyline:
666
- return this.createPolylineGeometry(primitive, displayParams, vertices, isPlanar, viOrigin);
667
- case Mesh.PrimitiveType.Point:
668
- return this.createPointStringGeometry(primitive, displayParams, vertices, viOrigin);
638
+ case Mesh.PrimitiveType.Mesh: {
639
+ const surface = this.readSurface(primitive, displayParams);
640
+ if (!surface)
641
+ return undefined;
642
+ // ###TODO: Tile generator shouldn't bother producing edges for classification meshes in the first place...
643
+ let edgeParams;
644
+ if (this._loadEdges && undefined !== primitive.edges && SurfaceType.VolumeClassifier !== surface.type) {
645
+ const edgeResult = this.readEdges(primitive.edges, displayParams);
646
+ if (!edgeResult.succeeded)
647
+ return undefined;
648
+ else
649
+ edgeParams = edgeResult.params;
650
+ }
651
+ return {
652
+ params: new MeshParams(vertices, surface, edgeParams, isPlanar, this.readAuxChannelTable(primitive)),
653
+ type: "mesh",
654
+ viOrigin,
655
+ };
656
+ }
657
+ case Mesh.PrimitiveType.Polyline: {
658
+ const polyline = this.readTesselatedPolyline(primitive);
659
+ if (!polyline)
660
+ return undefined;
661
+ let flags = PolylineTypeFlags.Normal;
662
+ if (DisplayParams.RegionEdgeType.Outline === displayParams.regionEdgeType)
663
+ flags = (undefined === displayParams.gradient || displayParams.gradient.isOutlined) ? PolylineTypeFlags.Edge : PolylineTypeFlags.Outline;
664
+ return {
665
+ params: new PolylineParams(vertices, polyline, displayParams.width, displayParams.linePixels, isPlanar, flags),
666
+ type: "polyline",
667
+ viOrigin,
668
+ };
669
+ }
670
+ case Mesh.PrimitiveType.Point: {
671
+ const indices = this.readVertexIndices(primitive.indices);
672
+ if (undefined === indices)
673
+ return undefined;
674
+ return {
675
+ params: new PointStringParams(vertices, indices, displayParams.width),
676
+ type: "point",
677
+ viOrigin,
678
+ };
679
+ }
669
680
  default:
670
681
  assert(false, "unhandled primitive type");
671
682
  return undefined;
672
683
  }
673
684
  }
685
+ readPrimitiveGeometry(primitive) {
686
+ const prim = this.readPrimitiveParams(primitive);
687
+ return prim ? this.createPrimitiveGeometry(prim) : undefined;
688
+ }
689
+ createPrimitiveGeometry(prim) {
690
+ switch (prim.type) {
691
+ case "mesh":
692
+ return this._system.createMeshGeometry(prim.params, prim.viOrigin);
693
+ case "polyline":
694
+ return this._system.createPolylineGeometry(prim.params, prim.viOrigin);
695
+ case "point":
696
+ return this._system.createPointStringGeometry(prim.params, prim.viOrigin);
697
+ }
698
+ }
674
699
  getPatternGeometry(patternName) {
675
700
  let geometry = this._patternGeometry.get(patternName);
676
701
  if (geometry)
@@ -687,6 +712,103 @@ export class ImdlReader {
687
712
  this._patternGeometry.set(patternName, geometry);
688
713
  return geometry;
689
714
  }
715
+ readAnimationBranches(output, mesh, featureTable) {
716
+ const timeline = this._timeline;
717
+ assert(undefined !== timeline);
718
+ const primitives = mesh.primitives;
719
+ if (!primitives)
720
+ return;
721
+ const branchesByNodeId = new Map();
722
+ const getBranch = (nodeId) => {
723
+ let branch = branchesByNodeId.get(nodeId);
724
+ if (!branch) {
725
+ branchesByNodeId.set(nodeId, branch = new GraphicBranch(true));
726
+ branch.animationNodeId = nodeId;
727
+ branch.animationId = `${this._modelId}_Node_${nodeId}`;
728
+ }
729
+ return branch;
730
+ };
731
+ featureTable.populateAnimationNodeIds((elemIdPair) => {
732
+ var _a;
733
+ const elementTimeline = timeline.getTimelineForElement(elemIdPair.lower, elemIdPair.upper);
734
+ return (_a = elementTimeline === null || elementTimeline === void 0 ? void 0 : elementTimeline.batchId) !== null && _a !== void 0 ? _a : 0;
735
+ }, timeline.maxBatchId);
736
+ const discreteNodeIds = timeline.discreteBatchIds;
737
+ const computeNodeId = (_id, featureIndex) => {
738
+ const nodeId = featureTable.getAnimationNodeId(featureIndex);
739
+ return 0 !== nodeId && discreteNodeIds.has(nodeId) ? nodeId : 0;
740
+ };
741
+ const splitArgs = {
742
+ maxDimension: this._system.maxTextureSize,
743
+ computeNodeId,
744
+ featureTable,
745
+ };
746
+ for (const primitive of primitives) {
747
+ if (primitive.type === "areaPattern") {
748
+ // ###TODO animated area patterns.
749
+ const gf = this.readAreaPattern(primitive);
750
+ if (gf)
751
+ getBranch(AnimationNodeId.Untransformed).add(gf);
752
+ }
753
+ else {
754
+ const prim = this.readPrimitiveParams(primitive);
755
+ if (!prim)
756
+ continue;
757
+ const viOrigin = prim.viOrigin;
758
+ switch (prim.type) {
759
+ case "mesh": {
760
+ const split = splitMeshParams({ ...splitArgs, params: prim.params });
761
+ for (const [nodeId, params] of split) {
762
+ const geometry = this.createPrimitiveGeometry({ params, viOrigin, type: "mesh" });
763
+ const instances = undefined; // ###TODO support splitting instances (currently animation tile trees do not permit instancing).
764
+ const graphic = geometry ? this._system.createRenderGraphic(geometry, instances) : undefined;
765
+ if (graphic)
766
+ getBranch(nodeId).add(graphic);
767
+ }
768
+ break;
769
+ }
770
+ case "point": {
771
+ const split = splitPointStringParams({ ...splitArgs, params: prim.params });
772
+ for (const [nodeId, params] of split) {
773
+ const geometry = this.createPrimitiveGeometry({ params, viOrigin, type: "point" });
774
+ const instances = undefined; // ###TODO support splitting instances (currently animation tile trees do not permit instancing).
775
+ const graphic = geometry ? this._system.createRenderGraphic(geometry, instances) : undefined;
776
+ if (graphic)
777
+ getBranch(nodeId).add(graphic);
778
+ }
779
+ break;
780
+ }
781
+ case "polyline": {
782
+ const split = splitPolylineParams({ ...splitArgs, params: prim.params });
783
+ for (const [nodeId, params] of split) {
784
+ const geometry = this.createPrimitiveGeometry({ params, viOrigin, type: "polyline" });
785
+ const instances = undefined; // ###TODO support splitting instances (currently animation tile trees do not permit instancing).
786
+ const graphic = geometry ? this._system.createRenderGraphic(geometry, instances) : undefined;
787
+ if (graphic)
788
+ getBranch(nodeId).add(graphic);
789
+ }
790
+ break;
791
+ }
792
+ }
793
+ }
794
+ }
795
+ for (const branch of branchesByNodeId.values()) {
796
+ assert(!branch.isEmpty);
797
+ output.push(this._system.createBranch(branch, Transform.createIdentity()));
798
+ }
799
+ }
800
+ readBranch(output, primitives, nodeId, animationId) {
801
+ const branch = new GraphicBranch(true);
802
+ branch.animationId = animationId;
803
+ branch.animationNodeId = nodeId;
804
+ for (const primitive of primitives) {
805
+ const graphic = this.readMeshGraphic(primitive);
806
+ if (graphic)
807
+ branch.add(graphic);
808
+ }
809
+ if (!branch.isEmpty)
810
+ output.push(this._system.createBranch(branch, Transform.createIdentity()));
811
+ }
690
812
  finishRead(isLeaf, featureTable, contentRange, emptySubRangeMask, sizeMultiplier) {
691
813
  const graphics = [];
692
814
  if (undefined === this._nodes.Node_Root) {
@@ -704,18 +826,6 @@ export class ImdlReader {
704
826
  }
705
827
  }
706
828
  else {
707
- const readBranch = (primitives, nodeId, animationId) => {
708
- const branch = new GraphicBranch(true);
709
- branch.animationId = animationId;
710
- branch.animationNodeId = nodeId;
711
- for (const primitive of primitives) {
712
- const graphic = this.readMeshGraphic(primitive);
713
- if (graphic)
714
- branch.add(graphic);
715
- }
716
- if (!branch.isEmpty)
717
- graphics.push(this._system.createBranch(branch, Transform.createIdentity()));
718
- };
719
829
  for (const nodeKey of Object.keys(this._nodes)) {
720
830
  const nodeValue = this._nodes[nodeKey];
721
831
  const meshValue = undefined !== nodeValue ? this._meshes[nodeValue] : undefined;
@@ -724,10 +834,14 @@ export class ImdlReader {
724
834
  continue;
725
835
  const layerId = meshValue.layer;
726
836
  if ("Node_Root" === nodeKey) {
727
- // If transform nodes exist in the tile tree, then we need to create a branch for Node_Root so that elements not associated with
728
- // any node in the schedule script can be grouped together.
729
- if (this._containsTransformNodes) {
730
- readBranch(primitives, AnimationNodeId.Untransformed, undefined);
837
+ if (this._timeline) {
838
+ // Split up the root node into transform nodes.
839
+ this.readAnimationBranches(graphics, meshValue, featureTable);
840
+ }
841
+ else if (this._containsTransformNodes) {
842
+ // If transform nodes exist in the tile tree, then we need to create a branch for Node_Root so that elements not associated with
843
+ // any node in the schedule script can be grouped together.
844
+ this.readBranch(graphics, primitives, AnimationNodeId.Untransformed, undefined);
731
845
  }
732
846
  else {
733
847
  for (const primitive of primitives) {
@@ -738,7 +852,7 @@ export class ImdlReader {
738
852
  }
739
853
  }
740
854
  else if (undefined === layerId) {
741
- readBranch(primitives, extractNodeId(nodeKey), `${this._modelId}_${nodeKey}`);
855
+ this.readBranch(graphics, primitives, extractNodeId(nodeKey), `${this._modelId}_${nodeKey}`);
742
856
  }
743
857
  else {
744
858
  const layerGraphics = [];