@itwin/frontend-devtools 5.0.0-dev.6 → 5.0.0-dev.62

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 (259) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/lib/cjs/ClipboardUtilities.js.map +1 -1
  3. package/lib/cjs/FrontEndDevTools.js +1 -1
  4. package/lib/cjs/FrontEndDevTools.js.map +1 -1
  5. package/lib/cjs/effects/Convolution.js +23 -23
  6. package/lib/cjs/effects/Convolution.js.map +1 -1
  7. package/lib/cjs/effects/EffectTools.js +2 -2
  8. package/lib/cjs/effects/EffectTools.js.map +1 -1
  9. package/lib/cjs/effects/Explosion.js +37 -25
  10. package/lib/cjs/effects/Explosion.js.map +1 -1
  11. package/lib/cjs/effects/FlipImage.js +22 -22
  12. package/lib/cjs/effects/FlipImage.js.map +1 -1
  13. package/lib/cjs/effects/LensDistortion.js +25 -25
  14. package/lib/cjs/effects/LensDistortion.js.map +1 -1
  15. package/lib/cjs/effects/Random.js.map +1 -1
  16. package/lib/cjs/effects/Saturation.js +30 -30
  17. package/lib/cjs/effects/Saturation.js.map +1 -1
  18. package/lib/cjs/effects/Snow.d.ts +1 -1
  19. package/lib/cjs/effects/Snow.d.ts.map +1 -1
  20. package/lib/cjs/effects/Snow.js +19 -8
  21. package/lib/cjs/effects/Snow.js.map +1 -1
  22. package/lib/cjs/effects/Vignette.js +41 -41
  23. package/lib/cjs/effects/Vignette.js.map +1 -1
  24. package/lib/cjs/frontend-devtools.js.map +1 -1
  25. package/lib/cjs/tools/AnimationIntervalTool.js +1 -1
  26. package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
  27. package/lib/cjs/tools/ChangeUnitsTool.js +1 -1
  28. package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
  29. package/lib/cjs/tools/ClipTools.js +6 -8
  30. package/lib/cjs/tools/ClipTools.js.map +1 -1
  31. package/lib/cjs/tools/DisplayStyleTools.js +21 -25
  32. package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
  33. package/lib/cjs/tools/EmphasizeElementsTool.js +7 -13
  34. package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
  35. package/lib/cjs/tools/FrustumDecoration.js +28 -9
  36. package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
  37. package/lib/cjs/tools/InspectElementTool.js +7 -6
  38. package/lib/cjs/tools/InspectElementTool.js.map +1 -1
  39. package/lib/cjs/tools/MapLayerTool.js +24 -20
  40. package/lib/cjs/tools/MapLayerTool.js.map +1 -1
  41. package/lib/cjs/tools/MeasureTileLoadTime.js +4 -1
  42. package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
  43. package/lib/cjs/tools/ModelAppearanceTools.js +9 -9
  44. package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
  45. package/lib/cjs/tools/PlanProjectionTools.js +8 -15
  46. package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
  47. package/lib/cjs/tools/PlanarMaskTools.js +21 -26
  48. package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
  49. package/lib/cjs/tools/ProjectExtents.js +6 -3
  50. package/lib/cjs/tools/ProjectExtents.js.map +1 -1
  51. package/lib/cjs/tools/RealityModelTools.js +10 -10
  52. package/lib/cjs/tools/RealityModelTools.js.map +1 -1
  53. package/lib/cjs/tools/RealityTransitionTool.js +1 -1
  54. package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
  55. package/lib/cjs/tools/RenderSystemTools.js +4 -3
  56. package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
  57. package/lib/cjs/tools/RenderTargetTools.d.ts +1 -1
  58. package/lib/cjs/tools/RenderTargetTools.d.ts.map +1 -1
  59. package/lib/cjs/tools/RenderTargetTools.js +15 -20
  60. package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
  61. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +1 -1
  62. package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  63. package/lib/cjs/tools/SavedViews.js +4 -7
  64. package/lib/cjs/tools/SavedViews.js.map +1 -1
  65. package/lib/cjs/tools/ScheduleScriptTools.d.ts.map +1 -1
  66. package/lib/cjs/tools/ScheduleScriptTools.js +11 -12
  67. package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
  68. package/lib/cjs/tools/SelectionTools.js +4 -6
  69. package/lib/cjs/tools/SelectionTools.js.map +1 -1
  70. package/lib/cjs/tools/SetGpuMemoryLimitTool.js +1 -1
  71. package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
  72. package/lib/cjs/tools/SourceAspectIdTools.js +2 -2
  73. package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
  74. package/lib/cjs/tools/TileRequestDecoration.js +6 -3
  75. package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
  76. package/lib/cjs/tools/TileTreeBoundsDecoration.d.ts.map +1 -1
  77. package/lib/cjs/tools/TileTreeBoundsDecoration.js +8 -4
  78. package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
  79. package/lib/cjs/tools/ToolTipProvider.js +2 -1
  80. package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
  81. package/lib/cjs/tools/ViewportTools.js +22 -19
  82. package/lib/cjs/tools/ViewportTools.js.map +1 -1
  83. package/lib/cjs/tools/parseArgs.js.map +1 -1
  84. package/lib/cjs/tools/parseBoolean.js.map +1 -1
  85. package/lib/cjs/tools/parseToggle.js.map +1 -1
  86. package/lib/cjs/ui/Button.js.map +1 -1
  87. package/lib/cjs/ui/CheckBox.js.map +1 -1
  88. package/lib/cjs/ui/ColorInput.js.map +1 -1
  89. package/lib/cjs/ui/ComboBox.js.map +1 -1
  90. package/lib/cjs/ui/DataList.js.map +1 -1
  91. package/lib/cjs/ui/NestedMenu.js.map +1 -1
  92. package/lib/cjs/ui/NumericInput.js.map +1 -1
  93. package/lib/cjs/ui/RadioBox.js.map +1 -1
  94. package/lib/cjs/ui/Slider.js.map +1 -1
  95. package/lib/cjs/ui/TextBox.js.map +1 -1
  96. package/lib/cjs/widgets/DiagnosticsPanel.d.ts +1 -1
  97. package/lib/cjs/widgets/DiagnosticsPanel.d.ts.map +1 -1
  98. package/lib/cjs/widgets/DiagnosticsPanel.js +11 -1
  99. package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
  100. package/lib/cjs/widgets/FpsTracker.d.ts +1 -1
  101. package/lib/cjs/widgets/FpsTracker.d.ts.map +1 -1
  102. package/lib/cjs/widgets/FpsTracker.js +5 -1
  103. package/lib/cjs/widgets/FpsTracker.js.map +1 -1
  104. package/lib/cjs/widgets/GpuProfiler.d.ts +1 -1
  105. package/lib/cjs/widgets/GpuProfiler.d.ts.map +1 -1
  106. package/lib/cjs/widgets/GpuProfiler.js +89 -82
  107. package/lib/cjs/widgets/GpuProfiler.js.map +1 -1
  108. package/lib/cjs/widgets/KeyinField.js +8 -1
  109. package/lib/cjs/widgets/KeyinField.js.map +1 -1
  110. package/lib/cjs/widgets/MemoryTracker.d.ts +1 -1
  111. package/lib/cjs/widgets/MemoryTracker.d.ts.map +1 -1
  112. package/lib/cjs/widgets/MemoryTracker.js +16 -4
  113. package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
  114. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +1 -1
  115. package/lib/cjs/widgets/RenderCommandBreakdown.d.ts.map +1 -1
  116. package/lib/cjs/widgets/RenderCommandBreakdown.js +6 -2
  117. package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
  118. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts +1 -1
  119. package/lib/cjs/widgets/TileMemoryBreakdown.d.ts.map +1 -1
  120. package/lib/cjs/widgets/TileMemoryBreakdown.js +10 -8
  121. package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
  122. package/lib/cjs/widgets/TileStatisticsTracker.d.ts +1 -1
  123. package/lib/cjs/widgets/TileStatisticsTracker.d.ts.map +1 -1
  124. package/lib/cjs/widgets/TileStatisticsTracker.js +5 -2
  125. package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
  126. package/lib/cjs/widgets/ToolSettingsTracker.d.ts +1 -1
  127. package/lib/cjs/widgets/ToolSettingsTracker.d.ts.map +1 -1
  128. package/lib/cjs/widgets/ToolSettingsTracker.js +2 -2
  129. package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
  130. package/lib/esm/ClipboardUtilities.js.map +1 -1
  131. package/lib/esm/FrontEndDevTools.js +1 -1
  132. package/lib/esm/FrontEndDevTools.js.map +1 -1
  133. package/lib/esm/effects/Convolution.js +23 -23
  134. package/lib/esm/effects/Convolution.js.map +1 -1
  135. package/lib/esm/effects/EffectTools.js +2 -2
  136. package/lib/esm/effects/EffectTools.js.map +1 -1
  137. package/lib/esm/effects/Explosion.js +37 -25
  138. package/lib/esm/effects/Explosion.js.map +1 -1
  139. package/lib/esm/effects/FlipImage.js +22 -22
  140. package/lib/esm/effects/FlipImage.js.map +1 -1
  141. package/lib/esm/effects/LensDistortion.js +25 -25
  142. package/lib/esm/effects/LensDistortion.js.map +1 -1
  143. package/lib/esm/effects/Random.js.map +1 -1
  144. package/lib/esm/effects/Saturation.js +30 -30
  145. package/lib/esm/effects/Saturation.js.map +1 -1
  146. package/lib/esm/effects/Snow.d.ts +1 -1
  147. package/lib/esm/effects/Snow.d.ts.map +1 -1
  148. package/lib/esm/effects/Snow.js +19 -8
  149. package/lib/esm/effects/Snow.js.map +1 -1
  150. package/lib/esm/effects/Vignette.js +41 -41
  151. package/lib/esm/effects/Vignette.js.map +1 -1
  152. package/lib/esm/frontend-devtools.js.map +1 -1
  153. package/lib/esm/tools/AnimationIntervalTool.js +1 -1
  154. package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
  155. package/lib/esm/tools/ChangeUnitsTool.js +1 -1
  156. package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
  157. package/lib/esm/tools/ClipTools.js +6 -8
  158. package/lib/esm/tools/ClipTools.js.map +1 -1
  159. package/lib/esm/tools/DisplayStyleTools.js +21 -25
  160. package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
  161. package/lib/esm/tools/EmphasizeElementsTool.js +7 -13
  162. package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
  163. package/lib/esm/tools/FrustumDecoration.js +28 -9
  164. package/lib/esm/tools/FrustumDecoration.js.map +1 -1
  165. package/lib/esm/tools/InspectElementTool.js +7 -6
  166. package/lib/esm/tools/InspectElementTool.js.map +1 -1
  167. package/lib/esm/tools/MapLayerTool.js +24 -20
  168. package/lib/esm/tools/MapLayerTool.js.map +1 -1
  169. package/lib/esm/tools/MeasureTileLoadTime.js +4 -1
  170. package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
  171. package/lib/esm/tools/ModelAppearanceTools.js +9 -9
  172. package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
  173. package/lib/esm/tools/PlanProjectionTools.js +8 -15
  174. package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
  175. package/lib/esm/tools/PlanarMaskTools.js +21 -26
  176. package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
  177. package/lib/esm/tools/ProjectExtents.js +6 -3
  178. package/lib/esm/tools/ProjectExtents.js.map +1 -1
  179. package/lib/esm/tools/RealityModelTools.js +10 -10
  180. package/lib/esm/tools/RealityModelTools.js.map +1 -1
  181. package/lib/esm/tools/RealityTransitionTool.js +1 -1
  182. package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
  183. package/lib/esm/tools/RenderSystemTools.js +4 -3
  184. package/lib/esm/tools/RenderSystemTools.js.map +1 -1
  185. package/lib/esm/tools/RenderTargetTools.d.ts +1 -1
  186. package/lib/esm/tools/RenderTargetTools.d.ts.map +1 -1
  187. package/lib/esm/tools/RenderTargetTools.js +15 -20
  188. package/lib/esm/tools/RenderTargetTools.js.map +1 -1
  189. package/lib/esm/tools/ReportWebGLCompatibilityTool.js +1 -1
  190. package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
  191. package/lib/esm/tools/SavedViews.js +4 -7
  192. package/lib/esm/tools/SavedViews.js.map +1 -1
  193. package/lib/esm/tools/ScheduleScriptTools.d.ts.map +1 -1
  194. package/lib/esm/tools/ScheduleScriptTools.js +11 -12
  195. package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
  196. package/lib/esm/tools/SelectionTools.js +4 -6
  197. package/lib/esm/tools/SelectionTools.js.map +1 -1
  198. package/lib/esm/tools/SetGpuMemoryLimitTool.js +1 -1
  199. package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
  200. package/lib/esm/tools/SourceAspectIdTools.js +2 -2
  201. package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
  202. package/lib/esm/tools/TileRequestDecoration.js +6 -3
  203. package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
  204. package/lib/esm/tools/TileTreeBoundsDecoration.d.ts.map +1 -1
  205. package/lib/esm/tools/TileTreeBoundsDecoration.js +8 -4
  206. package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
  207. package/lib/esm/tools/ToolTipProvider.js +2 -1
  208. package/lib/esm/tools/ToolTipProvider.js.map +1 -1
  209. package/lib/esm/tools/ViewportTools.js +22 -19
  210. package/lib/esm/tools/ViewportTools.js.map +1 -1
  211. package/lib/esm/tools/parseArgs.js.map +1 -1
  212. package/lib/esm/tools/parseBoolean.js.map +1 -1
  213. package/lib/esm/tools/parseToggle.js.map +1 -1
  214. package/lib/esm/ui/Button.js.map +1 -1
  215. package/lib/esm/ui/CheckBox.js.map +1 -1
  216. package/lib/esm/ui/ColorInput.js.map +1 -1
  217. package/lib/esm/ui/ComboBox.js.map +1 -1
  218. package/lib/esm/ui/DataList.js.map +1 -1
  219. package/lib/esm/ui/NestedMenu.js.map +1 -1
  220. package/lib/esm/ui/NumericInput.js.map +1 -1
  221. package/lib/esm/ui/RadioBox.js.map +1 -1
  222. package/lib/esm/ui/Slider.js.map +1 -1
  223. package/lib/esm/ui/TextBox.js.map +1 -1
  224. package/lib/esm/widgets/DiagnosticsPanel.d.ts +1 -1
  225. package/lib/esm/widgets/DiagnosticsPanel.d.ts.map +1 -1
  226. package/lib/esm/widgets/DiagnosticsPanel.js +11 -1
  227. package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
  228. package/lib/esm/widgets/FpsTracker.d.ts +1 -1
  229. package/lib/esm/widgets/FpsTracker.d.ts.map +1 -1
  230. package/lib/esm/widgets/FpsTracker.js +5 -1
  231. package/lib/esm/widgets/FpsTracker.js.map +1 -1
  232. package/lib/esm/widgets/GpuProfiler.d.ts +1 -1
  233. package/lib/esm/widgets/GpuProfiler.d.ts.map +1 -1
  234. package/lib/esm/widgets/GpuProfiler.js +89 -82
  235. package/lib/esm/widgets/GpuProfiler.js.map +1 -1
  236. package/lib/esm/widgets/KeyinField.js +8 -1
  237. package/lib/esm/widgets/KeyinField.js.map +1 -1
  238. package/lib/esm/widgets/MemoryTracker.d.ts +1 -1
  239. package/lib/esm/widgets/MemoryTracker.d.ts.map +1 -1
  240. package/lib/esm/widgets/MemoryTracker.js +16 -4
  241. package/lib/esm/widgets/MemoryTracker.js.map +1 -1
  242. package/lib/esm/widgets/RenderCommandBreakdown.d.ts +1 -1
  243. package/lib/esm/widgets/RenderCommandBreakdown.d.ts.map +1 -1
  244. package/lib/esm/widgets/RenderCommandBreakdown.js +6 -2
  245. package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
  246. package/lib/esm/widgets/TileMemoryBreakdown.d.ts +1 -1
  247. package/lib/esm/widgets/TileMemoryBreakdown.d.ts.map +1 -1
  248. package/lib/esm/widgets/TileMemoryBreakdown.js +10 -8
  249. package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
  250. package/lib/esm/widgets/TileStatisticsTracker.d.ts +1 -1
  251. package/lib/esm/widgets/TileStatisticsTracker.d.ts.map +1 -1
  252. package/lib/esm/widgets/TileStatisticsTracker.js +5 -2
  253. package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
  254. package/lib/esm/widgets/ToolSettingsTracker.d.ts +1 -1
  255. package/lib/esm/widgets/ToolSettingsTracker.d.ts.map +1 -1
  256. package/lib/esm/widgets/ToolSettingsTracker.js +2 -2
  257. package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
  258. package/lib/public/locales/en/FrontendDevTools.json +494 -494
  259. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectExtents.js","sourceRoot":"","sources":["../../../src/tools/ProjectExtents.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { AxisAlignedBox3d, ColorDef, LinePixels } from \"@itwin/core-common\";\r\nimport { DecorateContext, GraphicType, IModelApp, IModelConnection, Tool } from \"@itwin/core-frontend\";\r\nimport { parseToggle } from \"./parseToggle\";\r\n\r\n/** @beta */\r\nexport class ProjectExtentsDecoration {\r\n private static _decorator?: ProjectExtentsDecoration;\r\n protected _removeDecorationListener?: () => void;\r\n protected _extents: AxisAlignedBox3d;\r\n\r\n public constructor(iModel: IModelConnection) {\r\n this._extents = iModel.projectExtents;\r\n this.updateDecorationListener(true);\r\n }\r\n\r\n protected stop(): void { this.updateDecorationListener(false); }\r\n\r\n protected updateDecorationListener(add: boolean): void {\r\n if (this._removeDecorationListener) {\r\n if (!add) {\r\n this._removeDecorationListener();\r\n this._removeDecorationListener = undefined;\r\n }\r\n } else if (add) {\r\n if (!this._removeDecorationListener)\r\n this._removeDecorationListener = IModelApp.viewManager.addDecorator(this);\r\n }\r\n }\r\n\r\n public static get isActive(): boolean {\r\n return undefined !== ProjectExtentsDecoration._decorator;\r\n }\r\n\r\n /** This will allow the render system to cache and reuse the decorations created by this decorator's decorate() method. */\r\n public readonly useCachedDecorations = true;\r\n\r\n public decorate(context: DecorateContext): void {\r\n const vp = context.viewport;\r\n if (!vp.view.isSpatialView())\r\n return;\r\n\r\n const builderAccVis = context.createGraphicBuilder(GraphicType.WorldDecoration);\r\n const builderAccHid = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const colorAccVis = ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);\r\n const colorAccHid = colorAccVis.withAlpha(100);\r\n\r\n builderAccVis.setSymbology(colorAccVis, ColorDef.black, 3);\r\n builderAccHid.setSymbology(colorAccHid, ColorDef.black, 1, LinePixels.Code2);\r\n\r\n builderAccVis.addRangeBox(this._extents);\r\n builderAccHid.addRangeBox(this._extents);\r\n\r\n context.addDecorationFromBuilder(builderAccVis);\r\n context.addDecorationFromBuilder(builderAccHid);\r\n }\r\n\r\n // Returns true if extents become enabled.\r\n public static toggle(imodel: IModelConnection, enabled?: boolean): boolean {\r\n if (undefined !== enabled) {\r\n const alreadyEnabled = undefined !== ProjectExtentsDecoration._decorator;\r\n if (enabled === alreadyEnabled)\r\n return alreadyEnabled;\r\n }\r\n\r\n if (undefined === ProjectExtentsDecoration._decorator) {\r\n ProjectExtentsDecoration._decorator = new ProjectExtentsDecoration(imodel);\r\n return true;\r\n } else {\r\n ProjectExtentsDecoration._decorator.stop();\r\n ProjectExtentsDecoration._decorator = undefined;\r\n return false;\r\n }\r\n }\r\n}\r\n\r\n/** Enable or disable the project extents decoration. This decoration draws a box coinciding with the iModel's project extents.\r\n * @param imodel The iModel from which to obtain the extents.\r\n * @param enable If undefined, the current enabled state of the decoration will be inverted; otherwise it will be enabled if true, or disabled if false.\r\n * @returns true if the extents are now ON, false if they are now OFF.\r\n * @beta\r\n */\r\nexport function toggleProjectExtents(imodel: IModelConnection, enabled?: boolean): boolean {\r\n return ProjectExtentsDecoration.toggle(imodel, enabled);\r\n}\r\n\r\n/** Enable or disable project extents decoration.\r\n * The key-in takes at most 1 argument (case-insensitive):\r\n * - \"ON\" => enable project extents\r\n * - \"OFF\" => disable project extents\r\n * - \"TOGGLE\" or omitted => toggle project extents\r\n * @see [toggleProjectExtents]\r\n * @beta\r\n */\r\nexport class ToggleProjectExtentsTool extends Tool {\r\n public static override toolId = \"ToggleProjectExtents\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override async run(enable?: boolean): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && vp.view.isSpatialView()) {\r\n const iModel = vp.iModel;\r\n if (toggleProjectExtents(iModel, enable))\r\n vp.onChangeView.addOnce(() => toggleProjectExtents(iModel, false));\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable !== \"string\")\r\n await this.run(enable);\r\n\r\n return true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ProjectExtents.js","sourceRoot":"","sources":["../../../src/tools/ProjectExtents.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 { AxisAlignedBox3d, ColorDef, LinePixels } from \"@itwin/core-common\";\nimport { DecorateContext, GraphicType, IModelApp, IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** @beta */\nexport class ProjectExtentsDecoration {\n private static _decorator?: ProjectExtentsDecoration;\n protected _removeDecorationListener?: () => void;\n protected _extents: AxisAlignedBox3d;\n\n public constructor(iModel: IModelConnection) {\n this._extents = iModel.projectExtents;\n this.updateDecorationListener(true);\n }\n\n protected stop(): void { this.updateDecorationListener(false); }\n\n protected updateDecorationListener(add: boolean): void {\n if (this._removeDecorationListener) {\n if (!add) {\n this._removeDecorationListener();\n this._removeDecorationListener = undefined;\n }\n } else if (add) {\n if (!this._removeDecorationListener)\n this._removeDecorationListener = IModelApp.viewManager.addDecorator(this);\n }\n }\n\n public static get isActive(): boolean {\n return undefined !== ProjectExtentsDecoration._decorator;\n }\n\n /** This will allow the render system to cache and reuse the decorations created by this decorator's decorate() method. */\n public readonly useCachedDecorations = true;\n\n public decorate(context: DecorateContext): void {\n const vp = context.viewport;\n if (!vp.view.isSpatialView())\n return;\n\n const builderAccVis = context.createGraphicBuilder(GraphicType.WorldDecoration);\n const builderAccHid = context.createGraphicBuilder(GraphicType.WorldOverlay);\n const colorAccVis = ColorDef.white.adjustedForContrast(context.viewport.view.backgroundColor);\n const colorAccHid = colorAccVis.withAlpha(100);\n\n builderAccVis.setSymbology(colorAccVis, ColorDef.black, 3);\n builderAccHid.setSymbology(colorAccHid, ColorDef.black, 1, LinePixels.Code2);\n\n builderAccVis.addRangeBox(this._extents);\n builderAccHid.addRangeBox(this._extents);\n\n context.addDecorationFromBuilder(builderAccVis);\n context.addDecorationFromBuilder(builderAccHid);\n }\n\n // Returns true if extents become enabled.\n public static toggle(imodel: IModelConnection, enabled?: boolean): boolean {\n if (undefined !== enabled) {\n const alreadyEnabled = undefined !== ProjectExtentsDecoration._decorator;\n if (enabled === alreadyEnabled)\n return alreadyEnabled;\n }\n\n if (undefined === ProjectExtentsDecoration._decorator) {\n ProjectExtentsDecoration._decorator = new ProjectExtentsDecoration(imodel);\n return true;\n } else {\n ProjectExtentsDecoration._decorator.stop();\n ProjectExtentsDecoration._decorator = undefined;\n return false;\n }\n }\n}\n\n/** Enable or disable the project extents decoration. This decoration draws a box coinciding with the iModel's project extents.\n * @param imodel The iModel from which to obtain the extents.\n * @param enable If undefined, the current enabled state of the decoration will be inverted; otherwise it will be enabled if true, or disabled if false.\n * @returns true if the extents are now ON, false if they are now OFF.\n * @beta\n */\nexport function toggleProjectExtents(imodel: IModelConnection, enabled?: boolean): boolean {\n return ProjectExtentsDecoration.toggle(imodel, enabled);\n}\n\n/** Enable or disable project extents decoration.\n * The key-in takes at most 1 argument (case-insensitive):\n * - \"ON\" => enable project extents\n * - \"OFF\" => disable project extents\n * - \"TOGGLE\" or omitted => toggle project extents\n * @see [toggleProjectExtents]\n * @beta\n */\nexport class ToggleProjectExtentsTool extends Tool {\n public static override toolId = \"ToggleProjectExtents\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n public override async run(enable?: boolean): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== vp && vp.view.isSpatialView()) {\n const iModel = vp.iModel;\n if (toggleProjectExtents(iModel, enable))\n vp.onChangeView.addOnce(() => toggleProjectExtents(iModel, false));\n }\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\")\n await this.run(enable);\n\n return true;\n }\n}\n"]}
@@ -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 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 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 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 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 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 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 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 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 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 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":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { FeatureAppearance, FeatureAppearanceProps, RgbColorProps } from \"@itwin/core-common\";\r\nimport { getCesiumAssetUrl, IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport } from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseBoolean } from \"./parseBoolean\";\r\nimport { parseToggle } from \"./parseToggle\";\r\n\r\n/** This tool attaches a specified reality model.\r\n * @beta\r\n */\r\nexport class AttachRealityModelTool extends Tool {\r\n public static override toolId = \"AttachRealityModelTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n /** This method runs the tool, attaching a specified reality model.\r\n * @param data a [[ContextRealityModelProps]] JSON representation\r\n */\r\n public override async run(data: string): Promise<boolean> {\r\n const props = JSON.parse(data);\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n\r\n if (props === undefined || props.tilesetUrl === undefined) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, `Properties ${props} are not valid`));\r\n }\r\n\r\n vp.displayStyle.attachRealityModel(props);\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Reality Model ${props.tilesetUrl} attached`));\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `data`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(args[0]);\r\n }\r\n}\r\n\r\n/** This tool saves a reality model's JSON representation to the system clipboard.\r\n * @beta */\r\nexport class SaveRealityModelTool extends Tool {\r\n public static override toolId = \"SaveRealityModelTool\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n /** This method runs the tool, saving a reality model's JSON representation to the system clipboard.\r\n * @param name the name of the reality model to copy; if undefined, copy the last found reality model\r\n */\r\n public override async run(name: string | undefined): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n vp.displayStyle.forEachRealityModel((realityModel) => {\r\n if (name === undefined || realityModel.name === name) {\r\n copyStringToClipboard(JSON.stringify(realityModel.toJSON()));\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Reality Model ${realityModel.name} copied to clipboard`));\r\n }\r\n });\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `name`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(args.length > 0 ? args[0] : undefined);\r\n }\r\n}\r\n\r\nfunction changeRealityModelAppearanceOverrides(vp: Viewport, overrides: FeatureAppearanceProps, index: number): boolean {\r\n if (index < 0) {\r\n for (const model of vp.displayStyle.settings.contextRealityModels.models)\r\n model.appearanceOverrides = model.appearanceOverrides ? model.appearanceOverrides.clone(overrides) : FeatureAppearance.fromJSON(overrides);\r\n\r\n return vp.displayStyle.settings.contextRealityModels.models.length > 0;\r\n } else {\r\n const model = vp.displayStyle.settings.contextRealityModels.models[index];\r\n if (!model)\r\n return false;\r\n\r\n model.appearanceOverrides = model.appearanceOverrides ? model.appearanceOverrides.clone(overrides) : FeatureAppearance.fromJSON(overrides);\r\n return true;\r\n }\r\n}\r\n\r\nfunction appearanceChangedString(index: number) {\r\n return index < 0 ? `All Reality Models` : `Reality Model at Index: ${index}`;\r\n}\r\n\r\n/** Set reality model appearance override for transparency in display style.\r\n * @beta\r\n */\r\nexport class SetRealityModelTransparencyTool extends Tool {\r\n public static override toolId = \"SetRealityModelTransparencyTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(transparency: number, index: number): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n\r\n const changed = changeRealityModelAppearanceOverrides(vp, { transparency }, index);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} set to transparency: ${transparency}`));\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(parseFloat(args[0]), args.length > 1 ? parseInt(args[1], 10) : -1);\r\n }\r\n}\r\n/** Set reality model appearance override for locatable in display style.\r\n * @beta\r\n */\r\nexport class SetRealityModelLocateTool extends Tool {\r\n public static override toolId = \"SetRealityModelLocateTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(locate: boolean, index: number): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n\r\n const nonLocatable = locate ? undefined : true;\r\n const changed = changeRealityModelAppearanceOverrides(vp, { nonLocatable }, index);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} set to locate: ${locate}`));\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const locate = parseBoolean(args[0]);\r\n return locate === undefined ? false : this.run(locate, args.length > 1 ? parseInt(args[1], 10) : -1);\r\n }\r\n}\r\n\r\n/** Set reality model appearance override for emphasized in display style.\r\n * @beta\r\n */\r\nexport class SetRealityModelEmphasizedTool extends Tool {\r\n public static override toolId = \"SetRealityModelEmphasizedTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(emphasized: true | undefined, index: number): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n\r\n const changed = changeRealityModelAppearanceOverrides(vp, { emphasized }, index);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} set to emphasized: ${emphasized}`));\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const emphasized = parseBoolean(args[0]);\r\n return emphasized === undefined ? false : this.run(emphasized ? true : undefined, args.length > 1 ? parseInt(args[1], 10) : -1);\r\n }\r\n}\r\n\r\n/** Detach reality model from display style.\r\n * @beta\r\n */\r\nexport class DetachRealityModelTool extends Tool {\r\n public static override toolId = \"ViewportDetachRealityModel\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override async run(index: number): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n\r\n if (index < 0) {\r\n vp.displayStyle.settings.contextRealityModels.models.forEach((model) => vp.displayStyle.settings.contextRealityModels.delete(model));\r\n return true;\r\n } else {\r\n const model = vp.displayStyle.settings.contextRealityModels.models[index];\r\n if (!model)\r\n return false;\r\n\r\n vp.displayStyle.settings.contextRealityModels.delete(model);\r\n return true;\r\n }\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(args.length > 0 ? parseInt(args[0], 10) : -1);\r\n }\r\n}\r\n\r\n/** Set reality model appearance override for color in display style.\r\n * @beta\r\n */\r\nexport class SetRealityModelColorTool extends Tool {\r\n public static override toolId = \"SetRealityModelColorTool\";\r\n public static override get minArgs() { return 3; }\r\n public static override get maxArgs() { return 4; }\r\n\r\n public override async run(rgb: RgbColorProps, index: number): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n\r\n const changed = changeRealityModelAppearanceOverrides(vp, { rgb }, index);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${appearanceChangedString(index)} set to RGB color: (${rgb.r}, ${rgb.g}, ${rgb.b})`));\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run({ r: parseFloat(args[0]), g: parseFloat(args[1]), b: parseFloat(args[2]) }, args.length > 3 ? parseInt(args[3], 10) : -1);\r\n }\r\n}\r\n\r\n/** Clear reality model appearance override in display style.\r\n * @beta\r\n */\r\nexport class ClearRealityModelAppearanceOverrides extends Tool {\r\n public static override toolId = \"ClearRealityModelAppearanceOverrides\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override async run(index: number): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (!vp)\r\n return false;\r\n\r\n const model = vp.displayStyle.settings.contextRealityModels.models[index];\r\n if (!model)\r\n return false;\r\n\r\n model.appearanceOverrides = undefined;\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(args[0] === undefined ? -1 : parseInt(args[0], 10));\r\n }\r\n}\r\n\r\n/** Attach a cesium asset from the Ion ID and key.\r\n * @beta\r\n */\r\nexport class AttachCesiumAssetTool extends Tool {\r\n public static override toolId = \"AttachCesiumAssetTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(assetId: number, requestKey: string): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n\r\n // attach using getCesiumAssetUrl\r\n const accessKey = requestKey ? requestKey : IModelApp.tileAdmin.cesiumIonKey ? IModelApp.tileAdmin.cesiumIonKey : \"\";\r\n const props = {\r\n tilesetUrl: getCesiumAssetUrl(\r\n assetId,\r\n accessKey,\r\n ),\r\n };\r\n // Alternative new way to attach using rdSourceKey\r\n // const rdSourceKey = RealityDataSource.createCesiumIonAssetKey(assetId, accessKey);\r\n // const props: ContextRealityModelProps = { rdSourceKey, tilesetUrl: getCesiumAssetUrl(assetId, accessKey) };\r\n\r\n vp.displayStyle.attachRealityModel(props);\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Cesium Asset #${assetId} attached`));\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const assetId = parseInt(args[0], 10);\r\n return Number.isNaN(assetId) ? false : this.run(assetId, args[1]);\r\n }\r\n}\r\n\r\n/** Turn on/off display of OpenStreetMap buildings\r\n * @beta\r\n */\r\nexport class ToggleOSMBuildingDisplay extends Tool {\r\n public static override toolId = \"SetBuildingDisplay\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(onOff?: boolean, transparency?: number): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp === undefined)\r\n return false;\r\n\r\n if (onOff === undefined)\r\n onOff = undefined === vp.displayStyle.getOSMBuildingRealityModel(); // Toggle current state.\r\n\r\n const appearanceOverrides = (transparency !== undefined && transparency > 0 && transparency < 1) ? FeatureAppearance.fromJSON({ transparency }) : undefined;\r\n\r\n vp.displayStyle.setOSMBuildingDisplay({ onOff, appearanceOverrides });\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const toggle = parseToggle(args[0]);\r\n const transparency = args.length > 0 ? parseFloat(args[1]) : undefined;\r\n return typeof toggle === \"string\" ? false : this.run(toggle, transparency);\r\n }\r\n}\r\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 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":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { Vector3d } from \"@itwin/core-geometry\";\r\nimport { RenderSchedule } from \"@itwin/core-common\";\r\nimport { IModelApp, Tool } from \"@itwin/core-frontend\";\r\n\r\nenum FadeMode { X, Y, Z, Transparent }\r\n\r\n/** This tool applies a transition in X, Y, Z, or transparency.\r\n * @beta\r\n */\r\nexport class RealityTransitionTool extends Tool {\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n public static override toolId = \"RealityTransition\";\r\n /** This method runs the tool, applying a transition in X, Y, Z, or transparency.\r\n * @param fadeMode whether to apply the transition in X, Y, Z, or transparency\r\n */\r\n public override async run(fadeMode: FadeMode = FadeMode.X): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp)\r\n return true;\r\n\r\n const displayStyle = vp.displayStyle;\r\n const view = vp.view;\r\n const timeNow = Date.now(), timeEnd = timeNow + 1000.0 * 60.0 * 60.0;\r\n const range = vp.iModel.projectExtents;\r\n const directions = [Vector3d.create(1, 0, 0), Vector3d.create(0, 1, 0), Vector3d.create(0, 0, 1)];\r\n const modelInTimeline: RenderSchedule.ModelTimelineProps = { modelId: \"\", elementTimelines: [] };\r\n const modelOutTimeline: RenderSchedule.ModelTimelineProps = { modelId: \"\", elementTimelines: [] };\r\n\r\n switch (fadeMode) {\r\n case FadeMode.Transparent: {\r\n const fadeInTimeline = new Array<RenderSchedule.VisibilityEntryProps>();\r\n fadeInTimeline.push({ time: timeNow, interpolation: 2, value: 100.0 });\r\n fadeInTimeline.push({ time: timeEnd, interpolation: 2, value: 0.0 });\r\n const fadeOutTimeline = new Array<RenderSchedule.VisibilityEntryProps>();\r\n fadeOutTimeline.push({ time: timeNow, interpolation: 2, value: 0.0 });\r\n fadeOutTimeline.push({ time: timeEnd, interpolation: 2, value: 100.0 });\r\n modelInTimeline.visibilityTimeline = fadeInTimeline;\r\n modelOutTimeline.visibilityTimeline = fadeOutTimeline;\r\n break;\r\n }\r\n\r\n default: {\r\n const direction = directions[fadeMode - FadeMode.X];\r\n const clipInTimeline = new Array<RenderSchedule.CuttingPlaneEntryProps>();\r\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] } });\r\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] } });\r\n const clipOutTimeline = new Array<RenderSchedule.CuttingPlaneEntryProps>();\r\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] } });\r\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] } });\r\n modelInTimeline.cuttingPlaneTimeline = clipInTimeline;\r\n modelOutTimeline.cuttingPlaneTimeline = clipOutTimeline;\r\n break;\r\n }\r\n }\r\n\r\n const scriptProps: RenderSchedule.ScriptProps = [];\r\n view.forEachModel((model) => {\r\n scriptProps.push({\r\n ...(model.jsonProperties.tilesetUrl ? modelOutTimeline : modelInTimeline),\r\n modelId: model.id,\r\n });\r\n });\r\n\r\n displayStyle.forEachRealityModel((model) => {\r\n const modelId = model.treeRef?.treeOwner.tileTree?.modelId;\r\n if (modelId) {\r\n scriptProps.push({\r\n ...modelOutTimeline,\r\n modelId,\r\n realityModelUrl: model.url,\r\n });\r\n }\r\n });\r\n\r\n const script = RenderSchedule.Script.fromJSON(scriptProps);\r\n if (script) {\r\n displayStyle.scheduleScript = script;\r\n vp.timePoint = script.duration.low;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method.\r\n * @param args the first entry of this array contains either \"x\", \"y\", \"z\", or \"transparent\", indicating the type of transition to apply.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const transitionNames = [\r\n \"x\",\r\n \"y\",\r\n \"z\",\r\n \"transparent\",\r\n ];\r\n let fade = FadeMode.X;\r\n if (0 !== args.length) {\r\n const arg = args[0].toLowerCase();\r\n for (let i = 0; i < transitionNames.length; i++) {\r\n if (arg === transitionNames[i]) {\r\n fade = i;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return this.run(fade);\r\n }\r\n}\r\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,31 +26,33 @@ exports.RenderSystemDebugControlTool = RenderSystemDebugControlTool;
26
26
  * @beta
27
27
  */
28
28
  class LoseWebGLContextTool extends RenderSystemDebugControlTool {
29
+ static 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 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 toolId = "ToggleDPIForLOD";
52
53
  static get minArgs() { return 0; }
53
54
  static get maxArgs() { return 1; }
55
+ _enable;
54
56
  execute(control) {
55
57
  const enable = this._enable ?? !control.dpiAwareLOD;
56
58
  control.dpiAwareLOD = enable;
@@ -66,5 +68,4 @@ class ToggleDPIForLODTool extends RenderSystemDebugControlTool {
66
68
  }
67
69
  }
68
70
  exports.ToggleDPIForLODTool = ToggleDPIForLODTool;
69
- ToggleDPIForLODTool.toolId = "ToggleDPIForLOD";
70
71
  //# 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":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, RenderSystemDebugControl, Tool } from \"@itwin/core-frontend\";\r\nimport { parseToggle } from \"./parseToggle\";\r\n\r\n/** Executes some code against a RenderSystemDebugControl obtained from the IModelApp's RenderSystem.\r\n * @beta\r\n */\r\nexport abstract class RenderSystemDebugControlTool extends Tool {\r\n public override async run(_args: any[]): Promise<boolean> {\r\n const control = IModelApp.renderSystem.debugControl;\r\n if (undefined !== control)\r\n this.execute(control);\r\n\r\n return true;\r\n }\r\n\r\n protected abstract execute(_control: RenderSystemDebugControl): void;\r\n}\r\n\r\n/** Forces webgl context loss.\r\n * @beta\r\n */\r\nexport class LoseWebGLContextTool extends RenderSystemDebugControlTool {\r\n public static override toolId = \"LoseWebGLContext\";\r\n public execute(control: RenderSystemDebugControl): void {\r\n control.loseContext();\r\n }\r\n}\r\n\r\n/** Compiles all registered shader programs for which compilation has not already been attempted.\r\n * This is useful for uncovering/debugging platform-specific shader issues.\r\n * @beta\r\n */\r\nexport class CompileShadersTool extends RenderSystemDebugControlTool {\r\n public static override toolId = \"CompileShaders\";\r\n public execute(control: RenderSystemDebugControl): void {\r\n const compiled = control.compileAllShaders();\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(compiled ? OutputMessagePriority.Info : OutputMessagePriority.Error, `${compiled ? \"No\" : \"Some\"} compilation errors occurred.`));\r\n }\r\n}\r\n\r\n/** Toggles whether or not device pixel ratio should be taken into account when computing LOD for tiles and decoration graphics.\r\n * @see [RenderSystem.Options.dpiAwareLOD]($frontend)\r\n * @beta\r\n */\r\nexport class ToggleDPIForLODTool extends RenderSystemDebugControlTool {\r\n public static override toolId = \"ToggleDPIForLOD\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n private _enable?: boolean;\r\n\r\n public execute(control: RenderSystemDebugControl): void {\r\n const enable = this._enable ?? !control.dpiAwareLOD;\r\n control.dpiAwareLOD = enable;\r\n IModelApp.viewManager.invalidateViewportScenes();\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable !== \"string\") {\r\n this._enable = enable;\r\n await this.run([]);\r\n }\r\n\r\n return true;\r\n }\r\n}\r\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;IAC7D,MAAM,CAAU,MAAM,GAAG,kBAAkB,CAAC;IAC5C,OAAO,CAAC,OAAiC;QAC9C,OAAO,CAAC,WAAW,EAAE,CAAC;IACxB,CAAC;;AAJH,oDAKC;AAED;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,4BAA4B;IAC3D,MAAM,CAAU,MAAM,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;IAC5D,MAAM,CAAU,MAAM,GAAG,iBAAiB,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1C,OAAO,CAAW;IAEnB,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"]}
@@ -1,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module Tools
3
3
  */
4
- import { RenderTargetDebugControl, ScreenViewport, Tool } from "@itwin/core-frontend";
4
+ import { type RenderTargetDebugControl, ScreenViewport, Tool } from "@itwin/core-frontend";
5
5
  /** Executes some code against a RenderTargetDebugControl obtained from the selected viewport.
6
6
  * @beta
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RenderTargetTools.d.ts","sourceRoot":"","sources":["../../../src/tools/RenderTargetTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderTargetTools.d.ts","sourceRoot":"","sources":["../../../src/tools/RenderTargetTools.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ exports.RenderTargetDebugControlTool = RenderTargetDebugControlTool;
29
29
  class RenderTargetDebugControlToggleTool extends RenderTargetDebugControlTool {
30
30
  static get minArgs() { return 0; }
31
31
  static get maxArgs() { return 1; }
32
+ _enable;
32
33
  execute(control, vp) {
33
34
  const value = undefined !== this._enable ? this._enable : !control[this.aspect];
34
35
  control[this.aspect] = value;
@@ -48,37 +49,35 @@ exports.RenderTargetDebugControlToggleTool = RenderTargetDebugControlToggleTool;
48
49
  * @beta
49
50
  */
50
51
  class ToggleReadPixelsTool extends RenderTargetDebugControlToggleTool {
52
+ static toolId = "ToggleReadPixels";
51
53
  get aspect() { return "drawForReadPixels"; }
52
54
  }
53
55
  exports.ToggleReadPixelsTool = ToggleReadPixelsTool;
54
- ToggleReadPixelsTool.toolId = "ToggleReadPixels";
55
56
  /** Turn on the display of the draping frustum.
56
57
  * @beta
57
58
  */
58
59
  class ToggleDrapeFrustumTool extends RenderTargetDebugControlToggleTool {
60
+ static toolId = "ToggleDrapeFrustum";
59
61
  get aspect() { return "displayDrapeFrustum"; }
60
62
  }
61
63
  exports.ToggleDrapeFrustumTool = ToggleDrapeFrustumTool;
62
- ToggleDrapeFrustumTool.toolId = "ToggleDrapeFrustum";
63
64
  /** Turn on the display of the planar mask frustum.
64
65
  * @beta
65
66
  */
66
67
  class ToggleMaskFrustumTool extends RenderTargetDebugControlToggleTool {
68
+ static toolId = "ToggleMaskFrustum";
67
69
  get aspect() { return "displayMaskFrustum"; }
68
70
  }
69
71
  exports.ToggleMaskFrustumTool = ToggleMaskFrustumTool;
70
- ToggleMaskFrustumTool.toolId = "ToggleMaskFrustum";
71
72
  /** Control whether all geometry renders, or only instanced or batched geometry.
72
73
  * Allowed argument: "instanced", "batched", "all". Defaults to "all" if no arguments supplied.
73
74
  * @beta
74
75
  */
75
76
  class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool {
76
- constructor() {
77
- super(...arguments);
78
- this._visibility = core_frontend_1.PrimitiveVisibility.All;
79
- }
77
+ static toolId = "TogglePrimitiveVisibility";
80
78
  static get minArgs() { return 0; }
81
79
  static get maxArgs() { return 1; }
80
+ _visibility = core_frontend_1.PrimitiveVisibility.All;
82
81
  execute(control, vp) {
83
82
  control.primitiveVisibility = this._visibility;
84
83
  vp.invalidateScene();
@@ -102,58 +101,55 @@ class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool {
102
101
  }
103
102
  }
104
103
  exports.TogglePrimitiveVisibilityTool = TogglePrimitiveVisibilityTool;
105
- TogglePrimitiveVisibilityTool.toolId = "TogglePrimitiveVisibility";
106
104
  /** Turn on display of reality tile boundaries.
107
105
  * @beta
108
106
  */
109
107
  class ToggleRealityTileBounds extends RenderTargetDebugControlToggleTool {
108
+ static toolId = "ToggleRealityTileBounds";
110
109
  get aspect() { return "displayRealityTileRanges"; }
111
110
  }
112
111
  exports.ToggleRealityTileBounds = ToggleRealityTileBounds;
113
- ToggleRealityTileBounds.toolId = "ToggleRealityTileBounds";
114
112
  /** Turn on display of reality tile preload debugging.
115
113
  * @beta
116
114
  */
117
115
  class ToggleRealityTilePreload extends RenderTargetDebugControlToggleTool {
116
+ static toolId = "ToggleRealityTilePreload";
118
117
  get aspect() { return "displayRealityTilePreload"; }
119
118
  }
120
119
  exports.ToggleRealityTilePreload = ToggleRealityTilePreload;
121
- ToggleRealityTilePreload.toolId = "ToggleRealityTilePreload";
122
120
  /** Freeze loading of reality tiles.
123
121
  * @beta
124
122
  */
125
123
  class ToggleRealityTileFreeze extends RenderTargetDebugControlToggleTool {
124
+ static toolId = "ToggleRealityTileFreeze";
126
125
  get aspect() { return "freezeRealityTiles"; }
127
126
  }
128
127
  exports.ToggleRealityTileFreeze = ToggleRealityTileFreeze;
129
- ToggleRealityTileFreeze.toolId = "ToggleRealityTileFreeze";
130
128
  /** Turn on logging of console tile selection and loading (to console).
131
129
  * @beta
132
130
  */
133
131
  class ToggleRealityTileLogging extends RenderTargetDebugControlToggleTool {
132
+ static toolId = "ToggleRealityTileLogging";
134
133
  get aspect() { return "logRealityTiles"; }
135
134
  }
136
135
  exports.ToggleRealityTileLogging = ToggleRealityTileLogging;
137
- ToggleRealityTileLogging.toolId = "ToggleRealityTileLogging";
138
136
  /** Toggles support for intersecting volume classifiers.
139
137
  * @beta
140
138
  */
141
139
  class ToggleVolClassIntersect extends RenderTargetDebugControlToggleTool {
140
+ static toolId = "ToggleVCIntersect";
142
141
  get aspect() { return "vcSupportIntersectingVolumes"; }
143
142
  }
144
143
  exports.ToggleVolClassIntersect = ToggleVolClassIntersect;
145
- ToggleVolClassIntersect.toolId = "ToggleVCIntersect";
146
144
  /** Set the number of antialiasing samples to use (<=1 for no antialiasing).
147
145
  * @beta
148
146
  */
149
147
  class SetAASamplesTool extends RenderTargetDebugControlTool {
150
- constructor() {
151
- super(...arguments);
152
- this._aaSamples = 1;
153
- this._changeAll = false;
154
- }
148
+ static toolId = "SetAASamples";
155
149
  static get minArgs() { return 1; }
156
150
  static get maxArgs() { return 2; }
151
+ _aaSamples = 1;
152
+ _changeAll = false;
157
153
  execute(_control, vp) {
158
154
  if (this._changeAll)
159
155
  core_frontend_1.IModelApp.viewManager.setAntialiasingAllViews(this._aaSamples);
@@ -171,13 +167,12 @@ class SetAASamplesTool extends RenderTargetDebugControlTool {
171
167
  }
172
168
  }
173
169
  exports.SetAASamplesTool = SetAASamplesTool;
174
- SetAASamplesTool.toolId = "SetAASamples";
175
170
  /** Toggles support for normal maps.
176
171
  * @beta
177
172
  */
178
173
  class ToggleNormalMaps extends RenderTargetDebugControlToggleTool {
174
+ static toolId = "ToggleNormalMaps";
179
175
  get aspect() { return "displayNormalMaps"; }
180
176
  }
181
177
  exports.ToggleNormalMaps = ToggleNormalMaps;
182
- ToggleNormalMaps.toolId = "ToggleNormalMaps";
183
178
  //# sourceMappingURL=RenderTargetTools.js.map