@itwin/frontend-devtools 5.0.0-dev.9 → 5.0.0-dev.92

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 (264) hide show
  1. package/CHANGELOG.md +51 -1
  2. package/README.md +1 -1
  3. package/lib/cjs/ClipboardUtilities.js.map +1 -1
  4. package/lib/cjs/FrontEndDevTools.js +1 -1
  5. package/lib/cjs/FrontEndDevTools.js.map +1 -1
  6. package/lib/cjs/effects/Convolution.js +23 -23
  7. package/lib/cjs/effects/Convolution.js.map +1 -1
  8. package/lib/cjs/effects/EffectTools.js +2 -2
  9. package/lib/cjs/effects/EffectTools.js.map +1 -1
  10. package/lib/cjs/effects/Explosion.js +37 -25
  11. package/lib/cjs/effects/Explosion.js.map +1 -1
  12. package/lib/cjs/effects/FlipImage.js +22 -22
  13. package/lib/cjs/effects/FlipImage.js.map +1 -1
  14. package/lib/cjs/effects/LensDistortion.js +25 -25
  15. package/lib/cjs/effects/LensDistortion.js.map +1 -1
  16. package/lib/cjs/effects/Random.js.map +1 -1
  17. package/lib/cjs/effects/Saturation.js +30 -30
  18. package/lib/cjs/effects/Saturation.js.map +1 -1
  19. package/lib/cjs/effects/Snow.d.ts +1 -1
  20. package/lib/cjs/effects/Snow.d.ts.map +1 -1
  21. package/lib/cjs/effects/Snow.js +19 -8
  22. package/lib/cjs/effects/Snow.js.map +1 -1
  23. package/lib/cjs/effects/Vignette.js +41 -41
  24. package/lib/cjs/effects/Vignette.js.map +1 -1
  25. package/lib/cjs/frontend-devtools.js.map +1 -1
  26. package/lib/cjs/tools/AnimationIntervalTool.js +1 -1
  27. package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
  28. package/lib/cjs/tools/ChangeUnitsTool.js +1 -1
  29. package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
  30. package/lib/cjs/tools/ClipTools.js +6 -8
  31. package/lib/cjs/tools/ClipTools.js.map +1 -1
  32. package/lib/cjs/tools/DisplayStyleTools.js +21 -25
  33. package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
  34. package/lib/cjs/tools/EmphasizeElementsTool.js +7 -13
  35. package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
  36. package/lib/cjs/tools/FrustumDecoration.js +28 -9
  37. package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
  38. package/lib/cjs/tools/InspectElementTool.js +7 -6
  39. package/lib/cjs/tools/InspectElementTool.js.map +1 -1
  40. package/lib/cjs/tools/MapLayerTool.d.ts +1 -1
  41. package/lib/cjs/tools/MapLayerTool.d.ts.map +1 -1
  42. package/lib/cjs/tools/MapLayerTool.js +31 -25
  43. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  44. package/lib/cjs/tools/MeasureTileLoadTime.js +4 -1
  45. package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
  46. package/lib/cjs/tools/ModelAppearanceTools.js +9 -9
  47. package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
  48. package/lib/cjs/tools/PlanProjectionTools.js +8 -15
  49. package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
  50. package/lib/cjs/tools/PlanarMaskTools.js +21 -26
  51. package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
  52. package/lib/cjs/tools/ProjectExtents.js +6 -3
  53. package/lib/cjs/tools/ProjectExtents.js.map +1 -1
  54. package/lib/cjs/tools/RealityModelTools.js +10 -10
  55. package/lib/cjs/tools/RealityModelTools.js.map +1 -1
  56. package/lib/cjs/tools/RealityTransitionTool.js +1 -1
  57. package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
  58. package/lib/cjs/tools/RenderSystemTools.js +4 -3
  59. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  60. package/lib/cjs/tools/RenderTargetTools.d.ts +1 -1
  61. package/lib/cjs/tools/RenderTargetTools.d.ts.map +1 -1
  62. package/lib/cjs/tools/RenderTargetTools.js +15 -20
  63. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  64. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +1 -1
  65. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  66. package/lib/cjs/tools/SavedViews.js +4 -7
  67. package/lib/cjs/tools/SavedViews.js.map +1 -1
  68. package/lib/cjs/tools/ScheduleScriptTools.d.ts.map +1 -1
  69. package/lib/cjs/tools/ScheduleScriptTools.js +11 -12
  70. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  71. package/lib/cjs/tools/SelectionTools.js +4 -6
  72. package/lib/cjs/tools/SelectionTools.js.map +1 -1
  73. package/lib/cjs/tools/SetGpuMemoryLimitTool.js +1 -1
  74. package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
  75. package/lib/cjs/tools/SourceAspectIdTools.js +2 -2
  76. package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
  77. package/lib/cjs/tools/TileRequestDecoration.js +6 -3
  78. package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
  79. package/lib/cjs/tools/TileTreeBoundsDecoration.d.ts.map +1 -1
  80. package/lib/cjs/tools/TileTreeBoundsDecoration.js +8 -4
  81. package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
  82. package/lib/cjs/tools/ToolTipProvider.js +2 -1
  83. package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
  84. package/lib/cjs/tools/ViewportTools.js +22 -19
  85. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  86. package/lib/cjs/tools/parseArgs.js.map +1 -1
  87. package/lib/cjs/tools/parseBoolean.js.map +1 -1
  88. package/lib/cjs/tools/parseToggle.js.map +1 -1
  89. package/lib/cjs/ui/Button.js.map +1 -1
  90. package/lib/cjs/ui/CheckBox.js.map +1 -1
  91. package/lib/cjs/ui/ColorInput.js.map +1 -1
  92. package/lib/cjs/ui/ComboBox.js.map +1 -1
  93. package/lib/cjs/ui/DataList.js.map +1 -1
  94. package/lib/cjs/ui/NestedMenu.js.map +1 -1
  95. package/lib/cjs/ui/NumericInput.js.map +1 -1
  96. package/lib/cjs/ui/RadioBox.js.map +1 -1
  97. package/lib/cjs/ui/Slider.js.map +1 -1
  98. package/lib/cjs/ui/TextBox.js.map +1 -1
  99. package/lib/cjs/widgets/DiagnosticsPanel.d.ts +1 -1
  100. package/lib/cjs/widgets/DiagnosticsPanel.d.ts.map +1 -1
  101. package/lib/cjs/widgets/DiagnosticsPanel.js +11 -1
  102. package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
  103. package/lib/cjs/widgets/FpsTracker.d.ts +1 -1
  104. package/lib/cjs/widgets/FpsTracker.d.ts.map +1 -1
  105. package/lib/cjs/widgets/FpsTracker.js +5 -1
  106. package/lib/cjs/widgets/FpsTracker.js.map +1 -1
  107. package/lib/cjs/widgets/GpuProfiler.d.ts +1 -1
  108. package/lib/cjs/widgets/GpuProfiler.d.ts.map +1 -1
  109. package/lib/cjs/widgets/GpuProfiler.js +89 -82
  110. package/lib/cjs/widgets/GpuProfiler.js.map +1 -1
  111. package/lib/cjs/widgets/KeyinField.js +8 -1
  112. package/lib/cjs/widgets/KeyinField.js.map +1 -1
  113. package/lib/cjs/widgets/MemoryTracker.d.ts +1 -1
  114. package/lib/cjs/widgets/MemoryTracker.d.ts.map +1 -1
  115. package/lib/cjs/widgets/MemoryTracker.js +16 -4
  116. package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
  117. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +1 -1
  118. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts.map +1 -1
  119. package/lib/cjs/widgets/RenderCommandBreakdown.js +6 -2
  120. package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
  121. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts +1 -1
  122. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts.map +1 -1
  123. package/lib/cjs/widgets/TileMemoryBreakdown.js +10 -8
  124. package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
  125. package/lib/cjs/widgets/TileStatisticsTracker.d.ts +1 -1
  126. package/lib/cjs/widgets/TileStatisticsTracker.d.ts.map +1 -1
  127. package/lib/cjs/widgets/TileStatisticsTracker.js +5 -2
  128. package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
  129. package/lib/cjs/widgets/ToolSettingsTracker.d.ts +1 -1
  130. package/lib/cjs/widgets/ToolSettingsTracker.d.ts.map +1 -1
  131. package/lib/cjs/widgets/ToolSettingsTracker.js +2 -2
  132. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  133. package/lib/esm/ClipboardUtilities.js.map +1 -1
  134. package/lib/esm/FrontEndDevTools.js +1 -1
  135. package/lib/esm/FrontEndDevTools.js.map +1 -1
  136. package/lib/esm/effects/Convolution.js +23 -23
  137. package/lib/esm/effects/Convolution.js.map +1 -1
  138. package/lib/esm/effects/EffectTools.js +2 -2
  139. package/lib/esm/effects/EffectTools.js.map +1 -1
  140. package/lib/esm/effects/Explosion.js +37 -25
  141. package/lib/esm/effects/Explosion.js.map +1 -1
  142. package/lib/esm/effects/FlipImage.js +22 -22
  143. package/lib/esm/effects/FlipImage.js.map +1 -1
  144. package/lib/esm/effects/LensDistortion.js +25 -25
  145. package/lib/esm/effects/LensDistortion.js.map +1 -1
  146. package/lib/esm/effects/Random.js.map +1 -1
  147. package/lib/esm/effects/Saturation.js +30 -30
  148. package/lib/esm/effects/Saturation.js.map +1 -1
  149. package/lib/esm/effects/Snow.d.ts +1 -1
  150. package/lib/esm/effects/Snow.d.ts.map +1 -1
  151. package/lib/esm/effects/Snow.js +19 -8
  152. package/lib/esm/effects/Snow.js.map +1 -1
  153. package/lib/esm/effects/Vignette.js +41 -41
  154. package/lib/esm/effects/Vignette.js.map +1 -1
  155. package/lib/esm/frontend-devtools.js.map +1 -1
  156. package/lib/esm/tools/AnimationIntervalTool.js +1 -1
  157. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  158. package/lib/esm/tools/ChangeUnitsTool.js +1 -1
  159. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  160. package/lib/esm/tools/ClipTools.js +6 -8
  161. package/lib/esm/tools/ClipTools.js.map +1 -1
  162. package/lib/esm/tools/DisplayStyleTools.js +21 -25
  163. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  164. package/lib/esm/tools/EmphasizeElementsTool.js +7 -13
  165. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  166. package/lib/esm/tools/FrustumDecoration.js +28 -9
  167. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  168. package/lib/esm/tools/InspectElementTool.js +7 -6
  169. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  170. package/lib/esm/tools/MapLayerTool.d.ts +1 -1
  171. package/lib/esm/tools/MapLayerTool.d.ts.map +1 -1
  172. package/lib/esm/tools/MapLayerTool.js +32 -26
  173. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  174. package/lib/esm/tools/MeasureTileLoadTime.js +4 -1
  175. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  176. package/lib/esm/tools/ModelAppearanceTools.js +9 -9
  177. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  178. package/lib/esm/tools/PlanProjectionTools.js +8 -15
  179. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  180. package/lib/esm/tools/PlanarMaskTools.js +21 -26
  181. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  182. package/lib/esm/tools/ProjectExtents.js +6 -3
  183. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  184. package/lib/esm/tools/RealityModelTools.js +10 -10
  185. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  186. package/lib/esm/tools/RealityTransitionTool.js +1 -1
  187. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  188. package/lib/esm/tools/RenderSystemTools.js +4 -3
  189. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  190. package/lib/esm/tools/RenderTargetTools.d.ts +1 -1
  191. package/lib/esm/tools/RenderTargetTools.d.ts.map +1 -1
  192. package/lib/esm/tools/RenderTargetTools.js +15 -20
  193. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  194. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +1 -1
  195. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  196. package/lib/esm/tools/SavedViews.js +4 -7
  197. package/lib/esm/tools/SavedViews.js.map +1 -1
  198. package/lib/esm/tools/ScheduleScriptTools.d.ts.map +1 -1
  199. package/lib/esm/tools/ScheduleScriptTools.js +11 -12
  200. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  201. package/lib/esm/tools/SelectionTools.js +4 -6
  202. package/lib/esm/tools/SelectionTools.js.map +1 -1
  203. package/lib/esm/tools/SetGpuMemoryLimitTool.js +1 -1
  204. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  205. package/lib/esm/tools/SourceAspectIdTools.js +2 -2
  206. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  207. package/lib/esm/tools/TileRequestDecoration.js +6 -3
  208. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  209. package/lib/esm/tools/TileTreeBoundsDecoration.d.ts.map +1 -1
  210. package/lib/esm/tools/TileTreeBoundsDecoration.js +8 -4
  211. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  212. package/lib/esm/tools/ToolTipProvider.js +2 -1
  213. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  214. package/lib/esm/tools/ViewportTools.js +22 -19
  215. package/lib/esm/tools/ViewportTools.js.map +1 -1
  216. package/lib/esm/tools/parseArgs.js.map +1 -1
  217. package/lib/esm/tools/parseBoolean.js.map +1 -1
  218. package/lib/esm/tools/parseToggle.js.map +1 -1
  219. package/lib/esm/ui/Button.js.map +1 -1
  220. package/lib/esm/ui/CheckBox.js.map +1 -1
  221. package/lib/esm/ui/ColorInput.js.map +1 -1
  222. package/lib/esm/ui/ComboBox.js.map +1 -1
  223. package/lib/esm/ui/DataList.js.map +1 -1
  224. package/lib/esm/ui/NestedMenu.js.map +1 -1
  225. package/lib/esm/ui/NumericInput.js.map +1 -1
  226. package/lib/esm/ui/RadioBox.js.map +1 -1
  227. package/lib/esm/ui/Slider.js.map +1 -1
  228. package/lib/esm/ui/TextBox.js.map +1 -1
  229. package/lib/esm/widgets/DiagnosticsPanel.d.ts +1 -1
  230. package/lib/esm/widgets/DiagnosticsPanel.d.ts.map +1 -1
  231. package/lib/esm/widgets/DiagnosticsPanel.js +11 -1
  232. package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
  233. package/lib/esm/widgets/FpsTracker.d.ts +1 -1
  234. package/lib/esm/widgets/FpsTracker.d.ts.map +1 -1
  235. package/lib/esm/widgets/FpsTracker.js +5 -1
  236. package/lib/esm/widgets/FpsTracker.js.map +1 -1
  237. package/lib/esm/widgets/GpuProfiler.d.ts +1 -1
  238. package/lib/esm/widgets/GpuProfiler.d.ts.map +1 -1
  239. package/lib/esm/widgets/GpuProfiler.js +89 -82
  240. package/lib/esm/widgets/GpuProfiler.js.map +1 -1
  241. package/lib/esm/widgets/KeyinField.js +8 -1
  242. package/lib/esm/widgets/KeyinField.js.map +1 -1
  243. package/lib/esm/widgets/MemoryTracker.d.ts +1 -1
  244. package/lib/esm/widgets/MemoryTracker.d.ts.map +1 -1
  245. package/lib/esm/widgets/MemoryTracker.js +16 -4
  246. package/lib/esm/widgets/MemoryTracker.js.map +1 -1
  247. package/lib/esm/widgets/RenderCommandBreakdown.d.ts +1 -1
  248. package/lib/esm/widgets/RenderCommandBreakdown.d.ts.map +1 -1
  249. package/lib/esm/widgets/RenderCommandBreakdown.js +6 -2
  250. package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
  251. package/lib/esm/widgets/TileMemoryBreakdown.d.ts +1 -1
  252. package/lib/esm/widgets/TileMemoryBreakdown.d.ts.map +1 -1
  253. package/lib/esm/widgets/TileMemoryBreakdown.js +10 -8
  254. package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
  255. package/lib/esm/widgets/TileStatisticsTracker.d.ts +1 -1
  256. package/lib/esm/widgets/TileStatisticsTracker.d.ts.map +1 -1
  257. package/lib/esm/widgets/TileStatisticsTracker.js +5 -2
  258. package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
  259. package/lib/esm/widgets/ToolSettingsTracker.d.ts +1 -1
  260. package/lib/esm/widgets/ToolSettingsTracker.d.ts.map +1 -1
  261. package/lib/esm/widgets/ToolSettingsTracker.js +2 -2
  262. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  263. package/lib/public/locales/en/FrontendDevTools.json +494 -494
  264. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"MeasureTileLoadTime.js","sourceRoot":"","sources":["../../../src/tools/MeasureTileLoadTime.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,sDAAgD;AAChD,wDAA8G;AAE9G,MAAM,aAAa;IAKjB,YAAmB,EAAY;QAC7B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAS,EAAE,CAAC;QAElC,mCAAmC;QACnC,yBAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAE1D,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE;YACnB,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;QAClB,CAAC,CAAC;QAEF,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC,CAAC;QAC3H,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEO,MAAM;QACZ,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC;QAC5H,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,QAAQ;QACd,uIAAuI;QACvI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB;YACnE,OAAO;QAET,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,mBAAmB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAErK,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED;;;GAGG;AACH,MAAa,uBAAwB,SAAQ,oBAAI;IAG/C;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE;YAClB,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;;AAZH,0DAaC;AAZwB,8BAAM,GAAG,qBAAqB,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\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { StopWatch } from \"@itwin/core-bentley\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport } from \"@itwin/core-frontend\";\r\n\r\nclass TileLoadTimer {\r\n private readonly _vp: Viewport;\r\n private readonly _stopwatch: StopWatch;\r\n private _cleanup?: () => void;\r\n\r\n public constructor(vp: Viewport) {\r\n this._vp = vp;\r\n this._stopwatch = new StopWatch();\r\n\r\n // Purge tile trees for all models.\r\n IModelApp.viewManager.refreshForModifiedModels(undefined);\r\n\r\n const removeOnRender = vp.onRender.addListener(() => this.onRender());\r\n const removeOnClose = vp.iModel.onClose.addOnce(() => this.cancel());\r\n this._cleanup = () => {\r\n removeOnRender();\r\n removeOnClose();\r\n };\r\n\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Tile loading timer started.\"));\r\n this._stopwatch.start();\r\n }\r\n\r\n private cancel(): void {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Tile loading timer canceled.\"));\r\n this.stop();\r\n }\r\n\r\n private stop(): void {\r\n if (undefined !== this._cleanup) {\r\n this._cleanup();\r\n this._cleanup = undefined;\r\n }\r\n }\r\n\r\n private onRender(): void {\r\n // ###TODO: May be intermediate frames during which children props have been asynchronously requested but no outstanding tile requests.\r\n if (!this._vp.areAllTileTreesLoaded || 0 < this._vp.numRequestedTiles)\r\n return;\r\n\r\n this._stopwatch.stop();\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Tiles loaded in ${this._stopwatch.elapsedSeconds.toFixed(4)} seconds.`));\r\n\r\n this.stop();\r\n }\r\n}\r\n\r\n/** Unloads all tile trees, then starts a timer that stops when all tile trees and tiles required for the view are ready.\r\n * Outputs the elapsed time to notifications manager.\r\n * @beta\r\n */\r\nexport class MeasureTileLoadTimeTool extends Tool {\r\n public static override toolId = \"MeasureTileLoadTime\";\r\n\r\n /** This method runs the tool, unloading all tile trees, then starts a timer that stops when all tile trees and tiles required for the view are ready. It will then output the elapsed time to notifications manager.\r\n * @param _args this parameter is unused\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 new TileLoadTimer(vp);\r\n\r\n return true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MeasureTileLoadTime.js","sourceRoot":"","sources":["../../../src/tools/MeasureTileLoadTime.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,sDAAgD;AAChD,wDAA8G;AAE9G,MAAM,aAAa;IACA,GAAG,CAAW;IACd,UAAU,CAAY;IAC/B,QAAQ,CAAc;IAE9B,YAAmB,EAAY;QAC7B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAS,EAAE,CAAC;QAElC,mCAAmC;QACnC,yBAAS,CAAC,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAE1D,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE;YACnB,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;QAClB,CAAC,CAAC;QAEF,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC,CAAC;QAC3H,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEO,MAAM;QACZ,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC;QAC5H,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,QAAQ;QACd,uIAAuI;QACvI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB;YACnE,OAAO;QAET,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,mBAAmB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAErK,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED;;;GAGG;AACH,MAAa,uBAAwB,SAAQ,oBAAI;IACxC,MAAM,CAAU,MAAM,GAAG,qBAAqB,CAAC;IAEtD;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE;YAClB,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;;AAZH,0DAaC","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 { StopWatch } from \"@itwin/core-bentley\";\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport } from \"@itwin/core-frontend\";\n\nclass TileLoadTimer {\n private readonly _vp: Viewport;\n private readonly _stopwatch: StopWatch;\n private _cleanup?: () => void;\n\n public constructor(vp: Viewport) {\n this._vp = vp;\n this._stopwatch = new StopWatch();\n\n // Purge tile trees for all models.\n IModelApp.viewManager.refreshForModifiedModels(undefined);\n\n const removeOnRender = vp.onRender.addListener(() => this.onRender());\n const removeOnClose = vp.iModel.onClose.addOnce(() => this.cancel());\n this._cleanup = () => {\n removeOnRender();\n removeOnClose();\n };\n\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Tile loading timer started.\"));\n this._stopwatch.start();\n }\n\n private cancel(): void {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Tile loading timer canceled.\"));\n this.stop();\n }\n\n private stop(): void {\n if (undefined !== this._cleanup) {\n this._cleanup();\n this._cleanup = undefined;\n }\n }\n\n private onRender(): void {\n // ###TODO: May be intermediate frames during which children props have been asynchronously requested but no outstanding tile requests.\n if (!this._vp.areAllTileTreesLoaded || 0 < this._vp.numRequestedTiles)\n return;\n\n this._stopwatch.stop();\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Tiles loaded in ${this._stopwatch.elapsedSeconds.toFixed(4)} seconds.`));\n\n this.stop();\n }\n}\n\n/** Unloads all tile trees, then starts a timer that stops when all tile trees and tiles required for the view are ready.\n * Outputs the elapsed time to notifications manager.\n * @beta\n */\nexport class MeasureTileLoadTimeTool extends Tool {\n public static override toolId = \"MeasureTileLoadTime\";\n\n /** This method runs the tool, unloading all tile trees, then starts a timer that stops when all tile trees and tiles required for the view are ready. It will then output the elapsed time to notifications manager.\n * @param _args this parameter is unused\n */\n public override async run(_args: any[]): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== vp)\n new TileLoadTimer(vp);\n\n return true;\n }\n}\n"]}
@@ -30,6 +30,7 @@ function modelChangedString(name) {
30
30
  * @beta
31
31
  */
32
32
  class SetModelTransparencyTool extends core_frontend_1.Tool {
33
+ static toolId = "SetModelTransparencyTool";
33
34
  static get minArgs() { return 1; }
34
35
  static get maxArgs() { return 2; }
35
36
  async run(transparency, name) {
@@ -43,11 +44,11 @@ class SetModelTransparencyTool extends core_frontend_1.Tool {
43
44
  }
44
45
  }
45
46
  exports.SetModelTransparencyTool = SetModelTransparencyTool;
46
- SetModelTransparencyTool.toolId = "SetModelTransparencyTool";
47
47
  /** Set model appearance override for line weight in display style.
48
48
  * @beta
49
49
  */
50
50
  class SetModelLineWeightTool extends core_frontend_1.Tool {
51
+ static toolId = "SetModelLineWeightTool";
51
52
  static get minArgs() { return 1; }
52
53
  static get maxArgs() { return 2; }
53
54
  async run(weight, name) {
@@ -61,13 +62,14 @@ class SetModelLineWeightTool extends core_frontend_1.Tool {
61
62
  }
62
63
  }
63
64
  exports.SetModelLineWeightTool = SetModelLineWeightTool;
64
- SetModelLineWeightTool.toolId = "SetModelLineWeightTool";
65
65
  /** Set model appearance override for line code in display style.
66
66
  * @beta
67
67
  */
68
68
  class SetModelLineCodeTool extends core_frontend_1.Tool {
69
+ static toolId = "SetModelLineCodeTool";
69
70
  static get minArgs() { return 1; }
70
71
  static get maxArgs() { return 2; }
72
+ static linePixels = [core_common_1.LinePixels.Code0, core_common_1.LinePixels.Code1, core_common_1.LinePixels.Code2, core_common_1.LinePixels.Code3, core_common_1.LinePixels.Code4, core_common_1.LinePixels.Code5, core_common_1.LinePixels.Code6, core_common_1.LinePixels.Code7];
71
73
  async run(lineCode, name) {
72
74
  if (lineCode < 0 || lineCode >= SetModelLineCodeTool.linePixels.length)
73
75
  return false;
@@ -81,12 +83,11 @@ class SetModelLineCodeTool extends core_frontend_1.Tool {
81
83
  }
82
84
  }
83
85
  exports.SetModelLineCodeTool = SetModelLineCodeTool;
84
- SetModelLineCodeTool.toolId = "SetModelLineCodeTool";
85
- SetModelLineCodeTool.linePixels = [core_common_1.LinePixels.Code0, core_common_1.LinePixels.Code1, core_common_1.LinePixels.Code2, core_common_1.LinePixels.Code3, core_common_1.LinePixels.Code4, core_common_1.LinePixels.Code5, core_common_1.LinePixels.Code6, core_common_1.LinePixels.Code7];
86
86
  /** Set model appearance override for nonLocatable in display style.
87
87
  * @beta
88
88
  */
89
89
  class SetModelLocateTool extends core_frontend_1.Tool {
90
+ static toolId = "SetModelLocateTool";
90
91
  static get minArgs() { return 1; }
91
92
  static get maxArgs() { return 2; }
92
93
  async run(locate, name) {
@@ -102,11 +103,11 @@ class SetModelLocateTool extends core_frontend_1.Tool {
102
103
  }
103
104
  }
104
105
  exports.SetModelLocateTool = SetModelLocateTool;
105
- SetModelLocateTool.toolId = "SetModelLocateTool";
106
106
  /** Set model appearance override for emphasized in display style.
107
107
  * @beta
108
108
  */
109
109
  class SetModelEmphasizedTool extends core_frontend_1.Tool {
110
+ static toolId = "SetModelEmphasizedTool";
110
111
  static get minArgs() { return 1; }
111
112
  static get maxArgs() { return 2; }
112
113
  async run(emphasized, name) {
@@ -121,11 +122,11 @@ class SetModelEmphasizedTool extends core_frontend_1.Tool {
121
122
  }
122
123
  }
123
124
  exports.SetModelEmphasizedTool = SetModelEmphasizedTool;
124
- SetModelEmphasizedTool.toolId = "SetModelEmphasizedTool";
125
125
  /** Set model appearance override for ignoreMaterials in display style.
126
126
  * @beta
127
127
  */
128
128
  class SetModelIgnoresMaterialsTool extends core_frontend_1.Tool {
129
+ static toolId = "SetModelIgnoresMaterialsTool";
129
130
  static get minArgs() { return 1; }
130
131
  static get maxArgs() { return 2; }
131
132
  async run(ignoresMaterial, name) {
@@ -140,11 +141,11 @@ class SetModelIgnoresMaterialsTool extends core_frontend_1.Tool {
140
141
  }
141
142
  }
142
143
  exports.SetModelIgnoresMaterialsTool = SetModelIgnoresMaterialsTool;
143
- SetModelIgnoresMaterialsTool.toolId = "SetModelIgnoresMaterialsTool";
144
144
  /** Set model appearance override for color in display style.
145
145
  * @beta
146
146
  */
147
147
  class SetModelColorTool extends core_frontend_1.Tool {
148
+ static toolId = "SetModelColorTool";
148
149
  static get minArgs() { return 3; }
149
150
  static get maxArgs() { return 4; }
150
151
  async run(rgb, name) {
@@ -158,11 +159,11 @@ class SetModelColorTool extends core_frontend_1.Tool {
158
159
  }
159
160
  }
160
161
  exports.SetModelColorTool = SetModelColorTool;
161
- SetModelColorTool.toolId = "SetModelColorTool";
162
162
  /** clear model appearance overrides in display style.
163
163
  * @beta
164
164
  */
165
165
  class ClearModelAppearanceOverrides extends core_frontend_1.Tool {
166
+ static toolId = "ClearModelAppearanceOverrides";
166
167
  static get minArgs() { return 0; }
167
168
  static get maxArgs() { return 1; }
168
169
  async run(name) {
@@ -180,5 +181,4 @@ class ClearModelAppearanceOverrides extends core_frontend_1.Tool {
180
181
  }
181
182
  }
182
183
  exports.ClearModelAppearanceOverrides = ClearModelAppearanceOverrides;
183
- ClearModelAppearanceOverrides.toolId = "ClearModelAppearanceOverrides";
184
184
  //# sourceMappingURL=ModelAppearanceTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelAppearanceTools.js","sourceRoot":"","sources":["../../../src/tools/ModelAppearanceTools.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 { FeatureAppearance, FeatureAppearanceProps, LinePixels, RgbColorProps } from \"@itwin/core-common\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, SpatialViewState, Tool, Viewport } from \"@itwin/core-frontend\";\r\nimport { parseBoolean } from \"./parseBoolean\";\r\n\r\nfunction changeModelAppearanceOverrides(vp: Viewport | undefined, overrides: FeatureAppearanceProps, name: string): boolean {\r\n let changed = false;\r\n if (vp !== undefined && vp.view instanceof SpatialViewState)\r\n vp.view.forEachModel((model) => {\r\n if (name === undefined || model.name === name) {\r\n changed = true;\r\n const existingOverrides = vp.displayStyle.settings.getModelAppearanceOverride(model.id);\r\n vp.overrideModelAppearance(model.id, existingOverrides ? existingOverrides.clone(overrides) : FeatureAppearance.fromJSON(overrides));\r\n }\r\n });\r\n\r\n return changed;\r\n}\r\n\r\nfunction modelChangedString(name: string) {\r\n return name === undefined ? `All Models` : `Model: ${name}`;\r\n}\r\n\r\n/** Set model appearance override for transparency in display style.\r\n * @beta\r\n */\r\nexport class SetModelTransparencyTool extends Tool {\r\n public static override toolId = \"SetModelTransparencyTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(transparency: number, name: string): Promise<boolean> {\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { transparency }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to transparency: ${transparency}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(parseFloat(args[0]), args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for line weight in display style.\r\n * @beta\r\n */\r\nexport class SetModelLineWeightTool extends Tool {\r\n public static override toolId = \"SetModelLineWeightTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(weight: number, name: string): Promise<boolean> {\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { weight }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to line weight: ${weight}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(parseFloat(args[0]), args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for line code in display style.\r\n * @beta\r\n */\r\nexport class SetModelLineCodeTool extends Tool {\r\n public static override toolId = \"SetModelLineCodeTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n public static linePixels = [LinePixels.Code0, LinePixels.Code1, LinePixels.Code2, LinePixels.Code3, LinePixels.Code4, LinePixels.Code5, LinePixels.Code6, LinePixels.Code7];\r\n\r\n public override async run(lineCode: number, name: string): Promise<boolean> {\r\n if (lineCode < 0 || lineCode >= SetModelLineCodeTool.linePixels.length)\r\n return false;\r\n\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { linePixels: SetModelLineCodeTool.linePixels[lineCode] }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to line code: ${lineCode}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(parseFloat(args[0]), args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for nonLocatable in display style.\r\n * @beta\r\n */\r\nexport class SetModelLocateTool extends Tool {\r\n public static override toolId = \"SetModelLocateTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(locate: boolean, name: string): Promise<boolean> {\r\n const nonLocatable = locate ? undefined : true;\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { nonLocatable }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to locate: ${locate}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const locate = parseBoolean(args[0]);\r\n return locate === undefined ? false : this.run(locate, args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for emphasized in display style.\r\n * @beta\r\n */\r\nexport class SetModelEmphasizedTool extends Tool {\r\n public static override toolId = \"SetModelEmphasizedTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(emphasized: true | undefined, name: string): Promise<boolean> {\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { emphasized }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Mode: ${name} set to emphasized: ${emphasized}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const emphasized = parseBoolean(args[0]);\r\n return emphasized === undefined ? false : this.run(emphasized ? true : undefined, args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for ignoreMaterials in display style.\r\n * @beta\r\n */\r\nexport class SetModelIgnoresMaterialsTool extends Tool {\r\n public static override toolId = \"SetModelIgnoresMaterialsTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(ignoresMaterial: true | undefined, name: string): Promise<boolean> {\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { ignoresMaterial }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Mode: ${name} set to ignore Materials: ${ignoresMaterial}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const ignoresMaterial = parseBoolean(args[0]);\r\n return ignoresMaterial === undefined ? false : this.run(ignoresMaterial ? true : undefined, args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for color in display style.\r\n * @beta\r\n */\r\nexport class SetModelColorTool extends Tool {\r\n public static override toolId = \"SetModelColorTool\";\r\n public static override get minArgs() { return 3; }\r\n public static override get maxArgs() { return 4; }\r\n\r\n public override async run(rgb: RgbColorProps, name: string): Promise<boolean> {\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { rgb }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to RGB color: (${rgb.r}, ${rgb.g}, ${rgb.b})`));\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run({ r: parseFloat(args[0]), g: parseFloat(args[1]), b: parseFloat(args[2]) }, args[3]);\r\n }\r\n}\r\n\r\n/** clear model appearance overrides in display style.\r\n * @beta\r\n */\r\nexport class ClearModelAppearanceOverrides extends Tool {\r\n public static override toolId = \"ClearModelAppearanceOverrides\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override async run(name?: string): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp !== undefined && vp.view instanceof SpatialViewState) {\r\n vp.view.forEachModel((model) => {\r\n if (name === undefined || model.name === name)\r\n vp.dropModelAppearanceOverride(model.id);\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(args[0]);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ModelAppearanceTools.js","sourceRoot":"","sources":["../../../src/tools/ModelAppearanceTools.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 { FeatureAppearance, FeatureAppearanceProps, LinePixels, RgbColorProps } from \"@itwin/core-common\";\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, SpatialViewState, Tool, Viewport } from \"@itwin/core-frontend\";\nimport { parseBoolean } from \"./parseBoolean\";\n\nfunction changeModelAppearanceOverrides(vp: Viewport | undefined, overrides: FeatureAppearanceProps, name: string): boolean {\n let changed = false;\n if (vp !== undefined && vp.view instanceof SpatialViewState)\n vp.view.forEachModel((model) => {\n if (name === undefined || model.name === name) {\n changed = true;\n const existingOverrides = vp.displayStyle.settings.getModelAppearanceOverride(model.id);\n vp.overrideModelAppearance(model.id, existingOverrides ? existingOverrides.clone(overrides) : FeatureAppearance.fromJSON(overrides));\n }\n });\n\n return changed;\n}\n\nfunction modelChangedString(name: string) {\n return name === undefined ? `All Models` : `Model: ${name}`;\n}\n\n/** Set model appearance override for transparency in display style.\n * @beta\n */\nexport class SetModelTransparencyTool extends Tool {\n public static override toolId = \"SetModelTransparencyTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(transparency: number, name: string): Promise<boolean> {\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { transparency }, name);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to transparency: ${transparency}`));\n\n return changed;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(parseFloat(args[0]), args[1]);\n }\n}\n\n/** Set model appearance override for line weight in display style.\n * @beta\n */\nexport class SetModelLineWeightTool extends Tool {\n public static override toolId = \"SetModelLineWeightTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(weight: number, name: string): Promise<boolean> {\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { weight }, name);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to line weight: ${weight}`));\n\n return changed;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(parseFloat(args[0]), args[1]);\n }\n}\n\n/** Set model appearance override for line code in display style.\n * @beta\n */\nexport class SetModelLineCodeTool extends Tool {\n public static override toolId = \"SetModelLineCodeTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n public static linePixels = [LinePixels.Code0, LinePixels.Code1, LinePixels.Code2, LinePixels.Code3, LinePixels.Code4, LinePixels.Code5, LinePixels.Code6, LinePixels.Code7];\n\n public override async run(lineCode: number, name: string): Promise<boolean> {\n if (lineCode < 0 || lineCode >= SetModelLineCodeTool.linePixels.length)\n return false;\n\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { linePixels: SetModelLineCodeTool.linePixels[lineCode] }, name);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to line code: ${lineCode}`));\n\n return changed;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(parseFloat(args[0]), args[1]);\n }\n}\n\n/** Set model appearance override for nonLocatable in display style.\n * @beta\n */\nexport class SetModelLocateTool extends Tool {\n public static override toolId = \"SetModelLocateTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(locate: boolean, name: string): Promise<boolean> {\n const nonLocatable = locate ? undefined : true;\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { nonLocatable }, name);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to locate: ${locate}`));\n\n return changed;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const locate = parseBoolean(args[0]);\n return locate === undefined ? false : this.run(locate, args[1]);\n }\n}\n\n/** Set model appearance override for emphasized in display style.\n * @beta\n */\nexport class SetModelEmphasizedTool extends Tool {\n public static override toolId = \"SetModelEmphasizedTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(emphasized: true | undefined, name: string): Promise<boolean> {\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { emphasized }, name);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Mode: ${name} set to emphasized: ${emphasized}`));\n\n return changed;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const emphasized = parseBoolean(args[0]);\n return emphasized === undefined ? false : this.run(emphasized ? true : undefined, args[1]);\n }\n}\n\n/** Set model appearance override for ignoreMaterials in display style.\n * @beta\n */\nexport class SetModelIgnoresMaterialsTool extends Tool {\n public static override toolId = \"SetModelIgnoresMaterialsTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(ignoresMaterial: true | undefined, name: string): Promise<boolean> {\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { ignoresMaterial }, name);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Mode: ${name} set to ignore Materials: ${ignoresMaterial}`));\n\n return changed;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const ignoresMaterial = parseBoolean(args[0]);\n return ignoresMaterial === undefined ? false : this.run(ignoresMaterial ? true : undefined, args[1]);\n }\n}\n\n/** Set model appearance override for color in display style.\n * @beta\n */\nexport class SetModelColorTool extends Tool {\n public static override toolId = \"SetModelColorTool\";\n public static override get minArgs() { return 3; }\n public static override get maxArgs() { return 4; }\n\n public override async run(rgb: RgbColorProps, name: string): Promise<boolean> {\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { rgb }, name);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to RGB color: (${rgb.r}, ${rgb.g}, ${rgb.b})`));\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run({ r: parseFloat(args[0]), g: parseFloat(args[1]), b: parseFloat(args[2]) }, args[3]);\n }\n}\n\n/** clear model appearance overrides in display style.\n * @beta\n */\nexport class ClearModelAppearanceOverrides extends Tool {\n public static override toolId = \"ClearModelAppearanceOverrides\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n public override async run(name?: string): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp !== undefined && vp.view instanceof SpatialViewState) {\n vp.view.forEachModel((model) => {\n if (name === undefined || model.name === name)\n vp.dropModelAppearanceOverride(model.id);\n });\n }\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args[0]);\n }\n}\n"]}
@@ -17,12 +17,10 @@ const parseArgs_1 = require("./parseArgs");
17
17
  * @beta
18
18
  */
19
19
  class DumpPlanProjectionSettingsTool extends DisplayStyleTools_1.DisplayStyleTool {
20
- constructor() {
21
- super(...arguments);
22
- this._copyToClipboard = false;
23
- }
20
+ static toolId = "DumpLayerSettings";
24
21
  static get minArgs() { return 0; }
25
22
  static get maxArgs() { return 1; }
23
+ _copyToClipboard = false;
26
24
  get require3d() { return true; }
27
25
  async parse(args) {
28
26
  if (1 === args.length)
@@ -47,17 +45,15 @@ class DumpPlanProjectionSettingsTool extends DisplayStyleTools_1.DisplayStyleToo
47
45
  }
48
46
  }
49
47
  exports.DumpPlanProjectionSettingsTool = DumpPlanProjectionSettingsTool;
50
- DumpPlanProjectionSettingsTool.toolId = "DumpLayerSettings";
51
48
  /** Changes subcategory display priority.
52
49
  * @beta
53
50
  */
54
51
  class OverrideSubCategoryPriorityTool extends DisplayStyleTools_1.DisplayStyleTool {
55
- constructor() {
56
- super(...arguments);
57
- this._subcatIds = new Set();
58
- }
52
+ static toolId = "OverrideSubCategoryPriority";
59
53
  static get minArgs() { return 1; }
60
54
  static get maxArgs() { return 2; }
55
+ _subcatIds = new Set();
56
+ _priority;
61
57
  async execute(vp) {
62
58
  const style = vp.displayStyle;
63
59
  for (const id of this._subcatIds) {
@@ -84,17 +80,15 @@ class OverrideSubCategoryPriorityTool extends DisplayStyleTools_1.DisplayStyleTo
84
80
  }
85
81
  }
86
82
  exports.OverrideSubCategoryPriorityTool = OverrideSubCategoryPriorityTool;
87
- OverrideSubCategoryPriorityTool.toolId = "OverrideSubCategoryPriority";
88
83
  /** Changes plan projection settings for one or more models.
89
84
  * @beta
90
85
  */
91
86
  class ChangePlanProjectionSettingsTool extends DisplayStyleTools_1.DisplayStyleTool {
92
- constructor() {
93
- super(...arguments);
94
- this._modelIds = new Set();
95
- }
87
+ static toolId = "ChangeLayerSettings";
96
88
  static get minArgs() { return 1; }
97
89
  static get maxArgs() { return 5; }
90
+ _modelIds = new Set();
91
+ _settings;
98
92
  get require3d() { return true; }
99
93
  async execute(vp) {
100
94
  const settings = vp.displayStyle.settings;
@@ -146,5 +140,4 @@ class ChangePlanProjectionSettingsTool extends DisplayStyleTools_1.DisplayStyleT
146
140
  }
147
141
  }
148
142
  exports.ChangePlanProjectionSettingsTool = ChangePlanProjectionSettingsTool;
149
- ChangePlanProjectionSettingsTool.toolId = "ChangeLayerSettings";
150
143
  //# sourceMappingURL=PlanProjectionTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanProjectionTools.js","sourceRoot":"","sources":["../../../src/tools/PlanProjectionTools.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 { PlanProjectionSettings, PlanProjectionSettingsProps, SubCategoryOverride } from \"@itwin/core-common\";\r\nimport { DisplayStyle3dState, IModelApp, ModelState, NotifyMessageDetails, OutputMessagePriority, Viewport } from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\r\nimport { parseArgs } from \"./parseArgs\";\r\n\r\n/** Dumps a JSON representation of the plan projection settings for the current viewport.\r\n * @beta\r\n */\r\nexport class DumpPlanProjectionSettingsTool extends DisplayStyleTool {\r\n public static override toolId = \"DumpLayerSettings\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n private _copyToClipboard = false;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected async parse(args: string[]) {\r\n if (1 === args.length)\r\n this._copyToClipboard = \"c\" === args[0].toLowerCase();\r\n\r\n return true;\r\n }\r\n\r\n protected async execute(vp: Viewport) {\r\n const settings = (vp.displayStyle as DisplayStyle3dState).settings.planProjectionSettings;\r\n if (undefined === settings) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"No plan projection settings defined\"));\r\n return false;\r\n }\r\n\r\n const props = [];\r\n for (const [modelId, value] of settings)\r\n props.push({ modelId, settings: value.toJSON() });\r\n\r\n const json = JSON.stringify(props);\r\n if (this._copyToClipboard)\r\n copyStringToClipboard(json);\r\n\r\n const messageDetails = new NotifyMessageDetails(OutputMessagePriority.Info, \"Dumped plan projection settings\", json);\r\n IModelApp.notifications.outputMessage(messageDetails);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Changes subcategory display priority.\r\n * @beta\r\n */\r\nexport abstract class OverrideSubCategoryPriorityTool extends DisplayStyleTool {\r\n public static override toolId = \"OverrideSubCategoryPriority\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n private readonly _subcatIds = new Set<string>();\r\n private _priority?: number;\r\n\r\n protected async execute(vp: Viewport) {\r\n const style = vp.displayStyle;\r\n for (const id of this._subcatIds) {\r\n const ovr = style.getSubCategoryOverride(id);\r\n if (undefined === ovr) {\r\n if (undefined !== this._priority)\r\n style.overrideSubCategory(id, SubCategoryOverride.fromJSON({ priority: this._priority }));\r\n } else {\r\n const props = ovr.toJSON();\r\n props.priority = this._priority;\r\n style.overrideSubCategory(id, SubCategoryOverride.fromJSON(props));\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected async parse(args: string[]) {\r\n for (const id of args[0].split(\",\"))\r\n this._subcatIds.add(id);\r\n\r\n const priority = parseInt(args[1], 10);\r\n if (!Number.isNaN(priority))\r\n this._priority = priority;\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Changes plan projection settings for one or more models.\r\n * @beta\r\n */\r\nexport abstract class ChangePlanProjectionSettingsTool extends DisplayStyleTool {\r\n public static override toolId = \"ChangeLayerSettings\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 5; }\r\n\r\n private readonly _modelIds = new Set<string>();\r\n private _settings?: PlanProjectionSettings;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected async execute(vp: Viewport) {\r\n const settings = (vp.displayStyle as DisplayStyle3dState).settings;\r\n for (const modelId of this._modelIds)\r\n settings.setPlanProjectionSettings(modelId, this._settings);\r\n\r\n return true;\r\n }\r\n\r\n protected async parse(inputArgs: string[]) {\r\n if (!this.parseModels(inputArgs[0]))\r\n return false;\r\n\r\n const args = parseArgs(inputArgs.slice(1));\r\n const props: PlanProjectionSettingsProps = {};\r\n\r\n props.transparency = args.getFloat(\"t\");\r\n props.overlay = args.getBoolean(\"o\");\r\n props.enforceDisplayPriority = args.getBoolean(\"p\");\r\n props.elevation = args.getFloat(\"e\");\r\n\r\n this._settings = PlanProjectionSettings.fromJSON(props);\r\n return true;\r\n }\r\n\r\n private parseModels(models: string) {\r\n const vp = IModelApp.viewManager.selectedView!; // already validated by super.parseAndRun\r\n models = models.toLowerCase();\r\n\r\n const isPlanProjection = (modelId: string) => {\r\n const model = vp.iModel.models.getLoaded(modelId);\r\n return undefined !== model && isPlanProjectionModel(model);\r\n };\r\n const isPlanProjectionModel = (model: ModelState) => {\r\n const model3d = model.asGeometricModel3d;\r\n return undefined !== model3d && model3d.isPlanProjection;\r\n };\r\n\r\n switch (models[0]) {\r\n case \"a\": // all models in selector\r\n vp.view.forEachModel((model) => {\r\n if (isPlanProjectionModel(model))\r\n this._modelIds.add(model.id);\r\n });\r\n break;\r\n case \"0\": // comma-separated list of Ids\r\n for (const modelId of models.split(\",\"))\r\n if (isPlanProjection(modelId))\r\n this._modelIds.add(modelId);\r\n\r\n break;\r\n }\r\n\r\n if (this._modelIds.size === 0) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"No plan projection models\"));\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PlanProjectionTools.js","sourceRoot":"","sources":["../../../src/tools/PlanProjectionTools.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 { PlanProjectionSettings, PlanProjectionSettingsProps, SubCategoryOverride } from \"@itwin/core-common\";\nimport { DisplayStyle3dState, IModelApp, ModelState, NotifyMessageDetails, OutputMessagePriority, Viewport } from \"@itwin/core-frontend\";\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\nimport { parseArgs } from \"./parseArgs\";\n\n/** Dumps a JSON representation of the plan projection settings for the current viewport.\n * @beta\n */\nexport class DumpPlanProjectionSettingsTool extends DisplayStyleTool {\n public static override toolId = \"DumpLayerSettings\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _copyToClipboard = false;\n\n protected override get require3d() { return true; }\n\n protected async parse(args: string[]) {\n if (1 === args.length)\n this._copyToClipboard = \"c\" === args[0].toLowerCase();\n\n return true;\n }\n\n protected async execute(vp: Viewport) {\n const settings = (vp.displayStyle as DisplayStyle3dState).settings.planProjectionSettings;\n if (undefined === settings) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"No plan projection settings defined\"));\n return false;\n }\n\n const props = [];\n for (const [modelId, value] of settings)\n props.push({ modelId, settings: value.toJSON() });\n\n const json = JSON.stringify(props);\n if (this._copyToClipboard)\n copyStringToClipboard(json);\n\n const messageDetails = new NotifyMessageDetails(OutputMessagePriority.Info, \"Dumped plan projection settings\", json);\n IModelApp.notifications.outputMessage(messageDetails);\n\n return false;\n }\n}\n\n/** Changes subcategory display priority.\n * @beta\n */\nexport abstract class OverrideSubCategoryPriorityTool extends DisplayStyleTool {\n public static override toolId = \"OverrideSubCategoryPriority\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n private readonly _subcatIds = new Set<string>();\n private _priority?: number;\n\n protected async execute(vp: Viewport) {\n const style = vp.displayStyle;\n for (const id of this._subcatIds) {\n const ovr = style.getSubCategoryOverride(id);\n if (undefined === ovr) {\n if (undefined !== this._priority)\n style.overrideSubCategory(id, SubCategoryOverride.fromJSON({ priority: this._priority }));\n } else {\n const props = ovr.toJSON();\n props.priority = this._priority;\n style.overrideSubCategory(id, SubCategoryOverride.fromJSON(props));\n }\n }\n\n return true;\n }\n\n protected async parse(args: string[]) {\n for (const id of args[0].split(\",\"))\n this._subcatIds.add(id);\n\n const priority = parseInt(args[1], 10);\n if (!Number.isNaN(priority))\n this._priority = priority;\n\n return true;\n }\n}\n\n/** Changes plan projection settings for one or more models.\n * @beta\n */\nexport abstract class ChangePlanProjectionSettingsTool extends DisplayStyleTool {\n public static override toolId = \"ChangeLayerSettings\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 5; }\n\n private readonly _modelIds = new Set<string>();\n private _settings?: PlanProjectionSettings;\n\n protected override get require3d() { return true; }\n\n protected async execute(vp: Viewport) {\n const settings = (vp.displayStyle as DisplayStyle3dState).settings;\n for (const modelId of this._modelIds)\n settings.setPlanProjectionSettings(modelId, this._settings);\n\n return true;\n }\n\n protected async parse(inputArgs: string[]) {\n if (!this.parseModels(inputArgs[0]))\n return false;\n\n const args = parseArgs(inputArgs.slice(1));\n const props: PlanProjectionSettingsProps = {};\n\n props.transparency = args.getFloat(\"t\");\n props.overlay = args.getBoolean(\"o\");\n props.enforceDisplayPriority = args.getBoolean(\"p\");\n props.elevation = args.getFloat(\"e\");\n\n this._settings = PlanProjectionSettings.fromJSON(props);\n return true;\n }\n\n private parseModels(models: string) {\n const vp = IModelApp.viewManager.selectedView!; // already validated by super.parseAndRun\n models = models.toLowerCase();\n\n const isPlanProjection = (modelId: string) => {\n const model = vp.iModel.models.getLoaded(modelId);\n return undefined !== model && isPlanProjectionModel(model);\n };\n const isPlanProjectionModel = (model: ModelState) => {\n const model3d = model.asGeometricModel3d;\n return undefined !== model3d && model3d.isPlanProjection;\n };\n\n switch (models[0]) {\n case \"a\": // all models in selector\n vp.view.forEachModel((model) => {\n if (isPlanProjectionModel(model))\n this._modelIds.add(model.id);\n });\n break;\n case \"0\": // comma-separated list of Ids\n for (const modelId of models.split(\",\"))\n if (isPlanProjection(modelId))\n this._modelIds.add(modelId);\n\n break;\n }\n\n if (this._modelIds.size === 0) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"No plan projection models\"));\n return false;\n }\n\n return true;\n }\n}\n"]}
@@ -12,6 +12,7 @@ const parseBoolean_1 = require("./parseBoolean");
12
12
  * @beta
13
13
  */
14
14
  class SetMapHigherPriorityMasking extends core_frontend_1.Tool {
15
+ static toolId = "SetMapHigherPriorityMask";
15
16
  static get minArgs() { return 0; }
16
17
  static get maxArgs() { return 2; }
17
18
  async run(transparency, invert) {
@@ -31,11 +32,11 @@ class SetMapHigherPriorityMasking extends core_frontend_1.Tool {
31
32
  }
32
33
  }
33
34
  exports.SetMapHigherPriorityMasking = SetMapHigherPriorityMasking;
34
- SetMapHigherPriorityMasking.toolId = "SetMapHigherPriorityMask";
35
35
  /** Unmask Mask.
36
36
  * @beta
37
37
  */
38
38
  class UnmaskMapTool extends core_frontend_1.Tool {
39
+ static toolId = "UnmaskMap";
39
40
  static get minArgs() { return 0; }
40
41
  static get maxArgs() { return 0; }
41
42
  async run() {
@@ -48,20 +49,17 @@ class UnmaskMapTool extends core_frontend_1.Tool {
48
49
  }
49
50
  }
50
51
  exports.UnmaskMapTool = UnmaskMapTool;
51
- UnmaskMapTool.toolId = "UnmaskMap";
52
52
  /** Base class for the reality model planar masking tools.
53
53
  * @beta
54
54
  */
55
55
  class PlanarMaskBaseTool extends core_frontend_1.PrimitiveTool {
56
- constructor() {
57
- super(...arguments);
58
- this._acceptedModelIds = new Set();
59
- this._acceptedSubCategoryIds = new Set();
60
- this._acceptedElementIds = new Set();
61
- this._transparency = 0;
62
- this._useSelection = false;
63
- this._invert = false;
64
- }
56
+ _acceptedModelIds = new Set();
57
+ _acceptedSubCategoryIds = new Set();
58
+ _acceptedElementIds = new Set();
59
+ _transparency = 0;
60
+ _useSelection = false;
61
+ _invert = false;
62
+ _targetMaskModel;
65
63
  requireWriteableTarget() { return false; }
66
64
  async onPostInstall() {
67
65
  await super.onPostInstall();
@@ -101,7 +99,7 @@ class PlanarMaskBaseTool extends core_frontend_1.PrimitiveTool {
101
99
  }
102
100
  async onCleanup() {
103
101
  if (0 !== this._acceptedElementIds.size)
104
- this.iModel.hilited.setHilite(this._acceptedElementIds, false);
102
+ this.iModel.hilited.remove({ elements: this._acceptedElementIds });
105
103
  this.clearIds();
106
104
  }
107
105
  async filterHit(hit, _out) {
@@ -187,6 +185,7 @@ exports.PlanarMaskBaseTool = PlanarMaskBaseTool;
187
185
  * @beta
188
186
  */
189
187
  class MaskBackgroundMapByElementTool extends PlanarMaskBaseTool {
188
+ static toolId = "MaskBackgroundMapByElement";
190
189
  static get minArgs() { return 0; }
191
190
  static get maxArgs() { return 2; }
192
191
  targetModelRequired() { return false; }
@@ -199,11 +198,11 @@ class MaskBackgroundMapByElementTool extends PlanarMaskBaseTool {
199
198
  }
200
199
  }
201
200
  exports.MaskBackgroundMapByElementTool = MaskBackgroundMapByElementTool;
202
- MaskBackgroundMapByElementTool.toolId = "MaskBackgroundMapByElement";
203
201
  /** Tool to mask background map by excluded elements
204
202
  * @beta
205
203
  */
206
204
  class MaskBackgroundMapByExcludedElementTool extends PlanarMaskBaseTool {
205
+ static toolId = "MaskBackgroundMapByExcludedElement";
207
206
  static get minArgs() { return 0; }
208
207
  static get maxArgs() { return 2; }
209
208
  targetModelRequired() { return false; }
@@ -216,11 +215,11 @@ class MaskBackgroundMapByExcludedElementTool extends PlanarMaskBaseTool {
216
215
  }
217
216
  }
218
217
  exports.MaskBackgroundMapByExcludedElementTool = MaskBackgroundMapByExcludedElementTool;
219
- MaskBackgroundMapByExcludedElementTool.toolId = "MaskBackgroundMapByExcludedElement";
220
218
  /** Tool to mask background map by SubCategories
221
219
  * @beta
222
220
  */
223
221
  class MaskBackgroundMapBySubCategoryTool extends PlanarMaskBaseTool {
222
+ static toolId = "MaskBackgroundMapBySubCategory";
224
223
  static get minArgs() { return 0; }
225
224
  static get maxArgs() { return 2; }
226
225
  targetModelRequired() { return false; }
@@ -234,11 +233,11 @@ class MaskBackgroundMapBySubCategoryTool extends PlanarMaskBaseTool {
234
233
  }
235
234
  }
236
235
  exports.MaskBackgroundMapBySubCategoryTool = MaskBackgroundMapBySubCategoryTool;
237
- MaskBackgroundMapBySubCategoryTool.toolId = "MaskBackgroundMapBySubCategory";
238
236
  /** Tool to mask background map by geometric models
239
237
  * @beta
240
238
  */
241
239
  class MaskBackgroundMapByModelTool extends PlanarMaskBaseTool {
240
+ static toolId = "MaskBackgroundMapByModel";
242
241
  static get minArgs() { return 0; }
243
242
  static get maxArgs() { return 2; }
244
243
  targetModelRequired() { return false; }
@@ -251,11 +250,11 @@ class MaskBackgroundMapByModelTool extends PlanarMaskBaseTool {
251
250
  }
252
251
  }
253
252
  exports.MaskBackgroundMapByModelTool = MaskBackgroundMapByModelTool;
254
- MaskBackgroundMapByModelTool.toolId = "MaskBackgroundMapByModel";
255
253
  /** Tool to mask reality model by elements
256
254
  * @beta
257
255
  */
258
256
  class MaskRealityModelByElementTool extends PlanarMaskBaseTool {
257
+ static toolId = "MaskRealityModelByElement";
259
258
  static get minArgs() { return 0; }
260
259
  static get maxArgs() { return 2; }
261
260
  targetModelRequired() { return true; }
@@ -269,11 +268,11 @@ class MaskRealityModelByElementTool extends PlanarMaskBaseTool {
269
268
  }
270
269
  }
271
270
  exports.MaskRealityModelByElementTool = MaskRealityModelByElementTool;
272
- MaskRealityModelByElementTool.toolId = "MaskRealityModelByElement";
273
271
  /** Tool to mask reality model by excluded elements
274
272
  * @beta
275
273
  */
276
274
  class MaskRealityModelByExcludedElementTool extends PlanarMaskBaseTool {
275
+ static toolId = "MaskRealityModelByExcludedElement";
277
276
  static get minArgs() { return 0; }
278
277
  static get maxArgs() { return 2; }
279
278
  targetModelRequired() { return true; }
@@ -287,11 +286,11 @@ class MaskRealityModelByExcludedElementTool extends PlanarMaskBaseTool {
287
286
  }
288
287
  }
289
288
  exports.MaskRealityModelByExcludedElementTool = MaskRealityModelByExcludedElementTool;
290
- MaskRealityModelByExcludedElementTool.toolId = "MaskRealityModelByExcludedElement";
291
289
  /** Tool to mask reality model by geometric models
292
290
  * @beta
293
291
  */
294
292
  class MaskRealityModelByModelTool extends PlanarMaskBaseTool {
293
+ static toolId = "MaskRealityModelByModel";
295
294
  static get minArgs() { return 0; }
296
295
  static get maxArgs() { return 2; }
297
296
  targetModelRequired() { return true; }
@@ -305,11 +304,11 @@ class MaskRealityModelByModelTool extends PlanarMaskBaseTool {
305
304
  }
306
305
  }
307
306
  exports.MaskRealityModelByModelTool = MaskRealityModelByModelTool;
308
- MaskRealityModelByModelTool.toolId = "MaskRealityModelByModel";
309
307
  /** Tool to mask reality model by SubCategories
310
308
  * @beta
311
309
  */
312
310
  class MaskRealityModelBySubCategoryTool extends PlanarMaskBaseTool {
311
+ static toolId = "MaskRealityModelBySubCategory";
313
312
  static get minArgs() { return 0; }
314
313
  static get maxArgs() { return 2; }
315
314
  targetModelRequired() { return true; }
@@ -324,19 +323,16 @@ class MaskRealityModelBySubCategoryTool extends PlanarMaskBaseTool {
324
323
  }
325
324
  }
326
325
  exports.MaskRealityModelBySubCategoryTool = MaskRealityModelBySubCategoryTool;
327
- MaskRealityModelBySubCategoryTool.toolId = "MaskRealityModelBySubCategory";
328
326
  /** Tool to mask reality model by higher priority models.
329
327
  * @beta
330
328
  */
331
329
  class SetHigherPriorityRealityModelMasking extends PlanarMaskBaseTool {
332
- constructor() {
333
- super(...arguments);
334
- this._priority = 0;
335
- }
330
+ static toolId = "SetHigherPriorityRealityModelMasking";
336
331
  static get minArgs() { return 0; }
337
332
  static get maxArgs() { return 3; }
338
333
  targetModelRequired() { return true; }
339
334
  elementRequired() { return false; }
335
+ _priority = 0;
340
336
  showPrompt() {
341
337
  core_frontend_1.IModelApp.notifications.outputPromptByKey("FrontendDevTools:tools.SetHigherPriorityRealityModelMasking.Prompts.IdentifyRealityModel");
342
338
  }
@@ -360,11 +356,11 @@ class SetHigherPriorityRealityModelMasking extends PlanarMaskBaseTool {
360
356
  }
361
357
  }
362
358
  exports.SetHigherPriorityRealityModelMasking = SetHigherPriorityRealityModelMasking;
363
- SetHigherPriorityRealityModelMasking.toolId = "SetHigherPriorityRealityModelMasking";
364
359
  /** Remove masks from reality model.
365
360
  * @beta
366
361
  */
367
362
  class UnmaskRealityModelTool extends PlanarMaskBaseTool {
363
+ static toolId = "UnmaskRealityModel";
368
364
  targetModelRequired() { return true; }
369
365
  showPrompt() {
370
366
  core_frontend_1.IModelApp.notifications.outputPromptByKey("FrontendDevTools:tools.UnmaskRealityModel.Prompts.IdentifyRealityModel");
@@ -388,5 +384,4 @@ class UnmaskRealityModelTool extends PlanarMaskBaseTool {
388
384
  }
389
385
  }
390
386
  exports.UnmaskRealityModelTool = UnmaskRealityModelTool;
391
- UnmaskRealityModelTool.toolId = "UnmaskRealityModel";
392
387
  //# sourceMappingURL=PlanarMaskTools.js.map