@itwin/core-frontend 3.2.0-dev.35 → 3.2.0-dev.38

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 (744) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/lib/cjs/AccuDraw.d.ts +2 -0
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +2 -0
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/AccuSnap.d.ts +1 -0
  7. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  8. package/lib/cjs/AccuSnap.js +1 -0
  9. package/lib/cjs/AccuSnap.js.map +1 -1
  10. package/lib/cjs/AuxCoordSys.d.ts +12 -2
  11. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  12. package/lib/cjs/AuxCoordSys.js +12 -2
  13. package/lib/cjs/AuxCoordSys.js.map +1 -1
  14. package/lib/cjs/BingLocation.d.ts +1 -0
  15. package/lib/cjs/BingLocation.d.ts.map +1 -1
  16. package/lib/cjs/BingLocation.js +1 -0
  17. package/lib/cjs/BingLocation.js.map +1 -1
  18. package/lib/cjs/CategorySelectorState.d.ts +1 -0
  19. package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
  20. package/lib/cjs/CategorySelectorState.js +1 -0
  21. package/lib/cjs/CategorySelectorState.js.map +1 -1
  22. package/lib/cjs/ChangeFlags.d.ts +1 -0
  23. package/lib/cjs/ChangeFlags.d.ts.map +1 -1
  24. package/lib/cjs/ChangeFlags.js +1 -0
  25. package/lib/cjs/ChangeFlags.js.map +1 -1
  26. package/lib/cjs/ContextRealityModelState.d.ts +1 -0
  27. package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
  28. package/lib/cjs/ContextRealityModelState.js +1 -0
  29. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  30. package/lib/cjs/CoordSystem.d.ts +1 -0
  31. package/lib/cjs/CoordSystem.d.ts.map +1 -1
  32. package/lib/cjs/CoordSystem.js +1 -0
  33. package/lib/cjs/CoordSystem.js.map +1 -1
  34. package/lib/cjs/DisplayStyleState.d.ts +4 -0
  35. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  36. package/lib/cjs/DisplayStyleState.js +3 -0
  37. package/lib/cjs/DisplayStyleState.js.map +1 -1
  38. package/lib/cjs/DrawingViewState.d.ts +1 -0
  39. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  40. package/lib/cjs/DrawingViewState.js +1 -0
  41. package/lib/cjs/DrawingViewState.js.map +1 -1
  42. package/lib/cjs/ElementLocateManager.d.ts +23 -5
  43. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  44. package/lib/cjs/ElementLocateManager.js +19 -4
  45. package/lib/cjs/ElementLocateManager.js.map +1 -1
  46. package/lib/cjs/EmphasizeElements.d.ts +1 -0
  47. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  48. package/lib/cjs/EmphasizeElements.js +1 -0
  49. package/lib/cjs/EmphasizeElements.js.map +1 -1
  50. package/lib/cjs/EntityState.d.ts +2 -0
  51. package/lib/cjs/EntityState.d.ts.map +1 -1
  52. package/lib/cjs/EntityState.js +2 -0
  53. package/lib/cjs/EntityState.js.map +1 -1
  54. package/lib/cjs/FeatureOverrideProvider.d.ts +1 -0
  55. package/lib/cjs/FeatureOverrideProvider.d.ts.map +1 -1
  56. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  57. package/lib/cjs/FlashSettings.d.ts +3 -0
  58. package/lib/cjs/FlashSettings.d.ts.map +1 -1
  59. package/lib/cjs/FlashSettings.js +2 -0
  60. package/lib/cjs/FlashSettings.js.map +1 -1
  61. package/lib/cjs/FrontendHubAccess.d.ts +4 -1
  62. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  63. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  64. package/lib/cjs/FrontendLoggerCategory.d.ts +1 -0
  65. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  66. package/lib/cjs/FrontendLoggerCategory.js +1 -0
  67. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  68. package/lib/cjs/FrustumAnimator.d.ts +1 -0
  69. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  70. package/lib/cjs/FrustumAnimator.js +1 -0
  71. package/lib/cjs/FrustumAnimator.js.map +1 -1
  72. package/lib/cjs/FuzzySearch.d.ts +1 -0
  73. package/lib/cjs/FuzzySearch.d.ts.map +1 -1
  74. package/lib/cjs/FuzzySearch.js.map +1 -1
  75. package/lib/cjs/GlobeAnimator.d.ts +1 -0
  76. package/lib/cjs/GlobeAnimator.d.ts.map +1 -1
  77. package/lib/cjs/GlobeAnimator.js +1 -0
  78. package/lib/cjs/GlobeAnimator.js.map +1 -1
  79. package/lib/cjs/HitDetail.d.ts +26 -5
  80. package/lib/cjs/HitDetail.d.ts.map +1 -1
  81. package/lib/cjs/HitDetail.js +26 -5
  82. package/lib/cjs/HitDetail.js.map +1 -1
  83. package/lib/cjs/IModelApp.d.ts +7 -0
  84. package/lib/cjs/IModelApp.d.ts.map +1 -1
  85. package/lib/cjs/IModelApp.js +32 -20
  86. package/lib/cjs/IModelApp.js.map +1 -1
  87. package/lib/cjs/IModelConnection.d.ts +1 -0
  88. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  89. package/lib/cjs/IModelConnection.js +1 -0
  90. package/lib/cjs/IModelConnection.js.map +1 -1
  91. package/lib/cjs/ImageUtil.d.ts +11 -0
  92. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  93. package/lib/cjs/ImageUtil.js +11 -0
  94. package/lib/cjs/ImageUtil.js.map +1 -1
  95. package/lib/cjs/IpcApp.d.ts +1 -0
  96. package/lib/cjs/IpcApp.d.ts.map +1 -1
  97. package/lib/cjs/IpcApp.js +1 -0
  98. package/lib/cjs/IpcApp.js.map +1 -1
  99. package/lib/cjs/MarginPercent.d.ts +1 -0
  100. package/lib/cjs/MarginPercent.d.ts.map +1 -1
  101. package/lib/cjs/MarginPercent.js +1 -0
  102. package/lib/cjs/MarginPercent.js.map +1 -1
  103. package/lib/cjs/Marker.d.ts +16 -3
  104. package/lib/cjs/Marker.d.ts.map +1 -1
  105. package/lib/cjs/Marker.js +3 -0
  106. package/lib/cjs/Marker.js.map +1 -1
  107. package/lib/cjs/ModelSelectorState.d.ts +1 -0
  108. package/lib/cjs/ModelSelectorState.d.ts.map +1 -1
  109. package/lib/cjs/ModelSelectorState.js +1 -0
  110. package/lib/cjs/ModelSelectorState.js.map +1 -1
  111. package/lib/cjs/ModelState.d.ts +10 -0
  112. package/lib/cjs/ModelState.d.ts.map +1 -1
  113. package/lib/cjs/ModelState.js +10 -0
  114. package/lib/cjs/ModelState.js.map +1 -1
  115. package/lib/cjs/NotificationManager.d.ts +11 -0
  116. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  117. package/lib/cjs/NotificationManager.js +10 -0
  118. package/lib/cjs/NotificationManager.js.map +1 -1
  119. package/lib/cjs/PerModelCategoryVisibility.d.ts +1 -0
  120. package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
  121. package/lib/cjs/PerModelCategoryVisibility.js +1 -0
  122. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  123. package/lib/cjs/SelectionSet.d.ts +7 -0
  124. package/lib/cjs/SelectionSet.d.ts.map +1 -1
  125. package/lib/cjs/SelectionSet.js +3 -0
  126. package/lib/cjs/SelectionSet.js.map +1 -1
  127. package/lib/cjs/SheetViewState.d.ts +1 -0
  128. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  129. package/lib/cjs/SheetViewState.js +1 -0
  130. package/lib/cjs/SheetViewState.js.map +1 -1
  131. package/lib/cjs/SpatialViewState.d.ts +2 -0
  132. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  133. package/lib/cjs/SpatialViewState.js +2 -0
  134. package/lib/cjs/SpatialViewState.js.map +1 -1
  135. package/lib/cjs/Sprites.d.ts +3 -0
  136. package/lib/cjs/Sprites.d.ts.map +1 -1
  137. package/lib/cjs/Sprites.js +3 -0
  138. package/lib/cjs/Sprites.js.map +1 -1
  139. package/lib/cjs/StandardView.d.ts +1 -0
  140. package/lib/cjs/StandardView.d.ts.map +1 -1
  141. package/lib/cjs/StandardView.js +1 -0
  142. package/lib/cjs/StandardView.js.map +1 -1
  143. package/lib/cjs/TentativePoint.d.ts +4 -1
  144. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  145. package/lib/cjs/TentativePoint.js +4 -1
  146. package/lib/cjs/TentativePoint.js.map +1 -1
  147. package/lib/cjs/Tiles.d.ts +1 -0
  148. package/lib/cjs/Tiles.d.ts.map +1 -1
  149. package/lib/cjs/Tiles.js +1 -0
  150. package/lib/cjs/Tiles.js.map +1 -1
  151. package/lib/cjs/ViewAnimation.d.ts +6 -0
  152. package/lib/cjs/ViewAnimation.d.ts.map +1 -1
  153. package/lib/cjs/ViewAnimation.js.map +1 -1
  154. package/lib/cjs/ViewCreator2d.d.ts +2 -0
  155. package/lib/cjs/ViewCreator2d.d.ts.map +1 -1
  156. package/lib/cjs/ViewCreator2d.js +1 -0
  157. package/lib/cjs/ViewCreator2d.js.map +1 -1
  158. package/lib/cjs/ViewCreator3d.d.ts +2 -0
  159. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  160. package/lib/cjs/ViewCreator3d.js +1 -0
  161. package/lib/cjs/ViewCreator3d.js.map +1 -1
  162. package/lib/cjs/ViewGlobalLocation.d.ts +3 -0
  163. package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
  164. package/lib/cjs/ViewGlobalLocation.js +1 -0
  165. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  166. package/lib/cjs/ViewManager.d.ts +3 -0
  167. package/lib/cjs/ViewManager.d.ts.map +1 -1
  168. package/lib/cjs/ViewManager.js +1 -0
  169. package/lib/cjs/ViewManager.js.map +1 -1
  170. package/lib/cjs/ViewPose.d.ts +1 -0
  171. package/lib/cjs/ViewPose.d.ts.map +1 -1
  172. package/lib/cjs/ViewPose.js +1 -0
  173. package/lib/cjs/ViewPose.js.map +1 -1
  174. package/lib/cjs/ViewRect.d.ts +1 -0
  175. package/lib/cjs/ViewRect.d.ts.map +1 -1
  176. package/lib/cjs/ViewRect.js +1 -0
  177. package/lib/cjs/ViewRect.js.map +1 -1
  178. package/lib/cjs/ViewState.d.ts +4 -0
  179. package/lib/cjs/ViewState.d.ts.map +1 -1
  180. package/lib/cjs/ViewState.js +3 -0
  181. package/lib/cjs/ViewState.js.map +1 -1
  182. package/lib/cjs/ViewStatus.d.ts +1 -0
  183. package/lib/cjs/ViewStatus.d.ts.map +1 -1
  184. package/lib/cjs/ViewStatus.js +1 -0
  185. package/lib/cjs/ViewStatus.js.map +1 -1
  186. package/lib/cjs/ViewingSpace.d.ts +1 -0
  187. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  188. package/lib/cjs/ViewingSpace.js +1 -0
  189. package/lib/cjs/ViewingSpace.js.map +1 -1
  190. package/lib/cjs/core-frontend.d.ts +6 -5
  191. package/lib/cjs/core-frontend.d.ts.map +1 -1
  192. package/lib/cjs/core-frontend.js +7 -5
  193. package/lib/cjs/core-frontend.js.map +1 -1
  194. package/lib/cjs/extension/Extension.d.ts +22 -3
  195. package/lib/cjs/extension/Extension.d.ts.map +1 -1
  196. package/lib/cjs/extension/Extension.js +0 -8
  197. package/lib/cjs/extension/Extension.js.map +1 -1
  198. package/lib/cjs/extension/ExtensionAdmin.d.ts +1 -3
  199. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  200. package/lib/cjs/extension/ExtensionAdmin.js +1 -4
  201. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  202. package/lib/cjs/extension/ExtensionRuntime.js +231 -59
  203. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  204. package/lib/cjs/render/CanvasDecoration.d.ts +2 -0
  205. package/lib/cjs/render/CanvasDecoration.d.ts.map +1 -1
  206. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  207. package/lib/cjs/render/Decorations.d.ts +1 -0
  208. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  209. package/lib/cjs/render/Decorations.js +1 -0
  210. package/lib/cjs/render/Decorations.js.map +1 -1
  211. package/lib/cjs/render/FeatureSymbology.d.ts +1 -0
  212. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  213. package/lib/cjs/render/FeatureSymbology.js +1 -0
  214. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  215. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  216. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  217. package/lib/cjs/render/GraphicBranch.js +1 -0
  218. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  219. package/lib/cjs/render/GraphicBuilder.d.ts +8 -0
  220. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  221. package/lib/cjs/render/GraphicBuilder.js +2 -0
  222. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  223. package/lib/cjs/render/GraphicPrimitive.d.ts +14 -0
  224. package/lib/cjs/render/GraphicPrimitive.d.ts.map +1 -1
  225. package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
  226. package/lib/cjs/render/ParticleCollectionBuilder.d.ts +3 -0
  227. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  228. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  229. package/lib/cjs/render/Pixel.d.ts +1 -0
  230. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  231. package/lib/cjs/render/Pixel.js +1 -0
  232. package/lib/cjs/render/Pixel.js.map +1 -1
  233. package/lib/cjs/render/RenderClipVolume.d.ts +1 -0
  234. package/lib/cjs/render/RenderClipVolume.d.ts.map +1 -1
  235. package/lib/cjs/render/RenderClipVolume.js +1 -0
  236. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  237. package/lib/cjs/render/RenderGraphic.d.ts +3 -0
  238. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  239. package/lib/cjs/render/RenderGraphic.js +2 -0
  240. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  241. package/lib/cjs/render/RenderSystem.d.ts +1 -0
  242. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  243. package/lib/cjs/render/RenderSystem.js +1 -0
  244. package/lib/cjs/render/RenderSystem.js.map +1 -1
  245. package/lib/cjs/render/RenderTexture.d.ts +7 -0
  246. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  247. package/lib/cjs/render/RenderTexture.js.map +1 -1
  248. package/lib/cjs/render/Scene.d.ts +1 -0
  249. package/lib/cjs/render/Scene.d.ts.map +1 -1
  250. package/lib/cjs/render/Scene.js +1 -0
  251. package/lib/cjs/render/Scene.js.map +1 -1
  252. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  253. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  254. package/lib/cjs/render/ScreenSpaceEffectBuilder.js +2 -0
  255. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  256. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts +2 -0
  257. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  258. package/lib/cjs/tile/DisclosedTileTreeSet.js +1 -0
  259. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  260. package/lib/cjs/tile/ImdlReader.d.ts +1 -0
  261. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  262. package/lib/cjs/tile/ImdlReader.js +1 -0
  263. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  264. package/lib/cjs/tile/Tile.d.ts +5 -0
  265. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  266. package/lib/cjs/tile/Tile.js +5 -0
  267. package/lib/cjs/tile/Tile.js.map +1 -1
  268. package/lib/cjs/tile/TileAdmin.d.ts +3 -0
  269. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  270. package/lib/cjs/tile/TileAdmin.js +1 -0
  271. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  272. package/lib/cjs/tile/TileContent.d.ts +1 -0
  273. package/lib/cjs/tile/TileContent.d.ts.map +1 -1
  274. package/lib/cjs/tile/TileContent.js.map +1 -1
  275. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  276. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  277. package/lib/cjs/tile/TileDrawArgs.js +1 -0
  278. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  279. package/lib/cjs/tile/TileParams.d.ts +1 -0
  280. package/lib/cjs/tile/TileParams.d.ts.map +1 -1
  281. package/lib/cjs/tile/TileParams.js.map +1 -1
  282. package/lib/cjs/tile/TileRequest.d.ts +1 -0
  283. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  284. package/lib/cjs/tile/TileRequest.js +1 -0
  285. package/lib/cjs/tile/TileRequest.js.map +1 -1
  286. package/lib/cjs/tile/TileRequestChannel.d.ts +2 -0
  287. package/lib/cjs/tile/TileRequestChannel.d.ts.map +1 -1
  288. package/lib/cjs/tile/TileRequestChannel.js +2 -0
  289. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  290. package/lib/cjs/tile/TileRequestChannels.d.ts +1 -0
  291. package/lib/cjs/tile/TileRequestChannels.d.ts.map +1 -1
  292. package/lib/cjs/tile/TileRequestChannels.js +1 -0
  293. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  294. package/lib/cjs/tile/TileTree.d.ts +2 -0
  295. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  296. package/lib/cjs/tile/TileTree.js +2 -0
  297. package/lib/cjs/tile/TileTree.js.map +1 -1
  298. package/lib/cjs/tile/TileTreeOwner.d.ts +1 -0
  299. package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
  300. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  301. package/lib/cjs/tile/TileTreeParams.d.ts +1 -0
  302. package/lib/cjs/tile/TileTreeParams.d.ts.map +1 -1
  303. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  304. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  305. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  306. package/lib/cjs/tile/TileTreeReference.js +2 -0
  307. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  308. package/lib/cjs/tile/TileTreeSupplier.d.ts +1 -0
  309. package/lib/cjs/tile/TileTreeSupplier.d.ts.map +1 -1
  310. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  311. package/lib/cjs/tile/TileUsageMarker.d.ts +1 -0
  312. package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
  313. package/lib/cjs/tile/TileUsageMarker.js +1 -0
  314. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  315. package/lib/cjs/tile/TiledGraphicsProvider.d.ts +1 -0
  316. package/lib/cjs/tile/TiledGraphicsProvider.d.ts.map +1 -1
  317. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  318. package/lib/cjs/tile/map/BingElevation.d.ts +1 -0
  319. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  320. package/lib/cjs/tile/map/BingElevation.js +1 -0
  321. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  322. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +5 -1
  323. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  324. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  325. package/lib/cjs/tools/ClipViewTool.d.ts +5 -3
  326. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  327. package/lib/cjs/tools/ClipViewTool.js +4 -3
  328. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  329. package/lib/cjs/tools/EditManipulator.d.ts +1 -0
  330. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  331. package/lib/cjs/tools/EditManipulator.js +1 -0
  332. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  333. package/lib/cjs/tools/EventController.d.ts +1 -0
  334. package/lib/cjs/tools/EventController.d.ts.map +1 -1
  335. package/lib/cjs/tools/EventController.js +1 -0
  336. package/lib/cjs/tools/EventController.js.map +1 -1
  337. package/lib/cjs/tools/PrimitiveTool.d.ts +1 -0
  338. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  339. package/lib/cjs/tools/PrimitiveTool.js +1 -0
  340. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  341. package/lib/cjs/tools/SelectTool.d.ts +3 -0
  342. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  343. package/lib/cjs/tools/SelectTool.js +3 -0
  344. package/lib/cjs/tools/SelectTool.js.map +1 -1
  345. package/lib/cjs/tools/Tool.d.ts +41 -6
  346. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  347. package/lib/cjs/tools/Tool.js +27 -4
  348. package/lib/cjs/tools/Tool.js.map +1 -1
  349. package/lib/cjs/tools/ToolAdmin.d.ts +9 -2
  350. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  351. package/lib/cjs/tools/ToolAdmin.js +9 -2
  352. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  353. package/lib/cjs/tools/ToolAssistance.d.ts +7 -0
  354. package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
  355. package/lib/cjs/tools/ToolAssistance.js +3 -0
  356. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  357. package/lib/cjs/tools/ToolSettings.d.ts +1 -0
  358. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  359. package/lib/cjs/tools/ToolSettings.js +1 -0
  360. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  361. package/lib/cjs/tools/ViewTool.d.ts +2 -0
  362. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  363. package/lib/cjs/tools/ViewTool.js +2 -0
  364. package/lib/cjs/tools/ViewTool.js.map +1 -1
  365. package/lib/esm/AccuDraw.d.ts +2 -0
  366. package/lib/esm/AccuDraw.d.ts.map +1 -1
  367. package/lib/esm/AccuDraw.js +2 -0
  368. package/lib/esm/AccuDraw.js.map +1 -1
  369. package/lib/esm/AccuSnap.d.ts +1 -0
  370. package/lib/esm/AccuSnap.d.ts.map +1 -1
  371. package/lib/esm/AccuSnap.js +1 -0
  372. package/lib/esm/AccuSnap.js.map +1 -1
  373. package/lib/esm/AuxCoordSys.d.ts +12 -2
  374. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  375. package/lib/esm/AuxCoordSys.js +12 -2
  376. package/lib/esm/AuxCoordSys.js.map +1 -1
  377. package/lib/esm/BingLocation.d.ts +1 -0
  378. package/lib/esm/BingLocation.d.ts.map +1 -1
  379. package/lib/esm/BingLocation.js +1 -0
  380. package/lib/esm/BingLocation.js.map +1 -1
  381. package/lib/esm/CategorySelectorState.d.ts +1 -0
  382. package/lib/esm/CategorySelectorState.d.ts.map +1 -1
  383. package/lib/esm/CategorySelectorState.js +1 -0
  384. package/lib/esm/CategorySelectorState.js.map +1 -1
  385. package/lib/esm/ChangeFlags.d.ts +1 -0
  386. package/lib/esm/ChangeFlags.d.ts.map +1 -1
  387. package/lib/esm/ChangeFlags.js +1 -0
  388. package/lib/esm/ChangeFlags.js.map +1 -1
  389. package/lib/esm/ContextRealityModelState.d.ts +1 -0
  390. package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
  391. package/lib/esm/ContextRealityModelState.js +1 -0
  392. package/lib/esm/ContextRealityModelState.js.map +1 -1
  393. package/lib/esm/CoordSystem.d.ts +1 -0
  394. package/lib/esm/CoordSystem.d.ts.map +1 -1
  395. package/lib/esm/CoordSystem.js +1 -0
  396. package/lib/esm/CoordSystem.js.map +1 -1
  397. package/lib/esm/DisplayStyleState.d.ts +4 -0
  398. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  399. package/lib/esm/DisplayStyleState.js +3 -0
  400. package/lib/esm/DisplayStyleState.js.map +1 -1
  401. package/lib/esm/DrawingViewState.d.ts +1 -0
  402. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  403. package/lib/esm/DrawingViewState.js +1 -0
  404. package/lib/esm/DrawingViewState.js.map +1 -1
  405. package/lib/esm/ElementLocateManager.d.ts +23 -5
  406. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  407. package/lib/esm/ElementLocateManager.js +19 -4
  408. package/lib/esm/ElementLocateManager.js.map +1 -1
  409. package/lib/esm/EmphasizeElements.d.ts +1 -0
  410. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  411. package/lib/esm/EmphasizeElements.js +1 -0
  412. package/lib/esm/EmphasizeElements.js.map +1 -1
  413. package/lib/esm/EntityState.d.ts +2 -0
  414. package/lib/esm/EntityState.d.ts.map +1 -1
  415. package/lib/esm/EntityState.js +2 -0
  416. package/lib/esm/EntityState.js.map +1 -1
  417. package/lib/esm/FeatureOverrideProvider.d.ts +1 -0
  418. package/lib/esm/FeatureOverrideProvider.d.ts.map +1 -1
  419. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  420. package/lib/esm/FlashSettings.d.ts +3 -0
  421. package/lib/esm/FlashSettings.d.ts.map +1 -1
  422. package/lib/esm/FlashSettings.js +2 -0
  423. package/lib/esm/FlashSettings.js.map +1 -1
  424. package/lib/esm/FrontendHubAccess.d.ts +4 -1
  425. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  426. package/lib/esm/FrontendHubAccess.js.map +1 -1
  427. package/lib/esm/FrontendLoggerCategory.d.ts +1 -0
  428. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  429. package/lib/esm/FrontendLoggerCategory.js +1 -0
  430. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  431. package/lib/esm/FrustumAnimator.d.ts +1 -0
  432. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  433. package/lib/esm/FrustumAnimator.js +1 -0
  434. package/lib/esm/FrustumAnimator.js.map +1 -1
  435. package/lib/esm/FuzzySearch.d.ts +1 -0
  436. package/lib/esm/FuzzySearch.d.ts.map +1 -1
  437. package/lib/esm/FuzzySearch.js.map +1 -1
  438. package/lib/esm/GlobeAnimator.d.ts +1 -0
  439. package/lib/esm/GlobeAnimator.d.ts.map +1 -1
  440. package/lib/esm/GlobeAnimator.js +1 -0
  441. package/lib/esm/GlobeAnimator.js.map +1 -1
  442. package/lib/esm/HitDetail.d.ts +26 -5
  443. package/lib/esm/HitDetail.d.ts.map +1 -1
  444. package/lib/esm/HitDetail.js +26 -5
  445. package/lib/esm/HitDetail.js.map +1 -1
  446. package/lib/esm/IModelApp.d.ts +7 -0
  447. package/lib/esm/IModelApp.d.ts.map +1 -1
  448. package/lib/esm/IModelApp.js +32 -20
  449. package/lib/esm/IModelApp.js.map +1 -1
  450. package/lib/esm/IModelConnection.d.ts +1 -0
  451. package/lib/esm/IModelConnection.d.ts.map +1 -1
  452. package/lib/esm/IModelConnection.js +1 -0
  453. package/lib/esm/IModelConnection.js.map +1 -1
  454. package/lib/esm/ImageUtil.d.ts +11 -0
  455. package/lib/esm/ImageUtil.d.ts.map +1 -1
  456. package/lib/esm/ImageUtil.js +11 -0
  457. package/lib/esm/ImageUtil.js.map +1 -1
  458. package/lib/esm/IpcApp.d.ts +1 -0
  459. package/lib/esm/IpcApp.d.ts.map +1 -1
  460. package/lib/esm/IpcApp.js +1 -0
  461. package/lib/esm/IpcApp.js.map +1 -1
  462. package/lib/esm/MarginPercent.d.ts +1 -0
  463. package/lib/esm/MarginPercent.d.ts.map +1 -1
  464. package/lib/esm/MarginPercent.js +1 -0
  465. package/lib/esm/MarginPercent.js.map +1 -1
  466. package/lib/esm/Marker.d.ts +16 -3
  467. package/lib/esm/Marker.d.ts.map +1 -1
  468. package/lib/esm/Marker.js +3 -0
  469. package/lib/esm/Marker.js.map +1 -1
  470. package/lib/esm/ModelSelectorState.d.ts +1 -0
  471. package/lib/esm/ModelSelectorState.d.ts.map +1 -1
  472. package/lib/esm/ModelSelectorState.js +1 -0
  473. package/lib/esm/ModelSelectorState.js.map +1 -1
  474. package/lib/esm/ModelState.d.ts +10 -0
  475. package/lib/esm/ModelState.d.ts.map +1 -1
  476. package/lib/esm/ModelState.js +10 -0
  477. package/lib/esm/ModelState.js.map +1 -1
  478. package/lib/esm/NotificationManager.d.ts +11 -0
  479. package/lib/esm/NotificationManager.d.ts.map +1 -1
  480. package/lib/esm/NotificationManager.js +10 -0
  481. package/lib/esm/NotificationManager.js.map +1 -1
  482. package/lib/esm/PerModelCategoryVisibility.d.ts +1 -0
  483. package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
  484. package/lib/esm/PerModelCategoryVisibility.js +1 -0
  485. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  486. package/lib/esm/SelectionSet.d.ts +7 -0
  487. package/lib/esm/SelectionSet.d.ts.map +1 -1
  488. package/lib/esm/SelectionSet.js +3 -0
  489. package/lib/esm/SelectionSet.js.map +1 -1
  490. package/lib/esm/SheetViewState.d.ts +1 -0
  491. package/lib/esm/SheetViewState.d.ts.map +1 -1
  492. package/lib/esm/SheetViewState.js +1 -0
  493. package/lib/esm/SheetViewState.js.map +1 -1
  494. package/lib/esm/SpatialViewState.d.ts +2 -0
  495. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  496. package/lib/esm/SpatialViewState.js +2 -0
  497. package/lib/esm/SpatialViewState.js.map +1 -1
  498. package/lib/esm/Sprites.d.ts +3 -0
  499. package/lib/esm/Sprites.d.ts.map +1 -1
  500. package/lib/esm/Sprites.js +3 -0
  501. package/lib/esm/Sprites.js.map +1 -1
  502. package/lib/esm/StandardView.d.ts +1 -0
  503. package/lib/esm/StandardView.d.ts.map +1 -1
  504. package/lib/esm/StandardView.js +1 -0
  505. package/lib/esm/StandardView.js.map +1 -1
  506. package/lib/esm/TentativePoint.d.ts +4 -1
  507. package/lib/esm/TentativePoint.d.ts.map +1 -1
  508. package/lib/esm/TentativePoint.js +4 -1
  509. package/lib/esm/TentativePoint.js.map +1 -1
  510. package/lib/esm/Tiles.d.ts +1 -0
  511. package/lib/esm/Tiles.d.ts.map +1 -1
  512. package/lib/esm/Tiles.js +1 -0
  513. package/lib/esm/Tiles.js.map +1 -1
  514. package/lib/esm/ViewAnimation.d.ts +6 -0
  515. package/lib/esm/ViewAnimation.d.ts.map +1 -1
  516. package/lib/esm/ViewAnimation.js.map +1 -1
  517. package/lib/esm/ViewCreator2d.d.ts +2 -0
  518. package/lib/esm/ViewCreator2d.d.ts.map +1 -1
  519. package/lib/esm/ViewCreator2d.js +1 -0
  520. package/lib/esm/ViewCreator2d.js.map +1 -1
  521. package/lib/esm/ViewCreator3d.d.ts +2 -0
  522. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  523. package/lib/esm/ViewCreator3d.js +1 -0
  524. package/lib/esm/ViewCreator3d.js.map +1 -1
  525. package/lib/esm/ViewGlobalLocation.d.ts +3 -0
  526. package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
  527. package/lib/esm/ViewGlobalLocation.js +1 -0
  528. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  529. package/lib/esm/ViewManager.d.ts +3 -0
  530. package/lib/esm/ViewManager.d.ts.map +1 -1
  531. package/lib/esm/ViewManager.js +1 -0
  532. package/lib/esm/ViewManager.js.map +1 -1
  533. package/lib/esm/ViewPose.d.ts +1 -0
  534. package/lib/esm/ViewPose.d.ts.map +1 -1
  535. package/lib/esm/ViewPose.js +1 -0
  536. package/lib/esm/ViewPose.js.map +1 -1
  537. package/lib/esm/ViewRect.d.ts +1 -0
  538. package/lib/esm/ViewRect.d.ts.map +1 -1
  539. package/lib/esm/ViewRect.js +1 -0
  540. package/lib/esm/ViewRect.js.map +1 -1
  541. package/lib/esm/ViewState.d.ts +4 -0
  542. package/lib/esm/ViewState.d.ts.map +1 -1
  543. package/lib/esm/ViewState.js +3 -0
  544. package/lib/esm/ViewState.js.map +1 -1
  545. package/lib/esm/ViewStatus.d.ts +1 -0
  546. package/lib/esm/ViewStatus.d.ts.map +1 -1
  547. package/lib/esm/ViewStatus.js +1 -0
  548. package/lib/esm/ViewStatus.js.map +1 -1
  549. package/lib/esm/ViewingSpace.d.ts +1 -0
  550. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  551. package/lib/esm/ViewingSpace.js +1 -0
  552. package/lib/esm/ViewingSpace.js.map +1 -1
  553. package/lib/esm/core-frontend.d.ts +6 -5
  554. package/lib/esm/core-frontend.d.ts.map +1 -1
  555. package/lib/esm/core-frontend.js +7 -5
  556. package/lib/esm/core-frontend.js.map +1 -1
  557. package/lib/esm/extension/Extension.d.ts +22 -3
  558. package/lib/esm/extension/Extension.d.ts.map +1 -1
  559. package/lib/esm/extension/Extension.js +1 -7
  560. package/lib/esm/extension/Extension.js.map +1 -1
  561. package/lib/esm/extension/ExtensionAdmin.d.ts +1 -3
  562. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  563. package/lib/esm/extension/ExtensionAdmin.js +1 -4
  564. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  565. package/lib/esm/extension/ExtensionRuntime.js +239 -59
  566. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  567. package/lib/esm/render/CanvasDecoration.d.ts +2 -0
  568. package/lib/esm/render/CanvasDecoration.d.ts.map +1 -1
  569. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  570. package/lib/esm/render/Decorations.d.ts +1 -0
  571. package/lib/esm/render/Decorations.d.ts.map +1 -1
  572. package/lib/esm/render/Decorations.js +1 -0
  573. package/lib/esm/render/Decorations.js.map +1 -1
  574. package/lib/esm/render/FeatureSymbology.d.ts +1 -0
  575. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  576. package/lib/esm/render/FeatureSymbology.js +1 -0
  577. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  578. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  579. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  580. package/lib/esm/render/GraphicBranch.js +1 -0
  581. package/lib/esm/render/GraphicBranch.js.map +1 -1
  582. package/lib/esm/render/GraphicBuilder.d.ts +8 -0
  583. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  584. package/lib/esm/render/GraphicBuilder.js +2 -0
  585. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  586. package/lib/esm/render/GraphicPrimitive.d.ts +14 -0
  587. package/lib/esm/render/GraphicPrimitive.d.ts.map +1 -1
  588. package/lib/esm/render/GraphicPrimitive.js.map +1 -1
  589. package/lib/esm/render/ParticleCollectionBuilder.d.ts +3 -0
  590. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  591. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  592. package/lib/esm/render/Pixel.d.ts +1 -0
  593. package/lib/esm/render/Pixel.d.ts.map +1 -1
  594. package/lib/esm/render/Pixel.js +1 -0
  595. package/lib/esm/render/Pixel.js.map +1 -1
  596. package/lib/esm/render/RenderClipVolume.d.ts +1 -0
  597. package/lib/esm/render/RenderClipVolume.d.ts.map +1 -1
  598. package/lib/esm/render/RenderClipVolume.js +1 -0
  599. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  600. package/lib/esm/render/RenderGraphic.d.ts +3 -0
  601. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  602. package/lib/esm/render/RenderGraphic.js +2 -0
  603. package/lib/esm/render/RenderGraphic.js.map +1 -1
  604. package/lib/esm/render/RenderSystem.d.ts +1 -0
  605. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  606. package/lib/esm/render/RenderSystem.js +1 -0
  607. package/lib/esm/render/RenderSystem.js.map +1 -1
  608. package/lib/esm/render/RenderTexture.d.ts +7 -0
  609. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  610. package/lib/esm/render/RenderTexture.js.map +1 -1
  611. package/lib/esm/render/Scene.d.ts +1 -0
  612. package/lib/esm/render/Scene.d.ts.map +1 -1
  613. package/lib/esm/render/Scene.js +1 -0
  614. package/lib/esm/render/Scene.js.map +1 -1
  615. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  616. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  617. package/lib/esm/render/ScreenSpaceEffectBuilder.js +2 -0
  618. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  619. package/lib/esm/tile/DisclosedTileTreeSet.d.ts +2 -0
  620. package/lib/esm/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  621. package/lib/esm/tile/DisclosedTileTreeSet.js +1 -0
  622. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  623. package/lib/esm/tile/ImdlReader.d.ts +1 -0
  624. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  625. package/lib/esm/tile/ImdlReader.js +1 -0
  626. package/lib/esm/tile/ImdlReader.js.map +1 -1
  627. package/lib/esm/tile/Tile.d.ts +5 -0
  628. package/lib/esm/tile/Tile.d.ts.map +1 -1
  629. package/lib/esm/tile/Tile.js +5 -0
  630. package/lib/esm/tile/Tile.js.map +1 -1
  631. package/lib/esm/tile/TileAdmin.d.ts +3 -0
  632. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  633. package/lib/esm/tile/TileAdmin.js +1 -0
  634. package/lib/esm/tile/TileAdmin.js.map +1 -1
  635. package/lib/esm/tile/TileContent.d.ts +1 -0
  636. package/lib/esm/tile/TileContent.d.ts.map +1 -1
  637. package/lib/esm/tile/TileContent.js.map +1 -1
  638. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  639. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  640. package/lib/esm/tile/TileDrawArgs.js +1 -0
  641. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  642. package/lib/esm/tile/TileParams.d.ts +1 -0
  643. package/lib/esm/tile/TileParams.d.ts.map +1 -1
  644. package/lib/esm/tile/TileParams.js.map +1 -1
  645. package/lib/esm/tile/TileRequest.d.ts +1 -0
  646. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  647. package/lib/esm/tile/TileRequest.js +1 -0
  648. package/lib/esm/tile/TileRequest.js.map +1 -1
  649. package/lib/esm/tile/TileRequestChannel.d.ts +2 -0
  650. package/lib/esm/tile/TileRequestChannel.d.ts.map +1 -1
  651. package/lib/esm/tile/TileRequestChannel.js +2 -0
  652. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  653. package/lib/esm/tile/TileRequestChannels.d.ts +1 -0
  654. package/lib/esm/tile/TileRequestChannels.d.ts.map +1 -1
  655. package/lib/esm/tile/TileRequestChannels.js +1 -0
  656. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  657. package/lib/esm/tile/TileTree.d.ts +2 -0
  658. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  659. package/lib/esm/tile/TileTree.js +2 -0
  660. package/lib/esm/tile/TileTree.js.map +1 -1
  661. package/lib/esm/tile/TileTreeOwner.d.ts +1 -0
  662. package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
  663. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  664. package/lib/esm/tile/TileTreeParams.d.ts +1 -0
  665. package/lib/esm/tile/TileTreeParams.d.ts.map +1 -1
  666. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  667. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  668. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  669. package/lib/esm/tile/TileTreeReference.js +2 -0
  670. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  671. package/lib/esm/tile/TileTreeSupplier.d.ts +1 -0
  672. package/lib/esm/tile/TileTreeSupplier.d.ts.map +1 -1
  673. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  674. package/lib/esm/tile/TileUsageMarker.d.ts +1 -0
  675. package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
  676. package/lib/esm/tile/TileUsageMarker.js +1 -0
  677. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  678. package/lib/esm/tile/TiledGraphicsProvider.d.ts +1 -0
  679. package/lib/esm/tile/TiledGraphicsProvider.d.ts.map +1 -1
  680. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  681. package/lib/esm/tile/map/BingElevation.d.ts +1 -0
  682. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  683. package/lib/esm/tile/map/BingElevation.js +1 -0
  684. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  685. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +5 -1
  686. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  687. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  688. package/lib/esm/tools/ClipViewTool.d.ts +5 -3
  689. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  690. package/lib/esm/tools/ClipViewTool.js +4 -3
  691. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  692. package/lib/esm/tools/EditManipulator.d.ts +1 -0
  693. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  694. package/lib/esm/tools/EditManipulator.js +1 -0
  695. package/lib/esm/tools/EditManipulator.js.map +1 -1
  696. package/lib/esm/tools/EventController.d.ts +1 -0
  697. package/lib/esm/tools/EventController.d.ts.map +1 -1
  698. package/lib/esm/tools/EventController.js +1 -0
  699. package/lib/esm/tools/EventController.js.map +1 -1
  700. package/lib/esm/tools/PrimitiveTool.d.ts +1 -0
  701. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  702. package/lib/esm/tools/PrimitiveTool.js +1 -0
  703. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  704. package/lib/esm/tools/SelectTool.d.ts +3 -0
  705. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  706. package/lib/esm/tools/SelectTool.js +3 -0
  707. package/lib/esm/tools/SelectTool.js.map +1 -1
  708. package/lib/esm/tools/Tool.d.ts +41 -6
  709. package/lib/esm/tools/Tool.d.ts.map +1 -1
  710. package/lib/esm/tools/Tool.js +27 -4
  711. package/lib/esm/tools/Tool.js.map +1 -1
  712. package/lib/esm/tools/ToolAdmin.d.ts +9 -2
  713. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  714. package/lib/esm/tools/ToolAdmin.js +9 -2
  715. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  716. package/lib/esm/tools/ToolAssistance.d.ts +7 -0
  717. package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
  718. package/lib/esm/tools/ToolAssistance.js +3 -0
  719. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  720. package/lib/esm/tools/ToolSettings.d.ts +1 -0
  721. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  722. package/lib/esm/tools/ToolSettings.js +1 -0
  723. package/lib/esm/tools/ToolSettings.js.map +1 -1
  724. package/lib/esm/tools/ViewTool.d.ts +2 -0
  725. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  726. package/lib/esm/tools/ViewTool.js +2 -0
  727. package/lib/esm/tools/ViewTool.js.map +1 -1
  728. package/package.json +32 -21
  729. package/lib/cjs/extension/ExtensionLoader.d.ts +0 -26
  730. package/lib/cjs/extension/ExtensionLoader.d.ts.map +0 -1
  731. package/lib/cjs/extension/ExtensionLoader.js +0 -10
  732. package/lib/cjs/extension/ExtensionLoader.js.map +0 -1
  733. package/lib/cjs/extension/extensions.d.ts +0 -19
  734. package/lib/cjs/extension/extensions.d.ts.map +0 -1
  735. package/lib/cjs/extension/extensions.js +0 -36
  736. package/lib/cjs/extension/extensions.js.map +0 -1
  737. package/lib/esm/extension/ExtensionLoader.d.ts +0 -26
  738. package/lib/esm/extension/ExtensionLoader.d.ts.map +0 -1
  739. package/lib/esm/extension/ExtensionLoader.js +0 -9
  740. package/lib/esm/extension/ExtensionLoader.js.map +0 -1
  741. package/lib/esm/extension/extensions.d.ts +0 -19
  742. package/lib/esm/extension/extensions.d.ts.map +0 -1
  743. package/lib/esm/extension/extensions.js +0 -24
  744. package/lib/esm/extension/extensions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"StandardView.js","sourceRoot":"","sources":["../../src/StandardView.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 Views\r\n */\r\nimport { Matrix3d } from \"@itwin/core-geometry\";\r\n\r\n/** Describes a set of commonly-used view rotations.\r\n * @public\r\n */\r\nexport enum StandardViewId {\r\n /** Any rotation which does not match one of the standard rotations.\r\n * Invalid as an argument to StandardView.getStandardRotation() - used as a return value only.\r\n */\r\n NotStandard = -1,\r\n Top = 0,\r\n Bottom = 1,\r\n Left = 2,\r\n Right = 3,\r\n Front = 4,\r\n Back = 5,\r\n Iso = 6,\r\n RightIso = 7,\r\n}\r\n\r\nlet standardViewMatrices: Matrix3d[] | undefined;\r\n\r\nfunction getMatrices(): Matrix3d[] {\r\n if (undefined !== standardViewMatrices)\r\n return standardViewMatrices;\r\n\r\n standardViewMatrices = [];\r\n\r\n standardViewMatrices[StandardViewId.Top] = Matrix3d.identity;\r\n standardViewMatrices[StandardViewId.Bottom] = Matrix3d.createRowValues(1, 0, 0, 0, -1, 0, 0, 0, -1);\r\n standardViewMatrices[StandardViewId.Left] = Matrix3d.createRowValues(0, -1, 0, 0, 0, 1, -1, 0, 0);\r\n standardViewMatrices[StandardViewId.Right] = Matrix3d.createRowValues(0, 1, 0, 0, 0, 1, 1, 0, 0);\r\n standardViewMatrices[StandardViewId.Front] = Matrix3d.createRowValues(1, 0, 0, 0, 0, 1, 0, -1, 0);\r\n standardViewMatrices[StandardViewId.Back] = Matrix3d.createRowValues(-1, 0, 0, 0, 0, 1, 0, 1, 0);\r\n standardViewMatrices[StandardViewId.Iso] = Matrix3d.createRowValues(\r\n 0.707106781186548, -0.70710678118654757, 0.00000000000000000,\r\n 0.408248290463863, 0.40824829046386302, 0.81649658092772603,\r\n -0.577350269189626, -0.57735026918962573, 0.57735026918962573);\r\n standardViewMatrices[StandardViewId.RightIso] = Matrix3d.createRowValues(\r\n 0.707106781186548, 0.70710678118654757, 0.00000000000000000,\r\n -0.408248290463863, 0.40824829046386302, 0.81649658092772603,\r\n 0.577350269189626, -0.57735026918962573, 0.57735026918962573);\r\n\r\n standardViewMatrices.forEach((mat) => Object.freeze(mat));\r\n return standardViewMatrices;\r\n}\r\n\r\n/** Supplies access to a set of commonly-used view rotations.\r\n * @public\r\n */\r\nexport class StandardView {\r\n public static get top(): Matrix3d { return this.getStandardRotation(StandardViewId.Top); }\r\n public static get bottom(): Matrix3d { return this.getStandardRotation(StandardViewId.Bottom); }\r\n public static get left(): Matrix3d { return this.getStandardRotation(StandardViewId.Left); }\r\n public static get right(): Matrix3d { return this.getStandardRotation(StandardViewId.Right); }\r\n public static get front(): Matrix3d { return this.getStandardRotation(StandardViewId.Front); }\r\n public static get back(): Matrix3d { return this.getStandardRotation(StandardViewId.Back); }\r\n public static get iso(): Matrix3d { return this.getStandardRotation(StandardViewId.Iso); }\r\n public static get rightIso(): Matrix3d { return this.getStandardRotation(StandardViewId.RightIso); }\r\n\r\n /** Obtain a [[Matrix3d]] corresponding to the specified [[StandardViewId]].\r\n * @param id The ID of the desired rotation.\r\n * @return A rotation matrix corresponding to the requested standard view ID, or a \"top\" view rotation if the input does not correspond to a standard rotation.\r\n */\r\n public static getStandardRotation(id: StandardViewId): Matrix3d {\r\n if (id < StandardViewId.Top || id > StandardViewId.RightIso)\r\n id = StandardViewId.Top;\r\n\r\n return getMatrices()[id];\r\n }\r\n\r\n /** Attempts to adjust the supplied rotation matrix to match the standard view rotation it most closely matches.\r\n * If a matching standard rotation exists, the input matrix will be modified in-place to precisely match it.\r\n * Otherwise, the input matrix will be unmodified.\r\n * @param matrix The rotation matrix to adjust.\r\n */\r\n public static adjustToStandardRotation(matrix: Matrix3d): void {\r\n getMatrices().some((test) => {\r\n if (test.maxDiff(matrix) > 1.0e-7)\r\n return false;\r\n\r\n matrix.setFrom(test);\r\n return true;\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StandardView.js","sourceRoot":"","sources":["../../src/StandardView.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 Views\r\n */\r\nimport { Matrix3d } from \"@itwin/core-geometry\";\r\n\r\n/** Describes a set of commonly-used view rotations.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum StandardViewId {\r\n /** Any rotation which does not match one of the standard rotations.\r\n * Invalid as an argument to StandardView.getStandardRotation() - used as a return value only.\r\n */\r\n NotStandard = -1,\r\n Top = 0,\r\n Bottom = 1,\r\n Left = 2,\r\n Right = 3,\r\n Front = 4,\r\n Back = 5,\r\n Iso = 6,\r\n RightIso = 7,\r\n}\r\n\r\nlet standardViewMatrices: Matrix3d[] | undefined;\r\n\r\nfunction getMatrices(): Matrix3d[] {\r\n if (undefined !== standardViewMatrices)\r\n return standardViewMatrices;\r\n\r\n standardViewMatrices = [];\r\n\r\n standardViewMatrices[StandardViewId.Top] = Matrix3d.identity;\r\n standardViewMatrices[StandardViewId.Bottom] = Matrix3d.createRowValues(1, 0, 0, 0, -1, 0, 0, 0, -1);\r\n standardViewMatrices[StandardViewId.Left] = Matrix3d.createRowValues(0, -1, 0, 0, 0, 1, -1, 0, 0);\r\n standardViewMatrices[StandardViewId.Right] = Matrix3d.createRowValues(0, 1, 0, 0, 0, 1, 1, 0, 0);\r\n standardViewMatrices[StandardViewId.Front] = Matrix3d.createRowValues(1, 0, 0, 0, 0, 1, 0, -1, 0);\r\n standardViewMatrices[StandardViewId.Back] = Matrix3d.createRowValues(-1, 0, 0, 0, 0, 1, 0, 1, 0);\r\n standardViewMatrices[StandardViewId.Iso] = Matrix3d.createRowValues(\r\n 0.707106781186548, -0.70710678118654757, 0.00000000000000000,\r\n 0.408248290463863, 0.40824829046386302, 0.81649658092772603,\r\n -0.577350269189626, -0.57735026918962573, 0.57735026918962573);\r\n standardViewMatrices[StandardViewId.RightIso] = Matrix3d.createRowValues(\r\n 0.707106781186548, 0.70710678118654757, 0.00000000000000000,\r\n -0.408248290463863, 0.40824829046386302, 0.81649658092772603,\r\n 0.577350269189626, -0.57735026918962573, 0.57735026918962573);\r\n\r\n standardViewMatrices.forEach((mat) => Object.freeze(mat));\r\n return standardViewMatrices;\r\n}\r\n\r\n/** Supplies access to a set of commonly-used view rotations.\r\n * @public\r\n */\r\nexport class StandardView {\r\n public static get top(): Matrix3d { return this.getStandardRotation(StandardViewId.Top); }\r\n public static get bottom(): Matrix3d { return this.getStandardRotation(StandardViewId.Bottom); }\r\n public static get left(): Matrix3d { return this.getStandardRotation(StandardViewId.Left); }\r\n public static get right(): Matrix3d { return this.getStandardRotation(StandardViewId.Right); }\r\n public static get front(): Matrix3d { return this.getStandardRotation(StandardViewId.Front); }\r\n public static get back(): Matrix3d { return this.getStandardRotation(StandardViewId.Back); }\r\n public static get iso(): Matrix3d { return this.getStandardRotation(StandardViewId.Iso); }\r\n public static get rightIso(): Matrix3d { return this.getStandardRotation(StandardViewId.RightIso); }\r\n\r\n /** Obtain a [[Matrix3d]] corresponding to the specified [[StandardViewId]].\r\n * @param id The ID of the desired rotation.\r\n * @return A rotation matrix corresponding to the requested standard view ID, or a \"top\" view rotation if the input does not correspond to a standard rotation.\r\n */\r\n public static getStandardRotation(id: StandardViewId): Matrix3d {\r\n if (id < StandardViewId.Top || id > StandardViewId.RightIso)\r\n id = StandardViewId.Top;\r\n\r\n return getMatrices()[id];\r\n }\r\n\r\n /** Attempts to adjust the supplied rotation matrix to match the standard view rotation it most closely matches.\r\n * If a matching standard rotation exists, the input matrix will be modified in-place to precisely match it.\r\n * Otherwise, the input matrix will be unmodified.\r\n * @param matrix The rotation matrix to adjust.\r\n */\r\n public static adjustToStandardRotation(matrix: Matrix3d): void {\r\n getMatrices().some((test) => {\r\n if (test.maxDiff(matrix) > 1.0e-7)\r\n return false;\r\n\r\n matrix.setFrom(test);\r\n return true;\r\n });\r\n }\r\n}\r\n"]}
@@ -7,7 +7,10 @@ import { HitDetail, HitList, SnapDetail } from "./HitDetail";
7
7
  import { BeButtonEvent } from "./tools/Tool";
8
8
  import { DecorateContext } from "./ViewContext";
9
9
  import { ScreenViewport } from "./Viewport";
10
- /** @public */
10
+ /**
11
+ * @public
12
+ * @extensions
13
+ */
11
14
  export declare class TentativePoint {
12
15
  isActive: boolean;
13
16
  currSnap?: SnapDetail;
@@ -1 +1 @@
1
- {"version":3,"file":"TentativePoint.d.ts","sourceRoot":"","sources":["../../src/TentativePoint.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,OAAO,EAA0B,UAAU,EAAsB,MAAM,aAAa,CAAC;AAEzG,OAAO,EAAY,aAAa,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,cAAc;AACd,qBAAa,cAAc;IAClB,QAAQ,UAAS;IACjB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,KAAK,kBAAkB,GAA2B;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,iBAAiB,CAAC,CAAkC;IACrD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,aAAa;IACb,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IAE3C,yFAAyF;IACzF,IAAW,SAAS,IAAI,OAAO,CAAwC;IAEvE,gFAAgF;IACzE,WAAW,IAAI,UAAU,GAAG,SAAS;IAErC,QAAQ,IAAI,OAAO;IAKnB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAM9B,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAW7B,eAAe,IAAI,IAAI;IAYvB,WAAW,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAMvC,aAAa,IAAI,IAAI;IAUrB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,SAAS;IAS5D,aAAa,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAoBtC,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;YAiCjC,OAAO;IA0CrB,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAE5B,OAAO,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;CAiExC"}
1
+ {"version":3,"file":"TentativePoint.d.ts","sourceRoot":"","sources":["../../src/TentativePoint.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,OAAO,EAA0B,UAAU,EAAsB,MAAM,aAAa,CAAC;AAEzG,OAAO,EAAY,aAAa,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;;GAGG;AACH,qBAAa,cAAc;IAClB,QAAQ,UAAS;IACjB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,KAAK,kBAAkB,GAA2B;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,iBAAiB,CAAC,CAAkC;IACrD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,aAAa;IACb,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IAE3C,yFAAyF;IACzF,IAAW,SAAS,IAAI,OAAO,CAAwC;IAEvE,gFAAgF;IACzE,WAAW,IAAI,UAAU,GAAG,SAAS;IAErC,QAAQ,IAAI,OAAO;IAKnB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAM9B,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAW7B,eAAe,IAAI,IAAI;IAYvB,WAAW,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAMvC,aAAa,IAAI,IAAI;IAUrB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,SAAS;IAS5D,aAAa,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAoBtC,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;YAiCjC,OAAO;IA0CrB,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAE5B,OAAO,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;CAiExC"}
@@ -14,7 +14,10 @@ const HitDetail_1 = require("./HitDetail");
14
14
  const IModelApp_1 = require("./IModelApp");
15
15
  const Tool_1 = require("./tools/Tool");
16
16
  const ViewTool_1 = require("./tools/ViewTool");
17
- /** @public */
17
+ /**
18
+ * @public
19
+ * @extensions
20
+ */
18
21
  class TentativePoint {
19
22
  constructor() {
20
23
  this.isActive = false;
@@ -1 +1 @@
1
- {"version":3,"file":"TentativePoint.js","sourceRoot":"","sources":["../../src/TentativePoint.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 LocatingElements\r\n */\r\n\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport { AccuSnap } from \"./AccuSnap\";\r\nimport { HitListHolder } from \"./ElementLocateManager\";\r\nimport { HitDetail, HitList, HitPriority, HitSource, SnapDetail, SnapHeat, SnapMode } from \"./HitDetail\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { BeButton, BeButtonEvent } from \"./tools/Tool\";\r\nimport { ViewHandleType, ViewManip } from \"./tools/ViewTool\";\r\nimport { DecorateContext } from \"./ViewContext\";\r\nimport { ScreenViewport } from \"./Viewport\";\r\n\r\n/** @public */\r\nexport class TentativePoint {\r\n public isActive = false;\r\n public currSnap?: SnapDetail;\r\n public tpHits?: HitList<HitDetail>;\r\n private get _hotDistanceInches(): number { return 0.21; }\r\n private readonly _point: Point3d = new Point3d();\r\n private readonly _rawPoint: Point3d = new Point3d();\r\n private readonly _viewPoint: Point3d = new Point3d();\r\n private _tentativePromise?: Promise<SnapDetail | undefined>;\r\n public viewport?: ScreenViewport;\r\n\r\n public onInitialized() { }\r\n public setHitList(list?: HitList<HitDetail>) { this.tpHits = list; }\r\n\r\n /** @return true if the tentative point is currently active and snapped to an element. */\r\n public get isSnapped(): boolean { return undefined !== this.currSnap; }\r\n\r\n /** @return The current snap path when TentativePoint.isSnapped or undefined. */\r\n public getCurrSnap(): SnapDetail | undefined { return this.currSnap; }\r\n\r\n public getPoint(): Point3d {\r\n const snap = this.currSnap;\r\n return !snap ? this._point : snap.adjustedPoint;\r\n }\r\n\r\n public setPoint(point: Point3d): void {\r\n this.setCurrSnap(undefined);\r\n this.tpHits = undefined;\r\n this._point.setFrom(point);\r\n }\r\n\r\n public clear(doErase: boolean): void {\r\n if (doErase) {\r\n this.removeTentative();\r\n IModelApp.accuSnap.synchSnapMode();\r\n }\r\n IModelApp.accuSnap.destroy();\r\n this.isActive = false;\r\n this.setCurrSnap(undefined);\r\n this.tpHits = undefined;\r\n }\r\n\r\n public removeTentative(): void {\r\n this._tentativePromise = undefined;\r\n if (!this.isActive)\r\n return;\r\n IModelApp.accuSnap.erase();\r\n if (this.getCurrSnap())\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n else\r\n this.viewport!.invalidateDecorations();\r\n this.isActive = false;\r\n }\r\n\r\n public setCurrSnap(newSnap?: SnapDetail): void {\r\n if (newSnap)\r\n newSnap.setSnapPoint(newSnap.snapPoint, SnapHeat.InRange); // Reset adjustedPoint from pre-located snap and set SnapHeat...\r\n this.currSnap = newSnap;\r\n }\r\n\r\n public showTentative(): void {\r\n if (this.isSnapped) {\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n IModelApp.accuSnap.displayToolTip(this._viewPoint, this.viewport!, undefined); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n } else {\r\n this.viewport!.invalidateDecorations();\r\n }\r\n this.isActive = true;\r\n }\r\n\r\n public getHitAndList(holder: HitListHolder): SnapDetail | undefined {\r\n const hit = this.currSnap;\r\n if (hit) {\r\n holder.setHitList(this.tpHits);\r\n this.tpHits = undefined;\r\n }\r\n return hit;\r\n }\r\n\r\n public onButtonEvent(ev: BeButtonEvent): void {\r\n switch (ev.button) {\r\n case BeButton.Data:\r\n if (!ev.isDown)\r\n return; // cleared on down...\r\n break;\r\n case BeButton.Reset:\r\n if (ev.isDown)\r\n return; // cleared on up...\r\n break;\r\n case BeButton.Middle:\r\n return;\r\n }\r\n\r\n this.removeTentative();\r\n IModelApp.accuSnap.synchSnapMode();\r\n this.setCurrSnap(undefined);\r\n this.tpHits = undefined;\r\n }\r\n\r\n public decorate(context: DecorateContext): void {\r\n const viewport = context.viewport;\r\n if (!this.isActive || !viewport)\r\n return;\r\n\r\n const tpSize = Math.floor(viewport.pixelsPerInch * 0.4) + 0.5;\r\n const toSizeOutline = tpSize + 1;\r\n const position = context.viewport.worldToView(this._point); position.x = Math.floor(position.x) + 0.5; position.y = Math.floor(position.y) + 0.5;\r\n const drawDecoration = (ctx: CanvasRenderingContext2D) => {\r\n ctx.beginPath();\r\n ctx.strokeStyle = \"rgba(0,0,0,.5)\";\r\n ctx.lineWidth = 3;\r\n ctx.moveTo(-toSizeOutline, 0);\r\n ctx.lineTo(toSizeOutline, 0);\r\n ctx.moveTo(0, -toSizeOutline);\r\n ctx.lineTo(0, toSizeOutline);\r\n ctx.stroke();\r\n\r\n ctx.beginPath();\r\n ctx.strokeStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n if (!this.isSnapped) ctx.setLineDash([4, 1]);\r\n ctx.shadowColor = \"black\";\r\n ctx.shadowBlur = 5;\r\n ctx.moveTo(-tpSize, 0);\r\n ctx.lineTo(tpSize, 0);\r\n ctx.moveTo(0, -tpSize);\r\n ctx.lineTo(0, tpSize);\r\n ctx.stroke();\r\n };\r\n context.addCanvasDecoration({ position, drawDecoration });\r\n }\r\n\r\n private async getSnap(newSearch: boolean): Promise<SnapDetail | undefined> {\r\n // Use next hit from previous search when using tentative to cycle through hits...\r\n let thisHit = (!newSearch && undefined !== this.tpHits ? this.tpHits.getNextHit() : undefined);\r\n\r\n // Use existing AccuSnap hit list if one exists...\r\n if (undefined === thisHit) {\r\n this.tpHits = undefined;\r\n thisHit = IModelApp.accuSnap.getHitAndList(this);\r\n }\r\n\r\n if (undefined === thisHit) {\r\n // search for elements around the current raw point (search should not be affected by locks!)\r\n const aperture = (2.0 * this.viewport!.pixelsFromInches(IModelApp.locateManager.apertureInches) / 2.0) + 1.5;\r\n const options = IModelApp.locateManager.options.clone(); // Copy to avoid changing out from under active Tool...\r\n const picker = IModelApp.locateManager.picker;\r\n\r\n options.hitSource = HitSource.TentativeSnap;\r\n if (0 === picker.doPick(this.viewport!, this._rawPoint, aperture, options))\r\n return undefined;\r\n\r\n this.tpHits = picker.getHitList(true);\r\n thisHit = (undefined !== this.tpHits ? this.tpHits.getNextHit() : undefined);\r\n } else if (thisHit instanceof SnapDetail) {\r\n // Make the current AccuSnap the TentativePoint snap...\r\n return thisHit;\r\n }\r\n\r\n if (undefined === thisHit)\r\n return undefined;\r\n\r\n const snapModes = IModelApp.accuSnap.getActiveSnapModes(); // Get the list of point snap modes to consider\r\n if (1 === snapModes.length && SnapMode.Intersection === snapModes[0])\r\n snapModes.push(SnapMode.Nearest); // Add nearest when doing intersection by itself to support finding extended intersections...\r\n\r\n const thisSnap = await AccuSnap.requestSnap(thisHit, snapModes, this._hotDistanceInches, IModelApp.accuSnap.keypointDivisor, this.tpHits);\r\n\r\n if (undefined !== thisSnap)\r\n IModelApp.accuDraw.onSnap(thisSnap); // AccuDraw can adjust nearest snap to intersection of circle (polar distance lock) or line (axis lock) with snapped to curve...\r\n\r\n return thisSnap;\r\n }\r\n\r\n private static arePointsCloseEnough(pt1: Point3d, pt2: Point3d, pixelDistance: number): boolean { return pt1.distance(pt2) < (pixelDistance + 1.5); }\r\n\r\n public process(ev: BeButtonEvent): void {\r\n if (undefined !== this._tentativePromise)\r\n return;\r\n\r\n const currTool = IModelApp.toolAdmin.viewTool;\r\n if (currTool && currTool.inDynamicUpdate)\r\n return; // trying to tentative snap while view is changing isn't useful...\r\n\r\n const wasActive = this.isActive;\r\n this.removeTentative(); // remove the TP cross if it is already on the screen\r\n const lastPtView = this._viewPoint.clone();\r\n\r\n this.viewport = ev.viewport!;\r\n this._point.setFrom(ev.point);\r\n this._rawPoint.setFrom(ev.rawPoint);\r\n this._viewPoint.setFrom(ev.viewPoint);\r\n\r\n const newSearch = (!this.isSnapped || !TentativePoint.arePointsCloseEnough(lastPtView, this._viewPoint, this.viewport.pixelsFromInches(IModelApp.locateManager.apertureInches)));\r\n const promise = this.getSnap(newSearch);\r\n this._tentativePromise = promise;\r\n\r\n promise.then((newSnap) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n // Ignore response if we're no longer interested in this tentative.\r\n if (this._tentativePromise === promise) {\r\n this._tentativePromise = undefined;\r\n this.setCurrSnap(newSnap); // Adopt the snap as current\r\n IModelApp.accuSnap.clear(); // make sure there's no AccuSnap active after a tentative point (otherwise we continually snap to it).\r\n if (this.isSnapped)\r\n this._point.setFrom(this.currSnap!.snapPoint);\r\n else if (wasActive && newSearch)\r\n this._point.setFrom(ev.rawPoint);\r\n this.showTentative(); // show the TP cross\r\n\r\n if (this.isSnapped) {\r\n IModelApp.toolAdmin.adjustSnapPoint();\r\n } else if (IModelApp.accuDraw.isActive) {\r\n const point = this.getPoint().clone();\r\n const vp = ev.viewport!;\r\n if (vp.isSnapAdjustmentRequired) {\r\n IModelApp.toolAdmin.adjustPointToACS(point, vp, false);\r\n const hit = new HitDetail(point, vp, HitSource.TentativeSnap, point, \"\", HitPriority.Unknown, 0, 0);\r\n const snap = new SnapDetail(hit);\r\n this.setCurrSnap(snap);\r\n IModelApp.toolAdmin.adjustSnapPoint();\r\n this.setPoint(this.getPoint());\r\n } else {\r\n IModelApp.accuDraw.adjustPoint(point, vp, false);\r\n const savePoint = point.clone();\r\n IModelApp.toolAdmin.adjustPointToGrid(point, vp);\r\n if (!point.isExactEqual(savePoint))\r\n IModelApp.accuDraw.adjustPoint(point, vp, false);\r\n this.setPoint(point);\r\n }\r\n } else {\r\n IModelApp.toolAdmin.adjustPoint(this.getPoint(), ev.viewport!);\r\n }\r\n\r\n IModelApp.accuDraw.onTentative();\r\n if (currTool && currTool instanceof ViewManip && currTool.viewHandles.hasHandle(ViewHandleType.TargetCenter))\r\n currTool.updateTargetCenter(); // Change target center to tentative location...\r\n else\r\n IModelApp.toolAdmin.updateDynamics(); // Don't wait for motion to update tool dynamics...\r\n }\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"TentativePoint.js","sourceRoot":"","sources":["../../src/TentativePoint.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 LocatingElements\r\n */\r\n\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport { AccuSnap } from \"./AccuSnap\";\r\nimport { HitListHolder } from \"./ElementLocateManager\";\r\nimport { HitDetail, HitList, HitPriority, HitSource, SnapDetail, SnapHeat, SnapMode } from \"./HitDetail\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { BeButton, BeButtonEvent } from \"./tools/Tool\";\r\nimport { ViewHandleType, ViewManip } from \"./tools/ViewTool\";\r\nimport { DecorateContext } from \"./ViewContext\";\r\nimport { ScreenViewport } from \"./Viewport\";\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport class TentativePoint {\r\n public isActive = false;\r\n public currSnap?: SnapDetail;\r\n public tpHits?: HitList<HitDetail>;\r\n private get _hotDistanceInches(): number { return 0.21; }\r\n private readonly _point: Point3d = new Point3d();\r\n private readonly _rawPoint: Point3d = new Point3d();\r\n private readonly _viewPoint: Point3d = new Point3d();\r\n private _tentativePromise?: Promise<SnapDetail | undefined>;\r\n public viewport?: ScreenViewport;\r\n\r\n public onInitialized() { }\r\n public setHitList(list?: HitList<HitDetail>) { this.tpHits = list; }\r\n\r\n /** @return true if the tentative point is currently active and snapped to an element. */\r\n public get isSnapped(): boolean { return undefined !== this.currSnap; }\r\n\r\n /** @return The current snap path when TentativePoint.isSnapped or undefined. */\r\n public getCurrSnap(): SnapDetail | undefined { return this.currSnap; }\r\n\r\n public getPoint(): Point3d {\r\n const snap = this.currSnap;\r\n return !snap ? this._point : snap.adjustedPoint;\r\n }\r\n\r\n public setPoint(point: Point3d): void {\r\n this.setCurrSnap(undefined);\r\n this.tpHits = undefined;\r\n this._point.setFrom(point);\r\n }\r\n\r\n public clear(doErase: boolean): void {\r\n if (doErase) {\r\n this.removeTentative();\r\n IModelApp.accuSnap.synchSnapMode();\r\n }\r\n IModelApp.accuSnap.destroy();\r\n this.isActive = false;\r\n this.setCurrSnap(undefined);\r\n this.tpHits = undefined;\r\n }\r\n\r\n public removeTentative(): void {\r\n this._tentativePromise = undefined;\r\n if (!this.isActive)\r\n return;\r\n IModelApp.accuSnap.erase();\r\n if (this.getCurrSnap())\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n else\r\n this.viewport!.invalidateDecorations();\r\n this.isActive = false;\r\n }\r\n\r\n public setCurrSnap(newSnap?: SnapDetail): void {\r\n if (newSnap)\r\n newSnap.setSnapPoint(newSnap.snapPoint, SnapHeat.InRange); // Reset adjustedPoint from pre-located snap and set SnapHeat...\r\n this.currSnap = newSnap;\r\n }\r\n\r\n public showTentative(): void {\r\n if (this.isSnapped) {\r\n IModelApp.viewManager.invalidateDecorationsAllViews();\r\n IModelApp.accuSnap.displayToolTip(this._viewPoint, this.viewport!, undefined); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n } else {\r\n this.viewport!.invalidateDecorations();\r\n }\r\n this.isActive = true;\r\n }\r\n\r\n public getHitAndList(holder: HitListHolder): SnapDetail | undefined {\r\n const hit = this.currSnap;\r\n if (hit) {\r\n holder.setHitList(this.tpHits);\r\n this.tpHits = undefined;\r\n }\r\n return hit;\r\n }\r\n\r\n public onButtonEvent(ev: BeButtonEvent): void {\r\n switch (ev.button) {\r\n case BeButton.Data:\r\n if (!ev.isDown)\r\n return; // cleared on down...\r\n break;\r\n case BeButton.Reset:\r\n if (ev.isDown)\r\n return; // cleared on up...\r\n break;\r\n case BeButton.Middle:\r\n return;\r\n }\r\n\r\n this.removeTentative();\r\n IModelApp.accuSnap.synchSnapMode();\r\n this.setCurrSnap(undefined);\r\n this.tpHits = undefined;\r\n }\r\n\r\n public decorate(context: DecorateContext): void {\r\n const viewport = context.viewport;\r\n if (!this.isActive || !viewport)\r\n return;\r\n\r\n const tpSize = Math.floor(viewport.pixelsPerInch * 0.4) + 0.5;\r\n const toSizeOutline = tpSize + 1;\r\n const position = context.viewport.worldToView(this._point); position.x = Math.floor(position.x) + 0.5; position.y = Math.floor(position.y) + 0.5;\r\n const drawDecoration = (ctx: CanvasRenderingContext2D) => {\r\n ctx.beginPath();\r\n ctx.strokeStyle = \"rgba(0,0,0,.5)\";\r\n ctx.lineWidth = 3;\r\n ctx.moveTo(-toSizeOutline, 0);\r\n ctx.lineTo(toSizeOutline, 0);\r\n ctx.moveTo(0, -toSizeOutline);\r\n ctx.lineTo(0, toSizeOutline);\r\n ctx.stroke();\r\n\r\n ctx.beginPath();\r\n ctx.strokeStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n if (!this.isSnapped) ctx.setLineDash([4, 1]);\r\n ctx.shadowColor = \"black\";\r\n ctx.shadowBlur = 5;\r\n ctx.moveTo(-tpSize, 0);\r\n ctx.lineTo(tpSize, 0);\r\n ctx.moveTo(0, -tpSize);\r\n ctx.lineTo(0, tpSize);\r\n ctx.stroke();\r\n };\r\n context.addCanvasDecoration({ position, drawDecoration });\r\n }\r\n\r\n private async getSnap(newSearch: boolean): Promise<SnapDetail | undefined> {\r\n // Use next hit from previous search when using tentative to cycle through hits...\r\n let thisHit = (!newSearch && undefined !== this.tpHits ? this.tpHits.getNextHit() : undefined);\r\n\r\n // Use existing AccuSnap hit list if one exists...\r\n if (undefined === thisHit) {\r\n this.tpHits = undefined;\r\n thisHit = IModelApp.accuSnap.getHitAndList(this);\r\n }\r\n\r\n if (undefined === thisHit) {\r\n // search for elements around the current raw point (search should not be affected by locks!)\r\n const aperture = (2.0 * this.viewport!.pixelsFromInches(IModelApp.locateManager.apertureInches) / 2.0) + 1.5;\r\n const options = IModelApp.locateManager.options.clone(); // Copy to avoid changing out from under active Tool...\r\n const picker = IModelApp.locateManager.picker;\r\n\r\n options.hitSource = HitSource.TentativeSnap;\r\n if (0 === picker.doPick(this.viewport!, this._rawPoint, aperture, options))\r\n return undefined;\r\n\r\n this.tpHits = picker.getHitList(true);\r\n thisHit = (undefined !== this.tpHits ? this.tpHits.getNextHit() : undefined);\r\n } else if (thisHit instanceof SnapDetail) {\r\n // Make the current AccuSnap the TentativePoint snap...\r\n return thisHit;\r\n }\r\n\r\n if (undefined === thisHit)\r\n return undefined;\r\n\r\n const snapModes = IModelApp.accuSnap.getActiveSnapModes(); // Get the list of point snap modes to consider\r\n if (1 === snapModes.length && SnapMode.Intersection === snapModes[0])\r\n snapModes.push(SnapMode.Nearest); // Add nearest when doing intersection by itself to support finding extended intersections...\r\n\r\n const thisSnap = await AccuSnap.requestSnap(thisHit, snapModes, this._hotDistanceInches, IModelApp.accuSnap.keypointDivisor, this.tpHits);\r\n\r\n if (undefined !== thisSnap)\r\n IModelApp.accuDraw.onSnap(thisSnap); // AccuDraw can adjust nearest snap to intersection of circle (polar distance lock) or line (axis lock) with snapped to curve...\r\n\r\n return thisSnap;\r\n }\r\n\r\n private static arePointsCloseEnough(pt1: Point3d, pt2: Point3d, pixelDistance: number): boolean { return pt1.distance(pt2) < (pixelDistance + 1.5); }\r\n\r\n public process(ev: BeButtonEvent): void {\r\n if (undefined !== this._tentativePromise)\r\n return;\r\n\r\n const currTool = IModelApp.toolAdmin.viewTool;\r\n if (currTool && currTool.inDynamicUpdate)\r\n return; // trying to tentative snap while view is changing isn't useful...\r\n\r\n const wasActive = this.isActive;\r\n this.removeTentative(); // remove the TP cross if it is already on the screen\r\n const lastPtView = this._viewPoint.clone();\r\n\r\n this.viewport = ev.viewport!;\r\n this._point.setFrom(ev.point);\r\n this._rawPoint.setFrom(ev.rawPoint);\r\n this._viewPoint.setFrom(ev.viewPoint);\r\n\r\n const newSearch = (!this.isSnapped || !TentativePoint.arePointsCloseEnough(lastPtView, this._viewPoint, this.viewport.pixelsFromInches(IModelApp.locateManager.apertureInches)));\r\n const promise = this.getSnap(newSearch);\r\n this._tentativePromise = promise;\r\n\r\n promise.then((newSnap) => { // eslint-disable-line @typescript-eslint/no-floating-promises\r\n // Ignore response if we're no longer interested in this tentative.\r\n if (this._tentativePromise === promise) {\r\n this._tentativePromise = undefined;\r\n this.setCurrSnap(newSnap); // Adopt the snap as current\r\n IModelApp.accuSnap.clear(); // make sure there's no AccuSnap active after a tentative point (otherwise we continually snap to it).\r\n if (this.isSnapped)\r\n this._point.setFrom(this.currSnap!.snapPoint);\r\n else if (wasActive && newSearch)\r\n this._point.setFrom(ev.rawPoint);\r\n this.showTentative(); // show the TP cross\r\n\r\n if (this.isSnapped) {\r\n IModelApp.toolAdmin.adjustSnapPoint();\r\n } else if (IModelApp.accuDraw.isActive) {\r\n const point = this.getPoint().clone();\r\n const vp = ev.viewport!;\r\n if (vp.isSnapAdjustmentRequired) {\r\n IModelApp.toolAdmin.adjustPointToACS(point, vp, false);\r\n const hit = new HitDetail(point, vp, HitSource.TentativeSnap, point, \"\", HitPriority.Unknown, 0, 0);\r\n const snap = new SnapDetail(hit);\r\n this.setCurrSnap(snap);\r\n IModelApp.toolAdmin.adjustSnapPoint();\r\n this.setPoint(this.getPoint());\r\n } else {\r\n IModelApp.accuDraw.adjustPoint(point, vp, false);\r\n const savePoint = point.clone();\r\n IModelApp.toolAdmin.adjustPointToGrid(point, vp);\r\n if (!point.isExactEqual(savePoint))\r\n IModelApp.accuDraw.adjustPoint(point, vp, false);\r\n this.setPoint(point);\r\n }\r\n } else {\r\n IModelApp.toolAdmin.adjustPoint(this.getPoint(), ev.viewport!);\r\n }\r\n\r\n IModelApp.accuDraw.onTentative();\r\n if (currTool && currTool instanceof ViewManip && currTool.viewHandles.hasHandle(ViewHandleType.TargetCenter))\r\n currTool.updateTargetCenter(); // Change target center to tentative location...\r\n else\r\n IModelApp.toolAdmin.updateDynamics(); // Don't wait for motion to update tool dynamics...\r\n }\r\n });\r\n }\r\n}\r\n"]}
@@ -10,6 +10,7 @@ import { TileTree, TileTreeOwner, TileTreeSupplier } from "./tile/internal";
10
10
  * change.
11
11
  * @see [[IModelConnection.tiles]].
12
12
  * @public
13
+ * @extensions
13
14
  */
14
15
  export declare class Tiles implements Iterable<{
15
16
  supplier: TileTreeSupplier;
@@ -1 +1 @@
1
- {"version":3,"file":"Tiles.d.ts","sourceRoot":"","sources":["../../src/Tiles.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAuB,SAAS,EAAE,UAAU,EAAgB,MAAM,qBAAqB,CAAC;AAE5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAsB,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAyDhG;;;;;;GAMG;AACH,qBAAa,KAAM,YAAW,QAAQ,CAAC;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,EAAE,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;IACnG,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2D;IAC5F,OAAO,CAAC,SAAS,CAAS;IAE1B,gBAAgB;IAChB,IAAW,UAAU,YAA6B;IAElD,gBAAgB;gBACJ,MAAM,EAAE,gBAAgB;IAiBpC,gBAAgB;IACT,OAAO,IAAI,IAAI;IAKtB;;OAEG;IACI,KAAK,IAAI,IAAI;IAOpB,gBAAgB;IACH,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E,OAAO,CAAC,iCAAiC;IASzC;;;;;;OAMG;IACU,uBAAuB,CAAC,qBAAqB,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAIxE,eAAe;IAS7B,OAAO,CAAC,gBAAgB;IASxB;;;OAGG;IACI,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,GAAG,aAAa;IAgB3E,8HAA8H;IACvH,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IASrD,uDAAuD;IAChD,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAKnE,8CAA8C;IACrC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,EAAE,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IAOrG,oEAAoE;IAC7D,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,CAAC;QAAE,EAAE,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IAYxG;;OAEG;IACI,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI;CAYpE"}
1
+ {"version":3,"file":"Tiles.d.ts","sourceRoot":"","sources":["../../src/Tiles.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAuB,SAAS,EAAE,UAAU,EAAgB,MAAM,qBAAqB,CAAC;AAE5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAsB,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAyDhG;;;;;;;GAOG;AACH,qBAAa,KAAM,YAAW,QAAQ,CAAC;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,EAAE,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;IACnG,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2D;IAC5F,OAAO,CAAC,SAAS,CAAS;IAE1B,gBAAgB;IAChB,IAAW,UAAU,YAA6B;IAElD,gBAAgB;gBACJ,MAAM,EAAE,gBAAgB;IAiBpC,gBAAgB;IACT,OAAO,IAAI,IAAI;IAKtB;;OAEG;IACI,KAAK,IAAI,IAAI;IAOpB,gBAAgB;IACH,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E,OAAO,CAAC,iCAAiC;IASzC;;;;;;OAMG;IACU,uBAAuB,CAAC,qBAAqB,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAIxE,eAAe;IAS7B,OAAO,CAAC,gBAAgB;IASxB;;;OAGG;IACI,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,GAAG,aAAa;IAgB3E,8HAA8H;IACvH,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IASrD,uDAAuD;IAChD,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAKnE,8CAA8C;IACrC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,EAAE,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IAOrG,oEAAoE;IAC7D,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,CAAC;QAAE,EAAE,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IAYxG;;OAEG;IACI,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI;CAYpE"}
package/lib/cjs/Tiles.js CHANGED
@@ -59,6 +59,7 @@ class TreeOwner {
59
59
  * change.
60
60
  * @see [[IModelConnection.tiles]].
61
61
  * @public
62
+ * @extensions
62
63
  */
63
64
  class Tiles {
64
65
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"Tiles.js","sourceRoot":"","sources":["../../src/Tiles.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 IModelConnection\r\n */\r\n\r\nimport { BeTimePoint, Dictionary, dispose, Id64Array, Id64String, IModelStatus } from \"@itwin/core-bentley\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { TileTree, TileTreeLoadStatus, TileTreeOwner, TileTreeSupplier } from \"./tile/internal\";\r\n\r\nclass TreeOwner implements TileTreeOwner {\r\n private _tileTree?: TileTree;\r\n private _loadStatus: TileTreeLoadStatus = TileTreeLoadStatus.NotLoaded;\r\n private readonly _supplier: TileTreeSupplier;\r\n private readonly _iModel: IModelConnection;\r\n\r\n public readonly id: any;\r\n\r\n public get tileTree(): TileTree | undefined { return this._tileTree; }\r\n public get loadStatus(): TileTreeLoadStatus { return this._loadStatus; }\r\n public get iModel(): IModelConnection { return this._iModel; }\r\n\r\n public constructor(id: any, supplier: TileTreeSupplier, iModel: IModelConnection) {\r\n this.id = id;\r\n this._supplier = supplier;\r\n this._iModel = iModel;\r\n }\r\n\r\n public load(): TileTree | undefined {\r\n this._load(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n return this.tileTree;\r\n }\r\n\r\n public async loadTree(): Promise<TileTree | undefined> {\r\n await this._load();\r\n return this.tileTree;\r\n }\r\n\r\n public dispose(): void {\r\n this._tileTree = dispose(this._tileTree);\r\n this._loadStatus = TileTreeLoadStatus.NotLoaded;\r\n }\r\n\r\n private async _load(): Promise<void> {\r\n if (TileTreeLoadStatus.NotLoaded !== this.loadStatus)\r\n return;\r\n\r\n this._loadStatus = TileTreeLoadStatus.Loading;\r\n let tree: TileTree | undefined;\r\n let newStatus: TileTreeLoadStatus;\r\n try {\r\n tree = await this._supplier.createTileTree(this.id, this._iModel);\r\n newStatus = undefined !== tree && !tree.rootTile.contentRange.isNull ? TileTreeLoadStatus.Loaded : TileTreeLoadStatus.NotFound;\r\n } catch (err: any) {\r\n newStatus = (err.errorNumber && err.errorNumber === IModelStatus.ServerTimeout) ? TileTreeLoadStatus.NotLoaded : TileTreeLoadStatus.NotFound;\r\n }\r\n\r\n if (TileTreeLoadStatus.Loading === this._loadStatus) {\r\n this._tileTree = tree;\r\n this._loadStatus = newStatus;\r\n IModelApp.tileAdmin.onTileTreeLoad.raiseEvent(this);\r\n }\r\n }\r\n}\r\n\r\n/** Provides access to [[TileTree]]s associated with an [[IModelConnection]].\r\n * The tile trees are accessed indirectly via their corresponding [[TileTreeOwner]]s.\r\n * Loaded tile trees will be discarded after the iModel is closed, after a period of disuse, or when the contents of a [[GeometricModelState]] they represent\r\n * change.\r\n * @see [[IModelConnection.tiles]].\r\n * @public\r\n */\r\nexport class Tiles implements Iterable<{ supplier: TileTreeSupplier, id: any, owner: TileTreeOwner }> {\r\n private _iModel: IModelConnection;\r\n private readonly _treesBySupplier = new Map<TileTreeSupplier, Dictionary<any, TreeOwner>>();\r\n private _disposed = false;\r\n\r\n /** @internal */\r\n public get isDisposed() { return this._disposed; }\r\n\r\n /** @internal */\r\n constructor(iModel: IModelConnection) {\r\n this._iModel = iModel;\r\n\r\n iModel.onEcefLocationChanged.addListener(() => {\r\n for (const supplier of this._treesBySupplier.keys()) {\r\n if (supplier.isEcefDependent)\r\n this.dropSupplier(supplier);\r\n }\r\n });\r\n\r\n // When project extents change, purge tile trees for spatial models.\r\n iModel.onProjectExtentsChanged.addListener(async () => {\r\n if (!iModel.isBriefcaseConnection() || !iModel.editingScope)\r\n await this.purgeModelTrees(this.getSpatialModels());\r\n });\r\n }\r\n\r\n /** @internal */\r\n public dispose(): void {\r\n this.reset();\r\n this._disposed = true;\r\n }\r\n\r\n /** Intended strictly for tests.\r\n * @internal\r\n */\r\n public reset(): void {\r\n for (const supplier of this._treesBySupplier)\r\n supplier[1].forEach((_key, value) => value.dispose());\r\n\r\n this._treesBySupplier.clear();\r\n }\r\n\r\n /** @internal */\r\n public async purgeTileTrees(modelIds: Id64Array | undefined): Promise<void> {\r\n return IModelApp.tileAdmin.purgeTileTrees(this._iModel, modelIds);\r\n }\r\n\r\n private getModelsAnimatedByScheduleScript(scriptSourceElementId: Id64String): Set<Id64String> {\r\n const modelIds = new Set<Id64String>();\r\n for (const supplier of this._treesBySupplier.keys())\r\n if (supplier.addModelsAnimatedByScript)\r\n supplier.addModelsAnimatedByScript(modelIds, scriptSourceElementId, this.getTreeOwnersForSupplier(supplier));\r\n\r\n return modelIds;\r\n }\r\n\r\n /** Update the [[Tile]]s for any [[TileTree]]s that use the [RenderSchedule.Script]($common) hosted by the specified\r\n * [RenderTimeline]($backend) or [DisplayStyle]($backend) element. This method should be invoked after\r\n * the host element is updated in the database with a new script, so that any [[Viewport]]s displaying tiles produced\r\n * based on the previous version of the script are updated to use the new version of the script.\r\n * @param scriptSourceElementId The Id of the RenderTimeline or DisplayStyle element that hosts the script.\r\n * @public\r\n */\r\n public async updateForScheduleScript(scriptSourceElementId: Id64String): Promise<void> {\r\n return this.purgeModelTrees(this.getModelsAnimatedByScheduleScript(scriptSourceElementId));\r\n }\r\n\r\n private async purgeModelTrees(modelIds: Set<Id64String>): Promise<void> {\r\n if (0 === modelIds.size)\r\n return;\r\n\r\n const ids = Array.from(modelIds);\r\n await this.purgeTileTrees(ids);\r\n IModelApp.viewManager.refreshForModifiedModels(ids);\r\n }\r\n\r\n private getSpatialModels(): Set<Id64String> {\r\n const modelIds = new Set<Id64String>();\r\n for (const supplier of this._treesBySupplier.keys())\r\n if (supplier.addSpatialModels)\r\n supplier.addSpatialModels(modelIds, this.getTreeOwnersForSupplier(supplier));\r\n\r\n return modelIds;\r\n }\r\n\r\n /** Obtain the owner of a TileTree.\r\n * The `id` is unique within all tile trees associated with `supplier`; its specific structure is an implementation detail known only to the supplier.\r\n * A [[TileTreeReference]] uses this method to obtain the tile tree to which it refers.\r\n */\r\n public getTileTreeOwner(id: any, supplier: TileTreeSupplier): TileTreeOwner {\r\n let trees = this._treesBySupplier.get(supplier);\r\n if (undefined === trees) {\r\n trees = new Dictionary<any, TreeOwner>((lhs, rhs) => supplier.compareTileTreeIds(lhs, rhs));\r\n this._treesBySupplier.set(supplier, trees);\r\n }\r\n\r\n let tree = trees.get(id);\r\n if (undefined === tree) {\r\n tree = new TreeOwner(id, supplier, this._iModel);\r\n trees.set(id, tree);\r\n }\r\n\r\n return tree;\r\n }\r\n\r\n /** Disposes of all [[TileTree]]s belonging to `supplier` and removes `supplier` from the set of known tile tree suppliers. */\r\n public dropSupplier(supplier: TileTreeSupplier): void {\r\n const trees = this._treesBySupplier.get(supplier);\r\n if (undefined === trees)\r\n return;\r\n\r\n trees.forEach((_key, value) => value.dispose());\r\n this._treesBySupplier.delete(supplier);\r\n }\r\n\r\n /** Invokes a function on each extant TileTreeOwner. */\r\n public forEachTreeOwner(func: (owner: TileTreeOwner) => void): void {\r\n for (const dict of this._treesBySupplier.values())\r\n dict.forEach((_key, value) => func(value));\r\n }\r\n\r\n /** Iterate over all of the TileTreeOwners. */\r\n public * [Symbol.iterator](): Iterator<{ supplier: TileTreeSupplier, id: any, owner: TileTreeOwner }> {\r\n for (const [supplier, dict] of this._treesBySupplier) {\r\n for (const entry of dict)\r\n yield { supplier, id: entry.key, owner: entry.value };\r\n }\r\n }\r\n\r\n /** Obtain the TileTreeOwners supplied by the specified supplier. */\r\n public getTreeOwnersForSupplier(supplier: TileTreeSupplier): Iterable<{ id: any, owner: TileTreeOwner }> {\r\n function* iterator(trees: Dictionary<any, TreeOwner> | undefined) {\r\n if (trees)\r\n for (const entry of trees)\r\n yield { id: entry.key, owner: entry.value };\r\n }\r\n\r\n return {\r\n [Symbol.iterator]: () => iterator(this._treesBySupplier.get(supplier)),\r\n };\r\n }\r\n\r\n /** Unload any tile trees which have not been drawn since at least the specified time, excluding any of the specified TileTrees.\r\n * @internal\r\n */\r\n public purge(olderThan: BeTimePoint, exclude?: Set<TileTree>): void {\r\n // NB: It would be nice to be able to detect completely useless leftover Owners or Suppliers, but we can't know if any TileTreeReferences exist pointing to a given Owner.\r\n for (const entry of this._treesBySupplier) {\r\n const dict = entry[1];\r\n dict.forEach((_treeId, owner) => {\r\n const tree = owner.tileTree;\r\n if (undefined !== tree && tree.lastSelectedTime.milliseconds < olderThan.milliseconds)\r\n if (undefined === exclude || !exclude.has(tree))\r\n owner.dispose();\r\n });\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Tiles.js","sourceRoot":"","sources":["../../src/Tiles.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA4G;AAC5G,2CAAwC;AAExC,8CAAgG;AAEhG,MAAM,SAAS;IAYb,YAAmB,EAAO,EAAE,QAA0B,EAAE,MAAwB;QAVxE,gBAAW,GAAuB,6BAAkB,CAAC,SAAS,CAAC;QAWrE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IARD,IAAW,QAAQ,KAA2B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACtE,IAAW,UAAU,KAAyB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACxE,IAAW,MAAM,KAAuB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAQvD,IAAI;QACT,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,8DAA8D;QAC5E,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,SAAS,GAAG,IAAA,sBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,6BAAkB,CAAC,SAAS,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,6BAAkB,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU;YAClD,OAAO;QAET,IAAI,CAAC,WAAW,GAAG,6BAAkB,CAAC,OAAO,CAAC;QAC9C,IAAI,IAA0B,CAAC;QAC/B,IAAI,SAA6B,CAAC;QAClC,IAAI;YACF,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAClE,SAAS,GAAG,SAAS,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,6BAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,6BAAkB,CAAC,QAAQ,CAAC;SAChI;QAAC,OAAO,GAAQ,EAAE;YACjB,SAAS,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,2BAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,6BAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,6BAAkB,CAAC,QAAQ,CAAC;SAC9I;QAED,IAAI,6BAAkB,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE;YACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,qBAAS,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACrD;IACH,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAa,KAAK;IAQhB,gBAAgB;IAChB,YAAY,MAAwB;QAPnB,qBAAgB,GAAG,IAAI,GAAG,EAAgD,CAAC;QACpF,cAAS,GAAG,KAAK,CAAC;QAOxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,MAAM,CAAC,qBAAqB,CAAC,WAAW,CAAC,GAAG,EAAE;YAC5C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE;gBACnD,IAAI,QAAQ,CAAC,eAAe;oBAC1B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aAC/B;QACH,CAAC,CAAC,CAAC;QAEH,oEAAoE;QACpE,MAAM,CAAC,uBAAuB,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;YACpD,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBACzD,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAnBD,gBAAgB;IAChB,IAAW,UAAU,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAoBlD,gBAAgB;IACT,OAAO;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,KAAK;QACV,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB;YAC1C,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,cAAc,CAAC,QAA+B;QACzD,OAAO,qBAAS,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAEO,iCAAiC,CAAC,qBAAiC;QACzE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAc,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;YACjD,IAAI,QAAQ,CAAC,yBAAyB;gBACpC,QAAQ,CAAC,yBAAyB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEjH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,uBAAuB,CAAC,qBAAiC;QACpE,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iCAAiC,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC7F,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAyB;QACrD,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI;YACrB,OAAO;QAET,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC/B,qBAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAEO,gBAAgB;QACtB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAc,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;YACjD,IAAI,QAAQ,CAAC,gBAAgB;gBAC3B,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEjF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,gBAAgB,CAAC,EAAO,EAAE,QAA0B;QACzD,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,SAAS,KAAK,KAAK,EAAE;YACvB,KAAK,GAAG,IAAI,yBAAU,CAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5F,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC5C;QAED,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SACrB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8HAA8H;IACvH,YAAY,CAAC,QAA0B;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,KAAK;YACrB,OAAO;QAET,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,uDAAuD;IAChD,gBAAgB,CAAC,IAAoC;QAC1D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC/C,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,8CAA8C;IACvC,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;QACxB,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACpD,KAAK,MAAM,KAAK,IAAI,IAAI;gBACtB,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;SACzD;IACH,CAAC;IAED,oEAAoE;IAC7D,wBAAwB,CAAC,QAA0B;QACxD,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAA6C;YAC9D,IAAI,KAAK;gBACP,KAAK,MAAM,KAAK,IAAI,KAAK;oBACvB,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAClD,CAAC;QAED,OAAO;YACL,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACvE,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAsB,EAAE,OAAuB;QAC1D,0KAA0K;QAC1K,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC5B,IAAI,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY;oBACnF,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;wBAC7C,KAAK,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CACF;AA7JD,sBA6JC","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 IModelConnection\r\n */\r\n\r\nimport { BeTimePoint, Dictionary, dispose, Id64Array, Id64String, IModelStatus } from \"@itwin/core-bentley\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { TileTree, TileTreeLoadStatus, TileTreeOwner, TileTreeSupplier } from \"./tile/internal\";\r\n\r\nclass TreeOwner implements TileTreeOwner {\r\n private _tileTree?: TileTree;\r\n private _loadStatus: TileTreeLoadStatus = TileTreeLoadStatus.NotLoaded;\r\n private readonly _supplier: TileTreeSupplier;\r\n private readonly _iModel: IModelConnection;\r\n\r\n public readonly id: any;\r\n\r\n public get tileTree(): TileTree | undefined { return this._tileTree; }\r\n public get loadStatus(): TileTreeLoadStatus { return this._loadStatus; }\r\n public get iModel(): IModelConnection { return this._iModel; }\r\n\r\n public constructor(id: any, supplier: TileTreeSupplier, iModel: IModelConnection) {\r\n this.id = id;\r\n this._supplier = supplier;\r\n this._iModel = iModel;\r\n }\r\n\r\n public load(): TileTree | undefined {\r\n this._load(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n return this.tileTree;\r\n }\r\n\r\n public async loadTree(): Promise<TileTree | undefined> {\r\n await this._load();\r\n return this.tileTree;\r\n }\r\n\r\n public dispose(): void {\r\n this._tileTree = dispose(this._tileTree);\r\n this._loadStatus = TileTreeLoadStatus.NotLoaded;\r\n }\r\n\r\n private async _load(): Promise<void> {\r\n if (TileTreeLoadStatus.NotLoaded !== this.loadStatus)\r\n return;\r\n\r\n this._loadStatus = TileTreeLoadStatus.Loading;\r\n let tree: TileTree | undefined;\r\n let newStatus: TileTreeLoadStatus;\r\n try {\r\n tree = await this._supplier.createTileTree(this.id, this._iModel);\r\n newStatus = undefined !== tree && !tree.rootTile.contentRange.isNull ? TileTreeLoadStatus.Loaded : TileTreeLoadStatus.NotFound;\r\n } catch (err: any) {\r\n newStatus = (err.errorNumber && err.errorNumber === IModelStatus.ServerTimeout) ? TileTreeLoadStatus.NotLoaded : TileTreeLoadStatus.NotFound;\r\n }\r\n\r\n if (TileTreeLoadStatus.Loading === this._loadStatus) {\r\n this._tileTree = tree;\r\n this._loadStatus = newStatus;\r\n IModelApp.tileAdmin.onTileTreeLoad.raiseEvent(this);\r\n }\r\n }\r\n}\r\n\r\n/** Provides access to [[TileTree]]s associated with an [[IModelConnection]].\r\n * The tile trees are accessed indirectly via their corresponding [[TileTreeOwner]]s.\r\n * Loaded tile trees will be discarded after the iModel is closed, after a period of disuse, or when the contents of a [[GeometricModelState]] they represent\r\n * change.\r\n * @see [[IModelConnection.tiles]].\r\n * @public\r\n * @extensions\r\n */\r\nexport class Tiles implements Iterable<{ supplier: TileTreeSupplier, id: any, owner: TileTreeOwner }> {\r\n private _iModel: IModelConnection;\r\n private readonly _treesBySupplier = new Map<TileTreeSupplier, Dictionary<any, TreeOwner>>();\r\n private _disposed = false;\r\n\r\n /** @internal */\r\n public get isDisposed() { return this._disposed; }\r\n\r\n /** @internal */\r\n constructor(iModel: IModelConnection) {\r\n this._iModel = iModel;\r\n\r\n iModel.onEcefLocationChanged.addListener(() => {\r\n for (const supplier of this._treesBySupplier.keys()) {\r\n if (supplier.isEcefDependent)\r\n this.dropSupplier(supplier);\r\n }\r\n });\r\n\r\n // When project extents change, purge tile trees for spatial models.\r\n iModel.onProjectExtentsChanged.addListener(async () => {\r\n if (!iModel.isBriefcaseConnection() || !iModel.editingScope)\r\n await this.purgeModelTrees(this.getSpatialModels());\r\n });\r\n }\r\n\r\n /** @internal */\r\n public dispose(): void {\r\n this.reset();\r\n this._disposed = true;\r\n }\r\n\r\n /** Intended strictly for tests.\r\n * @internal\r\n */\r\n public reset(): void {\r\n for (const supplier of this._treesBySupplier)\r\n supplier[1].forEach((_key, value) => value.dispose());\r\n\r\n this._treesBySupplier.clear();\r\n }\r\n\r\n /** @internal */\r\n public async purgeTileTrees(modelIds: Id64Array | undefined): Promise<void> {\r\n return IModelApp.tileAdmin.purgeTileTrees(this._iModel, modelIds);\r\n }\r\n\r\n private getModelsAnimatedByScheduleScript(scriptSourceElementId: Id64String): Set<Id64String> {\r\n const modelIds = new Set<Id64String>();\r\n for (const supplier of this._treesBySupplier.keys())\r\n if (supplier.addModelsAnimatedByScript)\r\n supplier.addModelsAnimatedByScript(modelIds, scriptSourceElementId, this.getTreeOwnersForSupplier(supplier));\r\n\r\n return modelIds;\r\n }\r\n\r\n /** Update the [[Tile]]s for any [[TileTree]]s that use the [RenderSchedule.Script]($common) hosted by the specified\r\n * [RenderTimeline]($backend) or [DisplayStyle]($backend) element. This method should be invoked after\r\n * the host element is updated in the database with a new script, so that any [[Viewport]]s displaying tiles produced\r\n * based on the previous version of the script are updated to use the new version of the script.\r\n * @param scriptSourceElementId The Id of the RenderTimeline or DisplayStyle element that hosts the script.\r\n * @public\r\n */\r\n public async updateForScheduleScript(scriptSourceElementId: Id64String): Promise<void> {\r\n return this.purgeModelTrees(this.getModelsAnimatedByScheduleScript(scriptSourceElementId));\r\n }\r\n\r\n private async purgeModelTrees(modelIds: Set<Id64String>): Promise<void> {\r\n if (0 === modelIds.size)\r\n return;\r\n\r\n const ids = Array.from(modelIds);\r\n await this.purgeTileTrees(ids);\r\n IModelApp.viewManager.refreshForModifiedModels(ids);\r\n }\r\n\r\n private getSpatialModels(): Set<Id64String> {\r\n const modelIds = new Set<Id64String>();\r\n for (const supplier of this._treesBySupplier.keys())\r\n if (supplier.addSpatialModels)\r\n supplier.addSpatialModels(modelIds, this.getTreeOwnersForSupplier(supplier));\r\n\r\n return modelIds;\r\n }\r\n\r\n /** Obtain the owner of a TileTree.\r\n * The `id` is unique within all tile trees associated with `supplier`; its specific structure is an implementation detail known only to the supplier.\r\n * A [[TileTreeReference]] uses this method to obtain the tile tree to which it refers.\r\n */\r\n public getTileTreeOwner(id: any, supplier: TileTreeSupplier): TileTreeOwner {\r\n let trees = this._treesBySupplier.get(supplier);\r\n if (undefined === trees) {\r\n trees = new Dictionary<any, TreeOwner>((lhs, rhs) => supplier.compareTileTreeIds(lhs, rhs));\r\n this._treesBySupplier.set(supplier, trees);\r\n }\r\n\r\n let tree = trees.get(id);\r\n if (undefined === tree) {\r\n tree = new TreeOwner(id, supplier, this._iModel);\r\n trees.set(id, tree);\r\n }\r\n\r\n return tree;\r\n }\r\n\r\n /** Disposes of all [[TileTree]]s belonging to `supplier` and removes `supplier` from the set of known tile tree suppliers. */\r\n public dropSupplier(supplier: TileTreeSupplier): void {\r\n const trees = this._treesBySupplier.get(supplier);\r\n if (undefined === trees)\r\n return;\r\n\r\n trees.forEach((_key, value) => value.dispose());\r\n this._treesBySupplier.delete(supplier);\r\n }\r\n\r\n /** Invokes a function on each extant TileTreeOwner. */\r\n public forEachTreeOwner(func: (owner: TileTreeOwner) => void): void {\r\n for (const dict of this._treesBySupplier.values())\r\n dict.forEach((_key, value) => func(value));\r\n }\r\n\r\n /** Iterate over all of the TileTreeOwners. */\r\n public * [Symbol.iterator](): Iterator<{ supplier: TileTreeSupplier, id: any, owner: TileTreeOwner }> {\r\n for (const [supplier, dict] of this._treesBySupplier) {\r\n for (const entry of dict)\r\n yield { supplier, id: entry.key, owner: entry.value };\r\n }\r\n }\r\n\r\n /** Obtain the TileTreeOwners supplied by the specified supplier. */\r\n public getTreeOwnersForSupplier(supplier: TileTreeSupplier): Iterable<{ id: any, owner: TileTreeOwner }> {\r\n function* iterator(trees: Dictionary<any, TreeOwner> | undefined) {\r\n if (trees)\r\n for (const entry of trees)\r\n yield { id: entry.key, owner: entry.value };\r\n }\r\n\r\n return {\r\n [Symbol.iterator]: () => iterator(this._treesBySupplier.get(supplier)),\r\n };\r\n }\r\n\r\n /** Unload any tile trees which have not been drawn since at least the specified time, excluding any of the specified TileTrees.\r\n * @internal\r\n */\r\n public purge(olderThan: BeTimePoint, exclude?: Set<TileTree>): void {\r\n // NB: It would be nice to be able to detect completely useless leftover Owners or Suppliers, but we can't know if any TileTreeReferences exist pointing to a given Owner.\r\n for (const entry of this._treesBySupplier) {\r\n const dict = entry[1];\r\n dict.forEach((_treeId, owner) => {\r\n const tree = owner.tileTree;\r\n if (undefined !== tree && tree.lastSelectedTime.milliseconds < olderThan.milliseconds)\r\n if (undefined === exclude || !exclude.has(tree))\r\n owner.dispose();\r\n });\r\n }\r\n }\r\n}\r\n"]}
@@ -13,6 +13,7 @@ import { Point3d } from "@itwin/core-geometry";
13
13
  * the viewport is closed, or viewing tools operate on it, etc.
14
14
  * @see [[Viewport.setAnimator]] to apply an animator to a viewport.
15
15
  * @public
16
+ * @extensions
16
17
  */
17
18
  export interface Animator {
18
19
  /** Apply animation to the viewport. Return true when animation is completed, causing the animator to be removed from the viewport. */
@@ -22,6 +23,7 @@ export interface Animator {
22
23
  }
23
24
  /** Options that control how an Viewport animation behaves.
24
25
  * @public
26
+ * @extensions
25
27
  */
26
28
  export interface ViewAnimationOptions {
27
29
  /** Amount of time for animation, in milliseconds. Default is [[ScreenViewport.animation.time.normal]] */
@@ -35,6 +37,7 @@ export interface ViewAnimationOptions {
35
37
  }
36
38
  /** Options that control how a view is aligned with the globe.
37
39
  * @public
40
+ * @extensions
38
41
  */
39
42
  export interface GlobalAlignmentOptions {
40
43
  /** The target point about which the alignment occurs. This point will remain stationary in the view */
@@ -46,6 +49,7 @@ export interface GlobalAlignmentOptions {
46
49
  }
47
50
  /** A method to be called if an error occurs while adjusting a ViewState's extents
48
51
  * @public
52
+ * @extensions
49
53
  */
50
54
  export interface OnViewExtentsError {
51
55
  /** Function to be called when the extents are adjusted due to a limits error (view too larger or too small) */
@@ -53,6 +57,7 @@ export interface OnViewExtentsError {
53
57
  }
54
58
  /** Options that control the margin around the edges of a volume for lookAt and Fit view operations
55
59
  * @public
60
+ * @extensions
56
61
  */
57
62
  export interface MarginOptions {
58
63
  /** The percentage of the view to leave blank around the edges. */
@@ -60,6 +65,7 @@ export interface MarginOptions {
60
65
  }
61
66
  /** Options that control how operations that change a viewport behave.
62
67
  * @public
68
+ * @extensions
63
69
  */
64
70
  export interface ViewChangeOptions extends OnViewExtentsError, ViewAnimationOptions {
65
71
  /** Whether to save the result of this change into the view undo stack. Default is to save in undo. */
@@ -1 +1 @@
1
- {"version":3,"file":"ViewAnimation.d.ts","sourceRoot":"","sources":["../../src/ViewAnimation.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB,sIAAsI;IACtI,OAAO,IAAI,OAAO,CAAC;IAEnB,gIAAgI;IAChI,SAAS,IAAI,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4HAA4H;IAC5H,yBAAyB,CAAC,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wGAAwG;IACxG,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+GAA+G;IAC/G,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB,EAAE,oBAAoB;IACjF,sGAAsG;IACtG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,0EAA0E;IAC1E,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C"}
1
+ {"version":3,"file":"ViewAnimation.d.ts","sourceRoot":"","sources":["../../src/ViewAnimation.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB,sIAAsI;IACtI,OAAO,IAAI,OAAO,CAAC;IAEnB,gIAAgI;IAChI,SAAS,IAAI,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4HAA4H;IAC5H,yBAAyB,CAAC,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;CACxD;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,wGAAwG;IACxG,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,+GAA+G;IAC/G,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB,EAAE,oBAAoB;IACjF,sGAAsG;IACtG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8FAA8F;IAC9F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,0EAA0E;IAC1E,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewAnimation.js","sourceRoot":"","sources":["../../src/ViewAnimation.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Views\r\n */\r\n\r\nimport { EasingFunction } from \"@itwin/core-common\";\r\nimport { ViewStatus } from \"./ViewStatus\";\r\nimport { MarginPercent } from \"./MarginPercent\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\n\r\n/** An object to animate a transition of a [[Viewport]].\r\n * Only one animator may be associated with a viewport at a time. Registering a new\r\n * animator interrupts and replaces any existing animator.\r\n * The animator's animate() function will be invoked just prior to the rendering of each frame.\r\n * The animator may be removed in response to certain changes to the viewport - e.g., when\r\n * the viewport is closed, or viewing tools operate on it, etc.\r\n * @see [[Viewport.setAnimator]] to apply an animator to a viewport.\r\n * @public\r\n */\r\nexport interface Animator {\r\n /** Apply animation to the viewport. Return true when animation is completed, causing the animator to be removed from the viewport. */\r\n animate(): boolean;\r\n\r\n /** Invoked to abort this Animator. This method is called if [[Viewport.setAnimator]] is called before `animate` returns true */\r\n interrupt(): void;\r\n}\r\n\r\n/** Options that control how an Viewport animation behaves.\r\n * @public\r\n */\r\nexport interface ViewAnimationOptions {\r\n /** Amount of time for animation, in milliseconds. Default is [[ScreenViewport.animation.time.normal]] */\r\n animationTime?: number;\r\n /** if animation is aborted, don't move to end, leave at current point instead. */\r\n cancelOnAbort?: boolean;\r\n /** easing function for animation. Default is Easing.Cubic.Out */\r\n easingFunction?: EasingFunction;\r\n /** Invoked when the animator is finished. didComplete is true only if the animation finished without being interrupted. */\r\n animationFinishedCallback?(didComplete: boolean): void;\r\n}\r\n\r\n/** Options that control how a view is aligned with the globe.\r\n * @public\r\n */\r\nexport interface GlobalAlignmentOptions {\r\n /** The target point about which the alignment occurs. This point will remain stationary in the view */\r\n target: Point3d;\r\n /** If defined and true then the alignment rotation is scaled by the [[ViewState.globalViewTransition]]. This is\r\n * typically used when zooming out from is zoomed out from a specific location to a more global representation.\r\n */\r\n transition?: boolean;\r\n}\r\n\r\n/** A method to be called if an error occurs while adjusting a ViewState's extents\r\n * @public\r\n */\r\nexport interface OnViewExtentsError {\r\n /** Function to be called when the extents are adjusted due to a limits error (view too larger or too small) */\r\n onExtentsError?: (status: ViewStatus) => ViewStatus;\r\n}\r\n\r\n/** Options that control the margin around the edges of a volume for lookAt and Fit view operations\r\n * @public\r\n */\r\nexport interface MarginOptions {\r\n /** The percentage of the view to leave blank around the edges. */\r\n marginPercent?: MarginPercent;\r\n}\r\n\r\n/** Options that control how operations that change a viewport behave.\r\n * @public\r\n */\r\nexport interface ViewChangeOptions extends OnViewExtentsError, ViewAnimationOptions {\r\n /** Whether to save the result of this change into the view undo stack. Default is to save in undo. */\r\n noSaveInUndo?: boolean;\r\n /** Whether the change should be animated or not. Default is to not animate frustum change. */\r\n animateFrustumChange?: boolean;\r\n /** If defined the controls how the view will be aligned with the globe */\r\n globalAlignment?: GlobalAlignmentOptions;\r\n}\r\n"]}
1
+ {"version":3,"file":"ViewAnimation.js","sourceRoot":"","sources":["../../src/ViewAnimation.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Views\r\n */\r\n\r\nimport { EasingFunction } from \"@itwin/core-common\";\r\nimport { ViewStatus } from \"./ViewStatus\";\r\nimport { MarginPercent } from \"./MarginPercent\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\n\r\n/** An object to animate a transition of a [[Viewport]].\r\n * Only one animator may be associated with a viewport at a time. Registering a new\r\n * animator interrupts and replaces any existing animator.\r\n * The animator's animate() function will be invoked just prior to the rendering of each frame.\r\n * The animator may be removed in response to certain changes to the viewport - e.g., when\r\n * the viewport is closed, or viewing tools operate on it, etc.\r\n * @see [[Viewport.setAnimator]] to apply an animator to a viewport.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface Animator {\r\n /** Apply animation to the viewport. Return true when animation is completed, causing the animator to be removed from the viewport. */\r\n animate(): boolean;\r\n\r\n /** Invoked to abort this Animator. This method is called if [[Viewport.setAnimator]] is called before `animate` returns true */\r\n interrupt(): void;\r\n}\r\n\r\n/** Options that control how an Viewport animation behaves.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewAnimationOptions {\r\n /** Amount of time for animation, in milliseconds. Default is [[ScreenViewport.animation.time.normal]] */\r\n animationTime?: number;\r\n /** if animation is aborted, don't move to end, leave at current point instead. */\r\n cancelOnAbort?: boolean;\r\n /** easing function for animation. Default is Easing.Cubic.Out */\r\n easingFunction?: EasingFunction;\r\n /** Invoked when the animator is finished. didComplete is true only if the animation finished without being interrupted. */\r\n animationFinishedCallback?(didComplete: boolean): void;\r\n}\r\n\r\n/** Options that control how a view is aligned with the globe.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface GlobalAlignmentOptions {\r\n /** The target point about which the alignment occurs. This point will remain stationary in the view */\r\n target: Point3d;\r\n /** If defined and true then the alignment rotation is scaled by the [[ViewState.globalViewTransition]]. This is\r\n * typically used when zooming out from is zoomed out from a specific location to a more global representation.\r\n */\r\n transition?: boolean;\r\n}\r\n\r\n/** A method to be called if an error occurs while adjusting a ViewState's extents\r\n * @public\r\n * @extensions\r\n */\r\nexport interface OnViewExtentsError {\r\n /** Function to be called when the extents are adjusted due to a limits error (view too larger or too small) */\r\n onExtentsError?: (status: ViewStatus) => ViewStatus;\r\n}\r\n\r\n/** Options that control the margin around the edges of a volume for lookAt and Fit view operations\r\n * @public\r\n * @extensions\r\n */\r\nexport interface MarginOptions {\r\n /** The percentage of the view to leave blank around the edges. */\r\n marginPercent?: MarginPercent;\r\n}\r\n\r\n/** Options that control how operations that change a viewport behave.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewChangeOptions extends OnViewExtentsError, ViewAnimationOptions {\r\n /** Whether to save the result of this change into the view undo stack. Default is to save in undo. */\r\n noSaveInUndo?: boolean;\r\n /** Whether the change should be animated or not. Default is to not animate frustum change. */\r\n animateFrustumChange?: boolean;\r\n /** If defined the controls how the view will be aligned with the globe */\r\n globalAlignment?: GlobalAlignmentOptions;\r\n}\r\n"]}
@@ -7,6 +7,7 @@ import { IModelConnection } from "./IModelConnection";
7
7
  import { ViewState } from "./ViewState";
8
8
  /** Options for creating a [[ViewState2d]] via [[ViewCreator2d]].
9
9
  * @public
10
+ * @extensions
10
11
  */
11
12
  export interface ViewCreator2dOptions {
12
13
  /** Aspect ratio of [[Viewport]]. Required to fit contents of the model in the initial state of the view. */
@@ -26,6 +27,7 @@ export interface ViewCreator2dOptions {
26
27
  * const view = await viewCreator.createViewForModel(models[0].id!);
27
28
  * ```
28
29
  * @public
30
+ * @extensions
29
31
  */
30
32
  export declare class ViewCreator2d {
31
33
  private _imodel;
@@ -1 +1 @@
1
- {"version":3,"file":"ViewCreator2d.d.ts","sourceRoot":"","sources":["../../src/ViewCreator2d.ts"],"names":[],"mappings":"AAKA;;GAEG;AAOH,OAAO,EAAa,UAAU,EAAgB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EACwB,QAAQ,EAEtC,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAe,MAAM,aAAa,CAAC;AAErD;;EAEE;AACF,MAAM,WAAW,oBAAoB;IACnC,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,uKAAuK;IACvK,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IAUZ,OAAO,CAAC,OAAO;IAP3B,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAA6E;IAChH,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAmC;IAEpE;;;OAGG;gBACiB,OAAO,EAAE,gBAAgB;IAE7C;;;;;OAKG;IACU,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAYxG;;;;OAIG;YACW,sBAAsB;IAiBpC;;;;;;OAMG;YACW,kBAAkB;IAehC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CA8E3B;IAEF;;;;OAIG;YACW,kBAAkB;IAsBhC;;;;QAII;YACU,cAAc;IAuB5B;;;OAGG;YACW,6BAA6B;IAQ3C;;OAEG;YACW,iBAAiB;IAQ/B;;;OAGG;YACW,oBAAoB;IAQlC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAMnB;CACH"}
1
+ {"version":3,"file":"ViewCreator2d.d.ts","sourceRoot":"","sources":["../../src/ViewCreator2d.ts"],"names":[],"mappings":"AAKA;;GAEG;AAOH,OAAO,EAAa,UAAU,EAAgB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EACwB,QAAQ,EAEtC,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAe,MAAM,aAAa,CAAC;AAErD;;;EAGE;AACF,MAAM,WAAW,oBAAoB;IACnC,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,uKAAuK;IACvK,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IAUZ,OAAO,CAAC,OAAO;IAP3B,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAA6E;IAChH,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAmC;IAEpE;;;OAGG;gBACiB,OAAO,EAAE,gBAAgB;IAE7C;;;;;OAKG;IACU,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;IAYxG;;;;OAIG;YACW,sBAAsB;IAiBpC;;;;;;OAMG;YACW,kBAAkB;IAehC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CA8E3B;IAEF;;;;OAIG;YACW,kBAAkB;IAsBhC;;;;QAII;YACU,cAAc;IAuB5B;;;OAGG;YACW,6BAA6B;IAQ3C;;OAEG;YACW,iBAAiB;IAQ/B;;;OAGG;YACW,oBAAoB;IAQlC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAMnB;CACH"}
@@ -28,6 +28,7 @@ const SheetViewState_1 = require("./SheetViewState");
28
28
  * const view = await viewCreator.createViewForModel(models[0].id!);
29
29
  * ```
30
30
  * @public
31
+ * @extensions
31
32
  */
32
33
  class ViewCreator2d {
33
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ViewCreator2d.js","sourceRoot":"","sources":["../../src/ViewCreator2d.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\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\n/*\r\nAPI for creating a 2D view from a given modelId and modelType (classFullName).\r\nAdditional options (such as background color) can be passed during view creation.\r\n*/\r\n\r\nimport { Id64Array, Id64String, IModelStatus } from \"@itwin/core-bentley\";\r\nimport {\r\n CategorySelectorProps, Code, ColorDef, DisplayStyleProps, IModel, IModelError, ModelSelectorProps, QueryBinder, QueryRowFormat, SheetProps,\r\n ViewDefinition2dProps, ViewStateProps,\r\n} from \"@itwin/core-common\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { DrawingViewState } from \"./DrawingViewState\";\r\nimport { EntityState } from \"./EntityState\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { DrawingModelState, SectionDrawingModelState, SheetModelState } from \"./ModelState\";\r\nimport { SheetViewState } from \"./SheetViewState\";\r\nimport { ViewState, ViewState2d } from \"./ViewState\";\r\n\r\n/** Options for creating a [[ViewState2d]] via [[ViewCreator2d]].\r\n * @public\r\n*/\r\nexport interface ViewCreator2dOptions {\r\n /** Aspect ratio of [[Viewport]]. Required to fit contents of the model in the initial state of the view. */\r\n vpAspect?: number;\r\n /** Background color of the view (default is white). */\r\n bgColor?: ColorDef;\r\n /** Checks to see if there already is a [[ViewDefinition2d]] for the given modelId. If so, use it as the seed view, and merge its props into the final view created. */\r\n useSeedView?: boolean;\r\n}\r\n\r\n/**\r\n * API for creating a [[ViewState2d]] for a 2D model ([[GeometricModel2dState]]). @see [[ViewCreator3d]] to create a view for a 3d model.\r\n * Example usage:\r\n * ```ts\r\n * const viewCreator = new ViewCreator2d(imodel);\r\n * const models = await imodel.models.queryProps({ from: \"BisCore.GeometricModel2d\" });\r\n * if (models.length > 0)\r\n * const view = await viewCreator.createViewForModel(models[0].id!);\r\n * ```\r\n * @public\r\n */\r\nexport class ViewCreator2d {\r\n\r\n // Types of 2D models the API supports\r\n private static _drawingModelClasses = [DrawingModelState.classFullName, SectionDrawingModelState.classFullName];\r\n private static _sheetModelClasses = [SheetModelState.classFullName];\r\n\r\n /**\r\n * Constructs a ViewCreator2d using an [[IModelConnection]].\r\n * @param _imodel [[IModelConnection]] to query for categories and/or models.\r\n */\r\n constructor(private _imodel: IModelConnection) { }\r\n\r\n /**\r\n * Creates and returns view for the 2D model id passed in.\r\n * @param modelId Id of the 2D model for the view.\r\n * @param [options] Options for creating the view.\r\n * @throws [IModelError]($common) If modelType is not supported.\r\n */\r\n public async createViewForModel(modelId: Id64String, options?: ViewCreator2dOptions): Promise<ViewState> {\r\n\r\n const baseClassName = await this._getModelBaseClassName(modelId);\r\n\r\n const viewState = await this._createViewState2d(modelId, baseClassName.classFullName, options);\r\n try {\r\n await viewState.load();\r\n } catch { }\r\n\r\n return viewState;\r\n }\r\n\r\n /**\r\n * Gets model base class name from id.\r\n * @param modelId of target model.\r\n * @throws [IModelError]($common) if modelId is invalid.\r\n */\r\n private async _getModelBaseClassName(modelId: Id64String): Promise<typeof EntityState> {\r\n\r\n let baseClassName;\r\n\r\n const modelProps = await this._imodel.models.getProps(modelId);\r\n if (modelProps.length > 0) {\r\n const modelType = modelProps[0].classFullName;\r\n baseClassName = await this._imodel.findClassFor(modelType, undefined);\r\n } else\r\n throw new IModelError(IModelStatus.BadModel, \"ViewCreator2d._getModelBaseClassName: modelId is invalid\");\r\n\r\n if (baseClassName === undefined)\r\n throw new IModelError(IModelStatus.WrongClass, \"ViewCreator2d.getViewForModel: modelType is invalid\");\r\n\r\n return baseClassName;\r\n }\r\n\r\n /**\r\n * Creates view from any 2D model type (Drawing/SectionDrawing/Sheet)\r\n * @param modelId of target model.\r\n * @param modelType classFullName of target 2D model.\r\n * @param options for view creation.\r\n * @throws [IModelError]($common) if modelType is not supported.\r\n */\r\n private async _createViewState2d(modelId: Id64String, modelType: string, options?: ViewCreator2dOptions): Promise<ViewState2d> {\r\n let viewState: ViewState2d;\r\n if (this._isDrawingModelClass(modelType)) {\r\n const props = await this._createViewStateProps(modelId, options);\r\n viewState = DrawingViewState.createFromProps(props, this._imodel);\r\n } else if (this._isSheetModelClass(modelType)) {\r\n let props = await this._createViewStateProps(modelId, options);\r\n props = await this._addSheetViewProps(modelId, props);\r\n viewState = SheetViewState.createFromProps(props, this._imodel);\r\n } else\r\n throw new IModelError(IModelStatus.WrongClass, \"ViewCreator2d._createViewState2d: modelType not supported\");\r\n\r\n return viewState;\r\n }\r\n\r\n /**\r\n * Checks to see if given model is of [[DrawingModelState]].\r\n * @param modelType classFullName of model.\r\n */\r\n private _isDrawingModelClass(modelType: string) {\r\n if (ViewCreator2d._drawingModelClasses.includes(modelType)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Checks to see if given model is of [[SheetModelState]].\r\n * @param modelType classFullName of model.\r\n */\r\n private _isSheetModelClass(modelType: string) {\r\n if (ViewCreator2d._sheetModelClasses.includes(modelType)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Creates ViewStateProps for the model. ViewStateProps are composed of the 4 sets of Props below.\r\n * @param modelId of target model.\r\n * @param options for view creation.\r\n */\r\n private _createViewStateProps = async (modelId: Id64String, options?: ViewCreator2dOptions): Promise<ViewStateProps> => {\r\n // Use dictionary model in all props\r\n const dictionaryId = IModel.dictionaryId;\r\n const categories = await this._getAllCategories();\r\n\r\n // Get bg color from options or default to white\r\n const bgColor: ColorDef = options?.bgColor ? options.bgColor : ColorDef.white;\r\n\r\n // model extents\r\n const modelProps = await this._imodel.models.queryModelRanges(modelId);\r\n const modelExtents = Range3d.fromJSON(modelProps[0]);\r\n let originX = modelExtents.low.x;\r\n let originY = modelExtents.low.y;\r\n let deltaX = modelExtents.xLength();\r\n let deltaY = modelExtents.yLength();\r\n\r\n // if vp aspect given, update model extents to fit view\r\n if (options?.vpAspect) {\r\n const modelAspect = deltaY / deltaX;\r\n\r\n if (modelAspect > options.vpAspect) {\r\n const xFix = deltaY / options.vpAspect;\r\n originX = originX - xFix / 2;\r\n deltaX = deltaX + xFix;\r\n } else if (modelAspect < options.vpAspect) {\r\n const yFix = deltaX * options.vpAspect;\r\n originY = originY - yFix / 2;\r\n deltaY = deltaY + yFix;\r\n }\r\n }\r\n\r\n const modelSelectorProps: ModelSelectorProps = {\r\n models: [modelId],\r\n code: Code.createEmpty(),\r\n model: dictionaryId,\r\n classFullName: \"BisCore:ModelSelector\",\r\n };\r\n\r\n const categorySelectorProps: CategorySelectorProps = {\r\n categories,\r\n code: Code.createEmpty(),\r\n model: dictionaryId,\r\n classFullName: \"BisCore:CategorySelector\",\r\n };\r\n\r\n const viewDefinitionProps: ViewDefinition2dProps = {\r\n baseModelId: modelId,\r\n categorySelectorId: \"\",\r\n displayStyleId: \"\",\r\n origin: { x: originX, y: originY },\r\n delta: { x: deltaX, y: deltaY },\r\n angle: { radians: 0 },\r\n code: Code.createEmpty(),\r\n model: dictionaryId,\r\n classFullName: \"BisCore:ViewDefinition2d\",\r\n };\r\n\r\n const displayStyleProps: DisplayStyleProps = {\r\n code: Code.createEmpty(),\r\n model: dictionaryId,\r\n classFullName: \"BisCore:DisplayStyle2d\",\r\n jsonProperties: {\r\n styles: {\r\n backgroundColor: bgColor.tbgr,\r\n },\r\n },\r\n };\r\n\r\n const viewStateProps: ViewStateProps = {\r\n displayStyleProps,\r\n categorySelectorProps,\r\n modelSelectorProps,\r\n viewDefinitionProps,\r\n modelExtents,\r\n };\r\n\r\n // merge seed view props if needed\r\n return options?.useSeedView ? this._mergeSeedView(modelId, viewStateProps) : viewStateProps;\r\n };\r\n\r\n /**\r\n * Adds Sheet view props to given view props.\r\n * @param modelId of target model.\r\n * @param props input ViewStateProps.\r\n */\r\n private async _addSheetViewProps(modelId: Id64String, props: ViewStateProps) {\r\n let width = 0;\r\n let height = 0;\r\n for await (const row of this._imodel.query(`SELECT Width, Height FROM bis.Sheet WHERE ECInstanceId = ?`, QueryBinder.from([modelId]), { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\r\n width = row.width as number;\r\n height = row.height as number;\r\n break;\r\n }\r\n const sheetProps: SheetProps = {\r\n model: modelId,\r\n code: { spec: \"\", scope: \"\" },\r\n classFullName: \"DrawingSheetModel\",\r\n height,\r\n width,\r\n };\r\n\r\n props.sheetAttachments = await this._getSheetAttachments(modelId);\r\n props.sheetProps = sheetProps;\r\n\r\n return props;\r\n }\r\n\r\n /**\r\n * Merges a seed view in the iModel with the passed view state props. It will be a no-op if there are no 2D views for target model.\r\n * @param modelId of target model.\r\n * @param props Input view props to be merged\r\n */\r\n private async _mergeSeedView(modelId: Id64String, props: ViewStateProps): Promise<ViewStateProps> {\r\n const viewDefinitionId = await this._getViewDefinitionsIdForModel(modelId);\r\n // Return incase no viewDefinition found.\r\n if (viewDefinitionId === undefined)\r\n return props;\r\n\r\n const seedViewState = (await this._imodel.views.load(viewDefinitionId));\r\n const seedViewStateProps: ViewStateProps = {\r\n categorySelectorProps: seedViewState.categorySelector.toJSON(),\r\n viewDefinitionProps: seedViewState.toJSON(),\r\n displayStyleProps: seedViewState.displayStyle.toJSON(),\r\n };\r\n const mergedDisplayProps = seedViewStateProps.displayStyleProps;\r\n if (mergedDisplayProps.jsonProperties !== undefined) {\r\n mergedDisplayProps.jsonProperties.styles = {\r\n ...mergedDisplayProps.jsonProperties.styles,\r\n ...props.displayStyleProps.jsonProperties!.styles,\r\n };\r\n }\r\n\r\n return { ...seedViewStateProps, ...props, displayStyleProps: mergedDisplayProps };\r\n }\r\n\r\n /**\r\n * Get all view definitions for a given model.\r\n * @param modelId of target model.\r\n */\r\n private async _getViewDefinitionsIdForModel(modelId: Id64String): Promise<Id64String | undefined> {\r\n\r\n const query = `SELECT ECInstanceId from Bis.ViewDefinition2D WHERE BaseModel.Id = ${modelId} AND isPrivate = false LIMIT 1`;\r\n const viewDefinitionsId = await this._executeQuery(query);\r\n\r\n return (viewDefinitionsId.length) > 0 ? viewDefinitionsId[0] : undefined;\r\n }\r\n\r\n /**\r\n * Get all drawing categories\r\n */\r\n private async _getAllCategories(): Promise<Id64Array> {\r\n\r\n const query = \"SELECT ECInstanceId from BisCore.DrawingCategory\";\r\n const categories = await this._executeQuery(query);\r\n\r\n return categories;\r\n }\r\n\r\n /**\r\n * Get all sheet attachments\r\n * @param modelId of target model.\r\n */\r\n private async _getSheetAttachments(modelId: string): Promise<Id64Array> {\r\n\r\n const query = `SELECT ECInstanceId FROM Bis.ViewAttachment WHERE Model.Id = ${modelId}`;\r\n const attachments = await this._executeQuery(query);\r\n\r\n return attachments;\r\n }\r\n\r\n /**\r\n * Helper function to execute ECSql queries.\r\n * @param query statement to execute.\r\n */\r\n private _executeQuery = async (query: string) => {\r\n const rows = [];\r\n for await (const row of this._imodel.query(query, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames }))\r\n rows.push(row.id);\r\n\r\n return rows;\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"ViewCreator2d.js","sourceRoot":"","sources":["../../src/ViewCreator2d.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\r\n/** @packageDocumentation\r\n * @module Views\r\n */\r\n\r\n/*\r\nAPI for creating a 2D view from a given modelId and modelType (classFullName).\r\nAdditional options (such as background color) can be passed during view creation.\r\n*/\r\n\r\nimport { Id64Array, Id64String, IModelStatus } from \"@itwin/core-bentley\";\r\nimport {\r\n CategorySelectorProps, Code, ColorDef, DisplayStyleProps, IModel, IModelError, ModelSelectorProps, QueryBinder, QueryRowFormat, SheetProps,\r\n ViewDefinition2dProps, ViewStateProps,\r\n} from \"@itwin/core-common\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { DrawingViewState } from \"./DrawingViewState\";\r\nimport { EntityState } from \"./EntityState\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { DrawingModelState, SectionDrawingModelState, SheetModelState } from \"./ModelState\";\r\nimport { SheetViewState } from \"./SheetViewState\";\r\nimport { ViewState, ViewState2d } from \"./ViewState\";\r\n\r\n/** Options for creating a [[ViewState2d]] via [[ViewCreator2d]].\r\n * @public\r\n * @extensions\r\n*/\r\nexport interface ViewCreator2dOptions {\r\n /** Aspect ratio of [[Viewport]]. Required to fit contents of the model in the initial state of the view. */\r\n vpAspect?: number;\r\n /** Background color of the view (default is white). */\r\n bgColor?: ColorDef;\r\n /** Checks to see if there already is a [[ViewDefinition2d]] for the given modelId. If so, use it as the seed view, and merge its props into the final view created. */\r\n useSeedView?: boolean;\r\n}\r\n\r\n/**\r\n * API for creating a [[ViewState2d]] for a 2D model ([[GeometricModel2dState]]). @see [[ViewCreator3d]] to create a view for a 3d model.\r\n * Example usage:\r\n * ```ts\r\n * const viewCreator = new ViewCreator2d(imodel);\r\n * const models = await imodel.models.queryProps({ from: \"BisCore.GeometricModel2d\" });\r\n * if (models.length > 0)\r\n * const view = await viewCreator.createViewForModel(models[0].id!);\r\n * ```\r\n * @public\r\n * @extensions\r\n */\r\nexport class ViewCreator2d {\r\n\r\n // Types of 2D models the API supports\r\n private static _drawingModelClasses = [DrawingModelState.classFullName, SectionDrawingModelState.classFullName];\r\n private static _sheetModelClasses = [SheetModelState.classFullName];\r\n\r\n /**\r\n * Constructs a ViewCreator2d using an [[IModelConnection]].\r\n * @param _imodel [[IModelConnection]] to query for categories and/or models.\r\n */\r\n constructor(private _imodel: IModelConnection) { }\r\n\r\n /**\r\n * Creates and returns view for the 2D model id passed in.\r\n * @param modelId Id of the 2D model for the view.\r\n * @param [options] Options for creating the view.\r\n * @throws [IModelError]($common) If modelType is not supported.\r\n */\r\n public async createViewForModel(modelId: Id64String, options?: ViewCreator2dOptions): Promise<ViewState> {\r\n\r\n const baseClassName = await this._getModelBaseClassName(modelId);\r\n\r\n const viewState = await this._createViewState2d(modelId, baseClassName.classFullName, options);\r\n try {\r\n await viewState.load();\r\n } catch { }\r\n\r\n return viewState;\r\n }\r\n\r\n /**\r\n * Gets model base class name from id.\r\n * @param modelId of target model.\r\n * @throws [IModelError]($common) if modelId is invalid.\r\n */\r\n private async _getModelBaseClassName(modelId: Id64String): Promise<typeof EntityState> {\r\n\r\n let baseClassName;\r\n\r\n const modelProps = await this._imodel.models.getProps(modelId);\r\n if (modelProps.length > 0) {\r\n const modelType = modelProps[0].classFullName;\r\n baseClassName = await this._imodel.findClassFor(modelType, undefined);\r\n } else\r\n throw new IModelError(IModelStatus.BadModel, \"ViewCreator2d._getModelBaseClassName: modelId is invalid\");\r\n\r\n if (baseClassName === undefined)\r\n throw new IModelError(IModelStatus.WrongClass, \"ViewCreator2d.getViewForModel: modelType is invalid\");\r\n\r\n return baseClassName;\r\n }\r\n\r\n /**\r\n * Creates view from any 2D model type (Drawing/SectionDrawing/Sheet)\r\n * @param modelId of target model.\r\n * @param modelType classFullName of target 2D model.\r\n * @param options for view creation.\r\n * @throws [IModelError]($common) if modelType is not supported.\r\n */\r\n private async _createViewState2d(modelId: Id64String, modelType: string, options?: ViewCreator2dOptions): Promise<ViewState2d> {\r\n let viewState: ViewState2d;\r\n if (this._isDrawingModelClass(modelType)) {\r\n const props = await this._createViewStateProps(modelId, options);\r\n viewState = DrawingViewState.createFromProps(props, this._imodel);\r\n } else if (this._isSheetModelClass(modelType)) {\r\n let props = await this._createViewStateProps(modelId, options);\r\n props = await this._addSheetViewProps(modelId, props);\r\n viewState = SheetViewState.createFromProps(props, this._imodel);\r\n } else\r\n throw new IModelError(IModelStatus.WrongClass, \"ViewCreator2d._createViewState2d: modelType not supported\");\r\n\r\n return viewState;\r\n }\r\n\r\n /**\r\n * Checks to see if given model is of [[DrawingModelState]].\r\n * @param modelType classFullName of model.\r\n */\r\n private _isDrawingModelClass(modelType: string) {\r\n if (ViewCreator2d._drawingModelClasses.includes(modelType)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Checks to see if given model is of [[SheetModelState]].\r\n * @param modelType classFullName of model.\r\n */\r\n private _isSheetModelClass(modelType: string) {\r\n if (ViewCreator2d._sheetModelClasses.includes(modelType)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Creates ViewStateProps for the model. ViewStateProps are composed of the 4 sets of Props below.\r\n * @param modelId of target model.\r\n * @param options for view creation.\r\n */\r\n private _createViewStateProps = async (modelId: Id64String, options?: ViewCreator2dOptions): Promise<ViewStateProps> => {\r\n // Use dictionary model in all props\r\n const dictionaryId = IModel.dictionaryId;\r\n const categories = await this._getAllCategories();\r\n\r\n // Get bg color from options or default to white\r\n const bgColor: ColorDef = options?.bgColor ? options.bgColor : ColorDef.white;\r\n\r\n // model extents\r\n const modelProps = await this._imodel.models.queryModelRanges(modelId);\r\n const modelExtents = Range3d.fromJSON(modelProps[0]);\r\n let originX = modelExtents.low.x;\r\n let originY = modelExtents.low.y;\r\n let deltaX = modelExtents.xLength();\r\n let deltaY = modelExtents.yLength();\r\n\r\n // if vp aspect given, update model extents to fit view\r\n if (options?.vpAspect) {\r\n const modelAspect = deltaY / deltaX;\r\n\r\n if (modelAspect > options.vpAspect) {\r\n const xFix = deltaY / options.vpAspect;\r\n originX = originX - xFix / 2;\r\n deltaX = deltaX + xFix;\r\n } else if (modelAspect < options.vpAspect) {\r\n const yFix = deltaX * options.vpAspect;\r\n originY = originY - yFix / 2;\r\n deltaY = deltaY + yFix;\r\n }\r\n }\r\n\r\n const modelSelectorProps: ModelSelectorProps = {\r\n models: [modelId],\r\n code: Code.createEmpty(),\r\n model: dictionaryId,\r\n classFullName: \"BisCore:ModelSelector\",\r\n };\r\n\r\n const categorySelectorProps: CategorySelectorProps = {\r\n categories,\r\n code: Code.createEmpty(),\r\n model: dictionaryId,\r\n classFullName: \"BisCore:CategorySelector\",\r\n };\r\n\r\n const viewDefinitionProps: ViewDefinition2dProps = {\r\n baseModelId: modelId,\r\n categorySelectorId: \"\",\r\n displayStyleId: \"\",\r\n origin: { x: originX, y: originY },\r\n delta: { x: deltaX, y: deltaY },\r\n angle: { radians: 0 },\r\n code: Code.createEmpty(),\r\n model: dictionaryId,\r\n classFullName: \"BisCore:ViewDefinition2d\",\r\n };\r\n\r\n const displayStyleProps: DisplayStyleProps = {\r\n code: Code.createEmpty(),\r\n model: dictionaryId,\r\n classFullName: \"BisCore:DisplayStyle2d\",\r\n jsonProperties: {\r\n styles: {\r\n backgroundColor: bgColor.tbgr,\r\n },\r\n },\r\n };\r\n\r\n const viewStateProps: ViewStateProps = {\r\n displayStyleProps,\r\n categorySelectorProps,\r\n modelSelectorProps,\r\n viewDefinitionProps,\r\n modelExtents,\r\n };\r\n\r\n // merge seed view props if needed\r\n return options?.useSeedView ? this._mergeSeedView(modelId, viewStateProps) : viewStateProps;\r\n };\r\n\r\n /**\r\n * Adds Sheet view props to given view props.\r\n * @param modelId of target model.\r\n * @param props input ViewStateProps.\r\n */\r\n private async _addSheetViewProps(modelId: Id64String, props: ViewStateProps) {\r\n let width = 0;\r\n let height = 0;\r\n for await (const row of this._imodel.query(`SELECT Width, Height FROM bis.Sheet WHERE ECInstanceId = ?`, QueryBinder.from([modelId]), { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\r\n width = row.width as number;\r\n height = row.height as number;\r\n break;\r\n }\r\n const sheetProps: SheetProps = {\r\n model: modelId,\r\n code: { spec: \"\", scope: \"\" },\r\n classFullName: \"DrawingSheetModel\",\r\n height,\r\n width,\r\n };\r\n\r\n props.sheetAttachments = await this._getSheetAttachments(modelId);\r\n props.sheetProps = sheetProps;\r\n\r\n return props;\r\n }\r\n\r\n /**\r\n * Merges a seed view in the iModel with the passed view state props. It will be a no-op if there are no 2D views for target model.\r\n * @param modelId of target model.\r\n * @param props Input view props to be merged\r\n */\r\n private async _mergeSeedView(modelId: Id64String, props: ViewStateProps): Promise<ViewStateProps> {\r\n const viewDefinitionId = await this._getViewDefinitionsIdForModel(modelId);\r\n // Return incase no viewDefinition found.\r\n if (viewDefinitionId === undefined)\r\n return props;\r\n\r\n const seedViewState = (await this._imodel.views.load(viewDefinitionId));\r\n const seedViewStateProps: ViewStateProps = {\r\n categorySelectorProps: seedViewState.categorySelector.toJSON(),\r\n viewDefinitionProps: seedViewState.toJSON(),\r\n displayStyleProps: seedViewState.displayStyle.toJSON(),\r\n };\r\n const mergedDisplayProps = seedViewStateProps.displayStyleProps;\r\n if (mergedDisplayProps.jsonProperties !== undefined) {\r\n mergedDisplayProps.jsonProperties.styles = {\r\n ...mergedDisplayProps.jsonProperties.styles,\r\n ...props.displayStyleProps.jsonProperties!.styles,\r\n };\r\n }\r\n\r\n return { ...seedViewStateProps, ...props, displayStyleProps: mergedDisplayProps };\r\n }\r\n\r\n /**\r\n * Get all view definitions for a given model.\r\n * @param modelId of target model.\r\n */\r\n private async _getViewDefinitionsIdForModel(modelId: Id64String): Promise<Id64String | undefined> {\r\n\r\n const query = `SELECT ECInstanceId from Bis.ViewDefinition2D WHERE BaseModel.Id = ${modelId} AND isPrivate = false LIMIT 1`;\r\n const viewDefinitionsId = await this._executeQuery(query);\r\n\r\n return (viewDefinitionsId.length) > 0 ? viewDefinitionsId[0] : undefined;\r\n }\r\n\r\n /**\r\n * Get all drawing categories\r\n */\r\n private async _getAllCategories(): Promise<Id64Array> {\r\n\r\n const query = \"SELECT ECInstanceId from BisCore.DrawingCategory\";\r\n const categories = await this._executeQuery(query);\r\n\r\n return categories;\r\n }\r\n\r\n /**\r\n * Get all sheet attachments\r\n * @param modelId of target model.\r\n */\r\n private async _getSheetAttachments(modelId: string): Promise<Id64Array> {\r\n\r\n const query = `SELECT ECInstanceId FROM Bis.ViewAttachment WHERE Model.Id = ${modelId}`;\r\n const attachments = await this._executeQuery(query);\r\n\r\n return attachments;\r\n }\r\n\r\n /**\r\n * Helper function to execute ECSql queries.\r\n * @param query statement to execute.\r\n */\r\n private _executeQuery = async (query: string) => {\r\n const rows = [];\r\n for await (const row of this._imodel.query(query, undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames }))\r\n rows.push(row.id);\r\n\r\n return rows;\r\n };\r\n}\r\n"]}
@@ -7,6 +7,7 @@ import { IModelConnection } from "./IModelConnection";
7
7
  import { ViewState } from "./ViewState";
8
8
  /** Options for creating a [[ViewState3d]] via [[ViewCreator3d]].
9
9
  * @public
10
+ * @extensions
10
11
  */
11
12
  export interface ViewCreator3dOptions {
12
13
  /** Turn [[Camera]] on when generating the view. Defaults to true (on) */
@@ -28,6 +29,7 @@ export interface ViewCreator3dOptions {
28
29
  * const defaultView = await viewCreator.createDefaultView({skyboxOn: true});
29
30
  * ```
30
31
  * @public
32
+ * @extensions
31
33
  */
32
34
  export declare class ViewCreator3d {
33
35
  private _imodel;
@@ -1 +1 @@
1
- {"version":3,"file":"ViewCreator3d.d.ts","sourceRoot":"","sources":["../../src/ViewCreator3d.ts"],"names":[],"mappings":"AAKA;;GAEG;AAOH,OAAO,EAAa,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAM5D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;EAEE;AACF,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa;IAMZ,OAAO,CAAC,OAAO;IAJ3B;;;OAGG;gBACiB,OAAO,EAAE,gBAAgB;IAE7C;;;;;OAKG;IACU,iBAAiB,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAkB3G;;;;OAIG;YACW,qBAAqB;IA2GnC;;;OAGG;YACW,cAAc;IAwB5B;;OAEG;YACW,iBAAiB;IAwB/B;;OAEG;YACW,iBAAiB;IAQ/B;;OAEG;YACW,aAAa;IAgB3B;;OAEG;IACH,OAAO,CAAC,aAAa,CAMnB;CACH"}
1
+ {"version":3,"file":"ViewCreator3d.d.ts","sourceRoot":"","sources":["../../src/ViewCreator3d.ts"],"names":[],"mappings":"AAKA;;GAEG;AAOH,OAAO,EAAa,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAM5D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;EAGE;AACF,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAa;IAMZ,OAAO,CAAC,OAAO;IAJ3B;;;OAGG;gBACiB,OAAO,EAAE,gBAAgB;IAE7C;;;;;OAKG;IACU,iBAAiB,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAkB3G;;;;OAIG;YACW,qBAAqB;IA2GnC;;;OAGG;YACW,cAAc;IAwB5B;;OAEG;YACW,iBAAiB;IAwB/B;;OAEG;YACW,iBAAiB;IAQ/B;;OAEG;YACW,aAAa;IAgB3B;;OAEG;IACH,OAAO,CAAC,aAAa,CAMnB;CACH"}
@@ -16,6 +16,7 @@ const SpatialViewState_1 = require("./SpatialViewState");
16
16
  * const defaultView = await viewCreator.createDefaultView({skyboxOn: true});
17
17
  * ```
18
18
  * @public
19
+ * @extensions
19
20
  */
20
21
  class ViewCreator3d {
21
22
  /**