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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1218) hide show
  1. package/CHANGELOG.md +55 -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/ApproximateTerrainHeights.d.ts.map +1 -1
  11. package/lib/cjs/ApproximateTerrainHeights.js +4 -2
  12. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  13. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +1 -1
  14. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -1
  15. package/lib/cjs/ApproximateTerrainHeightsProps.js +2 -2
  16. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
  17. package/lib/cjs/AuxCoordSys.d.ts +12 -2
  18. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  19. package/lib/cjs/AuxCoordSys.js +12 -2
  20. package/lib/cjs/AuxCoordSys.js.map +1 -1
  21. package/lib/cjs/BingLocation.d.ts +1 -0
  22. package/lib/cjs/BingLocation.d.ts.map +1 -1
  23. package/lib/cjs/BingLocation.js +1 -0
  24. package/lib/cjs/BingLocation.js.map +1 -1
  25. package/lib/cjs/BriefcaseConnection.d.ts +35 -1
  26. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  27. package/lib/cjs/BriefcaseConnection.js +52 -1
  28. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  29. package/lib/cjs/CategorySelectorState.d.ts +1 -0
  30. package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
  31. package/lib/cjs/CategorySelectorState.js +1 -0
  32. package/lib/cjs/CategorySelectorState.js.map +1 -1
  33. package/lib/cjs/ChangeFlags.d.ts +1 -0
  34. package/lib/cjs/ChangeFlags.d.ts.map +1 -1
  35. package/lib/cjs/ChangeFlags.js +1 -0
  36. package/lib/cjs/ChangeFlags.js.map +1 -1
  37. package/lib/cjs/ContextRealityModelState.d.ts +1 -0
  38. package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
  39. package/lib/cjs/ContextRealityModelState.js +1 -0
  40. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  41. package/lib/cjs/CoordSystem.d.ts +1 -0
  42. package/lib/cjs/CoordSystem.d.ts.map +1 -1
  43. package/lib/cjs/CoordSystem.js +1 -0
  44. package/lib/cjs/CoordSystem.js.map +1 -1
  45. package/lib/cjs/DisplayStyleState.d.ts +4 -0
  46. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  47. package/lib/cjs/DisplayStyleState.js +9 -4
  48. package/lib/cjs/DisplayStyleState.js.map +1 -1
  49. package/lib/cjs/DrawingViewState.d.ts +5 -2
  50. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  51. package/lib/cjs/DrawingViewState.js +34 -3
  52. package/lib/cjs/DrawingViewState.js.map +1 -1
  53. package/lib/cjs/ElementLocateManager.d.ts +23 -5
  54. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  55. package/lib/cjs/ElementLocateManager.js +19 -4
  56. package/lib/cjs/ElementLocateManager.js.map +1 -1
  57. package/lib/cjs/EmphasizeElements.d.ts +1 -0
  58. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  59. package/lib/cjs/EmphasizeElements.js +1 -0
  60. package/lib/cjs/EmphasizeElements.js.map +1 -1
  61. package/lib/cjs/EntityState.d.ts +2 -0
  62. package/lib/cjs/EntityState.d.ts.map +1 -1
  63. package/lib/cjs/EntityState.js +2 -0
  64. package/lib/cjs/EntityState.js.map +1 -1
  65. package/lib/cjs/FeatureOverrideProvider.d.ts +1 -0
  66. package/lib/cjs/FeatureOverrideProvider.d.ts.map +1 -1
  67. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  68. package/lib/cjs/FlashSettings.d.ts +3 -0
  69. package/lib/cjs/FlashSettings.d.ts.map +1 -1
  70. package/lib/cjs/FlashSettings.js +2 -0
  71. package/lib/cjs/FlashSettings.js.map +1 -1
  72. package/lib/cjs/FrontendHubAccess.d.ts +4 -1
  73. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  74. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  75. package/lib/cjs/FrontendLoggerCategory.d.ts +6 -1
  76. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  77. package/lib/cjs/FrontendLoggerCategory.js +5 -0
  78. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  79. package/lib/cjs/FrustumAnimator.d.ts +2 -0
  80. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  81. package/lib/cjs/FrustumAnimator.js +2 -0
  82. package/lib/cjs/FrustumAnimator.js.map +1 -1
  83. package/lib/cjs/FuzzySearch.d.ts +1 -0
  84. package/lib/cjs/FuzzySearch.d.ts.map +1 -1
  85. package/lib/cjs/FuzzySearch.js.map +1 -1
  86. package/lib/cjs/GlobeAnimator.d.ts +1 -0
  87. package/lib/cjs/GlobeAnimator.d.ts.map +1 -1
  88. package/lib/cjs/GlobeAnimator.js +1 -0
  89. package/lib/cjs/GlobeAnimator.js.map +1 -1
  90. package/lib/cjs/HitDetail.d.ts +26 -5
  91. package/lib/cjs/HitDetail.d.ts.map +1 -1
  92. package/lib/cjs/HitDetail.js +26 -5
  93. package/lib/cjs/HitDetail.js.map +1 -1
  94. package/lib/cjs/IModelApp.d.ts +9 -0
  95. package/lib/cjs/IModelApp.d.ts.map +1 -1
  96. package/lib/cjs/IModelApp.js +38 -23
  97. package/lib/cjs/IModelApp.js.map +1 -1
  98. package/lib/cjs/IModelConnection.d.ts +11 -2
  99. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  100. package/lib/cjs/IModelConnection.js +23 -2
  101. package/lib/cjs/IModelConnection.js.map +1 -1
  102. package/lib/cjs/ImageUtil.d.ts +15 -2
  103. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  104. package/lib/cjs/ImageUtil.js +19 -4
  105. package/lib/cjs/ImageUtil.js.map +1 -1
  106. package/lib/cjs/IpcApp.d.ts +1 -0
  107. package/lib/cjs/IpcApp.d.ts.map +1 -1
  108. package/lib/cjs/IpcApp.js +1 -0
  109. package/lib/cjs/IpcApp.js.map +1 -1
  110. package/lib/cjs/MarginPercent.d.ts +1 -0
  111. package/lib/cjs/MarginPercent.d.ts.map +1 -1
  112. package/lib/cjs/MarginPercent.js +1 -0
  113. package/lib/cjs/MarginPercent.js.map +1 -1
  114. package/lib/cjs/Marker.d.ts +16 -3
  115. package/lib/cjs/Marker.d.ts.map +1 -1
  116. package/lib/cjs/Marker.js +3 -0
  117. package/lib/cjs/Marker.js.map +1 -1
  118. package/lib/cjs/ModelSelectorState.d.ts +1 -0
  119. package/lib/cjs/ModelSelectorState.d.ts.map +1 -1
  120. package/lib/cjs/ModelSelectorState.js +1 -0
  121. package/lib/cjs/ModelSelectorState.js.map +1 -1
  122. package/lib/cjs/ModelState.d.ts +10 -0
  123. package/lib/cjs/ModelState.d.ts.map +1 -1
  124. package/lib/cjs/ModelState.js +10 -0
  125. package/lib/cjs/ModelState.js.map +1 -1
  126. package/lib/cjs/NotificationManager.d.ts +11 -0
  127. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  128. package/lib/cjs/NotificationManager.js +10 -0
  129. package/lib/cjs/NotificationManager.js.map +1 -1
  130. package/lib/cjs/PerModelCategoryVisibility.d.ts +1 -0
  131. package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
  132. package/lib/cjs/PerModelCategoryVisibility.js +1 -0
  133. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  134. package/lib/cjs/SelectionSet.d.ts +7 -0
  135. package/lib/cjs/SelectionSet.d.ts.map +1 -1
  136. package/lib/cjs/SelectionSet.js +3 -0
  137. package/lib/cjs/SelectionSet.js.map +1 -1
  138. package/lib/cjs/SheetViewState.d.ts +6 -5
  139. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  140. package/lib/cjs/SheetViewState.js +58 -6
  141. package/lib/cjs/SheetViewState.js.map +1 -1
  142. package/lib/cjs/SpatialViewState.d.ts +7 -2
  143. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  144. package/lib/cjs/SpatialViewState.js +17 -3
  145. package/lib/cjs/SpatialViewState.js.map +1 -1
  146. package/lib/cjs/Sprites.d.ts +3 -0
  147. package/lib/cjs/Sprites.d.ts.map +1 -1
  148. package/lib/cjs/Sprites.js +3 -0
  149. package/lib/cjs/Sprites.js.map +1 -1
  150. package/lib/cjs/StandardView.d.ts +1 -0
  151. package/lib/cjs/StandardView.d.ts.map +1 -1
  152. package/lib/cjs/StandardView.js +1 -0
  153. package/lib/cjs/StandardView.js.map +1 -1
  154. package/lib/cjs/SubCategoriesCache.d.ts +14 -7
  155. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  156. package/lib/cjs/SubCategoriesCache.js +36 -8
  157. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  158. package/lib/cjs/TentativePoint.d.ts +4 -1
  159. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  160. package/lib/cjs/TentativePoint.js +4 -1
  161. package/lib/cjs/TentativePoint.js.map +1 -1
  162. package/lib/cjs/Tiles.d.ts +1 -0
  163. package/lib/cjs/Tiles.d.ts.map +1 -1
  164. package/lib/cjs/Tiles.js +1 -0
  165. package/lib/cjs/Tiles.js.map +1 -1
  166. package/lib/cjs/ViewAnimation.d.ts +6 -0
  167. package/lib/cjs/ViewAnimation.d.ts.map +1 -1
  168. package/lib/cjs/ViewAnimation.js.map +1 -1
  169. package/lib/cjs/ViewCreator2d.d.ts +2 -0
  170. package/lib/cjs/ViewCreator2d.d.ts.map +1 -1
  171. package/lib/cjs/ViewCreator2d.js +1 -0
  172. package/lib/cjs/ViewCreator2d.js.map +1 -1
  173. package/lib/cjs/ViewCreator3d.d.ts +2 -8
  174. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  175. package/lib/cjs/ViewCreator3d.js +12 -38
  176. package/lib/cjs/ViewCreator3d.js.map +1 -1
  177. package/lib/cjs/ViewGlobalLocation.d.ts +3 -0
  178. package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
  179. package/lib/cjs/ViewGlobalLocation.js +1 -0
  180. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  181. package/lib/cjs/ViewManager.d.ts +3 -0
  182. package/lib/cjs/ViewManager.d.ts.map +1 -1
  183. package/lib/cjs/ViewManager.js +2 -0
  184. package/lib/cjs/ViewManager.js.map +1 -1
  185. package/lib/cjs/ViewPose.d.ts +1 -0
  186. package/lib/cjs/ViewPose.d.ts.map +1 -1
  187. package/lib/cjs/ViewPose.js +1 -0
  188. package/lib/cjs/ViewPose.js.map +1 -1
  189. package/lib/cjs/ViewRect.d.ts +1 -0
  190. package/lib/cjs/ViewRect.d.ts.map +1 -1
  191. package/lib/cjs/ViewRect.js +1 -0
  192. package/lib/cjs/ViewRect.js.map +1 -1
  193. package/lib/cjs/ViewState.d.ts +17 -2
  194. package/lib/cjs/ViewState.d.ts.map +1 -1
  195. package/lib/cjs/ViewState.js +40 -9
  196. package/lib/cjs/ViewState.js.map +1 -1
  197. package/lib/cjs/ViewStatus.d.ts +1 -0
  198. package/lib/cjs/ViewStatus.d.ts.map +1 -1
  199. package/lib/cjs/ViewStatus.js +1 -0
  200. package/lib/cjs/ViewStatus.js.map +1 -1
  201. package/lib/cjs/ViewingSpace.d.ts +1 -0
  202. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  203. package/lib/cjs/ViewingSpace.js +1 -0
  204. package/lib/cjs/ViewingSpace.js.map +1 -1
  205. package/lib/cjs/Viewport.d.ts +6 -2
  206. package/lib/cjs/Viewport.d.ts.map +1 -1
  207. package/lib/cjs/Viewport.js +12 -4
  208. package/lib/cjs/Viewport.js.map +1 -1
  209. package/lib/cjs/ViewportSync.d.ts +119 -0
  210. package/lib/cjs/ViewportSync.d.ts.map +1 -0
  211. package/lib/cjs/ViewportSync.js +187 -0
  212. package/lib/cjs/ViewportSync.js.map +1 -0
  213. package/lib/cjs/core-frontend.d.ts +10 -6
  214. package/lib/cjs/core-frontend.d.ts.map +1 -1
  215. package/lib/cjs/core-frontend.js +11 -6
  216. package/lib/cjs/core-frontend.js.map +1 -1
  217. package/lib/cjs/extension/Extension.d.ts +24 -15
  218. package/lib/cjs/extension/Extension.d.ts.map +1 -1
  219. package/lib/cjs/extension/Extension.js +0 -8
  220. package/lib/cjs/extension/Extension.js.map +1 -1
  221. package/lib/cjs/extension/ExtensionAdmin.d.ts +21 -44
  222. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  223. package/lib/cjs/extension/ExtensionAdmin.js +55 -64
  224. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  225. package/lib/cjs/extension/ExtensionRuntime.js +231 -59
  226. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  227. package/lib/cjs/extension/providers/ExtensionLoadScript.d.ts +10 -0
  228. package/lib/cjs/extension/providers/ExtensionLoadScript.d.ts.map +1 -0
  229. package/lib/cjs/extension/providers/ExtensionLoadScript.js +55 -0
  230. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -0
  231. package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts +52 -0
  232. package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts.map +1 -0
  233. package/lib/cjs/extension/providers/ExtensionServiceClient.js +131 -0
  234. package/lib/cjs/extension/providers/ExtensionServiceClient.js.map +1 -0
  235. package/lib/cjs/extension/providers/LocalExtensionProvider.d.ts +26 -0
  236. package/lib/cjs/extension/providers/LocalExtensionProvider.d.ts.map +1 -0
  237. package/lib/cjs/extension/providers/LocalExtensionProvider.js +24 -0
  238. package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -0
  239. package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts +36 -0
  240. package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts.map +1 -0
  241. package/lib/cjs/extension/providers/RemoteExtensionProvider.js +53 -0
  242. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -0
  243. package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts +37 -0
  244. package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts.map +1 -0
  245. package/lib/cjs/extension/providers/ServiceExtensionProvider.js +84 -0
  246. package/lib/cjs/extension/providers/ServiceExtensionProvider.js.map +1 -0
  247. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  248. package/lib/cjs/quantity-formatting/QuantityFormatter.js +2 -1
  249. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  250. package/lib/cjs/render/CanvasDecoration.d.ts +2 -0
  251. package/lib/cjs/render/CanvasDecoration.d.ts.map +1 -1
  252. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  253. package/lib/cjs/render/Decorations.d.ts +1 -0
  254. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  255. package/lib/cjs/render/Decorations.js +1 -0
  256. package/lib/cjs/render/Decorations.js.map +1 -1
  257. package/lib/cjs/render/FeatureSymbology.d.ts +1 -0
  258. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  259. package/lib/cjs/render/FeatureSymbology.js +1 -0
  260. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  261. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  262. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  263. package/lib/cjs/render/GraphicBranch.js +1 -0
  264. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  265. package/lib/cjs/render/GraphicBuilder.d.ts +33 -2
  266. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  267. package/lib/cjs/render/GraphicBuilder.js +26 -0
  268. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  269. package/lib/cjs/render/GraphicPrimitive.d.ts +14 -0
  270. package/lib/cjs/render/GraphicPrimitive.d.ts.map +1 -1
  271. package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
  272. package/lib/cjs/render/ParticleCollectionBuilder.d.ts +3 -0
  273. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  274. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  275. package/lib/cjs/render/Pixel.d.ts +1 -0
  276. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  277. package/lib/cjs/render/Pixel.js +1 -0
  278. package/lib/cjs/render/Pixel.js.map +1 -1
  279. package/lib/cjs/render/RenderClipVolume.d.ts +1 -0
  280. package/lib/cjs/render/RenderClipVolume.d.ts.map +1 -1
  281. package/lib/cjs/render/RenderClipVolume.js +1 -0
  282. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  283. package/lib/cjs/render/RenderGraphic.d.ts +3 -0
  284. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  285. package/lib/cjs/render/RenderGraphic.js +2 -0
  286. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  287. package/lib/cjs/render/RenderSystem.d.ts +4 -3
  288. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  289. package/lib/cjs/render/RenderSystem.js +4 -3
  290. package/lib/cjs/render/RenderSystem.js.map +1 -1
  291. package/lib/cjs/render/RenderTexture.d.ts +7 -0
  292. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  293. package/lib/cjs/render/RenderTexture.js.map +1 -1
  294. package/lib/cjs/render/Scene.d.ts +1 -0
  295. package/lib/cjs/render/Scene.d.ts.map +1 -1
  296. package/lib/cjs/render/Scene.js +1 -0
  297. package/lib/cjs/render/Scene.js.map +1 -1
  298. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  299. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  300. package/lib/cjs/render/ScreenSpaceEffectBuilder.js +2 -0
  301. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  302. package/lib/cjs/render/primitives/VertexKey.d.ts +4 -2
  303. package/lib/cjs/render/primitives/VertexKey.d.ts.map +1 -1
  304. package/lib/cjs/render/primitives/VertexKey.js +23 -12
  305. package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
  306. package/lib/cjs/render/primitives/VertexTable.d.ts +1 -1
  307. package/lib/cjs/render/primitives/VertexTable.js +30 -2
  308. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  309. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +12 -4
  310. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  311. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +20 -15
  312. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  313. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +2 -1
  314. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  315. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +6 -1
  316. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  317. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts +14 -12
  318. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  319. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js +26 -25
  320. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  321. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +8 -8
  322. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  323. package/lib/cjs/render/primitives/mesh/MeshBuilder.js +15 -15
  324. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  325. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts +11 -6
  326. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  327. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +12 -15
  328. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  329. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
  330. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  331. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +6 -2
  332. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  333. package/lib/cjs/render/webgl/AttributeMap.js +1 -1
  334. package/lib/cjs/render/webgl/CachedGeometry.d.ts +7 -1
  335. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  336. package/lib/cjs/render/webgl/CachedGeometry.js +20 -10
  337. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  338. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  339. package/lib/cjs/render/webgl/DrawCommand.js +2 -1
  340. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  341. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -0
  342. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  343. package/lib/cjs/render/webgl/InstancedGeometry.js +1 -0
  344. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  345. package/lib/cjs/render/webgl/RealityMesh.d.ts +14 -11
  346. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  347. package/lib/cjs/render/webgl/RealityMesh.js +26 -17
  348. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  349. package/lib/cjs/render/webgl/SceneCompositor.d.ts +2 -0
  350. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  351. package/lib/cjs/render/webgl/SceneCompositor.js +219 -52
  352. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  353. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +5 -4
  354. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  355. package/lib/cjs/render/webgl/ShaderBuilder.js +7 -6
  356. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  357. package/lib/cjs/render/webgl/System.d.ts +4 -4
  358. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  359. package/lib/cjs/render/webgl/System.js +6 -6
  360. package/lib/cjs/render/webgl/System.js.map +1 -1
  361. package/lib/cjs/render/webgl/Target.d.ts +6 -1
  362. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  363. package/lib/cjs/render/webgl/Target.js +64 -13
  364. package/lib/cjs/render/webgl/Target.js.map +1 -1
  365. package/lib/cjs/render/webgl/Technique.d.ts +4 -2
  366. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  367. package/lib/cjs/render/webgl/Technique.js +166 -135
  368. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  369. package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -3
  370. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  371. package/lib/cjs/render/webgl/TechniqueFlags.js +17 -4
  372. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  373. package/lib/cjs/render/webgl/TechniqueId.d.ts +8 -7
  374. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  375. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  376. package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
  377. package/lib/cjs/render/webgl/glsl/Animation.js +2 -0
  378. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  379. package/lib/cjs/render/webgl/glsl/Blur.d.ts +2 -1
  380. package/lib/cjs/render/webgl/glsl/Blur.d.ts.map +1 -1
  381. package/lib/cjs/render/webgl/glsl/Blur.js +38 -6
  382. package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
  383. package/lib/cjs/render/webgl/glsl/Color.d.ts.map +1 -1
  384. package/lib/cjs/render/webgl/glsl/Color.js +8 -7
  385. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  386. package/lib/cjs/render/webgl/glsl/CopyStencil.js +1 -1
  387. package/lib/cjs/render/webgl/glsl/Decode.d.ts +2 -1
  388. package/lib/cjs/render/webgl/glsl/Decode.d.ts.map +1 -1
  389. package/lib/cjs/render/webgl/glsl/Decode.js +16 -2
  390. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  391. package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -2
  392. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  393. package/lib/cjs/render/webgl/glsl/Edge.js +6 -19
  394. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  395. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  396. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +0 -2
  397. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  398. package/lib/cjs/render/webgl/glsl/PointString.d.ts +3 -3
  399. package/lib/cjs/render/webgl/glsl/PointString.d.ts.map +1 -1
  400. package/lib/cjs/render/webgl/glsl/PointString.js +6 -6
  401. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  402. package/lib/cjs/render/webgl/glsl/Polyline.d.ts +3 -3
  403. package/lib/cjs/render/webgl/glsl/Polyline.d.ts.map +1 -1
  404. package/lib/cjs/render/webgl/glsl/Polyline.js +6 -21
  405. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  406. package/lib/cjs/render/webgl/glsl/Surface.d.ts +2 -2
  407. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  408. package/lib/cjs/render/webgl/glsl/Surface.js +50 -34
  409. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  410. package/lib/cjs/render/webgl/glsl/Vertex.d.ts +3 -3
  411. package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
  412. package/lib/cjs/render/webgl/glsl/Vertex.js +143 -57
  413. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  414. package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
  415. package/lib/cjs/tile/ClassifierTileTree.js +3 -4
  416. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  417. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts +2 -0
  418. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  419. package/lib/cjs/tile/DisclosedTileTreeSet.js +1 -0
  420. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  421. package/lib/cjs/tile/DynamicIModelTile.js +4 -2
  422. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  423. package/lib/cjs/tile/GltfReader.d.ts +19 -9
  424. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  425. package/lib/cjs/tile/GltfReader.js +24 -7
  426. package/lib/cjs/tile/GltfReader.js.map +1 -1
  427. package/lib/cjs/tile/IModelTile.js +1 -1
  428. package/lib/cjs/tile/IModelTile.js.map +1 -1
  429. package/lib/cjs/tile/IModelTileRequestChannels.d.ts +3 -3
  430. package/lib/cjs/tile/IModelTileRequestChannels.d.ts.map +1 -1
  431. package/lib/cjs/tile/IModelTileRequestChannels.js +7 -11
  432. package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
  433. package/lib/cjs/tile/IModelTileTree.d.ts +3 -3
  434. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  435. package/lib/cjs/tile/IModelTileTree.js +1 -1
  436. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  437. package/lib/cjs/tile/ImdlReader.d.ts +2 -0
  438. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  439. package/lib/cjs/tile/ImdlReader.js +2 -0
  440. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  441. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
  442. package/lib/cjs/tile/OPCFormatInterpreter.js +1 -2
  443. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  444. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  445. package/lib/cjs/tile/PrimaryTileTree.js +4 -4
  446. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  447. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -1
  448. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  449. package/lib/cjs/tile/RealityTileLoader.js +34 -6
  450. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  451. package/lib/cjs/tile/Tile.d.ts +5 -0
  452. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  453. package/lib/cjs/tile/Tile.js +5 -0
  454. package/lib/cjs/tile/Tile.js.map +1 -1
  455. package/lib/cjs/tile/TileAdmin.d.ts +18 -1
  456. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  457. package/lib/cjs/tile/TileAdmin.js +26 -19
  458. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  459. package/lib/cjs/tile/TileContent.d.ts +1 -0
  460. package/lib/cjs/tile/TileContent.d.ts.map +1 -1
  461. package/lib/cjs/tile/TileContent.js.map +1 -1
  462. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  463. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  464. package/lib/cjs/tile/TileDrawArgs.js +1 -0
  465. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  466. package/lib/cjs/tile/TileParams.d.ts +1 -0
  467. package/lib/cjs/tile/TileParams.d.ts.map +1 -1
  468. package/lib/cjs/tile/TileParams.js.map +1 -1
  469. package/lib/cjs/tile/TileRequest.d.ts +1 -0
  470. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  471. package/lib/cjs/tile/TileRequest.js +1 -0
  472. package/lib/cjs/tile/TileRequest.js.map +1 -1
  473. package/lib/cjs/tile/TileRequestChannel.d.ts +2 -0
  474. package/lib/cjs/tile/TileRequestChannel.d.ts.map +1 -1
  475. package/lib/cjs/tile/TileRequestChannel.js +2 -0
  476. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  477. package/lib/cjs/tile/TileRequestChannels.d.ts +1 -4
  478. package/lib/cjs/tile/TileRequestChannels.d.ts.map +1 -1
  479. package/lib/cjs/tile/TileRequestChannels.js +2 -6
  480. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  481. package/lib/cjs/tile/TileTree.d.ts +2 -0
  482. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  483. package/lib/cjs/tile/TileTree.js +2 -0
  484. package/lib/cjs/tile/TileTree.js.map +1 -1
  485. package/lib/cjs/tile/TileTreeOwner.d.ts +1 -0
  486. package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
  487. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  488. package/lib/cjs/tile/TileTreeParams.d.ts +1 -0
  489. package/lib/cjs/tile/TileTreeParams.d.ts.map +1 -1
  490. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  491. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  492. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  493. package/lib/cjs/tile/TileTreeReference.js +2 -0
  494. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  495. package/lib/cjs/tile/TileTreeSupplier.d.ts +1 -0
  496. package/lib/cjs/tile/TileTreeSupplier.d.ts.map +1 -1
  497. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  498. package/lib/cjs/tile/TileUsageMarker.d.ts +1 -0
  499. package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
  500. package/lib/cjs/tile/TileUsageMarker.js +1 -0
  501. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  502. package/lib/cjs/tile/TiledGraphicsProvider.d.ts +1 -0
  503. package/lib/cjs/tile/TiledGraphicsProvider.d.ts.map +1 -1
  504. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  505. package/lib/cjs/tile/internal.d.ts +0 -2
  506. package/lib/cjs/tile/internal.d.ts.map +1 -1
  507. package/lib/cjs/tile/internal.js +0 -2
  508. package/lib/cjs/tile/internal.js.map +1 -1
  509. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +2 -1
  510. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  511. package/lib/cjs/tile/map/ArcGisUtilities.js +31 -20
  512. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  513. package/lib/cjs/tile/map/BingElevation.d.ts +1 -0
  514. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  515. package/lib/cjs/tile/map/BingElevation.js +1 -0
  516. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  517. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
  518. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  519. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +50 -27
  520. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  521. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -1
  522. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  523. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +12 -10
  524. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  525. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -9
  526. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -1
  527. package/lib/cjs/tile/map/MapLayerAuthentication.js +0 -8
  528. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  529. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +24 -6
  530. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  531. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +28 -7
  532. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  533. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  534. package/lib/cjs/tile/map/MapLayerImageryFormats.js +1 -3
  535. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  536. package/lib/cjs/tile/map/MapLayerSources.d.ts +1 -1
  537. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  538. package/lib/cjs/tile/map/MapLayerSources.js +1 -1
  539. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  540. package/lib/cjs/tile/map/MapTile.js +2 -2
  541. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  542. package/lib/cjs/tile/map/MapTileLoader.js +1 -1
  543. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  544. package/lib/cjs/tile/map/MapTileTree.js +2 -2
  545. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  546. package/lib/cjs/tile/map/WmsCapabilities.d.ts +3 -2
  547. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  548. package/lib/cjs/tile/map/WmsCapabilities.js +11 -10
  549. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  550. package/lib/cjs/tools/ClipViewTool.d.ts +5 -3
  551. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  552. package/lib/cjs/tools/ClipViewTool.js +4 -3
  553. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  554. package/lib/cjs/tools/EditManipulator.d.ts +1 -0
  555. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  556. package/lib/cjs/tools/EditManipulator.js +1 -0
  557. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  558. package/lib/cjs/tools/EventController.d.ts +1 -0
  559. package/lib/cjs/tools/EventController.d.ts.map +1 -1
  560. package/lib/cjs/tools/EventController.js +1 -0
  561. package/lib/cjs/tools/EventController.js.map +1 -1
  562. package/lib/cjs/tools/PrimitiveTool.d.ts +4 -0
  563. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  564. package/lib/cjs/tools/PrimitiveTool.js +7 -0
  565. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  566. package/lib/cjs/tools/SelectTool.d.ts +3 -0
  567. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  568. package/lib/cjs/tools/SelectTool.js +3 -0
  569. package/lib/cjs/tools/SelectTool.js.map +1 -1
  570. package/lib/cjs/tools/Tool.d.ts +41 -6
  571. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  572. package/lib/cjs/tools/Tool.js +27 -4
  573. package/lib/cjs/tools/Tool.js.map +1 -1
  574. package/lib/cjs/tools/ToolAdmin.d.ts +16 -22
  575. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  576. package/lib/cjs/tools/ToolAdmin.js +47 -8
  577. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  578. package/lib/cjs/tools/ToolAssistance.d.ts +7 -0
  579. package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
  580. package/lib/cjs/tools/ToolAssistance.js +3 -0
  581. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  582. package/lib/cjs/tools/ToolSettings.d.ts +3 -0
  583. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  584. package/lib/cjs/tools/ToolSettings.js +3 -0
  585. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  586. package/lib/cjs/tools/ViewTool.d.ts +3 -1
  587. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  588. package/lib/cjs/tools/ViewTool.js +9 -5
  589. package/lib/cjs/tools/ViewTool.js.map +1 -1
  590. package/lib/esm/AccuDraw.d.ts +2 -0
  591. package/lib/esm/AccuDraw.d.ts.map +1 -1
  592. package/lib/esm/AccuDraw.js +2 -0
  593. package/lib/esm/AccuDraw.js.map +1 -1
  594. package/lib/esm/AccuSnap.d.ts +1 -0
  595. package/lib/esm/AccuSnap.d.ts.map +1 -1
  596. package/lib/esm/AccuSnap.js +1 -0
  597. package/lib/esm/AccuSnap.js.map +1 -1
  598. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  599. package/lib/esm/ApproximateTerrainHeights.js +4 -2
  600. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  601. package/lib/esm/ApproximateTerrainHeightsProps.d.ts +1 -1
  602. package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -1
  603. package/lib/esm/ApproximateTerrainHeightsProps.js +1 -1
  604. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  605. package/lib/esm/AuxCoordSys.d.ts +12 -2
  606. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  607. package/lib/esm/AuxCoordSys.js +12 -2
  608. package/lib/esm/AuxCoordSys.js.map +1 -1
  609. package/lib/esm/BingLocation.d.ts +1 -0
  610. package/lib/esm/BingLocation.d.ts.map +1 -1
  611. package/lib/esm/BingLocation.js +1 -0
  612. package/lib/esm/BingLocation.js.map +1 -1
  613. package/lib/esm/BriefcaseConnection.d.ts +35 -1
  614. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  615. package/lib/esm/BriefcaseConnection.js +50 -0
  616. package/lib/esm/BriefcaseConnection.js.map +1 -1
  617. package/lib/esm/CategorySelectorState.d.ts +1 -0
  618. package/lib/esm/CategorySelectorState.d.ts.map +1 -1
  619. package/lib/esm/CategorySelectorState.js +1 -0
  620. package/lib/esm/CategorySelectorState.js.map +1 -1
  621. package/lib/esm/ChangeFlags.d.ts +1 -0
  622. package/lib/esm/ChangeFlags.d.ts.map +1 -1
  623. package/lib/esm/ChangeFlags.js +1 -0
  624. package/lib/esm/ChangeFlags.js.map +1 -1
  625. package/lib/esm/ContextRealityModelState.d.ts +1 -0
  626. package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
  627. package/lib/esm/ContextRealityModelState.js +1 -0
  628. package/lib/esm/ContextRealityModelState.js.map +1 -1
  629. package/lib/esm/CoordSystem.d.ts +1 -0
  630. package/lib/esm/CoordSystem.d.ts.map +1 -1
  631. package/lib/esm/CoordSystem.js +1 -0
  632. package/lib/esm/CoordSystem.js.map +1 -1
  633. package/lib/esm/DisplayStyleState.d.ts +4 -0
  634. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  635. package/lib/esm/DisplayStyleState.js +9 -4
  636. package/lib/esm/DisplayStyleState.js.map +1 -1
  637. package/lib/esm/DrawingViewState.d.ts +5 -2
  638. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  639. package/lib/esm/DrawingViewState.js +34 -3
  640. package/lib/esm/DrawingViewState.js.map +1 -1
  641. package/lib/esm/ElementLocateManager.d.ts +23 -5
  642. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  643. package/lib/esm/ElementLocateManager.js +19 -4
  644. package/lib/esm/ElementLocateManager.js.map +1 -1
  645. package/lib/esm/EmphasizeElements.d.ts +1 -0
  646. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  647. package/lib/esm/EmphasizeElements.js +1 -0
  648. package/lib/esm/EmphasizeElements.js.map +1 -1
  649. package/lib/esm/EntityState.d.ts +2 -0
  650. package/lib/esm/EntityState.d.ts.map +1 -1
  651. package/lib/esm/EntityState.js +2 -0
  652. package/lib/esm/EntityState.js.map +1 -1
  653. package/lib/esm/FeatureOverrideProvider.d.ts +1 -0
  654. package/lib/esm/FeatureOverrideProvider.d.ts.map +1 -1
  655. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  656. package/lib/esm/FlashSettings.d.ts +3 -0
  657. package/lib/esm/FlashSettings.d.ts.map +1 -1
  658. package/lib/esm/FlashSettings.js +2 -0
  659. package/lib/esm/FlashSettings.js.map +1 -1
  660. package/lib/esm/FrontendHubAccess.d.ts +4 -1
  661. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  662. package/lib/esm/FrontendHubAccess.js.map +1 -1
  663. package/lib/esm/FrontendLoggerCategory.d.ts +6 -1
  664. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  665. package/lib/esm/FrontendLoggerCategory.js +5 -0
  666. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  667. package/lib/esm/FrustumAnimator.d.ts +2 -0
  668. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  669. package/lib/esm/FrustumAnimator.js +2 -0
  670. package/lib/esm/FrustumAnimator.js.map +1 -1
  671. package/lib/esm/FuzzySearch.d.ts +1 -0
  672. package/lib/esm/FuzzySearch.d.ts.map +1 -1
  673. package/lib/esm/FuzzySearch.js.map +1 -1
  674. package/lib/esm/GlobeAnimator.d.ts +1 -0
  675. package/lib/esm/GlobeAnimator.d.ts.map +1 -1
  676. package/lib/esm/GlobeAnimator.js +1 -0
  677. package/lib/esm/GlobeAnimator.js.map +1 -1
  678. package/lib/esm/HitDetail.d.ts +26 -5
  679. package/lib/esm/HitDetail.d.ts.map +1 -1
  680. package/lib/esm/HitDetail.js +26 -5
  681. package/lib/esm/HitDetail.js.map +1 -1
  682. package/lib/esm/IModelApp.d.ts +9 -0
  683. package/lib/esm/IModelApp.d.ts.map +1 -1
  684. package/lib/esm/IModelApp.js +37 -22
  685. package/lib/esm/IModelApp.js.map +1 -1
  686. package/lib/esm/IModelConnection.d.ts +11 -2
  687. package/lib/esm/IModelConnection.d.ts.map +1 -1
  688. package/lib/esm/IModelConnection.js +23 -2
  689. package/lib/esm/IModelConnection.js.map +1 -1
  690. package/lib/esm/ImageUtil.d.ts +15 -2
  691. package/lib/esm/ImageUtil.d.ts.map +1 -1
  692. package/lib/esm/ImageUtil.js +19 -4
  693. package/lib/esm/ImageUtil.js.map +1 -1
  694. package/lib/esm/IpcApp.d.ts +1 -0
  695. package/lib/esm/IpcApp.d.ts.map +1 -1
  696. package/lib/esm/IpcApp.js +1 -0
  697. package/lib/esm/IpcApp.js.map +1 -1
  698. package/lib/esm/MarginPercent.d.ts +1 -0
  699. package/lib/esm/MarginPercent.d.ts.map +1 -1
  700. package/lib/esm/MarginPercent.js +1 -0
  701. package/lib/esm/MarginPercent.js.map +1 -1
  702. package/lib/esm/Marker.d.ts +16 -3
  703. package/lib/esm/Marker.d.ts.map +1 -1
  704. package/lib/esm/Marker.js +3 -0
  705. package/lib/esm/Marker.js.map +1 -1
  706. package/lib/esm/ModelSelectorState.d.ts +1 -0
  707. package/lib/esm/ModelSelectorState.d.ts.map +1 -1
  708. package/lib/esm/ModelSelectorState.js +1 -0
  709. package/lib/esm/ModelSelectorState.js.map +1 -1
  710. package/lib/esm/ModelState.d.ts +10 -0
  711. package/lib/esm/ModelState.d.ts.map +1 -1
  712. package/lib/esm/ModelState.js +10 -0
  713. package/lib/esm/ModelState.js.map +1 -1
  714. package/lib/esm/NotificationManager.d.ts +11 -0
  715. package/lib/esm/NotificationManager.d.ts.map +1 -1
  716. package/lib/esm/NotificationManager.js +10 -0
  717. package/lib/esm/NotificationManager.js.map +1 -1
  718. package/lib/esm/PerModelCategoryVisibility.d.ts +1 -0
  719. package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
  720. package/lib/esm/PerModelCategoryVisibility.js +1 -0
  721. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  722. package/lib/esm/SelectionSet.d.ts +7 -0
  723. package/lib/esm/SelectionSet.d.ts.map +1 -1
  724. package/lib/esm/SelectionSet.js +3 -0
  725. package/lib/esm/SelectionSet.js.map +1 -1
  726. package/lib/esm/SheetViewState.d.ts +6 -5
  727. package/lib/esm/SheetViewState.d.ts.map +1 -1
  728. package/lib/esm/SheetViewState.js +59 -7
  729. package/lib/esm/SheetViewState.js.map +1 -1
  730. package/lib/esm/SpatialViewState.d.ts +7 -2
  731. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  732. package/lib/esm/SpatialViewState.js +18 -4
  733. package/lib/esm/SpatialViewState.js.map +1 -1
  734. package/lib/esm/Sprites.d.ts +3 -0
  735. package/lib/esm/Sprites.d.ts.map +1 -1
  736. package/lib/esm/Sprites.js +3 -0
  737. package/lib/esm/Sprites.js.map +1 -1
  738. package/lib/esm/StandardView.d.ts +1 -0
  739. package/lib/esm/StandardView.d.ts.map +1 -1
  740. package/lib/esm/StandardView.js +1 -0
  741. package/lib/esm/StandardView.js.map +1 -1
  742. package/lib/esm/SubCategoriesCache.d.ts +14 -7
  743. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  744. package/lib/esm/SubCategoriesCache.js +37 -9
  745. package/lib/esm/SubCategoriesCache.js.map +1 -1
  746. package/lib/esm/TentativePoint.d.ts +4 -1
  747. package/lib/esm/TentativePoint.d.ts.map +1 -1
  748. package/lib/esm/TentativePoint.js +4 -1
  749. package/lib/esm/TentativePoint.js.map +1 -1
  750. package/lib/esm/Tiles.d.ts +1 -0
  751. package/lib/esm/Tiles.d.ts.map +1 -1
  752. package/lib/esm/Tiles.js +1 -0
  753. package/lib/esm/Tiles.js.map +1 -1
  754. package/lib/esm/ViewAnimation.d.ts +6 -0
  755. package/lib/esm/ViewAnimation.d.ts.map +1 -1
  756. package/lib/esm/ViewAnimation.js.map +1 -1
  757. package/lib/esm/ViewCreator2d.d.ts +2 -0
  758. package/lib/esm/ViewCreator2d.d.ts.map +1 -1
  759. package/lib/esm/ViewCreator2d.js +1 -0
  760. package/lib/esm/ViewCreator2d.js.map +1 -1
  761. package/lib/esm/ViewCreator3d.d.ts +2 -8
  762. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  763. package/lib/esm/ViewCreator3d.js +12 -38
  764. package/lib/esm/ViewCreator3d.js.map +1 -1
  765. package/lib/esm/ViewGlobalLocation.d.ts +3 -0
  766. package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
  767. package/lib/esm/ViewGlobalLocation.js +1 -0
  768. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  769. package/lib/esm/ViewManager.d.ts +3 -0
  770. package/lib/esm/ViewManager.d.ts.map +1 -1
  771. package/lib/esm/ViewManager.js +2 -0
  772. package/lib/esm/ViewManager.js.map +1 -1
  773. package/lib/esm/ViewPose.d.ts +1 -0
  774. package/lib/esm/ViewPose.d.ts.map +1 -1
  775. package/lib/esm/ViewPose.js +1 -0
  776. package/lib/esm/ViewPose.js.map +1 -1
  777. package/lib/esm/ViewRect.d.ts +1 -0
  778. package/lib/esm/ViewRect.d.ts.map +1 -1
  779. package/lib/esm/ViewRect.js +1 -0
  780. package/lib/esm/ViewRect.js.map +1 -1
  781. package/lib/esm/ViewState.d.ts +17 -2
  782. package/lib/esm/ViewState.d.ts.map +1 -1
  783. package/lib/esm/ViewState.js +41 -10
  784. package/lib/esm/ViewState.js.map +1 -1
  785. package/lib/esm/ViewStatus.d.ts +1 -0
  786. package/lib/esm/ViewStatus.d.ts.map +1 -1
  787. package/lib/esm/ViewStatus.js +1 -0
  788. package/lib/esm/ViewStatus.js.map +1 -1
  789. package/lib/esm/ViewingSpace.d.ts +1 -0
  790. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  791. package/lib/esm/ViewingSpace.js +1 -0
  792. package/lib/esm/ViewingSpace.js.map +1 -1
  793. package/lib/esm/Viewport.d.ts +6 -2
  794. package/lib/esm/Viewport.d.ts.map +1 -1
  795. package/lib/esm/Viewport.js +12 -4
  796. package/lib/esm/Viewport.js.map +1 -1
  797. package/lib/esm/ViewportSync.d.ts +119 -0
  798. package/lib/esm/ViewportSync.d.ts.map +1 -0
  799. package/lib/esm/ViewportSync.js +177 -0
  800. package/lib/esm/ViewportSync.js.map +1 -0
  801. package/lib/esm/core-frontend.d.ts +10 -6
  802. package/lib/esm/core-frontend.d.ts.map +1 -1
  803. package/lib/esm/core-frontend.js +11 -6
  804. package/lib/esm/core-frontend.js.map +1 -1
  805. package/lib/esm/extension/Extension.d.ts +24 -15
  806. package/lib/esm/extension/Extension.d.ts.map +1 -1
  807. package/lib/esm/extension/Extension.js +1 -7
  808. package/lib/esm/extension/Extension.js.map +1 -1
  809. package/lib/esm/extension/ExtensionAdmin.d.ts +21 -44
  810. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  811. package/lib/esm/extension/ExtensionAdmin.js +55 -64
  812. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  813. package/lib/esm/extension/ExtensionRuntime.js +239 -59
  814. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  815. package/lib/esm/extension/providers/ExtensionLoadScript.d.ts +10 -0
  816. package/lib/esm/extension/providers/ExtensionLoadScript.d.ts.map +1 -0
  817. package/lib/esm/extension/providers/ExtensionLoadScript.js +51 -0
  818. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -0
  819. package/lib/esm/extension/providers/ExtensionServiceClient.d.ts +52 -0
  820. package/lib/esm/extension/providers/ExtensionServiceClient.d.ts.map +1 -0
  821. package/lib/esm/extension/providers/ExtensionServiceClient.js +127 -0
  822. package/lib/esm/extension/providers/ExtensionServiceClient.js.map +1 -0
  823. package/lib/esm/extension/providers/LocalExtensionProvider.d.ts +26 -0
  824. package/lib/esm/extension/providers/LocalExtensionProvider.d.ts.map +1 -0
  825. package/lib/esm/extension/providers/LocalExtensionProvider.js +20 -0
  826. package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -0
  827. package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts +36 -0
  828. package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts.map +1 -0
  829. package/lib/esm/extension/providers/RemoteExtensionProvider.js +49 -0
  830. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -0
  831. package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts +37 -0
  832. package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts.map +1 -0
  833. package/lib/esm/extension/providers/ServiceExtensionProvider.js +80 -0
  834. package/lib/esm/extension/providers/ServiceExtensionProvider.js.map +1 -0
  835. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  836. package/lib/esm/quantity-formatting/QuantityFormatter.js +3 -2
  837. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  838. package/lib/esm/render/CanvasDecoration.d.ts +2 -0
  839. package/lib/esm/render/CanvasDecoration.d.ts.map +1 -1
  840. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  841. package/lib/esm/render/Decorations.d.ts +1 -0
  842. package/lib/esm/render/Decorations.d.ts.map +1 -1
  843. package/lib/esm/render/Decorations.js +1 -0
  844. package/lib/esm/render/Decorations.js.map +1 -1
  845. package/lib/esm/render/FeatureSymbology.d.ts +1 -0
  846. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  847. package/lib/esm/render/FeatureSymbology.js +1 -0
  848. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  849. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  850. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  851. package/lib/esm/render/GraphicBranch.js +1 -0
  852. package/lib/esm/render/GraphicBranch.js.map +1 -1
  853. package/lib/esm/render/GraphicBuilder.d.ts +33 -2
  854. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  855. package/lib/esm/render/GraphicBuilder.js +27 -1
  856. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  857. package/lib/esm/render/GraphicPrimitive.d.ts +14 -0
  858. package/lib/esm/render/GraphicPrimitive.d.ts.map +1 -1
  859. package/lib/esm/render/GraphicPrimitive.js.map +1 -1
  860. package/lib/esm/render/ParticleCollectionBuilder.d.ts +3 -0
  861. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  862. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  863. package/lib/esm/render/Pixel.d.ts +1 -0
  864. package/lib/esm/render/Pixel.d.ts.map +1 -1
  865. package/lib/esm/render/Pixel.js +1 -0
  866. package/lib/esm/render/Pixel.js.map +1 -1
  867. package/lib/esm/render/RenderClipVolume.d.ts +1 -0
  868. package/lib/esm/render/RenderClipVolume.d.ts.map +1 -1
  869. package/lib/esm/render/RenderClipVolume.js +1 -0
  870. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  871. package/lib/esm/render/RenderGraphic.d.ts +3 -0
  872. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  873. package/lib/esm/render/RenderGraphic.js +2 -0
  874. package/lib/esm/render/RenderGraphic.js.map +1 -1
  875. package/lib/esm/render/RenderSystem.d.ts +4 -3
  876. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  877. package/lib/esm/render/RenderSystem.js +4 -3
  878. package/lib/esm/render/RenderSystem.js.map +1 -1
  879. package/lib/esm/render/RenderTexture.d.ts +7 -0
  880. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  881. package/lib/esm/render/RenderTexture.js.map +1 -1
  882. package/lib/esm/render/Scene.d.ts +1 -0
  883. package/lib/esm/render/Scene.d.ts.map +1 -1
  884. package/lib/esm/render/Scene.js +1 -0
  885. package/lib/esm/render/Scene.js.map +1 -1
  886. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  887. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  888. package/lib/esm/render/ScreenSpaceEffectBuilder.js +2 -0
  889. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  890. package/lib/esm/render/primitives/VertexKey.d.ts +4 -2
  891. package/lib/esm/render/primitives/VertexKey.d.ts.map +1 -1
  892. package/lib/esm/render/primitives/VertexKey.js +24 -13
  893. package/lib/esm/render/primitives/VertexKey.js.map +1 -1
  894. package/lib/esm/render/primitives/VertexTable.d.ts +1 -1
  895. package/lib/esm/render/primitives/VertexTable.js +30 -2
  896. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  897. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +12 -4
  898. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  899. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +20 -15
  900. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  901. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +2 -1
  902. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  903. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +7 -2
  904. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  905. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts +14 -12
  906. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  907. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js +26 -25
  908. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  909. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +8 -8
  910. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  911. package/lib/esm/render/primitives/mesh/MeshBuilder.js +15 -15
  912. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  913. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts +11 -6
  914. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  915. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +13 -16
  916. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  917. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
  918. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  919. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +6 -2
  920. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  921. package/lib/esm/render/webgl/AttributeMap.js +1 -1
  922. package/lib/esm/render/webgl/CachedGeometry.d.ts +7 -1
  923. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  924. package/lib/esm/render/webgl/CachedGeometry.js +19 -9
  925. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  926. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  927. package/lib/esm/render/webgl/DrawCommand.js +2 -1
  928. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  929. package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -0
  930. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  931. package/lib/esm/render/webgl/InstancedGeometry.js +1 -0
  932. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  933. package/lib/esm/render/webgl/RealityMesh.d.ts +14 -11
  934. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  935. package/lib/esm/render/webgl/RealityMesh.js +27 -18
  936. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  937. package/lib/esm/render/webgl/SceneCompositor.d.ts +2 -0
  938. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  939. package/lib/esm/render/webgl/SceneCompositor.js +220 -53
  940. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  941. package/lib/esm/render/webgl/ShaderBuilder.d.ts +5 -4
  942. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  943. package/lib/esm/render/webgl/ShaderBuilder.js +7 -6
  944. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  945. package/lib/esm/render/webgl/System.d.ts +4 -4
  946. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  947. package/lib/esm/render/webgl/System.js +6 -6
  948. package/lib/esm/render/webgl/System.js.map +1 -1
  949. package/lib/esm/render/webgl/Target.d.ts +6 -1
  950. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  951. package/lib/esm/render/webgl/Target.js +64 -13
  952. package/lib/esm/render/webgl/Target.js.map +1 -1
  953. package/lib/esm/render/webgl/Technique.d.ts +4 -2
  954. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  955. package/lib/esm/render/webgl/Technique.js +166 -135
  956. package/lib/esm/render/webgl/Technique.js.map +1 -1
  957. package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -3
  958. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  959. package/lib/esm/render/webgl/TechniqueFlags.js +17 -4
  960. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  961. package/lib/esm/render/webgl/TechniqueId.d.ts +8 -7
  962. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  963. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  964. package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
  965. package/lib/esm/render/webgl/glsl/Animation.js +2 -0
  966. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  967. package/lib/esm/render/webgl/glsl/Blur.d.ts +2 -1
  968. package/lib/esm/render/webgl/glsl/Blur.d.ts.map +1 -1
  969. package/lib/esm/render/webgl/glsl/Blur.js +38 -6
  970. package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
  971. package/lib/esm/render/webgl/glsl/Color.d.ts.map +1 -1
  972. package/lib/esm/render/webgl/glsl/Color.js +8 -7
  973. package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
  974. package/lib/esm/render/webgl/glsl/CopyStencil.js +1 -1
  975. package/lib/esm/render/webgl/glsl/Decode.d.ts +2 -1
  976. package/lib/esm/render/webgl/glsl/Decode.d.ts.map +1 -1
  977. package/lib/esm/render/webgl/glsl/Decode.js +15 -1
  978. package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
  979. package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -2
  980. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  981. package/lib/esm/render/webgl/glsl/Edge.js +7 -20
  982. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  983. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  984. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +1 -3
  985. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  986. package/lib/esm/render/webgl/glsl/PointString.d.ts +3 -3
  987. package/lib/esm/render/webgl/glsl/PointString.d.ts.map +1 -1
  988. package/lib/esm/render/webgl/glsl/PointString.js +6 -6
  989. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  990. package/lib/esm/render/webgl/glsl/Polyline.d.ts +3 -3
  991. package/lib/esm/render/webgl/glsl/Polyline.d.ts.map +1 -1
  992. package/lib/esm/render/webgl/glsl/Polyline.js +7 -22
  993. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  994. package/lib/esm/render/webgl/glsl/Surface.d.ts +2 -2
  995. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  996. package/lib/esm/render/webgl/glsl/Surface.js +51 -35
  997. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  998. package/lib/esm/render/webgl/glsl/Vertex.d.ts +3 -3
  999. package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
  1000. package/lib/esm/render/webgl/glsl/Vertex.js +142 -56
  1001. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  1002. package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
  1003. package/lib/esm/tile/ClassifierTileTree.js +3 -4
  1004. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  1005. package/lib/esm/tile/DisclosedTileTreeSet.d.ts +2 -0
  1006. package/lib/esm/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  1007. package/lib/esm/tile/DisclosedTileTreeSet.js +1 -0
  1008. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  1009. package/lib/esm/tile/DynamicIModelTile.js +4 -2
  1010. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  1011. package/lib/esm/tile/GltfReader.d.ts +19 -9
  1012. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  1013. package/lib/esm/tile/GltfReader.js +23 -6
  1014. package/lib/esm/tile/GltfReader.js.map +1 -1
  1015. package/lib/esm/tile/IModelTile.js +1 -1
  1016. package/lib/esm/tile/IModelTile.js.map +1 -1
  1017. package/lib/esm/tile/IModelTileRequestChannels.d.ts +3 -3
  1018. package/lib/esm/tile/IModelTileRequestChannels.d.ts.map +1 -1
  1019. package/lib/esm/tile/IModelTileRequestChannels.js +7 -11
  1020. package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
  1021. package/lib/esm/tile/IModelTileTree.d.ts +3 -3
  1022. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  1023. package/lib/esm/tile/IModelTileTree.js +1 -1
  1024. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  1025. package/lib/esm/tile/ImdlReader.d.ts +2 -0
  1026. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  1027. package/lib/esm/tile/ImdlReader.js +2 -0
  1028. package/lib/esm/tile/ImdlReader.js.map +1 -1
  1029. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
  1030. package/lib/esm/tile/OPCFormatInterpreter.js +2 -3
  1031. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  1032. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  1033. package/lib/esm/tile/PrimaryTileTree.js +5 -5
  1034. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  1035. package/lib/esm/tile/RealityTileLoader.d.ts +1 -1
  1036. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  1037. package/lib/esm/tile/RealityTileLoader.js +36 -8
  1038. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  1039. package/lib/esm/tile/Tile.d.ts +5 -0
  1040. package/lib/esm/tile/Tile.d.ts.map +1 -1
  1041. package/lib/esm/tile/Tile.js +5 -0
  1042. package/lib/esm/tile/Tile.js.map +1 -1
  1043. package/lib/esm/tile/TileAdmin.d.ts +18 -1
  1044. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  1045. package/lib/esm/tile/TileAdmin.js +27 -20
  1046. package/lib/esm/tile/TileAdmin.js.map +1 -1
  1047. package/lib/esm/tile/TileContent.d.ts +1 -0
  1048. package/lib/esm/tile/TileContent.d.ts.map +1 -1
  1049. package/lib/esm/tile/TileContent.js.map +1 -1
  1050. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  1051. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  1052. package/lib/esm/tile/TileDrawArgs.js +1 -0
  1053. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  1054. package/lib/esm/tile/TileParams.d.ts +1 -0
  1055. package/lib/esm/tile/TileParams.d.ts.map +1 -1
  1056. package/lib/esm/tile/TileParams.js.map +1 -1
  1057. package/lib/esm/tile/TileRequest.d.ts +1 -0
  1058. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  1059. package/lib/esm/tile/TileRequest.js +1 -0
  1060. package/lib/esm/tile/TileRequest.js.map +1 -1
  1061. package/lib/esm/tile/TileRequestChannel.d.ts +2 -0
  1062. package/lib/esm/tile/TileRequestChannel.d.ts.map +1 -1
  1063. package/lib/esm/tile/TileRequestChannel.js +2 -0
  1064. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  1065. package/lib/esm/tile/TileRequestChannels.d.ts +1 -4
  1066. package/lib/esm/tile/TileRequestChannels.d.ts.map +1 -1
  1067. package/lib/esm/tile/TileRequestChannels.js +2 -6
  1068. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  1069. package/lib/esm/tile/TileTree.d.ts +2 -0
  1070. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  1071. package/lib/esm/tile/TileTree.js +2 -0
  1072. package/lib/esm/tile/TileTree.js.map +1 -1
  1073. package/lib/esm/tile/TileTreeOwner.d.ts +1 -0
  1074. package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
  1075. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  1076. package/lib/esm/tile/TileTreeParams.d.ts +1 -0
  1077. package/lib/esm/tile/TileTreeParams.d.ts.map +1 -1
  1078. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  1079. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  1080. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  1081. package/lib/esm/tile/TileTreeReference.js +2 -0
  1082. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  1083. package/lib/esm/tile/TileTreeSupplier.d.ts +1 -0
  1084. package/lib/esm/tile/TileTreeSupplier.d.ts.map +1 -1
  1085. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  1086. package/lib/esm/tile/TileUsageMarker.d.ts +1 -0
  1087. package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
  1088. package/lib/esm/tile/TileUsageMarker.js +1 -0
  1089. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  1090. package/lib/esm/tile/TiledGraphicsProvider.d.ts +1 -0
  1091. package/lib/esm/tile/TiledGraphicsProvider.d.ts.map +1 -1
  1092. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  1093. package/lib/esm/tile/internal.d.ts +0 -2
  1094. package/lib/esm/tile/internal.d.ts.map +1 -1
  1095. package/lib/esm/tile/internal.js +0 -2
  1096. package/lib/esm/tile/internal.js.map +1 -1
  1097. package/lib/esm/tile/map/ArcGisUtilities.d.ts +2 -1
  1098. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  1099. package/lib/esm/tile/map/ArcGisUtilities.js +32 -21
  1100. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  1101. package/lib/esm/tile/map/BingElevation.d.ts +1 -0
  1102. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  1103. package/lib/esm/tile/map/BingElevation.js +1 -0
  1104. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  1105. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
  1106. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  1107. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +51 -28
  1108. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  1109. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -1
  1110. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  1111. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +12 -10
  1112. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  1113. package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -9
  1114. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -1
  1115. package/lib/esm/tile/map/MapLayerAuthentication.js +1 -7
  1116. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  1117. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +24 -6
  1118. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  1119. package/lib/esm/tile/map/MapLayerFormatRegistry.js +28 -7
  1120. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  1121. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  1122. package/lib/esm/tile/map/MapLayerImageryFormats.js +2 -4
  1123. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  1124. package/lib/esm/tile/map/MapLayerSources.d.ts +1 -1
  1125. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  1126. package/lib/esm/tile/map/MapLayerSources.js +1 -1
  1127. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  1128. package/lib/esm/tile/map/MapTile.js +2 -2
  1129. package/lib/esm/tile/map/MapTile.js.map +1 -1
  1130. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  1131. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  1132. package/lib/esm/tile/map/MapTileTree.js +2 -2
  1133. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  1134. package/lib/esm/tile/map/WmsCapabilities.d.ts +3 -2
  1135. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  1136. package/lib/esm/tile/map/WmsCapabilities.js +11 -10
  1137. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  1138. package/lib/esm/tools/ClipViewTool.d.ts +5 -3
  1139. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  1140. package/lib/esm/tools/ClipViewTool.js +4 -3
  1141. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  1142. package/lib/esm/tools/EditManipulator.d.ts +1 -0
  1143. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  1144. package/lib/esm/tools/EditManipulator.js +1 -0
  1145. package/lib/esm/tools/EditManipulator.js.map +1 -1
  1146. package/lib/esm/tools/EventController.d.ts +1 -0
  1147. package/lib/esm/tools/EventController.d.ts.map +1 -1
  1148. package/lib/esm/tools/EventController.js +1 -0
  1149. package/lib/esm/tools/EventController.js.map +1 -1
  1150. package/lib/esm/tools/PrimitiveTool.d.ts +4 -0
  1151. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  1152. package/lib/esm/tools/PrimitiveTool.js +7 -0
  1153. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  1154. package/lib/esm/tools/SelectTool.d.ts +3 -0
  1155. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  1156. package/lib/esm/tools/SelectTool.js +3 -0
  1157. package/lib/esm/tools/SelectTool.js.map +1 -1
  1158. package/lib/esm/tools/Tool.d.ts +41 -6
  1159. package/lib/esm/tools/Tool.d.ts.map +1 -1
  1160. package/lib/esm/tools/Tool.js +27 -4
  1161. package/lib/esm/tools/Tool.js.map +1 -1
  1162. package/lib/esm/tools/ToolAdmin.d.ts +16 -22
  1163. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  1164. package/lib/esm/tools/ToolAdmin.js +48 -9
  1165. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  1166. package/lib/esm/tools/ToolAssistance.d.ts +7 -0
  1167. package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
  1168. package/lib/esm/tools/ToolAssistance.js +3 -0
  1169. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  1170. package/lib/esm/tools/ToolSettings.d.ts +3 -0
  1171. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  1172. package/lib/esm/tools/ToolSettings.js +3 -0
  1173. package/lib/esm/tools/ToolSettings.js.map +1 -1
  1174. package/lib/esm/tools/ViewTool.d.ts +3 -1
  1175. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  1176. package/lib/esm/tools/ViewTool.js +9 -5
  1177. package/lib/esm/tools/ViewTool.js.map +1 -1
  1178. package/package.json +34 -25
  1179. package/lib/cjs/TwoWayViewportSync.d.ts +0 -51
  1180. package/lib/cjs/TwoWayViewportSync.d.ts.map +0 -1
  1181. package/lib/cjs/TwoWayViewportSync.js +0 -87
  1182. package/lib/cjs/TwoWayViewportSync.js.map +0 -1
  1183. package/lib/cjs/extension/ExtensionLoader.d.ts +0 -26
  1184. package/lib/cjs/extension/ExtensionLoader.d.ts.map +0 -1
  1185. package/lib/cjs/extension/ExtensionLoader.js +0 -10
  1186. package/lib/cjs/extension/ExtensionLoader.js.map +0 -1
  1187. package/lib/cjs/extension/extensions.d.ts +0 -19
  1188. package/lib/cjs/extension/extensions.d.ts.map +0 -1
  1189. package/lib/cjs/extension/extensions.js +0 -36
  1190. package/lib/cjs/extension/extensions.js.map +0 -1
  1191. package/lib/cjs/tile/map/ArcGisTokenGenerator.d.ts +0 -35
  1192. package/lib/cjs/tile/map/ArcGisTokenGenerator.d.ts.map +0 -1
  1193. package/lib/cjs/tile/map/ArcGisTokenGenerator.js +0 -116
  1194. package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +0 -1
  1195. package/lib/cjs/tile/map/ArcGisTokenManager.d.ts +0 -13
  1196. package/lib/cjs/tile/map/ArcGisTokenManager.d.ts.map +0 -1
  1197. package/lib/cjs/tile/map/ArcGisTokenManager.js +0 -39
  1198. package/lib/cjs/tile/map/ArcGisTokenManager.js.map +0 -1
  1199. package/lib/esm/TwoWayViewportSync.d.ts +0 -51
  1200. package/lib/esm/TwoWayViewportSync.d.ts.map +0 -1
  1201. package/lib/esm/TwoWayViewportSync.js +0 -82
  1202. package/lib/esm/TwoWayViewportSync.js.map +0 -1
  1203. package/lib/esm/extension/ExtensionLoader.d.ts +0 -26
  1204. package/lib/esm/extension/ExtensionLoader.d.ts.map +0 -1
  1205. package/lib/esm/extension/ExtensionLoader.js +0 -9
  1206. package/lib/esm/extension/ExtensionLoader.js.map +0 -1
  1207. package/lib/esm/extension/extensions.d.ts +0 -19
  1208. package/lib/esm/extension/extensions.d.ts.map +0 -1
  1209. package/lib/esm/extension/extensions.js +0 -24
  1210. package/lib/esm/extension/extensions.js.map +0 -1
  1211. package/lib/esm/tile/map/ArcGisTokenGenerator.d.ts +0 -35
  1212. package/lib/esm/tile/map/ArcGisTokenGenerator.d.ts.map +0 -1
  1213. package/lib/esm/tile/map/ArcGisTokenGenerator.js +0 -112
  1214. package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +0 -1
  1215. package/lib/esm/tile/map/ArcGisTokenManager.d.ts +0 -13
  1216. package/lib/esm/tile/map/ArcGisTokenManager.d.ts.map +0 -1
  1217. package/lib/esm/tile/map/ArcGisTokenManager.js +0 -35
  1218. package/lib/esm/tile/map/ArcGisTokenManager.js.map +0 -1
@@ -7,6 +7,7 @@ import { InputSource } from "./tools/Tool";
7
7
  import { ScreenViewport, Viewport } from "./Viewport";
8
8
  /** The possible actions for which a locate filter can be called.
9
9
  * @public
10
+ * @extensions
10
11
  */
11
12
  export declare enum LocateAction {
12
13
  Identify = 0,
@@ -15,12 +16,16 @@ export declare enum LocateAction {
15
16
  /** Values to return from a locate filter.
16
17
  * Return `Reject` to indicate the element is unacceptable.
17
18
  * @public
19
+ * @extensions
18
20
  */
19
21
  export declare enum LocateFilterStatus {
20
22
  Accept = 0,
21
23
  Reject = 1
22
24
  }
23
- /** @public */
25
+ /**
26
+ * @public
27
+ * @extensions
28
+ */
24
29
  export declare enum SnapStatus {
25
30
  Success = 0,
26
31
  Aborted = 1,
@@ -33,6 +38,7 @@ export declare enum SnapStatus {
33
38
  }
34
39
  /** Options that customize the way element location (i.e. *picking*) works.
35
40
  * @public
41
+ * @extensions
36
42
  */
37
43
  export declare class LocateOptions {
38
44
  /** If true, also test graphics from view decorations. */
@@ -59,7 +65,10 @@ export declare class LocateOptions {
59
65
  setFrom(other: LocateOptions): void;
60
66
  init(): void;
61
67
  }
62
- /** @public */
68
+ /**
69
+ * @public
70
+ * @extensions
71
+ */
63
72
  export declare class LocateResponse {
64
73
  snapStatus: SnapStatus;
65
74
  reason?: string;
@@ -69,11 +78,17 @@ export declare class LocateResponse {
69
78
  /** @internal */
70
79
  setFrom(other: LocateResponse): void;
71
80
  }
72
- /** @public */
81
+ /**
82
+ * @public
83
+ * @extensions
84
+ */
73
85
  export interface HitListHolder {
74
86
  setHitList(list: HitList<HitDetail> | undefined): void;
75
87
  }
76
- /** @public */
88
+ /**
89
+ * @public
90
+ * @extensions
91
+ */
77
92
  export declare class ElementPicker {
78
93
  viewport?: Viewport;
79
94
  readonly pickPointWorld: Point3d;
@@ -93,7 +108,10 @@ export declare class ElementPicker {
93
108
  doPick(vp: ScreenViewport, pickPointWorld: Point3d, pickRadiusView: number, options: LocateOptions): number;
94
109
  testHit(hit: HitDetail, vp: ScreenViewport, pickPointWorld: Point3d, pickRadiusView: number, options: LocateOptions): boolean;
95
110
  }
96
- /** @public */
111
+ /**
112
+ * @public
113
+ * @extensions
114
+ */
97
115
  export declare class ElementLocateManager {
98
116
  hitList?: HitList<HitDetail>;
99
117
  currHit?: HitDetail;
@@ -1 +1 @@
1
- {"version":3,"file":"ElementLocateManager.d.ts","sourceRoot":"","sources":["../../src/ElementLocateManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAW,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAmB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtD;;GAEG;AACH,oBAAY,YAAY;IACtB,QAAQ,IAAI;IACZ,UAAU,IAAI;CACf;AAED;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B,MAAM,IAAI;IACV,MAAM,IAAI;CACX;AAED,cAAc;AACd,oBAAY,UAAU;IACpB,OAAO,IAAI;IACX,OAAO,IAAI;IACX,UAAU,IAAI;IACd,QAAQ,MAAM;IACd,cAAc,MAAM;IACpB,YAAY,MAAM;IAClB,aAAa,MAAM;IACnB,oBAAoB,MAAM;CAC3B;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,yDAAyD;IAClD,gBAAgB,UAAS;IAChC,+DAA+D;IACxD,iBAAiB,UAAS;IACjC,wCAAwC;IACjC,OAAO,SAAM;IACpB,gDAAgD;IACzC,SAAS,YAAuB;IACvC;;;;OAIG;IACI,oBAAoB,UAAS;IACpC;;;OAGG;IACI,8BAA8B,UAAS;IAE9C,yCAAyC;IAClC,KAAK,IAAI,aAAa;IAStB,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAOnC,IAAI;CAKZ;AAED,cAAc;AACd,qBAAa,cAAc;IAClB,UAAU,aAAsB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,SAAM;IAExB,gBAAgB;IACT,KAAK,IAAI,cAAc;IAQ9B,gBAAgB;IACT,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;CAK5C;AAED,cAAc;AACd,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;CACxD;AAED,cAAc;AACd,qBAAa,aAAa;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC3B,SAAgB,cAAc,UAAiB;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAE7B,KAAK;IASZ,kHAAkH;IAC3G,UAAU,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;IAOtD,UAAU,IAAI,SAAS,GAAG,SAAS;IAE1C,wFAAwF;IACjF,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAExC,eAAe,IAAI,IAAI;IAE9B,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACI,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM;IA4E3G,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO;CAMrI;AAED,cAAc;AACd,qBAAa,oBAAoB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAgB,OAAO,gBAAuB;IAC9C,SAAgB,MAAM,gBAAuB;IAE7C,qDAAqD;WACvC,oBAAoB,CAAC,GAAG,EAAE,MAAM;IACvC,aAAa;IACpB,IAAW,cAAc,WAAmB;IAC5C,IAAW,mBAAmB,WAAmB;IAE1C,KAAK,IAAI,IAAI;IACb,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IACpC,UAAU,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI;IACjC,UAAU,IAAI,SAAS,GAAG,SAAS;IAE1C,0FAA0F;IACnF,gBAAgB,IAAI,SAAS,GAAG,SAAS;IAiBnC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqCxG,iBAAiB;IACjB,cAAc;YAOP,SAAS;IAiCV,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,UAAO,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CAYlM"}
1
+ {"version":3,"file":"ElementLocateManager.d.ts","sourceRoot":"","sources":["../../src/ElementLocateManager.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ import { InputSource, InteractiveTool } from "./tools/Tool";
14
14
  import { ViewRect } from "./ViewRect";
15
15
  /** The possible actions for which a locate filter can be called.
16
16
  * @public
17
+ * @extensions
17
18
  */
18
19
  export var LocateAction;
19
20
  (function (LocateAction) {
@@ -23,13 +24,17 @@ export var LocateAction;
23
24
  /** Values to return from a locate filter.
24
25
  * Return `Reject` to indicate the element is unacceptable.
25
26
  * @public
27
+ * @extensions
26
28
  */
27
29
  export var LocateFilterStatus;
28
30
  (function (LocateFilterStatus) {
29
31
  LocateFilterStatus[LocateFilterStatus["Accept"] = 0] = "Accept";
30
32
  LocateFilterStatus[LocateFilterStatus["Reject"] = 1] = "Reject";
31
33
  })(LocateFilterStatus || (LocateFilterStatus = {}));
32
- /** @public */
34
+ /**
35
+ * @public
36
+ * @extensions
37
+ */
33
38
  export var SnapStatus;
34
39
  (function (SnapStatus) {
35
40
  SnapStatus[SnapStatus["Success"] = 0] = "Success";
@@ -43,6 +48,7 @@ export var SnapStatus;
43
48
  })(SnapStatus || (SnapStatus = {}));
44
49
  /** Options that customize the way element location (i.e. *picking*) works.
45
50
  * @public
51
+ * @extensions
46
52
  */
47
53
  export class LocateOptions {
48
54
  constructor() {
@@ -89,7 +95,10 @@ export class LocateOptions {
89
95
  this.hitSource = HitSource.DataPoint;
90
96
  }
91
97
  }
92
- /** @public */
98
+ /**
99
+ * @public
100
+ * @extensions
101
+ */
93
102
  export class LocateResponse {
94
103
  constructor() {
95
104
  this.snapStatus = SnapStatus.Success;
@@ -110,7 +119,10 @@ export class LocateResponse {
110
119
  this.explanation = other.explanation;
111
120
  }
112
121
  }
113
- /** @public */
122
+ /**
123
+ * @public
124
+ * @extensions
125
+ */
114
126
  export class ElementPicker {
115
127
  constructor() {
116
128
  this.pickPointWorld = new Point3d();
@@ -238,7 +250,10 @@ export class ElementPicker {
238
250
  return this.hitList.hits.some((thisHit) => hit.isSameHit(thisHit));
239
251
  }
240
252
  }
241
- /** @public */
253
+ /**
254
+ * @public
255
+ * @extensions
256
+ */
242
257
  export class ElementLocateManager {
243
258
  constructor() {
244
259
  this.options = new LocateOptions();
@@ -1 +1 @@
1
- {"version":3,"file":"ElementLocateManager.js","sourceRoot":"","sources":["../../src/ElementLocateManager.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 { Id64 } from \"@itwin/core-bentley\";\r\nimport { Point2d, Point3d } from \"@itwin/core-geometry\";\r\nimport { HitDetail, HitList, HitPriority, HitSource } from \"./HitDetail\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { Pixel } from \"./render/Pixel\";\r\nimport { InputSource, InteractiveTool } from \"./tools/Tool\";\r\nimport { ScreenViewport, Viewport } from \"./Viewport\";\r\nimport { ViewRect } from \"./ViewRect\";\r\n\r\n/** The possible actions for which a locate filter can be called.\r\n * @public\r\n */\r\nexport enum LocateAction {\r\n Identify = 0,\r\n AutoLocate = 1,\r\n}\r\n\r\n/** Values to return from a locate filter.\r\n * Return `Reject` to indicate the element is unacceptable.\r\n * @public\r\n */\r\nexport enum LocateFilterStatus {\r\n Accept = 0,\r\n Reject = 1,\r\n}\r\n\r\n/** @public */\r\nexport enum SnapStatus {\r\n Success = 0,\r\n Aborted = 1,\r\n NoElements = 2,\r\n Disabled = 100,\r\n NoSnapPossible = 200,\r\n NotSnappable = 300,\r\n FilteredByApp = 600,\r\n FilteredByAppQuietly = 700,\r\n}\r\n\r\n/** Options that customize the way element location (i.e. *picking*) works.\r\n * @public\r\n */\r\nexport class LocateOptions {\r\n /** If true, also test graphics from view decorations. */\r\n public allowDecorations = false;\r\n /** If true, also test graphics with non-locatable flag set. */\r\n public allowNonLocatable = false;\r\n /** Maximum number of hits to return. */\r\n public maxHits = 20;\r\n /** The [[HitSource]] identifying the caller. */\r\n public hitSource = HitSource.DataPoint;\r\n /** If true, also test graphics from an IModelConnection other than the one associated with the Viewport. This can occur if, e.g., a\r\n * [[TiledGraphicsProvider]] is used to display graphics from a different iModel into the [[Viewport]].\r\n * @note If you override this, you must be prepared to properly handle [[HitDetail]]s originating from other IModelConnections.\r\n * @see [[HitDetail.iModel]] and [[HitDetail.isExternalIModelHit]]\r\n */\r\n public allowExternalIModels = false;\r\n /** If true, then the world point of a hit on a model will preserve any transforms applied to the model at display time,\r\n * such as those supplied by a [[ModelDisplayTransformProvider]] or [PlanProjectionSettings.elevation]($common).\r\n * Otherwise, the world point will be multiplied by the inverse of any such transforms to correlate it with the model's true coordinate space.\r\n */\r\n public preserveModelDisplayTransforms = false;\r\n\r\n /** Make a copy of this LocateOptions. */\r\n public clone(): LocateOptions {\r\n const other = new LocateOptions();\r\n other.allowDecorations = this.allowDecorations;\r\n other.allowNonLocatable = this.allowNonLocatable;\r\n other.maxHits = this.maxHits;\r\n other.hitSource = this.hitSource;\r\n other.allowExternalIModels = this.allowExternalIModels;\r\n return other;\r\n }\r\n public setFrom(other: LocateOptions): void {\r\n this.allowDecorations = other.allowDecorations;\r\n this.allowNonLocatable = other.allowNonLocatable;\r\n this.maxHits = other.maxHits;\r\n this.hitSource = other.hitSource;\r\n this.allowExternalIModels = other.allowExternalIModels;\r\n }\r\n public init() {\r\n this.allowDecorations = this.allowNonLocatable = this.allowExternalIModels = false;\r\n this.maxHits = 20;\r\n this.hitSource = HitSource.DataPoint;\r\n }\r\n}\r\n\r\n/** @public */\r\nexport class LocateResponse {\r\n public snapStatus = SnapStatus.Success;\r\n public reason?: string;\r\n public explanation = \"\";\r\n\r\n /** @internal */\r\n public clone(): LocateResponse {\r\n const other = new LocateResponse();\r\n other.snapStatus = this.snapStatus;\r\n other.reason = this.reason;\r\n other.explanation = this.explanation;\r\n return other;\r\n }\r\n\r\n /** @internal */\r\n public setFrom(other: LocateResponse): void {\r\n this.snapStatus = other.snapStatus;\r\n this.reason = other.reason;\r\n this.explanation = other.explanation;\r\n }\r\n}\r\n\r\n/** @public */\r\nexport interface HitListHolder {\r\n setHitList(list: HitList<HitDetail> | undefined): void;\r\n}\r\n\r\n/** @public */\r\nexport class ElementPicker {\r\n public viewport?: Viewport;\r\n public readonly pickPointWorld = new Point3d();\r\n public hitList?: HitList<HitDetail>;\r\n\r\n public empty() {\r\n this.pickPointWorld.setZero();\r\n this.viewport = undefined;\r\n if (this.hitList)\r\n this.hitList.empty();\r\n else\r\n this.hitList = new HitList<HitDetail>();\r\n }\r\n\r\n /** return the HitList for the last Pick performed. Optionally allows the caller to take ownership of the list. */\r\n public getHitList(takeOwnership: boolean): HitList<HitDetail> {\r\n const list = this.hitList!;\r\n if (takeOwnership)\r\n this.hitList = undefined;\r\n return list;\r\n }\r\n\r\n public getNextHit(): HitDetail | undefined { return this.hitList ? this.hitList.getNextHit() : undefined; }\r\n\r\n /** Return a hit from the list of hits created the last time pickElements was called. */\r\n public getHit(i: number): HitDetail | undefined { return this.hitList ? this.hitList.getHit(i) : undefined; }\r\n\r\n public resetCurrentHit(): void { if (this.hitList) this.hitList.resetCurrentHit(); }\r\n\r\n private getPixelPriority(pixel: Pixel.Data) {\r\n switch (pixel.type) {\r\n case Pixel.GeometryType.Surface:\r\n return Pixel.Planarity.Planar === pixel.planarity ? HitPriority.PlanarSurface : HitPriority.NonPlanarSurface;\r\n case Pixel.GeometryType.Linear:\r\n return HitPriority.WireEdge;\r\n case Pixel.GeometryType.Edge:\r\n return Pixel.Planarity.Planar === pixel.planarity ? HitPriority.PlanarEdge : HitPriority.NonPlanarEdge;\r\n case Pixel.GeometryType.Silhouette:\r\n return HitPriority.SilhouetteEdge;\r\n default:\r\n return HitPriority.Unknown;\r\n }\r\n }\r\n\r\n private comparePixel(pixel1: Pixel.Data, pixel2: Pixel.Data, distXY1: number, distXY2: number) {\r\n const priority1 = this.getPixelPriority(pixel1);\r\n const priority2 = this.getPixelPriority(pixel2);\r\n if (priority1 < priority2) return -1;\r\n if (priority1 > priority2) return 1;\r\n if (distXY1 < distXY2) return -1;\r\n if (distXY1 > distXY2) return 1;\r\n if (pixel1.distanceFraction > pixel2.distanceFraction) return -1;\r\n if (pixel1.distanceFraction < pixel2.distanceFraction) return 1;\r\n return 0;\r\n }\r\n\r\n /** Generate a list of elements that are close to a given point.\r\n * @returns The number of hits in the hitList of this object.\r\n */\r\n public doPick(vp: ScreenViewport, pickPointWorld: Point3d, pickRadiusView: number, options: LocateOptions): number {\r\n if (this.hitList && this.hitList.length > 0 && vp === this.viewport && pickPointWorld.isAlmostEqual(this.pickPointWorld)) {\r\n this.hitList.resetCurrentHit();\r\n return this.hitList.length;\r\n }\r\n\r\n this.empty(); // empty the hit list\r\n this.viewport = vp;\r\n this.pickPointWorld.setFrom(pickPointWorld);\r\n\r\n const pickPointView = vp.worldToView(pickPointWorld);\r\n const testPointView = new Point2d(Math.floor(pickPointView.x + 0.5), Math.floor(pickPointView.y + 0.5));\r\n let pixelRadius = Math.floor(pickRadiusView + 0.5);\r\n const rect = new ViewRect(testPointView.x - pixelRadius, testPointView.y - pixelRadius, testPointView.x + pixelRadius, testPointView.y + pixelRadius);\r\n let result: number = 0;\r\n vp.readPixels(rect, Pixel.Selector.All, (pixels) => {\r\n if (undefined === pixels)\r\n return;\r\n\r\n testPointView.x = vp.cssPixelsToDevicePixels(testPointView.x);\r\n testPointView.y = vp.cssPixelsToDevicePixels(testPointView.y);\r\n pixelRadius = vp.cssPixelsToDevicePixels(pixelRadius);\r\n\r\n const elmHits = new Map<string, Point2d>();\r\n const testPoint = Point2d.createZero();\r\n for (testPoint.x = testPointView.x - pixelRadius; testPoint.x <= testPointView.x + pixelRadius; ++testPoint.x) {\r\n for (testPoint.y = testPointView.y - pixelRadius; testPoint.y <= testPointView.y + pixelRadius; ++testPoint.y) {\r\n const pixel = pixels.getPixel(testPoint.x, testPoint.y);\r\n if (undefined === pixel || undefined === pixel.elementId || Id64.isInvalid(pixel.elementId))\r\n continue; // no geometry at this location...\r\n\r\n const distXY = testPointView.distance(testPoint);\r\n if (distXY > pixelRadius)\r\n continue; // ignore corners. it's a locate circle not square...\r\n\r\n const oldPoint = elmHits.get(pixel.elementId);\r\n if (undefined !== oldPoint) {\r\n if (this.comparePixel(pixel, pixels.getPixel(oldPoint.x, oldPoint.y), distXY, testPointView.distance(oldPoint)) < 0)\r\n oldPoint.setFrom(testPoint); // new hit is better, update location...\r\n } else {\r\n elmHits.set(pixel.elementId, testPoint.clone());\r\n }\r\n }\r\n }\r\n if (0 === elmHits.size)\r\n return;\r\n\r\n for (const elmPoint of elmHits.values()) {\r\n const pixel = pixels.getPixel(elmPoint.x, elmPoint.y);\r\n if (undefined === pixel || undefined === pixel.elementId)\r\n continue;\r\n\r\n const hitPointWorld = vp.getPixelDataWorldPoint({\r\n pixels,\r\n x: elmPoint.x,\r\n y: elmPoint.y,\r\n preserveModelDisplayTransforms: options.preserveModelDisplayTransforms,\r\n });\r\n\r\n if (!hitPointWorld)\r\n continue;\r\n\r\n const modelId = undefined !== pixel.featureTable ? pixel.featureTable.modelId : undefined;\r\n const hit = new HitDetail(pickPointWorld, vp, options.hitSource, hitPointWorld, pixel.elementId, this.getPixelPriority(pixel), testPointView.distance(elmPoint), pixel.distanceFraction, pixel.subCategoryId, pixel.geometryClass, modelId, pixel.iModel, pixel.tileId, pixel.isClassifier);\r\n this.hitList!.addHit(hit);\r\n\r\n if (this.hitList!.hits.length > options.maxHits)\r\n this.hitList!.hits.length = options.maxHits; // truncate array...\r\n }\r\n\r\n result = this.hitList!.length;\r\n }, !options.allowNonLocatable);\r\n\r\n return result;\r\n }\r\n\r\n public testHit(hit: HitDetail, vp: ScreenViewport, pickPointWorld: Point3d, pickRadiusView: number, options: LocateOptions): boolean {\r\n if (0 === this.doPick(vp, pickPointWorld, pickRadiusView, options))\r\n return false;\r\n\r\n return this.hitList!.hits.some((thisHit) => hit.isSameHit(thisHit));\r\n }\r\n}\r\n\r\n/** @public */\r\nexport class ElementLocateManager {\r\n public hitList?: HitList<HitDetail>;\r\n public currHit?: HitDetail;\r\n public readonly options = new LocateOptions();\r\n public readonly picker = new ElementPicker();\r\n\r\n /** get the full message key for a locate failure */\r\n public static getFailureMessageKey(key: string) { return `LocateFailure.${key}`; }\r\n public onInitialized() { }\r\n public get apertureInches() { return 0.11; }\r\n public get touchApertureInches() { return 0.22; }\r\n\r\n public clear(): void { this.setCurrHit(undefined); }\r\n public setHitList(list?: HitList<HitDetail>) { this.hitList = list; }\r\n public setCurrHit(hit?: HitDetail): void { this.currHit = hit; }\r\n public getNextHit(): HitDetail | undefined { return this.hitList ? this.hitList.getNextHit() : undefined; }\r\n\r\n /** return the current path from either the snapping logic or the pre-locating systems. */\r\n public getPreLocatedHit(): HitDetail | undefined {\r\n // NOTE: Check AccuSnap first as Tentative is used to build intersect snap. For normal snaps when a Tentative is active there should be no AccuSnap.\r\n let preLocated = IModelApp.accuSnap.getHitAndList(this);\r\n\r\n if (!preLocated && !!(preLocated = IModelApp.tentativePoint.getHitAndList(this))) {\r\n const vp = preLocated.viewport;\r\n this.picker.empty(); // Get new hit list at hit point; want reset to cycle hits using adjusted point location...\r\n this.picker.doPick(vp, preLocated.getPoint(), (vp.pixelsFromInches(this.apertureInches) / 2.0) + 1.5, this.options);\r\n this.setHitList(this.picker.getHitList(true));\r\n }\r\n\r\n if (this.hitList)\r\n this.hitList.resetCurrentHit();\r\n\r\n return preLocated;\r\n }\r\n\r\n public async filterHit(hit: HitDetail, _action: LocateAction, out: LocateResponse): Promise<LocateFilterStatus> {\r\n // Tools must opt-in to locate of transient geometry as it requires special treatment.\r\n if (!this.options.allowDecorations && !hit.isElementHit) {\r\n if (hit.isModelHit)\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"RealityModel\");\r\n else if (hit.isMapHit)\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"Map\");\r\n else\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"Transient\");\r\n return LocateFilterStatus.Reject;\r\n }\r\n\r\n // Tools must opt-in to locate geometry from external iModels.\r\n if (!this.options.allowExternalIModels && hit.isExternalIModelHit) {\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"ExternalIModel\");\r\n return LocateFilterStatus.Reject;\r\n }\r\n\r\n if (undefined !== hit.subCategoryId && !hit.isExternalIModelHit) {\r\n const appearance = hit.viewport.getSubCategoryAppearance(hit.subCategoryId);\r\n if (appearance.dontLocate) {\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"NotLocatableSubCategory\");\r\n return LocateFilterStatus.Reject;\r\n }\r\n }\r\n\r\n const tool = IModelApp.toolAdmin.activeTool;\r\n if (!(tool && tool instanceof InteractiveTool))\r\n return LocateFilterStatus.Accept;\r\n\r\n const status = await tool.filterHit(hit, out);\r\n if (LocateFilterStatus.Reject === status)\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"ByApp\");\r\n\r\n return status;\r\n }\r\n\r\n public initLocateOptions() { this.options.init(); }\r\n public initToolLocate() {\r\n this.initLocateOptions();\r\n this.clear();\r\n this.picker.empty();\r\n IModelApp.tentativePoint.clear(true);\r\n }\r\n\r\n private async _doLocate(response: LocateResponse, newSearch: boolean, testPoint: Point3d, vp: ScreenViewport | undefined, source: InputSource, filterHits: boolean): Promise<HitDetail | undefined> {\r\n if (!vp)\r\n return;\r\n\r\n // the \"newSearch\" flag indicates whether the caller wants us to conduct a new search at the testPoint, or just continue returning paths from the previous search.\r\n if (newSearch) {\r\n const hit = this.getPreLocatedHit();\r\n\r\n // if we're snapped to something, that path has the highest priority and becomes the active hit.\r\n if (hit) {\r\n if (!filterHits || LocateFilterStatus.Accept === await this.filterHit(hit, LocateAction.Identify, response))\r\n return hit;\r\n\r\n response = new LocateResponse(); // we have the reason and explanation we want.\r\n }\r\n\r\n this.picker.empty();\r\n this.picker.doPick(vp, testPoint, (vp.pixelsFromInches(InputSource.Touch === source ? this.touchApertureInches : this.apertureInches) / 2.0) + 1.5, this.options);\r\n\r\n const hitList = this.picker.getHitList(true);\r\n this.setHitList(hitList);\r\n }\r\n\r\n let newHit: HitDetail | undefined;\r\n while (undefined !== (newHit = this.getNextHit())) {\r\n if (!filterHits || LocateFilterStatus.Accept === await this.filterHit(newHit, LocateAction.Identify, response))\r\n return newHit;\r\n response = new LocateResponse(); // we have the reason and explanation we want.\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n public async doLocate(response: LocateResponse, newSearch: boolean, testPoint: Point3d, view: ScreenViewport | undefined, source: InputSource, filterHits = true): Promise<HitDetail | undefined> {\r\n response.reason = ElementLocateManager.getFailureMessageKey(\"NoElements\");\r\n response.explanation = \"\";\r\n\r\n const hit = await this._doLocate(response, newSearch, testPoint, view, source, filterHits);\r\n this.setCurrHit(hit);\r\n\r\n // if we found a hit, remove it from the list of remaining hits near the current search point.\r\n if (hit && this.hitList)\r\n this.hitList.removeHitsFrom(hit.sourceId);\r\n return hit;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ElementLocateManager.js","sourceRoot":"","sources":["../../src/ElementLocateManager.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 { Id64 } from \"@itwin/core-bentley\";\r\nimport { Point2d, Point3d } from \"@itwin/core-geometry\";\r\nimport { HitDetail, HitList, HitPriority, HitSource } from \"./HitDetail\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { Pixel } from \"./render/Pixel\";\r\nimport { InputSource, InteractiveTool } from \"./tools/Tool\";\r\nimport { ScreenViewport, Viewport } from \"./Viewport\";\r\nimport { ViewRect } from \"./ViewRect\";\r\n\r\n/** The possible actions for which a locate filter can be called.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum LocateAction {\r\n Identify = 0,\r\n AutoLocate = 1,\r\n}\r\n\r\n/** Values to return from a locate filter.\r\n * Return `Reject` to indicate the element is unacceptable.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum LocateFilterStatus {\r\n Accept = 0,\r\n Reject = 1,\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SnapStatus {\r\n Success = 0,\r\n Aborted = 1,\r\n NoElements = 2,\r\n Disabled = 100,\r\n NoSnapPossible = 200,\r\n NotSnappable = 300,\r\n FilteredByApp = 600,\r\n FilteredByAppQuietly = 700,\r\n}\r\n\r\n/** Options that customize the way element location (i.e. *picking*) works.\r\n * @public\r\n * @extensions\r\n */\r\nexport class LocateOptions {\r\n /** If true, also test graphics from view decorations. */\r\n public allowDecorations = false;\r\n /** If true, also test graphics with non-locatable flag set. */\r\n public allowNonLocatable = false;\r\n /** Maximum number of hits to return. */\r\n public maxHits = 20;\r\n /** The [[HitSource]] identifying the caller. */\r\n public hitSource = HitSource.DataPoint;\r\n /** If true, also test graphics from an IModelConnection other than the one associated with the Viewport. This can occur if, e.g., a\r\n * [[TiledGraphicsProvider]] is used to display graphics from a different iModel into the [[Viewport]].\r\n * @note If you override this, you must be prepared to properly handle [[HitDetail]]s originating from other IModelConnections.\r\n * @see [[HitDetail.iModel]] and [[HitDetail.isExternalIModelHit]]\r\n */\r\n public allowExternalIModels = false;\r\n /** If true, then the world point of a hit on a model will preserve any transforms applied to the model at display time,\r\n * such as those supplied by a [[ModelDisplayTransformProvider]] or [PlanProjectionSettings.elevation]($common).\r\n * Otherwise, the world point will be multiplied by the inverse of any such transforms to correlate it with the model's true coordinate space.\r\n */\r\n public preserveModelDisplayTransforms = false;\r\n\r\n /** Make a copy of this LocateOptions. */\r\n public clone(): LocateOptions {\r\n const other = new LocateOptions();\r\n other.allowDecorations = this.allowDecorations;\r\n other.allowNonLocatable = this.allowNonLocatable;\r\n other.maxHits = this.maxHits;\r\n other.hitSource = this.hitSource;\r\n other.allowExternalIModels = this.allowExternalIModels;\r\n return other;\r\n }\r\n public setFrom(other: LocateOptions): void {\r\n this.allowDecorations = other.allowDecorations;\r\n this.allowNonLocatable = other.allowNonLocatable;\r\n this.maxHits = other.maxHits;\r\n this.hitSource = other.hitSource;\r\n this.allowExternalIModels = other.allowExternalIModels;\r\n }\r\n public init() {\r\n this.allowDecorations = this.allowNonLocatable = this.allowExternalIModels = false;\r\n this.maxHits = 20;\r\n this.hitSource = HitSource.DataPoint;\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport class LocateResponse {\r\n public snapStatus = SnapStatus.Success;\r\n public reason?: string;\r\n public explanation = \"\";\r\n\r\n /** @internal */\r\n public clone(): LocateResponse {\r\n const other = new LocateResponse();\r\n other.snapStatus = this.snapStatus;\r\n other.reason = this.reason;\r\n other.explanation = this.explanation;\r\n return other;\r\n }\r\n\r\n /** @internal */\r\n public setFrom(other: LocateResponse): void {\r\n this.snapStatus = other.snapStatus;\r\n this.reason = other.reason;\r\n this.explanation = other.explanation;\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport interface HitListHolder {\r\n setHitList(list: HitList<HitDetail> | undefined): void;\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport class ElementPicker {\r\n public viewport?: Viewport;\r\n public readonly pickPointWorld = new Point3d();\r\n public hitList?: HitList<HitDetail>;\r\n\r\n public empty() {\r\n this.pickPointWorld.setZero();\r\n this.viewport = undefined;\r\n if (this.hitList)\r\n this.hitList.empty();\r\n else\r\n this.hitList = new HitList<HitDetail>();\r\n }\r\n\r\n /** return the HitList for the last Pick performed. Optionally allows the caller to take ownership of the list. */\r\n public getHitList(takeOwnership: boolean): HitList<HitDetail> {\r\n const list = this.hitList!;\r\n if (takeOwnership)\r\n this.hitList = undefined;\r\n return list;\r\n }\r\n\r\n public getNextHit(): HitDetail | undefined { return this.hitList ? this.hitList.getNextHit() : undefined; }\r\n\r\n /** Return a hit from the list of hits created the last time pickElements was called. */\r\n public getHit(i: number): HitDetail | undefined { return this.hitList ? this.hitList.getHit(i) : undefined; }\r\n\r\n public resetCurrentHit(): void { if (this.hitList) this.hitList.resetCurrentHit(); }\r\n\r\n private getPixelPriority(pixel: Pixel.Data) {\r\n switch (pixel.type) {\r\n case Pixel.GeometryType.Surface:\r\n return Pixel.Planarity.Planar === pixel.planarity ? HitPriority.PlanarSurface : HitPriority.NonPlanarSurface;\r\n case Pixel.GeometryType.Linear:\r\n return HitPriority.WireEdge;\r\n case Pixel.GeometryType.Edge:\r\n return Pixel.Planarity.Planar === pixel.planarity ? HitPriority.PlanarEdge : HitPriority.NonPlanarEdge;\r\n case Pixel.GeometryType.Silhouette:\r\n return HitPriority.SilhouetteEdge;\r\n default:\r\n return HitPriority.Unknown;\r\n }\r\n }\r\n\r\n private comparePixel(pixel1: Pixel.Data, pixel2: Pixel.Data, distXY1: number, distXY2: number) {\r\n const priority1 = this.getPixelPriority(pixel1);\r\n const priority2 = this.getPixelPriority(pixel2);\r\n if (priority1 < priority2) return -1;\r\n if (priority1 > priority2) return 1;\r\n if (distXY1 < distXY2) return -1;\r\n if (distXY1 > distXY2) return 1;\r\n if (pixel1.distanceFraction > pixel2.distanceFraction) return -1;\r\n if (pixel1.distanceFraction < pixel2.distanceFraction) return 1;\r\n return 0;\r\n }\r\n\r\n /** Generate a list of elements that are close to a given point.\r\n * @returns The number of hits in the hitList of this object.\r\n */\r\n public doPick(vp: ScreenViewport, pickPointWorld: Point3d, pickRadiusView: number, options: LocateOptions): number {\r\n if (this.hitList && this.hitList.length > 0 && vp === this.viewport && pickPointWorld.isAlmostEqual(this.pickPointWorld)) {\r\n this.hitList.resetCurrentHit();\r\n return this.hitList.length;\r\n }\r\n\r\n this.empty(); // empty the hit list\r\n this.viewport = vp;\r\n this.pickPointWorld.setFrom(pickPointWorld);\r\n\r\n const pickPointView = vp.worldToView(pickPointWorld);\r\n const testPointView = new Point2d(Math.floor(pickPointView.x + 0.5), Math.floor(pickPointView.y + 0.5));\r\n let pixelRadius = Math.floor(pickRadiusView + 0.5);\r\n const rect = new ViewRect(testPointView.x - pixelRadius, testPointView.y - pixelRadius, testPointView.x + pixelRadius, testPointView.y + pixelRadius);\r\n let result: number = 0;\r\n vp.readPixels(rect, Pixel.Selector.All, (pixels) => {\r\n if (undefined === pixels)\r\n return;\r\n\r\n testPointView.x = vp.cssPixelsToDevicePixels(testPointView.x);\r\n testPointView.y = vp.cssPixelsToDevicePixels(testPointView.y);\r\n pixelRadius = vp.cssPixelsToDevicePixels(pixelRadius);\r\n\r\n const elmHits = new Map<string, Point2d>();\r\n const testPoint = Point2d.createZero();\r\n for (testPoint.x = testPointView.x - pixelRadius; testPoint.x <= testPointView.x + pixelRadius; ++testPoint.x) {\r\n for (testPoint.y = testPointView.y - pixelRadius; testPoint.y <= testPointView.y + pixelRadius; ++testPoint.y) {\r\n const pixel = pixels.getPixel(testPoint.x, testPoint.y);\r\n if (undefined === pixel || undefined === pixel.elementId || Id64.isInvalid(pixel.elementId))\r\n continue; // no geometry at this location...\r\n\r\n const distXY = testPointView.distance(testPoint);\r\n if (distXY > pixelRadius)\r\n continue; // ignore corners. it's a locate circle not square...\r\n\r\n const oldPoint = elmHits.get(pixel.elementId);\r\n if (undefined !== oldPoint) {\r\n if (this.comparePixel(pixel, pixels.getPixel(oldPoint.x, oldPoint.y), distXY, testPointView.distance(oldPoint)) < 0)\r\n oldPoint.setFrom(testPoint); // new hit is better, update location...\r\n } else {\r\n elmHits.set(pixel.elementId, testPoint.clone());\r\n }\r\n }\r\n }\r\n if (0 === elmHits.size)\r\n return;\r\n\r\n for (const elmPoint of elmHits.values()) {\r\n const pixel = pixels.getPixel(elmPoint.x, elmPoint.y);\r\n if (undefined === pixel || undefined === pixel.elementId)\r\n continue;\r\n\r\n const hitPointWorld = vp.getPixelDataWorldPoint({\r\n pixels,\r\n x: elmPoint.x,\r\n y: elmPoint.y,\r\n preserveModelDisplayTransforms: options.preserveModelDisplayTransforms,\r\n });\r\n\r\n if (!hitPointWorld)\r\n continue;\r\n\r\n const modelId = undefined !== pixel.featureTable ? pixel.featureTable.modelId : undefined;\r\n const hit = new HitDetail(pickPointWorld, vp, options.hitSource, hitPointWorld, pixel.elementId, this.getPixelPriority(pixel), testPointView.distance(elmPoint), pixel.distanceFraction, pixel.subCategoryId, pixel.geometryClass, modelId, pixel.iModel, pixel.tileId, pixel.isClassifier);\r\n this.hitList!.addHit(hit);\r\n\r\n if (this.hitList!.hits.length > options.maxHits)\r\n this.hitList!.hits.length = options.maxHits; // truncate array...\r\n }\r\n\r\n result = this.hitList!.length;\r\n }, !options.allowNonLocatable);\r\n\r\n return result;\r\n }\r\n\r\n public testHit(hit: HitDetail, vp: ScreenViewport, pickPointWorld: Point3d, pickRadiusView: number, options: LocateOptions): boolean {\r\n if (0 === this.doPick(vp, pickPointWorld, pickRadiusView, options))\r\n return false;\r\n\r\n return this.hitList!.hits.some((thisHit) => hit.isSameHit(thisHit));\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport class ElementLocateManager {\r\n public hitList?: HitList<HitDetail>;\r\n public currHit?: HitDetail;\r\n public readonly options = new LocateOptions();\r\n public readonly picker = new ElementPicker();\r\n\r\n /** get the full message key for a locate failure */\r\n public static getFailureMessageKey(key: string) { return `LocateFailure.${key}`; }\r\n public onInitialized() { }\r\n public get apertureInches() { return 0.11; }\r\n public get touchApertureInches() { return 0.22; }\r\n\r\n public clear(): void { this.setCurrHit(undefined); }\r\n public setHitList(list?: HitList<HitDetail>) { this.hitList = list; }\r\n public setCurrHit(hit?: HitDetail): void { this.currHit = hit; }\r\n public getNextHit(): HitDetail | undefined { return this.hitList ? this.hitList.getNextHit() : undefined; }\r\n\r\n /** return the current path from either the snapping logic or the pre-locating systems. */\r\n public getPreLocatedHit(): HitDetail | undefined {\r\n // NOTE: Check AccuSnap first as Tentative is used to build intersect snap. For normal snaps when a Tentative is active there should be no AccuSnap.\r\n let preLocated = IModelApp.accuSnap.getHitAndList(this);\r\n\r\n if (!preLocated && !!(preLocated = IModelApp.tentativePoint.getHitAndList(this))) {\r\n const vp = preLocated.viewport;\r\n this.picker.empty(); // Get new hit list at hit point; want reset to cycle hits using adjusted point location...\r\n this.picker.doPick(vp, preLocated.getPoint(), (vp.pixelsFromInches(this.apertureInches) / 2.0) + 1.5, this.options);\r\n this.setHitList(this.picker.getHitList(true));\r\n }\r\n\r\n if (this.hitList)\r\n this.hitList.resetCurrentHit();\r\n\r\n return preLocated;\r\n }\r\n\r\n public async filterHit(hit: HitDetail, _action: LocateAction, out: LocateResponse): Promise<LocateFilterStatus> {\r\n // Tools must opt-in to locate of transient geometry as it requires special treatment.\r\n if (!this.options.allowDecorations && !hit.isElementHit) {\r\n if (hit.isModelHit)\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"RealityModel\");\r\n else if (hit.isMapHit)\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"Map\");\r\n else\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"Transient\");\r\n return LocateFilterStatus.Reject;\r\n }\r\n\r\n // Tools must opt-in to locate geometry from external iModels.\r\n if (!this.options.allowExternalIModels && hit.isExternalIModelHit) {\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"ExternalIModel\");\r\n return LocateFilterStatus.Reject;\r\n }\r\n\r\n if (undefined !== hit.subCategoryId && !hit.isExternalIModelHit) {\r\n const appearance = hit.viewport.getSubCategoryAppearance(hit.subCategoryId);\r\n if (appearance.dontLocate) {\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"NotLocatableSubCategory\");\r\n return LocateFilterStatus.Reject;\r\n }\r\n }\r\n\r\n const tool = IModelApp.toolAdmin.activeTool;\r\n if (!(tool && tool instanceof InteractiveTool))\r\n return LocateFilterStatus.Accept;\r\n\r\n const status = await tool.filterHit(hit, out);\r\n if (LocateFilterStatus.Reject === status)\r\n out.reason = ElementLocateManager.getFailureMessageKey(\"ByApp\");\r\n\r\n return status;\r\n }\r\n\r\n public initLocateOptions() { this.options.init(); }\r\n public initToolLocate() {\r\n this.initLocateOptions();\r\n this.clear();\r\n this.picker.empty();\r\n IModelApp.tentativePoint.clear(true);\r\n }\r\n\r\n private async _doLocate(response: LocateResponse, newSearch: boolean, testPoint: Point3d, vp: ScreenViewport | undefined, source: InputSource, filterHits: boolean): Promise<HitDetail | undefined> {\r\n if (!vp)\r\n return;\r\n\r\n // the \"newSearch\" flag indicates whether the caller wants us to conduct a new search at the testPoint, or just continue returning paths from the previous search.\r\n if (newSearch) {\r\n const hit = this.getPreLocatedHit();\r\n\r\n // if we're snapped to something, that path has the highest priority and becomes the active hit.\r\n if (hit) {\r\n if (!filterHits || LocateFilterStatus.Accept === await this.filterHit(hit, LocateAction.Identify, response))\r\n return hit;\r\n\r\n response = new LocateResponse(); // we have the reason and explanation we want.\r\n }\r\n\r\n this.picker.empty();\r\n this.picker.doPick(vp, testPoint, (vp.pixelsFromInches(InputSource.Touch === source ? this.touchApertureInches : this.apertureInches) / 2.0) + 1.5, this.options);\r\n\r\n const hitList = this.picker.getHitList(true);\r\n this.setHitList(hitList);\r\n }\r\n\r\n let newHit: HitDetail | undefined;\r\n while (undefined !== (newHit = this.getNextHit())) {\r\n if (!filterHits || LocateFilterStatus.Accept === await this.filterHit(newHit, LocateAction.Identify, response))\r\n return newHit;\r\n response = new LocateResponse(); // we have the reason and explanation we want.\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n public async doLocate(response: LocateResponse, newSearch: boolean, testPoint: Point3d, view: ScreenViewport | undefined, source: InputSource, filterHits = true): Promise<HitDetail | undefined> {\r\n response.reason = ElementLocateManager.getFailureMessageKey(\"NoElements\");\r\n response.explanation = \"\";\r\n\r\n const hit = await this._doLocate(response, newSearch, testPoint, view, source, filterHits);\r\n this.setCurrHit(hit);\r\n\r\n // if we found a hit, remove it from the list of remaining hits near the current search point.\r\n if (hit && this.hitList)\r\n this.hitList.removeHitsFrom(hit.sourceId);\r\n return hit;\r\n }\r\n}\r\n"]}
@@ -8,6 +8,7 @@ import { FeatureOverrideProvider } from "./FeatureOverrideProvider";
8
8
  import { Viewport } from "./Viewport";
9
9
  /** An implementation of [[FeatureOverrideProvider]] for emphasizing selected elements through simple color/transparency appearance overrides.
10
10
  * @public
11
+ * @extensions
11
12
  */
12
13
  export declare class EmphasizeElements implements FeatureOverrideProvider {
13
14
  private _defaultAppearance?;
@@ -1 +1 @@
1
- {"version":3,"file":"EmphasizeElements.d.ts","sourceRoot":"","sources":["../../src/EmphasizeElements.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAQ,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAA2B,QAAQ,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,mBAAmB,EAAY,MAAM,oBAAoB,CAAC;AACjJ,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,qBAAa,iBAAkB,YAAW,uBAAuB;IAC/D,OAAO,CAAC,kBAAkB,CAAC,CAAoB;IAC/C,OAAO,CAAC,qBAAqB,CAAC,CAAoB;IAClD,OAAO,CAAC,kBAAkB,CAAC,CAAU;IACrC,OAAO,CAAC,mBAAmB,CAAC,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAoD;IAE1F,4LAA4L;IACrL,YAAY,UAAS;IAE5B;;OAEG;IACI,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAsCrF,gBAAgB;IAChB,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB;IAiBjE,oDAAoD;IAC7C,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS;IAY5F,qDAAqD;IAC9C,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,YAAY,EAAE,mBAAmB,CAAC;QAAC,KAAK,EAAE,QAAQ,CAAA;KAAE;IAoB9F;;;OAGG;IACH,IAAW,iBAAiB,IAAI,iBAAiB,GAAG,SAAS,CAAoC;IACjG,IAAW,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,EAA2C;IAEjH;;;;OAIG;IACH,IAAW,oBAAoB,IAAI,iBAAiB,GAAG,SAAS,CAE/D;IACD,IAAW,oBAAoB,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,EAExE;IAED,0FAA0F;IACnF,uBAAuB,IAAI,iBAAiB;IAQnD,yDAAyD;IAClD,qBAAqB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAI/D,0DAA0D;IACnD,sBAAsB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAIhE,oDAAoD;IAC7C,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAI3D,sDAAsD;IAC/C,mBAAmB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAI7D,iEAAiE;IAC1D,6BAA6B,IAAI,OAAO,GAAG,SAAS;IAI3D,wDAAwD;IACjD,qBAAqB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAI/D,yEAAyE;IAClE,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAIhE,sFAAsF;IAC/E,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAInE;;OAEG;IACI,uBAAuB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAOrD;;OAEG;IACI,wBAAwB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAOtD;;OAEG;IACI,mBAAmB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAIjD;;OAEG;IACI,qBAAqB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAQnD;;OAEG;IACI,uBAAuB,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAcrD;;OAEG;IACI,+BAA+B,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,GAAG,OAAO;IAcxF;;;;;OAKG;IACI,uBAAuB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO;IAiClF,gBAAgB;IAChB,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAmBjG;;;;;;;OAOG;IACI,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO;IAQ1F;;;;;;;;;OASG;IACI,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,GAAE,OAAc,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO;IAQtH;;;;;;OAMG;IACI,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO;IAIlF;;;;;;OAMG;IACI,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,OAAe,EAAE,cAAc,GAAE,OAAc,GAAG,OAAO;IAS5G;;;;;;;OAOG;IACI,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO;IAWpF;;;;;;;OAOG;IACI,uBAAuB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAE,OAAc,EAAE,cAAc,GAAE,OAAc,GAAG,OAAO;IAS9G;;;;;;;;OAQG;IACI,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,OAAO,GAAE,OAAc,GAAG,OAAO;IAmB7H;;;;;;;;OAQG;IACI,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,OAAO,GAAE,OAAc,EAAE,cAAc,GAAE,OAAc,GAAG,OAAO;IAWvJ;;;;;;;;OAQG;IACI,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAE,mBAAmD,EAAE,OAAO,GAAE,OAAe,GAAG,OAAO;IA4CtK;;;;;;;;OAQG;IACI,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAE,mBAAmD,EAAE,OAAO,GAAE,OAAe,EAAE,cAAc,GAAE,OAAc,GAAG,OAAO;IAShM,oFAAoF;IAC7E,QAAQ,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAEtC;;OAEG;IACI,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,sBAAsB;IAyCnD;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,sBAAsB,EAAE,EAAE,EAAE,QAAQ,GAAG,OAAO;IAoCrE,4HAA4H;WAC9G,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,iBAAiB,GAAG,SAAS;IAI9D,mIAAmI;WACrH,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,iBAAiB;IAU1D,kHAAkH;WACpG,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,GAAE,OAAe;CAUhE"}
1
+ {"version":3,"file":"EmphasizeElements.d.ts","sourceRoot":"","sources":["../../src/EmphasizeElements.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { Id64 } from "@itwin/core-bentley";
9
9
  import { ColorDef, FeatureAppearance, FeatureOverrideType, RgbColor } from "@itwin/core-common";
10
10
  /** An implementation of [[FeatureOverrideProvider]] for emphasizing selected elements through simple color/transparency appearance overrides.
11
11
  * @public
12
+ * @extensions
12
13
  */
13
14
  export class EmphasizeElements {
14
15
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"EmphasizeElements.js","sourceRoot":"","sources":["../../src/EmphasizeElements.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 Rendering\r\n */\r\n\r\nimport { Id64, Id64Arg, Id64Set } from \"@itwin/core-bentley\";\r\nimport { AppearanceOverrideProps, ColorDef, EmphasizeElementsProps, FeatureAppearance, FeatureOverrideType, RgbColor } from \"@itwin/core-common\";\r\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\r\nimport { FeatureOverrideProvider } from \"./FeatureOverrideProvider\";\r\nimport { Viewport } from \"./Viewport\";\r\n\r\n/** An implementation of [[FeatureOverrideProvider]] for emphasizing selected elements through simple color/transparency appearance overrides.\r\n * @public\r\n */\r\nexport class EmphasizeElements implements FeatureOverrideProvider {\r\n private _defaultAppearance?: FeatureAppearance;\r\n private _unanimatedAppearance?: FeatureAppearance;\r\n private _emphasizeIsolated?: Id64Set;\r\n private _overrideAppearance?: Map<number, Id64Set>;\r\n private readonly _emphasizedAppearance = FeatureAppearance.fromJSON({ emphasized: true });\r\n\r\n /** If true, all overridden and emphasized elements will also have the \"emphasis\" effect applied to them. This causes them to be hilited using the current [[Viewport.emphasisSettings]]. */\r\n public wantEmphasis = false;\r\n\r\n /** Establish active feature overrides to emphasize elements and apply color/transparency overrides.\r\n * @see [[Viewport.addFeatureOverrideProvider]]\r\n */\r\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, vp: Viewport): void {\r\n const emphasizedElements = this.getEmphasizedElements(vp);\r\n if (undefined !== emphasizedElements) {\r\n overrides.setDefaultOverrides(this._defaultAppearance!);\r\n const appearance = this.wantEmphasis ? this._emphasizedAppearance : FeatureAppearance.defaults;\r\n\r\n // Avoid creating a new object per-element inside the loop\r\n const args = { elementId: \"\", appearance };\r\n for (const elementId of emphasizedElements) {\r\n args.elementId = elementId;\r\n overrides.override(args);\r\n }\r\n }\r\n\r\n const overriddenElements = this.getOverriddenElements();\r\n if (undefined !== overriddenElements) {\r\n if (undefined !== this._defaultAppearance)\r\n overrides.setDefaultOverrides(this._defaultAppearance);\r\n\r\n // Avoid creating a new object per-element inside the loop\r\n const args = { elementId: \"\", appearance: FeatureAppearance.defaults };\r\n for (const [key, ids] of overriddenElements) {\r\n args.appearance = this.createAppearanceFromKey(key);\r\n for (const elementId of ids) {\r\n args.elementId = elementId;\r\n overrides.override(args);\r\n }\r\n }\r\n }\r\n\r\n if (this._unanimatedAppearance) {\r\n if (this._unanimatedAppearance.isFullyTransparent)\r\n overrides.neverDrawnAnimationNodes.add(0);\r\n else\r\n overrides.animationNodeOverrides.set(0, this._unanimatedAppearance);\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected createAppearanceFromKey(key: number): FeatureAppearance {\r\n let transparency: number | undefined;\r\n let rgb: RgbColor | undefined;\r\n\r\n if (key < 0) {\r\n transparency = Math.abs(key);\r\n } else {\r\n const color = ColorDef.fromJSON(key);\r\n rgb = RgbColor.fromColorDef(color);\r\n if (0 !== color.getAlpha()) // Fully transparent signifies to use color only...\r\n transparency = color.getTransparency() / 255;\r\n }\r\n\r\n const emphasized = this.wantEmphasis ? true : undefined;\r\n return FeatureAppearance.fromJSON({ rgb, transparency, emphasized });\r\n }\r\n\r\n /** Get override key from color and override type */\r\n public createOverrideKey(color: ColorDef, override: FeatureOverrideType): number | undefined {\r\n const colorValues = color.colors;\r\n switch (override) {\r\n case FeatureOverrideType.ColorAndAlpha:\r\n return 255 === colorValues.t ? undefined : color.tbgr; // Hiding elements should be done using neverDrawn, not transparency...\r\n case FeatureOverrideType.ColorOnly:\r\n return ColorDef.from(colorValues.r, colorValues.g, colorValues.b, 255).tbgr;\r\n case FeatureOverrideType.AlphaOnly:\r\n return -(colorValues.t / 255);\r\n }\r\n }\r\n\r\n /** Get color and override type for the given key. */\r\n public getOverrideFromKey(key: number): { overrideType: FeatureOverrideType, color: ColorDef } {\r\n let overrideType;\r\n let color;\r\n\r\n if (key < 0) {\r\n color = ColorDef.from(0, 0, 0, 255 * Math.abs(key));\r\n overrideType = FeatureOverrideType.AlphaOnly;\r\n } else {\r\n color = ColorDef.fromJSON(key);\r\n if (0 === color.getAlpha()) {\r\n color = color.withAlpha(255);\r\n overrideType = FeatureOverrideType.ColorOnly;\r\n } else {\r\n overrideType = FeatureOverrideType.ColorAndAlpha;\r\n }\r\n }\r\n\r\n return { overrideType, color };\r\n }\r\n\r\n /** Establish a default appearance to apply to elements without overrides. If changing the default appearance\r\n * without also calling overrideElements, an explicit refresh must be requested for the change to take effect.\r\n * @see [[Viewport.setFeatureOverrideProviderChanged]]\r\n */\r\n public get defaultAppearance(): FeatureAppearance | undefined { return this._defaultAppearance; }\r\n public set defaultAppearance(appearance: FeatureAppearance | undefined) { this._defaultAppearance = appearance; }\r\n\r\n /** Establish a default appearance to apply to elements that are not animated by the view's [RenderSchedule.Script]($common).\r\n * @note If this is the only change made to EmphasizeElements, you must call [[Viewport.setFeatureOverrideProviderChanged]] for\r\n * the change to take immediate effect.\r\n * @see [[createDefaultAppearance]] to create an appearance suitable for de-emphasizing the non-animated elements.\r\n */\r\n public get unanimatedAppearance(): FeatureAppearance | undefined {\r\n return this._unanimatedAppearance;\r\n }\r\n public set unanimatedAppearance(appearance: FeatureAppearance | undefined) {\r\n this._unanimatedAppearance = appearance;\r\n }\r\n\r\n /** Create default appearance to use for emphasizeElements when not supplied by caller. */\r\n public createDefaultAppearance(): FeatureAppearance {\r\n return FeatureAppearance.fromJSON({\r\n rgb: new RgbColor(0xe4, 0xe4, 0xe4),\r\n transparency: 0.8,\r\n nonLocatable: true,\r\n });\r\n }\r\n\r\n /** Get the IDs of the currently never drawn elements. */\r\n public getNeverDrawnElements(vp: Viewport): Id64Set | undefined {\r\n return (undefined !== vp.neverDrawn && 0 !== vp.neverDrawn.size ? vp.neverDrawn : undefined);\r\n }\r\n\r\n /** Get the IDs of the currently always drawn elements. */\r\n public getAlwaysDrawnElements(vp: Viewport): Id64Set | undefined {\r\n return (undefined !== vp.alwaysDrawn && 0 !== vp.alwaysDrawn.size ? vp.alwaysDrawn : undefined);\r\n }\r\n\r\n /** Get the IDs of the currently hidden elements. */\r\n public getHiddenElements(vp: Viewport): Id64Set | undefined {\r\n return this.getNeverDrawnElements(vp);\r\n }\r\n\r\n /** Get the IDs of the currently isolated elements. */\r\n public getIsolatedElements(vp: Viewport): Id64Set | undefined {\r\n return (vp.isAlwaysDrawnExclusive ? this.getAlwaysDrawnElements(vp) : undefined);\r\n }\r\n\r\n /** Get the IDs of the currently emphasized isolated elements. */\r\n public getEmphasizedIsolatedElements(): Id64Set | undefined {\r\n return (undefined !== this._defaultAppearance && undefined !== this._emphasizeIsolated && 0 !== this._emphasizeIsolated.size ? this._emphasizeIsolated : undefined);\r\n }\r\n\r\n /** Get the IDs of the currently emphasized elements. */\r\n public getEmphasizedElements(vp: Viewport): Id64Set | undefined {\r\n return (undefined !== this.getEmphasizedIsolatedElements() ? this._emphasizeIsolated : (undefined !== this._defaultAppearance && !vp.isAlwaysDrawnExclusive ? this.getAlwaysDrawnElements(vp) : undefined));\r\n }\r\n\r\n /** Get the map of current elements with color/transparency overrides. */\r\n public getOverriddenElements(): Map<number, Id64Set> | undefined {\r\n return (undefined !== this._overrideAppearance && 0 !== this._overrideAppearance.size ? this._overrideAppearance : undefined);\r\n }\r\n\r\n /** Get the IDs of current elements with the specified color/transparency override. */\r\n public getOverriddenElementsByKey(key: number): Id64Set | undefined {\r\n return (undefined !== this._overrideAppearance ? this._overrideAppearance.get(key) : undefined);\r\n }\r\n\r\n /** Clear never drawn elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearNeverDrawnElements(vp: Viewport): boolean {\r\n if (undefined === this.getNeverDrawnElements(vp))\r\n return false;\r\n vp.clearNeverDrawn();\r\n return true;\r\n }\r\n\r\n /** Clear always drawn elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearAlwaysDrawnElements(vp: Viewport): boolean {\r\n if (undefined === this.getAlwaysDrawnElements(vp))\r\n return false;\r\n vp.clearAlwaysDrawn();\r\n return true;\r\n }\r\n\r\n /** Clear hidden elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearHiddenElements(vp: Viewport): boolean {\r\n return this.clearNeverDrawnElements(vp);\r\n }\r\n\r\n /** Clear isolated elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearIsolatedElements(vp: Viewport): boolean {\r\n if (undefined === this.getIsolatedElements(vp))\r\n return false;\r\n if (this.clearEmphasizedIsolatedElements(vp, true))\r\n return true;\r\n return this.clearAlwaysDrawnElements(vp);\r\n }\r\n\r\n /** Clear emphasized elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearEmphasizedElements(vp: Viewport): boolean {\r\n if (undefined === this.getEmphasizedElements(vp))\r\n return false;\r\n\r\n if (this.clearEmphasizedIsolatedElements(vp, false))\r\n return true;\r\n\r\n if (!this.clearAlwaysDrawnElements(vp))\r\n return false;\r\n\r\n this._defaultAppearance = undefined;\r\n return true;\r\n }\r\n\r\n /** Clear emphasized isolated elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearEmphasizedIsolatedElements(vp: Viewport, setToAlwaysDrawn: boolean): boolean {\r\n const emphasizedIsolated = this.getEmphasizedIsolatedElements();\r\n this._emphasizeIsolated = undefined; // Always clear in case default appearance was unset...\r\n if (undefined === emphasizedIsolated)\r\n return false;\r\n\r\n if (setToAlwaysDrawn && this.setAlwaysDrawnElements(emphasizedIsolated, vp, false))\r\n return true;\r\n\r\n this._defaultAppearance = undefined;\r\n vp.setFeatureOverrideProviderChanged();\r\n return true;\r\n }\r\n\r\n /** Clear color/transparency overrides from elements. Removes all overrides when keyOrIds isn't supplied.\r\n * @param keyOrIds Specify a key value from [[EmphasizeElements.getOverriddenElements]] or [[EmphasizeElements.createOverrideKey]]\r\n * to remove a single color/transparency override for the corresponding elements or specify the IDs of elements to\r\n * remove any color/transparency override from.\r\n * @return false if nothing to clear.\r\n */\r\n public clearOverriddenElements(vp: Viewport, keyOrIds?: number | Id64Arg): boolean {\r\n if (undefined === this._overrideAppearance)\r\n return false;\r\n\r\n if (undefined !== keyOrIds) {\r\n if (typeof keyOrIds === \"number\") {\r\n if (!this._overrideAppearance.delete(keyOrIds))\r\n return false;\r\n } else {\r\n let changed = false;\r\n\r\n for (const [otherKey, otherIds] of this._overrideAppearance) {\r\n const oldSize = otherIds.size;\r\n for (const id of Id64.iterable(keyOrIds))\r\n otherIds.delete(id);\r\n\r\n if (oldSize !== otherIds.size)\r\n changed = true;\r\n\r\n if (0 === otherIds.size)\r\n this._overrideAppearance.delete(otherKey);\r\n }\r\n\r\n if (!changed)\r\n return false;\r\n }\r\n } else {\r\n this._overrideAppearance = undefined;\r\n }\r\n vp.setFeatureOverrideProviderChanged();\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n protected updateIdSet(ids: Id64Arg, replace: boolean, existingIds?: Id64Set): Id64Set | undefined {\r\n const newIds = new Set<string>();\r\n for (const id of Id64.iterable(ids))\r\n newIds.add(id);\r\n\r\n if (0 === newIds.size)\r\n return undefined;\r\n\r\n const oldSize = (!replace && undefined !== existingIds ? existingIds.size : 0);\r\n if (0 !== oldSize && undefined !== existingIds)\r\n for (const id of existingIds)\r\n newIds.add(id);\r\n\r\n if (oldSize === newIds.size)\r\n return undefined;\r\n\r\n return newIds;\r\n }\r\n\r\n /** Set the element IDs to be never drawn.\r\n * @param ids The IDs of the elements to never draw.\r\n * @param vp The viewport.\r\n * @param replace true to replace currently hidden elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.neverDrawn]]\r\n * @internal\r\n */\r\n public setNeverDrawnElements(ids: Id64Arg, vp: Viewport, replace: boolean = true): boolean {\r\n const hiddenIds = this.updateIdSet(ids, replace, vp.neverDrawn);\r\n if (undefined === hiddenIds)\r\n return false;\r\n vp.setNeverDrawn(hiddenIds);\r\n return true;\r\n }\r\n\r\n /** Set the element IDs to be always drawn.\r\n * @param ids The IDs of the elements to always draw.\r\n * @param vp The viewport.\r\n * @param exclusive If true, *only* the specified elements will be drawn.\r\n * @param replace true to replace currently always drawn elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.isAlwaysDrawnExclusive]]\r\n * @internal\r\n */\r\n public setAlwaysDrawnElements(ids: Id64Arg, vp: Viewport, exclusive: boolean = true, replace: boolean = true): boolean {\r\n const visibleIds = this.updateIdSet(ids, replace, vp.alwaysDrawn);\r\n if (undefined === visibleIds)\r\n return false;\r\n vp.setAlwaysDrawn(visibleIds, exclusive);\r\n return true;\r\n }\r\n\r\n /** Set the element IDs to be never drawn.\r\n * @param ids The IDs of the elements to never draw.\r\n * @param vp The viewport.\r\n * @param replace true to replace currently hidden elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.neverDrawn]]\r\n */\r\n public hideElements(ids: Id64Arg, vp: Viewport, replace: boolean = false): boolean {\r\n return this.setNeverDrawnElements(ids, vp, replace);\r\n }\r\n\r\n /** Set the currently selected elements to be never drawn.\r\n * @param vp The viewport.\r\n * @param replace true to replace currently hidden elements (if any) or false to add to the existing set.\r\n * @param clearSelection true to clear current selection after setting appearance override, false to leave selected.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.neverDrawn]]\r\n */\r\n public hideSelectedElements(vp: Viewport, replace: boolean = false, clearSelection: boolean = true): boolean {\r\n const selection = vp.view.iModel.selectionSet;\r\n if (!selection.isActive || !this.hideElements(selection.elements, vp, replace))\r\n return false;\r\n if (clearSelection)\r\n selection.emptyAll();\r\n return true;\r\n }\r\n\r\n /** Set the element IDs to be always drawn exclusively.\r\n * @param ids The IDs of the elements to always draw.\r\n * @param vp The viewport.\r\n * @param replace true to replace currently isolated elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.isAlwaysDrawnExclusive]]\r\n */\r\n public isolateElements(ids: Id64Arg, vp: Viewport, replace: boolean = true): boolean {\r\n const wasEmphasized = (undefined !== this.getEmphasizedElements(vp));\r\n if (!this.setAlwaysDrawnElements(ids, vp, true, replace))\r\n return false;\r\n\r\n if (wasEmphasized)\r\n this._defaultAppearance = this._emphasizeIsolated = undefined; // Don't clear defaultAppearance unless it was established by emphasize...\r\n\r\n return true;\r\n }\r\n\r\n /** Set the currently selected elements to be always drawn exclusively.\r\n * @param vp The viewport.\r\n * @param replace true to replace currently isolated elements (if any) or false to add to the existing set.\r\n * @param clearSelection true to clear current selection after setting appearance override, false to leave selected.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.isAlwaysDrawnExclusive]]\r\n */\r\n public isolateSelectedElements(vp: Viewport, replace: boolean = true, clearSelection: boolean = true): boolean {\r\n const selection = vp.view.iModel.selectionSet;\r\n if (!selection.isActive || !this.isolateElements(selection.elements, vp, replace))\r\n return false;\r\n if (clearSelection)\r\n selection.emptyAll();\r\n return true;\r\n }\r\n\r\n /** Set the element IDs to be always drawn normally with all other elements in the view overridden to draw using a default appearance.\r\n * @param ids The IDs of the elements to always draw.\r\n * @param vp The viewport.\r\n * @param defaultAppearance Optional default appearance, uses non-locatable transparent grey if not specified.\r\n * @param replace true to replace currently overridden elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.isAlwaysDrawnExclusive]]\r\n */\r\n public emphasizeElements(ids: Id64Arg, vp: Viewport, defaultAppearance?: FeatureAppearance, replace: boolean = true): boolean {\r\n if (undefined !== this.getIsolatedElements(vp)) {\r\n const emphasizeIds = this.updateIdSet(ids, replace, this._emphasizeIsolated);\r\n if (undefined === emphasizeIds)\r\n return false;\r\n\r\n this._emphasizeIsolated = emphasizeIds;\r\n vp.setFeatureOverrideProviderChanged();\r\n } else {\r\n if (!this.setAlwaysDrawnElements(ids, vp, false, replace))\r\n return false;\r\n\r\n this._emphasizeIsolated = undefined;\r\n }\r\n\r\n this._defaultAppearance = (undefined === defaultAppearance ? this.createDefaultAppearance() : defaultAppearance);\r\n return true;\r\n }\r\n\r\n /** Set the currently selected elements to be always drawn normally with all other elements in the view overridden to draw using a default appearance.\r\n * @param vp The viewport.\r\n * @param defaultAppearance Optional default appearance, uses transparent grey if not specified.\r\n * @param replace true to replace currently overridden elements (if any) or false to add to the existing set.\r\n * @param clearSelection true to clear current selection after setting appearance override, false to leave selected.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.isAlwaysDrawnExclusive]]\r\n */\r\n public emphasizeSelectedElements(vp: Viewport, defaultAppearance?: FeatureAppearance, replace: boolean = true, clearSelection: boolean = true): boolean {\r\n const selection = vp.view.iModel.selectionSet;\r\n if (!selection.isActive || !this.emphasizeElements(selection.elements, vp, defaultAppearance, replace))\r\n return false;\r\n\r\n if (clearSelection)\r\n selection.emptyAll();\r\n\r\n return true;\r\n }\r\n\r\n /** Set the element IDs to display with a color/transparency override.\r\n * @param ids The IDs of the elements.\r\n * @param vp The viewport.\r\n * @param color ColorDef to specify override rgb and alpha.\r\n * @param override Whether to use color and alpha, only color, or only alpha from the supplied ColorDef.\r\n * @param replace true to replace currently overridden elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.addFeatureOverrideProvider]]\r\n */\r\n public overrideElements(ids: Id64Arg, vp: Viewport, color: ColorDef, override: FeatureOverrideType = FeatureOverrideType.ColorOnly, replace: boolean = false): boolean {\r\n const ovrKey = this.createOverrideKey(color, override);\r\n if (undefined === ovrKey)\r\n return false;\r\n\r\n const overrideIds = new Set<string>();\r\n for (const id of Id64.iterable(ids))\r\n overrideIds.add(id);\r\n\r\n if (0 === overrideIds.size)\r\n return false;\r\n\r\n const existingIds = (!replace ? this.getOverriddenElementsByKey(ovrKey) : undefined);\r\n const oldSize = (undefined !== existingIds ? existingIds.size : 0);\r\n if (0 !== oldSize && undefined !== existingIds)\r\n for (const id of existingIds)\r\n overrideIds.add(id);\r\n\r\n if (oldSize === overrideIds.size)\r\n return false;\r\n\r\n if (undefined === this._overrideAppearance) {\r\n this._overrideAppearance = new Map<number, Id64Set>();\r\n } else {\r\n for (const [key, otherIds] of this._overrideAppearance) {\r\n if (key === ovrKey) // Make sure these ids are unique to this color/transparency key...\r\n continue;\r\n\r\n for (const id of Id64.iterable(ids))\r\n otherIds.delete(id);\r\n\r\n if (0 !== otherIds.size)\r\n continue;\r\n\r\n this._overrideAppearance.delete(key);\r\n }\r\n }\r\n\r\n this._overrideAppearance.set(ovrKey, overrideIds);\r\n vp.setFeatureOverrideProviderChanged();\r\n\r\n return true;\r\n }\r\n\r\n /** Set the currently selected elements to display with a color/transparency override.\r\n * @param vp The viewport.\r\n * @param color ColorDef to specify override rgb and alpha.\r\n * @param override Whether to use color and alpha, only color, or only alpha from the supplied ColorDef.\r\n * @param replace true to replace currently overridden elements (if any) or false to add to the existing set.\r\n * @param clearSelection true to clear current selection after setting appearance override, false to leave selected.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.addFeatureOverrideProvider]]\r\n */\r\n public overrideSelectedElements(vp: Viewport, color: ColorDef, override: FeatureOverrideType = FeatureOverrideType.ColorOnly, replace: boolean = false, clearSelection: boolean = true): boolean {\r\n const selection = vp.view.iModel.selectionSet;\r\n if (!selection.isActive || !this.overrideElements(selection.elements, vp, color, override, replace))\r\n return false;\r\n if (clearSelection)\r\n selection.emptyAll();\r\n return true;\r\n }\r\n\r\n /** @return true if provider is currently overriding the display of any elements. */\r\n public isActive(vp: Viewport): boolean { return (undefined !== this.getNeverDrawnElements(vp) || undefined !== this.getAlwaysDrawnElements(vp) || undefined !== this.getOverriddenElements()); }\r\n\r\n /** Serialize to JSON representation.\r\n * @see [[EmphasizeElements.fromJSON]]\r\n */\r\n public toJSON(vp: Viewport): EmphasizeElementsProps {\r\n const props: EmphasizeElementsProps = {};\r\n const neverDrawn = this.getNeverDrawnElements(vp);\r\n if (undefined !== neverDrawn)\r\n props.neverDrawn = [...neverDrawn];\r\n\r\n const alwaysDrawn = this.getAlwaysDrawnElements(vp);\r\n if (undefined !== alwaysDrawn)\r\n props.alwaysDrawn = [...alwaysDrawn];\r\n\r\n if (vp.isAlwaysDrawnExclusive)\r\n props.isAlwaysDrawnExclusive = true; // isolate\r\n\r\n const alwaysDrawnExclusiveEmphasized = this.getEmphasizedIsolatedElements();\r\n if (undefined !== alwaysDrawnExclusiveEmphasized)\r\n props.alwaysDrawnExclusiveEmphasized = [...alwaysDrawnExclusiveEmphasized];\r\n\r\n if (undefined !== this.defaultAppearance)\r\n props.defaultAppearance = this.defaultAppearance; // emphasize (or specifically set for override)\r\n\r\n if (this.unanimatedAppearance)\r\n props.unanimatedAppearance = this.unanimatedAppearance;\r\n\r\n const overriddenElements = this.getOverriddenElements();\r\n if (undefined !== overriddenElements) {\r\n const appearanceOverride: AppearanceOverrideProps[] = [];\r\n for (const [key, ovrIds] of overriddenElements) {\r\n const { color, overrideType } = { ...this.getOverrideFromKey(key) };\r\n const ids = [...ovrIds];\r\n appearanceOverride.push({ overrideType, color: color.toJSON(), ids });\r\n }\r\n\r\n props.appearanceOverride = appearanceOverride;\r\n }\r\n\r\n if (this.wantEmphasis)\r\n props.wantEmphasis = true;\r\n\r\n return props;\r\n }\r\n\r\n /** Initialize from JSON representation.\r\n * @see [[EmphasizeElements.toJSON]]\r\n */\r\n public fromJSON(props: EmphasizeElementsProps, vp: Viewport): boolean {\r\n let changed = false;\r\n if (undefined !== props.neverDrawn && this.setNeverDrawnElements(new Set<string>(props.neverDrawn), vp, true))\r\n changed = true;\r\n\r\n if (undefined !== props.alwaysDrawn && this.setAlwaysDrawnElements(new Set<string>(props.alwaysDrawn), vp, undefined !== props.isAlwaysDrawnExclusive && props.isAlwaysDrawnExclusive))\r\n changed = true;\r\n\r\n if (undefined !== props.alwaysDrawnExclusiveEmphasized)\r\n this._emphasizeIsolated = new Set<string>(props.alwaysDrawnExclusiveEmphasized); // changed status determined by setAlwaysDrawnElements...\r\n\r\n if (undefined !== props.defaultAppearance)\r\n this.defaultAppearance = FeatureAppearance.fromJSON(props.defaultAppearance); // changed status determined by setAlwaysDrawnElements or overrideElements...\r\n\r\n if (props.unanimatedAppearance)\r\n this.unanimatedAppearance = FeatureAppearance.fromJSON(props.unanimatedAppearance);\r\n\r\n if (undefined !== props.appearanceOverride) {\r\n for (const ovrApp of props.appearanceOverride) {\r\n if (undefined === ovrApp.ids)\r\n continue;\r\n\r\n if (this.overrideElements(new Set<string>(ovrApp.ids), vp, ColorDef.fromJSON(ovrApp.color), ovrApp.overrideType, true))\r\n changed = true;\r\n }\r\n }\r\n\r\n const wantEmphasis = true === props.wantEmphasis;\r\n if (wantEmphasis !== this.wantEmphasis) {\r\n this.wantEmphasis = wantEmphasis;\r\n changed = true;\r\n }\r\n\r\n return changed;\r\n }\r\n\r\n /** Return the EmphasizeElements provider currently registered with the specified Viewport, if one is already registered. */\r\n public static get(vp: Viewport): EmphasizeElements | undefined {\r\n return vp.findFeatureOverrideProviderOfType<EmphasizeElements>(EmphasizeElements);\r\n }\r\n\r\n /** Return the EmphasizeElements provider currently registered with the specified Viewport, or register a new one and return it. */\r\n public static getOrCreate(vp: Viewport): EmphasizeElements {\r\n let provider = this.get(vp);\r\n if (!provider) {\r\n provider = new EmphasizeElements();\r\n vp.addFeatureOverrideProvider(provider);\r\n }\r\n\r\n return provider;\r\n }\r\n\r\n /** Drop the EmphasizeElements provider currently registered with the specified Viewport, if any is registered. */\r\n public static clear(vp: Viewport, inactiveOnly: boolean = false) {\r\n const provider = this.get(vp);\r\n\r\n if (undefined === provider || (inactiveOnly && provider.isActive))\r\n return;\r\n\r\n vp.clearNeverDrawn();\r\n vp.clearAlwaysDrawn();\r\n vp.dropFeatureOverrideProvider(provider);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"EmphasizeElements.js","sourceRoot":"","sources":["../../src/EmphasizeElements.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAoB,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAA2B,QAAQ,EAA0B,iBAAiB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKjJ;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAA9B;QAKmB,0BAAqB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1F,4LAA4L;QACrL,iBAAY,GAAG,KAAK,CAAC;IA+mB9B,CAAC;IA7mBC;;OAEG;IACI,mBAAmB,CAAC,SAAqC,EAAE,EAAY;QAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,SAAS,KAAK,kBAAkB,EAAE;YACpC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAmB,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAE/F,0DAA0D;YAC1D,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;YAC3C,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE;gBAC1C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC1B;SACF;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACxD,IAAI,SAAS,KAAK,kBAAkB,EAAE;YACpC,IAAI,SAAS,KAAK,IAAI,CAAC,kBAAkB;gBACvC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEzD,0DAA0D;YAC1D,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YACvE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,kBAAkB,EAAE;gBAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;gBACpD,KAAK,MAAM,SAAS,IAAI,GAAG,EAAE;oBAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC3B,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAC1B;aACF;SACF;QAED,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,IAAI,CAAC,qBAAqB,CAAC,kBAAkB;gBAC/C,SAAS,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;gBAE1C,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACvE;IACH,CAAC;IAED,gBAAgB;IACN,uBAAuB,CAAC,GAAW;QAC3C,IAAI,YAAgC,CAAC;QACrC,IAAI,GAAyB,CAAC;QAE9B,IAAI,GAAG,GAAG,CAAC,EAAE;YACX,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC9B;aAAM;YACL,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrC,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,KAAK,CAAC,QAAQ,EAAE,EAAE,mDAAmD;gBAC7E,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,GAAG,GAAG,CAAC;SAChD;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACxD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,oDAAoD;IAC7C,iBAAiB,CAAC,KAAe,EAAE,QAA6B;QACrE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,QAAQ,QAAQ,EAAE;YAChB,KAAK,mBAAmB,CAAC,aAAa;gBACpC,OAAO,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,uEAAuE;YAChI,KAAK,mBAAmB,CAAC,SAAS;gBAChC,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;YAC9E,KAAK,mBAAmB,CAAC,SAAS;gBAChC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;SACjC;IACH,CAAC;IAED,qDAAqD;IAC9C,kBAAkB,CAAC,GAAW;QACnC,IAAI,YAAY,CAAC;QACjB,IAAI,KAAK,CAAC;QAEV,IAAI,GAAG,GAAG,CAAC,EAAE;YACX,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAAC;SAC9C;aAAM;YACL,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,KAAK,CAAC,QAAQ,EAAE,EAAE;gBAC1B,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC7B,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAAC;aAC9C;iBAAM;gBACL,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC;aAClD;SACF;QAED,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,IAAW,iBAAiB,KAAoC,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACjG,IAAW,iBAAiB,CAAC,UAAyC,IAAI,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC;IAEjH;;;;OAIG;IACH,IAAW,oBAAoB;QAC7B,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IACD,IAAW,oBAAoB,CAAC,UAAyC;QACvE,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC;IAC1C,CAAC;IAED,0FAA0F;IACnF,uBAAuB;QAC5B,OAAO,iBAAiB,CAAC,QAAQ,CAAC;YAChC,GAAG,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YACnC,YAAY,EAAE,GAAG;YACjB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,yDAAyD;IAClD,qBAAqB,CAAC,EAAY;QACvC,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/F,CAAC;IAED,0DAA0D;IACnD,sBAAsB,CAAC,EAAY;QACxC,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClG,CAAC;IAED,oDAAoD;IAC7C,iBAAiB,CAAC,EAAY;QACnC,OAAO,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,sDAAsD;IAC/C,mBAAmB,CAAC,EAAY;QACrC,OAAO,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnF,CAAC;IAED,iEAAiE;IAC1D,6BAA6B;QAClC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,kBAAkB,IAAI,SAAS,KAAK,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtK,CAAC;IAED,wDAAwD;IACjD,qBAAqB,CAAC,EAAY;QACvC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,kBAAkB,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9M,CAAC;IAED,yEAAyE;IAClE,qBAAqB;QAC1B,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,mBAAmB,IAAI,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChI,CAAC;IAED,sFAAsF;IAC/E,0BAA0B,CAAC,GAAW;QAC3C,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClG,CAAC;IAED;;OAEG;IACI,uBAAuB,CAAC,EAAY;QACzC,IAAI,SAAS,KAAK,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,wBAAwB,CAAC,EAAY;QAC1C,IAAI,SAAS,KAAK,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAC,EAAY;QACrC,OAAO,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,EAAY;QACvC,IAAI,SAAS,KAAK,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,IAAI,IAAI,CAAC,+BAA+B,CAAC,EAAE,EAAE,IAAI,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,uBAAuB,CAAC,EAAY;QACzC,IAAI,SAAS,KAAK,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QAEf,IAAI,IAAI,CAAC,+BAA+B,CAAC,EAAE,EAAE,KAAK,CAAC;YACjD,OAAO,IAAI,CAAC;QAEd,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,+BAA+B,CAAC,EAAY,EAAE,gBAAyB;QAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAChE,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC,uDAAuD;QAC5F,IAAI,SAAS,KAAK,kBAAkB;YAClC,OAAO,KAAK,CAAC;QAEf,IAAI,gBAAgB,IAAI,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,EAAE,EAAE,KAAK,CAAC;YAChF,OAAO,IAAI,CAAC;QAEd,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,EAAE,CAAC,iCAAiC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,uBAAuB,CAAC,EAAY,EAAE,QAA2B;QACtE,IAAI,SAAS,KAAK,IAAI,CAAC,mBAAmB;YACxC,OAAO,KAAK,CAAC;QAEf,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC5C,OAAO,KAAK,CAAC;aAChB;iBAAM;gBACL,IAAI,OAAO,GAAG,KAAK,CAAC;gBAEpB,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;oBAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;oBAC9B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;wBACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEtB,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI;wBAC3B,OAAO,GAAG,IAAI,CAAC;oBAEjB,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI;wBACrB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBAC7C;gBAED,IAAI,CAAC,OAAO;oBACV,OAAO,KAAK,CAAC;aAChB;SACF;aAAM;YACL,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;SACtC;QACD,EAAE,CAAC,iCAAiC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IACN,WAAW,CAAC,GAAY,EAAE,OAAgB,EAAE,WAAqB;QACzE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEjB,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI;YACnB,OAAO,SAAS,CAAC;QAEnB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,OAAO,IAAI,SAAS,KAAK,WAAW;YAC5C,KAAK,MAAM,EAAE,IAAI,WAAW;gBAC1B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEnB,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI;YACzB,OAAO,SAAS,CAAC;QAEnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACI,qBAAqB,CAAC,GAAY,EAAE,EAAY,EAAE,UAAmB,IAAI;QAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,SAAS,KAAK,SAAS;YACzB,OAAO,KAAK,CAAC;QACf,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACI,sBAAsB,CAAC,GAAY,EAAE,EAAY,EAAE,YAAqB,IAAI,EAAE,UAAmB,IAAI;QAC1G,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;QAClE,IAAI,SAAS,KAAK,UAAU;YAC1B,OAAO,KAAK,CAAC;QACf,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACI,YAAY,CAAC,GAAY,EAAE,EAAY,EAAE,UAAmB,KAAK;QACtE,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;OAMG;IACI,oBAAoB,CAAC,EAAY,EAAE,UAAmB,KAAK,EAAE,iBAA0B,IAAI;QAChG,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC;YAC5E,OAAO,KAAK,CAAC;QACf,IAAI,cAAc;YAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACI,eAAe,CAAC,GAAY,EAAE,EAAY,EAAE,UAAmB,IAAI;QACxE,MAAM,aAAa,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC;YACtD,OAAO,KAAK,CAAC;QAEf,IAAI,aAAa;YACf,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC,0EAA0E;QAE3I,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACI,uBAAuB,CAAC,EAAY,EAAE,UAAmB,IAAI,EAAE,iBAA0B,IAAI;QAClG,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC;YAC/E,OAAO,KAAK,CAAC;QACf,IAAI,cAAc;YAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACI,iBAAiB,CAAC,GAAY,EAAE,EAAY,EAAE,iBAAqC,EAAE,UAAmB,IAAI;QACjH,IAAI,SAAS,KAAK,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7E,IAAI,SAAS,KAAK,YAAY;gBAC5B,OAAO,KAAK,CAAC;YAEf,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;YACvC,EAAE,CAAC,iCAAiC,EAAE,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC;gBACvD,OAAO,KAAK,CAAC;YAEf,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;SACrC;QAED,IAAI,CAAC,kBAAkB,GAAG,CAAC,SAAS,KAAK,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACjH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACI,yBAAyB,CAAC,EAAY,EAAE,iBAAqC,EAAE,UAAmB,IAAI,EAAE,iBAA0B,IAAI;QAC3I,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC;YACpG,OAAO,KAAK,CAAC;QAEf,IAAI,cAAc;YAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACI,gBAAgB,CAAC,GAAY,EAAE,EAAY,EAAE,KAAe,EAAE,WAAgC,mBAAmB,CAAC,SAAS,EAAE,UAAmB,KAAK;QAC1J,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,SAAS,KAAK,MAAM;YACtB,OAAO,KAAK,CAAC;QAEf,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YACjC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEtB,IAAI,CAAC,KAAK,WAAW,CAAC,IAAI;YACxB,OAAO,KAAK,CAAC;QAEf,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,OAAO,IAAI,SAAS,KAAK,WAAW;YAC5C,KAAK,MAAM,EAAE,IAAI,WAAW;gBAC1B,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAExB,IAAI,OAAO,KAAK,WAAW,CAAC,IAAI;YAC9B,OAAO,KAAK,CAAC;QAEf,IAAI,SAAS,KAAK,IAAI,CAAC,mBAAmB,EAAE;YAC1C,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,EAAmB,CAAC;SACvD;aAAM;YACL,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBACtD,IAAI,GAAG,KAAK,MAAM,EAAE,mEAAmE;oBACrF,SAAS;gBAEX,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAEtB,IAAI,CAAC,KAAK,QAAQ,CAAC,IAAI;oBACrB,SAAS;gBAEX,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACtC;SACF;QAED,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAClD,EAAE,CAAC,iCAAiC,EAAE,CAAC;QAEvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACI,wBAAwB,CAAC,EAAY,EAAE,KAAe,EAAE,WAAgC,mBAAmB,CAAC,SAAS,EAAE,UAAmB,KAAK,EAAE,iBAA0B,IAAI;QACpL,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;YACjG,OAAO,KAAK,CAAC;QACf,IAAI,cAAc;YAChB,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oFAAoF;IAC7E,QAAQ,CAAC,EAAY,IAAa,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,SAAS,KAAK,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,SAAS,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhM;;OAEG;IACI,MAAM,CAAC,EAAY;QACxB,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,UAAU;YAC1B,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,WAAW;YAC3B,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;QAEvC,IAAI,EAAE,CAAC,sBAAsB;YAC3B,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC,UAAU;QAEjD,MAAM,8BAA8B,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAC5E,IAAI,SAAS,KAAK,8BAA8B;YAC9C,KAAK,CAAC,8BAA8B,GAAG,CAAC,GAAG,8BAA8B,CAAC,CAAC;QAE7E,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;YACtC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,+CAA+C;QAEnG,IAAI,IAAI,CAAC,oBAAoB;YAC3B,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAEzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACxD,IAAI,SAAS,KAAK,kBAAkB,EAAE;YACpC,MAAM,kBAAkB,GAA8B,EAAE,CAAC;YACzD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,kBAAkB,EAAE;gBAC9C,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpE,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBACxB,kBAAkB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;aACvE;YAED,KAAK,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAC/C;QAED,IAAI,IAAI,CAAC,YAAY;YACnB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAE5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,KAA6B,EAAE,EAAY;QACzD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,KAAK,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAS,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;YAC3G,OAAO,GAAG,IAAI,CAAC;QAEjB,IAAI,SAAS,KAAK,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAS,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,SAAS,KAAK,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC;YACpL,OAAO,GAAG,IAAI,CAAC;QAEjB,IAAI,SAAS,KAAK,KAAK,CAAC,8BAA8B;YACpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC,yDAAyD;QAE5I,IAAI,SAAS,KAAK,KAAK,CAAC,iBAAiB;YACvC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,6EAA6E;QAE7J,IAAI,KAAK,CAAC,oBAAoB;YAC5B,IAAI,CAAC,oBAAoB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAErF,IAAI,SAAS,KAAK,KAAK,CAAC,kBAAkB,EAAE;YAC1C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE;gBAC7C,IAAI,SAAS,KAAK,MAAM,CAAC,GAAG;oBAC1B,SAAS;gBAEX,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAS,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC;oBACpH,OAAO,GAAG,IAAI,CAAC;aAClB;SACF;QAED,MAAM,YAAY,GAAG,IAAI,KAAK,KAAK,CAAC,YAAY,CAAC;QACjD,IAAI,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE;YACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,OAAO,GAAG,IAAI,CAAC;SAChB;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,4HAA4H;IACrH,MAAM,CAAC,GAAG,CAAC,EAAY;QAC5B,OAAO,EAAE,CAAC,iCAAiC,CAAoB,iBAAiB,CAAC,CAAC;IACpF,CAAC;IAED,mIAAmI;IAC5H,MAAM,CAAC,WAAW,CAAC,EAAY;QACpC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACnC,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;SACzC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,kHAAkH;IAC3G,MAAM,CAAC,KAAK,CAAC,EAAY,EAAE,eAAwB,KAAK;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE9B,IAAI,SAAS,KAAK,QAAQ,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC;YAC/D,OAAO;QAET,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACtB,EAAE,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF","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 Rendering\r\n */\r\n\r\nimport { Id64, Id64Arg, Id64Set } from \"@itwin/core-bentley\";\r\nimport { AppearanceOverrideProps, ColorDef, EmphasizeElementsProps, FeatureAppearance, FeatureOverrideType, RgbColor } from \"@itwin/core-common\";\r\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\r\nimport { FeatureOverrideProvider } from \"./FeatureOverrideProvider\";\r\nimport { Viewport } from \"./Viewport\";\r\n\r\n/** An implementation of [[FeatureOverrideProvider]] for emphasizing selected elements through simple color/transparency appearance overrides.\r\n * @public\r\n * @extensions\r\n */\r\nexport class EmphasizeElements implements FeatureOverrideProvider {\r\n private _defaultAppearance?: FeatureAppearance;\r\n private _unanimatedAppearance?: FeatureAppearance;\r\n private _emphasizeIsolated?: Id64Set;\r\n private _overrideAppearance?: Map<number, Id64Set>;\r\n private readonly _emphasizedAppearance = FeatureAppearance.fromJSON({ emphasized: true });\r\n\r\n /** If true, all overridden and emphasized elements will also have the \"emphasis\" effect applied to them. This causes them to be hilited using the current [[Viewport.emphasisSettings]]. */\r\n public wantEmphasis = false;\r\n\r\n /** Establish active feature overrides to emphasize elements and apply color/transparency overrides.\r\n * @see [[Viewport.addFeatureOverrideProvider]]\r\n */\r\n public addFeatureOverrides(overrides: FeatureSymbology.Overrides, vp: Viewport): void {\r\n const emphasizedElements = this.getEmphasizedElements(vp);\r\n if (undefined !== emphasizedElements) {\r\n overrides.setDefaultOverrides(this._defaultAppearance!);\r\n const appearance = this.wantEmphasis ? this._emphasizedAppearance : FeatureAppearance.defaults;\r\n\r\n // Avoid creating a new object per-element inside the loop\r\n const args = { elementId: \"\", appearance };\r\n for (const elementId of emphasizedElements) {\r\n args.elementId = elementId;\r\n overrides.override(args);\r\n }\r\n }\r\n\r\n const overriddenElements = this.getOverriddenElements();\r\n if (undefined !== overriddenElements) {\r\n if (undefined !== this._defaultAppearance)\r\n overrides.setDefaultOverrides(this._defaultAppearance);\r\n\r\n // Avoid creating a new object per-element inside the loop\r\n const args = { elementId: \"\", appearance: FeatureAppearance.defaults };\r\n for (const [key, ids] of overriddenElements) {\r\n args.appearance = this.createAppearanceFromKey(key);\r\n for (const elementId of ids) {\r\n args.elementId = elementId;\r\n overrides.override(args);\r\n }\r\n }\r\n }\r\n\r\n if (this._unanimatedAppearance) {\r\n if (this._unanimatedAppearance.isFullyTransparent)\r\n overrides.neverDrawnAnimationNodes.add(0);\r\n else\r\n overrides.animationNodeOverrides.set(0, this._unanimatedAppearance);\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected createAppearanceFromKey(key: number): FeatureAppearance {\r\n let transparency: number | undefined;\r\n let rgb: RgbColor | undefined;\r\n\r\n if (key < 0) {\r\n transparency = Math.abs(key);\r\n } else {\r\n const color = ColorDef.fromJSON(key);\r\n rgb = RgbColor.fromColorDef(color);\r\n if (0 !== color.getAlpha()) // Fully transparent signifies to use color only...\r\n transparency = color.getTransparency() / 255;\r\n }\r\n\r\n const emphasized = this.wantEmphasis ? true : undefined;\r\n return FeatureAppearance.fromJSON({ rgb, transparency, emphasized });\r\n }\r\n\r\n /** Get override key from color and override type */\r\n public createOverrideKey(color: ColorDef, override: FeatureOverrideType): number | undefined {\r\n const colorValues = color.colors;\r\n switch (override) {\r\n case FeatureOverrideType.ColorAndAlpha:\r\n return 255 === colorValues.t ? undefined : color.tbgr; // Hiding elements should be done using neverDrawn, not transparency...\r\n case FeatureOverrideType.ColorOnly:\r\n return ColorDef.from(colorValues.r, colorValues.g, colorValues.b, 255).tbgr;\r\n case FeatureOverrideType.AlphaOnly:\r\n return -(colorValues.t / 255);\r\n }\r\n }\r\n\r\n /** Get color and override type for the given key. */\r\n public getOverrideFromKey(key: number): { overrideType: FeatureOverrideType, color: ColorDef } {\r\n let overrideType;\r\n let color;\r\n\r\n if (key < 0) {\r\n color = ColorDef.from(0, 0, 0, 255 * Math.abs(key));\r\n overrideType = FeatureOverrideType.AlphaOnly;\r\n } else {\r\n color = ColorDef.fromJSON(key);\r\n if (0 === color.getAlpha()) {\r\n color = color.withAlpha(255);\r\n overrideType = FeatureOverrideType.ColorOnly;\r\n } else {\r\n overrideType = FeatureOverrideType.ColorAndAlpha;\r\n }\r\n }\r\n\r\n return { overrideType, color };\r\n }\r\n\r\n /** Establish a default appearance to apply to elements without overrides. If changing the default appearance\r\n * without also calling overrideElements, an explicit refresh must be requested for the change to take effect.\r\n * @see [[Viewport.setFeatureOverrideProviderChanged]]\r\n */\r\n public get defaultAppearance(): FeatureAppearance | undefined { return this._defaultAppearance; }\r\n public set defaultAppearance(appearance: FeatureAppearance | undefined) { this._defaultAppearance = appearance; }\r\n\r\n /** Establish a default appearance to apply to elements that are not animated by the view's [RenderSchedule.Script]($common).\r\n * @note If this is the only change made to EmphasizeElements, you must call [[Viewport.setFeatureOverrideProviderChanged]] for\r\n * the change to take immediate effect.\r\n * @see [[createDefaultAppearance]] to create an appearance suitable for de-emphasizing the non-animated elements.\r\n */\r\n public get unanimatedAppearance(): FeatureAppearance | undefined {\r\n return this._unanimatedAppearance;\r\n }\r\n public set unanimatedAppearance(appearance: FeatureAppearance | undefined) {\r\n this._unanimatedAppearance = appearance;\r\n }\r\n\r\n /** Create default appearance to use for emphasizeElements when not supplied by caller. */\r\n public createDefaultAppearance(): FeatureAppearance {\r\n return FeatureAppearance.fromJSON({\r\n rgb: new RgbColor(0xe4, 0xe4, 0xe4),\r\n transparency: 0.8,\r\n nonLocatable: true,\r\n });\r\n }\r\n\r\n /** Get the IDs of the currently never drawn elements. */\r\n public getNeverDrawnElements(vp: Viewport): Id64Set | undefined {\r\n return (undefined !== vp.neverDrawn && 0 !== vp.neverDrawn.size ? vp.neverDrawn : undefined);\r\n }\r\n\r\n /** Get the IDs of the currently always drawn elements. */\r\n public getAlwaysDrawnElements(vp: Viewport): Id64Set | undefined {\r\n return (undefined !== vp.alwaysDrawn && 0 !== vp.alwaysDrawn.size ? vp.alwaysDrawn : undefined);\r\n }\r\n\r\n /** Get the IDs of the currently hidden elements. */\r\n public getHiddenElements(vp: Viewport): Id64Set | undefined {\r\n return this.getNeverDrawnElements(vp);\r\n }\r\n\r\n /** Get the IDs of the currently isolated elements. */\r\n public getIsolatedElements(vp: Viewport): Id64Set | undefined {\r\n return (vp.isAlwaysDrawnExclusive ? this.getAlwaysDrawnElements(vp) : undefined);\r\n }\r\n\r\n /** Get the IDs of the currently emphasized isolated elements. */\r\n public getEmphasizedIsolatedElements(): Id64Set | undefined {\r\n return (undefined !== this._defaultAppearance && undefined !== this._emphasizeIsolated && 0 !== this._emphasizeIsolated.size ? this._emphasizeIsolated : undefined);\r\n }\r\n\r\n /** Get the IDs of the currently emphasized elements. */\r\n public getEmphasizedElements(vp: Viewport): Id64Set | undefined {\r\n return (undefined !== this.getEmphasizedIsolatedElements() ? this._emphasizeIsolated : (undefined !== this._defaultAppearance && !vp.isAlwaysDrawnExclusive ? this.getAlwaysDrawnElements(vp) : undefined));\r\n }\r\n\r\n /** Get the map of current elements with color/transparency overrides. */\r\n public getOverriddenElements(): Map<number, Id64Set> | undefined {\r\n return (undefined !== this._overrideAppearance && 0 !== this._overrideAppearance.size ? this._overrideAppearance : undefined);\r\n }\r\n\r\n /** Get the IDs of current elements with the specified color/transparency override. */\r\n public getOverriddenElementsByKey(key: number): Id64Set | undefined {\r\n return (undefined !== this._overrideAppearance ? this._overrideAppearance.get(key) : undefined);\r\n }\r\n\r\n /** Clear never drawn elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearNeverDrawnElements(vp: Viewport): boolean {\r\n if (undefined === this.getNeverDrawnElements(vp))\r\n return false;\r\n vp.clearNeverDrawn();\r\n return true;\r\n }\r\n\r\n /** Clear always drawn elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearAlwaysDrawnElements(vp: Viewport): boolean {\r\n if (undefined === this.getAlwaysDrawnElements(vp))\r\n return false;\r\n vp.clearAlwaysDrawn();\r\n return true;\r\n }\r\n\r\n /** Clear hidden elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearHiddenElements(vp: Viewport): boolean {\r\n return this.clearNeverDrawnElements(vp);\r\n }\r\n\r\n /** Clear isolated elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearIsolatedElements(vp: Viewport): boolean {\r\n if (undefined === this.getIsolatedElements(vp))\r\n return false;\r\n if (this.clearEmphasizedIsolatedElements(vp, true))\r\n return true;\r\n return this.clearAlwaysDrawnElements(vp);\r\n }\r\n\r\n /** Clear emphasized elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearEmphasizedElements(vp: Viewport): boolean {\r\n if (undefined === this.getEmphasizedElements(vp))\r\n return false;\r\n\r\n if (this.clearEmphasizedIsolatedElements(vp, false))\r\n return true;\r\n\r\n if (!this.clearAlwaysDrawnElements(vp))\r\n return false;\r\n\r\n this._defaultAppearance = undefined;\r\n return true;\r\n }\r\n\r\n /** Clear emphasized isolated elements.\r\n * @return false if nothing to clear.\r\n */\r\n public clearEmphasizedIsolatedElements(vp: Viewport, setToAlwaysDrawn: boolean): boolean {\r\n const emphasizedIsolated = this.getEmphasizedIsolatedElements();\r\n this._emphasizeIsolated = undefined; // Always clear in case default appearance was unset...\r\n if (undefined === emphasizedIsolated)\r\n return false;\r\n\r\n if (setToAlwaysDrawn && this.setAlwaysDrawnElements(emphasizedIsolated, vp, false))\r\n return true;\r\n\r\n this._defaultAppearance = undefined;\r\n vp.setFeatureOverrideProviderChanged();\r\n return true;\r\n }\r\n\r\n /** Clear color/transparency overrides from elements. Removes all overrides when keyOrIds isn't supplied.\r\n * @param keyOrIds Specify a key value from [[EmphasizeElements.getOverriddenElements]] or [[EmphasizeElements.createOverrideKey]]\r\n * to remove a single color/transparency override for the corresponding elements or specify the IDs of elements to\r\n * remove any color/transparency override from.\r\n * @return false if nothing to clear.\r\n */\r\n public clearOverriddenElements(vp: Viewport, keyOrIds?: number | Id64Arg): boolean {\r\n if (undefined === this._overrideAppearance)\r\n return false;\r\n\r\n if (undefined !== keyOrIds) {\r\n if (typeof keyOrIds === \"number\") {\r\n if (!this._overrideAppearance.delete(keyOrIds))\r\n return false;\r\n } else {\r\n let changed = false;\r\n\r\n for (const [otherKey, otherIds] of this._overrideAppearance) {\r\n const oldSize = otherIds.size;\r\n for (const id of Id64.iterable(keyOrIds))\r\n otherIds.delete(id);\r\n\r\n if (oldSize !== otherIds.size)\r\n changed = true;\r\n\r\n if (0 === otherIds.size)\r\n this._overrideAppearance.delete(otherKey);\r\n }\r\n\r\n if (!changed)\r\n return false;\r\n }\r\n } else {\r\n this._overrideAppearance = undefined;\r\n }\r\n vp.setFeatureOverrideProviderChanged();\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n protected updateIdSet(ids: Id64Arg, replace: boolean, existingIds?: Id64Set): Id64Set | undefined {\r\n const newIds = new Set<string>();\r\n for (const id of Id64.iterable(ids))\r\n newIds.add(id);\r\n\r\n if (0 === newIds.size)\r\n return undefined;\r\n\r\n const oldSize = (!replace && undefined !== existingIds ? existingIds.size : 0);\r\n if (0 !== oldSize && undefined !== existingIds)\r\n for (const id of existingIds)\r\n newIds.add(id);\r\n\r\n if (oldSize === newIds.size)\r\n return undefined;\r\n\r\n return newIds;\r\n }\r\n\r\n /** Set the element IDs to be never drawn.\r\n * @param ids The IDs of the elements to never draw.\r\n * @param vp The viewport.\r\n * @param replace true to replace currently hidden elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.neverDrawn]]\r\n * @internal\r\n */\r\n public setNeverDrawnElements(ids: Id64Arg, vp: Viewport, replace: boolean = true): boolean {\r\n const hiddenIds = this.updateIdSet(ids, replace, vp.neverDrawn);\r\n if (undefined === hiddenIds)\r\n return false;\r\n vp.setNeverDrawn(hiddenIds);\r\n return true;\r\n }\r\n\r\n /** Set the element IDs to be always drawn.\r\n * @param ids The IDs of the elements to always draw.\r\n * @param vp The viewport.\r\n * @param exclusive If true, *only* the specified elements will be drawn.\r\n * @param replace true to replace currently always drawn elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.isAlwaysDrawnExclusive]]\r\n * @internal\r\n */\r\n public setAlwaysDrawnElements(ids: Id64Arg, vp: Viewport, exclusive: boolean = true, replace: boolean = true): boolean {\r\n const visibleIds = this.updateIdSet(ids, replace, vp.alwaysDrawn);\r\n if (undefined === visibleIds)\r\n return false;\r\n vp.setAlwaysDrawn(visibleIds, exclusive);\r\n return true;\r\n }\r\n\r\n /** Set the element IDs to be never drawn.\r\n * @param ids The IDs of the elements to never draw.\r\n * @param vp The viewport.\r\n * @param replace true to replace currently hidden elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.neverDrawn]]\r\n */\r\n public hideElements(ids: Id64Arg, vp: Viewport, replace: boolean = false): boolean {\r\n return this.setNeverDrawnElements(ids, vp, replace);\r\n }\r\n\r\n /** Set the currently selected elements to be never drawn.\r\n * @param vp The viewport.\r\n * @param replace true to replace currently hidden elements (if any) or false to add to the existing set.\r\n * @param clearSelection true to clear current selection after setting appearance override, false to leave selected.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.neverDrawn]]\r\n */\r\n public hideSelectedElements(vp: Viewport, replace: boolean = false, clearSelection: boolean = true): boolean {\r\n const selection = vp.view.iModel.selectionSet;\r\n if (!selection.isActive || !this.hideElements(selection.elements, vp, replace))\r\n return false;\r\n if (clearSelection)\r\n selection.emptyAll();\r\n return true;\r\n }\r\n\r\n /** Set the element IDs to be always drawn exclusively.\r\n * @param ids The IDs of the elements to always draw.\r\n * @param vp The viewport.\r\n * @param replace true to replace currently isolated elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.isAlwaysDrawnExclusive]]\r\n */\r\n public isolateElements(ids: Id64Arg, vp: Viewport, replace: boolean = true): boolean {\r\n const wasEmphasized = (undefined !== this.getEmphasizedElements(vp));\r\n if (!this.setAlwaysDrawnElements(ids, vp, true, replace))\r\n return false;\r\n\r\n if (wasEmphasized)\r\n this._defaultAppearance = this._emphasizeIsolated = undefined; // Don't clear defaultAppearance unless it was established by emphasize...\r\n\r\n return true;\r\n }\r\n\r\n /** Set the currently selected elements to be always drawn exclusively.\r\n * @param vp The viewport.\r\n * @param replace true to replace currently isolated elements (if any) or false to add to the existing set.\r\n * @param clearSelection true to clear current selection after setting appearance override, false to leave selected.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.isAlwaysDrawnExclusive]]\r\n */\r\n public isolateSelectedElements(vp: Viewport, replace: boolean = true, clearSelection: boolean = true): boolean {\r\n const selection = vp.view.iModel.selectionSet;\r\n if (!selection.isActive || !this.isolateElements(selection.elements, vp, replace))\r\n return false;\r\n if (clearSelection)\r\n selection.emptyAll();\r\n return true;\r\n }\r\n\r\n /** Set the element IDs to be always drawn normally with all other elements in the view overridden to draw using a default appearance.\r\n * @param ids The IDs of the elements to always draw.\r\n * @param vp The viewport.\r\n * @param defaultAppearance Optional default appearance, uses non-locatable transparent grey if not specified.\r\n * @param replace true to replace currently overridden elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.isAlwaysDrawnExclusive]]\r\n */\r\n public emphasizeElements(ids: Id64Arg, vp: Viewport, defaultAppearance?: FeatureAppearance, replace: boolean = true): boolean {\r\n if (undefined !== this.getIsolatedElements(vp)) {\r\n const emphasizeIds = this.updateIdSet(ids, replace, this._emphasizeIsolated);\r\n if (undefined === emphasizeIds)\r\n return false;\r\n\r\n this._emphasizeIsolated = emphasizeIds;\r\n vp.setFeatureOverrideProviderChanged();\r\n } else {\r\n if (!this.setAlwaysDrawnElements(ids, vp, false, replace))\r\n return false;\r\n\r\n this._emphasizeIsolated = undefined;\r\n }\r\n\r\n this._defaultAppearance = (undefined === defaultAppearance ? this.createDefaultAppearance() : defaultAppearance);\r\n return true;\r\n }\r\n\r\n /** Set the currently selected elements to be always drawn normally with all other elements in the view overridden to draw using a default appearance.\r\n * @param vp The viewport.\r\n * @param defaultAppearance Optional default appearance, uses transparent grey if not specified.\r\n * @param replace true to replace currently overridden elements (if any) or false to add to the existing set.\r\n * @param clearSelection true to clear current selection after setting appearance override, false to leave selected.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.isAlwaysDrawnExclusive]]\r\n */\r\n public emphasizeSelectedElements(vp: Viewport, defaultAppearance?: FeatureAppearance, replace: boolean = true, clearSelection: boolean = true): boolean {\r\n const selection = vp.view.iModel.selectionSet;\r\n if (!selection.isActive || !this.emphasizeElements(selection.elements, vp, defaultAppearance, replace))\r\n return false;\r\n\r\n if (clearSelection)\r\n selection.emptyAll();\r\n\r\n return true;\r\n }\r\n\r\n /** Set the element IDs to display with a color/transparency override.\r\n * @param ids The IDs of the elements.\r\n * @param vp The viewport.\r\n * @param color ColorDef to specify override rgb and alpha.\r\n * @param override Whether to use color and alpha, only color, or only alpha from the supplied ColorDef.\r\n * @param replace true to replace currently overridden elements (if any) or false to add to the existing set.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.addFeatureOverrideProvider]]\r\n */\r\n public overrideElements(ids: Id64Arg, vp: Viewport, color: ColorDef, override: FeatureOverrideType = FeatureOverrideType.ColorOnly, replace: boolean = false): boolean {\r\n const ovrKey = this.createOverrideKey(color, override);\r\n if (undefined === ovrKey)\r\n return false;\r\n\r\n const overrideIds = new Set<string>();\r\n for (const id of Id64.iterable(ids))\r\n overrideIds.add(id);\r\n\r\n if (0 === overrideIds.size)\r\n return false;\r\n\r\n const existingIds = (!replace ? this.getOverriddenElementsByKey(ovrKey) : undefined);\r\n const oldSize = (undefined !== existingIds ? existingIds.size : 0);\r\n if (0 !== oldSize && undefined !== existingIds)\r\n for (const id of existingIds)\r\n overrideIds.add(id);\r\n\r\n if (oldSize === overrideIds.size)\r\n return false;\r\n\r\n if (undefined === this._overrideAppearance) {\r\n this._overrideAppearance = new Map<number, Id64Set>();\r\n } else {\r\n for (const [key, otherIds] of this._overrideAppearance) {\r\n if (key === ovrKey) // Make sure these ids are unique to this color/transparency key...\r\n continue;\r\n\r\n for (const id of Id64.iterable(ids))\r\n otherIds.delete(id);\r\n\r\n if (0 !== otherIds.size)\r\n continue;\r\n\r\n this._overrideAppearance.delete(key);\r\n }\r\n }\r\n\r\n this._overrideAppearance.set(ovrKey, overrideIds);\r\n vp.setFeatureOverrideProviderChanged();\r\n\r\n return true;\r\n }\r\n\r\n /** Set the currently selected elements to display with a color/transparency override.\r\n * @param vp The viewport.\r\n * @param color ColorDef to specify override rgb and alpha.\r\n * @param override Whether to use color and alpha, only color, or only alpha from the supplied ColorDef.\r\n * @param replace true to replace currently overridden elements (if any) or false to add to the existing set.\r\n * @param clearSelection true to clear current selection after setting appearance override, false to leave selected.\r\n * @return true if overrides were changed.\r\n * @see [[Viewport.addFeatureOverrideProvider]]\r\n */\r\n public overrideSelectedElements(vp: Viewport, color: ColorDef, override: FeatureOverrideType = FeatureOverrideType.ColorOnly, replace: boolean = false, clearSelection: boolean = true): boolean {\r\n const selection = vp.view.iModel.selectionSet;\r\n if (!selection.isActive || !this.overrideElements(selection.elements, vp, color, override, replace))\r\n return false;\r\n if (clearSelection)\r\n selection.emptyAll();\r\n return true;\r\n }\r\n\r\n /** @return true if provider is currently overriding the display of any elements. */\r\n public isActive(vp: Viewport): boolean { return (undefined !== this.getNeverDrawnElements(vp) || undefined !== this.getAlwaysDrawnElements(vp) || undefined !== this.getOverriddenElements()); }\r\n\r\n /** Serialize to JSON representation.\r\n * @see [[EmphasizeElements.fromJSON]]\r\n */\r\n public toJSON(vp: Viewport): EmphasizeElementsProps {\r\n const props: EmphasizeElementsProps = {};\r\n const neverDrawn = this.getNeverDrawnElements(vp);\r\n if (undefined !== neverDrawn)\r\n props.neverDrawn = [...neverDrawn];\r\n\r\n const alwaysDrawn = this.getAlwaysDrawnElements(vp);\r\n if (undefined !== alwaysDrawn)\r\n props.alwaysDrawn = [...alwaysDrawn];\r\n\r\n if (vp.isAlwaysDrawnExclusive)\r\n props.isAlwaysDrawnExclusive = true; // isolate\r\n\r\n const alwaysDrawnExclusiveEmphasized = this.getEmphasizedIsolatedElements();\r\n if (undefined !== alwaysDrawnExclusiveEmphasized)\r\n props.alwaysDrawnExclusiveEmphasized = [...alwaysDrawnExclusiveEmphasized];\r\n\r\n if (undefined !== this.defaultAppearance)\r\n props.defaultAppearance = this.defaultAppearance; // emphasize (or specifically set for override)\r\n\r\n if (this.unanimatedAppearance)\r\n props.unanimatedAppearance = this.unanimatedAppearance;\r\n\r\n const overriddenElements = this.getOverriddenElements();\r\n if (undefined !== overriddenElements) {\r\n const appearanceOverride: AppearanceOverrideProps[] = [];\r\n for (const [key, ovrIds] of overriddenElements) {\r\n const { color, overrideType } = { ...this.getOverrideFromKey(key) };\r\n const ids = [...ovrIds];\r\n appearanceOverride.push({ overrideType, color: color.toJSON(), ids });\r\n }\r\n\r\n props.appearanceOverride = appearanceOverride;\r\n }\r\n\r\n if (this.wantEmphasis)\r\n props.wantEmphasis = true;\r\n\r\n return props;\r\n }\r\n\r\n /** Initialize from JSON representation.\r\n * @see [[EmphasizeElements.toJSON]]\r\n */\r\n public fromJSON(props: EmphasizeElementsProps, vp: Viewport): boolean {\r\n let changed = false;\r\n if (undefined !== props.neverDrawn && this.setNeverDrawnElements(new Set<string>(props.neverDrawn), vp, true))\r\n changed = true;\r\n\r\n if (undefined !== props.alwaysDrawn && this.setAlwaysDrawnElements(new Set<string>(props.alwaysDrawn), vp, undefined !== props.isAlwaysDrawnExclusive && props.isAlwaysDrawnExclusive))\r\n changed = true;\r\n\r\n if (undefined !== props.alwaysDrawnExclusiveEmphasized)\r\n this._emphasizeIsolated = new Set<string>(props.alwaysDrawnExclusiveEmphasized); // changed status determined by setAlwaysDrawnElements...\r\n\r\n if (undefined !== props.defaultAppearance)\r\n this.defaultAppearance = FeatureAppearance.fromJSON(props.defaultAppearance); // changed status determined by setAlwaysDrawnElements or overrideElements...\r\n\r\n if (props.unanimatedAppearance)\r\n this.unanimatedAppearance = FeatureAppearance.fromJSON(props.unanimatedAppearance);\r\n\r\n if (undefined !== props.appearanceOverride) {\r\n for (const ovrApp of props.appearanceOverride) {\r\n if (undefined === ovrApp.ids)\r\n continue;\r\n\r\n if (this.overrideElements(new Set<string>(ovrApp.ids), vp, ColorDef.fromJSON(ovrApp.color), ovrApp.overrideType, true))\r\n changed = true;\r\n }\r\n }\r\n\r\n const wantEmphasis = true === props.wantEmphasis;\r\n if (wantEmphasis !== this.wantEmphasis) {\r\n this.wantEmphasis = wantEmphasis;\r\n changed = true;\r\n }\r\n\r\n return changed;\r\n }\r\n\r\n /** Return the EmphasizeElements provider currently registered with the specified Viewport, if one is already registered. */\r\n public static get(vp: Viewport): EmphasizeElements | undefined {\r\n return vp.findFeatureOverrideProviderOfType<EmphasizeElements>(EmphasizeElements);\r\n }\r\n\r\n /** Return the EmphasizeElements provider currently registered with the specified Viewport, or register a new one and return it. */\r\n public static getOrCreate(vp: Viewport): EmphasizeElements {\r\n let provider = this.get(vp);\r\n if (!provider) {\r\n provider = new EmphasizeElements();\r\n vp.addFeatureOverrideProvider(provider);\r\n }\r\n\r\n return provider;\r\n }\r\n\r\n /** Drop the EmphasizeElements provider currently registered with the specified Viewport, if any is registered. */\r\n public static clear(vp: Viewport, inactiveOnly: boolean = false) {\r\n const provider = this.get(vp);\r\n\r\n if (undefined === provider || (inactiveOnly && provider.isActive))\r\n return;\r\n\r\n vp.clearNeverDrawn();\r\n vp.clearAlwaysDrawn();\r\n vp.dropFeatureOverrideProvider(provider);\r\n }\r\n}\r\n"]}
@@ -6,6 +6,7 @@ import { Code, ElementProps, EntityProps, RelatedElement } from "@itwin/core-com
6
6
  import { IModelConnection } from "./IModelConnection";
7
7
  /** The "state" of an Entity as represented in a web browser. Every subclass of EntityState handles one BIS class.
8
8
  * @public
9
+ * @extensions
9
10
  */
10
11
  export declare class EntityState implements EntityProps {
11
12
  /** The name of the BIS schema for this class.
@@ -48,6 +49,7 @@ export declare class EntityState implements EntityProps {
48
49
  }
49
50
  /** The "state" of an Element as represented in a web browser.
50
51
  * @public
52
+ * @extensions
51
53
  */
52
54
  export declare class ElementState extends EntityState implements ElementProps {
53
55
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"EntityState.d.ts","sourceRoot":"","sources":["../../src/EntityState.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAQ,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,qBAAa,WAAY,YAAW,WAAW;IAC7C;;OAEG;IACH,WAAkB,UAAU,WAAwB;IAEpD,OAAO,KAAK,KAAK,GAAyE;IAE1F;;;;OAIG;IACH,WAAkB,SAAS,WAAuB;IAElD,4DAA4D;IAC5D,IAAW,SAAS,IAAI,MAAM,CAAiC;IAE/D,kGAAkG;IAClG,SAAgB,EAAE,EAAE,UAAU,CAAC;IAC/B,mDAAmD;IACnD,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IACzC,sDAAsD;IACtD,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,yGAAyG;IACzG,SAAgB,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAEvD;;;;OAIG;gBACS,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW;IAO9E,gBAAgB;IACT,MAAM,IAAI,WAAW;IAU5B,+DAA+D;IACxD,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAEnC,mDAAmD;IAC5C,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAE7C,kFAAkF;IAClF,WAAkB,aAAa,IAAI,MAAM,CAAmD;CAC7F;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,WAAY,YAAW,YAAY;IACnE,gBAAgB;IAChB,WAA2B,SAAS,WAAwB;IAE5D,gGAAgG;IAChG,SAAgB,KAAK,EAAE,UAAU,CAAC;IAClC,4DAA4D;IAC5D,SAAgB,IAAI,EAAE,IAAI,CAAC;IAC3B,6DAA6D;IAC7D,SAAgB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxC,2IAA2I;IAC3I,SAAgB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5C,mGAAmG;IACnG,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB;IAWzD;;OAEG;IACa,MAAM,IAAI,YAAY;CAWvC"}
1
+ {"version":3,"file":"EntityState.d.ts","sourceRoot":"","sources":["../../src/EntityState.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAQ,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;GAGG;AACH,qBAAa,WAAY,YAAW,WAAW;IAC7C;;OAEG;IACH,WAAkB,UAAU,WAAwB;IAEpD,OAAO,KAAK,KAAK,GAAyE;IAE1F;;;;OAIG;IACH,WAAkB,SAAS,WAAuB;IAElD,4DAA4D;IAC5D,IAAW,SAAS,IAAI,MAAM,CAAiC;IAE/D,kGAAkG;IAClG,SAAgB,EAAE,EAAE,UAAU,CAAC;IAC/B,mDAAmD;IACnD,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IACzC,sDAAsD;IACtD,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,yGAAyG;IACzG,SAAgB,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAEvD;;;;OAIG;gBACS,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW;IAO9E,gBAAgB;IACT,MAAM,IAAI,WAAW;IAU5B,+DAA+D;IACxD,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAEnC,mDAAmD;IAC5C,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAE7C,kFAAkF;IAClF,WAAkB,aAAa,IAAI,MAAM,CAAmD;CAC7F;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,WAAY,YAAW,YAAY;IACnE,gBAAgB;IAChB,WAA2B,SAAS,WAAwB;IAE5D,gGAAgG;IAChG,SAAgB,KAAK,EAAE,UAAU,CAAC;IAClC,4DAA4D;IAC5D,SAAgB,IAAI,EAAE,IAAI,CAAC;IAC3B,6DAA6D;IAC7D,SAAgB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxC,2IAA2I;IAC3I,SAAgB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5C,mGAAmG;IACnG,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB;IAWzD;;OAEG;IACa,MAAM,IAAI,YAAY;CAWvC"}
@@ -9,6 +9,7 @@ import { Id64 } from "@itwin/core-bentley";
9
9
  import { Code, RelatedElement } from "@itwin/core-common";
10
10
  /** The "state" of an Entity as represented in a web browser. Every subclass of EntityState handles one BIS class.
11
11
  * @public
12
+ * @extensions
12
13
  */
13
14
  export class EntityState {
14
15
  /** Constructor for EntityState
@@ -54,6 +55,7 @@ export class EntityState {
54
55
  }
55
56
  /** The "state" of an Element as represented in a web browser.
56
57
  * @public
58
+ * @extensions
57
59
  */
58
60
  export class ElementState extends EntityState {
59
61
  constructor(props, iModel) {