@itwin/frontend-devtools 3.7.0-dev.2 → 3.7.0-dev.5

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 (371) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/ClipboardUtilities.d.ts +8 -8
  3. package/lib/cjs/ClipboardUtilities.js +26 -26
  4. package/lib/cjs/ClipboardUtilities.js.map +1 -1
  5. package/lib/cjs/FrontEndDevTools.d.ts +19 -19
  6. package/lib/cjs/FrontEndDevTools.js +221 -221
  7. package/lib/cjs/FrontEndDevTools.js.map +1 -1
  8. package/lib/cjs/effects/Convolution.d.ts +68 -68
  9. package/lib/cjs/effects/Convolution.js +165 -165
  10. package/lib/cjs/effects/Convolution.js.map +1 -1
  11. package/lib/cjs/effects/EffectTools.d.ts +33 -33
  12. package/lib/cjs/effects/EffectTools.js +68 -68
  13. package/lib/cjs/effects/EffectTools.js.map +1 -1
  14. package/lib/cjs/effects/Explosion.d.ts +12 -12
  15. package/lib/cjs/effects/Explosion.js +168 -168
  16. package/lib/cjs/effects/Explosion.js.map +1 -1
  17. package/lib/cjs/effects/FlipImage.d.ts +30 -30
  18. package/lib/cjs/effects/FlipImage.js +99 -99
  19. package/lib/cjs/effects/FlipImage.js.map +1 -1
  20. package/lib/cjs/effects/LensDistortion.d.ts +34 -34
  21. package/lib/cjs/effects/LensDistortion.js +109 -109
  22. package/lib/cjs/effects/LensDistortion.js.map +1 -1
  23. package/lib/cjs/effects/Random.d.ts +24 -24
  24. package/lib/cjs/effects/Random.js +49 -49
  25. package/lib/cjs/effects/Random.js.map +1 -1
  26. package/lib/cjs/effects/Saturation.d.ts +30 -30
  27. package/lib/cjs/effects/Saturation.js +85 -85
  28. package/lib/cjs/effects/Saturation.js.map +1 -1
  29. package/lib/cjs/effects/Snow.d.ts +76 -76
  30. package/lib/cjs/effects/Snow.js +187 -187
  31. package/lib/cjs/effects/Snow.js.map +1 -1
  32. package/lib/cjs/effects/Vignette.d.ts +39 -39
  33. package/lib/cjs/effects/Vignette.js +108 -108
  34. package/lib/cjs/effects/Vignette.js.map +1 -1
  35. package/lib/cjs/frontend-devtools.d.ts +82 -82
  36. package/lib/cjs/frontend-devtools.js +98 -98
  37. package/lib/cjs/frontend-devtools.js.map +1 -1
  38. package/lib/cjs/tools/AnimationIntervalTool.d.ts +15 -15
  39. package/lib/cjs/tools/AnimationIntervalTool.js +30 -30
  40. package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
  41. package/lib/cjs/tools/ChangeUnitsTool.d.ts +15 -15
  42. package/lib/cjs/tools/ChangeUnitsTool.js +41 -41
  43. package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
  44. package/lib/cjs/tools/ClipTools.d.ts +67 -67
  45. package/lib/cjs/tools/ClipTools.js +164 -164
  46. package/lib/cjs/tools/ClipTools.js.map +1 -1
  47. package/lib/cjs/tools/DisplayStyleTools.d.ts +145 -145
  48. package/lib/cjs/tools/DisplayStyleTools.js +370 -370
  49. package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
  50. package/lib/cjs/tools/EmphasizeElementsTool.d.ts +60 -60
  51. package/lib/cjs/tools/EmphasizeElementsTool.js +154 -154
  52. package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
  53. package/lib/cjs/tools/FrustumDecoration.d.ts +57 -57
  54. package/lib/cjs/tools/FrustumDecoration.js +374 -374
  55. package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
  56. package/lib/cjs/tools/InspectElementTool.d.ts +42 -42
  57. package/lib/cjs/tools/InspectElementTool.js +198 -198
  58. package/lib/cjs/tools/InspectElementTool.js.map +1 -1
  59. package/lib/cjs/tools/MapLayerTool.d.ts +264 -264
  60. package/lib/cjs/tools/MapLayerTool.js +507 -507
  61. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  62. package/lib/cjs/tools/MeasureTileLoadTime.d.ts +12 -12
  63. package/lib/cjs/tools/MeasureTileLoadTime.js +63 -63
  64. package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
  65. package/lib/cjs/tools/ModelAppearanceTools.d.ts +86 -86
  66. package/lib/cjs/tools/ModelAppearanceTools.js +183 -183
  67. package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
  68. package/lib/cjs/tools/PlanProjectionTools.d.ts +40 -40
  69. package/lib/cjs/tools/PlanProjectionTools.js +149 -149
  70. package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
  71. package/lib/cjs/tools/PlanarMaskTools.d.ts +182 -182
  72. package/lib/cjs/tools/PlanarMaskTools.js +393 -393
  73. package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
  74. package/lib/cjs/tools/ProjectExtents.d.ts +41 -41
  75. package/lib/cjs/tools/ProjectExtents.js +110 -110
  76. package/lib/cjs/tools/ProjectExtents.js.map +1 -1
  77. package/lib/cjs/tools/RealityModelTools.d.ts +116 -116
  78. package/lib/cjs/tools/RealityModelTools.js +281 -281
  79. package/lib/cjs/tools/RealityModelTools.js.map +1 -1
  80. package/lib/cjs/tools/RealityTransitionTool.d.ts +25 -25
  81. package/lib/cjs/tools/RealityTransitionTool.js +116 -116
  82. package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
  83. package/lib/cjs/tools/RenderSystemTools.d.ts +38 -38
  84. package/lib/cjs/tools/RenderSystemTools.js +70 -70
  85. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  86. package/lib/cjs/tools/RenderTargetTools.d.ts +107 -107
  87. package/lib/cjs/tools/RenderTargetTools.js +174 -174
  88. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  89. package/lib/cjs/tools/ReportWebGLCompatibilityTool.d.ts +11 -11
  90. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +30 -30
  91. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  92. package/lib/cjs/tools/SavedViews.d.ts +46 -46
  93. package/lib/cjs/tools/SavedViews.js +136 -136
  94. package/lib/cjs/tools/SavedViews.js.map +1 -1
  95. package/lib/cjs/tools/ScheduleScriptTools.d.ts +37 -37
  96. package/lib/cjs/tools/ScheduleScriptTools.js +159 -159
  97. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  98. package/lib/cjs/tools/SelectionTools.d.ts +28 -28
  99. package/lib/cjs/tools/SelectionTools.js +87 -87
  100. package/lib/cjs/tools/SelectionTools.js.map +1 -1
  101. package/lib/cjs/tools/SetGpuMemoryLimitTool.d.ts +15 -15
  102. package/lib/cjs/tools/SetGpuMemoryLimitTool.js +33 -33
  103. package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
  104. package/lib/cjs/tools/SourceAspectIdTools.d.ts +40 -40
  105. package/lib/cjs/tools/SourceAspectIdTools.d.ts.map +1 -1
  106. package/lib/cjs/tools/SourceAspectIdTools.js +87 -86
  107. package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
  108. package/lib/cjs/tools/TileRequestDecoration.d.ts +12 -12
  109. package/lib/cjs/tools/TileRequestDecoration.js +83 -83
  110. package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
  111. package/lib/cjs/tools/TileTreeBoundsDecoration.d.ts +11 -11
  112. package/lib/cjs/tools/TileTreeBoundsDecoration.js +74 -74
  113. package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
  114. package/lib/cjs/tools/ToolTipProvider.d.ts +15 -15
  115. package/lib/cjs/tools/ToolTipProvider.js +66 -66
  116. package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
  117. package/lib/cjs/tools/ViewportTools.d.ts +218 -218
  118. package/lib/cjs/tools/ViewportTools.js +516 -516
  119. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  120. package/lib/cjs/tools/parseArgs.d.ts +23 -23
  121. package/lib/cjs/tools/parseArgs.js +51 -51
  122. package/lib/cjs/tools/parseArgs.js.map +1 -1
  123. package/lib/cjs/tools/parseBoolean.d.ts +8 -8
  124. package/lib/cjs/tools/parseBoolean.js +26 -26
  125. package/lib/cjs/tools/parseBoolean.js.map +1 -1
  126. package/lib/cjs/tools/parseToggle.d.ts +8 -8
  127. package/lib/cjs/tools/parseToggle.js +25 -25
  128. package/lib/cjs/tools/parseToggle.js.map +1 -1
  129. package/lib/cjs/ui/Button.d.ts +29 -29
  130. package/lib/cjs/ui/Button.js +26 -26
  131. package/lib/cjs/ui/Button.js.map +1 -1
  132. package/lib/cjs/ui/CheckBox.d.ts +23 -23
  133. package/lib/cjs/ui/CheckBox.js +27 -27
  134. package/lib/cjs/ui/CheckBox.js.map +1 -1
  135. package/lib/cjs/ui/ColorInput.d.ts +27 -27
  136. package/lib/cjs/ui/ColorInput.js +53 -53
  137. package/lib/cjs/ui/ColorInput.js.map +1 -1
  138. package/lib/cjs/ui/ComboBox.d.ts +28 -28
  139. package/lib/cjs/ui/ComboBox.js +42 -42
  140. package/lib/cjs/ui/ComboBox.js.map +1 -1
  141. package/lib/cjs/ui/DataList.d.ts +27 -27
  142. package/lib/cjs/ui/DataList.js +39 -39
  143. package/lib/cjs/ui/DataList.js.map +1 -1
  144. package/lib/cjs/ui/NestedMenu.d.ts +19 -19
  145. package/lib/cjs/ui/NestedMenu.js +46 -46
  146. package/lib/cjs/ui/NestedMenu.js.map +1 -1
  147. package/lib/cjs/ui/NumericInput.d.ts +35 -35
  148. package/lib/cjs/ui/NumericInput.js +61 -61
  149. package/lib/cjs/ui/NumericInput.js.map +1 -1
  150. package/lib/cjs/ui/RadioBox.d.ts +29 -29
  151. package/lib/cjs/ui/RadioBox.js +76 -76
  152. package/lib/cjs/ui/RadioBox.js.map +1 -1
  153. package/lib/cjs/ui/Slider.d.ts +28 -28
  154. package/lib/cjs/ui/Slider.js +42 -42
  155. package/lib/cjs/ui/Slider.js.map +1 -1
  156. package/lib/cjs/ui/TextBox.d.ts +32 -32
  157. package/lib/cjs/ui/TextBox.js +56 -56
  158. package/lib/cjs/ui/TextBox.js.map +1 -1
  159. package/lib/cjs/widgets/DiagnosticsPanel.d.ts +37 -37
  160. package/lib/cjs/widgets/DiagnosticsPanel.js +81 -81
  161. package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
  162. package/lib/cjs/widgets/FpsTracker.d.ts +19 -19
  163. package/lib/cjs/widgets/FpsTracker.js +56 -56
  164. package/lib/cjs/widgets/FpsTracker.js.map +1 -1
  165. package/lib/cjs/widgets/GpuProfiler.d.ts +16 -16
  166. package/lib/cjs/widgets/GpuProfiler.js +192 -192
  167. package/lib/cjs/widgets/GpuProfiler.js.map +1 -1
  168. package/lib/cjs/widgets/KeyinField.d.ts +61 -61
  169. package/lib/cjs/widgets/KeyinField.js +187 -187
  170. package/lib/cjs/widgets/KeyinField.js.map +1 -1
  171. package/lib/cjs/widgets/MemoryTracker.d.ts +27 -27
  172. package/lib/cjs/widgets/MemoryTracker.js +243 -243
  173. package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
  174. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +15 -15
  175. package/lib/cjs/widgets/RenderCommandBreakdown.js +68 -68
  176. package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
  177. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts +30 -30
  178. package/lib/cjs/widgets/TileMemoryBreakdown.js +204 -204
  179. package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
  180. package/lib/cjs/widgets/TileStatisticsTracker.d.ts +21 -21
  181. package/lib/cjs/widgets/TileStatisticsTracker.js +142 -142
  182. package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
  183. package/lib/cjs/widgets/ToolSettingsTracker.d.ts +9 -9
  184. package/lib/cjs/widgets/ToolSettingsTracker.js +211 -211
  185. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  186. package/lib/esm/ClipboardUtilities.d.ts +8 -8
  187. package/lib/esm/ClipboardUtilities.js +22 -22
  188. package/lib/esm/ClipboardUtilities.js.map +1 -1
  189. package/lib/esm/FrontEndDevTools.d.ts +19 -19
  190. package/lib/esm/FrontEndDevTools.js +217 -217
  191. package/lib/esm/FrontEndDevTools.js.map +1 -1
  192. package/lib/esm/effects/Convolution.d.ts +68 -68
  193. package/lib/esm/effects/Convolution.js +155 -155
  194. package/lib/esm/effects/Convolution.js.map +1 -1
  195. package/lib/esm/effects/EffectTools.d.ts +33 -33
  196. package/lib/esm/effects/EffectTools.js +62 -62
  197. package/lib/esm/effects/EffectTools.js.map +1 -1
  198. package/lib/esm/effects/Explosion.d.ts +12 -12
  199. package/lib/esm/effects/Explosion.js +164 -164
  200. package/lib/esm/effects/Explosion.js.map +1 -1
  201. package/lib/esm/effects/FlipImage.d.ts +30 -30
  202. package/lib/esm/effects/FlipImage.js +94 -94
  203. package/lib/esm/effects/FlipImage.js.map +1 -1
  204. package/lib/esm/effects/LensDistortion.d.ts +34 -34
  205. package/lib/esm/effects/LensDistortion.js +104 -104
  206. package/lib/esm/effects/LensDistortion.js.map +1 -1
  207. package/lib/esm/effects/Random.d.ts +24 -24
  208. package/lib/esm/effects/Random.js +41 -41
  209. package/lib/esm/effects/Random.js.map +1 -1
  210. package/lib/esm/effects/Saturation.d.ts +30 -30
  211. package/lib/esm/effects/Saturation.js +80 -80
  212. package/lib/esm/effects/Saturation.js.map +1 -1
  213. package/lib/esm/effects/Snow.d.ts +76 -76
  214. package/lib/esm/effects/Snow.js +182 -182
  215. package/lib/esm/effects/Snow.js.map +1 -1
  216. package/lib/esm/effects/Vignette.d.ts +39 -39
  217. package/lib/esm/effects/Vignette.js +103 -103
  218. package/lib/esm/effects/Vignette.js.map +1 -1
  219. package/lib/esm/frontend-devtools.d.ts +82 -82
  220. package/lib/esm/frontend-devtools.js +86 -86
  221. package/lib/esm/frontend-devtools.js.map +1 -1
  222. package/lib/esm/tools/AnimationIntervalTool.d.ts +15 -15
  223. package/lib/esm/tools/AnimationIntervalTool.js +26 -26
  224. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  225. package/lib/esm/tools/ChangeUnitsTool.d.ts +15 -15
  226. package/lib/esm/tools/ChangeUnitsTool.js +37 -37
  227. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  228. package/lib/esm/tools/ClipTools.d.ts +67 -67
  229. package/lib/esm/tools/ClipTools.js +158 -158
  230. package/lib/esm/tools/ClipTools.js.map +1 -1
  231. package/lib/esm/tools/DisplayStyleTools.d.ts +145 -145
  232. package/lib/esm/tools/DisplayStyleTools.js +356 -356
  233. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  234. package/lib/esm/tools/EmphasizeElementsTool.d.ts +60 -60
  235. package/lib/esm/tools/EmphasizeElementsTool.js +145 -145
  236. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  237. package/lib/esm/tools/FrustumDecoration.d.ts +57 -57
  238. package/lib/esm/tools/FrustumDecoration.js +367 -367
  239. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  240. package/lib/esm/tools/InspectElementTool.d.ts +42 -42
  241. package/lib/esm/tools/InspectElementTool.js +194 -194
  242. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  243. package/lib/esm/tools/MapLayerTool.d.ts +264 -264
  244. package/lib/esm/tools/MapLayerTool.js +485 -485
  245. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  246. package/lib/esm/tools/MeasureTileLoadTime.d.ts +12 -12
  247. package/lib/esm/tools/MeasureTileLoadTime.js +59 -59
  248. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  249. package/lib/esm/tools/ModelAppearanceTools.d.ts +86 -86
  250. package/lib/esm/tools/ModelAppearanceTools.js +172 -172
  251. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  252. package/lib/esm/tools/PlanProjectionTools.d.ts +40 -40
  253. package/lib/esm/tools/PlanProjectionTools.js +143 -143
  254. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  255. package/lib/esm/tools/PlanarMaskTools.d.ts +182 -182
  256. package/lib/esm/tools/PlanarMaskTools.js +377 -377
  257. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  258. package/lib/esm/tools/ProjectExtents.d.ts +41 -41
  259. package/lib/esm/tools/ProjectExtents.js +104 -104
  260. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  261. package/lib/esm/tools/RealityModelTools.d.ts +116 -116
  262. package/lib/esm/tools/RealityModelTools.js +268 -268
  263. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  264. package/lib/esm/tools/RealityTransitionTool.d.ts +25 -25
  265. package/lib/esm/tools/RealityTransitionTool.js +112 -112
  266. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  267. package/lib/esm/tools/RenderSystemTools.d.ts +38 -38
  268. package/lib/esm/tools/RenderSystemTools.js +63 -63
  269. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  270. package/lib/esm/tools/RenderTargetTools.d.ts +107 -107
  271. package/lib/esm/tools/RenderTargetTools.js +159 -159
  272. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  273. package/lib/esm/tools/ReportWebGLCompatibilityTool.d.ts +11 -11
  274. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +26 -26
  275. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  276. package/lib/esm/tools/SavedViews.d.ts +46 -46
  277. package/lib/esm/tools/SavedViews.js +128 -128
  278. package/lib/esm/tools/SavedViews.js.map +1 -1
  279. package/lib/esm/tools/ScheduleScriptTools.d.ts +37 -37
  280. package/lib/esm/tools/ScheduleScriptTools.js +153 -153
  281. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  282. package/lib/esm/tools/SelectionTools.d.ts +28 -28
  283. package/lib/esm/tools/SelectionTools.js +82 -82
  284. package/lib/esm/tools/SelectionTools.js.map +1 -1
  285. package/lib/esm/tools/SetGpuMemoryLimitTool.d.ts +15 -15
  286. package/lib/esm/tools/SetGpuMemoryLimitTool.js +29 -29
  287. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  288. package/lib/esm/tools/SourceAspectIdTools.d.ts +40 -40
  289. package/lib/esm/tools/SourceAspectIdTools.d.ts.map +1 -1
  290. package/lib/esm/tools/SourceAspectIdTools.js +81 -80
  291. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  292. package/lib/esm/tools/TileRequestDecoration.d.ts +12 -12
  293. package/lib/esm/tools/TileRequestDecoration.js +79 -79
  294. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  295. package/lib/esm/tools/TileTreeBoundsDecoration.d.ts +11 -11
  296. package/lib/esm/tools/TileTreeBoundsDecoration.js +70 -70
  297. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  298. package/lib/esm/tools/ToolTipProvider.d.ts +15 -15
  299. package/lib/esm/tools/ToolTipProvider.js +62 -62
  300. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  301. package/lib/esm/tools/ViewportTools.d.ts +218 -218
  302. package/lib/esm/tools/ViewportTools.js +492 -492
  303. package/lib/esm/tools/ViewportTools.js.map +1 -1
  304. package/lib/esm/tools/parseArgs.d.ts +23 -23
  305. package/lib/esm/tools/parseArgs.js +47 -47
  306. package/lib/esm/tools/parseArgs.js.map +1 -1
  307. package/lib/esm/tools/parseBoolean.d.ts +8 -8
  308. package/lib/esm/tools/parseBoolean.js +22 -22
  309. package/lib/esm/tools/parseBoolean.js.map +1 -1
  310. package/lib/esm/tools/parseToggle.d.ts +8 -8
  311. package/lib/esm/tools/parseToggle.js +21 -21
  312. package/lib/esm/tools/parseToggle.js.map +1 -1
  313. package/lib/esm/ui/Button.d.ts +29 -29
  314. package/lib/esm/ui/Button.js +22 -22
  315. package/lib/esm/ui/Button.js.map +1 -1
  316. package/lib/esm/ui/CheckBox.d.ts +23 -23
  317. package/lib/esm/ui/CheckBox.js +23 -23
  318. package/lib/esm/ui/CheckBox.js.map +1 -1
  319. package/lib/esm/ui/ColorInput.d.ts +27 -27
  320. package/lib/esm/ui/ColorInput.js +48 -48
  321. package/lib/esm/ui/ColorInput.js.map +1 -1
  322. package/lib/esm/ui/ComboBox.d.ts +28 -28
  323. package/lib/esm/ui/ComboBox.js +38 -38
  324. package/lib/esm/ui/ComboBox.js.map +1 -1
  325. package/lib/esm/ui/DataList.d.ts +27 -27
  326. package/lib/esm/ui/DataList.js +34 -34
  327. package/lib/esm/ui/DataList.js.map +1 -1
  328. package/lib/esm/ui/NestedMenu.d.ts +19 -19
  329. package/lib/esm/ui/NestedMenu.js +42 -42
  330. package/lib/esm/ui/NestedMenu.js.map +1 -1
  331. package/lib/esm/ui/NumericInput.d.ts +35 -35
  332. package/lib/esm/ui/NumericInput.js +56 -56
  333. package/lib/esm/ui/NumericInput.js.map +1 -1
  334. package/lib/esm/ui/RadioBox.d.ts +29 -29
  335. package/lib/esm/ui/RadioBox.js +72 -72
  336. package/lib/esm/ui/RadioBox.js.map +1 -1
  337. package/lib/esm/ui/Slider.d.ts +28 -28
  338. package/lib/esm/ui/Slider.js +38 -38
  339. package/lib/esm/ui/Slider.js.map +1 -1
  340. package/lib/esm/ui/TextBox.d.ts +32 -32
  341. package/lib/esm/ui/TextBox.js +52 -52
  342. package/lib/esm/ui/TextBox.js.map +1 -1
  343. package/lib/esm/widgets/DiagnosticsPanel.d.ts +37 -37
  344. package/lib/esm/widgets/DiagnosticsPanel.js +77 -77
  345. package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
  346. package/lib/esm/widgets/FpsTracker.d.ts +19 -19
  347. package/lib/esm/widgets/FpsTracker.js +52 -52
  348. package/lib/esm/widgets/FpsTracker.js.map +1 -1
  349. package/lib/esm/widgets/GpuProfiler.d.ts +16 -16
  350. package/lib/esm/widgets/GpuProfiler.js +188 -188
  351. package/lib/esm/widgets/GpuProfiler.js.map +1 -1
  352. package/lib/esm/widgets/KeyinField.d.ts +61 -61
  353. package/lib/esm/widgets/KeyinField.js +183 -183
  354. package/lib/esm/widgets/KeyinField.js.map +1 -1
  355. package/lib/esm/widgets/MemoryTracker.d.ts +27 -27
  356. package/lib/esm/widgets/MemoryTracker.js +238 -238
  357. package/lib/esm/widgets/MemoryTracker.js.map +1 -1
  358. package/lib/esm/widgets/RenderCommandBreakdown.d.ts +15 -15
  359. package/lib/esm/widgets/RenderCommandBreakdown.js +64 -64
  360. package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
  361. package/lib/esm/widgets/TileMemoryBreakdown.d.ts +30 -30
  362. package/lib/esm/widgets/TileMemoryBreakdown.js +200 -200
  363. package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
  364. package/lib/esm/widgets/TileStatisticsTracker.d.ts +21 -21
  365. package/lib/esm/widgets/TileStatisticsTracker.js +138 -138
  366. package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
  367. package/lib/esm/widgets/ToolSettingsTracker.d.ts +9 -9
  368. package/lib/esm/widgets/ToolSettingsTracker.js +207 -207
  369. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  370. package/lib/public/locales/en/FrontendDevTools.json +484 -484
  371. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayStyleTools.js","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Tools\n */\n\nimport {\n ColorDef, DisplayStyle3dSettingsProps, DisplayStyleOverridesOptions, RenderMode, SkyCube, SkySphere,\n SubCategoryAppearance, SubCategoryOverride, ViewFlags, ViewFlagsProperties, WhiteOnWhiteReversalSettings,\n} from \"@itwin/core-common\";\nimport {\n DisplayStyle3dState, IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport,\n} from \"@itwin/core-frontend\";\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\nimport { parseArgs } from \"./parseArgs\";\nimport { parseToggle } from \"./parseToggle\";\n\ntype BooleanFlagName =\n \"dimensions\" | \"patterns\" | \"weights\" | \"styles\" | \"transparency\" | \"fill\" | \"textures\" | \"materials\" | \"acsTriad\" | \"grid\" | \"visibleEdges\" |\n \"hiddenEdges\" | \"lighting\" | \"shadows\" | \"clipVolume\" | \"constructions\" | \"monochrome\" | \"backgroundMap\" | \"ambientOcclusion\" | \"forceSurfaceDiscard\"\n | \"wiremesh\";\n\n// Compiler has the info to construct this array for us, but we have no access to it...\nconst booleanFlagNames: BooleanFlagName[] = [\n \"dimensions\", \"patterns\", \"weights\", \"styles\", \"transparency\", \"fill\", \"textures\", \"materials\", \"acsTriad\", \"grid\", \"visibleEdges\",\n \"hiddenEdges\", \"lighting\", \"shadows\", \"clipVolume\", \"constructions\", \"monochrome\", \"backgroundMap\", \"ambientOcclusion\", \"forceSurfaceDiscard\",\n \"wiremesh\",\n];\n\nconst lowercaseBooleanFlagNames = booleanFlagNames.map((name) => name.toLowerCase());\n\n/** Modifies the selected viewport's DisplayStyleState.\n * @beta\n */\nexport abstract class DisplayStyleTool extends Tool {\n protected get require3d() { return false; }\n // Return true if the display style was modified - we will invalidate the viewport's render plan.\n protected abstract execute(vp: Viewport): Promise<boolean>;\n // Return false if failed to parse.\n protected abstract parse(args: string[], vp: Viewport): Promise<boolean>;\n\n public override async run(): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.execute(vp))\n vp.displayStyle = vp.view.displayStyle;\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.parse(args, vp))\n return this.run();\n else\n return false;\n }\n}\n\n/** Modifies the selected viewport's ViewFlags.\n * The keyin syntax is as follows:\n * fdt change viewflags flag=value\n * Where 'flag' is one of the BooleanFlagName values, or \"renderMode\"; and value is an integer.\n * For boolean flags, value is 0 for false or 1 for true. For renderMode, value is one of the RenderMode enum values.\n * Flag names are case-insensitive.\n * @beta\n */\nexport class ChangeViewFlagsTool extends Tool {\n public static override toolId = \"ChangeViewFlags\";\n public static override get maxArgs() { return undefined; }\n public static override get minArgs() { return 1; }\n\n public override async run(vf: ViewFlags, vp?: Viewport): Promise<boolean> {\n if (undefined !== vf && undefined !== vp)\n vp.viewFlags = vf;\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || 0 === args.length)\n return true;\n\n const vf: Partial<ViewFlagsProperties> = { ...vp.viewFlags };\n for (const arg of args) {\n const parts = arg.split(\"=\");\n if (2 !== parts.length)\n continue;\n\n const value = parseInt(parts[1], 10);\n if (Number.isNaN(value))\n continue;\n\n const name = parts[0].toLowerCase();\n if (name === \"rendermode\") {\n switch (value) {\n case RenderMode.SmoothShade:\n case RenderMode.Wireframe:\n case RenderMode.HiddenLine:\n case RenderMode.SolidFill:\n vf.renderMode = value;\n vp.invalidateRenderPlan();\n break;\n }\n\n continue;\n }\n\n if (0 !== value && 1 !== value)\n continue;\n\n const index = lowercaseBooleanFlagNames.indexOf(name);\n if (-1 !== index) {\n const propName = booleanFlagNames[index];\n vf[propName] = 0 !== value;\n vp.invalidateRenderPlan();\n }\n }\n\n return this.run(new ViewFlags(vf), vp);\n }\n}\n\n/** Toggles the skybox.\n * @beta\n */\nexport class ToggleSkyboxTool extends DisplayStyleTool {\n public static override toolId = \"ToggleSkybox\";\n\n public override get require3d() { return true; }\n\n public async parse(_args: string[]): Promise<boolean> { return true; } // no arguments\n\n public async execute(vp: Viewport) {\n const style = vp.view.displayStyle as DisplayStyle3dState;\n style.environment = style.environment.withDisplay({ sky: !style.environment.displaySky });\n return true;\n }\n}\n\n/** Defines a [SkySphere]($common) to apply to the current view.\n * @beta\n */\nexport class SkySphereTool extends DisplayStyleTool {\n private _image?: string;\n\n public static override toolId = \"SetSkySphere\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n public override get require3d() { return true; }\n\n public async parse(args: string[]) {\n this._image = args[0];\n return true;\n }\n\n public async execute(vp: Viewport) {\n if (this._image && vp.view.is3d()) {\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\n displaySky: true,\n sky: new SkySphere(this._image),\n });\n }\n\n return true;\n }\n}\n\n/** Defines a [SkyCube]($common) to apply to the current view.\n * @beta\n */\nexport class SkyCubeTool extends DisplayStyleTool {\n private _images: string[] = [];\n\n public static override toolId = \"SetSkyCube\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 6; }\n\n public override get require3d() { return true; }\n\n public async parse(args: string[]) {\n this._images = [...args];\n return true;\n }\n\n public async execute(vp: Viewport) {\n const imgs = this._images;\n if (imgs.length === 0 || !vp.view.is3d())\n return true;\n\n let top, bottom, left, right, front, back;\n switch (imgs.length) {\n case 1:\n top = bottom = left = right = front = back = imgs[0];\n break;\n case 2:\n top = bottom = imgs[0];\n left = right = front = back = imgs[1];\n break;\n case 3:\n top = bottom = imgs[0];\n left = right = imgs[1];\n front = back = imgs[2];\n break;\n case 4:\n top = imgs[0];\n bottom = imgs[1];\n left = right = imgs[2];\n front = back = imgs[3];\n break;\n case 5:\n top = bottom = imgs[0];\n left = imgs[1];\n right = imgs[2];\n front = imgs[3];\n back = imgs[4];\n break;\n default:\n top = imgs[0];\n bottom = imgs[1];\n left = imgs[2];\n right = imgs[3];\n front = imgs[4];\n back = imgs[5];\n break;\n }\n\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\n displaySky: true,\n sky: new SkyCube({ top, bottom, left, right, front, back }),\n });\n\n return true;\n }\n}\n\n/** Outputs (and optionally copies to the clipboard) a \"rendering style\" as a partial DisplayStyle3dSettingsProps JSON object based\n * on the current view's display style settings.\n * All arguments are optional, of the form \"name=value\" where `value` is 0 for false or 1 for true. All arguments default to `false` if omitted.\n * @see [DisplayStyleSettings.toOverrides]($common) for details.\n * Arguments:\n * * `all`: include all settings.\n * * `imodel`: include iModel-specific settings.\n * * `project`: include iTwin-specific (formerly known as project) settings.\n * * `map`: include background map settings.\n * * `drawingaids`: include drawing aid decoration settings.\n * * `copy`: copy result to system clipboard.\n * * `quote`: format the JSON so it can be parsed directly by [ApplyRenderingStyleTool].\n * @beta\n */\nexport class SaveRenderingStyleTool extends DisplayStyleTool {\n private _options: DisplayStyleOverridesOptions = {};\n private _copyToClipboard = false;\n private _quote = false;\n\n public static override toolId = \"SaveRenderingStyle\";\n\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 7; }\n\n public async parse(inputArgs: string[]) {\n const args = parseArgs(inputArgs);\n function getArg(name: string): true | undefined {\n return args.getBoolean(name) ? true : undefined;\n }\n\n this._options.includeAll = getArg(\"a\");\n this._options.includeIModelSpecific = getArg(\"i\");\n this._options.includeITwinSpecific = getArg(\"p\"); // \"p\" for backwards compatibility with old \"project\" terminology\n this._options.includeBackgroundMap = getArg(\"m\");\n this._options.includeDrawingAids = getArg(\"d\");\n this._copyToClipboard = true === getArg(\"c\");\n this._quote = true === getArg(\"q\");\n\n return true;\n }\n\n public async execute(vp: Viewport) {\n let json = JSON.stringify(vp.displayStyle.settings.toOverrides(this._options));\n if (this._quote)\n json = `\"${json.replace(/\"/g, '\"\"')}\"`;\n\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Rendering style saved\", json));\n if (this._copyToClipboard)\n copyStringToClipboard(json);\n\n return false;\n }\n}\n\n/** Given a \"rendering style\" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.\n * @see [DisplayStyleSettings.applyOverrides]($common) for details.\n * @beta\n */\nexport class ApplyRenderingStyleTool extends DisplayStyleTool {\n private _overrides?: DisplayStyle3dSettingsProps;\n\n public static override toolId = \"ApplyRenderingStyle\";\n\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n public async parse(args: string[]) {\n try {\n this._overrides = JSON.parse(args[0]);\n return true;\n } catch {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"Invalid JSON\"));\n return false;\n }\n }\n\n public async execute(vp: Viewport) {\n if (this._overrides)\n vp.overrideDisplayStyle(this._overrides);\n\n return false;\n }\n}\n\n/** Apply appearance overrides to one or more subcategories in the active viewport.\n * @beta\n */\nexport class OverrideSubCategoryTool extends DisplayStyleTool {\n private _overrideProps: SubCategoryAppearance.Props = {};\n private _subcategoryIds: string[] = [];\n\n public static override toolId = \"OverrideSubCategory\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 7; }\n\n public async parse(inArgs: string[]) {\n const args = parseArgs(inArgs);\n const ids = args.get(\"i\");\n if (ids)\n this._subcategoryIds = ids.split(\",\");\n\n const props = this._overrideProps;\n props.color = args.getInteger(\"c\");\n props.weight = args.getInteger(\"w\");\n props.priority = args.getInteger(\"p\");\n props.transp = args.getFloat(\"t\");\n props.material = args.get(\"m\");\n\n const visible = args.getBoolean(\"v\");\n props.invisible = typeof visible === \"boolean\" ? !visible : undefined;\n return true;\n }\n\n public async execute(vp: Viewport) {\n const ovr = SubCategoryOverride.fromJSON(this._overrideProps);\n for (const id of this._subcategoryIds)\n vp.displayStyle.overrideSubCategory(id, ovr);\n\n return true;\n }\n}\n\n/** Set whether background color is ignored when applying white-on-white reversal.\n * @beta\n */\nexport class WoWIgnoreBackgroundTool extends DisplayStyleTool {\n private _ignore?: boolean;\n\n public static override toolId = \"WoWIgnoreBackground\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n public async parse(args: string[]) {\n const ignore = parseToggle(args[0]);\n if (typeof ignore === \"string\")\n return false;\n\n this._ignore = ignore;\n return true;\n }\n\n public async execute(vp: Viewport) {\n const ignoreBackgroundColor = this._ignore ?? !vp.displayStyle.settings.whiteOnWhiteReversal.ignoreBackgroundColor;\n vp.displayStyle.settings.whiteOnWhiteReversal = WhiteOnWhiteReversalSettings.fromJSON({ ignoreBackgroundColor });\n return true;\n }\n}\n\n/** Toggle whether surfaces display with overlaid wiremesh in the active viewport.\n * @see [ViewFlags.wiremesh]($common).\n * @beta\n */\nexport class ToggleWiremeshTool extends DisplayStyleTool {\n private _enable?: boolean;\n\n public static override toolId = \"ToggleWiremesh\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n public async parse(args: string[]) {\n const enable = parseToggle(args[0]);\n if (typeof enable === \"string\")\n return false;\n\n this._enable = enable;\n return true;\n }\n\n public async execute(vp: Viewport) {\n vp.viewFlags = vp.viewFlags.with(\"wiremesh\", this._enable ?? !vp.viewFlags.wiremesh);\n return true;\n }\n}\n\n/** Change the background color of the active viewport and optionally its transparency.\n * @beta\n */\nexport class ChangeBackgroundColorTool extends DisplayStyleTool {\n private _color?: ColorDef;\n\n public static override toolId = \"ChangeBackgroundColor\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n public async parse(args: string[]) {\n this._color = ColorDef.fromString(args[0]);\n return true;\n }\n\n public async execute(vp: Viewport) {\n if (!this._color)\n return false;\n\n vp.displayStyle.backgroundColor = this._color;\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"DisplayStyleTools.js","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport {\r\n ColorDef, DisplayStyle3dSettingsProps, DisplayStyleOverridesOptions, RenderMode, SkyCube, SkySphere,\r\n SubCategoryAppearance, SubCategoryOverride, ViewFlags, ViewFlagsProperties, WhiteOnWhiteReversalSettings,\r\n} from \"@itwin/core-common\";\r\nimport {\r\n DisplayStyle3dState, IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport,\r\n} from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseArgs } from \"./parseArgs\";\r\nimport { parseToggle } from \"./parseToggle\";\r\n\r\ntype BooleanFlagName =\r\n \"dimensions\" | \"patterns\" | \"weights\" | \"styles\" | \"transparency\" | \"fill\" | \"textures\" | \"materials\" | \"acsTriad\" | \"grid\" | \"visibleEdges\" |\r\n \"hiddenEdges\" | \"lighting\" | \"shadows\" | \"clipVolume\" | \"constructions\" | \"monochrome\" | \"backgroundMap\" | \"ambientOcclusion\" | \"forceSurfaceDiscard\"\r\n | \"wiremesh\";\r\n\r\n// Compiler has the info to construct this array for us, but we have no access to it...\r\nconst booleanFlagNames: BooleanFlagName[] = [\r\n \"dimensions\", \"patterns\", \"weights\", \"styles\", \"transparency\", \"fill\", \"textures\", \"materials\", \"acsTriad\", \"grid\", \"visibleEdges\",\r\n \"hiddenEdges\", \"lighting\", \"shadows\", \"clipVolume\", \"constructions\", \"monochrome\", \"backgroundMap\", \"ambientOcclusion\", \"forceSurfaceDiscard\",\r\n \"wiremesh\",\r\n];\r\n\r\nconst lowercaseBooleanFlagNames = booleanFlagNames.map((name) => name.toLowerCase());\r\n\r\n/** Modifies the selected viewport's DisplayStyleState.\r\n * @beta\r\n */\r\nexport abstract class DisplayStyleTool extends Tool {\r\n protected get require3d() { return false; }\r\n // Return true if the display style was modified - we will invalidate the viewport's render plan.\r\n protected abstract execute(vp: Viewport): Promise<boolean>;\r\n // Return false if failed to parse.\r\n protected abstract parse(args: string[], vp: Viewport): Promise<boolean>;\r\n\r\n public override async run(): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.execute(vp))\r\n vp.displayStyle = vp.view.displayStyle;\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.parse(args, vp))\r\n return this.run();\r\n else\r\n return false;\r\n }\r\n}\r\n\r\n/** Modifies the selected viewport's ViewFlags.\r\n * The keyin syntax is as follows:\r\n * fdt change viewflags flag=value\r\n * Where 'flag' is one of the BooleanFlagName values, or \"renderMode\"; and value is an integer.\r\n * For boolean flags, value is 0 for false or 1 for true. For renderMode, value is one of the RenderMode enum values.\r\n * Flag names are case-insensitive.\r\n * @beta\r\n */\r\nexport class ChangeViewFlagsTool extends Tool {\r\n public static override toolId = \"ChangeViewFlags\";\r\n public static override get maxArgs() { return undefined; }\r\n public static override get minArgs() { return 1; }\r\n\r\n public override async run(vf: ViewFlags, vp?: Viewport): Promise<boolean> {\r\n if (undefined !== vf && undefined !== vp)\r\n vp.viewFlags = vf;\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || 0 === args.length)\r\n return true;\r\n\r\n const vf: Partial<ViewFlagsProperties> = { ...vp.viewFlags };\r\n for (const arg of args) {\r\n const parts = arg.split(\"=\");\r\n if (2 !== parts.length)\r\n continue;\r\n\r\n const value = parseInt(parts[1], 10);\r\n if (Number.isNaN(value))\r\n continue;\r\n\r\n const name = parts[0].toLowerCase();\r\n if (name === \"rendermode\") {\r\n switch (value) {\r\n case RenderMode.SmoothShade:\r\n case RenderMode.Wireframe:\r\n case RenderMode.HiddenLine:\r\n case RenderMode.SolidFill:\r\n vf.renderMode = value;\r\n vp.invalidateRenderPlan();\r\n break;\r\n }\r\n\r\n continue;\r\n }\r\n\r\n if (0 !== value && 1 !== value)\r\n continue;\r\n\r\n const index = lowercaseBooleanFlagNames.indexOf(name);\r\n if (-1 !== index) {\r\n const propName = booleanFlagNames[index];\r\n vf[propName] = 0 !== value;\r\n vp.invalidateRenderPlan();\r\n }\r\n }\r\n\r\n return this.run(new ViewFlags(vf), vp);\r\n }\r\n}\r\n\r\n/** Toggles the skybox.\r\n * @beta\r\n */\r\nexport class ToggleSkyboxTool extends DisplayStyleTool {\r\n public static override toolId = \"ToggleSkybox\";\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(_args: string[]): Promise<boolean> { return true; } // no arguments\r\n\r\n public async execute(vp: Viewport) {\r\n const style = vp.view.displayStyle as DisplayStyle3dState;\r\n style.environment = style.environment.withDisplay({ sky: !style.environment.displaySky });\r\n return true;\r\n }\r\n}\r\n\r\n/** Defines a [SkySphere]($common) to apply to the current view.\r\n * @beta\r\n */\r\nexport class SkySphereTool extends DisplayStyleTool {\r\n private _image?: string;\r\n\r\n public static override toolId = \"SetSkySphere\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(args: string[]) {\r\n this._image = args[0];\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (this._image && vp.view.is3d()) {\r\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\r\n displaySky: true,\r\n sky: new SkySphere(this._image),\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Defines a [SkyCube]($common) to apply to the current view.\r\n * @beta\r\n */\r\nexport class SkyCubeTool extends DisplayStyleTool {\r\n private _images: string[] = [];\r\n\r\n public static override toolId = \"SetSkyCube\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 6; }\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(args: string[]) {\r\n this._images = [...args];\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const imgs = this._images;\r\n if (imgs.length === 0 || !vp.view.is3d())\r\n return true;\r\n\r\n let top, bottom, left, right, front, back;\r\n switch (imgs.length) {\r\n case 1:\r\n top = bottom = left = right = front = back = imgs[0];\r\n break;\r\n case 2:\r\n top = bottom = imgs[0];\r\n left = right = front = back = imgs[1];\r\n break;\r\n case 3:\r\n top = bottom = imgs[0];\r\n left = right = imgs[1];\r\n front = back = imgs[2];\r\n break;\r\n case 4:\r\n top = imgs[0];\r\n bottom = imgs[1];\r\n left = right = imgs[2];\r\n front = back = imgs[3];\r\n break;\r\n case 5:\r\n top = bottom = imgs[0];\r\n left = imgs[1];\r\n right = imgs[2];\r\n front = imgs[3];\r\n back = imgs[4];\r\n break;\r\n default:\r\n top = imgs[0];\r\n bottom = imgs[1];\r\n left = imgs[2];\r\n right = imgs[3];\r\n front = imgs[4];\r\n back = imgs[5];\r\n break;\r\n }\r\n\r\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\r\n displaySky: true,\r\n sky: new SkyCube({ top, bottom, left, right, front, back }),\r\n });\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Outputs (and optionally copies to the clipboard) a \"rendering style\" as a partial DisplayStyle3dSettingsProps JSON object based\r\n * on the current view's display style settings.\r\n * All arguments are optional, of the form \"name=value\" where `value` is 0 for false or 1 for true. All arguments default to `false` if omitted.\r\n * @see [DisplayStyleSettings.toOverrides]($common) for details.\r\n * Arguments:\r\n * * `all`: include all settings.\r\n * * `imodel`: include iModel-specific settings.\r\n * * `project`: include iTwin-specific (formerly known as project) settings.\r\n * * `map`: include background map settings.\r\n * * `drawingaids`: include drawing aid decoration settings.\r\n * * `copy`: copy result to system clipboard.\r\n * * `quote`: format the JSON so it can be parsed directly by [ApplyRenderingStyleTool].\r\n * @beta\r\n */\r\nexport class SaveRenderingStyleTool extends DisplayStyleTool {\r\n private _options: DisplayStyleOverridesOptions = {};\r\n private _copyToClipboard = false;\r\n private _quote = false;\r\n\r\n public static override toolId = \"SaveRenderingStyle\";\r\n\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 7; }\r\n\r\n public async parse(inputArgs: string[]) {\r\n const args = parseArgs(inputArgs);\r\n function getArg(name: string): true | undefined {\r\n return args.getBoolean(name) ? true : undefined;\r\n }\r\n\r\n this._options.includeAll = getArg(\"a\");\r\n this._options.includeIModelSpecific = getArg(\"i\");\r\n this._options.includeITwinSpecific = getArg(\"p\"); // \"p\" for backwards compatibility with old \"project\" terminology\r\n this._options.includeBackgroundMap = getArg(\"m\");\r\n this._options.includeDrawingAids = getArg(\"d\");\r\n this._copyToClipboard = true === getArg(\"c\");\r\n this._quote = true === getArg(\"q\");\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n let json = JSON.stringify(vp.displayStyle.settings.toOverrides(this._options));\r\n if (this._quote)\r\n json = `\"${json.replace(/\"/g, '\"\"')}\"`;\r\n\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Rendering style saved\", json));\r\n if (this._copyToClipboard)\r\n copyStringToClipboard(json);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Given a \"rendering style\" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.\r\n * @see [DisplayStyleSettings.applyOverrides]($common) for details.\r\n * @beta\r\n */\r\nexport class ApplyRenderingStyleTool extends DisplayStyleTool {\r\n private _overrides?: DisplayStyle3dSettingsProps;\r\n\r\n public static override toolId = \"ApplyRenderingStyle\";\r\n\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n try {\r\n this._overrides = JSON.parse(args[0]);\r\n return true;\r\n } catch {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"Invalid JSON\"));\r\n return false;\r\n }\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (this._overrides)\r\n vp.overrideDisplayStyle(this._overrides);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Apply appearance overrides to one or more subcategories in the active viewport.\r\n * @beta\r\n */\r\nexport class OverrideSubCategoryTool extends DisplayStyleTool {\r\n private _overrideProps: SubCategoryAppearance.Props = {};\r\n private _subcategoryIds: string[] = [];\r\n\r\n public static override toolId = \"OverrideSubCategory\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 7; }\r\n\r\n public async parse(inArgs: string[]) {\r\n const args = parseArgs(inArgs);\r\n const ids = args.get(\"i\");\r\n if (ids)\r\n this._subcategoryIds = ids.split(\",\");\r\n\r\n const props = this._overrideProps;\r\n props.color = args.getInteger(\"c\");\r\n props.weight = args.getInteger(\"w\");\r\n props.priority = args.getInteger(\"p\");\r\n props.transp = args.getFloat(\"t\");\r\n props.material = args.get(\"m\");\r\n\r\n const visible = args.getBoolean(\"v\");\r\n props.invisible = typeof visible === \"boolean\" ? !visible : undefined;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const ovr = SubCategoryOverride.fromJSON(this._overrideProps);\r\n for (const id of this._subcategoryIds)\r\n vp.displayStyle.overrideSubCategory(id, ovr);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Set whether background color is ignored when applying white-on-white reversal.\r\n * @beta\r\n */\r\nexport class WoWIgnoreBackgroundTool extends DisplayStyleTool {\r\n private _ignore?: boolean;\r\n\r\n public static override toolId = \"WoWIgnoreBackground\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n const ignore = parseToggle(args[0]);\r\n if (typeof ignore === \"string\")\r\n return false;\r\n\r\n this._ignore = ignore;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const ignoreBackgroundColor = this._ignore ?? !vp.displayStyle.settings.whiteOnWhiteReversal.ignoreBackgroundColor;\r\n vp.displayStyle.settings.whiteOnWhiteReversal = WhiteOnWhiteReversalSettings.fromJSON({ ignoreBackgroundColor });\r\n return true;\r\n }\r\n}\r\n\r\n/** Toggle whether surfaces display with overlaid wiremesh in the active viewport.\r\n * @see [ViewFlags.wiremesh]($common).\r\n * @beta\r\n */\r\nexport class ToggleWiremeshTool extends DisplayStyleTool {\r\n private _enable?: boolean;\r\n\r\n public static override toolId = \"ToggleWiremesh\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable === \"string\")\r\n return false;\r\n\r\n this._enable = enable;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n vp.viewFlags = vp.viewFlags.with(\"wiremesh\", this._enable ?? !vp.viewFlags.wiremesh);\r\n return true;\r\n }\r\n}\r\n\r\n/** Change the background color of the active viewport and optionally its transparency.\r\n * @beta\r\n */\r\nexport class ChangeBackgroundColorTool extends DisplayStyleTool {\r\n private _color?: ColorDef;\r\n\r\n public static override toolId = \"ChangeBackgroundColor\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n this._color = ColorDef.fromString(args[0]);\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (!this._color)\r\n return false;\r\n\r\n vp.displayStyle.backgroundColor = this._color;\r\n return true;\r\n }\r\n}\r\n"]}
@@ -1,61 +1,61 @@
1
- /** @packageDocumentation
2
- * @module Tools
3
- */
4
- import { EmphasizeElements, ScreenViewport, Tool } from "@itwin/core-frontend";
5
- /** Applies the `EmphasizeElements` API in some way to the selected Viewport.
6
- * @beta
7
- */
8
- export declare abstract class EmphasizeElementsTool extends Tool {
9
- protected get _wantCreate(): boolean;
10
- protected get _wantClear(): boolean;
11
- protected abstract execute(emph: EmphasizeElements, vp: ScreenViewport): void;
12
- run(_args: any[]): Promise<boolean>;
13
- }
14
- /** If any elements are selected, emphasize them all by overriding their color to be orange; and de-emphasize all other elements by drawing them transparent grey.
15
- * @beta
16
- */
17
- export declare class EmphasizeSelectedElementsTool extends EmphasizeElementsTool {
18
- static toolId: string;
19
- static get minArgs(): number;
20
- static get maxArgs(): number;
21
- private _type;
22
- execute(emph: EmphasizeElements, vp: ScreenViewport): void;
23
- parseAndRun(...args: string[]): Promise<boolean>;
24
- }
25
- /** Isolate all selected elements so that *only* those elements will be drawn.
26
- * @beta
27
- */
28
- export declare class IsolateSelectedElementsTool extends EmphasizeElementsTool {
29
- static toolId: string;
30
- execute(emph: EmphasizeElements, vp: ScreenViewport): void;
31
- }
32
- /** Clear the set of isolated elements.
33
- * @beta
34
- */
35
- export declare class ClearIsolatedElementsTool extends EmphasizeElementsTool {
36
- static toolId: string;
37
- protected get _wantCreate(): boolean;
38
- execute(emph: EmphasizeElements, vp: ScreenViewport): void;
39
- }
40
- /** Reset [EmphasizeElements]($frontend) for the active [Viewport]($frontend).
41
- * @beta
42
- */
43
- export declare class ClearEmphasizedElementsTool extends EmphasizeElementsTool {
44
- static toolId: string;
45
- protected get _wantCreate(): boolean;
46
- protected get _wantClear(): boolean;
47
- execute(emph: EmphasizeElements, vp: ScreenViewport): void;
48
- }
49
- /** Emphasize the set of elements currently visible in the view based on [Viewport.queryVisibleFeatures]($frontend).
50
- * @beta
51
- */
52
- export declare class EmphasizeVisibleElementsTool extends EmphasizeElementsTool {
53
- static toolId: string;
54
- static get minArgs(): number;
55
- static get maxArgs(): number;
56
- private _options;
57
- protected get _wantClear(): boolean;
58
- parseAndRun(...input: string[]): Promise<boolean>;
59
- execute(emph: EmphasizeElements, vp: ScreenViewport): void;
60
- }
1
+ /** @packageDocumentation
2
+ * @module Tools
3
+ */
4
+ import { EmphasizeElements, ScreenViewport, Tool } from "@itwin/core-frontend";
5
+ /** Applies the `EmphasizeElements` API in some way to the selected Viewport.
6
+ * @beta
7
+ */
8
+ export declare abstract class EmphasizeElementsTool extends Tool {
9
+ protected get _wantCreate(): boolean;
10
+ protected get _wantClear(): boolean;
11
+ protected abstract execute(emph: EmphasizeElements, vp: ScreenViewport): void;
12
+ run(_args: any[]): Promise<boolean>;
13
+ }
14
+ /** If any elements are selected, emphasize them all by overriding their color to be orange; and de-emphasize all other elements by drawing them transparent grey.
15
+ * @beta
16
+ */
17
+ export declare class EmphasizeSelectedElementsTool extends EmphasizeElementsTool {
18
+ static toolId: string;
19
+ static get minArgs(): number;
20
+ static get maxArgs(): number;
21
+ private _type;
22
+ execute(emph: EmphasizeElements, vp: ScreenViewport): void;
23
+ parseAndRun(...args: string[]): Promise<boolean>;
24
+ }
25
+ /** Isolate all selected elements so that *only* those elements will be drawn.
26
+ * @beta
27
+ */
28
+ export declare class IsolateSelectedElementsTool extends EmphasizeElementsTool {
29
+ static toolId: string;
30
+ execute(emph: EmphasizeElements, vp: ScreenViewport): void;
31
+ }
32
+ /** Clear the set of isolated elements.
33
+ * @beta
34
+ */
35
+ export declare class ClearIsolatedElementsTool extends EmphasizeElementsTool {
36
+ static toolId: string;
37
+ protected get _wantCreate(): boolean;
38
+ execute(emph: EmphasizeElements, vp: ScreenViewport): void;
39
+ }
40
+ /** Reset [EmphasizeElements]($frontend) for the active [Viewport]($frontend).
41
+ * @beta
42
+ */
43
+ export declare class ClearEmphasizedElementsTool extends EmphasizeElementsTool {
44
+ static toolId: string;
45
+ protected get _wantCreate(): boolean;
46
+ protected get _wantClear(): boolean;
47
+ execute(emph: EmphasizeElements, vp: ScreenViewport): void;
48
+ }
49
+ /** Emphasize the set of elements currently visible in the view based on [Viewport.queryVisibleFeatures]($frontend).
50
+ * @beta
51
+ */
52
+ export declare class EmphasizeVisibleElementsTool extends EmphasizeElementsTool {
53
+ static toolId: string;
54
+ static get minArgs(): number;
55
+ static get maxArgs(): number;
56
+ private _options;
57
+ protected get _wantClear(): boolean;
58
+ parseAndRun(...input: string[]): Promise<boolean>;
59
+ execute(emph: EmphasizeElements, vp: ScreenViewport): void;
60
+ }
61
61
  //# sourceMappingURL=EmphasizeElementsTool.d.ts.map
@@ -1,155 +1,155 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module Tools
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.EmphasizeVisibleElementsTool = exports.ClearEmphasizedElementsTool = exports.ClearIsolatedElementsTool = exports.IsolateSelectedElementsTool = exports.EmphasizeSelectedElementsTool = exports.EmphasizeElementsTool = void 0;
11
- const core_bentley_1 = require("@itwin/core-bentley");
12
- const core_common_1 = require("@itwin/core-common");
13
- const core_frontend_1 = require("@itwin/core-frontend");
14
- const parseArgs_1 = require("./parseArgs");
15
- /** Applies the `EmphasizeElements` API in some way to the selected Viewport.
16
- * @beta
17
- */
18
- class EmphasizeElementsTool extends core_frontend_1.Tool {
19
- get _wantCreate() { return true; }
20
- get _wantClear() { return false; }
21
- async run(_args) {
22
- const vp = core_frontend_1.IModelApp.viewManager.selectedView;
23
- if (undefined === vp)
24
- return true;
25
- if (this._wantClear)
26
- core_frontend_1.EmphasizeElements.clear(vp);
27
- const emph = this._wantCreate ? core_frontend_1.EmphasizeElements.getOrCreate(vp) : core_frontend_1.EmphasizeElements.get(vp);
28
- if (undefined !== emph)
29
- this.execute(emph, vp);
30
- return true;
31
- }
32
- }
33
- exports.EmphasizeElementsTool = EmphasizeElementsTool;
34
- /** If any elements are selected, emphasize them all by overriding their color to be orange; and de-emphasize all other elements by drawing them transparent grey.
35
- * @beta
36
- */
37
- class EmphasizeSelectedElementsTool extends EmphasizeElementsTool {
38
- constructor() {
39
- super(...arguments);
40
- this._type = 0 /* None */;
41
- }
42
- static get minArgs() { return 0; }
43
- static get maxArgs() { return 1; }
44
- execute(emph, vp) {
45
- if (0 /* None */ === (this._type & 1 /* Color */) || emph.overrideSelectedElements(vp, core_common_1.ColorDef.white, undefined, true, false)) {
46
- emph.wantEmphasis = 0 /* None */ !== (this._type & 2 /* Emphasis */);
47
- if (emph.emphasizeSelectedElements(vp, undefined, true)) {
48
- vp.isFadeOutActive = true;
49
- return;
50
- }
51
- }
52
- // Empty selection set - clear any previous overrides.
53
- core_frontend_1.EmphasizeElements.clear(vp);
54
- emph.wantEmphasis = false;
55
- vp.isFadeOutActive = false;
56
- }
57
- async parseAndRun(...args) {
58
- if (1 === args.length) {
59
- switch (args[0].toLowerCase()[0]) {
60
- case "n":
61
- break;
62
- case "c":
63
- this._type = 1 /* Color */;
64
- break;
65
- case "e":
66
- this._type = 2 /* Emphasis */;
67
- break;
68
- case "b":
69
- this._type = 3 /* Both */;
70
- break;
71
- }
72
- }
73
- return this.run(args);
74
- }
75
- }
76
- exports.EmphasizeSelectedElementsTool = EmphasizeSelectedElementsTool;
77
- EmphasizeSelectedElementsTool.toolId = "EmphasizeSelectedElements";
78
- /** Isolate all selected elements so that *only* those elements will be drawn.
79
- * @beta
80
- */
81
- class IsolateSelectedElementsTool extends EmphasizeElementsTool {
82
- execute(emph, vp) {
83
- emph.isolateSelectedElements(vp, true, true);
84
- }
85
- }
86
- exports.IsolateSelectedElementsTool = IsolateSelectedElementsTool;
87
- IsolateSelectedElementsTool.toolId = "IsolateSelectedElements";
88
- /** Clear the set of isolated elements.
89
- * @beta
90
- */
91
- class ClearIsolatedElementsTool extends EmphasizeElementsTool {
92
- get _wantCreate() { return false; }
93
- execute(emph, vp) {
94
- emph.clearIsolatedElements(vp);
95
- }
96
- }
97
- exports.ClearIsolatedElementsTool = ClearIsolatedElementsTool;
98
- ClearIsolatedElementsTool.toolId = "ClearIsolatedElements";
99
- /** Reset [EmphasizeElements]($frontend) for the active [Viewport]($frontend).
100
- * @beta
101
- */
102
- class ClearEmphasizedElementsTool extends EmphasizeElementsTool {
103
- get _wantCreate() { return false; }
104
- get _wantClear() { return true; }
105
- execute(emph, vp) {
106
- emph.clearEmphasizedElements(vp);
107
- vp.isFadeOutActive = false;
108
- }
109
- }
110
- exports.ClearEmphasizedElementsTool = ClearEmphasizedElementsTool;
111
- ClearEmphasizedElementsTool.toolId = "ClearEmphasizedElements";
112
- /** Emphasize the set of elements currently visible in the view based on [Viewport.queryVisibleFeatures]($frontend).
113
- * @beta
114
- */
115
- class EmphasizeVisibleElementsTool extends EmphasizeElementsTool {
116
- constructor() {
117
- super(...arguments);
118
- this._options = { source: "screen" };
119
- }
120
- static get minArgs() { return 1; }
121
- static get maxArgs() { return 2; }
122
- get _wantClear() { return true; }
123
- async parseAndRun(...input) {
124
- const args = (0, parseArgs_1.parseArgs)(input);
125
- const includeNonLocatable = args.getBoolean("n");
126
- let source;
127
- switch (input[0].toLowerCase()) {
128
- case "screen":
129
- source = "screen";
130
- break;
131
- case "tiles":
132
- source = "tiles";
133
- break;
134
- default:
135
- return false;
136
- }
137
- this._options = { source, includeNonLocatable };
138
- return this.run(input);
139
- }
140
- execute(emph, vp) {
141
- const elementIds = new Set();
142
- vp.queryVisibleFeatures(this._options, (features) => {
143
- for (const feature of features) {
144
- if (feature.iModel === vp.iModel && core_bentley_1.Id64.isValid(feature.elementId))
145
- elementIds.add(feature.elementId);
146
- }
147
- });
148
- emph.wantEmphasis = true;
149
- if (emph.emphasizeElements(elementIds, vp))
150
- vp.isFadeOutActive = true;
151
- }
152
- }
153
- exports.EmphasizeVisibleElementsTool = EmphasizeVisibleElementsTool;
154
- EmphasizeVisibleElementsTool.toolId = "EmphasizeVisibleElements";
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Tools
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.EmphasizeVisibleElementsTool = exports.ClearEmphasizedElementsTool = exports.ClearIsolatedElementsTool = exports.IsolateSelectedElementsTool = exports.EmphasizeSelectedElementsTool = exports.EmphasizeElementsTool = void 0;
11
+ const core_bentley_1 = require("@itwin/core-bentley");
12
+ const core_common_1 = require("@itwin/core-common");
13
+ const core_frontend_1 = require("@itwin/core-frontend");
14
+ const parseArgs_1 = require("./parseArgs");
15
+ /** Applies the `EmphasizeElements` API in some way to the selected Viewport.
16
+ * @beta
17
+ */
18
+ class EmphasizeElementsTool extends core_frontend_1.Tool {
19
+ get _wantCreate() { return true; }
20
+ get _wantClear() { return false; }
21
+ async run(_args) {
22
+ const vp = core_frontend_1.IModelApp.viewManager.selectedView;
23
+ if (undefined === vp)
24
+ return true;
25
+ if (this._wantClear)
26
+ core_frontend_1.EmphasizeElements.clear(vp);
27
+ const emph = this._wantCreate ? core_frontend_1.EmphasizeElements.getOrCreate(vp) : core_frontend_1.EmphasizeElements.get(vp);
28
+ if (undefined !== emph)
29
+ this.execute(emph, vp);
30
+ return true;
31
+ }
32
+ }
33
+ exports.EmphasizeElementsTool = EmphasizeElementsTool;
34
+ /** If any elements are selected, emphasize them all by overriding their color to be orange; and de-emphasize all other elements by drawing them transparent grey.
35
+ * @beta
36
+ */
37
+ class EmphasizeSelectedElementsTool extends EmphasizeElementsTool {
38
+ constructor() {
39
+ super(...arguments);
40
+ this._type = 0 /* None */;
41
+ }
42
+ static get minArgs() { return 0; }
43
+ static get maxArgs() { return 1; }
44
+ execute(emph, vp) {
45
+ if (0 /* None */ === (this._type & 1 /* Color */) || emph.overrideSelectedElements(vp, core_common_1.ColorDef.white, undefined, true, false)) {
46
+ emph.wantEmphasis = 0 /* None */ !== (this._type & 2 /* Emphasis */);
47
+ if (emph.emphasizeSelectedElements(vp, undefined, true)) {
48
+ vp.isFadeOutActive = true;
49
+ return;
50
+ }
51
+ }
52
+ // Empty selection set - clear any previous overrides.
53
+ core_frontend_1.EmphasizeElements.clear(vp);
54
+ emph.wantEmphasis = false;
55
+ vp.isFadeOutActive = false;
56
+ }
57
+ async parseAndRun(...args) {
58
+ if (1 === args.length) {
59
+ switch (args[0].toLowerCase()[0]) {
60
+ case "n":
61
+ break;
62
+ case "c":
63
+ this._type = 1 /* Color */;
64
+ break;
65
+ case "e":
66
+ this._type = 2 /* Emphasis */;
67
+ break;
68
+ case "b":
69
+ this._type = 3 /* Both */;
70
+ break;
71
+ }
72
+ }
73
+ return this.run(args);
74
+ }
75
+ }
76
+ exports.EmphasizeSelectedElementsTool = EmphasizeSelectedElementsTool;
77
+ EmphasizeSelectedElementsTool.toolId = "EmphasizeSelectedElements";
78
+ /** Isolate all selected elements so that *only* those elements will be drawn.
79
+ * @beta
80
+ */
81
+ class IsolateSelectedElementsTool extends EmphasizeElementsTool {
82
+ execute(emph, vp) {
83
+ emph.isolateSelectedElements(vp, true, true);
84
+ }
85
+ }
86
+ exports.IsolateSelectedElementsTool = IsolateSelectedElementsTool;
87
+ IsolateSelectedElementsTool.toolId = "IsolateSelectedElements";
88
+ /** Clear the set of isolated elements.
89
+ * @beta
90
+ */
91
+ class ClearIsolatedElementsTool extends EmphasizeElementsTool {
92
+ get _wantCreate() { return false; }
93
+ execute(emph, vp) {
94
+ emph.clearIsolatedElements(vp);
95
+ }
96
+ }
97
+ exports.ClearIsolatedElementsTool = ClearIsolatedElementsTool;
98
+ ClearIsolatedElementsTool.toolId = "ClearIsolatedElements";
99
+ /** Reset [EmphasizeElements]($frontend) for the active [Viewport]($frontend).
100
+ * @beta
101
+ */
102
+ class ClearEmphasizedElementsTool extends EmphasizeElementsTool {
103
+ get _wantCreate() { return false; }
104
+ get _wantClear() { return true; }
105
+ execute(emph, vp) {
106
+ emph.clearEmphasizedElements(vp);
107
+ vp.isFadeOutActive = false;
108
+ }
109
+ }
110
+ exports.ClearEmphasizedElementsTool = ClearEmphasizedElementsTool;
111
+ ClearEmphasizedElementsTool.toolId = "ClearEmphasizedElements";
112
+ /** Emphasize the set of elements currently visible in the view based on [Viewport.queryVisibleFeatures]($frontend).
113
+ * @beta
114
+ */
115
+ class EmphasizeVisibleElementsTool extends EmphasizeElementsTool {
116
+ constructor() {
117
+ super(...arguments);
118
+ this._options = { source: "screen" };
119
+ }
120
+ static get minArgs() { return 1; }
121
+ static get maxArgs() { return 2; }
122
+ get _wantClear() { return true; }
123
+ async parseAndRun(...input) {
124
+ const args = (0, parseArgs_1.parseArgs)(input);
125
+ const includeNonLocatable = args.getBoolean("n");
126
+ let source;
127
+ switch (input[0].toLowerCase()) {
128
+ case "screen":
129
+ source = "screen";
130
+ break;
131
+ case "tiles":
132
+ source = "tiles";
133
+ break;
134
+ default:
135
+ return false;
136
+ }
137
+ this._options = { source, includeNonLocatable };
138
+ return this.run(input);
139
+ }
140
+ execute(emph, vp) {
141
+ const elementIds = new Set();
142
+ vp.queryVisibleFeatures(this._options, (features) => {
143
+ for (const feature of features) {
144
+ if (feature.iModel === vp.iModel && core_bentley_1.Id64.isValid(feature.elementId))
145
+ elementIds.add(feature.elementId);
146
+ }
147
+ });
148
+ emph.wantEmphasis = true;
149
+ if (emph.emphasizeElements(elementIds, vp))
150
+ vp.isFadeOutActive = true;
151
+ }
152
+ }
153
+ exports.EmphasizeVisibleElementsTool = EmphasizeVisibleElementsTool;
154
+ EmphasizeVisibleElementsTool.toolId = "EmphasizeVisibleElements";
155
155
  //# sourceMappingURL=EmphasizeElementsTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmphasizeElementsTool.js","sourceRoot":"","sources":["../../../src/tools/EmphasizeElementsTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { Id64 } from \"@itwin/core-bentley\";\nimport { ColorDef } from \"@itwin/core-common\";\nimport { EmphasizeElements, IModelApp, QueryVisibleFeaturesOptions, ScreenViewport, Tool } from \"@itwin/core-frontend\";\nimport { parseArgs } from \"./parseArgs\";\n\n/** Applies the `EmphasizeElements` API in some way to the selected Viewport.\n * @beta\n */\nexport abstract class EmphasizeElementsTool extends Tool {\n protected get _wantCreate(): boolean { return true; }\n protected get _wantClear(): boolean { return false; }\n protected abstract execute(emph: EmphasizeElements, vp: ScreenViewport): void;\n\n public override async run(_args: any[]): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp)\n return true;\n\n if (this._wantClear)\n EmphasizeElements.clear(vp);\n\n const emph = this._wantCreate ? EmphasizeElements.getOrCreate(vp) : EmphasizeElements.get(vp);\n if (undefined !== emph)\n this.execute(emph, vp);\n\n return true;\n }\n}\n\nconst enum OverrideType { // eslint-disable-line no-restricted-syntax\n None = 0,\n Color = 1 << 0,\n Emphasis = 1 << 1,\n Both = Color | Emphasis,\n}\n\n/** If any elements are selected, emphasize them all by overriding their color to be orange; and de-emphasize all other elements by drawing them transparent grey.\n * @beta\n */\nexport class EmphasizeSelectedElementsTool extends EmphasizeElementsTool {\n public static override toolId = \"EmphasizeSelectedElements\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n private _type = OverrideType.None;\n\n public execute(emph: EmphasizeElements, vp: ScreenViewport): void {\n if (OverrideType.None === (this._type & OverrideType.Color) || emph.overrideSelectedElements(vp, ColorDef.white, undefined, true, false)) {\n emph.wantEmphasis = OverrideType.None !== (this._type & OverrideType.Emphasis);\n if (emph.emphasizeSelectedElements(vp, undefined, true)) {\n vp.isFadeOutActive = true;\n return;\n }\n }\n\n // Empty selection set - clear any previous overrides.\n EmphasizeElements.clear(vp);\n emph.wantEmphasis = false;\n vp.isFadeOutActive = false;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (1 === args.length) {\n switch (args[0].toLowerCase()[0]) {\n case \"n\":\n break;\n case \"c\":\n this._type = OverrideType.Color;\n break;\n case \"e\":\n this._type = OverrideType.Emphasis;\n break;\n case \"b\":\n this._type = OverrideType.Both;\n break;\n }\n }\n\n return this.run(args);\n }\n}\n\n/** Isolate all selected elements so that *only* those elements will be drawn.\n * @beta\n */\nexport class IsolateSelectedElementsTool extends EmphasizeElementsTool {\n public static override toolId = \"IsolateSelectedElements\";\n public execute(emph: EmphasizeElements, vp: ScreenViewport): void {\n emph.isolateSelectedElements(vp, true, true);\n }\n}\n\n/** Clear the set of isolated elements.\n * @beta\n */\nexport class ClearIsolatedElementsTool extends EmphasizeElementsTool {\n public static override toolId = \"ClearIsolatedElements\";\n protected override get _wantCreate() { return false; }\n public execute(emph: EmphasizeElements, vp: ScreenViewport): void {\n emph.clearIsolatedElements(vp);\n }\n}\n\n/** Reset [EmphasizeElements]($frontend) for the active [Viewport]($frontend).\n * @beta\n */\nexport class ClearEmphasizedElementsTool extends EmphasizeElementsTool {\n public static override toolId = \"ClearEmphasizedElements\";\n protected override get _wantCreate() { return false; }\n protected override get _wantClear() { return true; }\n\n public execute(emph: EmphasizeElements, vp: ScreenViewport): void {\n emph.clearEmphasizedElements(vp);\n vp.isFadeOutActive = false;\n }\n}\n\n/** Emphasize the set of elements currently visible in the view based on [Viewport.queryVisibleFeatures]($frontend).\n * @beta\n */\nexport class EmphasizeVisibleElementsTool extends EmphasizeElementsTool {\n public static override toolId = \"EmphasizeVisibleElements\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n private _options: QueryVisibleFeaturesOptions = { source: \"screen\" };\n protected override get _wantClear() { return true; }\n\n public override async parseAndRun(...input: string[]): Promise<boolean> {\n const args = parseArgs(input);\n const includeNonLocatable = args.getBoolean(\"n\");\n let source: \"screen\" | \"tiles\";\n switch (input[0].toLowerCase()) {\n case \"screen\":\n source = \"screen\";\n break;\n case \"tiles\":\n source = \"tiles\";\n break;\n default:\n return false;\n }\n\n this._options = { source, includeNonLocatable };\n return this.run(input);\n }\n\n public execute(emph: EmphasizeElements, vp: ScreenViewport): void {\n const elementIds = new Set<string>();\n vp.queryVisibleFeatures(this._options, (features) => {\n for (const feature of features) {\n if (feature.iModel === vp.iModel && Id64.isValid(feature.elementId))\n elementIds.add(feature.elementId);\n }\n });\n\n emph.wantEmphasis = true;\n if (emph.emphasizeElements(elementIds, vp))\n vp.isFadeOutActive = true;\n }\n}\n"]}
1
+ {"version":3,"file":"EmphasizeElementsTool.js","sourceRoot":"","sources":["../../../src/tools/EmphasizeElementsTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA2C;AAC3C,oDAA8C;AAC9C,wDAAuH;AACvH,2CAAwC;AAExC;;GAEG;AACH,MAAsB,qBAAsB,SAAQ,oBAAI;IACtD,IAAc,WAAW,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IACrD,IAAc,UAAU,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IAGrC,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE;YAClB,OAAO,IAAI,CAAC;QAEd,IAAI,IAAI,CAAC,UAAU;YACjB,iCAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,iCAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iCAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9F,IAAI,SAAS,KAAK,IAAI;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAnBD,sDAmBC;AASD;;GAEG;AACH,MAAa,6BAA8B,SAAQ,qBAAqB;IAAxE;;QAIU,UAAK,gBAAqB;IAoCpC,CAAC;IAtCQ,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAG3C,OAAO,CAAC,IAAuB,EAAE,EAAkB;QACxD,IAAI,iBAAsB,CAAC,IAAI,CAAC,KAAK,gBAAqB,CAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,sBAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;YACxI,IAAI,CAAC,YAAY,GAAG,iBAAsB,CAAC,IAAI,CAAC,KAAK,mBAAwB,CAAC,CAAC;YAC/E,IAAI,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;gBACvD,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC1B,OAAO;aACR;SACF;QAED,sDAAsD;QACtD,iCAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;YACrB,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;gBAChC,KAAK,GAAG;oBACN,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,CAAC,KAAK,gBAAqB,CAAC;oBAChC,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,CAAC,KAAK,mBAAwB,CAAC;oBACnC,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,CAAC,KAAK,eAAoB,CAAC;oBAC/B,MAAM;aACT;SACF;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;;AAvCH,sEAwCC;AAvCwB,oCAAM,GAAG,2BAA2B,CAAC;AAyC9D;;GAEG;AACH,MAAa,2BAA4B,SAAQ,qBAAqB;IAE7D,OAAO,CAAC,IAAuB,EAAE,EAAkB;QACxD,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;;AAJH,kEAKC;AAJwB,kCAAM,GAAG,yBAAyB,CAAC;AAM5D;;GAEG;AACH,MAAa,yBAA0B,SAAQ,qBAAqB;IAElE,IAAuB,WAAW,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAuB,EAAE,EAAkB;QACxD,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;;AALH,8DAMC;AALwB,gCAAM,GAAG,uBAAuB,CAAC;AAO1D;;GAEG;AACH,MAAa,2BAA4B,SAAQ,qBAAqB;IAEpE,IAAuB,WAAW,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;IACtD,IAAuB,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAE7C,OAAO,CAAC,IAAuB,EAAE,EAAkB;QACxD,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QACjC,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,CAAC;;AARH,kEASC;AARwB,kCAAM,GAAG,yBAAyB,CAAC;AAU5D;;GAEG;AACH,MAAa,4BAA6B,SAAQ,qBAAqB;IAAvE;;QAIU,aAAQ,GAAgC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAmCvE,CAAC;IArCQ,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD,IAAuB,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAEpC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAe;QAClD,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,MAA0B,CAAC;QAC/B,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;YAC9B,KAAK,QAAQ;gBACX,MAAM,GAAG,QAAQ,CAAC;gBAClB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,GAAG,OAAO,CAAC;gBACjB,MAAM;YACR;gBACE,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,QAAQ,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAEM,OAAO,CAAC,IAAuB,EAAE,EAAkB;QACxD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YAClD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;oBACjE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC;YACxC,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;;AAtCH,oEAuCC;AAtCwB,mCAAM,GAAG,0BAA0B,CAAC","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 Tools\r\n */\r\n\r\nimport { Id64 } from \"@itwin/core-bentley\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { EmphasizeElements, IModelApp, QueryVisibleFeaturesOptions, ScreenViewport, Tool } from \"@itwin/core-frontend\";\r\nimport { parseArgs } from \"./parseArgs\";\r\n\r\n/** Applies the `EmphasizeElements` API in some way to the selected Viewport.\r\n * @beta\r\n */\r\nexport abstract class EmphasizeElementsTool extends Tool {\r\n protected get _wantCreate(): boolean { return true; }\r\n protected get _wantClear(): boolean { return false; }\r\n protected abstract execute(emph: EmphasizeElements, vp: ScreenViewport): void;\r\n\r\n public override async run(_args: any[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp)\r\n return true;\r\n\r\n if (this._wantClear)\r\n EmphasizeElements.clear(vp);\r\n\r\n const emph = this._wantCreate ? EmphasizeElements.getOrCreate(vp) : EmphasizeElements.get(vp);\r\n if (undefined !== emph)\r\n this.execute(emph, vp);\r\n\r\n return true;\r\n }\r\n}\r\n\r\nconst enum OverrideType { // eslint-disable-line no-restricted-syntax\r\n None = 0,\r\n Color = 1 << 0,\r\n Emphasis = 1 << 1,\r\n Both = Color | Emphasis,\r\n}\r\n\r\n/** If any elements are selected, emphasize them all by overriding their color to be orange; and de-emphasize all other elements by drawing them transparent grey.\r\n * @beta\r\n */\r\nexport class EmphasizeSelectedElementsTool extends EmphasizeElementsTool {\r\n public static override toolId = \"EmphasizeSelectedElements\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n private _type = OverrideType.None;\r\n\r\n public execute(emph: EmphasizeElements, vp: ScreenViewport): void {\r\n if (OverrideType.None === (this._type & OverrideType.Color) || emph.overrideSelectedElements(vp, ColorDef.white, undefined, true, false)) {\r\n emph.wantEmphasis = OverrideType.None !== (this._type & OverrideType.Emphasis);\r\n if (emph.emphasizeSelectedElements(vp, undefined, true)) {\r\n vp.isFadeOutActive = true;\r\n return;\r\n }\r\n }\r\n\r\n // Empty selection set - clear any previous overrides.\r\n EmphasizeElements.clear(vp);\r\n emph.wantEmphasis = false;\r\n vp.isFadeOutActive = false;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n if (1 === args.length) {\r\n switch (args[0].toLowerCase()[0]) {\r\n case \"n\":\r\n break;\r\n case \"c\":\r\n this._type = OverrideType.Color;\r\n break;\r\n case \"e\":\r\n this._type = OverrideType.Emphasis;\r\n break;\r\n case \"b\":\r\n this._type = OverrideType.Both;\r\n break;\r\n }\r\n }\r\n\r\n return this.run(args);\r\n }\r\n}\r\n\r\n/** Isolate all selected elements so that *only* those elements will be drawn.\r\n * @beta\r\n */\r\nexport class IsolateSelectedElementsTool extends EmphasizeElementsTool {\r\n public static override toolId = \"IsolateSelectedElements\";\r\n public execute(emph: EmphasizeElements, vp: ScreenViewport): void {\r\n emph.isolateSelectedElements(vp, true, true);\r\n }\r\n}\r\n\r\n/** Clear the set of isolated elements.\r\n * @beta\r\n */\r\nexport class ClearIsolatedElementsTool extends EmphasizeElementsTool {\r\n public static override toolId = \"ClearIsolatedElements\";\r\n protected override get _wantCreate() { return false; }\r\n public execute(emph: EmphasizeElements, vp: ScreenViewport): void {\r\n emph.clearIsolatedElements(vp);\r\n }\r\n}\r\n\r\n/** Reset [EmphasizeElements]($frontend) for the active [Viewport]($frontend).\r\n * @beta\r\n */\r\nexport class ClearEmphasizedElementsTool extends EmphasizeElementsTool {\r\n public static override toolId = \"ClearEmphasizedElements\";\r\n protected override get _wantCreate() { return false; }\r\n protected override get _wantClear() { return true; }\r\n\r\n public execute(emph: EmphasizeElements, vp: ScreenViewport): void {\r\n emph.clearEmphasizedElements(vp);\r\n vp.isFadeOutActive = false;\r\n }\r\n}\r\n\r\n/** Emphasize the set of elements currently visible in the view based on [Viewport.queryVisibleFeatures]($frontend).\r\n * @beta\r\n */\r\nexport class EmphasizeVisibleElementsTool extends EmphasizeElementsTool {\r\n public static override toolId = \"EmphasizeVisibleElements\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n private _options: QueryVisibleFeaturesOptions = { source: \"screen\" };\r\n protected override get _wantClear() { return true; }\r\n\r\n public override async parseAndRun(...input: string[]): Promise<boolean> {\r\n const args = parseArgs(input);\r\n const includeNonLocatable = args.getBoolean(\"n\");\r\n let source: \"screen\" | \"tiles\";\r\n switch (input[0].toLowerCase()) {\r\n case \"screen\":\r\n source = \"screen\";\r\n break;\r\n case \"tiles\":\r\n source = \"tiles\";\r\n break;\r\n default:\r\n return false;\r\n }\r\n\r\n this._options = { source, includeNonLocatable };\r\n return this.run(input);\r\n }\r\n\r\n public execute(emph: EmphasizeElements, vp: ScreenViewport): void {\r\n const elementIds = new Set<string>();\r\n vp.queryVisibleFeatures(this._options, (features) => {\r\n for (const feature of features) {\r\n if (feature.iModel === vp.iModel && Id64.isValid(feature.elementId))\r\n elementIds.add(feature.elementId);\r\n }\r\n });\r\n\r\n emph.wantEmphasis = true;\r\n if (emph.emphasizeElements(elementIds, vp))\r\n vp.isFadeOutActive = true;\r\n }\r\n}\r\n"]}