@itwin/frontend-devtools 5.0.0-dev.4 → 5.0.0-dev.40

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 (150) hide show
  1. package/CHANGELOG.md +26 -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 +2 -2
  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.js +2 -2
  17. package/lib/cjs/effects/Snow.js.map +1 -1
  18. package/lib/cjs/effects/Vignette.js +12 -12
  19. package/lib/cjs/effects/Vignette.js.map +1 -1
  20. package/lib/cjs/tools/AnimationIntervalTool.js +1 -1
  21. package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
  22. package/lib/cjs/tools/ChangeUnitsTool.js +1 -1
  23. package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
  24. package/lib/cjs/tools/ClipTools.js +4 -4
  25. package/lib/cjs/tools/ClipTools.js.map +1 -1
  26. package/lib/cjs/tools/DisplayStyleTools.js +10 -10
  27. package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
  28. package/lib/cjs/tools/EmphasizeElementsTool.js +5 -5
  29. package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
  30. package/lib/cjs/tools/FrustumDecoration.js +3 -3
  31. package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
  32. package/lib/cjs/tools/InspectElementTool.js +1 -1
  33. package/lib/cjs/tools/InspectElementTool.js.map +1 -1
  34. package/lib/cjs/tools/MapLayerTool.js +20 -20
  35. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  36. package/lib/cjs/tools/MeasureTileLoadTime.js +1 -1
  37. package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
  38. package/lib/cjs/tools/ModelAppearanceTools.js +9 -9
  39. package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
  40. package/lib/cjs/tools/PlanProjectionTools.js +3 -3
  41. package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
  42. package/lib/cjs/tools/PlanarMaskTools.js +13 -13
  43. package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
  44. package/lib/cjs/tools/ProjectExtents.js +1 -1
  45. package/lib/cjs/tools/ProjectExtents.js.map +1 -1
  46. package/lib/cjs/tools/RealityModelTools.js +10 -10
  47. package/lib/cjs/tools/RealityModelTools.js.map +1 -1
  48. package/lib/cjs/tools/RealityTransitionTool.js +1 -1
  49. package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
  50. package/lib/cjs/tools/RenderSystemTools.js +3 -3
  51. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  52. package/lib/cjs/tools/RenderTargetTools.js +11 -11
  53. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  54. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +1 -1
  55. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  56. package/lib/cjs/tools/SavedViews.js +3 -3
  57. package/lib/cjs/tools/SavedViews.js.map +1 -1
  58. package/lib/cjs/tools/ScheduleScriptTools.js +3 -3
  59. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  60. package/lib/cjs/tools/SelectionTools.js +2 -2
  61. package/lib/cjs/tools/SelectionTools.js.map +1 -1
  62. package/lib/cjs/tools/SetGpuMemoryLimitTool.js +1 -1
  63. package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
  64. package/lib/cjs/tools/SourceAspectIdTools.js +2 -2
  65. package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
  66. package/lib/cjs/tools/TileRequestDecoration.js +1 -1
  67. package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
  68. package/lib/cjs/tools/TileTreeBoundsDecoration.js +1 -1
  69. package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
  70. package/lib/cjs/tools/ToolTipProvider.js +1 -1
  71. package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
  72. package/lib/cjs/tools/ViewportTools.js +19 -19
  73. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  74. package/lib/cjs/widgets/ToolSettingsTracker.js +1 -1
  75. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  76. package/lib/esm/FrontEndDevTools.js +1 -1
  77. package/lib/esm/FrontEndDevTools.js.map +1 -1
  78. package/lib/esm/effects/Convolution.js +6 -6
  79. package/lib/esm/effects/Convolution.js.map +1 -1
  80. package/lib/esm/effects/EffectTools.js +2 -2
  81. package/lib/esm/effects/EffectTools.js.map +1 -1
  82. package/lib/esm/effects/Explosion.js +2 -2
  83. package/lib/esm/effects/Explosion.js.map +1 -1
  84. package/lib/esm/effects/FlipImage.js +2 -2
  85. package/lib/esm/effects/FlipImage.js.map +1 -1
  86. package/lib/esm/effects/LensDistortion.js +4 -4
  87. package/lib/esm/effects/LensDistortion.js.map +1 -1
  88. package/lib/esm/effects/Saturation.js +4 -4
  89. package/lib/esm/effects/Saturation.js.map +1 -1
  90. package/lib/esm/effects/Snow.js +2 -2
  91. package/lib/esm/effects/Snow.js.map +1 -1
  92. package/lib/esm/effects/Vignette.js +12 -12
  93. package/lib/esm/effects/Vignette.js.map +1 -1
  94. package/lib/esm/tools/AnimationIntervalTool.js +1 -1
  95. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  96. package/lib/esm/tools/ChangeUnitsTool.js +1 -1
  97. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  98. package/lib/esm/tools/ClipTools.js +4 -4
  99. package/lib/esm/tools/ClipTools.js.map +1 -1
  100. package/lib/esm/tools/DisplayStyleTools.js +10 -10
  101. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  102. package/lib/esm/tools/EmphasizeElementsTool.js +5 -5
  103. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  104. package/lib/esm/tools/FrustumDecoration.js +3 -3
  105. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  106. package/lib/esm/tools/InspectElementTool.js +1 -1
  107. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  108. package/lib/esm/tools/MapLayerTool.js +20 -20
  109. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  110. package/lib/esm/tools/MeasureTileLoadTime.js +1 -1
  111. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  112. package/lib/esm/tools/ModelAppearanceTools.js +9 -9
  113. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  114. package/lib/esm/tools/PlanProjectionTools.js +3 -3
  115. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  116. package/lib/esm/tools/PlanarMaskTools.js +13 -13
  117. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  118. package/lib/esm/tools/ProjectExtents.js +1 -1
  119. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  120. package/lib/esm/tools/RealityModelTools.js +10 -10
  121. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  122. package/lib/esm/tools/RealityTransitionTool.js +1 -1
  123. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  124. package/lib/esm/tools/RenderSystemTools.js +3 -3
  125. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  126. package/lib/esm/tools/RenderTargetTools.js +11 -11
  127. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  128. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +1 -1
  129. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  130. package/lib/esm/tools/SavedViews.js +3 -3
  131. package/lib/esm/tools/SavedViews.js.map +1 -1
  132. package/lib/esm/tools/ScheduleScriptTools.js +3 -3
  133. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  134. package/lib/esm/tools/SelectionTools.js +2 -2
  135. package/lib/esm/tools/SelectionTools.js.map +1 -1
  136. package/lib/esm/tools/SetGpuMemoryLimitTool.js +1 -1
  137. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  138. package/lib/esm/tools/SourceAspectIdTools.js +2 -2
  139. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  140. package/lib/esm/tools/TileRequestDecoration.js +1 -1
  141. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  142. package/lib/esm/tools/TileTreeBoundsDecoration.js +1 -1
  143. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  144. package/lib/esm/tools/ToolTipProvider.js +1 -1
  145. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  146. package/lib/esm/tools/ViewportTools.js +19 -19
  147. package/lib/esm/tools/ViewportTools.js.map +1 -1
  148. package/lib/esm/widgets/ToolSettingsTracker.js +1 -1
  149. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  150. package/package.json +8 -8
@@ -17,6 +17,7 @@ const parseToggle_1 = require("./parseToggle");
17
17
  * @beta
18
18
  */
19
19
  class AttachRealityModelTool extends core_frontend_1.Tool {
20
+ static { this.toolId = "AttachRealityModelTool"; }
20
21
  static get minArgs() { return 1; }
21
22
  static get maxArgs() { return 1; }
22
23
  /** This method runs the tool, attaching a specified reality model.
@@ -42,10 +43,10 @@ class AttachRealityModelTool extends core_frontend_1.Tool {
42
43
  }
43
44
  }
44
45
  exports.AttachRealityModelTool = AttachRealityModelTool;
45
- AttachRealityModelTool.toolId = "AttachRealityModelTool";
46
46
  /** This tool saves a reality model's JSON representation to the system clipboard.
47
47
  * @beta */
48
48
  class SaveRealityModelTool extends core_frontend_1.Tool {
49
+ static { this.toolId = "SaveRealityModelTool"; }
49
50
  static get minArgs() { return 0; }
50
51
  static get maxArgs() { return 1; }
51
52
  /** This method runs the tool, saving a reality model's JSON representation to the system clipboard.
@@ -71,7 +72,6 @@ class SaveRealityModelTool extends core_frontend_1.Tool {
71
72
  }
72
73
  }
73
74
  exports.SaveRealityModelTool = SaveRealityModelTool;
74
- SaveRealityModelTool.toolId = "SaveRealityModelTool";
75
75
  function changeRealityModelAppearanceOverrides(vp, overrides, index) {
76
76
  if (index < 0) {
77
77
  for (const model of vp.displayStyle.settings.contextRealityModels.models)
@@ -93,6 +93,7 @@ function appearanceChangedString(index) {
93
93
  * @beta
94
94
  */
95
95
  class SetRealityModelTransparencyTool extends core_frontend_1.Tool {
96
+ static { this.toolId = "SetRealityModelTransparencyTool"; }
96
97
  static get minArgs() { return 1; }
97
98
  static get maxArgs() { return 2; }
98
99
  async run(transparency, index) {
@@ -109,11 +110,11 @@ class SetRealityModelTransparencyTool extends core_frontend_1.Tool {
109
110
  }
110
111
  }
111
112
  exports.SetRealityModelTransparencyTool = SetRealityModelTransparencyTool;
112
- SetRealityModelTransparencyTool.toolId = "SetRealityModelTransparencyTool";
113
113
  /** Set reality model appearance override for locatable in display style.
114
114
  * @beta
115
115
  */
116
116
  class SetRealityModelLocateTool extends core_frontend_1.Tool {
117
+ static { this.toolId = "SetRealityModelLocateTool"; }
117
118
  static get minArgs() { return 1; }
118
119
  static get maxArgs() { return 2; }
119
120
  async run(locate, index) {
@@ -132,11 +133,11 @@ class SetRealityModelLocateTool extends core_frontend_1.Tool {
132
133
  }
133
134
  }
134
135
  exports.SetRealityModelLocateTool = SetRealityModelLocateTool;
135
- SetRealityModelLocateTool.toolId = "SetRealityModelLocateTool";
136
136
  /** Set reality model appearance override for emphasized in display style.
137
137
  * @beta
138
138
  */
139
139
  class SetRealityModelEmphasizedTool extends core_frontend_1.Tool {
140
+ static { this.toolId = "SetRealityModelEmphasizedTool"; }
140
141
  static get minArgs() { return 1; }
141
142
  static get maxArgs() { return 2; }
142
143
  async run(emphasized, index) {
@@ -154,11 +155,11 @@ class SetRealityModelEmphasizedTool extends core_frontend_1.Tool {
154
155
  }
155
156
  }
156
157
  exports.SetRealityModelEmphasizedTool = SetRealityModelEmphasizedTool;
157
- SetRealityModelEmphasizedTool.toolId = "SetRealityModelEmphasizedTool";
158
158
  /** Detach reality model from display style.
159
159
  * @beta
160
160
  */
161
161
  class DetachRealityModelTool extends core_frontend_1.Tool {
162
+ static { this.toolId = "ViewportDetachRealityModel"; }
162
163
  static get minArgs() { return 0; }
163
164
  static get maxArgs() { return 1; }
164
165
  async run(index) {
@@ -182,11 +183,11 @@ class DetachRealityModelTool extends core_frontend_1.Tool {
182
183
  }
183
184
  }
184
185
  exports.DetachRealityModelTool = DetachRealityModelTool;
185
- DetachRealityModelTool.toolId = "ViewportDetachRealityModel";
186
186
  /** Set reality model appearance override for color in display style.
187
187
  * @beta
188
188
  */
189
189
  class SetRealityModelColorTool extends core_frontend_1.Tool {
190
+ static { this.toolId = "SetRealityModelColorTool"; }
190
191
  static get minArgs() { return 3; }
191
192
  static get maxArgs() { return 4; }
192
193
  async run(rgb, index) {
@@ -203,11 +204,11 @@ class SetRealityModelColorTool extends core_frontend_1.Tool {
203
204
  }
204
205
  }
205
206
  exports.SetRealityModelColorTool = SetRealityModelColorTool;
206
- SetRealityModelColorTool.toolId = "SetRealityModelColorTool";
207
207
  /** Clear reality model appearance override in display style.
208
208
  * @beta
209
209
  */
210
210
  class ClearRealityModelAppearanceOverrides extends core_frontend_1.Tool {
211
+ static { this.toolId = "ClearRealityModelAppearanceOverrides"; }
211
212
  static get minArgs() { return 0; }
212
213
  static get maxArgs() { return 1; }
213
214
  async run(index) {
@@ -225,11 +226,11 @@ class ClearRealityModelAppearanceOverrides extends core_frontend_1.Tool {
225
226
  }
226
227
  }
227
228
  exports.ClearRealityModelAppearanceOverrides = ClearRealityModelAppearanceOverrides;
228
- ClearRealityModelAppearanceOverrides.toolId = "ClearRealityModelAppearanceOverrides";
229
229
  /** Attach a cesium asset from the Ion ID and key.
230
230
  * @beta
231
231
  */
232
232
  class AttachCesiumAssetTool extends core_frontend_1.Tool {
233
+ static { this.toolId = "AttachCesiumAssetTool"; }
233
234
  static get minArgs() { return 1; }
234
235
  static get maxArgs() { return 2; }
235
236
  async run(assetId, requestKey) {
@@ -254,11 +255,11 @@ class AttachCesiumAssetTool extends core_frontend_1.Tool {
254
255
  }
255
256
  }
256
257
  exports.AttachCesiumAssetTool = AttachCesiumAssetTool;
257
- AttachCesiumAssetTool.toolId = "AttachCesiumAssetTool";
258
258
  /** Turn on/off display of OpenStreetMap buildings
259
259
  * @beta
260
260
  */
261
261
  class ToggleOSMBuildingDisplay extends core_frontend_1.Tool {
262
+ static { this.toolId = "SetBuildingDisplay"; }
262
263
  static get minArgs() { return 0; }
263
264
  static get maxArgs() { return 2; }
264
265
  async run(onOff, transparency) {
@@ -278,5 +279,4 @@ class ToggleOSMBuildingDisplay extends core_frontend_1.Tool {
278
279
  }
279
280
  }
280
281
  exports.ToggleOSMBuildingDisplay = ToggleOSMBuildingDisplay;
281
- ToggleOSMBuildingDisplay.toolId = "SetBuildingDisplay";
282
282
  //# sourceMappingURL=RealityModelTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RealityModelTools.js","sourceRoot":"","sources":["../../../src/tools/RealityModelTools.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, RgbColorProps } from \"@itwin/core-common\";\nimport { getCesiumAssetUrl, IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport } from \"@itwin/core-frontend\";\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\nimport { parseBoolean } from \"./parseBoolean\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** This tool attaches a specified reality model.\n * @beta\n */\nexport class AttachRealityModelTool extends Tool {\n public static override toolId = \"AttachRealityModelTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n /** This method runs the tool, attaching a specified reality model.\n * @param data a [[ContextRealityModelProps]] JSON representation\n */\n public override async run(data: string): Promise<boolean> {\n const props = JSON.parse(data);\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n if (props === undefined || props.tilesetUrl === undefined) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, `Properties ${props} are not valid`));\n }\n\n vp.displayStyle.attachRealityModel(props);\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Reality Model ${props.tilesetUrl} attached`));\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `data`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args[0]);\n }\n}\n\n/** This tool saves a reality model's JSON representation to the system clipboard.\n * @beta */\nexport class SaveRealityModelTool extends Tool {\n public static override toolId = \"SaveRealityModelTool\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n /** This method runs the tool, saving a reality model's JSON representation to the system clipboard.\n * @param name the name of the reality model to copy; if undefined, copy the last found reality model\n */\n public override async run(name: string | undefined): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n vp.displayStyle.forEachRealityModel((realityModel) => {\n if (name === undefined || realityModel.name === name) {\n copyStringToClipboard(JSON.stringify(realityModel.toJSON()));\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Reality Model ${realityModel.name} copied to clipboard`));\n }\n });\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `name`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args.length > 0 ? args[0] : undefined);\n }\n}\n\nfunction changeRealityModelAppearanceOverrides(vp: Viewport, overrides: FeatureAppearanceProps, index: number): boolean {\n if (index < 0) {\n for (const model of vp.displayStyle.settings.contextRealityModels.models)\n model.appearanceOverrides = model.appearanceOverrides ? model.appearanceOverrides.clone(overrides) : FeatureAppearance.fromJSON(overrides);\n\n return vp.displayStyle.settings.contextRealityModels.models.length > 0;\n } else {\n const model = vp.displayStyle.settings.contextRealityModels.models[index];\n if (!model)\n return false;\n\n model.appearanceOverrides = model.appearanceOverrides ? model.appearanceOverrides.clone(overrides) : FeatureAppearance.fromJSON(overrides);\n return true;\n }\n}\n\nfunction appearanceChangedString(index: number) {\n return index < 0 ? `All Reality Models` : `Reality Model at Index: ${index}`;\n}\n\n/** Set reality model appearance override for transparency in display style.\n * @beta\n */\nexport class SetRealityModelTransparencyTool extends Tool {\n public static override toolId = \"SetRealityModelTransparencyTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(transparency: number, index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n const changed = changeRealityModelAppearanceOverrides(vp, { transparency }, index);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} set to transparency: ${transparency}`));\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(parseFloat(args[0]), args.length > 1 ? parseInt(args[1], 10) : -1);\n }\n}\n/** Set reality model appearance override for locatable in display style.\n * @beta\n */\nexport class SetRealityModelLocateTool extends Tool {\n public static override toolId = \"SetRealityModelLocateTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(locate: boolean, index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n const nonLocatable = locate ? undefined : true;\n const changed = changeRealityModelAppearanceOverrides(vp, { nonLocatable }, index);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} set to locate: ${locate}`));\n\n return true;\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.length > 1 ? parseInt(args[1], 10) : -1);\n }\n}\n\n/** Set reality model appearance override for emphasized in display style.\n * @beta\n */\nexport class SetRealityModelEmphasizedTool extends Tool {\n public static override toolId = \"SetRealityModelEmphasizedTool\";\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, index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n const changed = changeRealityModelAppearanceOverrides(vp, { emphasized }, index);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} set to emphasized: ${emphasized}`));\n\n return true;\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.length > 1 ? parseInt(args[1], 10) : -1);\n }\n}\n\n/** Detach reality model from display style.\n * @beta\n */\nexport class DetachRealityModelTool extends Tool {\n public static override toolId = \"ViewportDetachRealityModel\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n public override async run(index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n if (index < 0) {\n vp.displayStyle.settings.contextRealityModels.models.forEach((model) => vp.displayStyle.settings.contextRealityModels.delete(model));\n return true;\n } else {\n const model = vp.displayStyle.settings.contextRealityModels.models[index];\n if (!model)\n return false;\n\n vp.displayStyle.settings.contextRealityModels.delete(model);\n return true;\n }\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args.length > 0 ? parseInt(args[0], 10) : -1);\n }\n}\n\n/** Set reality model appearance override for color in display style.\n * @beta\n */\nexport class SetRealityModelColorTool extends Tool {\n public static override toolId = \"SetRealityModelColorTool\";\n public static override get minArgs() { return 3; }\n public static override get maxArgs() { return 4; }\n\n public override async run(rgb: RgbColorProps, index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n const changed = changeRealityModelAppearanceOverrides(vp, { rgb }, index);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} 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.length > 3 ? parseInt(args[3], 10) : -1);\n }\n}\n\n/** Clear reality model appearance override in display style.\n * @beta\n */\nexport class ClearRealityModelAppearanceOverrides extends Tool {\n public static override toolId = \"ClearRealityModelAppearanceOverrides\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n public override async run(index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp)\n return false;\n\n const model = vp.displayStyle.settings.contextRealityModels.models[index];\n if (!model)\n return false;\n\n model.appearanceOverrides = undefined;\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args[0] === undefined ? -1 : parseInt(args[0], 10));\n }\n}\n\n/** Attach a cesium asset from the Ion ID and key.\n * @beta\n */\nexport class AttachCesiumAssetTool extends Tool {\n public static override toolId = \"AttachCesiumAssetTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(assetId: number, requestKey: string): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n // attach using getCesiumAssetUrl\n const accessKey = requestKey ? requestKey : IModelApp.tileAdmin.cesiumIonKey ? IModelApp.tileAdmin.cesiumIonKey : \"\";\n const props = {\n tilesetUrl: getCesiumAssetUrl(\n assetId,\n accessKey,\n ),\n };\n // Alternative new way to attach using rdSourceKey\n // const rdSourceKey = RealityDataSource.createCesiumIonAssetKey(assetId, accessKey);\n // const props: ContextRealityModelProps = { rdSourceKey, tilesetUrl: getCesiumAssetUrl(assetId, accessKey) };\n\n vp.displayStyle.attachRealityModel(props);\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Cesium Asset #${assetId} attached`));\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const assetId = parseInt(args[0], 10);\n return Number.isNaN(assetId) ? false : this.run(assetId, args[1]);\n }\n}\n\n/** Turn on/off display of OpenStreetMap buildings\n * @beta\n */\nexport class ToggleOSMBuildingDisplay extends Tool {\n public static override toolId = \"SetBuildingDisplay\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 2; }\n\n public override async run(onOff?: boolean, transparency?: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n if (onOff === undefined)\n onOff = undefined === vp.displayStyle.getOSMBuildingRealityModel(); // Toggle current state.\n\n const appearanceOverrides = (transparency !== undefined && transparency > 0 && transparency < 1) ? FeatureAppearance.fromJSON({ transparency }) : undefined;\n\n vp.displayStyle.setOSMBuildingDisplay({ onOff, appearanceOverrides });\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const toggle = parseToggle(args[0]);\n const transparency = args.length > 0 ? parseFloat(args[1]) : undefined;\n return typeof toggle === \"string\" ? false : this.run(toggle, transparency);\n }\n}\n"]}
1
+ {"version":3,"file":"RealityModelTools.js","sourceRoot":"","sources":["../../../src/tools/RealityModelTools.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, RgbColorProps } from \"@itwin/core-common\";\nimport { getCesiumAssetUrl, IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport } from \"@itwin/core-frontend\";\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\nimport { parseBoolean } from \"./parseBoolean\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** This tool attaches a specified reality model.\n * @beta\n */\nexport class AttachRealityModelTool extends Tool {\n public static override toolId = \"AttachRealityModelTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n /** This method runs the tool, attaching a specified reality model.\n * @param data a [[ContextRealityModelProps]] JSON representation\n */\n public override async run(data: string): Promise<boolean> {\n const props = JSON.parse(data);\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n if (props === undefined || props.tilesetUrl === undefined) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, `Properties ${props} are not valid`));\n }\n\n vp.displayStyle.attachRealityModel(props);\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Reality Model ${props.tilesetUrl} attached`));\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `data`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args[0]);\n }\n}\n\n/** This tool saves a reality model's JSON representation to the system clipboard.\n * @beta */\nexport class SaveRealityModelTool extends Tool {\n public static override toolId = \"SaveRealityModelTool\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n /** This method runs the tool, saving a reality model's JSON representation to the system clipboard.\n * @param name the name of the reality model to copy; if undefined, copy the last found reality model\n */\n public override async run(name: string | undefined): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n vp.displayStyle.forEachRealityModel((realityModel) => {\n if (name === undefined || realityModel.name === name) {\n copyStringToClipboard(JSON.stringify(realityModel.toJSON()));\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Reality Model ${realityModel.name} copied to clipboard`));\n }\n });\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `name`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args.length > 0 ? args[0] : undefined);\n }\n}\n\nfunction changeRealityModelAppearanceOverrides(vp: Viewport, overrides: FeatureAppearanceProps, index: number): boolean {\n if (index < 0) {\n for (const model of vp.displayStyle.settings.contextRealityModels.models)\n model.appearanceOverrides = model.appearanceOverrides ? model.appearanceOverrides.clone(overrides) : FeatureAppearance.fromJSON(overrides);\n\n return vp.displayStyle.settings.contextRealityModels.models.length > 0;\n } else {\n const model = vp.displayStyle.settings.contextRealityModels.models[index];\n if (!model)\n return false;\n\n model.appearanceOverrides = model.appearanceOverrides ? model.appearanceOverrides.clone(overrides) : FeatureAppearance.fromJSON(overrides);\n return true;\n }\n}\n\nfunction appearanceChangedString(index: number) {\n return index < 0 ? `All Reality Models` : `Reality Model at Index: ${index}`;\n}\n\n/** Set reality model appearance override for transparency in display style.\n * @beta\n */\nexport class SetRealityModelTransparencyTool extends Tool {\n public static override toolId = \"SetRealityModelTransparencyTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(transparency: number, index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n const changed = changeRealityModelAppearanceOverrides(vp, { transparency }, index);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} set to transparency: ${transparency}`));\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(parseFloat(args[0]), args.length > 1 ? parseInt(args[1], 10) : -1);\n }\n}\n/** Set reality model appearance override for locatable in display style.\n * @beta\n */\nexport class SetRealityModelLocateTool extends Tool {\n public static override toolId = \"SetRealityModelLocateTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(locate: boolean, index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n const nonLocatable = locate ? undefined : true;\n const changed = changeRealityModelAppearanceOverrides(vp, { nonLocatable }, index);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} set to locate: ${locate}`));\n\n return true;\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.length > 1 ? parseInt(args[1], 10) : -1);\n }\n}\n\n/** Set reality model appearance override for emphasized in display style.\n * @beta\n */\nexport class SetRealityModelEmphasizedTool extends Tool {\n public static override toolId = \"SetRealityModelEmphasizedTool\";\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, index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n const changed = changeRealityModelAppearanceOverrides(vp, { emphasized }, index);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} set to emphasized: ${emphasized}`));\n\n return true;\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.length > 1 ? parseInt(args[1], 10) : -1);\n }\n}\n\n/** Detach reality model from display style.\n * @beta\n */\nexport class DetachRealityModelTool extends Tool {\n public static override toolId = \"ViewportDetachRealityModel\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n public override async run(index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n if (index < 0) {\n vp.displayStyle.settings.contextRealityModels.models.forEach((model) => vp.displayStyle.settings.contextRealityModels.delete(model));\n return true;\n } else {\n const model = vp.displayStyle.settings.contextRealityModels.models[index];\n if (!model)\n return false;\n\n vp.displayStyle.settings.contextRealityModels.delete(model);\n return true;\n }\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args.length > 0 ? parseInt(args[0], 10) : -1);\n }\n}\n\n/** Set reality model appearance override for color in display style.\n * @beta\n */\nexport class SetRealityModelColorTool extends Tool {\n public static override toolId = \"SetRealityModelColorTool\";\n public static override get minArgs() { return 3; }\n public static override get maxArgs() { return 4; }\n\n public override async run(rgb: RgbColorProps, index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n const changed = changeRealityModelAppearanceOverrides(vp, { rgb }, index);\n\n if (changed)\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} 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.length > 3 ? parseInt(args[3], 10) : -1);\n }\n}\n\n/** Clear reality model appearance override in display style.\n * @beta\n */\nexport class ClearRealityModelAppearanceOverrides extends Tool {\n public static override toolId = \"ClearRealityModelAppearanceOverrides\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n public override async run(index: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp)\n return false;\n\n const model = vp.displayStyle.settings.contextRealityModels.models[index];\n if (!model)\n return false;\n\n model.appearanceOverrides = undefined;\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args[0] === undefined ? -1 : parseInt(args[0], 10));\n }\n}\n\n/** Attach a cesium asset from the Ion ID and key.\n * @beta\n */\nexport class AttachCesiumAssetTool extends Tool {\n public static override toolId = \"AttachCesiumAssetTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n public override async run(assetId: number, requestKey: string): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n // attach using getCesiumAssetUrl\n const accessKey = requestKey ? requestKey : IModelApp.tileAdmin.cesiumIonKey ? IModelApp.tileAdmin.cesiumIonKey : \"\";\n const props = {\n tilesetUrl: getCesiumAssetUrl(\n assetId,\n accessKey,\n ),\n };\n // Alternative new way to attach using rdSourceKey\n // const rdSourceKey = RealityDataSource.createCesiumIonAssetKey(assetId, accessKey);\n // const props: ContextRealityModelProps = { rdSourceKey, tilesetUrl: getCesiumAssetUrl(assetId, accessKey) };\n\n vp.displayStyle.attachRealityModel(props);\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Cesium Asset #${assetId} attached`));\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const assetId = parseInt(args[0], 10);\n return Number.isNaN(assetId) ? false : this.run(assetId, args[1]);\n }\n}\n\n/** Turn on/off display of OpenStreetMap buildings\n * @beta\n */\nexport class ToggleOSMBuildingDisplay extends Tool {\n public static override toolId = \"SetBuildingDisplay\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 2; }\n\n public override async run(onOff?: boolean, transparency?: number): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp === undefined)\n return false;\n\n if (onOff === undefined)\n onOff = undefined === vp.displayStyle.getOSMBuildingRealityModel(); // Toggle current state.\n\n const appearanceOverrides = (transparency !== undefined && transparency > 0 && transparency < 1) ? FeatureAppearance.fromJSON({ transparency }) : undefined;\n\n vp.displayStyle.setOSMBuildingDisplay({ onOff, appearanceOverrides });\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const toggle = parseToggle(args[0]);\n const transparency = args.length > 0 ? parseFloat(args[1]) : undefined;\n return typeof toggle === \"string\" ? false : this.run(toggle, transparency);\n }\n}\n"]}
@@ -24,6 +24,7 @@ var FadeMode;
24
24
  class RealityTransitionTool extends core_frontend_1.Tool {
25
25
  static get minArgs() { return 0; }
26
26
  static get maxArgs() { return 1; }
27
+ static { this.toolId = "RealityTransition"; }
27
28
  /** This method runs the tool, applying a transition in X, Y, Z, or transparency.
28
29
  * @param fadeMode whether to apply the transition in X, Y, Z, or transparency
29
30
  */
@@ -112,5 +113,4 @@ class RealityTransitionTool extends core_frontend_1.Tool {
112
113
  }
113
114
  }
114
115
  exports.RealityTransitionTool = RealityTransitionTool;
115
- RealityTransitionTool.toolId = "RealityTransition";
116
116
  //# sourceMappingURL=RealityTransitionTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RealityTransitionTool.js","sourceRoot":"","sources":["../../../src/tools/RealityTransitionTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,wDAAgD;AAChD,oDAAoD;AACpD,wDAAuD;AAEvD,IAAK,QAAiC;AAAtC,WAAK,QAAQ;IAAG,iCAAC,CAAA;IAAE,iCAAC,CAAA;IAAE,iCAAC,CAAA;IAAE,qDAAW,CAAA;AAAC,CAAC,EAAjC,QAAQ,KAAR,QAAQ,QAAyB;AAEtC;;GAEG;AACH,MAAa,qBAAsB,SAAQ,oBAAI;IACtC,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,WAAqB,QAAQ,CAAC,CAAC;QACvD,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE;YAClB,OAAO,IAAI,CAAC;QAEd,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;QACrC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;QACrE,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;QACvC,MAAM,UAAU,GAAG,CAAC,wBAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,wBAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,wBAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClG,MAAM,eAAe,GAAsC,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;QACjG,MAAM,gBAAgB,GAAsC,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;QAElG,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC1B,MAAM,cAAc,GAAG,IAAI,KAAK,EAAuC,CAAC;gBACxE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACvE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrE,MAAM,eAAe,GAAG,IAAI,KAAK,EAAuC,CAAC;gBACzE,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtE,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxE,eAAe,CAAC,kBAAkB,GAAG,cAAc,CAAC;gBACpD,gBAAgB,CAAC,kBAAkB,GAAG,eAAe,CAAC;gBACtD,MAAM;YACR,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACpD,MAAM,cAAc,GAAG,IAAI,KAAK,EAAyC,CAAC;gBAC1E,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3K,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9K,MAAM,eAAe,GAAG,IAAI,KAAK,EAAyC,CAAC;gBAC3E,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/K,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClL,eAAe,CAAC,oBAAoB,GAAG,cAAc,CAAC;gBACtD,gBAAgB,CAAC,oBAAoB,GAAG,eAAe,CAAC;gBACxD,MAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAA+B,EAAE,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,WAAW,CAAC,IAAI,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC;gBACzE,OAAO,EAAE,KAAK,CAAC,EAAE;aAClB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC3D,IAAI,OAAO,EAAE,CAAC;gBACZ,WAAW,CAAC,IAAI,CAAC;oBACf,GAAG,gBAAgB;oBACnB,OAAO;oBACP,eAAe,EAAE,KAAK,CAAC,GAAG;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,4BAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,CAAC,cAAc,GAAG,MAAM,CAAC;YACrC,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,eAAe,GAAG;YACtB,GAAG;YACH,GAAG;YACH,GAAG;YACH,aAAa;SACd,CAAC;QACF,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,IAAI,GAAG,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,IAAI,GAAG,CAAC,CAAC;oBACT,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;;AAlGH,sDAmGC;AAhGwB,4BAAM,GAAG,mBAAmB,CAAC","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 { Vector3d } from \"@itwin/core-geometry\";\nimport { RenderSchedule } from \"@itwin/core-common\";\nimport { IModelApp, Tool } from \"@itwin/core-frontend\";\n\nenum FadeMode { X, Y, Z, Transparent }\n\n/** This tool applies a transition in X, Y, Z, or transparency.\n * @beta\n */\nexport class RealityTransitionTool extends Tool {\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n public static override toolId = \"RealityTransition\";\n /** This method runs the tool, applying a transition in X, Y, Z, or transparency.\n * @param fadeMode whether to apply the transition in X, Y, Z, or transparency\n */\n public override async run(fadeMode: FadeMode = FadeMode.X): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp)\n return true;\n\n const displayStyle = vp.displayStyle;\n const view = vp.view;\n const timeNow = Date.now(), timeEnd = timeNow + 1000.0 * 60.0 * 60.0;\n const range = vp.iModel.projectExtents;\n const directions = [Vector3d.create(1, 0, 0), Vector3d.create(0, 1, 0), Vector3d.create(0, 0, 1)];\n const modelInTimeline: RenderSchedule.ModelTimelineProps = { modelId: \"\", elementTimelines: [] };\n const modelOutTimeline: RenderSchedule.ModelTimelineProps = { modelId: \"\", elementTimelines: [] };\n\n switch (fadeMode) {\n case FadeMode.Transparent: {\n const fadeInTimeline = new Array<RenderSchedule.VisibilityEntryProps>();\n fadeInTimeline.push({ time: timeNow, interpolation: 2, value: 100.0 });\n fadeInTimeline.push({ time: timeEnd, interpolation: 2, value: 0.0 });\n const fadeOutTimeline = new Array<RenderSchedule.VisibilityEntryProps>();\n fadeOutTimeline.push({ time: timeNow, interpolation: 2, value: 0.0 });\n fadeOutTimeline.push({ time: timeEnd, interpolation: 2, value: 100.0 });\n modelInTimeline.visibilityTimeline = fadeInTimeline;\n modelOutTimeline.visibilityTimeline = fadeOutTimeline;\n break;\n }\n\n default: {\n const direction = directions[fadeMode - FadeMode.X];\n const clipInTimeline = new Array<RenderSchedule.CuttingPlaneEntryProps>();\n clipInTimeline.push({ time: timeNow, interpolation: 2, value: { position: [range.low.x, range.low.y, range.low.z], direction: [direction.x, direction.y, direction.z] } });\n clipInTimeline.push({ time: timeEnd, interpolation: 2, value: { position: [range.high.x, range.high.y, range.high.z], direction: [direction.x, direction.y, direction.z] } });\n const clipOutTimeline = new Array<RenderSchedule.CuttingPlaneEntryProps>();\n clipOutTimeline.push({ time: timeNow, interpolation: 2, value: { position: [range.low.x, range.low.y, range.low.z], direction: [-direction.x, -direction.y, -direction.z] } });\n clipOutTimeline.push({ time: timeEnd, interpolation: 2, value: { position: [range.high.x, range.high.y, range.high.z], direction: [-direction.x, -direction.y, -direction.z] } });\n modelInTimeline.cuttingPlaneTimeline = clipInTimeline;\n modelOutTimeline.cuttingPlaneTimeline = clipOutTimeline;\n break;\n }\n }\n\n const scriptProps: RenderSchedule.ScriptProps = [];\n view.forEachModel((model) => {\n scriptProps.push({\n ...(model.jsonProperties.tilesetUrl ? modelOutTimeline : modelInTimeline),\n modelId: model.id,\n });\n });\n\n displayStyle.forEachRealityModel((model) => {\n const modelId = model.treeRef?.treeOwner.tileTree?.modelId;\n if (modelId) {\n scriptProps.push({\n ...modelOutTimeline,\n modelId,\n realityModelUrl: model.url,\n });\n }\n });\n\n const script = RenderSchedule.Script.fromJSON(scriptProps);\n if (script) {\n displayStyle.scheduleScript = script;\n vp.timePoint = script.duration.low;\n }\n\n return true;\n }\n\n /** Executes this tool's run method.\n * @param args the first entry of this array contains either \"x\", \"y\", \"z\", or \"transparent\", indicating the type of transition to apply.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const transitionNames = [\n \"x\",\n \"y\",\n \"z\",\n \"transparent\",\n ];\n let fade = FadeMode.X;\n if (0 !== args.length) {\n const arg = args[0].toLowerCase();\n for (let i = 0; i < transitionNames.length; i++) {\n if (arg === transitionNames[i]) {\n fade = i;\n break;\n }\n }\n }\n\n return this.run(fade);\n }\n}\n"]}
1
+ {"version":3,"file":"RealityTransitionTool.js","sourceRoot":"","sources":["../../../src/tools/RealityTransitionTool.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 { Vector3d } from \"@itwin/core-geometry\";\nimport { RenderSchedule } from \"@itwin/core-common\";\nimport { IModelApp, Tool } from \"@itwin/core-frontend\";\n\nenum FadeMode { X, Y, Z, Transparent }\n\n/** This tool applies a transition in X, Y, Z, or transparency.\n * @beta\n */\nexport class RealityTransitionTool extends Tool {\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n public static override toolId = \"RealityTransition\";\n /** This method runs the tool, applying a transition in X, Y, Z, or transparency.\n * @param fadeMode whether to apply the transition in X, Y, Z, or transparency\n */\n public override async run(fadeMode: FadeMode = FadeMode.X): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp)\n return true;\n\n const displayStyle = vp.displayStyle;\n const view = vp.view;\n const timeNow = Date.now(), timeEnd = timeNow + 1000.0 * 60.0 * 60.0;\n const range = vp.iModel.projectExtents;\n const directions = [Vector3d.create(1, 0, 0), Vector3d.create(0, 1, 0), Vector3d.create(0, 0, 1)];\n const modelInTimeline: RenderSchedule.ModelTimelineProps = { modelId: \"\", elementTimelines: [] };\n const modelOutTimeline: RenderSchedule.ModelTimelineProps = { modelId: \"\", elementTimelines: [] };\n\n switch (fadeMode) {\n case FadeMode.Transparent: {\n const fadeInTimeline = new Array<RenderSchedule.VisibilityEntryProps>();\n fadeInTimeline.push({ time: timeNow, interpolation: 2, value: 100.0 });\n fadeInTimeline.push({ time: timeEnd, interpolation: 2, value: 0.0 });\n const fadeOutTimeline = new Array<RenderSchedule.VisibilityEntryProps>();\n fadeOutTimeline.push({ time: timeNow, interpolation: 2, value: 0.0 });\n fadeOutTimeline.push({ time: timeEnd, interpolation: 2, value: 100.0 });\n modelInTimeline.visibilityTimeline = fadeInTimeline;\n modelOutTimeline.visibilityTimeline = fadeOutTimeline;\n break;\n }\n\n default: {\n const direction = directions[fadeMode - FadeMode.X];\n const clipInTimeline = new Array<RenderSchedule.CuttingPlaneEntryProps>();\n clipInTimeline.push({ time: timeNow, interpolation: 2, value: { position: [range.low.x, range.low.y, range.low.z], direction: [direction.x, direction.y, direction.z] } });\n clipInTimeline.push({ time: timeEnd, interpolation: 2, value: { position: [range.high.x, range.high.y, range.high.z], direction: [direction.x, direction.y, direction.z] } });\n const clipOutTimeline = new Array<RenderSchedule.CuttingPlaneEntryProps>();\n clipOutTimeline.push({ time: timeNow, interpolation: 2, value: { position: [range.low.x, range.low.y, range.low.z], direction: [-direction.x, -direction.y, -direction.z] } });\n clipOutTimeline.push({ time: timeEnd, interpolation: 2, value: { position: [range.high.x, range.high.y, range.high.z], direction: [-direction.x, -direction.y, -direction.z] } });\n modelInTimeline.cuttingPlaneTimeline = clipInTimeline;\n modelOutTimeline.cuttingPlaneTimeline = clipOutTimeline;\n break;\n }\n }\n\n const scriptProps: RenderSchedule.ScriptProps = [];\n view.forEachModel((model) => {\n scriptProps.push({\n ...(model.jsonProperties.tilesetUrl ? modelOutTimeline : modelInTimeline),\n modelId: model.id,\n });\n });\n\n displayStyle.forEachRealityModel((model) => {\n const modelId = model.treeRef?.treeOwner.tileTree?.modelId;\n if (modelId) {\n scriptProps.push({\n ...modelOutTimeline,\n modelId,\n realityModelUrl: model.url,\n });\n }\n });\n\n const script = RenderSchedule.Script.fromJSON(scriptProps);\n if (script) {\n displayStyle.scheduleScript = script;\n vp.timePoint = script.duration.low;\n }\n\n return true;\n }\n\n /** Executes this tool's run method.\n * @param args the first entry of this array contains either \"x\", \"y\", \"z\", or \"transparent\", indicating the type of transition to apply.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const transitionNames = [\n \"x\",\n \"y\",\n \"z\",\n \"transparent\",\n ];\n let fade = FadeMode.X;\n if (0 !== args.length) {\n const arg = args[0].toLowerCase();\n for (let i = 0; i < transitionNames.length; i++) {\n if (arg === transitionNames[i]) {\n fade = i;\n break;\n }\n }\n }\n\n return this.run(fade);\n }\n}\n"]}
@@ -26,29 +26,30 @@ exports.RenderSystemDebugControlTool = RenderSystemDebugControlTool;
26
26
  * @beta
27
27
  */
28
28
  class LoseWebGLContextTool extends RenderSystemDebugControlTool {
29
+ static { this.toolId = "LoseWebGLContext"; }
29
30
  execute(control) {
30
31
  control.loseContext();
31
32
  }
32
33
  }
33
34
  exports.LoseWebGLContextTool = LoseWebGLContextTool;
34
- LoseWebGLContextTool.toolId = "LoseWebGLContext";
35
35
  /** Compiles all registered shader programs for which compilation has not already been attempted.
36
36
  * This is useful for uncovering/debugging platform-specific shader issues.
37
37
  * @beta
38
38
  */
39
39
  class CompileShadersTool extends RenderSystemDebugControlTool {
40
+ static { this.toolId = "CompileShaders"; }
40
41
  execute(control) {
41
42
  const compiled = control.compileAllShaders();
42
43
  core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(compiled ? core_frontend_1.OutputMessagePriority.Info : core_frontend_1.OutputMessagePriority.Error, `${compiled ? "No" : "Some"} compilation errors occurred.`));
43
44
  }
44
45
  }
45
46
  exports.CompileShadersTool = CompileShadersTool;
46
- CompileShadersTool.toolId = "CompileShaders";
47
47
  /** Toggles whether or not device pixel ratio should be taken into account when computing LOD for tiles and decoration graphics.
48
48
  * @see [RenderSystem.Options.dpiAwareLOD]($frontend)
49
49
  * @beta
50
50
  */
51
51
  class ToggleDPIForLODTool extends RenderSystemDebugControlTool {
52
+ static { this.toolId = "ToggleDPIForLOD"; }
52
53
  static get minArgs() { return 0; }
53
54
  static get maxArgs() { return 1; }
54
55
  execute(control) {
@@ -66,5 +67,4 @@ class ToggleDPIForLODTool extends RenderSystemDebugControlTool {
66
67
  }
67
68
  }
68
69
  exports.ToggleDPIForLODTool = ToggleDPIForLODTool;
69
- ToggleDPIForLODTool.toolId = "ToggleDPIForLOD";
70
70
  //# sourceMappingURL=RenderSystemTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderSystemTools.js","sourceRoot":"","sources":["../../../src/tools/RenderSystemTools.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,wDAA8H;AAC9H,+CAA4C;AAE5C;;GAEG;AACH,MAAsB,4BAA6B,SAAQ,oBAAI;IAC7C,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,OAAO,GAAG,yBAAS,CAAC,YAAY,CAAC,YAAY,CAAC;QACpD,IAAI,SAAS,KAAK,OAAO;YACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;CAGF;AAVD,oEAUC;AAED;;GAEG;AACH,MAAa,oBAAqB,SAAQ,4BAA4B;IAE7D,OAAO,CAAC,OAAiC;QAC9C,OAAO,CAAC,WAAW,EAAE,CAAC;IACxB,CAAC;;AAJH,oDAKC;AAJwB,2BAAM,GAAG,kBAAkB,CAAC;AAMrD;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,4BAA4B;IAE3D,OAAO,CAAC,OAAiC;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC7C,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,qCAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqB,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,+BAA+B,CAAC,CAAC,CAAC;IACnM,CAAC;;AALH,gDAMC;AALwB,yBAAM,GAAG,gBAAgB,CAAC;AAOnD;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,4BAA4B;IAE5D,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAI3C,OAAO,CAAC,OAAiC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACpD,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;QAC7B,yBAAS,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;IACnD,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;AArBH,kDAsBC;AArBwB,0BAAM,GAAG,iBAAiB,CAAC","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 { IModelApp, NotifyMessageDetails, OutputMessagePriority, RenderSystemDebugControl, Tool } from \"@itwin/core-frontend\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** Executes some code against a RenderSystemDebugControl obtained from the IModelApp's RenderSystem.\n * @beta\n */\nexport abstract class RenderSystemDebugControlTool extends Tool {\n public override async run(_args: any[]): Promise<boolean> {\n const control = IModelApp.renderSystem.debugControl;\n if (undefined !== control)\n this.execute(control);\n\n return true;\n }\n\n protected abstract execute(_control: RenderSystemDebugControl): void;\n}\n\n/** Forces webgl context loss.\n * @beta\n */\nexport class LoseWebGLContextTool extends RenderSystemDebugControlTool {\n public static override toolId = \"LoseWebGLContext\";\n public execute(control: RenderSystemDebugControl): void {\n control.loseContext();\n }\n}\n\n/** Compiles all registered shader programs for which compilation has not already been attempted.\n * This is useful for uncovering/debugging platform-specific shader issues.\n * @beta\n */\nexport class CompileShadersTool extends RenderSystemDebugControlTool {\n public static override toolId = \"CompileShaders\";\n public execute(control: RenderSystemDebugControl): void {\n const compiled = control.compileAllShaders();\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(compiled ? OutputMessagePriority.Info : OutputMessagePriority.Error, `${compiled ? \"No\" : \"Some\"} compilation errors occurred.`));\n }\n}\n\n/** Toggles whether or not device pixel ratio should be taken into account when computing LOD for tiles and decoration graphics.\n * @see [RenderSystem.Options.dpiAwareLOD]($frontend)\n * @beta\n */\nexport class ToggleDPIForLODTool extends RenderSystemDebugControlTool {\n public static override toolId = \"ToggleDPIForLOD\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _enable?: boolean;\n\n public execute(control: RenderSystemDebugControl): void {\n const enable = this._enable ?? !control.dpiAwareLOD;\n control.dpiAwareLOD = enable;\n IModelApp.viewManager.invalidateViewportScenes();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\") {\n this._enable = enable;\n await this.run([]);\n }\n\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"RenderSystemTools.js","sourceRoot":"","sources":["../../../src/tools/RenderSystemTools.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,wDAA8H;AAC9H,+CAA4C;AAE5C;;GAEG;AACH,MAAsB,4BAA6B,SAAQ,oBAAI;IAC7C,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,OAAO,GAAG,yBAAS,CAAC,YAAY,CAAC,YAAY,CAAC;QACpD,IAAI,SAAS,KAAK,OAAO;YACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;CAGF;AAVD,oEAUC;AAED;;GAEG;AACH,MAAa,oBAAqB,SAAQ,4BAA4B;aAC7C,WAAM,GAAG,kBAAkB,CAAC;IAC5C,OAAO,CAAC,OAAiC;QAC9C,OAAO,CAAC,WAAW,EAAE,CAAC;IACxB,CAAC;;AAJH,oDAKC;AAED;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,4BAA4B;aAC3C,WAAM,GAAG,gBAAgB,CAAC;IAC1C,OAAO,CAAC,OAAiC;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC7C,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,qCAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqB,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,+BAA+B,CAAC,CAAC,CAAC;IACnM,CAAC;;AALH,gDAMC;AAED;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,4BAA4B;aAC5C,WAAM,GAAG,iBAAiB,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAI3C,OAAO,CAAC,OAAiC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACpD,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;QAC7B,yBAAS,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;IACnD,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;AArBH,kDAsBC","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 { IModelApp, NotifyMessageDetails, OutputMessagePriority, RenderSystemDebugControl, Tool } from \"@itwin/core-frontend\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** Executes some code against a RenderSystemDebugControl obtained from the IModelApp's RenderSystem.\n * @beta\n */\nexport abstract class RenderSystemDebugControlTool extends Tool {\n public override async run(_args: any[]): Promise<boolean> {\n const control = IModelApp.renderSystem.debugControl;\n if (undefined !== control)\n this.execute(control);\n\n return true;\n }\n\n protected abstract execute(_control: RenderSystemDebugControl): void;\n}\n\n/** Forces webgl context loss.\n * @beta\n */\nexport class LoseWebGLContextTool extends RenderSystemDebugControlTool {\n public static override toolId = \"LoseWebGLContext\";\n public execute(control: RenderSystemDebugControl): void {\n control.loseContext();\n }\n}\n\n/** Compiles all registered shader programs for which compilation has not already been attempted.\n * This is useful for uncovering/debugging platform-specific shader issues.\n * @beta\n */\nexport class CompileShadersTool extends RenderSystemDebugControlTool {\n public static override toolId = \"CompileShaders\";\n public execute(control: RenderSystemDebugControl): void {\n const compiled = control.compileAllShaders();\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(compiled ? OutputMessagePriority.Info : OutputMessagePriority.Error, `${compiled ? \"No\" : \"Some\"} compilation errors occurred.`));\n }\n}\n\n/** Toggles whether or not device pixel ratio should be taken into account when computing LOD for tiles and decoration graphics.\n * @see [RenderSystem.Options.dpiAwareLOD]($frontend)\n * @beta\n */\nexport class ToggleDPIForLODTool extends RenderSystemDebugControlTool {\n public static override toolId = \"ToggleDPIForLOD\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _enable?: boolean;\n\n public execute(control: RenderSystemDebugControl): void {\n const enable = this._enable ?? !control.dpiAwareLOD;\n control.dpiAwareLOD = enable;\n IModelApp.viewManager.invalidateViewportScenes();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\") {\n this._enable = enable;\n await this.run([]);\n }\n\n return true;\n }\n}\n"]}
@@ -48,26 +48,26 @@ exports.RenderTargetDebugControlToggleTool = RenderTargetDebugControlToggleTool;
48
48
  * @beta
49
49
  */
50
50
  class ToggleReadPixelsTool extends RenderTargetDebugControlToggleTool {
51
+ static { this.toolId = "ToggleReadPixels"; }
51
52
  get aspect() { return "drawForReadPixels"; }
52
53
  }
53
54
  exports.ToggleReadPixelsTool = ToggleReadPixelsTool;
54
- ToggleReadPixelsTool.toolId = "ToggleReadPixels";
55
55
  /** Turn on the display of the draping frustum.
56
56
  * @beta
57
57
  */
58
58
  class ToggleDrapeFrustumTool extends RenderTargetDebugControlToggleTool {
59
+ static { this.toolId = "ToggleDrapeFrustum"; }
59
60
  get aspect() { return "displayDrapeFrustum"; }
60
61
  }
61
62
  exports.ToggleDrapeFrustumTool = ToggleDrapeFrustumTool;
62
- ToggleDrapeFrustumTool.toolId = "ToggleDrapeFrustum";
63
63
  /** Turn on the display of the planar mask frustum.
64
64
  * @beta
65
65
  */
66
66
  class ToggleMaskFrustumTool extends RenderTargetDebugControlToggleTool {
67
+ static { this.toolId = "ToggleMaskFrustum"; }
67
68
  get aspect() { return "displayMaskFrustum"; }
68
69
  }
69
70
  exports.ToggleMaskFrustumTool = ToggleMaskFrustumTool;
70
- ToggleMaskFrustumTool.toolId = "ToggleMaskFrustum";
71
71
  /** Control whether all geometry renders, or only instanced or batched geometry.
72
72
  * Allowed argument: "instanced", "batched", "all". Defaults to "all" if no arguments supplied.
73
73
  * @beta
@@ -77,6 +77,7 @@ class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool {
77
77
  super(...arguments);
78
78
  this._visibility = core_frontend_1.PrimitiveVisibility.All;
79
79
  }
80
+ static { this.toolId = "TogglePrimitiveVisibility"; }
80
81
  static get minArgs() { return 0; }
81
82
  static get maxArgs() { return 1; }
82
83
  execute(control, vp) {
@@ -102,47 +103,46 @@ class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool {
102
103
  }
103
104
  }
104
105
  exports.TogglePrimitiveVisibilityTool = TogglePrimitiveVisibilityTool;
105
- TogglePrimitiveVisibilityTool.toolId = "TogglePrimitiveVisibility";
106
106
  /** Turn on display of reality tile boundaries.
107
107
  * @beta
108
108
  */
109
109
  class ToggleRealityTileBounds extends RenderTargetDebugControlToggleTool {
110
+ static { this.toolId = "ToggleRealityTileBounds"; }
110
111
  get aspect() { return "displayRealityTileRanges"; }
111
112
  }
112
113
  exports.ToggleRealityTileBounds = ToggleRealityTileBounds;
113
- ToggleRealityTileBounds.toolId = "ToggleRealityTileBounds";
114
114
  /** Turn on display of reality tile preload debugging.
115
115
  * @beta
116
116
  */
117
117
  class ToggleRealityTilePreload extends RenderTargetDebugControlToggleTool {
118
+ static { this.toolId = "ToggleRealityTilePreload"; }
118
119
  get aspect() { return "displayRealityTilePreload"; }
119
120
  }
120
121
  exports.ToggleRealityTilePreload = ToggleRealityTilePreload;
121
- ToggleRealityTilePreload.toolId = "ToggleRealityTilePreload";
122
122
  /** Freeze loading of reality tiles.
123
123
  * @beta
124
124
  */
125
125
  class ToggleRealityTileFreeze extends RenderTargetDebugControlToggleTool {
126
+ static { this.toolId = "ToggleRealityTileFreeze"; }
126
127
  get aspect() { return "freezeRealityTiles"; }
127
128
  }
128
129
  exports.ToggleRealityTileFreeze = ToggleRealityTileFreeze;
129
- ToggleRealityTileFreeze.toolId = "ToggleRealityTileFreeze";
130
130
  /** Turn on logging of console tile selection and loading (to console).
131
131
  * @beta
132
132
  */
133
133
  class ToggleRealityTileLogging extends RenderTargetDebugControlToggleTool {
134
+ static { this.toolId = "ToggleRealityTileLogging"; }
134
135
  get aspect() { return "logRealityTiles"; }
135
136
  }
136
137
  exports.ToggleRealityTileLogging = ToggleRealityTileLogging;
137
- ToggleRealityTileLogging.toolId = "ToggleRealityTileLogging";
138
138
  /** Toggles support for intersecting volume classifiers.
139
139
  * @beta
140
140
  */
141
141
  class ToggleVolClassIntersect extends RenderTargetDebugControlToggleTool {
142
+ static { this.toolId = "ToggleVCIntersect"; }
142
143
  get aspect() { return "vcSupportIntersectingVolumes"; }
143
144
  }
144
145
  exports.ToggleVolClassIntersect = ToggleVolClassIntersect;
145
- ToggleVolClassIntersect.toolId = "ToggleVCIntersect";
146
146
  /** Set the number of antialiasing samples to use (<=1 for no antialiasing).
147
147
  * @beta
148
148
  */
@@ -152,6 +152,7 @@ class SetAASamplesTool extends RenderTargetDebugControlTool {
152
152
  this._aaSamples = 1;
153
153
  this._changeAll = false;
154
154
  }
155
+ static { this.toolId = "SetAASamples"; }
155
156
  static get minArgs() { return 1; }
156
157
  static get maxArgs() { return 2; }
157
158
  execute(_control, vp) {
@@ -171,13 +172,12 @@ class SetAASamplesTool extends RenderTargetDebugControlTool {
171
172
  }
172
173
  }
173
174
  exports.SetAASamplesTool = SetAASamplesTool;
174
- SetAASamplesTool.toolId = "SetAASamples";
175
175
  /** Toggles support for normal maps.
176
176
  * @beta
177
177
  */
178
178
  class ToggleNormalMaps extends RenderTargetDebugControlToggleTool {
179
+ static { this.toolId = "ToggleNormalMaps"; }
179
180
  get aspect() { return "displayNormalMaps"; }
180
181
  }
181
182
  exports.ToggleNormalMaps = ToggleNormalMaps;
182
- ToggleNormalMaps.toolId = "ToggleNormalMaps";
183
183
  //# sourceMappingURL=RenderTargetTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderTargetTools.js","sourceRoot":"","sources":["../../../src/tools/RenderTargetTools.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 { IModelApp, PrimitiveVisibility, RenderTargetDebugControl, ScreenViewport, Tool } from \"@itwin/core-frontend\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** Executes some code against a RenderTargetDebugControl obtained from the selected viewport.\n * @beta\n */\nexport abstract class RenderTargetDebugControlTool extends Tool {\n public override async run(_args: any[]): Promise<boolean> {\n const view = IModelApp.viewManager.selectedView;\n const control = undefined !== view ? view.target.debugControl : undefined;\n if (undefined !== control)\n this.execute(control, view!);\n\n return true;\n }\n\n protected abstract execute(_control: RenderTargetDebugControl, _vp: ScreenViewport): void;\n}\n\ntype DebugControlBoolean =\n \"displayDrapeFrustum\" | \"displayMaskFrustum\" | \"drawForReadPixels\" | \"displayRealityTileRanges\" | \"displayRealityTileRanges\" |\n \"displayRealityTilePreload\" | \"freezeRealityTiles\" | \"logRealityTiles\" | \"vcSupportIntersectingVolumes\" | \"displayNormalMaps\";\n\n/** Toggles some aspect of a RenderTargetDebugControl for the selected viewport.\n * @beta\n */\nexport abstract class RenderTargetDebugControlToggleTool extends RenderTargetDebugControlTool {\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _enable?: boolean;\n\n protected abstract get aspect(): DebugControlBoolean;\n\n protected execute(control: RenderTargetDebugControl, vp: ScreenViewport): void {\n const value = undefined !== this._enable ? this._enable : !control[this.aspect];\n control[this.aspect] = value;\n vp.invalidateRenderPlan();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\") {\n this._enable = enable;\n await this.run([]);\n }\n\n return true;\n }\n}\n\n/** Toggles between normal rendering and rendering as if drawing to an off-screen framebuffer for element locate. Useful for debugging locate issues.\n * @beta\n */\nexport class ToggleReadPixelsTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleReadPixels\";\n public get aspect(): DebugControlBoolean { return \"drawForReadPixels\"; }\n}\n\n/** Turn on the display of the draping frustum.\n * @beta\n */\nexport class ToggleDrapeFrustumTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleDrapeFrustum\";\n public get aspect(): DebugControlBoolean { return \"displayDrapeFrustum\"; }\n}\n\n/** Turn on the display of the planar mask frustum.\n * @beta\n */\nexport class ToggleMaskFrustumTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleMaskFrustum\";\n public get aspect(): DebugControlBoolean { return \"displayMaskFrustum\"; }\n}\n\n/** Control whether all geometry renders, or only instanced or batched geometry.\n * Allowed argument: \"instanced\", \"batched\", \"all\". Defaults to \"all\" if no arguments supplied.\n * @beta\n */\nexport class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool {\n public static override toolId = \"TogglePrimitiveVisibility\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _visibility = PrimitiveVisibility.All;\n\n public execute(control: RenderTargetDebugControl, vp: ScreenViewport): void {\n control.primitiveVisibility = this._visibility;\n vp.invalidateScene();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (0 < args.length) {\n switch (args[0].toLowerCase()) {\n case \"instanced\":\n this._visibility = PrimitiveVisibility.Instanced;\n break;\n case \"batched\":\n this._visibility = PrimitiveVisibility.Uninstanced;\n break;\n case \"all\":\n break;\n default:\n return true;\n }\n }\n\n return this.run(args);\n }\n}\n\n/** Turn on display of reality tile boundaries.\n * @beta\n */\nexport class ToggleRealityTileBounds extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileBounds\";\n public get aspect(): DebugControlBoolean { return \"displayRealityTileRanges\"; }\n}\n\n/** Turn on display of reality tile preload debugging.\n * @beta\n */\nexport class ToggleRealityTilePreload extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTilePreload\";\n public get aspect(): DebugControlBoolean { return \"displayRealityTilePreload\"; }\n}\n/** Freeze loading of reality tiles.\n * @beta\n */\nexport class ToggleRealityTileFreeze extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileFreeze\";\n public get aspect(): DebugControlBoolean { return \"freezeRealityTiles\"; }\n}\n\n/** Turn on logging of console tile selection and loading (to console).\n * @beta\n */\nexport class ToggleRealityTileLogging extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileLogging\";\n public get aspect(): DebugControlBoolean { return \"logRealityTiles\"; }\n}\n\n/** Toggles support for intersecting volume classifiers.\n * @beta\n */\nexport class ToggleVolClassIntersect extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleVCIntersect\";\n public get aspect(): DebugControlBoolean { return \"vcSupportIntersectingVolumes\"; }\n}\n\n/** Set the number of antialiasing samples to use (<=1 for no antialiasing).\n * @beta\n */\nexport class SetAASamplesTool extends RenderTargetDebugControlTool {\n public static override toolId = \"SetAASamples\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n private _aaSamples = 1;\n private _changeAll = false;\n\n public execute(_control: RenderTargetDebugControl, vp: ScreenViewport): void {\n if (this._changeAll)\n IModelApp.viewManager.setAntialiasingAllViews(this._aaSamples);\n else\n vp.antialiasSamples = this._aaSamples;\n }\n\n /** Runs this tool, setting the number of antialiasing samples to use (<=1 for no antialiasing).\n * @param args contains the arguments used by the tool's run method: args[0] contains the number of samples; optionally args[1] can contain the word \"all\" in order to set those number of samples for all viewports.\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (0 < args.length)\n this._aaSamples = parseInt(args[0], 10);\n this._changeAll = (1 < args.length && args[1].toLowerCase() === \"all\");\n\n return this.run(args);\n }\n}\n\n/** Toggles support for normal maps.\n * @beta\n */\nexport class ToggleNormalMaps extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleNormalMaps\";\n public get aspect(): DebugControlBoolean { return \"displayNormalMaps\"; }\n}\n"]}
1
+ {"version":3,"file":"RenderTargetTools.js","sourceRoot":"","sources":["../../../src/tools/RenderTargetTools.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 { IModelApp, PrimitiveVisibility, RenderTargetDebugControl, ScreenViewport, Tool } from \"@itwin/core-frontend\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** Executes some code against a RenderTargetDebugControl obtained from the selected viewport.\n * @beta\n */\nexport abstract class RenderTargetDebugControlTool extends Tool {\n public override async run(_args: any[]): Promise<boolean> {\n const view = IModelApp.viewManager.selectedView;\n const control = undefined !== view ? view.target.debugControl : undefined;\n if (undefined !== control)\n this.execute(control, view!);\n\n return true;\n }\n\n protected abstract execute(_control: RenderTargetDebugControl, _vp: ScreenViewport): void;\n}\n\ntype DebugControlBoolean =\n \"displayDrapeFrustum\" | \"displayMaskFrustum\" | \"drawForReadPixels\" | \"displayRealityTileRanges\" | \"displayRealityTileRanges\" |\n \"displayRealityTilePreload\" | \"freezeRealityTiles\" | \"logRealityTiles\" | \"vcSupportIntersectingVolumes\" | \"displayNormalMaps\";\n\n/** Toggles some aspect of a RenderTargetDebugControl for the selected viewport.\n * @beta\n */\nexport abstract class RenderTargetDebugControlToggleTool extends RenderTargetDebugControlTool {\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _enable?: boolean;\n\n protected abstract get aspect(): DebugControlBoolean;\n\n protected execute(control: RenderTargetDebugControl, vp: ScreenViewport): void {\n const value = undefined !== this._enable ? this._enable : !control[this.aspect];\n control[this.aspect] = value;\n vp.invalidateRenderPlan();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\") {\n this._enable = enable;\n await this.run([]);\n }\n\n return true;\n }\n}\n\n/** Toggles between normal rendering and rendering as if drawing to an off-screen framebuffer for element locate. Useful for debugging locate issues.\n * @beta\n */\nexport class ToggleReadPixelsTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleReadPixels\";\n public get aspect(): DebugControlBoolean { return \"drawForReadPixels\"; }\n}\n\n/** Turn on the display of the draping frustum.\n * @beta\n */\nexport class ToggleDrapeFrustumTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleDrapeFrustum\";\n public get aspect(): DebugControlBoolean { return \"displayDrapeFrustum\"; }\n}\n\n/** Turn on the display of the planar mask frustum.\n * @beta\n */\nexport class ToggleMaskFrustumTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleMaskFrustum\";\n public get aspect(): DebugControlBoolean { return \"displayMaskFrustum\"; }\n}\n\n/** Control whether all geometry renders, or only instanced or batched geometry.\n * Allowed argument: \"instanced\", \"batched\", \"all\". Defaults to \"all\" if no arguments supplied.\n * @beta\n */\nexport class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool {\n public static override toolId = \"TogglePrimitiveVisibility\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _visibility = PrimitiveVisibility.All;\n\n public execute(control: RenderTargetDebugControl, vp: ScreenViewport): void {\n control.primitiveVisibility = this._visibility;\n vp.invalidateScene();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (0 < args.length) {\n switch (args[0].toLowerCase()) {\n case \"instanced\":\n this._visibility = PrimitiveVisibility.Instanced;\n break;\n case \"batched\":\n this._visibility = PrimitiveVisibility.Uninstanced;\n break;\n case \"all\":\n break;\n default:\n return true;\n }\n }\n\n return this.run(args);\n }\n}\n\n/** Turn on display of reality tile boundaries.\n * @beta\n */\nexport class ToggleRealityTileBounds extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileBounds\";\n public get aspect(): DebugControlBoolean { return \"displayRealityTileRanges\"; }\n}\n\n/** Turn on display of reality tile preload debugging.\n * @beta\n */\nexport class ToggleRealityTilePreload extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTilePreload\";\n public get aspect(): DebugControlBoolean { return \"displayRealityTilePreload\"; }\n}\n/** Freeze loading of reality tiles.\n * @beta\n */\nexport class ToggleRealityTileFreeze extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileFreeze\";\n public get aspect(): DebugControlBoolean { return \"freezeRealityTiles\"; }\n}\n\n/** Turn on logging of console tile selection and loading (to console).\n * @beta\n */\nexport class ToggleRealityTileLogging extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileLogging\";\n public get aspect(): DebugControlBoolean { return \"logRealityTiles\"; }\n}\n\n/** Toggles support for intersecting volume classifiers.\n * @beta\n */\nexport class ToggleVolClassIntersect extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleVCIntersect\";\n public get aspect(): DebugControlBoolean { return \"vcSupportIntersectingVolumes\"; }\n}\n\n/** Set the number of antialiasing samples to use (<=1 for no antialiasing).\n * @beta\n */\nexport class SetAASamplesTool extends RenderTargetDebugControlTool {\n public static override toolId = \"SetAASamples\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n private _aaSamples = 1;\n private _changeAll = false;\n\n public execute(_control: RenderTargetDebugControl, vp: ScreenViewport): void {\n if (this._changeAll)\n IModelApp.viewManager.setAntialiasingAllViews(this._aaSamples);\n else\n vp.antialiasSamples = this._aaSamples;\n }\n\n /** Runs this tool, setting the number of antialiasing samples to use (<=1 for no antialiasing).\n * @param args contains the arguments used by the tool's run method: args[0] contains the number of samples; optionally args[1] can contain the word \"all\" in order to set those number of samples for all viewports.\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (0 < args.length)\n this._aaSamples = parseInt(args[0], 10);\n this._changeAll = (1 < args.length && args[1].toLowerCase() === \"all\");\n\n return this.run(args);\n }\n}\n\n/** Toggles support for normal maps.\n * @beta\n */\nexport class ToggleNormalMaps extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleNormalMaps\";\n public get aspect(): DebugControlBoolean { return \"displayNormalMaps\"; }\n}\n"]}
@@ -13,6 +13,7 @@ const core_frontend_1 = require("@itwin/core-frontend");
13
13
  * @beta
14
14
  */
15
15
  class ReportWebGLCompatibilityTool extends core_frontend_1.Tool {
16
+ static { this.toolId = "ReportWebGLCompatibility"; }
16
17
  async run(_args) {
17
18
  const info = core_frontend_1.IModelApp.queryRenderCompatibility();
18
19
  const statuses = ["OK", "Missing Optional Features", "Major Performance Caveat", "Missing Required Features", "Failed to Create Context"];
@@ -27,5 +28,4 @@ class ReportWebGLCompatibilityTool extends core_frontend_1.Tool {
27
28
  }
28
29
  }
29
30
  exports.ReportWebGLCompatibilityTool = ReportWebGLCompatibilityTool;
30
- ReportWebGLCompatibilityTool.toolId = "ReportWebGLCompatibility";
31
31
  //# sourceMappingURL=ReportWebGLCompatibilityTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReportWebGLCompatibilityTool.js","sourceRoot":"","sources":["../../../src/tools/ReportWebGLCompatibilityTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,wDAA2F;AAE3F;;GAEG;AACH,MAAa,4BAA6B,SAAQ,oBAAI;IAEpC,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,IAAI,GAAG,yBAAS,CAAC,wBAAwB,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,0BAA0B,CAAC,CAAC;QAC1I,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAuB;QAEnE,MAAM,GAAG,GAAG,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/C,MAAM,yBAAS,CAAC,aAAa,CAAC,cAAc,CAAC,8BAAc,CAAC,EAAE,EAAE,IAAI,EAAE,kCAAkB,CAAC,WAAW,CAAC,CAAC;QACtG,OAAO,IAAI,CAAC;IACd,CAAC;;AAfH,oEAgBC;AAfwB,mCAAM,GAAG,0BAA0B,CAAC","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 { IModelApp, MessageBoxIconType, MessageBoxType, Tool } from \"@itwin/core-frontend\";\n\n/** Queries the client's level of compatibility with the rendering system and outputs it to NotificationManager.\n * @beta\n */\nexport class ReportWebGLCompatibilityTool extends Tool {\n public static override toolId = \"ReportWebGLCompatibility\";\n public override async run(_args: any[]): Promise<boolean> {\n const info = IModelApp.queryRenderCompatibility();\n const statuses = [\"OK\", \"Missing Optional Features\", \"Major Performance Caveat\", \"Missing Required Features\", \"Failed to Create Context\"];\n const status = info.status < statuses.length ? statuses[info.status] : \"UNKNOWN\";\n const json = JSON.stringify(info, null, 2); // prettify JSON output\n\n const msg = `Compatibility: ${status}\\n${json}`;\n const html = document.createElement(\"div\");\n html.style.whiteSpace = \"pre-wrap\";\n html.appendChild(document.createTextNode(msg));\n\n await IModelApp.notifications.openMessageBox(MessageBoxType.Ok, html, MessageBoxIconType.Information);\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"ReportWebGLCompatibilityTool.js","sourceRoot":"","sources":["../../../src/tools/ReportWebGLCompatibilityTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,wDAA2F;AAE3F;;GAEG;AACH,MAAa,4BAA6B,SAAQ,oBAAI;aAC7B,WAAM,GAAG,0BAA0B,CAAC;IAC3C,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,IAAI,GAAG,yBAAS,CAAC,wBAAwB,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,0BAA0B,CAAC,CAAC;QAC1I,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAuB;QAEnE,MAAM,GAAG,GAAG,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/C,MAAM,yBAAS,CAAC,aAAa,CAAC,cAAc,CAAC,8BAAc,CAAC,EAAE,EAAE,IAAI,EAAE,kCAAkB,CAAC,WAAW,CAAC,CAAC;QACtG,OAAO,IAAI,CAAC;IACd,CAAC;;AAfH,oEAgBC","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 { IModelApp, MessageBoxIconType, MessageBoxType, Tool } from \"@itwin/core-frontend\";\n\n/** Queries the client's level of compatibility with the rendering system and outputs it to NotificationManager.\n * @beta\n */\nexport class ReportWebGLCompatibilityTool extends Tool {\n public static override toolId = \"ReportWebGLCompatibility\";\n public override async run(_args: any[]): Promise<boolean> {\n const info = IModelApp.queryRenderCompatibility();\n const statuses = [\"OK\", \"Missing Optional Features\", \"Major Performance Caveat\", \"Missing Required Features\", \"Failed to Create Context\"];\n const status = info.status < statuses.length ? statuses[info.status] : \"UNKNOWN\";\n const json = JSON.stringify(info, null, 2); // prettify JSON output\n\n const msg = `Compatibility: ${status}\\n${json}`;\n const html = document.createElement(\"div\");\n html.style.whiteSpace = \"pre-wrap\";\n html.appendChild(document.createTextNode(msg));\n\n await IModelApp.notifications.openMessageBox(MessageBoxType.Ok, html, MessageBoxIconType.Information);\n return true;\n }\n}\n"]}
@@ -45,6 +45,7 @@ class SaveViewTool extends core_frontend_1.Tool {
45
45
  }
46
46
  static get minArgs() { return 0; }
47
47
  static get maxArgs() { return 1; }
48
+ static { this.toolId = "SaveView"; }
48
49
  parse(inputArgs) {
49
50
  const args = (0, parseArgs_1.parseArgs)(inputArgs);
50
51
  function getArg(name) {
@@ -79,13 +80,13 @@ class SaveViewTool extends core_frontend_1.Tool {
79
80
  }
80
81
  }
81
82
  exports.SaveViewTool = SaveViewTool;
82
- SaveViewTool.toolId = "SaveView";
83
83
  /** Given a string containing a JSON representation of a ViewState, applies that ViewState to the active viewport.
84
84
  * The JSON string should be enclosed in double quotes and embedded double quote should be duplicated, example:
85
85
  * - "{""viewDefinitionProps"":{""classFullName"":""BisCore:SpatialViewDefinition"",""id"":""0x1a""}}"
86
86
  * @beta
87
87
  */
88
88
  class ApplyViewTool extends core_frontend_1.Tool {
89
+ static { this.toolId = "ApplyView"; }
89
90
  static get maxArgs() { return 1; }
90
91
  static get minArgs() { return 1; }
91
92
  async run(view) {
@@ -110,11 +111,11 @@ class ApplyViewTool extends core_frontend_1.Tool {
110
111
  }
111
112
  }
112
113
  exports.ApplyViewTool = ApplyViewTool;
113
- ApplyViewTool.toolId = "ApplyView";
114
114
  /** Given the Id of a persistent ViewDefinition, applies that view to the active viewport.
115
115
  * @beta
116
116
  */
117
117
  class ApplyViewByIdTool extends core_frontend_1.Tool {
118
+ static { this.toolId = "ApplyViewById"; }
118
119
  static get minArgs() { return 1; }
119
120
  static get maxArgs() { return 1; }
120
121
  async parseAndRun(...args) {
@@ -133,5 +134,4 @@ class ApplyViewByIdTool extends core_frontend_1.Tool {
133
134
  }
134
135
  }
135
136
  exports.ApplyViewByIdTool = ApplyViewByIdTool;
136
- ApplyViewByIdTool.toolId = "ApplyViewById";
137
137
  //# sourceMappingURL=SavedViews.js.map