@itwin/frontend-devtools 5.0.0-dev.8 → 5.0.0-dev.82

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 (226) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/lib/cjs/FrontEndDevTools.js +1 -1
  3. package/lib/cjs/FrontEndDevTools.js.map +1 -1
  4. package/lib/cjs/effects/Convolution.js +6 -6
  5. package/lib/cjs/effects/Convolution.js.map +1 -1
  6. package/lib/cjs/effects/EffectTools.js +2 -2
  7. package/lib/cjs/effects/EffectTools.js.map +1 -1
  8. package/lib/cjs/effects/Explosion.js +37 -25
  9. package/lib/cjs/effects/Explosion.js.map +1 -1
  10. package/lib/cjs/effects/FlipImage.js +2 -2
  11. package/lib/cjs/effects/FlipImage.js.map +1 -1
  12. package/lib/cjs/effects/LensDistortion.js +4 -4
  13. package/lib/cjs/effects/LensDistortion.js.map +1 -1
  14. package/lib/cjs/effects/Saturation.js +4 -4
  15. package/lib/cjs/effects/Saturation.js.map +1 -1
  16. package/lib/cjs/effects/Snow.d.ts +1 -1
  17. package/lib/cjs/effects/Snow.d.ts.map +1 -1
  18. package/lib/cjs/effects/Snow.js +19 -8
  19. package/lib/cjs/effects/Snow.js.map +1 -1
  20. package/lib/cjs/effects/Vignette.js +12 -12
  21. package/lib/cjs/effects/Vignette.js.map +1 -1
  22. package/lib/cjs/tools/AnimationIntervalTool.js +1 -1
  23. package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
  24. package/lib/cjs/tools/ChangeUnitsTool.js +1 -1
  25. package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
  26. package/lib/cjs/tools/ClipTools.js +6 -8
  27. package/lib/cjs/tools/ClipTools.js.map +1 -1
  28. package/lib/cjs/tools/DisplayStyleTools.js +21 -25
  29. package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
  30. package/lib/cjs/tools/EmphasizeElementsTool.js +7 -13
  31. package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
  32. package/lib/cjs/tools/FrustumDecoration.js +28 -9
  33. package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
  34. package/lib/cjs/tools/InspectElementTool.js +7 -6
  35. package/lib/cjs/tools/InspectElementTool.js.map +1 -1
  36. package/lib/cjs/tools/MapLayerTool.js +24 -20
  37. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  38. package/lib/cjs/tools/MeasureTileLoadTime.js +4 -1
  39. package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
  40. package/lib/cjs/tools/ModelAppearanceTools.js +9 -9
  41. package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
  42. package/lib/cjs/tools/PlanProjectionTools.js +8 -15
  43. package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
  44. package/lib/cjs/tools/PlanarMaskTools.js +21 -26
  45. package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
  46. package/lib/cjs/tools/ProjectExtents.js +6 -3
  47. package/lib/cjs/tools/ProjectExtents.js.map +1 -1
  48. package/lib/cjs/tools/RealityModelTools.js +10 -10
  49. package/lib/cjs/tools/RealityModelTools.js.map +1 -1
  50. package/lib/cjs/tools/RealityTransitionTool.js +1 -1
  51. package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
  52. package/lib/cjs/tools/RenderSystemTools.js +4 -3
  53. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  54. package/lib/cjs/tools/RenderTargetTools.d.ts +1 -1
  55. package/lib/cjs/tools/RenderTargetTools.d.ts.map +1 -1
  56. package/lib/cjs/tools/RenderTargetTools.js +15 -20
  57. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  58. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +1 -1
  59. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  60. package/lib/cjs/tools/SavedViews.js +4 -7
  61. package/lib/cjs/tools/SavedViews.js.map +1 -1
  62. package/lib/cjs/tools/ScheduleScriptTools.d.ts.map +1 -1
  63. package/lib/cjs/tools/ScheduleScriptTools.js +11 -12
  64. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  65. package/lib/cjs/tools/SelectionTools.js +4 -6
  66. package/lib/cjs/tools/SelectionTools.js.map +1 -1
  67. package/lib/cjs/tools/SetGpuMemoryLimitTool.js +1 -1
  68. package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
  69. package/lib/cjs/tools/SourceAspectIdTools.js +2 -2
  70. package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
  71. package/lib/cjs/tools/TileRequestDecoration.js +6 -3
  72. package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
  73. package/lib/cjs/tools/TileTreeBoundsDecoration.d.ts.map +1 -1
  74. package/lib/cjs/tools/TileTreeBoundsDecoration.js +8 -4
  75. package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
  76. package/lib/cjs/tools/ToolTipProvider.js +2 -1
  77. package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
  78. package/lib/cjs/tools/ViewportTools.js +22 -19
  79. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  80. package/lib/cjs/widgets/DiagnosticsPanel.d.ts +1 -1
  81. package/lib/cjs/widgets/DiagnosticsPanel.d.ts.map +1 -1
  82. package/lib/cjs/widgets/DiagnosticsPanel.js +11 -1
  83. package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
  84. package/lib/cjs/widgets/FpsTracker.d.ts +1 -1
  85. package/lib/cjs/widgets/FpsTracker.d.ts.map +1 -1
  86. package/lib/cjs/widgets/FpsTracker.js +5 -1
  87. package/lib/cjs/widgets/FpsTracker.js.map +1 -1
  88. package/lib/cjs/widgets/GpuProfiler.d.ts +1 -1
  89. package/lib/cjs/widgets/GpuProfiler.d.ts.map +1 -1
  90. package/lib/cjs/widgets/GpuProfiler.js +89 -82
  91. package/lib/cjs/widgets/GpuProfiler.js.map +1 -1
  92. package/lib/cjs/widgets/KeyinField.js +8 -1
  93. package/lib/cjs/widgets/KeyinField.js.map +1 -1
  94. package/lib/cjs/widgets/MemoryTracker.d.ts +1 -1
  95. package/lib/cjs/widgets/MemoryTracker.d.ts.map +1 -1
  96. package/lib/cjs/widgets/MemoryTracker.js +16 -4
  97. package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
  98. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +1 -1
  99. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts.map +1 -1
  100. package/lib/cjs/widgets/RenderCommandBreakdown.js +6 -2
  101. package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
  102. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts +1 -1
  103. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts.map +1 -1
  104. package/lib/cjs/widgets/TileMemoryBreakdown.js +10 -8
  105. package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
  106. package/lib/cjs/widgets/TileStatisticsTracker.d.ts +1 -1
  107. package/lib/cjs/widgets/TileStatisticsTracker.d.ts.map +1 -1
  108. package/lib/cjs/widgets/TileStatisticsTracker.js +5 -2
  109. package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
  110. package/lib/cjs/widgets/ToolSettingsTracker.d.ts +1 -1
  111. package/lib/cjs/widgets/ToolSettingsTracker.d.ts.map +1 -1
  112. package/lib/cjs/widgets/ToolSettingsTracker.js +2 -2
  113. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  114. package/lib/esm/FrontEndDevTools.js +1 -1
  115. package/lib/esm/FrontEndDevTools.js.map +1 -1
  116. package/lib/esm/effects/Convolution.js +6 -6
  117. package/lib/esm/effects/Convolution.js.map +1 -1
  118. package/lib/esm/effects/EffectTools.js +2 -2
  119. package/lib/esm/effects/EffectTools.js.map +1 -1
  120. package/lib/esm/effects/Explosion.js +37 -25
  121. package/lib/esm/effects/Explosion.js.map +1 -1
  122. package/lib/esm/effects/FlipImage.js +2 -2
  123. package/lib/esm/effects/FlipImage.js.map +1 -1
  124. package/lib/esm/effects/LensDistortion.js +4 -4
  125. package/lib/esm/effects/LensDistortion.js.map +1 -1
  126. package/lib/esm/effects/Saturation.js +4 -4
  127. package/lib/esm/effects/Saturation.js.map +1 -1
  128. package/lib/esm/effects/Snow.d.ts +1 -1
  129. package/lib/esm/effects/Snow.d.ts.map +1 -1
  130. package/lib/esm/effects/Snow.js +19 -8
  131. package/lib/esm/effects/Snow.js.map +1 -1
  132. package/lib/esm/effects/Vignette.js +12 -12
  133. package/lib/esm/effects/Vignette.js.map +1 -1
  134. package/lib/esm/tools/AnimationIntervalTool.js +1 -1
  135. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  136. package/lib/esm/tools/ChangeUnitsTool.js +1 -1
  137. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  138. package/lib/esm/tools/ClipTools.js +6 -8
  139. package/lib/esm/tools/ClipTools.js.map +1 -1
  140. package/lib/esm/tools/DisplayStyleTools.js +21 -25
  141. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  142. package/lib/esm/tools/EmphasizeElementsTool.js +7 -13
  143. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  144. package/lib/esm/tools/FrustumDecoration.js +28 -9
  145. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  146. package/lib/esm/tools/InspectElementTool.js +7 -6
  147. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  148. package/lib/esm/tools/MapLayerTool.js +24 -20
  149. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  150. package/lib/esm/tools/MeasureTileLoadTime.js +4 -1
  151. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  152. package/lib/esm/tools/ModelAppearanceTools.js +9 -9
  153. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  154. package/lib/esm/tools/PlanProjectionTools.js +8 -15
  155. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  156. package/lib/esm/tools/PlanarMaskTools.js +21 -26
  157. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  158. package/lib/esm/tools/ProjectExtents.js +6 -3
  159. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  160. package/lib/esm/tools/RealityModelTools.js +10 -10
  161. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  162. package/lib/esm/tools/RealityTransitionTool.js +1 -1
  163. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  164. package/lib/esm/tools/RenderSystemTools.js +4 -3
  165. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  166. package/lib/esm/tools/RenderTargetTools.d.ts +1 -1
  167. package/lib/esm/tools/RenderTargetTools.d.ts.map +1 -1
  168. package/lib/esm/tools/RenderTargetTools.js +15 -20
  169. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  170. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +1 -1
  171. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  172. package/lib/esm/tools/SavedViews.js +4 -7
  173. package/lib/esm/tools/SavedViews.js.map +1 -1
  174. package/lib/esm/tools/ScheduleScriptTools.d.ts.map +1 -1
  175. package/lib/esm/tools/ScheduleScriptTools.js +11 -12
  176. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  177. package/lib/esm/tools/SelectionTools.js +4 -6
  178. package/lib/esm/tools/SelectionTools.js.map +1 -1
  179. package/lib/esm/tools/SetGpuMemoryLimitTool.js +1 -1
  180. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  181. package/lib/esm/tools/SourceAspectIdTools.js +2 -2
  182. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  183. package/lib/esm/tools/TileRequestDecoration.js +6 -3
  184. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  185. package/lib/esm/tools/TileTreeBoundsDecoration.d.ts.map +1 -1
  186. package/lib/esm/tools/TileTreeBoundsDecoration.js +8 -4
  187. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  188. package/lib/esm/tools/ToolTipProvider.js +2 -1
  189. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  190. package/lib/esm/tools/ViewportTools.js +22 -19
  191. package/lib/esm/tools/ViewportTools.js.map +1 -1
  192. package/lib/esm/widgets/DiagnosticsPanel.d.ts +1 -1
  193. package/lib/esm/widgets/DiagnosticsPanel.d.ts.map +1 -1
  194. package/lib/esm/widgets/DiagnosticsPanel.js +11 -1
  195. package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
  196. package/lib/esm/widgets/FpsTracker.d.ts +1 -1
  197. package/lib/esm/widgets/FpsTracker.d.ts.map +1 -1
  198. package/lib/esm/widgets/FpsTracker.js +5 -1
  199. package/lib/esm/widgets/FpsTracker.js.map +1 -1
  200. package/lib/esm/widgets/GpuProfiler.d.ts +1 -1
  201. package/lib/esm/widgets/GpuProfiler.d.ts.map +1 -1
  202. package/lib/esm/widgets/GpuProfiler.js +89 -82
  203. package/lib/esm/widgets/GpuProfiler.js.map +1 -1
  204. package/lib/esm/widgets/KeyinField.js +8 -1
  205. package/lib/esm/widgets/KeyinField.js.map +1 -1
  206. package/lib/esm/widgets/MemoryTracker.d.ts +1 -1
  207. package/lib/esm/widgets/MemoryTracker.d.ts.map +1 -1
  208. package/lib/esm/widgets/MemoryTracker.js +16 -4
  209. package/lib/esm/widgets/MemoryTracker.js.map +1 -1
  210. package/lib/esm/widgets/RenderCommandBreakdown.d.ts +1 -1
  211. package/lib/esm/widgets/RenderCommandBreakdown.d.ts.map +1 -1
  212. package/lib/esm/widgets/RenderCommandBreakdown.js +6 -2
  213. package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
  214. package/lib/esm/widgets/TileMemoryBreakdown.d.ts +1 -1
  215. package/lib/esm/widgets/TileMemoryBreakdown.d.ts.map +1 -1
  216. package/lib/esm/widgets/TileMemoryBreakdown.js +10 -8
  217. package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
  218. package/lib/esm/widgets/TileStatisticsTracker.d.ts +1 -1
  219. package/lib/esm/widgets/TileStatisticsTracker.d.ts.map +1 -1
  220. package/lib/esm/widgets/TileStatisticsTracker.js +5 -2
  221. package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
  222. package/lib/esm/widgets/ToolSettingsTracker.d.ts +1 -1
  223. package/lib/esm/widgets/ToolSettingsTracker.d.ts.map +1 -1
  224. package/lib/esm/widgets/ToolSettingsTracker.js +2 -2
  225. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  226. package/package.json +10 -10
@@ -49,6 +49,7 @@ exports.DisplayStyleTool = DisplayStyleTool;
49
49
  * @beta
50
50
  */
51
51
  class ChangeViewFlagsTool extends core_frontend_1.Tool {
52
+ static toolId = "ChangeViewFlags";
52
53
  static get maxArgs() { return undefined; }
53
54
  static get minArgs() { return 1; }
54
55
  async run(vf, vp) {
@@ -94,11 +95,11 @@ class ChangeViewFlagsTool extends core_frontend_1.Tool {
94
95
  }
95
96
  }
96
97
  exports.ChangeViewFlagsTool = ChangeViewFlagsTool;
97
- ChangeViewFlagsTool.toolId = "ChangeViewFlags";
98
98
  /** Toggles the skybox.
99
99
  * @beta
100
100
  */
101
101
  class ToggleSkyboxTool extends DisplayStyleTool {
102
+ static toolId = "ToggleSkybox";
102
103
  get require3d() { return true; }
103
104
  async parse(_args) { return true; } // no arguments
104
105
  async execute(vp) {
@@ -108,11 +109,12 @@ class ToggleSkyboxTool extends DisplayStyleTool {
108
109
  }
109
110
  }
110
111
  exports.ToggleSkyboxTool = ToggleSkyboxTool;
111
- ToggleSkyboxTool.toolId = "ToggleSkybox";
112
112
  /** Defines a [SkySphere]($common) to apply to the current view.
113
113
  * @beta
114
114
  */
115
115
  class SkySphereTool extends DisplayStyleTool {
116
+ _image;
117
+ static toolId = "SetSkySphere";
116
118
  static get minArgs() { return 1; }
117
119
  static get maxArgs() { return 1; }
118
120
  get require3d() { return true; }
@@ -131,15 +133,12 @@ class SkySphereTool extends DisplayStyleTool {
131
133
  }
132
134
  }
133
135
  exports.SkySphereTool = SkySphereTool;
134
- SkySphereTool.toolId = "SetSkySphere";
135
136
  /** Defines a [SkyCube]($common) to apply to the current view.
136
137
  * @beta
137
138
  */
138
139
  class SkyCubeTool extends DisplayStyleTool {
139
- constructor() {
140
- super(...arguments);
141
- this._images = [];
142
- }
140
+ _images = [];
141
+ static toolId = "SetSkyCube";
143
142
  static get minArgs() { return 1; }
144
143
  static get maxArgs() { return 6; }
145
144
  get require3d() { return true; }
@@ -195,7 +194,6 @@ class SkyCubeTool extends DisplayStyleTool {
195
194
  }
196
195
  }
197
196
  exports.SkyCubeTool = SkyCubeTool;
198
- SkyCubeTool.toolId = "SetSkyCube";
199
197
  /** Outputs (and optionally copies to the clipboard) a "rendering style" as a partial DisplayStyle3dSettingsProps JSON object based
200
198
  * on the current view's display style settings.
201
199
  * 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.
@@ -211,12 +209,10 @@ SkyCubeTool.toolId = "SetSkyCube";
211
209
  * @beta
212
210
  */
213
211
  class SaveRenderingStyleTool extends DisplayStyleTool {
214
- constructor() {
215
- super(...arguments);
216
- this._options = {};
217
- this._copyToClipboard = false;
218
- this._quote = false;
219
- }
212
+ _options = {};
213
+ _copyToClipboard = false;
214
+ _quote = false;
215
+ static toolId = "SaveRenderingStyle";
220
216
  static get minArgs() { return 0; }
221
217
  static get maxArgs() { return 7; }
222
218
  async parse(inputArgs) {
@@ -244,12 +240,13 @@ class SaveRenderingStyleTool extends DisplayStyleTool {
244
240
  }
245
241
  }
246
242
  exports.SaveRenderingStyleTool = SaveRenderingStyleTool;
247
- SaveRenderingStyleTool.toolId = "SaveRenderingStyle";
248
243
  /** Given a "rendering style" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.
249
244
  * @see [DisplayStyleSettings.applyOverrides]($common) for details.
250
245
  * @beta
251
246
  */
252
247
  class ApplyRenderingStyleTool extends DisplayStyleTool {
248
+ _overrides;
249
+ static toolId = "ApplyRenderingStyle";
253
250
  static get minArgs() { return 1; }
254
251
  static get maxArgs() { return 1; }
255
252
  async parse(args) {
@@ -269,16 +266,13 @@ class ApplyRenderingStyleTool extends DisplayStyleTool {
269
266
  }
270
267
  }
271
268
  exports.ApplyRenderingStyleTool = ApplyRenderingStyleTool;
272
- ApplyRenderingStyleTool.toolId = "ApplyRenderingStyle";
273
269
  /** Apply appearance overrides to one or more subcategories in the active viewport.
274
270
  * @beta
275
271
  */
276
272
  class OverrideSubCategoryTool extends DisplayStyleTool {
277
- constructor() {
278
- super(...arguments);
279
- this._overrideProps = {};
280
- this._subcategoryIds = [];
281
- }
273
+ _overrideProps = {};
274
+ _subcategoryIds = [];
275
+ static toolId = "OverrideSubCategory";
282
276
  static get minArgs() { return 1; }
283
277
  static get maxArgs() { return 7; }
284
278
  async parse(inArgs) {
@@ -304,11 +298,12 @@ class OverrideSubCategoryTool extends DisplayStyleTool {
304
298
  }
305
299
  }
306
300
  exports.OverrideSubCategoryTool = OverrideSubCategoryTool;
307
- OverrideSubCategoryTool.toolId = "OverrideSubCategory";
308
301
  /** Set whether background color is ignored when applying white-on-white reversal.
309
302
  * @beta
310
303
  */
311
304
  class WoWIgnoreBackgroundTool extends DisplayStyleTool {
305
+ _ignore;
306
+ static toolId = "WoWIgnoreBackground";
312
307
  static get minArgs() { return 0; }
313
308
  static get maxArgs() { return 1; }
314
309
  async parse(args) {
@@ -325,12 +320,13 @@ class WoWIgnoreBackgroundTool extends DisplayStyleTool {
325
320
  }
326
321
  }
327
322
  exports.WoWIgnoreBackgroundTool = WoWIgnoreBackgroundTool;
328
- WoWIgnoreBackgroundTool.toolId = "WoWIgnoreBackground";
329
323
  /** Toggle whether surfaces display with overlaid wiremesh in the active viewport.
330
324
  * @see [ViewFlags.wiremesh]($common).
331
325
  * @beta
332
326
  */
333
327
  class ToggleWiremeshTool extends DisplayStyleTool {
328
+ _enable;
329
+ static toolId = "ToggleWiremesh";
334
330
  static get minArgs() { return 0; }
335
331
  static get maxArgs() { return 1; }
336
332
  async parse(args) {
@@ -346,11 +342,12 @@ class ToggleWiremeshTool extends DisplayStyleTool {
346
342
  }
347
343
  }
348
344
  exports.ToggleWiremeshTool = ToggleWiremeshTool;
349
- ToggleWiremeshTool.toolId = "ToggleWiremesh";
350
345
  /** Change the background color of the active viewport and optionally its transparency.
351
346
  * @beta
352
347
  */
353
348
  class ChangeBackgroundColorTool extends DisplayStyleTool {
349
+ _color;
350
+ static toolId = "ChangeBackgroundColor";
354
351
  static get minArgs() { return 1; }
355
352
  static get maxArgs() { return 1; }
356
353
  async parse(args) {
@@ -365,5 +362,4 @@ class ChangeBackgroundColorTool extends DisplayStyleTool {
365
362
  }
366
363
  }
367
364
  exports.ChangeBackgroundColorTool = ChangeBackgroundColorTool;
368
- ChangeBackgroundColorTool.toolId = "ChangeBackgroundColor";
369
365
  //# sourceMappingURL=DisplayStyleTools.js.map
@@ -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":["/*---------------------------------------------------------------------------------------------\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"]}
@@ -35,12 +35,10 @@ exports.EmphasizeElementsTool = EmphasizeElementsTool;
35
35
  * @beta
36
36
  */
37
37
  class EmphasizeSelectedElementsTool extends EmphasizeElementsTool {
38
- constructor() {
39
- super(...arguments);
40
- this._type = 0 /* OverrideType.None */;
41
- }
38
+ static toolId = "EmphasizeSelectedElements";
42
39
  static get minArgs() { return 0; }
43
40
  static get maxArgs() { return 1; }
41
+ _type = 0 /* OverrideType.None */;
44
42
  execute(emph, vp) {
45
43
  if (0 /* OverrideType.None */ === (this._type & 1 /* OverrideType.Color */) || emph.overrideSelectedElements(vp, core_common_1.ColorDef.white, undefined, true, false)) {
46
44
  emph.wantEmphasis = 0 /* OverrideType.None */ !== (this._type & 2 /* OverrideType.Emphasis */);
@@ -74,32 +72,32 @@ class EmphasizeSelectedElementsTool extends EmphasizeElementsTool {
74
72
  }
75
73
  }
76
74
  exports.EmphasizeSelectedElementsTool = EmphasizeSelectedElementsTool;
77
- EmphasizeSelectedElementsTool.toolId = "EmphasizeSelectedElements";
78
75
  /** Isolate all selected elements so that *only* those elements will be drawn.
79
76
  * @beta
80
77
  */
81
78
  class IsolateSelectedElementsTool extends EmphasizeElementsTool {
79
+ static toolId = "IsolateSelectedElements";
82
80
  execute(emph, vp) {
83
81
  emph.isolateSelectedElements(vp, true, true);
84
82
  }
85
83
  }
86
84
  exports.IsolateSelectedElementsTool = IsolateSelectedElementsTool;
87
- IsolateSelectedElementsTool.toolId = "IsolateSelectedElements";
88
85
  /** Clear the set of isolated elements.
89
86
  * @beta
90
87
  */
91
88
  class ClearIsolatedElementsTool extends EmphasizeElementsTool {
89
+ static toolId = "ClearIsolatedElements";
92
90
  get _wantCreate() { return false; }
93
91
  execute(emph, vp) {
94
92
  emph.clearIsolatedElements(vp);
95
93
  }
96
94
  }
97
95
  exports.ClearIsolatedElementsTool = ClearIsolatedElementsTool;
98
- ClearIsolatedElementsTool.toolId = "ClearIsolatedElements";
99
96
  /** Reset [EmphasizeElements]($frontend) for the active [Viewport]($frontend).
100
97
  * @beta
101
98
  */
102
99
  class ClearEmphasizedElementsTool extends EmphasizeElementsTool {
100
+ static toolId = "ClearEmphasizedElements";
103
101
  get _wantCreate() { return false; }
104
102
  get _wantClear() { return true; }
105
103
  execute(emph, vp) {
@@ -108,17 +106,14 @@ class ClearEmphasizedElementsTool extends EmphasizeElementsTool {
108
106
  }
109
107
  }
110
108
  exports.ClearEmphasizedElementsTool = ClearEmphasizedElementsTool;
111
- ClearEmphasizedElementsTool.toolId = "ClearEmphasizedElements";
112
109
  /** Emphasize the set of elements currently visible in the view based on [Viewport.queryVisibleFeatures]($frontend).
113
110
  * @beta
114
111
  */
115
112
  class EmphasizeVisibleElementsTool extends EmphasizeElementsTool {
116
- constructor() {
117
- super(...arguments);
118
- this._options = { source: "screen" };
119
- }
113
+ static toolId = "EmphasizeVisibleElements";
120
114
  static get minArgs() { return 1; }
121
115
  static get maxArgs() { return 2; }
116
+ _options = { source: "screen" };
122
117
  get _wantClear() { return true; }
123
118
  async parseAndRun(...input) {
124
119
  const args = (0, parseArgs_1.parseArgs)(input);
@@ -151,5 +146,4 @@ class EmphasizeVisibleElementsTool extends EmphasizeElementsTool {
151
146
  }
152
147
  }
153
148
  exports.EmphasizeVisibleElementsTool = EmphasizeVisibleElementsTool;
154
- EmphasizeVisibleElementsTool.toolId = "EmphasizeVisibleElements";
155
149
  //# 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":"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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"]}
@@ -20,6 +20,15 @@ const parseToggle_1 = require("./parseToggle");
20
20
  * - Allowing the user to take a snapshot of the current frustum, then navigate the view to inspect it within the same viewport.
21
21
  */
22
22
  class FrustumDecoration {
23
+ _options;
24
+ _worldFrustum;
25
+ _adjustedWorldFrustum;
26
+ _preloadFrustum;
27
+ _npcFrustum;
28
+ _worldToNpcMap;
29
+ _eyePoint;
30
+ _focalPlane;
31
+ _isCameraOn;
23
32
  constructor(vp, view, _options) {
24
33
  this._options = _options;
25
34
  this._worldFrustum = vp.getFrustum(core_frontend_1.CoordSystem.World, false);
@@ -128,15 +137,17 @@ class FrustumDecoration {
128
137
  * @beta
129
138
  */
130
139
  class FrustumDecorator {
140
+ _decoration;
131
141
  constructor(vp, options) {
132
- /** This will allow the render system to cache and reuse the decorations created by this decorator's decorate() method. */
133
- this.useCachedDecorations = true;
134
142
  this._decoration = FrustumDecoration.create(vp, options);
135
143
  }
144
+ /** This will allow the render system to cache and reuse the decorations created by this decorator's decorate() method. */
145
+ useCachedDecorations = true;
136
146
  decorate(context) {
137
147
  if (undefined !== this._decoration)
138
148
  this._decoration.decorate(context);
139
149
  }
150
+ static _instance;
140
151
  /** Add the decoration to the specified viewport. */
141
152
  static enable(vp, options) {
142
153
  FrustumDecorator.disable();
@@ -158,6 +169,7 @@ exports.FrustumDecorator = FrustumDecorator;
158
169
  * @beta
159
170
  */
160
171
  class ToggleFrustumSnapshotTool extends core_frontend_1.Tool {
172
+ static toolId = "ToggleFrustumSnapshot";
161
173
  static get minArgs() { return 0; }
162
174
  static get maxArgs() { return 2; }
163
175
  async run(enable, showPreloadFrustum, showBackgroundIntersections) {
@@ -193,16 +205,20 @@ class ToggleFrustumSnapshotTool extends core_frontend_1.Tool {
193
205
  }
194
206
  }
195
207
  exports.ToggleFrustumSnapshotTool = ToggleFrustumSnapshotTool;
196
- ToggleFrustumSnapshotTool.toolId = "ToggleFrustumSnapshot";
197
208
  /**
198
209
  * Decorates the viewport with a graphical depiction of a Frustum from the currently selected viewport.
199
210
  * Only useful when more than one spatial viewport is open.
200
211
  */
201
212
  class SelectedViewFrustumDecoration {
213
+ _options;
214
+ static _decorator;
215
+ _targetVp;
216
+ _removeDecorationListener;
217
+ _removeViewChangedListener;
218
+ /** This will allow the render system to cache and reuse the decorations created by this decorator's decorate() method. */
219
+ useCachedDecorations = true;
202
220
  constructor(vp, _options) {
203
221
  this._options = _options;
204
- /** This will allow the render system to cache and reuse the decorations created by this decorator's decorate() method. */
205
- this.useCachedDecorations = true;
206
222
  this._targetVp = vp;
207
223
  this._removeDecorationListener = core_frontend_1.IModelApp.viewManager.addDecorator(this);
208
224
  this._removeViewChangedListener = vp.onViewChanged.addListener(this.onViewChanged, this); // eslint-disable-line @typescript-eslint/unbound-method
@@ -270,6 +286,7 @@ class SelectedViewFrustumDecoration {
270
286
  * @beta
271
287
  */
272
288
  class ToggleSelectedViewFrustumTool extends core_frontend_1.Tool {
289
+ static toolId = "ToggleSelectedViewFrustum";
273
290
  static get minArgs() { return 0; }
274
291
  static get maxArgs() { return 1; }
275
292
  async run(enable) {
@@ -294,11 +311,13 @@ class ToggleSelectedViewFrustumTool extends core_frontend_1.Tool {
294
311
  }
295
312
  }
296
313
  exports.ToggleSelectedViewFrustumTool = ToggleSelectedViewFrustumTool;
297
- ToggleSelectedViewFrustumTool.toolId = "ToggleSelectedViewFrustum";
298
314
  class ShadowFrustumDecoration {
315
+ static _instance;
316
+ _targetVp;
317
+ _cleanup;
318
+ /** This will allow the render system to cache and reuse the decorations created by this decorator's decorate() method. */
319
+ useCachedDecorations = true;
299
320
  constructor(vp) {
300
- /** This will allow the render system to cache and reuse the decorations created by this decorator's decorate() method. */
301
- this.useCachedDecorations = true;
302
321
  this._targetVp = vp;
303
322
  const removeDecorator = core_frontend_1.IModelApp.viewManager.addDecorator(this);
304
323
  const removeOnRender = vp.onRender.addListener((_) => this.onRender());
@@ -355,6 +374,7 @@ class ShadowFrustumDecoration {
355
374
  * @beta
356
375
  */
357
376
  class ToggleShadowFrustumTool extends core_frontend_1.Tool {
377
+ static toolId = "ToggleShadowFrustum";
358
378
  static get minArgs() { return 0; }
359
379
  static get maxArgs() { return 1; }
360
380
  async run(enable) {
@@ -371,5 +391,4 @@ class ToggleShadowFrustumTool extends core_frontend_1.Tool {
371
391
  }
372
392
  }
373
393
  exports.ToggleShadowFrustumTool = ToggleShadowFrustumTool;
374
- ToggleShadowFrustumTool.toolId = "ToggleShadowFrustum";
375
394
  //# sourceMappingURL=FrustumDecoration.js.map