@itwin/core-common 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 (310) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/lib/cjs/AnalysisStyle.d.ts +7 -7
  3. package/lib/cjs/AnalysisStyle.d.ts.map +1 -1
  4. package/lib/cjs/AnalysisStyle.js.map +1 -1
  5. package/lib/cjs/BackgroundMapProvider.d.ts +2 -2
  6. package/lib/cjs/BackgroundMapProvider.js +1 -1
  7. package/lib/cjs/BackgroundMapProvider.js.map +1 -1
  8. package/lib/cjs/BackgroundMapSettings.d.ts +2 -2
  9. package/lib/cjs/BackgroundMapSettings.d.ts.map +1 -1
  10. package/lib/cjs/BackgroundMapSettings.js.map +1 -1
  11. package/lib/cjs/BriefcaseTypes.js.map +1 -1
  12. package/lib/cjs/ChangedEntities.d.ts +1 -1
  13. package/lib/cjs/ChangedEntities.js.map +1 -1
  14. package/lib/cjs/Code.d.ts +7 -7
  15. package/lib/cjs/Code.d.ts.map +1 -1
  16. package/lib/cjs/Code.js +5 -5
  17. package/lib/cjs/Code.js.map +1 -1
  18. package/lib/cjs/ColorDef.d.ts +2 -0
  19. package/lib/cjs/ColorDef.d.ts.map +1 -1
  20. package/lib/cjs/ColorDef.js +4 -0
  21. package/lib/cjs/ColorDef.js.map +1 -1
  22. package/lib/cjs/ContextRealityModel.d.ts +6 -6
  23. package/lib/cjs/ContextRealityModel.d.ts.map +1 -1
  24. package/lib/cjs/ContextRealityModel.js.map +1 -1
  25. package/lib/cjs/DisplayStyleSettings.d.ts +58 -57
  26. package/lib/cjs/DisplayStyleSettings.d.ts.map +1 -1
  27. package/lib/cjs/DisplayStyleSettings.js +23 -26
  28. package/lib/cjs/DisplayStyleSettings.js.map +1 -1
  29. package/lib/cjs/ElementProps.d.ts +6 -6
  30. package/lib/cjs/ElementProps.d.ts.map +1 -1
  31. package/lib/cjs/ElementProps.js.map +1 -1
  32. package/lib/cjs/EmphasizeElementsProps.d.ts +8 -8
  33. package/lib/cjs/EmphasizeElementsProps.d.ts.map +1 -1
  34. package/lib/cjs/EmphasizeElementsProps.js.map +1 -1
  35. package/lib/cjs/EntityProps.d.ts +2 -2
  36. package/lib/cjs/EntityProps.d.ts.map +1 -1
  37. package/lib/cjs/EntityProps.js.map +1 -1
  38. package/lib/cjs/Environment.d.ts +2 -2
  39. package/lib/cjs/Environment.d.ts.map +1 -1
  40. package/lib/cjs/Environment.js.map +1 -1
  41. package/lib/cjs/FeatureIndex.d.ts +0 -1
  42. package/lib/cjs/FeatureIndex.d.ts.map +1 -1
  43. package/lib/cjs/FeatureIndex.js +0 -1
  44. package/lib/cjs/FeatureIndex.js.map +1 -1
  45. package/lib/cjs/FeatureSymbology.d.ts +40 -9
  46. package/lib/cjs/FeatureSymbology.d.ts.map +1 -1
  47. package/lib/cjs/FeatureSymbology.js +41 -6
  48. package/lib/cjs/FeatureSymbology.js.map +1 -1
  49. package/lib/cjs/FeatureTable.d.ts +6 -2
  50. package/lib/cjs/FeatureTable.d.ts.map +1 -1
  51. package/lib/cjs/FeatureTable.js +26 -6
  52. package/lib/cjs/FeatureTable.js.map +1 -1
  53. package/lib/cjs/HiddenLine.d.ts +3 -3
  54. package/lib/cjs/HiddenLine.d.ts.map +1 -1
  55. package/lib/cjs/HiddenLine.js.map +1 -1
  56. package/lib/cjs/IModel.d.ts +9 -6
  57. package/lib/cjs/IModel.d.ts.map +1 -1
  58. package/lib/cjs/IModel.js.map +1 -1
  59. package/lib/cjs/IModelError.d.ts +3 -3
  60. package/lib/cjs/IModelError.d.ts.map +1 -1
  61. package/lib/cjs/IModelError.js +1 -2
  62. package/lib/cjs/IModelError.js.map +1 -1
  63. package/lib/cjs/LightSettings.d.ts +4 -4
  64. package/lib/cjs/LightSettings.d.ts.map +1 -1
  65. package/lib/cjs/LightSettings.js.map +1 -1
  66. package/lib/cjs/MapImagerySettings.d.ts +7 -7
  67. package/lib/cjs/MapImagerySettings.d.ts.map +1 -1
  68. package/lib/cjs/MapImagerySettings.js +3 -3
  69. package/lib/cjs/MapImagerySettings.js.map +1 -1
  70. package/lib/cjs/MapLayerSettings.d.ts +21 -14
  71. package/lib/cjs/MapLayerSettings.d.ts.map +1 -1
  72. package/lib/cjs/MapLayerSettings.js +6 -6
  73. package/lib/cjs/MapLayerSettings.js.map +1 -1
  74. package/lib/cjs/ModelProps.d.ts +1 -1
  75. package/lib/cjs/ModelProps.js.map +1 -1
  76. package/lib/cjs/PlanProjectionSettings.d.ts +4 -4
  77. package/lib/cjs/PlanProjectionSettings.d.ts.map +1 -1
  78. package/lib/cjs/PlanProjectionSettings.js.map +1 -1
  79. package/lib/cjs/PlanarClipMask.d.ts +11 -11
  80. package/lib/cjs/PlanarClipMask.d.ts.map +1 -1
  81. package/lib/cjs/PlanarClipMask.js.map +1 -1
  82. package/lib/cjs/RenderSchedule.d.ts +66 -8
  83. package/lib/cjs/RenderSchedule.d.ts.map +1 -1
  84. package/lib/cjs/RenderSchedule.js +228 -8
  85. package/lib/cjs/RenderSchedule.js.map +1 -1
  86. package/lib/cjs/RgbColor.d.ts +1 -0
  87. package/lib/cjs/RgbColor.d.ts.map +1 -1
  88. package/lib/cjs/RgbColor.js +4 -0
  89. package/lib/cjs/RgbColor.js.map +1 -1
  90. package/lib/cjs/RpcInterface.d.ts.map +1 -1
  91. package/lib/cjs/RpcInterface.js +91 -4
  92. package/lib/cjs/RpcInterface.js.map +1 -1
  93. package/lib/cjs/SpatialClassification.d.ts +9 -9
  94. package/lib/cjs/SpatialClassification.d.ts.map +1 -1
  95. package/lib/cjs/SpatialClassification.js +1 -1
  96. package/lib/cjs/SpatialClassification.js.map +1 -1
  97. package/lib/cjs/SubCategoryAppearance.d.ts +10 -10
  98. package/lib/cjs/SubCategoryAppearance.d.ts.map +1 -1
  99. package/lib/cjs/SubCategoryAppearance.js.map +1 -1
  100. package/lib/cjs/SubCategoryOverride.d.ts +6 -6
  101. package/lib/cjs/SubCategoryOverride.d.ts.map +1 -1
  102. package/lib/cjs/SubCategoryOverride.js.map +1 -1
  103. package/lib/cjs/ViewFlags.d.ts +3 -3
  104. package/lib/cjs/ViewFlags.d.ts.map +1 -1
  105. package/lib/cjs/ViewFlags.js.map +1 -1
  106. package/lib/cjs/ViewProps.d.ts +3 -1
  107. package/lib/cjs/ViewProps.d.ts.map +1 -1
  108. package/lib/cjs/ViewProps.js.map +1 -1
  109. package/lib/cjs/core-common.d.ts +7 -1
  110. package/lib/cjs/core-common.d.ts.map +1 -1
  111. package/lib/cjs/core-common.js +7 -1
  112. package/lib/cjs/core-common.js.map +1 -1
  113. package/lib/cjs/ipc/IpcSession.d.ts +24 -0
  114. package/lib/cjs/ipc/IpcSession.d.ts.map +1 -0
  115. package/lib/cjs/ipc/IpcSession.js +28 -0
  116. package/lib/cjs/ipc/IpcSession.js.map +1 -0
  117. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts +4 -2
  118. package/lib/cjs/rpc/IModelReadRpcInterface.d.ts.map +1 -1
  119. package/lib/cjs/rpc/IModelReadRpcInterface.js +42 -2
  120. package/lib/cjs/rpc/IModelReadRpcInterface.js.map +1 -1
  121. package/lib/cjs/rpc/IModelTileRpcInterface.d.ts.map +1 -1
  122. package/lib/cjs/rpc/IModelTileRpcInterface.js +16 -2
  123. package/lib/cjs/rpc/IModelTileRpcInterface.js.map +1 -1
  124. package/lib/cjs/rpc/core/RpcControl.d.ts +2 -0
  125. package/lib/cjs/rpc/core/RpcControl.d.ts.map +1 -1
  126. package/lib/cjs/rpc/core/RpcControl.js +13 -1
  127. package/lib/cjs/rpc/core/RpcControl.js.map +1 -1
  128. package/lib/cjs/rpc/core/RpcInvocation.d.ts.map +1 -1
  129. package/lib/cjs/rpc/core/RpcInvocation.js +17 -4
  130. package/lib/cjs/rpc/core/RpcInvocation.js.map +1 -1
  131. package/lib/cjs/rpc/core/RpcProtocol.d.ts +6 -2
  132. package/lib/cjs/rpc/core/RpcProtocol.d.ts.map +1 -1
  133. package/lib/cjs/rpc/core/RpcProtocol.js.map +1 -1
  134. package/lib/cjs/rpc/core/RpcRequest.d.ts +11 -6
  135. package/lib/cjs/rpc/core/RpcRequest.d.ts.map +1 -1
  136. package/lib/cjs/rpc/core/RpcRequest.js +12 -14
  137. package/lib/cjs/rpc/core/RpcRequest.js.map +1 -1
  138. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts +11 -0
  139. package/lib/cjs/rpc/core/RpcSessionInvocation.d.ts.map +1 -0
  140. package/lib/cjs/rpc/core/RpcSessionInvocation.js +60 -0
  141. package/lib/cjs/rpc/core/RpcSessionInvocation.js.map +1 -0
  142. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts +0 -5
  143. package/lib/cjs/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  144. package/lib/cjs/rpc/web/WebAppRpcProtocol.js +0 -47
  145. package/lib/cjs/rpc/web/WebAppRpcProtocol.js.map +1 -1
  146. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts +2 -3
  147. package/lib/cjs/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  148. package/lib/cjs/rpc/web/WebAppRpcRequest.js +25 -20
  149. package/lib/cjs/rpc/web/WebAppRpcRequest.js.map +1 -1
  150. package/lib/cjs/tile/ElementGraphics.d.ts +4 -0
  151. package/lib/cjs/tile/ElementGraphics.d.ts.map +1 -1
  152. package/lib/cjs/tile/ElementGraphics.js.map +1 -1
  153. package/lib/cjs/tile/IModelTileIO.d.ts +2 -2
  154. package/lib/cjs/tile/IModelTileIO.js +2 -2
  155. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  156. package/lib/esm/AnalysisStyle.d.ts +7 -7
  157. package/lib/esm/AnalysisStyle.d.ts.map +1 -1
  158. package/lib/esm/AnalysisStyle.js.map +1 -1
  159. package/lib/esm/BackgroundMapProvider.d.ts +2 -2
  160. package/lib/esm/BackgroundMapProvider.js +1 -1
  161. package/lib/esm/BackgroundMapProvider.js.map +1 -1
  162. package/lib/esm/BackgroundMapSettings.d.ts +2 -2
  163. package/lib/esm/BackgroundMapSettings.d.ts.map +1 -1
  164. package/lib/esm/BackgroundMapSettings.js.map +1 -1
  165. package/lib/esm/BriefcaseTypes.js.map +1 -1
  166. package/lib/esm/ChangedEntities.d.ts +1 -1
  167. package/lib/esm/ChangedEntities.js.map +1 -1
  168. package/lib/esm/Code.d.ts +7 -7
  169. package/lib/esm/Code.d.ts.map +1 -1
  170. package/lib/esm/Code.js +5 -5
  171. package/lib/esm/Code.js.map +1 -1
  172. package/lib/esm/ColorDef.d.ts +2 -0
  173. package/lib/esm/ColorDef.d.ts.map +1 -1
  174. package/lib/esm/ColorDef.js +4 -0
  175. package/lib/esm/ColorDef.js.map +1 -1
  176. package/lib/esm/ContextRealityModel.d.ts +6 -6
  177. package/lib/esm/ContextRealityModel.d.ts.map +1 -1
  178. package/lib/esm/ContextRealityModel.js.map +1 -1
  179. package/lib/esm/DisplayStyleSettings.d.ts +58 -57
  180. package/lib/esm/DisplayStyleSettings.d.ts.map +1 -1
  181. package/lib/esm/DisplayStyleSettings.js +23 -26
  182. package/lib/esm/DisplayStyleSettings.js.map +1 -1
  183. package/lib/esm/ElementProps.d.ts +6 -6
  184. package/lib/esm/ElementProps.d.ts.map +1 -1
  185. package/lib/esm/ElementProps.js.map +1 -1
  186. package/lib/esm/EmphasizeElementsProps.d.ts +8 -8
  187. package/lib/esm/EmphasizeElementsProps.d.ts.map +1 -1
  188. package/lib/esm/EmphasizeElementsProps.js.map +1 -1
  189. package/lib/esm/EntityProps.d.ts +2 -2
  190. package/lib/esm/EntityProps.d.ts.map +1 -1
  191. package/lib/esm/EntityProps.js.map +1 -1
  192. package/lib/esm/Environment.d.ts +2 -2
  193. package/lib/esm/Environment.d.ts.map +1 -1
  194. package/lib/esm/Environment.js.map +1 -1
  195. package/lib/esm/FeatureIndex.d.ts +0 -1
  196. package/lib/esm/FeatureIndex.d.ts.map +1 -1
  197. package/lib/esm/FeatureIndex.js +0 -1
  198. package/lib/esm/FeatureIndex.js.map +1 -1
  199. package/lib/esm/FeatureSymbology.d.ts +40 -9
  200. package/lib/esm/FeatureSymbology.d.ts.map +1 -1
  201. package/lib/esm/FeatureSymbology.js +41 -6
  202. package/lib/esm/FeatureSymbology.js.map +1 -1
  203. package/lib/esm/FeatureTable.d.ts +6 -2
  204. package/lib/esm/FeatureTable.d.ts.map +1 -1
  205. package/lib/esm/FeatureTable.js +26 -6
  206. package/lib/esm/FeatureTable.js.map +1 -1
  207. package/lib/esm/HiddenLine.d.ts +3 -3
  208. package/lib/esm/HiddenLine.d.ts.map +1 -1
  209. package/lib/esm/HiddenLine.js.map +1 -1
  210. package/lib/esm/IModel.d.ts +9 -6
  211. package/lib/esm/IModel.d.ts.map +1 -1
  212. package/lib/esm/IModel.js.map +1 -1
  213. package/lib/esm/IModelError.d.ts +3 -3
  214. package/lib/esm/IModelError.d.ts.map +1 -1
  215. package/lib/esm/IModelError.js +1 -1
  216. package/lib/esm/IModelError.js.map +1 -1
  217. package/lib/esm/LightSettings.d.ts +4 -4
  218. package/lib/esm/LightSettings.d.ts.map +1 -1
  219. package/lib/esm/LightSettings.js.map +1 -1
  220. package/lib/esm/MapImagerySettings.d.ts +7 -7
  221. package/lib/esm/MapImagerySettings.d.ts.map +1 -1
  222. package/lib/esm/MapImagerySettings.js +3 -3
  223. package/lib/esm/MapImagerySettings.js.map +1 -1
  224. package/lib/esm/MapLayerSettings.d.ts +21 -14
  225. package/lib/esm/MapLayerSettings.d.ts.map +1 -1
  226. package/lib/esm/MapLayerSettings.js +6 -6
  227. package/lib/esm/MapLayerSettings.js.map +1 -1
  228. package/lib/esm/ModelProps.d.ts +1 -1
  229. package/lib/esm/ModelProps.js.map +1 -1
  230. package/lib/esm/PlanProjectionSettings.d.ts +4 -4
  231. package/lib/esm/PlanProjectionSettings.d.ts.map +1 -1
  232. package/lib/esm/PlanProjectionSettings.js.map +1 -1
  233. package/lib/esm/PlanarClipMask.d.ts +11 -11
  234. package/lib/esm/PlanarClipMask.d.ts.map +1 -1
  235. package/lib/esm/PlanarClipMask.js.map +1 -1
  236. package/lib/esm/RenderSchedule.d.ts +66 -8
  237. package/lib/esm/RenderSchedule.d.ts.map +1 -1
  238. package/lib/esm/RenderSchedule.js +229 -9
  239. package/lib/esm/RenderSchedule.js.map +1 -1
  240. package/lib/esm/RgbColor.d.ts +1 -0
  241. package/lib/esm/RgbColor.d.ts.map +1 -1
  242. package/lib/esm/RgbColor.js +4 -0
  243. package/lib/esm/RgbColor.js.map +1 -1
  244. package/lib/esm/RpcInterface.d.ts.map +1 -1
  245. package/lib/esm/RpcInterface.js +91 -4
  246. package/lib/esm/RpcInterface.js.map +1 -1
  247. package/lib/esm/SpatialClassification.d.ts +9 -9
  248. package/lib/esm/SpatialClassification.d.ts.map +1 -1
  249. package/lib/esm/SpatialClassification.js +1 -1
  250. package/lib/esm/SpatialClassification.js.map +1 -1
  251. package/lib/esm/SubCategoryAppearance.d.ts +10 -10
  252. package/lib/esm/SubCategoryAppearance.d.ts.map +1 -1
  253. package/lib/esm/SubCategoryAppearance.js.map +1 -1
  254. package/lib/esm/SubCategoryOverride.d.ts +6 -6
  255. package/lib/esm/SubCategoryOverride.d.ts.map +1 -1
  256. package/lib/esm/SubCategoryOverride.js.map +1 -1
  257. package/lib/esm/ViewFlags.d.ts +3 -3
  258. package/lib/esm/ViewFlags.d.ts.map +1 -1
  259. package/lib/esm/ViewFlags.js.map +1 -1
  260. package/lib/esm/ViewProps.d.ts +3 -1
  261. package/lib/esm/ViewProps.d.ts.map +1 -1
  262. package/lib/esm/ViewProps.js.map +1 -1
  263. package/lib/esm/core-common.d.ts +7 -1
  264. package/lib/esm/core-common.d.ts.map +1 -1
  265. package/lib/esm/core-common.js +7 -1
  266. package/lib/esm/core-common.js.map +1 -1
  267. package/lib/esm/ipc/IpcSession.d.ts +24 -0
  268. package/lib/esm/ipc/IpcSession.d.ts.map +1 -0
  269. package/lib/esm/ipc/IpcSession.js +24 -0
  270. package/lib/esm/ipc/IpcSession.js.map +1 -0
  271. package/lib/esm/rpc/IModelReadRpcInterface.d.ts +4 -2
  272. package/lib/esm/rpc/IModelReadRpcInterface.d.ts.map +1 -1
  273. package/lib/esm/rpc/IModelReadRpcInterface.js +41 -1
  274. package/lib/esm/rpc/IModelReadRpcInterface.js.map +1 -1
  275. package/lib/esm/rpc/IModelTileRpcInterface.d.ts.map +1 -1
  276. package/lib/esm/rpc/IModelTileRpcInterface.js +15 -1
  277. package/lib/esm/rpc/IModelTileRpcInterface.js.map +1 -1
  278. package/lib/esm/rpc/core/RpcControl.d.ts +2 -0
  279. package/lib/esm/rpc/core/RpcControl.d.ts.map +1 -1
  280. package/lib/esm/rpc/core/RpcControl.js +13 -1
  281. package/lib/esm/rpc/core/RpcControl.js.map +1 -1
  282. package/lib/esm/rpc/core/RpcInvocation.d.ts.map +1 -1
  283. package/lib/esm/rpc/core/RpcInvocation.js +18 -5
  284. package/lib/esm/rpc/core/RpcInvocation.js.map +1 -1
  285. package/lib/esm/rpc/core/RpcProtocol.d.ts +6 -2
  286. package/lib/esm/rpc/core/RpcProtocol.d.ts.map +1 -1
  287. package/lib/esm/rpc/core/RpcProtocol.js.map +1 -1
  288. package/lib/esm/rpc/core/RpcRequest.d.ts +11 -6
  289. package/lib/esm/rpc/core/RpcRequest.d.ts.map +1 -1
  290. package/lib/esm/rpc/core/RpcRequest.js +6 -8
  291. package/lib/esm/rpc/core/RpcRequest.js.map +1 -1
  292. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts +11 -0
  293. package/lib/esm/rpc/core/RpcSessionInvocation.d.ts.map +1 -0
  294. package/lib/esm/rpc/core/RpcSessionInvocation.js +56 -0
  295. package/lib/esm/rpc/core/RpcSessionInvocation.js.map +1 -0
  296. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts +0 -5
  297. package/lib/esm/rpc/web/WebAppRpcProtocol.d.ts.map +1 -1
  298. package/lib/esm/rpc/web/WebAppRpcProtocol.js +0 -47
  299. package/lib/esm/rpc/web/WebAppRpcProtocol.js.map +1 -1
  300. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts +2 -3
  301. package/lib/esm/rpc/web/WebAppRpcRequest.d.ts.map +1 -1
  302. package/lib/esm/rpc/web/WebAppRpcRequest.js +25 -20
  303. package/lib/esm/rpc/web/WebAppRpcRequest.js.map +1 -1
  304. package/lib/esm/tile/ElementGraphics.d.ts +4 -0
  305. package/lib/esm/tile/ElementGraphics.d.ts.map +1 -1
  306. package/lib/esm/tile/ElementGraphics.js.map +1 -1
  307. package/lib/esm/tile/IModelTileIO.d.ts +2 -2
  308. package/lib/esm/tile/IModelTileIO.js +2 -2
  309. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  310. package/package.json +13 -13
@@ -137,6 +137,8 @@ export declare namespace RenderSchedule {
137
137
  readonly interpolation: Interpolation;
138
138
  constructor(props: TimelineEntryProps);
139
139
  toJSON(): TimelineEntryProps;
140
+ compareTo(other: TimelineEntry): number;
141
+ equals(other: TimelineEntry): boolean;
140
142
  }
141
143
  /** A timeline entry that controls the visibility of the associated geometry. */
142
144
  class VisibilityEntry extends TimelineEntry {
@@ -146,6 +148,7 @@ export declare namespace RenderSchedule {
146
148
  readonly value: number;
147
149
  constructor(props: VisibilityEntryProps);
148
150
  toJSON(): VisibilityEntryProps;
151
+ compareTo(other: VisibilityEntry): number;
149
152
  }
150
153
  /** A timeline entry controlling the color of the affected geometry. */
151
154
  class ColorEntry extends TimelineEntry {
@@ -153,6 +156,7 @@ export declare namespace RenderSchedule {
153
156
  readonly value: RgbColor | undefined;
154
157
  constructor(props: ColorEntryProps);
155
158
  toJSON(): ColorEntryProps;
159
+ compareTo(other: ColorEntry): number;
156
160
  }
157
161
  /** Describes the components of a [[RenderSchedule.TransformEntry]] as a rotation around a pivot point followed by a translation. */
158
162
  class TransformComponents {
@@ -165,6 +169,8 @@ export declare namespace RenderSchedule {
165
169
  constructor(position: Vector3d, pivot: Vector3d, orientation: Point4d);
166
170
  static fromJSON(props: TransformComponentsProps): TransformComponents | undefined;
167
171
  toJSON(): TransformComponentsProps;
172
+ compareTo(other: TransformComponents): number;
173
+ equals(other: TransformComponents): boolean;
168
174
  }
169
175
  /** A timeline entry that applies rotation, scaling, and/or translation to the affected geometry. */
170
176
  class TransformEntry extends TimelineEntry {
@@ -174,6 +180,7 @@ export declare namespace RenderSchedule {
174
180
  readonly components?: TransformComponents;
175
181
  constructor(props: TransformEntryProps);
176
182
  toJSON(): TransformEntryProps;
183
+ compareTo(other: TransformEntry): number;
177
184
  }
178
185
  /** Defines a [ClipPlane]($core-geometry) associated with a [[RenderSchedule.CuttingPlaneEntry]]. */
179
186
  class CuttingPlane {
@@ -187,6 +194,8 @@ export declare namespace RenderSchedule {
187
194
  readonly hidden: boolean;
188
195
  constructor(props: CuttingPlaneProps);
189
196
  toJSON(): CuttingPlaneProps;
197
+ compareTo(other: CuttingPlane): number;
198
+ equals(other: CuttingPlane): boolean;
190
199
  }
191
200
  /** A timeline entry that applies a [ClipPlane]($core-geometry) to the affected geometry. */
192
201
  class CuttingPlaneEntry extends TimelineEntry {
@@ -194,6 +203,7 @@ export declare namespace RenderSchedule {
194
203
  readonly value: CuttingPlane | undefined;
195
204
  constructor(props: CuttingPlaneEntryProps);
196
205
  toJSON(): CuttingPlaneEntryProps;
206
+ compareTo(other: CuttingPlaneEntry): number;
197
207
  }
198
208
  /** Identifies a fractional position along a [[RenderSchedule.Timeline]] between any two [[RenderSchedule.TimelineEntry]]'s within a [[RenderSchedule.TimelineEntryList]].
199
209
  * @internal
@@ -229,6 +239,8 @@ export declare namespace RenderSchedule {
229
239
  /** Look up the value of an entry by its position in the list. */
230
240
  getValue(index: number): V | undefined;
231
241
  toJSON(): P[];
242
+ compareTo(other: TimelineEntryList<T, P, V>): number;
243
+ equals(other: TimelineEntryList<T, P, V>): boolean;
232
244
  /** @internal */
233
245
  findInterval(time: number, interval?: Interval): Interval | undefined;
234
246
  }
@@ -259,6 +271,8 @@ export declare namespace RenderSchedule {
259
271
  readonly duration: Range1d;
260
272
  constructor(props: TimelineProps);
261
273
  toJSON(): TimelineProps;
274
+ compareTo(other: Timeline): number;
275
+ equals(other: Timeline): boolean;
262
276
  /** Get the visibility of the geometry at the specified time point. */
263
277
  getVisibility(time: number): number;
264
278
  /** Get the color of the geometry at the specified time point, or undefined if the color is not overridden at that time point. */
@@ -280,6 +294,9 @@ export declare namespace RenderSchedule {
280
294
  private constructor();
281
295
  static fromJSON(props?: ElementTimelineProps): ElementTimeline;
282
296
  toJSON(): ElementTimelineProps;
297
+ get containsElementIds(): boolean;
298
+ private compareElementIds;
299
+ compareTo(other: ElementTimeline): number;
283
300
  /** @internal */
284
301
  static getElementIds(ids: Id64String[] | CompressedId64Set): Iterable<Id64String>;
285
302
  /** The Ids of the elements controlled by this timeline. */
@@ -315,15 +332,37 @@ export declare namespace RenderSchedule {
315
332
  readonly requiresBatching: boolean;
316
333
  /** True if this timeline affects the position, orientation, or scale of the geometry. */
317
334
  readonly containsTransform: boolean;
335
+ /** True if any [[RenderSchedule.ElementTimeline]]s exist and none of them contain any element Ids. This generally indicates that
336
+ * the backend was instructed to omit the Ids to save space when supplying the script.
337
+ */
338
+ readonly omitsElementIds: boolean;
339
+ private _maxBatchId?;
340
+ /** Tile tree suppliers perform **very** frequent ordered comparisons of ModelTimelines. They need to be fast. */
341
+ private readonly _cachedComparisons;
342
+ /** When loading tiles we need to quickly map element Ids to batch Ids. This map is initialized on first call to [[getTimelineForElement]] to facilitate that lookup. */
343
+ private _idPairToElementTimeline?;
344
+ private _discreteBatchIds?;
318
345
  private constructor();
319
346
  static fromJSON(props?: ModelTimelineProps): ModelTimeline;
320
347
  toJSON(): ModelTimelineProps;
348
+ compareTo(other: ModelTimeline): number;
321
349
  /** Look up the element timeline with the specified batch Id. */
322
350
  findByBatchId(batchId: number): ElementTimeline | undefined;
323
351
  /** @internal */
324
352
  addSymbologyOverrides(overrides: FeatureOverrides, time: number): void;
325
353
  /** Obtain the transform applied to the model at the specified time point, if any. */
326
354
  getTransform(batchId: number, time: number): Readonly<Transform> | undefined;
355
+ /** Get the highest batchId of any ElementTimeline in this timeline. */
356
+ get maxBatchId(): number;
357
+ /** Given the two halves of an [Id64]($bentley) return the [[ElementTimeline]] containing the corresponding element.
358
+ * @note The first call to this method populates a mapping for fast lookup.
359
+ * @alpha
360
+ */
361
+ getTimelineForElement(idLo: number, idHi: number): ElementTimeline | undefined;
362
+ /** The batch Ids of the subset of [[elementTimelines]] that apply a transform and/or cutting plane.
363
+ * @alpha
364
+ */
365
+ get discreteBatchIds(): Set<number>;
327
366
  }
328
367
  /** Specifies how to animate the contents of a [ViewState]($frontend) over time. The script contains any number of [[RenderSchedule.ModelTimeline]]s, each describing how
329
368
  * to animate one of the models in the view.
@@ -351,6 +390,10 @@ export declare namespace RenderSchedule {
351
390
  * @internal
352
391
  */
353
392
  readonly transformBatchIds: ReadonlySet<number>;
393
+ /** Tile tree references perform **very** frequent ordered comparisons of Scripts. They need to be fast. */
394
+ private readonly _cachedComparisons;
395
+ compareTo(other: Script): number;
396
+ equals(other: Script): boolean;
354
397
  protected constructor(props: Readonly<ScriptProps>);
355
398
  static fromJSON(props: Readonly<ScriptProps>): Script | undefined;
356
399
  toJSON(): ScriptProps;
@@ -362,22 +405,37 @@ export declare namespace RenderSchedule {
362
405
  getTransform(modelId: Id64String, batchId: number, time: number): Readonly<Transform> | undefined;
363
406
  /** @internal */
364
407
  addSymbologyOverrides(overrides: FeatureOverrides, time: number): void;
365
- /** Used by collectPredecessorIds methods of RenderTimeline and DisplayStyle.
408
+ /** Used by the [Element.collectReferenceIds]($backend) method overrides in RenderTimeline and DisplayStyle.
366
409
  * @internal
367
410
  */
368
411
  discloseIds(ids: Id64Set): void;
412
+ /** @internal */
413
+ modelRequiresBatching(modelId: Id64String): boolean;
369
414
  }
370
- /** A reference to a [[RenderSchedule.Script]] indicating the persistent [Element]($backend) from which the script was obtained.
371
- * Prior to the introduction of the [RenderTimeline]($backend) class in version 01.00.13 of the BisCore ECSchema, scripts were
372
- * stored in the JSON properties of [DisplayStyle]($backend) elements. Now they are stored in the Script property of a RenderTimeline element.
373
- * The `sourceId` can refer to either a DisplayStyle or a RenderTimeline.
415
+ /** A reference to a [[RenderSchedule.Script]], optionally identifying the source of the script.
416
+ * @see [DisplayStyle.loadScheduleScript]($backend) and [DisplayStyleState.scheduleScript]($frontend) to obtain the script reference for a display style on the frontend
417
+ * and backend respectively.
418
+ * @see [DisplayStyleState.scheduleScript]($frontend) or [DisplayStyleState.changeRenderTimeline]($frontend) to change a display style's script on the frontend.
374
419
  */
375
420
  class ScriptReference {
376
- /** The Id of the [RenderTimeline]($backend) or [DisplayStyle]($backend) element that hosts the script. */
421
+ /** The Id of the element - if any - from which the script originated.
422
+ * A schedule script may originate from one of the following sources:
423
+ * - A [RenderTimeline]($backend) element stored in the iModel; or
424
+ * - The `scheduleScript` JSON property of a [DisplayStyle]($backend) element stored in the iModel; or
425
+ * - Any other source outside of the iModel, such as code that generates the script on the frontend, a script obtained from some server, etc.
426
+ *
427
+ * The [[sourceId]] property identifies the Id of the element from which the script originated; an empty or invalid [Id64String]($bentley) indicates the script did not
428
+ * originate from any persistent element. If the Id is valid, the contents of [[script]] are assumed to match those stored on the source element.
429
+ */
377
430
  readonly sourceId: Id64String;
378
- /** The script. */
431
+ /** The script defining the rendering timelines to be applied. */
379
432
  readonly script: Script;
433
+ /** Create a reference to a [[script]] with no [[sourceId]]. */
434
+ constructor(script: Script);
435
+ /** Create a reference to a [[script]] with the specified [[sourceId]]. */
380
436
  constructor(sourceId: Id64String, script: Script);
437
+ /** @internal Use one of the public constructor overloads which forward to this one. */
438
+ constructor(sourceIdOrScript: Id64String | Script, scriptIfSourceId?: Script);
381
439
  }
382
440
  /** Used as part of a [[RenderSchedule.ScriptBuilder]] to define a [[RenderSchedule.Timeline]].
383
441
  * @see [[RenderSchedule.ElementTimelineBuilder]] and [[RenderSchedule.ModelTimelineBuilder]].
@@ -407,7 +465,7 @@ export declare namespace RenderSchedule {
407
465
  hidden?: boolean;
408
466
  } | undefined, interpolation?: Interpolation): void;
409
467
  /** Append a new [[RenderSchedule.TransformEntry]] to the timeline. */
410
- addTransform(time: number, transform: Transform | undefined, components?: {
468
+ addTransform(time: number, transform: Readonly<Transform> | undefined, components?: {
411
469
  pivot: XYAndZ;
412
470
  orientation: Point4d;
413
471
  position: XYAndZ;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderSchedule.d.ts","sourceRoot":"","sources":["../../src/RenderSchedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderSchedule.d.ts","sourceRoot":"","sources":["../../src/RenderSchedule.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  /** @packageDocumentation
6
6
  * @module DisplayStyles
7
7
  */
8
- import { assert, CompressedId64Set, Id64, OrderedId64Iterable } from "@itwin/core-bentley";
8
+ import { assert, compareBooleans, compareNumbers, comparePossiblyUndefined, compareStrings, compareStringsOrUndefined, CompressedId64Set, Id64, OrderedId64Iterable, } from "@itwin/core-bentley";
9
9
  import { ClipPlane, ClipPrimitive, ClipVector, ConvexClipPlaneSet, Matrix3d, Plane3dByOriginAndUnitNormal, Point3d, Point4d, Range1d, Transform, UnionOfConvexClipPlaneSets, Vector3d, } from "@itwin/core-geometry";
10
10
  import { RgbColor } from "./RgbColor";
11
11
  import { FeatureAppearance } from "./FeatureSymbology";
@@ -15,6 +15,22 @@ function interpolate(start, end, fraction) {
15
15
  function interpolateRgb(start, end, fraction) {
16
16
  return new RgbColor(interpolate(start.r, end.r, fraction), interpolate(start.g, end.g, fraction), interpolate(start.b, end.b, fraction));
17
17
  }
18
+ function compareXYZ(lhs, rhs) {
19
+ return compareNumbers(lhs.x, rhs.x) || compareNumbers(lhs.y, rhs.y) || compareNumbers(lhs.z, rhs.z);
20
+ }
21
+ function compare4d(lhs, rhs) {
22
+ return compareNumbers(lhs.x, rhs.x) || compareNumbers(lhs.y, rhs.y) || compareNumbers(lhs.z, rhs.z) || compareNumbers(lhs.w, rhs.w);
23
+ }
24
+ const scratchVec3a = new Vector3d();
25
+ const scratchVec3b = new Vector3d();
26
+ function compareMatrices(lhs, rhs) {
27
+ return compareXYZ(lhs.columnX(scratchVec3a), rhs.columnX(scratchVec3b))
28
+ || compareXYZ(lhs.columnY(scratchVec3a), rhs.columnY(scratchVec3b))
29
+ || compareXYZ(lhs.columnZ(scratchVec3a), rhs.columnZ(scratchVec3b));
30
+ }
31
+ function compareDurations(lhs, rhs) {
32
+ return compareNumbers(lhs.low, rhs.low) || compareNumbers(lhs.high, rhs.high);
33
+ }
18
34
  /** Namespace containing types that collectively define a script that animates the contents of a view by adjusting the visibility, position,
19
35
  * and/or symbology of groups of elements over time. A [[RenderSchedule.Script]] is hosted by a [RenderTimeline]($backend) element. The script
20
36
  * can be associated with a [DisplayStyleState]($frontend) by way of its [[DisplayStyleSettings.renderTimeline]] property.
@@ -54,6 +70,12 @@ export var RenderSchedule;
54
70
  props.interpolation = this.interpolation;
55
71
  return props;
56
72
  }
73
+ compareTo(other) {
74
+ return compareNumbers(this.interpolation, other.interpolation) || compareNumbers(this.time, other.time);
75
+ }
76
+ equals(other) {
77
+ return 0 === this.compareTo(other);
78
+ }
57
79
  }
58
80
  RenderSchedule.TimelineEntry = TimelineEntry;
59
81
  /** A timeline entry that controls the visibility of the associated geometry. */
@@ -71,6 +93,10 @@ export var RenderSchedule;
71
93
  props.value = this.value;
72
94
  return props;
73
95
  }
96
+ compareTo(other) {
97
+ assert(other instanceof VisibilityEntry);
98
+ return super.compareTo(other) || compareNumbers(this.value, other.value);
99
+ }
74
100
  }
75
101
  RenderSchedule.VisibilityEntry = VisibilityEntry;
76
102
  /** A timeline entry controlling the color of the affected geometry. */
@@ -91,6 +117,10 @@ export var RenderSchedule;
91
117
  }
92
118
  return props;
93
119
  }
120
+ compareTo(other) {
121
+ assert(other instanceof ColorEntry);
122
+ return super.compareTo(other) || comparePossiblyUndefined((lhs, rhs) => lhs.compareTo(rhs), this.value, other.value);
123
+ }
94
124
  }
95
125
  RenderSchedule.ColorEntry = ColorEntry;
96
126
  /** Describes the components of a [[RenderSchedule.TransformEntry]] as a rotation around a pivot point followed by a translation. */
@@ -113,6 +143,12 @@ export var RenderSchedule;
113
143
  orientation: [this.orientation.x, this.orientation.y, this.orientation.z, this.orientation.w],
114
144
  };
115
145
  }
146
+ compareTo(other) {
147
+ return compareXYZ(this.pivot, other.pivot) || compareXYZ(this.position, other.position) || compare4d(this.orientation, other.orientation);
148
+ }
149
+ equals(other) {
150
+ return this.pivot.isAlmostEqual(other.pivot) && this.position.isAlmostEqual(other.position) && this.orientation.isAlmostEqual(other.orientation);
151
+ }
116
152
  }
117
153
  RenderSchedule.TransformComponents = TransformComponents;
118
154
  /** A timeline entry that applies rotation, scaling, and/or translation to the affected geometry. */
@@ -134,6 +170,18 @@ export var RenderSchedule;
134
170
  }
135
171
  return props;
136
172
  }
173
+ compareTo(other) {
174
+ assert(other instanceof TransformEntry);
175
+ const cmp = super.compareTo(other);
176
+ if (0 !== cmp)
177
+ return cmp;
178
+ if (this.components || other.components) {
179
+ if (!this.components || !other.components)
180
+ return this.components ? 1 : -1;
181
+ return this.components.compareTo(other.components);
182
+ }
183
+ return compareXYZ(this.value.origin, other.value.origin) || compareMatrices(this.value.matrix, other.value.matrix);
184
+ }
137
185
  }
138
186
  RenderSchedule.TransformEntry = TransformEntry;
139
187
  /** Defines a [ClipPlane]($core-geometry) associated with a [[RenderSchedule.CuttingPlaneEntry]]. */
@@ -155,6 +203,12 @@ export var RenderSchedule;
155
203
  props.hidden = true;
156
204
  return props;
157
205
  }
206
+ compareTo(other) {
207
+ return compareXYZ(this.position, other.position) || compareXYZ(this.direction, other.direction) || compareBooleans(this.visible, other.visible) || compareBooleans(this.hidden, other.hidden);
208
+ }
209
+ equals(other) {
210
+ return 0 === this.compareTo(other);
211
+ }
158
212
  }
159
213
  RenderSchedule.CuttingPlane = CuttingPlane;
160
214
  /** A timeline entry that applies a [ClipPlane]($core-geometry) to the affected geometry. */
@@ -170,6 +224,10 @@ export var RenderSchedule;
170
224
  props.value = this.value.toJSON();
171
225
  return props;
172
226
  }
227
+ compareTo(other) {
228
+ assert(other instanceof CuttingPlaneEntry);
229
+ return super.compareTo(other) || comparePossiblyUndefined((x, y) => x.compareTo(y), this.value, other.value);
230
+ }
173
231
  }
174
232
  RenderSchedule.CuttingPlaneEntry = CuttingPlaneEntry;
175
233
  /** Identifies a fractional position along a [[RenderSchedule.Timeline]] between any two [[RenderSchedule.TimelineEntry]]'s within a [[RenderSchedule.TimelineEntryList]].
@@ -220,6 +278,18 @@ export var RenderSchedule;
220
278
  toJSON() {
221
279
  return this._entries.map((x) => x.toJSON());
222
280
  }
281
+ compareTo(other) {
282
+ let cmp = compareNumbers(this._entries.length, other._entries.length) || compareDurations(this.duration, other.duration);
283
+ if (0 === cmp) {
284
+ for (let i = 0; i < this.length; i++)
285
+ if (0 !== (cmp = this._entries[i].compareTo(other._entries[i])))
286
+ break;
287
+ }
288
+ return cmp;
289
+ }
290
+ equals(other) {
291
+ return 0 === this.compareTo(other);
292
+ }
223
293
  /** @internal */
224
294
  findInterval(time, interval) {
225
295
  if (this.length === 0)
@@ -303,6 +373,25 @@ export var RenderSchedule;
303
373
  cuttingPlaneTimeline: (_d = this.cuttingPlane) === null || _d === void 0 ? void 0 : _d.toJSON(),
304
374
  };
305
375
  }
376
+ compareTo(other) {
377
+ const cmp = compareDurations(this.duration, other.duration);
378
+ if (0 !== cmp)
379
+ return cmp;
380
+ // Do cheaper checks before iterating through timeline entries
381
+ if (!!this.visibility !== !!other.visibility)
382
+ return this.visibility ? 1 : -1;
383
+ else if (!!this.color !== !!other.color)
384
+ return this.color ? 1 : -1;
385
+ else if (!!this.transform !== !!other.transform)
386
+ return this.transform ? 1 : -1;
387
+ else if (!!this.cuttingPlane !== !!other.cuttingPlane)
388
+ return this.cuttingPlane ? 1 : -1;
389
+ return comparePossiblyUndefined((x, y) => x.compareTo(y), this.visibility, other.visibility) || comparePossiblyUndefined((x, y) => x.compareTo(y), this.color, other.color)
390
+ || comparePossiblyUndefined((x, y) => x.compareTo(y), this.transform, other.transform) || comparePossiblyUndefined((x, y) => x.compareTo(y), this.cuttingPlane, other.cuttingPlane);
391
+ }
392
+ equals(other) {
393
+ return 0 === this.compareTo(other);
394
+ }
306
395
  /** Get the visibility of the geometry at the specified time point. */
307
396
  getVisibility(time) {
308
397
  var _a, _b;
@@ -419,6 +508,38 @@ export var RenderSchedule;
419
508
  elementIds: this._elementIds,
420
509
  };
421
510
  }
511
+ get containsElementIds() {
512
+ return this._elementIds.length > 0;
513
+ }
514
+ compareElementIds(other) {
515
+ if (typeof this._elementIds === typeof other._elementIds) {
516
+ const cmp = compareNumbers(this._elementIds.length, other._elementIds.length);
517
+ if (0 !== cmp)
518
+ return cmp;
519
+ if (typeof this._elementIds === "string") {
520
+ assert(typeof other._elementIds === "string");
521
+ return compareStrings(this._elementIds, other._elementIds);
522
+ }
523
+ }
524
+ // One or both are stored as arrays, in which case they might contain the same Ids in different orders. We will consider them different in that case.
525
+ const mine = this.elementIds[Symbol.iterator]();
526
+ const theirs = other.elementIds[Symbol.iterator]();
527
+ while (true) {
528
+ const a = mine.next();
529
+ const b = theirs.next();
530
+ if (a.done !== b.done)
531
+ return compareBooleans(!!a.done, !!b.done);
532
+ else if (a.done)
533
+ return 0;
534
+ const cmp = compareStrings(a.value, b.value);
535
+ if (0 !== cmp)
536
+ return cmp;
537
+ }
538
+ }
539
+ compareTo(other) {
540
+ assert(other instanceof ElementTimeline);
541
+ return compareNumbers(this.batchId, other.batchId) || this.compareElementIds(other) || super.compareTo(other);
542
+ }
422
543
  /** @internal */
423
544
  static getElementIds(ids) {
424
545
  if (typeof ids === "string")
@@ -468,6 +589,8 @@ export var RenderSchedule;
468
589
  class ModelTimeline extends Timeline {
469
590
  constructor(props) {
470
591
  super(props);
592
+ /** Tile tree suppliers perform **very** frequent ordered comparisons of ModelTimelines. They need to be fast. */
593
+ this._cachedComparisons = new WeakMap();
471
594
  this.modelId = props.modelId;
472
595
  this.realityModelUrl = props.realityModelUrl;
473
596
  this.containsModelClipping = undefined !== this.cuttingPlane;
@@ -476,6 +599,7 @@ export var RenderSchedule;
476
599
  let containsTransform = false;
477
600
  const transformBatchIds = [];
478
601
  const elementTimelines = [];
602
+ let containsElementIds = false;
479
603
  for (const elProps of props.elementTimelines) {
480
604
  const el = ElementTimeline.fromJSON(elProps);
481
605
  elementTimelines.push(el);
@@ -487,9 +611,11 @@ export var RenderSchedule;
487
611
  }
488
612
  containsFeatureOverrides || (containsFeatureOverrides = el.containsFeatureOverrides);
489
613
  requiresBatching || (requiresBatching = el.requiresBatching);
614
+ containsElementIds = containsElementIds || el.containsElementIds;
490
615
  }
491
616
  this.elementTimelines = elementTimelines;
492
617
  this.transformBatchIds = transformBatchIds;
618
+ this.omitsElementIds = elementTimelines.length > 0 && !containsElementIds;
493
619
  this.containsFeatureOverrides = containsFeatureOverrides;
494
620
  this.requiresBatching = requiresBatching;
495
621
  this.containsTransform = containsTransform;
@@ -505,6 +631,26 @@ export var RenderSchedule;
505
631
  elementTimelines: this.elementTimelines.map((x) => x.toJSON()),
506
632
  };
507
633
  }
634
+ compareTo(other) {
635
+ if (this === other)
636
+ return 0;
637
+ const cached = this._cachedComparisons.get(other);
638
+ if (undefined !== cached)
639
+ return cached;
640
+ assert(other instanceof ModelTimeline);
641
+ let cmp = compareStrings(this.modelId, other.modelId) || compareStringsOrUndefined(this.realityModelUrl, other.realityModelUrl)
642
+ || compareNumbers(this.elementTimelines.length, other.elementTimelines.length) || compareBooleans(this.containsFeatureOverrides, other.containsFeatureOverrides)
643
+ || compareBooleans(this.containsModelClipping, other.containsModelClipping) || compareBooleans(this.containsTransform, other.containsTransform)
644
+ || super.compareTo(other);
645
+ if (0 === cmp) {
646
+ for (let i = 0; i < this.elementTimelines.length; i++)
647
+ if (0 !== (cmp = this.elementTimelines[i].compareTo(other.elementTimelines[i])))
648
+ break;
649
+ }
650
+ this._cachedComparisons.set(other, cmp);
651
+ other._cachedComparisons.set(this, -cmp);
652
+ return cmp;
653
+ }
508
654
  /** Look up the element timeline with the specified batch Id. */
509
655
  findByBatchId(batchId) {
510
656
  return this.elementTimelines.find((x) => x.batchId === batchId);
@@ -522,6 +668,43 @@ export var RenderSchedule;
522
668
  var _a;
523
669
  return (_a = this.findByBatchId(batchId)) === null || _a === void 0 ? void 0 : _a.getAnimationTransform(time);
524
670
  }
671
+ /** Get the highest batchId of any ElementTimeline in this timeline. */
672
+ get maxBatchId() {
673
+ if (undefined === this._maxBatchId) {
674
+ this._maxBatchId = 0;
675
+ for (const elem of this.elementTimelines)
676
+ this._maxBatchId = Math.max(this._maxBatchId, elem.batchId);
677
+ }
678
+ return this._maxBatchId;
679
+ }
680
+ /** Given the two halves of an [Id64]($bentley) return the [[ElementTimeline]] containing the corresponding element.
681
+ * @note The first call to this method populates a mapping for fast lookup.
682
+ * @alpha
683
+ */
684
+ getTimelineForElement(idLo, idHi) {
685
+ if (!this._idPairToElementTimeline) {
686
+ this._idPairToElementTimeline = new Id64.Uint32Map();
687
+ for (const timeline of this.elementTimelines) {
688
+ for (const elementId of timeline.elementIds) {
689
+ // NB: a malformed script may place the same element Id into multiple timelines. We're not going to check for such data errors here.
690
+ this._idPairToElementTimeline.setById(elementId, timeline);
691
+ }
692
+ }
693
+ }
694
+ return this._idPairToElementTimeline.get(idLo, idHi);
695
+ }
696
+ /** The batch Ids of the subset of [[elementTimelines]] that apply a transform and/or cutting plane.
697
+ * @alpha
698
+ */
699
+ get discreteBatchIds() {
700
+ if (!this._discreteBatchIds) {
701
+ this._discreteBatchIds = new Set(this.transformBatchIds);
702
+ for (const timeline of this.elementTimelines)
703
+ if (!timeline.containsTransform && undefined !== timeline.cuttingPlane)
704
+ this._discreteBatchIds.add(timeline.batchId);
705
+ }
706
+ return this._discreteBatchIds;
707
+ }
525
708
  }
526
709
  RenderSchedule.ModelTimeline = ModelTimeline;
527
710
  /** Specifies how to animate the contents of a [ViewState]($frontend) over time. The script contains any number of [[RenderSchedule.ModelTimeline]]s, each describing how
@@ -533,6 +716,8 @@ export var RenderSchedule;
533
716
  */
534
717
  class Script {
535
718
  constructor(props) {
719
+ /** Tile tree references perform **very** frequent ordered comparisons of Scripts. They need to be fast. */
720
+ this._cachedComparisons = new WeakMap();
536
721
  this.duration = Range1d.createNull();
537
722
  const transformBatchIds = new Set();
538
723
  const modelTimelines = [];
@@ -558,6 +743,27 @@ export var RenderSchedule;
558
743
  this.containsFeatureOverrides = containsFeatureOverrides;
559
744
  this.transformBatchIds = transformBatchIds;
560
745
  }
746
+ compareTo(other) {
747
+ if (this === other)
748
+ return 0;
749
+ const cached = this._cachedComparisons.get(other);
750
+ if (undefined !== cached)
751
+ return cached;
752
+ let cmp = compareNumbers(this.modelTimelines.length, other.modelTimelines.length) || compareBooleans(this.containsModelClipping, other.containsModelClipping)
753
+ || compareBooleans(this.requiresBatching, other.requiresBatching) || compareBooleans(this.containsTransform, other.containsTransform)
754
+ || compareBooleans(this.containsFeatureOverrides, other.containsFeatureOverrides) || compareDurations(this.duration, other.duration);
755
+ if (0 === cmp) {
756
+ for (let i = 0; i < this.modelTimelines.length; i++)
757
+ if (0 !== (cmp = this.modelTimelines[i].compareTo(other.modelTimelines[i])))
758
+ break;
759
+ }
760
+ this._cachedComparisons.set(other, cmp);
761
+ other._cachedComparisons.set(this, -cmp);
762
+ return cmp;
763
+ }
764
+ equals(other) {
765
+ return 0 === this.compareTo(other);
766
+ }
561
767
  static fromJSON(props) {
562
768
  if (!Array.isArray(props) || props.length === 0)
563
769
  return undefined;
@@ -585,7 +791,7 @@ export var RenderSchedule;
585
791
  for (const timeline of this.modelTimelines)
586
792
  timeline.addSymbologyOverrides(overrides, time);
587
793
  }
588
- /** Used by collectPredecessorIds methods of RenderTimeline and DisplayStyle.
794
+ /** Used by the [Element.collectReferenceIds]($backend) method overrides in RenderTimeline and DisplayStyle.
589
795
  * @internal
590
796
  */
591
797
  discloseIds(ids) {
@@ -596,17 +802,31 @@ export var RenderSchedule;
596
802
  ids.add(id);
597
803
  }
598
804
  }
805
+ /** @internal */
806
+ modelRequiresBatching(modelId) {
807
+ // Only if the script contains animation (cutting plane, transform or visibility by node ID) do we require separate tilesets for animations.
808
+ return this.requiresBatching && this.modelTimelines.some((x) => x.modelId === modelId && x.requiresBatching);
809
+ }
599
810
  }
600
811
  RenderSchedule.Script = Script;
601
- /** A reference to a [[RenderSchedule.Script]] indicating the persistent [Element]($backend) from which the script was obtained.
602
- * Prior to the introduction of the [RenderTimeline]($backend) class in version 01.00.13 of the BisCore ECSchema, scripts were
603
- * stored in the JSON properties of [DisplayStyle]($backend) elements. Now they are stored in the Script property of a RenderTimeline element.
604
- * The `sourceId` can refer to either a DisplayStyle or a RenderTimeline.
812
+ /** A reference to a [[RenderSchedule.Script]], optionally identifying the source of the script.
813
+ * @see [DisplayStyle.loadScheduleScript]($backend) and [DisplayStyleState.scheduleScript]($frontend) to obtain the script reference for a display style on the frontend
814
+ * and backend respectively.
815
+ * @see [DisplayStyleState.scheduleScript]($frontend) or [DisplayStyleState.changeRenderTimeline]($frontend) to change a display style's script on the frontend.
605
816
  */
606
817
  class ScriptReference {
607
- constructor(sourceId, script) {
608
- this.sourceId = sourceId;
609
- this.script = script;
818
+ /** @internal Use one of the public constructor overloads which forward to this one. */
819
+ constructor(sourceIdOrScript, scriptIfSourceId) {
820
+ if (typeof sourceIdOrScript === "string") {
821
+ assert(scriptIfSourceId instanceof Script);
822
+ this.sourceId = sourceIdOrScript;
823
+ this.script = scriptIfSourceId;
824
+ }
825
+ else {
826
+ assert(undefined === scriptIfSourceId);
827
+ this.script = sourceIdOrScript;
828
+ this.sourceId = Id64.invalid;
829
+ }
610
830
  }
611
831
  }
612
832
  RenderSchedule.ScriptReference = ScriptReference;