@itwin/frontend-devtools 3.0.0-dev.135 → 3.0.0-dev.136

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.
package/README.md CHANGED
@@ -249,6 +249,7 @@ These keysins control the planar masking of reality models.
249
249
  * `copy`: copy result to system clipboard.
250
250
  * `quote`: format the result so it can be directly parsed by `fdt apply rendering style` as a single quoted string argument.
251
251
  * `fdt apply rendering style` - Given a rendering style as a JSON string (see `fdt save rendering style`), applies it to the active viewport's display style. See `DisplayStyleSettings.applyOverrides`. Takes a single required argument: the JSON string.
252
+ * `fdt bgcolor` - change the background color for the active viewport. It requires a single argument - the string representation of the color. See ColorDef.fromString for supported formats.
252
253
  * `fdt change viewflags` - Changes any number of ViewFlags for the active viewport. Each argument is of the format "flag=value". For boolean flags, the value is `0` for `false` or `1` for `true`. Flag names are case-insensitive.
253
254
  * Boolean flags: "dimensions", "patterns", "weights", "styles", "transparency", "fill", "textures", "materials", "acsTriad", "grid", "visibleEdges", "hiddenEdges", "lighting", "shadows", "clipVolume", "constructions", "monochrome", "backgroundMap", "ambientOcclusion", "forceSurfaceDiscard"
254
255
  * "renderMode": 0 = wireframe, 3 = hidden line, 4 = solid fill, 6 = smooth shade (numeric values of RenderMode enum).
@@ -1 +1 @@
1
- {"version":3,"file":"FrontEndDevTools.d.ts","sourceRoot":"","sources":["../../src/FrontEndDevTools.ts"],"names":[],"mappings":"AAIA;;GAEG;AA+DH;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IAEpC;;;;;;;OAOG;WACiB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAuJhD"}
1
+ {"version":3,"file":"FrontEndDevTools.d.ts","sourceRoot":"","sources":["../../src/FrontEndDevTools.ts"],"names":[],"mappings":"AAIA;;GAEG;AA+DH;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IAEpC;;;;;;;OAOG;WACiB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAwJhD"}
@@ -72,6 +72,7 @@ class FrontendDevTools {
72
72
  DisplayStyleTools_1.ApplyRenderingStyleTool,
73
73
  SavedViews_1.ApplyViewByIdTool,
74
74
  SavedViews_1.ApplyViewTool,
75
+ DisplayStyleTools_1.ChangeBackgroundColorTool,
75
76
  ViewportTools_1.ChangeCameraTool,
76
77
  ViewportTools_1.ChangeEmphasisSettingsTool,
77
78
  ViewportTools_1.ChangeFlashSettingsTool,
@@ -1 +1 @@
1
- {"version":3,"file":"FrontEndDevTools.js","sourceRoot":"","sources":["../../src/FrontEndDevTools.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAiD;AACjD,uDAA+I;AAC/I,uDAAyD;AACzD,mDAAsD;AACtD,mDAAuE;AACvE,6DAAsF;AACtF,qDAA0E;AAC1E,yCAA4C;AAC5C,iDAAoE;AACpE,6DAGiC;AACjC,yDAI+B;AAC/B,yEAAsE;AACtE,6DAA0D;AAC1D,iDAA2F;AAC3F,iEAGmC;AACnC,yEAEuC;AACvC,iEAA8H;AAC9H,mEAAgE;AAChE,uDAI8B;AAC9B,qEAAsE;AACtE,uEAGsC;AACtC,qEAAgJ;AAChJ,2DAAkE;AAClE,iEAGmC;AACnC,yEAAsE;AACtE,iEAA0G;AAC1G,iEAGmC;AACnC,uFAAoF;AACpF,mDAAoF;AACpF,2DAAgE;AAChE,yEAAsE;AACtE,qEAA+G;AAC/G,yEAAgF;AAChF,+EAAsF;AACtF,6DAA6D;AAE7D;;GAEG;AACH,MAAa,gBAAgB;IAG3B;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU;QAC5B,IAAI,IAAI,CAAC,YAAY;YACnB,OAAO;QAET,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,MAAM,SAAS,GAAG,kBAAkB,CAAC;QACrC,MAAM,gBAAgB,GAAG,yBAAS,CAAC,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG;YACZ,iCAAkB;YAClB,mCAAoB;YACpB,4CAA6B;YAC7B,yCAA0B;YAC1B,0CAA2B;YAC3B,6CAA8B;YAC9B,6CAAqB;YACrB,2CAAuB;YACvB,8BAAiB;YACjB,0BAAa;YACb,gCAAgB;YAChB,0CAA0B;YAC1B,uCAAuB;YACvB,wCAAwB;YACxB,sDAAgC;YAChC,iCAAe;YACf,uCAAmB;YACnB,8BAAgB;YAChB,mDAA2B;YAC3B,iDAAyB;YACzB,yBAAa;YACb,sCAAkB;YAClB,2CAA2B;YAC3B,kCAAmB;YACnB,oDAA8B;YAC9B,iCAAmB;YACnB,0BAAY;YACZ,qDAA+B;YAC/B,qDAA6B;YAC7B,oDAA4B;YAC5B,2BAAe;YACf,2BAAW;YACX,2BAAe;YACf,2BAAe;YACf,+BAAe;YACf,gCAAkB;YAClB,uCAAkB;YAClB,mDAA2B;YAC3B,qCAAoB;YACpB,qCAAoB;YACpB,wCAAoB;YACpB,uCAAwB;YACxB,qCAAsB;YACtB,6CAA8B;YAC9B,+BAAgB;YAChB,+BAAgB;YAChB,sCAAuB;YACvB,oCAAqB;YACrB,6CAAuB;YACvB,2CAAuB;YACvB,qDAA+B;YAC/B,2CAAuB;YACvB,6CAAqB;YACrB,+BAAgB;YAChB,2DAA4B;YAC5B,6BAAgB;YAChB,6BAAgB;YAChB,0CAAsB;YACtB,yBAAY;YACZ,uCAAsB;YACtB,oCAAgB;YAChB,sCAAsB;YACtB,2CAAuB;YACvB,6BAAc;YACd,2BAAa;YACb,6BAAe;YACf,mCAAmB;YACnB,+BAAW;YACX,iCAAa;YACb,iBAAU;YACV,qDAA+B;YAC/B,6BAAiB;YACjB,yCAAyB;YACzB,yCAAyB;YACzB,uCAAmB;YACnB,0CAAsB;YACtB,6CAAyB;YACzB,iDAA6B;YAC7B,yCAAwB;YACxB,wCAAoB;YACpB,mDAAmC;YACnC,iDAA6B;YAC7B,2CAAuB;YACvB,oCAAgB;YAChB,uDAA+B;YAC/B,6DAAkC;YAClC,4CAA4B;YAC5B,oCAAkB;YAClB,kDAAkC;YAClC,kDAAkC;YAClC,yCAAyB;YACzB,sCAAkB;YAClB,2CAAuB;YACvB,4CAAwB;YACxB,4CAAwB;YACxB,2CAAuB;YACvB,gCAAoB;YACpB,gCAAiB;YACjB,6BAAe;YACf,uCAAuB;YACvB,4CAA4B;YAC5B,yBAAc;YACd,yBAAc;YACd,0CAAsB;YACtB,0CAAsB;YACtB,wCAAoB;YACpB,6CAAqB;YACrB,6CAAyB;YACzB,iDAA6B;YAC7B,mDAA+B;YAC/B,4CAAwB;YACxB,yCAAkB;YAClB,6CAAsB;YACtB,+CAAwB;YACxB,wCAAiB;YACjB,6CAAsB;YACtB,2CAAoB;YACpB,mDAA4B;YAC5B,wDAAoC;YACpC,oDAA6B;YAC7B,yCAAqB;YACrB,4CAAwB;YACxB,sDAAoC;YACpC,6CAA2B;YAC3B,6CAA2B;YAC3B,mDAAiC;YACjC,+CAA6B;YAC7B,uDAAqC;YACrC,wCAAsB;YACtB,8CAA4B;YAC5B,oDAAkC;YAClC,gDAA8B;YAC9B,wDAAsC;YACtC,+BAAa;YACb,2CAAuB;SACxB,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK;YACtB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE3B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;;AAjKH,4CAkKC;AAjKgB,6BAAY,GAAG,KAAK,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { EdgeDetectionEffect, EmbossEffect, GaussianBlurEffect, SharpenEffect, SharpnessEffect, UnsharpenEffect } from \"./effects/Convolution\";\r\nimport { ClearEffectsTool } from \"./effects/EffectTools\";\r\nimport { ExplosionEffect } from \"./effects/Explosion\";\r\nimport { FlipImageConfig, FlipImageEffect } from \"./effects/FlipImage\";\r\nimport { LensDistortionConfig, LensDistortionEffect } from \"./effects/LensDistortion\";\r\nimport { SaturationConfig, SaturationEffect } from \"./effects/Saturation\";\r\nimport { SnowEffect } from \"./effects/Snow\";\r\nimport { VignetteConfig, VignetteEffect } from \"./effects/Vignette\";\r\nimport {\r\n MaskBackgroundMapByElementTool, MaskBackgroundMapByExcludedElementTool, MaskBackgroundMapByModelTool, MaskBackgroundMapBySubCategoryTool, MaskRealityModelByElementTool, MaskRealityModelByExcludedElementTool,\r\n MaskRealityModelByModelTool, MaskRealityModelBySubCategoryTool, SetHigherPriorityRealityModelMasking, SetMapHigherPriorityMasking, UnmaskMapTool, UnmaskRealityModelTool,\r\n} from \"./tools/PlanarMaskTools\";\r\nimport {\r\n ChangeCameraTool, ChangeEmphasisSettingsTool, ChangeFlashSettingsTool, ChangeHiliteSettingsTool, DefaultTileSizeModifierTool, FadeOutTool, FreezeSceneTool, SetAspectRatioSkewTool, ShowTileVolumesTool,\r\n Toggle3dManipulationsTool, ToggleDrawingGraphicsTool, ToggleSectionDrawingSpatialViewTool, ToggleTileTreeReferencesTool, ToggleViewAttachmentBoundariesTool, ToggleViewAttachmentClipShapesTool,\r\n ToggleViewAttachmentsTool, ViewportAddRealityModel, ViewportTileSizeModifierTool,\r\n} from \"./tools/ViewportTools\";\r\nimport { AnimationIntervalTool } from \"./tools/AnimationIntervalTool\";\r\nimport { ChangeUnitsTool } from \"./tools/ChangeUnitsTool\";\r\nimport { ClipColorTool, TestClipStyleTool, ToggleSectionCutTool } from \"./tools/ClipTools\";\r\nimport {\r\n ApplyRenderingStyleTool, ChangeViewFlagsTool, OverrideSubCategoryTool, QueryScheduleScriptTool, SaveRenderingStyleTool, SkyCubeTool, SkySphereTool, ToggleSkyboxTool,\r\n ToggleWiremeshTool, WoWIgnoreBackgroundTool,\r\n} from \"./tools/DisplayStyleTools\";\r\nimport {\r\n ClearEmphasizedElementsTool, ClearIsolatedElementsTool, EmphasizeSelectedElementsTool, EmphasizeVisibleElementsTool, IsolateSelectedElementsTool,\r\n} from \"./tools/EmphasizeElementsTool\";\r\nimport { ToggleFrustumSnapshotTool, ToggleSelectedViewFrustumTool, ToggleShadowFrustumTool } from \"./tools/FrustumDecoration\";\r\nimport { InspectElementTool } from \"./tools/InspectElementTool\";\r\nimport {\r\n AttachArcGISMapLayerByUrlTool, AttachMapLayerTool, AttachMapOverlayTool, AttachTileURLMapLayerByUrlTool, AttachWmsMapLayerByUrlTool,\r\n AttachWmtsMapLayerByUrlTool, DetachMapLayersTool, MapBaseColorTool, MapBaseTransparencyTool, MapBaseVisibilityTool, MapLayerSubLayerVisibilityTool,\r\n MapLayerTransparencyTool, MapLayerVisibilityTool, MapLayerZoomTool, ReorderMapLayers, SetMapBaseTool, ToggleTerrainTool,\r\n} from \"./tools/MapLayerTool\";\r\nimport { MeasureTileLoadTimeTool } from \"./tools/MeasureTileLoadTime\";\r\nimport {\r\n ClearModelAppearanceOverrides, SetModelColorTool, SetModelEmphasizedTool, SetModelIgnoresMaterialsTool, SetModelLineCodeTool,\r\n SetModelLineWeightTool, SetModelLocateTool, SetModelTransparencyTool,\r\n} from \"./tools/ModelAppearanceTools\";\r\nimport { ChangePlanProjectionSettingsTool, DumpPlanProjectionSettingsTool, OverrideSubCategoryPriorityTool } from \"./tools/PlanProjectionTools\";\r\nimport { ToggleProjectExtentsTool } from \"./tools/ProjectExtents\";\r\nimport {\r\n AttachCesiumAssetTool, AttachRealityModelTool, ClearRealityModelAppearanceOverrides, DetachRealityModelTool, SaveRealityModelTool,\r\n SetRealityModelColorTool, SetRealityModelEmphasizedTool, SetRealityModelLocateTool, SetRealityModelTransparencyTool, ToggleOSMBuildingDisplay,\r\n} from \"./tools/RealityModelTools\";\r\nimport { RealityTransitionTool } from \"./tools/RealityTransitionTool\";\r\nimport { CompileShadersTool, LoseWebGLContextTool, ToggleDPIForLODTool } from \"./tools/RenderSystemTools\";\r\nimport {\r\n SetAASamplesTool, ToggleDrapeFrustumTool, TogglePrimitiveVisibilityTool, ToggleReadPixelsTool, ToggleRealityTileBounds, ToggleRealityTileFreeze,\r\n ToggleRealityTileLogging, ToggleRealityTilePreload, ToggleVolClassIntersect,\r\n} from \"./tools/RenderTargetTools\";\r\nimport { ReportWebGLCompatibilityTool } from \"./tools/ReportWebGLCompatibilityTool\";\r\nimport { ApplyViewByIdTool, ApplyViewTool, SaveViewTool } from \"./tools/SavedViews\";\r\nimport { SelectElementsByIdTool } from \"./tools/SelectionTools\";\r\nimport { SetGpuMemoryLimitTool } from \"./tools/SetGpuMemoryLimitTool\";\r\nimport { ElementIdFromSourceAspectIdTool, SourceAspectIdFromElementIdTool } from \"./tools/SourceAspectIdTools\";\r\nimport { ToggleTileRequestDecorationTool } from \"./tools/TileRequestDecoration\";\r\nimport { ToggleTileTreeBoundsDecorationTool } from \"./tools/TileTreeBoundsDecoration\";\r\nimport { ToggleToolTipsTool } from \"./tools/ToolTipProvider\";\r\n\r\n/** Entry-point for the package. Before using the package you *must* call [[FrontendDevTools.initialize]].\r\n * @beta\r\n */\r\nexport class FrontendDevTools {\r\n private static _initialized = false;\r\n\r\n /** Call this before using the package (e.g., before instantiating any of its widgets or attempting to use any of its tools.\r\n * To initialize when starting up your app:\r\n * ```ts\r\n * IModelApp.startup();\r\n * await FrontendDevTools.initialize();\r\n * ```\r\n * @beta\r\n */\r\n public static async initialize(): Promise<void> {\r\n if (this._initialized)\r\n return;\r\n\r\n this._initialized = true;\r\n\r\n const namespace = \"FrontendDevTools\";\r\n const namespacePromise = IModelApp.localization.registerNamespace(namespace);\r\n const tools = [\r\n AttachMapLayerTool,\r\n AttachMapOverlayTool,\r\n AttachArcGISMapLayerByUrlTool,\r\n AttachWmsMapLayerByUrlTool,\r\n AttachWmtsMapLayerByUrlTool,\r\n AttachTileURLMapLayerByUrlTool,\r\n AnimationIntervalTool,\r\n ApplyRenderingStyleTool,\r\n ApplyViewByIdTool,\r\n ApplyViewTool,\r\n ChangeCameraTool,\r\n ChangeEmphasisSettingsTool,\r\n ChangeFlashSettingsTool,\r\n ChangeHiliteSettingsTool,\r\n ChangePlanProjectionSettingsTool,\r\n ChangeUnitsTool,\r\n ChangeViewFlagsTool,\r\n ClearEffectsTool,\r\n ClearEmphasizedElementsTool,\r\n ClearIsolatedElementsTool,\r\n ClipColorTool,\r\n CompileShadersTool,\r\n DefaultTileSizeModifierTool,\r\n DetachMapLayersTool,\r\n DumpPlanProjectionSettingsTool,\r\n EdgeDetectionEffect,\r\n EmbossEffect,\r\n ElementIdFromSourceAspectIdTool,\r\n EmphasizeSelectedElementsTool,\r\n EmphasizeVisibleElementsTool,\r\n ExplosionEffect,\r\n FadeOutTool,\r\n FlipImageConfig,\r\n FlipImageEffect,\r\n FreezeSceneTool,\r\n GaussianBlurEffect,\r\n InspectElementTool,\r\n IsolateSelectedElementsTool,\r\n LensDistortionConfig,\r\n LensDistortionEffect,\r\n LoseWebGLContextTool,\r\n MapLayerTransparencyTool,\r\n MapLayerVisibilityTool,\r\n MapLayerSubLayerVisibilityTool,\r\n MapLayerZoomTool,\r\n MapBaseColorTool,\r\n MapBaseTransparencyTool,\r\n MapBaseVisibilityTool,\r\n MeasureTileLoadTimeTool,\r\n OverrideSubCategoryTool,\r\n OverrideSubCategoryPriorityTool,\r\n QueryScheduleScriptTool,\r\n RealityTransitionTool,\r\n ReorderMapLayers,\r\n ReportWebGLCompatibilityTool,\r\n SaturationConfig,\r\n SaturationEffect,\r\n SaveRenderingStyleTool,\r\n SaveViewTool,\r\n SelectElementsByIdTool,\r\n SetAASamplesTool,\r\n SetAspectRatioSkewTool,\r\n ToggleVolClassIntersect,\r\n SetMapBaseTool,\r\n SharpenEffect,\r\n SharpnessEffect,\r\n ShowTileVolumesTool,\r\n SkyCubeTool,\r\n SkySphereTool,\r\n SnowEffect,\r\n SourceAspectIdFromElementIdTool,\r\n TestClipStyleTool,\r\n Toggle3dManipulationsTool,\r\n ToggleDrawingGraphicsTool,\r\n ToggleDPIForLODTool,\r\n ToggleDrapeFrustumTool,\r\n ToggleFrustumSnapshotTool,\r\n TogglePrimitiveVisibilityTool,\r\n ToggleProjectExtentsTool,\r\n ToggleReadPixelsTool,\r\n ToggleSectionDrawingSpatialViewTool,\r\n ToggleSelectedViewFrustumTool,\r\n ToggleShadowFrustumTool,\r\n ToggleSkyboxTool,\r\n ToggleTileRequestDecorationTool,\r\n ToggleTileTreeBoundsDecorationTool,\r\n ToggleTileTreeReferencesTool,\r\n ToggleToolTipsTool,\r\n ToggleViewAttachmentBoundariesTool,\r\n ToggleViewAttachmentClipShapesTool,\r\n ToggleViewAttachmentsTool,\r\n ToggleWiremeshTool,\r\n ToggleRealityTileBounds,\r\n ToggleRealityTilePreload,\r\n ToggleRealityTileLogging,\r\n ToggleRealityTileFreeze,\r\n ToggleSectionCutTool,\r\n ToggleTerrainTool,\r\n UnsharpenEffect,\r\n ViewportAddRealityModel,\r\n ViewportTileSizeModifierTool,\r\n VignetteConfig,\r\n VignetteEffect,\r\n AttachRealityModelTool,\r\n DetachRealityModelTool,\r\n SaveRealityModelTool,\r\n SetGpuMemoryLimitTool,\r\n SetRealityModelLocateTool,\r\n SetRealityModelEmphasizedTool,\r\n SetRealityModelTransparencyTool,\r\n SetRealityModelColorTool,\r\n SetModelLocateTool,\r\n SetModelEmphasizedTool,\r\n SetModelTransparencyTool,\r\n SetModelColorTool,\r\n SetModelLineWeightTool,\r\n SetModelLineCodeTool,\r\n SetModelIgnoresMaterialsTool,\r\n ClearRealityModelAppearanceOverrides,\r\n ClearModelAppearanceOverrides,\r\n AttachCesiumAssetTool,\r\n ToggleOSMBuildingDisplay,\r\n SetHigherPriorityRealityModelMasking,\r\n SetMapHigherPriorityMasking,\r\n MaskRealityModelByModelTool,\r\n MaskRealityModelBySubCategoryTool,\r\n MaskRealityModelByElementTool,\r\n MaskRealityModelByExcludedElementTool,\r\n UnmaskRealityModelTool,\r\n MaskBackgroundMapByModelTool,\r\n MaskBackgroundMapBySubCategoryTool,\r\n MaskBackgroundMapByElementTool,\r\n MaskBackgroundMapByExcludedElementTool,\r\n UnmaskMapTool,\r\n WoWIgnoreBackgroundTool,\r\n ];\r\n\r\n for (const tool of tools)\r\n tool.register(namespace);\r\n\r\n return namespacePromise;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"FrontEndDevTools.js","sourceRoot":"","sources":["../../src/FrontEndDevTools.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/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { EdgeDetectionEffect, EmbossEffect, GaussianBlurEffect, SharpenEffect, SharpnessEffect, UnsharpenEffect } from \"./effects/Convolution\";\r\nimport { ClearEffectsTool } from \"./effects/EffectTools\";\r\nimport { ExplosionEffect } from \"./effects/Explosion\";\r\nimport { FlipImageConfig, FlipImageEffect } from \"./effects/FlipImage\";\r\nimport { LensDistortionConfig, LensDistortionEffect } from \"./effects/LensDistortion\";\r\nimport { SaturationConfig, SaturationEffect } from \"./effects/Saturation\";\r\nimport { SnowEffect } from \"./effects/Snow\";\r\nimport { VignetteConfig, VignetteEffect } from \"./effects/Vignette\";\r\nimport {\r\n MaskBackgroundMapByElementTool, MaskBackgroundMapByExcludedElementTool, MaskBackgroundMapByModelTool, MaskBackgroundMapBySubCategoryTool, MaskRealityModelByElementTool, MaskRealityModelByExcludedElementTool,\r\n MaskRealityModelByModelTool, MaskRealityModelBySubCategoryTool, SetHigherPriorityRealityModelMasking, SetMapHigherPriorityMasking, UnmaskMapTool, UnmaskRealityModelTool,\r\n} from \"./tools/PlanarMaskTools\";\r\nimport {\r\n ChangeCameraTool, ChangeEmphasisSettingsTool, ChangeFlashSettingsTool, ChangeHiliteSettingsTool, DefaultTileSizeModifierTool, FadeOutTool, FreezeSceneTool, SetAspectRatioSkewTool, ShowTileVolumesTool,\r\n Toggle3dManipulationsTool, ToggleDrawingGraphicsTool, ToggleSectionDrawingSpatialViewTool, ToggleTileTreeReferencesTool, ToggleViewAttachmentBoundariesTool, ToggleViewAttachmentClipShapesTool,\r\n ToggleViewAttachmentsTool, ViewportAddRealityModel, ViewportTileSizeModifierTool,\r\n} from \"./tools/ViewportTools\";\r\nimport { AnimationIntervalTool } from \"./tools/AnimationIntervalTool\";\r\nimport { ChangeUnitsTool } from \"./tools/ChangeUnitsTool\";\r\nimport { ClipColorTool, TestClipStyleTool, ToggleSectionCutTool } from \"./tools/ClipTools\";\r\nimport {\r\n ApplyRenderingStyleTool, ChangeBackgroundColorTool, ChangeViewFlagsTool, OverrideSubCategoryTool, QueryScheduleScriptTool, SaveRenderingStyleTool, SkyCubeTool, SkySphereTool, ToggleSkyboxTool,\r\n ToggleWiremeshTool, WoWIgnoreBackgroundTool,\r\n} from \"./tools/DisplayStyleTools\";\r\nimport {\r\n ClearEmphasizedElementsTool, ClearIsolatedElementsTool, EmphasizeSelectedElementsTool, EmphasizeVisibleElementsTool, IsolateSelectedElementsTool,\r\n} from \"./tools/EmphasizeElementsTool\";\r\nimport { ToggleFrustumSnapshotTool, ToggleSelectedViewFrustumTool, ToggleShadowFrustumTool } from \"./tools/FrustumDecoration\";\r\nimport { InspectElementTool } from \"./tools/InspectElementTool\";\r\nimport {\r\n AttachArcGISMapLayerByUrlTool, AttachMapLayerTool, AttachMapOverlayTool, AttachTileURLMapLayerByUrlTool, AttachWmsMapLayerByUrlTool,\r\n AttachWmtsMapLayerByUrlTool, DetachMapLayersTool, MapBaseColorTool, MapBaseTransparencyTool, MapBaseVisibilityTool, MapLayerSubLayerVisibilityTool,\r\n MapLayerTransparencyTool, MapLayerVisibilityTool, MapLayerZoomTool, ReorderMapLayers, SetMapBaseTool, ToggleTerrainTool,\r\n} from \"./tools/MapLayerTool\";\r\nimport { MeasureTileLoadTimeTool } from \"./tools/MeasureTileLoadTime\";\r\nimport {\r\n ClearModelAppearanceOverrides, SetModelColorTool, SetModelEmphasizedTool, SetModelIgnoresMaterialsTool, SetModelLineCodeTool,\r\n SetModelLineWeightTool, SetModelLocateTool, SetModelTransparencyTool,\r\n} from \"./tools/ModelAppearanceTools\";\r\nimport { ChangePlanProjectionSettingsTool, DumpPlanProjectionSettingsTool, OverrideSubCategoryPriorityTool } from \"./tools/PlanProjectionTools\";\r\nimport { ToggleProjectExtentsTool } from \"./tools/ProjectExtents\";\r\nimport {\r\n AttachCesiumAssetTool, AttachRealityModelTool, ClearRealityModelAppearanceOverrides, DetachRealityModelTool, SaveRealityModelTool,\r\n SetRealityModelColorTool, SetRealityModelEmphasizedTool, SetRealityModelLocateTool, SetRealityModelTransparencyTool, ToggleOSMBuildingDisplay,\r\n} from \"./tools/RealityModelTools\";\r\nimport { RealityTransitionTool } from \"./tools/RealityTransitionTool\";\r\nimport { CompileShadersTool, LoseWebGLContextTool, ToggleDPIForLODTool } from \"./tools/RenderSystemTools\";\r\nimport {\r\n SetAASamplesTool, ToggleDrapeFrustumTool, TogglePrimitiveVisibilityTool, ToggleReadPixelsTool, ToggleRealityTileBounds, ToggleRealityTileFreeze,\r\n ToggleRealityTileLogging, ToggleRealityTilePreload, ToggleVolClassIntersect,\r\n} from \"./tools/RenderTargetTools\";\r\nimport { ReportWebGLCompatibilityTool } from \"./tools/ReportWebGLCompatibilityTool\";\r\nimport { ApplyViewByIdTool, ApplyViewTool, SaveViewTool } from \"./tools/SavedViews\";\r\nimport { SelectElementsByIdTool } from \"./tools/SelectionTools\";\r\nimport { SetGpuMemoryLimitTool } from \"./tools/SetGpuMemoryLimitTool\";\r\nimport { ElementIdFromSourceAspectIdTool, SourceAspectIdFromElementIdTool } from \"./tools/SourceAspectIdTools\";\r\nimport { ToggleTileRequestDecorationTool } from \"./tools/TileRequestDecoration\";\r\nimport { ToggleTileTreeBoundsDecorationTool } from \"./tools/TileTreeBoundsDecoration\";\r\nimport { ToggleToolTipsTool } from \"./tools/ToolTipProvider\";\r\n\r\n/** Entry-point for the package. Before using the package you *must* call [[FrontendDevTools.initialize]].\r\n * @beta\r\n */\r\nexport class FrontendDevTools {\r\n private static _initialized = false;\r\n\r\n /** Call this before using the package (e.g., before instantiating any of its widgets or attempting to use any of its tools.\r\n * To initialize when starting up your app:\r\n * ```ts\r\n * IModelApp.startup();\r\n * await FrontendDevTools.initialize();\r\n * ```\r\n * @beta\r\n */\r\n public static async initialize(): Promise<void> {\r\n if (this._initialized)\r\n return;\r\n\r\n this._initialized = true;\r\n\r\n const namespace = \"FrontendDevTools\";\r\n const namespacePromise = IModelApp.localization.registerNamespace(namespace);\r\n const tools = [\r\n AttachMapLayerTool,\r\n AttachMapOverlayTool,\r\n AttachArcGISMapLayerByUrlTool,\r\n AttachWmsMapLayerByUrlTool,\r\n AttachWmtsMapLayerByUrlTool,\r\n AttachTileURLMapLayerByUrlTool,\r\n AnimationIntervalTool,\r\n ApplyRenderingStyleTool,\r\n ApplyViewByIdTool,\r\n ApplyViewTool,\r\n ChangeBackgroundColorTool,\r\n ChangeCameraTool,\r\n ChangeEmphasisSettingsTool,\r\n ChangeFlashSettingsTool,\r\n ChangeHiliteSettingsTool,\r\n ChangePlanProjectionSettingsTool,\r\n ChangeUnitsTool,\r\n ChangeViewFlagsTool,\r\n ClearEffectsTool,\r\n ClearEmphasizedElementsTool,\r\n ClearIsolatedElementsTool,\r\n ClipColorTool,\r\n CompileShadersTool,\r\n DefaultTileSizeModifierTool,\r\n DetachMapLayersTool,\r\n DumpPlanProjectionSettingsTool,\r\n EdgeDetectionEffect,\r\n EmbossEffect,\r\n ElementIdFromSourceAspectIdTool,\r\n EmphasizeSelectedElementsTool,\r\n EmphasizeVisibleElementsTool,\r\n ExplosionEffect,\r\n FadeOutTool,\r\n FlipImageConfig,\r\n FlipImageEffect,\r\n FreezeSceneTool,\r\n GaussianBlurEffect,\r\n InspectElementTool,\r\n IsolateSelectedElementsTool,\r\n LensDistortionConfig,\r\n LensDistortionEffect,\r\n LoseWebGLContextTool,\r\n MapLayerTransparencyTool,\r\n MapLayerVisibilityTool,\r\n MapLayerSubLayerVisibilityTool,\r\n MapLayerZoomTool,\r\n MapBaseColorTool,\r\n MapBaseTransparencyTool,\r\n MapBaseVisibilityTool,\r\n MeasureTileLoadTimeTool,\r\n OverrideSubCategoryTool,\r\n OverrideSubCategoryPriorityTool,\r\n QueryScheduleScriptTool,\r\n RealityTransitionTool,\r\n ReorderMapLayers,\r\n ReportWebGLCompatibilityTool,\r\n SaturationConfig,\r\n SaturationEffect,\r\n SaveRenderingStyleTool,\r\n SaveViewTool,\r\n SelectElementsByIdTool,\r\n SetAASamplesTool,\r\n SetAspectRatioSkewTool,\r\n ToggleVolClassIntersect,\r\n SetMapBaseTool,\r\n SharpenEffect,\r\n SharpnessEffect,\r\n ShowTileVolumesTool,\r\n SkyCubeTool,\r\n SkySphereTool,\r\n SnowEffect,\r\n SourceAspectIdFromElementIdTool,\r\n TestClipStyleTool,\r\n Toggle3dManipulationsTool,\r\n ToggleDrawingGraphicsTool,\r\n ToggleDPIForLODTool,\r\n ToggleDrapeFrustumTool,\r\n ToggleFrustumSnapshotTool,\r\n TogglePrimitiveVisibilityTool,\r\n ToggleProjectExtentsTool,\r\n ToggleReadPixelsTool,\r\n ToggleSectionDrawingSpatialViewTool,\r\n ToggleSelectedViewFrustumTool,\r\n ToggleShadowFrustumTool,\r\n ToggleSkyboxTool,\r\n ToggleTileRequestDecorationTool,\r\n ToggleTileTreeBoundsDecorationTool,\r\n ToggleTileTreeReferencesTool,\r\n ToggleToolTipsTool,\r\n ToggleViewAttachmentBoundariesTool,\r\n ToggleViewAttachmentClipShapesTool,\r\n ToggleViewAttachmentsTool,\r\n ToggleWiremeshTool,\r\n ToggleRealityTileBounds,\r\n ToggleRealityTilePreload,\r\n ToggleRealityTileLogging,\r\n ToggleRealityTileFreeze,\r\n ToggleSectionCutTool,\r\n ToggleTerrainTool,\r\n UnsharpenEffect,\r\n ViewportAddRealityModel,\r\n ViewportTileSizeModifierTool,\r\n VignetteConfig,\r\n VignetteEffect,\r\n AttachRealityModelTool,\r\n DetachRealityModelTool,\r\n SaveRealityModelTool,\r\n SetGpuMemoryLimitTool,\r\n SetRealityModelLocateTool,\r\n SetRealityModelEmphasizedTool,\r\n SetRealityModelTransparencyTool,\r\n SetRealityModelColorTool,\r\n SetModelLocateTool,\r\n SetModelEmphasizedTool,\r\n SetModelTransparencyTool,\r\n SetModelColorTool,\r\n SetModelLineWeightTool,\r\n SetModelLineCodeTool,\r\n SetModelIgnoresMaterialsTool,\r\n ClearRealityModelAppearanceOverrides,\r\n ClearModelAppearanceOverrides,\r\n AttachCesiumAssetTool,\r\n ToggleOSMBuildingDisplay,\r\n SetHigherPriorityRealityModelMasking,\r\n SetMapHigherPriorityMasking,\r\n MaskRealityModelByModelTool,\r\n MaskRealityModelBySubCategoryTool,\r\n MaskRealityModelByElementTool,\r\n MaskRealityModelByExcludedElementTool,\r\n UnmaskRealityModelTool,\r\n MaskBackgroundMapByModelTool,\r\n MaskBackgroundMapBySubCategoryTool,\r\n MaskBackgroundMapByElementTool,\r\n MaskBackgroundMapByExcludedElementTool,\r\n UnmaskMapTool,\r\n WoWIgnoreBackgroundTool,\r\n ];\r\n\r\n for (const tool of tools)\r\n tool.register(namespace);\r\n\r\n return namespacePromise;\r\n }\r\n}\r\n"]}
@@ -144,4 +144,15 @@ export declare class ToggleWiremeshTool extends DisplayStyleTool {
144
144
  parse(args: string[]): Promise<boolean>;
145
145
  execute(vp: Viewport): Promise<boolean>;
146
146
  }
147
+ /** Change the background color of the active viewport and optionally its transparency.
148
+ * @beta
149
+ */
150
+ export declare class ChangeBackgroundColorTool extends DisplayStyleTool {
151
+ private _color?;
152
+ static toolId: string;
153
+ static get minArgs(): number;
154
+ static get maxArgs(): number;
155
+ parse(args: string[]): Promise<boolean>;
156
+ execute(vp: Viewport): Promise<boolean>;
157
+ }
147
158
  //# sourceMappingURL=DisplayStyleTools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayStyleTools.d.ts","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DisplayStyleTools.d.ts","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * See LICENSE.md in the project root for license terms and full copyright notice.
5
5
  *--------------------------------------------------------------------------------------------*/
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ToggleWiremeshTool = exports.WoWIgnoreBackgroundTool = exports.QueryScheduleScriptTool = exports.OverrideSubCategoryTool = exports.ApplyRenderingStyleTool = exports.SaveRenderingStyleTool = exports.SkyCubeTool = exports.SkySphereTool = exports.ToggleSkyboxTool = exports.ChangeViewFlagsTool = exports.DisplayStyleTool = void 0;
7
+ exports.ChangeBackgroundColorTool = exports.ToggleWiremeshTool = exports.WoWIgnoreBackgroundTool = exports.QueryScheduleScriptTool = exports.OverrideSubCategoryTool = exports.ApplyRenderingStyleTool = exports.SaveRenderingStyleTool = exports.SkyCubeTool = exports.SkySphereTool = exports.ToggleSkyboxTool = exports.ChangeViewFlagsTool = exports.DisplayStyleTool = void 0;
8
8
  /** @packageDocumentation
9
9
  * @module Tools
10
10
  */
@@ -424,4 +424,23 @@ class ToggleWiremeshTool extends DisplayStyleTool {
424
424
  }
425
425
  exports.ToggleWiremeshTool = ToggleWiremeshTool;
426
426
  ToggleWiremeshTool.toolId = "ToggleWiremesh";
427
+ /** Change the background color of the active viewport and optionally its transparency.
428
+ * @beta
429
+ */
430
+ class ChangeBackgroundColorTool extends DisplayStyleTool {
431
+ static get minArgs() { return 1; }
432
+ static get maxArgs() { return 1; }
433
+ async parse(args) {
434
+ this._color = core_common_1.ColorDef.fromString(args[0]);
435
+ return true;
436
+ }
437
+ async execute(vp) {
438
+ if (!this._color)
439
+ return false;
440
+ vp.displayStyle.backgroundColor = this._color;
441
+ return true;
442
+ }
443
+ }
444
+ exports.ChangeBackgroundColorTool = ChangeBackgroundColorTool;
445
+ ChangeBackgroundColorTool.toolId = "ChangeBackgroundColor";
427
446
  //# sourceMappingURL=DisplayStyleTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayStyleTools.js","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\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 { CompressedId64Set } from \"@itwin/core-bentley\";\r\nimport {\r\n DisplayStyle3dSettingsProps, DisplayStyleOverridesOptions, ElementLoadOptions, RenderMode, RenderSchedule, RenderTimelineProps, SkyCube, SkySphere,\r\n SubCategoryAppearance, SubCategoryOverride, ViewFlags, ViewFlagsProperties, WhiteOnWhiteReversalSettings,\r\n} from \"@itwin/core-common\";\r\nimport {\r\n DisplayStyle3dState, IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport,\r\n} from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseArgs } from \"./parseArgs\";\r\nimport { parseToggle } from \"./parseToggle\";\r\n\r\ntype BooleanFlagName =\r\n \"dimensions\" | \"patterns\" | \"weights\" | \"styles\" | \"transparency\" | \"fill\" | \"textures\" | \"materials\" | \"acsTriad\" | \"grid\" | \"visibleEdges\" |\r\n \"hiddenEdges\" | \"lighting\" | \"shadows\" | \"clipVolume\" | \"constructions\" | \"monochrome\" | \"backgroundMap\" | \"ambientOcclusion\" | \"forceSurfaceDiscard\"\r\n | \"wiremesh\";\r\n\r\n// Compiler has the info to construct this array for us, but we have no access to it...\r\nconst booleanFlagNames: BooleanFlagName[] = [\r\n \"dimensions\", \"patterns\", \"weights\", \"styles\", \"transparency\", \"fill\", \"textures\", \"materials\", \"acsTriad\", \"grid\", \"visibleEdges\",\r\n \"hiddenEdges\", \"lighting\", \"shadows\", \"clipVolume\", \"constructions\", \"monochrome\", \"backgroundMap\", \"ambientOcclusion\", \"forceSurfaceDiscard\",\r\n \"wiremesh\",\r\n];\r\n\r\nconst lowercaseBooleanFlagNames = booleanFlagNames.map((name) => name.toLowerCase());\r\n\r\n/** Modifies the selected viewport's DisplayStyleState.\r\n * @beta\r\n */\r\nexport abstract class DisplayStyleTool extends Tool {\r\n protected get require3d() { return false; }\r\n // Return true if the display style was modified - we will invalidate the viewport's render plan.\r\n protected abstract execute(vp: Viewport): Promise<boolean>;\r\n // Return false if failed to parse.\r\n protected abstract parse(args: string[], vp: Viewport): Promise<boolean>;\r\n\r\n public override async run(): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.execute(vp))\r\n vp.displayStyle = vp.view.displayStyle;\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.parse(args, vp))\r\n return this.run();\r\n else\r\n return false;\r\n }\r\n}\r\n\r\n/** Modifies the selected viewport's ViewFlags.\r\n * The keyin syntax is as follows:\r\n * fdt change viewflags flag=value\r\n * Where 'flag' is one of the BooleanFlagName values, or \"renderMode\"; and value is an integer.\r\n * For boolean flags, value is 0 for false or 1 for true. For renderMode, value is one of the RenderMode enum values.\r\n * Flag names are case-insensitive.\r\n * @beta\r\n */\r\nexport class ChangeViewFlagsTool extends Tool {\r\n public static override toolId = \"ChangeViewFlags\";\r\n public static override get maxArgs() { return undefined; }\r\n public static override get minArgs() { return 1; }\r\n\r\n public override async run(vf: ViewFlags, vp?: Viewport): Promise<boolean> {\r\n if (undefined !== vf && undefined !== vp)\r\n vp.viewFlags = vf;\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || 0 === args.length)\r\n return true;\r\n\r\n const vf: Partial<ViewFlagsProperties> = { ...vp.viewFlags };\r\n for (const arg of args) {\r\n const parts = arg.split(\"=\");\r\n if (2 !== parts.length)\r\n continue;\r\n\r\n const value = parseInt(parts[1], 10);\r\n if (Number.isNaN(value))\r\n continue;\r\n\r\n const name = parts[0].toLowerCase();\r\n if (name === \"rendermode\") {\r\n switch (value) {\r\n case RenderMode.SmoothShade:\r\n case RenderMode.Wireframe:\r\n case RenderMode.HiddenLine:\r\n case RenderMode.SolidFill:\r\n vf.renderMode = value;\r\n vp.invalidateRenderPlan();\r\n break;\r\n }\r\n\r\n continue;\r\n }\r\n\r\n if (0 !== value && 1 !== value)\r\n continue;\r\n\r\n const index = lowercaseBooleanFlagNames.indexOf(name);\r\n if (-1 !== index) {\r\n const propName = booleanFlagNames[index];\r\n vf[propName] = 0 !== value;\r\n vp.invalidateRenderPlan();\r\n }\r\n }\r\n\r\n return this.run(new ViewFlags(vf), vp);\r\n }\r\n}\r\n\r\n/** Toggles the skybox.\r\n * @beta\r\n */\r\nexport class ToggleSkyboxTool extends DisplayStyleTool {\r\n public static override toolId = \"ToggleSkybox\";\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(_args: string[]): Promise<boolean> { return true; } // no arguments\r\n\r\n public async execute(vp: Viewport) {\r\n const style = vp.view.displayStyle as DisplayStyle3dState;\r\n style.environment = style.environment.withDisplay({ sky: !style.environment.displaySky });\r\n return true;\r\n }\r\n}\r\n\r\n/** Defines a [SkySphere]($common) to apply to the current view.\r\n * @beta\r\n */\r\nexport class SkySphereTool extends DisplayStyleTool {\r\n private _image?: string;\r\n\r\n public static override toolId = \"SetSkySphere\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(args: string[]) {\r\n this._image = args[0];\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (this._image && vp.view.is3d()) {\r\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\r\n displaySky: true,\r\n sky: new SkySphere(this._image),\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Defines a [SkyCube]($common) to apply to the current view.\r\n * @beta\r\n */\r\nexport class SkyCubeTool extends DisplayStyleTool {\r\n private _images: string[] = [];\r\n\r\n public static override toolId = \"SetSkyCube\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 6; }\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(args: string[]) {\r\n this._images = [...args];\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const imgs = this._images;\r\n if (imgs.length === 0 || !vp.view.is3d())\r\n return true;\r\n\r\n let top, bottom, left, right, front, back;\r\n switch (imgs.length) {\r\n case 1:\r\n top = bottom = left = right = front = back = imgs[0];\r\n break;\r\n case 2:\r\n top = bottom = imgs[0];\r\n left = right = front = back = imgs[1];\r\n break;\r\n case 3:\r\n top = bottom = imgs[0];\r\n left = right = imgs[1];\r\n front = back = imgs[2];\r\n break;\r\n case 4:\r\n top = imgs[0];\r\n bottom = imgs[1];\r\n left = right = imgs[2];\r\n front = back = imgs[3];\r\n break;\r\n case 5:\r\n top = bottom = imgs[0];\r\n left = imgs[1];\r\n right = imgs[2];\r\n front = imgs[3];\r\n back = imgs[4];\r\n break;\r\n default:\r\n top = imgs[0];\r\n bottom = imgs[1];\r\n left = imgs[2];\r\n right = imgs[3];\r\n front = imgs[4];\r\n back = imgs[5];\r\n break;\r\n }\r\n\r\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\r\n displaySky: true,\r\n sky: new SkyCube({ top, bottom, left, right, front, back }),\r\n });\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Outputs (and optionally copies to the clipboard) a \"rendering style\" as a partial DisplayStyle3dSettingsProps JSON object based\r\n * on the current view's display style settings.\r\n * All arguments are optional, of the form \"name=value\" where `value` is 0 for false or 1 for true. All arguments default to `false` if omitted.\r\n * @see [DisplayStyleSettings.toOverrides]($common) for details.\r\n * Arguments:\r\n * * `all`: include all settings.\r\n * * `imodel`: include iModel-specific settings.\r\n * * `project`: include iTwin-specific (formerly known as project) settings.\r\n * * `map`: include background map settings.\r\n * * `drawingaids`: include drawing aid decoration settings.\r\n * * `copy`: copy result to system clipboard.\r\n * * `quote`: format the JSON so it can be parsed directly by [ApplyRenderingStyleTool].\r\n * @beta\r\n */\r\nexport class SaveRenderingStyleTool extends DisplayStyleTool {\r\n private _options: DisplayStyleOverridesOptions = {};\r\n private _copyToClipboard = false;\r\n private _quote = false;\r\n\r\n public static override toolId = \"SaveRenderingStyle\";\r\n\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 7; }\r\n\r\n public async parse(inputArgs: string[]) {\r\n const args = parseArgs(inputArgs);\r\n function getArg(name: string): true | undefined {\r\n return args.getBoolean(name) ? true : undefined;\r\n }\r\n\r\n this._options.includeAll = getArg(\"a\");\r\n this._options.includeIModelSpecific = getArg(\"i\");\r\n this._options.includeITwinSpecific = getArg(\"p\"); // \"p\" for backwards compatibility with old \"project\" terminology\r\n this._options.includeBackgroundMap = getArg(\"m\");\r\n this._options.includeDrawingAids = getArg(\"d\");\r\n this._copyToClipboard = true === getArg(\"c\");\r\n this._quote = true === getArg(\"q\");\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n let json = JSON.stringify(vp.displayStyle.settings.toOverrides(this._options));\r\n if (this._quote)\r\n json = `\"${json.replace(/\"/g, '\"\"')}\"`;\r\n\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Rendering style saved\", json));\r\n if (this._copyToClipboard)\r\n copyStringToClipboard(json);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Given a \"rendering style\" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.\r\n * @see [DisplayStyleSettings.applyOverrides]($common) for details.\r\n * @beta\r\n */\r\nexport class ApplyRenderingStyleTool extends DisplayStyleTool {\r\n private _overrides?: DisplayStyle3dSettingsProps;\r\n\r\n public static override toolId = \"ApplyRenderingStyle\";\r\n\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n try {\r\n this._overrides = JSON.parse(args[0]);\r\n return true;\r\n } catch {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"Invalid JSON\"));\r\n return false;\r\n }\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (this._overrides)\r\n vp.overrideDisplayStyle(this._overrides);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Apply appearance overrides to one or more subcategories in the active viewport.\r\n * @beta\r\n */\r\nexport class OverrideSubCategoryTool extends DisplayStyleTool {\r\n private _overrideProps: SubCategoryAppearance.Props = {};\r\n private _subcategoryIds: string[] = [];\r\n\r\n public static override toolId = \"OverrideSubCategory\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 7; }\r\n\r\n public async parse(inArgs: string[]) {\r\n const args = parseArgs(inArgs);\r\n const ids = args.get(\"i\");\r\n if (ids)\r\n this._subcategoryIds = ids.split(\",\");\r\n\r\n const props = this._overrideProps;\r\n props.color = args.getInteger(\"c\");\r\n props.weight = args.getInteger(\"w\");\r\n props.priority = args.getInteger(\"p\");\r\n props.transp = args.getFloat(\"t\");\r\n props.material = args.get(\"m\");\r\n\r\n const visible = args.getBoolean(\"v\");\r\n props.invisible = typeof visible === \"boolean\" ? !visible : undefined;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const ovr = SubCategoryOverride.fromJSON(this._overrideProps);\r\n for (const id of this._subcategoryIds)\r\n vp.displayStyle.overrideSubCategory(id, ovr);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Query the schedule script JSON from an element.\r\n * @beta\r\n */\r\nexport class QueryScheduleScriptTool extends DisplayStyleTool {\r\n private _sourceId?: string;\r\n private _action: \"copy\" | \"break\" = \"copy\";\r\n private _includeElementIds = false;\r\n private _countElementIds = false;\r\n private _expandElementIds = false;\r\n\r\n public static override toolId = \"QueryScheduleScript\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 3; }\r\n\r\n public async parse(input: string[], vp: Viewport) {\r\n const args = parseArgs(input);\r\n this._sourceId = args.get(\"i\") ?? vp.displayStyle.scheduleScriptReference?.sourceId;\r\n if (!this._sourceId)\r\n return false;\r\n\r\n const action = args.get(\"a\") ?? \"\";\r\n this._action = action.length > 0 && \"b\" === action[0].toLowerCase() ? \"break\" : \"copy\";\r\n\r\n this._includeElementIds = this._countElementIds = this._expandElementIds = false;\r\n const ids = args.get(\"e\");\r\n if (ids && ids.length > 0) {\r\n switch (ids[0].toLowerCase()) {\r\n case \"i\":\r\n this._includeElementIds = true;\r\n break;\r\n case \"c\":\r\n this._includeElementIds = this._countElementIds = true;\r\n break;\r\n case \"e\":\r\n this._includeElementIds = this._expandElementIds = true;\r\n break;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (!this._sourceId || !this._action)\r\n return false;\r\n\r\n const opts: ElementLoadOptions = {\r\n displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },\r\n renderTimeline: { omitScriptElementIds: !this._includeElementIds },\r\n };\r\n\r\n let script;\r\n const props = await vp.iModel.elements.loadProps(this._sourceId, opts) as any;\r\n if (props.script)\r\n script = JSON.parse((props.script as RenderTimelineProps).script) as RenderSchedule.ScriptProps;\r\n else if (props.jsonProperties?.styles?.scheduleScript)\r\n script = props.jsonProperties.styles.scheduleScript as RenderSchedule.ScriptProps;\r\n\r\n if (!script)\r\n return false;\r\n\r\n if (this._countElementIds || this._expandElementIds) {\r\n for (const model of script) {\r\n for (const elem of model.elementTimelines) {\r\n const elemIds = typeof elem.elementIds === \"string\" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;\r\n if (this._countElementIds)\r\n elem.elementIds = elemIds.length as any;\r\n else\r\n elem.elementIds = elemIds;\r\n }\r\n }\r\n }\r\n\r\n if (this._action === \"break\")\r\n debugger; // eslint-disable-line no-debugger\r\n else\r\n copyStringToClipboard(JSON.stringify(script, null, 2));\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Set whether background color is ignored when applying white-on-white reversal.\r\n * @beta\r\n */\r\nexport class WoWIgnoreBackgroundTool extends DisplayStyleTool {\r\n private _ignore?: boolean;\r\n\r\n public static override toolId = \"WoWIgnoreBackground\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n const ignore = parseToggle(args[0]);\r\n if (typeof ignore === \"string\")\r\n return false;\r\n\r\n this._ignore = ignore;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const ignoreBackgroundColor = this._ignore ?? !vp.displayStyle.settings.whiteOnWhiteReversal.ignoreBackgroundColor;\r\n vp.displayStyle.settings.whiteOnWhiteReversal = WhiteOnWhiteReversalSettings.fromJSON({ ignoreBackgroundColor });\r\n return true;\r\n }\r\n}\r\n\r\n/** Toggle whether surfaces display with overlaid wiremesh in the active viewport.\r\n * @see [ViewFlags.wiremesh]($common).\r\n * @beta\r\n */\r\nexport class ToggleWiremeshTool extends DisplayStyleTool {\r\n private _enable?: boolean;\r\n\r\n public static override toolId = \"ToggleWiremesh\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable === \"string\")\r\n return false;\r\n\r\n this._enable = enable;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n vp.viewFlags = vp.viewFlags.with(\"wiremesh\", this._enable ?? !vp.viewFlags.wiremesh);\r\n return true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"DisplayStyleTools.js","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { CompressedId64Set } from \"@itwin/core-bentley\";\r\nimport {\r\n ColorDef, DisplayStyle3dSettingsProps, DisplayStyleOverridesOptions, ElementLoadOptions, RenderMode, RenderSchedule, RenderTimelineProps, SkyCube, SkySphere,\r\n SubCategoryAppearance, SubCategoryOverride, ViewFlags, ViewFlagsProperties, WhiteOnWhiteReversalSettings,\r\n} from \"@itwin/core-common\";\r\nimport {\r\n DisplayStyle3dState, IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport,\r\n} from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseArgs } from \"./parseArgs\";\r\nimport { parseToggle } from \"./parseToggle\";\r\n\r\ntype BooleanFlagName =\r\n \"dimensions\" | \"patterns\" | \"weights\" | \"styles\" | \"transparency\" | \"fill\" | \"textures\" | \"materials\" | \"acsTriad\" | \"grid\" | \"visibleEdges\" |\r\n \"hiddenEdges\" | \"lighting\" | \"shadows\" | \"clipVolume\" | \"constructions\" | \"monochrome\" | \"backgroundMap\" | \"ambientOcclusion\" | \"forceSurfaceDiscard\"\r\n | \"wiremesh\";\r\n\r\n// Compiler has the info to construct this array for us, but we have no access to it...\r\nconst booleanFlagNames: BooleanFlagName[] = [\r\n \"dimensions\", \"patterns\", \"weights\", \"styles\", \"transparency\", \"fill\", \"textures\", \"materials\", \"acsTriad\", \"grid\", \"visibleEdges\",\r\n \"hiddenEdges\", \"lighting\", \"shadows\", \"clipVolume\", \"constructions\", \"monochrome\", \"backgroundMap\", \"ambientOcclusion\", \"forceSurfaceDiscard\",\r\n \"wiremesh\",\r\n];\r\n\r\nconst lowercaseBooleanFlagNames = booleanFlagNames.map((name) => name.toLowerCase());\r\n\r\n/** Modifies the selected viewport's DisplayStyleState.\r\n * @beta\r\n */\r\nexport abstract class DisplayStyleTool extends Tool {\r\n protected get require3d() { return false; }\r\n // Return true if the display style was modified - we will invalidate the viewport's render plan.\r\n protected abstract execute(vp: Viewport): Promise<boolean>;\r\n // Return false if failed to parse.\r\n protected abstract parse(args: string[], vp: Viewport): Promise<boolean>;\r\n\r\n public override async run(): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.execute(vp))\r\n vp.displayStyle = vp.view.displayStyle;\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.parse(args, vp))\r\n return this.run();\r\n else\r\n return false;\r\n }\r\n}\r\n\r\n/** Modifies the selected viewport's ViewFlags.\r\n * The keyin syntax is as follows:\r\n * fdt change viewflags flag=value\r\n * Where 'flag' is one of the BooleanFlagName values, or \"renderMode\"; and value is an integer.\r\n * For boolean flags, value is 0 for false or 1 for true. For renderMode, value is one of the RenderMode enum values.\r\n * Flag names are case-insensitive.\r\n * @beta\r\n */\r\nexport class ChangeViewFlagsTool extends Tool {\r\n public static override toolId = \"ChangeViewFlags\";\r\n public static override get maxArgs() { return undefined; }\r\n public static override get minArgs() { return 1; }\r\n\r\n public override async run(vf: ViewFlags, vp?: Viewport): Promise<boolean> {\r\n if (undefined !== vf && undefined !== vp)\r\n vp.viewFlags = vf;\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || 0 === args.length)\r\n return true;\r\n\r\n const vf: Partial<ViewFlagsProperties> = { ...vp.viewFlags };\r\n for (const arg of args) {\r\n const parts = arg.split(\"=\");\r\n if (2 !== parts.length)\r\n continue;\r\n\r\n const value = parseInt(parts[1], 10);\r\n if (Number.isNaN(value))\r\n continue;\r\n\r\n const name = parts[0].toLowerCase();\r\n if (name === \"rendermode\") {\r\n switch (value) {\r\n case RenderMode.SmoothShade:\r\n case RenderMode.Wireframe:\r\n case RenderMode.HiddenLine:\r\n case RenderMode.SolidFill:\r\n vf.renderMode = value;\r\n vp.invalidateRenderPlan();\r\n break;\r\n }\r\n\r\n continue;\r\n }\r\n\r\n if (0 !== value && 1 !== value)\r\n continue;\r\n\r\n const index = lowercaseBooleanFlagNames.indexOf(name);\r\n if (-1 !== index) {\r\n const propName = booleanFlagNames[index];\r\n vf[propName] = 0 !== value;\r\n vp.invalidateRenderPlan();\r\n }\r\n }\r\n\r\n return this.run(new ViewFlags(vf), vp);\r\n }\r\n}\r\n\r\n/** Toggles the skybox.\r\n * @beta\r\n */\r\nexport class ToggleSkyboxTool extends DisplayStyleTool {\r\n public static override toolId = \"ToggleSkybox\";\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(_args: string[]): Promise<boolean> { return true; } // no arguments\r\n\r\n public async execute(vp: Viewport) {\r\n const style = vp.view.displayStyle as DisplayStyle3dState;\r\n style.environment = style.environment.withDisplay({ sky: !style.environment.displaySky });\r\n return true;\r\n }\r\n}\r\n\r\n/** Defines a [SkySphere]($common) to apply to the current view.\r\n * @beta\r\n */\r\nexport class SkySphereTool extends DisplayStyleTool {\r\n private _image?: string;\r\n\r\n public static override toolId = \"SetSkySphere\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(args: string[]) {\r\n this._image = args[0];\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (this._image && vp.view.is3d()) {\r\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\r\n displaySky: true,\r\n sky: new SkySphere(this._image),\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Defines a [SkyCube]($common) to apply to the current view.\r\n * @beta\r\n */\r\nexport class SkyCubeTool extends DisplayStyleTool {\r\n private _images: string[] = [];\r\n\r\n public static override toolId = \"SetSkyCube\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 6; }\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(args: string[]) {\r\n this._images = [...args];\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const imgs = this._images;\r\n if (imgs.length === 0 || !vp.view.is3d())\r\n return true;\r\n\r\n let top, bottom, left, right, front, back;\r\n switch (imgs.length) {\r\n case 1:\r\n top = bottom = left = right = front = back = imgs[0];\r\n break;\r\n case 2:\r\n top = bottom = imgs[0];\r\n left = right = front = back = imgs[1];\r\n break;\r\n case 3:\r\n top = bottom = imgs[0];\r\n left = right = imgs[1];\r\n front = back = imgs[2];\r\n break;\r\n case 4:\r\n top = imgs[0];\r\n bottom = imgs[1];\r\n left = right = imgs[2];\r\n front = back = imgs[3];\r\n break;\r\n case 5:\r\n top = bottom = imgs[0];\r\n left = imgs[1];\r\n right = imgs[2];\r\n front = imgs[3];\r\n back = imgs[4];\r\n break;\r\n default:\r\n top = imgs[0];\r\n bottom = imgs[1];\r\n left = imgs[2];\r\n right = imgs[3];\r\n front = imgs[4];\r\n back = imgs[5];\r\n break;\r\n }\r\n\r\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\r\n displaySky: true,\r\n sky: new SkyCube({ top, bottom, left, right, front, back }),\r\n });\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Outputs (and optionally copies to the clipboard) a \"rendering style\" as a partial DisplayStyle3dSettingsProps JSON object based\r\n * on the current view's display style settings.\r\n * All arguments are optional, of the form \"name=value\" where `value` is 0 for false or 1 for true. All arguments default to `false` if omitted.\r\n * @see [DisplayStyleSettings.toOverrides]($common) for details.\r\n * Arguments:\r\n * * `all`: include all settings.\r\n * * `imodel`: include iModel-specific settings.\r\n * * `project`: include iTwin-specific (formerly known as project) settings.\r\n * * `map`: include background map settings.\r\n * * `drawingaids`: include drawing aid decoration settings.\r\n * * `copy`: copy result to system clipboard.\r\n * * `quote`: format the JSON so it can be parsed directly by [ApplyRenderingStyleTool].\r\n * @beta\r\n */\r\nexport class SaveRenderingStyleTool extends DisplayStyleTool {\r\n private _options: DisplayStyleOverridesOptions = {};\r\n private _copyToClipboard = false;\r\n private _quote = false;\r\n\r\n public static override toolId = \"SaveRenderingStyle\";\r\n\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 7; }\r\n\r\n public async parse(inputArgs: string[]) {\r\n const args = parseArgs(inputArgs);\r\n function getArg(name: string): true | undefined {\r\n return args.getBoolean(name) ? true : undefined;\r\n }\r\n\r\n this._options.includeAll = getArg(\"a\");\r\n this._options.includeIModelSpecific = getArg(\"i\");\r\n this._options.includeITwinSpecific = getArg(\"p\"); // \"p\" for backwards compatibility with old \"project\" terminology\r\n this._options.includeBackgroundMap = getArg(\"m\");\r\n this._options.includeDrawingAids = getArg(\"d\");\r\n this._copyToClipboard = true === getArg(\"c\");\r\n this._quote = true === getArg(\"q\");\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n let json = JSON.stringify(vp.displayStyle.settings.toOverrides(this._options));\r\n if (this._quote)\r\n json = `\"${json.replace(/\"/g, '\"\"')}\"`;\r\n\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Rendering style saved\", json));\r\n if (this._copyToClipboard)\r\n copyStringToClipboard(json);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Given a \"rendering style\" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.\r\n * @see [DisplayStyleSettings.applyOverrides]($common) for details.\r\n * @beta\r\n */\r\nexport class ApplyRenderingStyleTool extends DisplayStyleTool {\r\n private _overrides?: DisplayStyle3dSettingsProps;\r\n\r\n public static override toolId = \"ApplyRenderingStyle\";\r\n\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n try {\r\n this._overrides = JSON.parse(args[0]);\r\n return true;\r\n } catch {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"Invalid JSON\"));\r\n return false;\r\n }\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (this._overrides)\r\n vp.overrideDisplayStyle(this._overrides);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Apply appearance overrides to one or more subcategories in the active viewport.\r\n * @beta\r\n */\r\nexport class OverrideSubCategoryTool extends DisplayStyleTool {\r\n private _overrideProps: SubCategoryAppearance.Props = {};\r\n private _subcategoryIds: string[] = [];\r\n\r\n public static override toolId = \"OverrideSubCategory\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 7; }\r\n\r\n public async parse(inArgs: string[]) {\r\n const args = parseArgs(inArgs);\r\n const ids = args.get(\"i\");\r\n if (ids)\r\n this._subcategoryIds = ids.split(\",\");\r\n\r\n const props = this._overrideProps;\r\n props.color = args.getInteger(\"c\");\r\n props.weight = args.getInteger(\"w\");\r\n props.priority = args.getInteger(\"p\");\r\n props.transp = args.getFloat(\"t\");\r\n props.material = args.get(\"m\");\r\n\r\n const visible = args.getBoolean(\"v\");\r\n props.invisible = typeof visible === \"boolean\" ? !visible : undefined;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const ovr = SubCategoryOverride.fromJSON(this._overrideProps);\r\n for (const id of this._subcategoryIds)\r\n vp.displayStyle.overrideSubCategory(id, ovr);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Query the schedule script JSON from an element.\r\n * @beta\r\n */\r\nexport class QueryScheduleScriptTool extends DisplayStyleTool {\r\n private _sourceId?: string;\r\n private _action: \"copy\" | \"break\" = \"copy\";\r\n private _includeElementIds = false;\r\n private _countElementIds = false;\r\n private _expandElementIds = false;\r\n\r\n public static override toolId = \"QueryScheduleScript\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 3; }\r\n\r\n public async parse(input: string[], vp: Viewport) {\r\n const args = parseArgs(input);\r\n this._sourceId = args.get(\"i\") ?? vp.displayStyle.scheduleScriptReference?.sourceId;\r\n if (!this._sourceId)\r\n return false;\r\n\r\n const action = args.get(\"a\") ?? \"\";\r\n this._action = action.length > 0 && \"b\" === action[0].toLowerCase() ? \"break\" : \"copy\";\r\n\r\n this._includeElementIds = this._countElementIds = this._expandElementIds = false;\r\n const ids = args.get(\"e\");\r\n if (ids && ids.length > 0) {\r\n switch (ids[0].toLowerCase()) {\r\n case \"i\":\r\n this._includeElementIds = true;\r\n break;\r\n case \"c\":\r\n this._includeElementIds = this._countElementIds = true;\r\n break;\r\n case \"e\":\r\n this._includeElementIds = this._expandElementIds = true;\r\n break;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (!this._sourceId || !this._action)\r\n return false;\r\n\r\n const opts: ElementLoadOptions = {\r\n displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },\r\n renderTimeline: { omitScriptElementIds: !this._includeElementIds },\r\n };\r\n\r\n let script;\r\n const props = await vp.iModel.elements.loadProps(this._sourceId, opts) as any;\r\n if (props.script)\r\n script = JSON.parse((props.script as RenderTimelineProps).script) as RenderSchedule.ScriptProps;\r\n else if (props.jsonProperties?.styles?.scheduleScript)\r\n script = props.jsonProperties.styles.scheduleScript as RenderSchedule.ScriptProps;\r\n\r\n if (!script)\r\n return false;\r\n\r\n if (this._countElementIds || this._expandElementIds) {\r\n for (const model of script) {\r\n for (const elem of model.elementTimelines) {\r\n const elemIds = typeof elem.elementIds === \"string\" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;\r\n if (this._countElementIds)\r\n elem.elementIds = elemIds.length as any;\r\n else\r\n elem.elementIds = elemIds;\r\n }\r\n }\r\n }\r\n\r\n if (this._action === \"break\")\r\n debugger; // eslint-disable-line no-debugger\r\n else\r\n copyStringToClipboard(JSON.stringify(script, null, 2));\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Set whether background color is ignored when applying white-on-white reversal.\r\n * @beta\r\n */\r\nexport class WoWIgnoreBackgroundTool extends DisplayStyleTool {\r\n private _ignore?: boolean;\r\n\r\n public static override toolId = \"WoWIgnoreBackground\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n const ignore = parseToggle(args[0]);\r\n if (typeof ignore === \"string\")\r\n return false;\r\n\r\n this._ignore = ignore;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const ignoreBackgroundColor = this._ignore ?? !vp.displayStyle.settings.whiteOnWhiteReversal.ignoreBackgroundColor;\r\n vp.displayStyle.settings.whiteOnWhiteReversal = WhiteOnWhiteReversalSettings.fromJSON({ ignoreBackgroundColor });\r\n return true;\r\n }\r\n}\r\n\r\n/** Toggle whether surfaces display with overlaid wiremesh in the active viewport.\r\n * @see [ViewFlags.wiremesh]($common).\r\n * @beta\r\n */\r\nexport class ToggleWiremeshTool extends DisplayStyleTool {\r\n private _enable?: boolean;\r\n\r\n public static override toolId = \"ToggleWiremesh\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable === \"string\")\r\n return false;\r\n\r\n this._enable = enable;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n vp.viewFlags = vp.viewFlags.with(\"wiremesh\", this._enable ?? !vp.viewFlags.wiremesh);\r\n return true;\r\n }\r\n}\r\n\r\n/** Change the background color of the active viewport and optionally its transparency.\r\n * @beta\r\n */\r\nexport class ChangeBackgroundColorTool extends DisplayStyleTool {\r\n private _color?: ColorDef;\r\n\r\n public static override toolId = \"ChangeBackgroundColor\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n this._color = ColorDef.fromString(args[0]);\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (!this._color)\r\n return false;\r\n\r\n vp.displayStyle.backgroundColor = this._color;\r\n return true;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrontEndDevTools.d.ts","sourceRoot":"","sources":["../../src/FrontEndDevTools.ts"],"names":[],"mappings":"AAIA;;GAEG;AA+DH;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IAEpC;;;;;;;OAOG;WACiB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAuJhD"}
1
+ {"version":3,"file":"FrontEndDevTools.d.ts","sourceRoot":"","sources":["../../src/FrontEndDevTools.ts"],"names":[],"mappings":"AAIA;;GAEG;AA+DH;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IAEpC;;;;;;;OAOG;WACiB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAwJhD"}
@@ -19,7 +19,7 @@ import { ChangeCameraTool, ChangeEmphasisSettingsTool, ChangeFlashSettingsTool,
19
19
  import { AnimationIntervalTool } from "./tools/AnimationIntervalTool";
20
20
  import { ChangeUnitsTool } from "./tools/ChangeUnitsTool";
21
21
  import { ClipColorTool, TestClipStyleTool, ToggleSectionCutTool } from "./tools/ClipTools";
22
- import { ApplyRenderingStyleTool, ChangeViewFlagsTool, OverrideSubCategoryTool, QueryScheduleScriptTool, SaveRenderingStyleTool, SkyCubeTool, SkySphereTool, ToggleSkyboxTool, ToggleWiremeshTool, WoWIgnoreBackgroundTool, } from "./tools/DisplayStyleTools";
22
+ import { ApplyRenderingStyleTool, ChangeBackgroundColorTool, ChangeViewFlagsTool, OverrideSubCategoryTool, QueryScheduleScriptTool, SaveRenderingStyleTool, SkyCubeTool, SkySphereTool, ToggleSkyboxTool, ToggleWiremeshTool, WoWIgnoreBackgroundTool, } from "./tools/DisplayStyleTools";
23
23
  import { ClearEmphasizedElementsTool, ClearIsolatedElementsTool, EmphasizeSelectedElementsTool, EmphasizeVisibleElementsTool, IsolateSelectedElementsTool, } from "./tools/EmphasizeElementsTool";
24
24
  import { ToggleFrustumSnapshotTool, ToggleSelectedViewFrustumTool, ToggleShadowFrustumTool } from "./tools/FrustumDecoration";
25
25
  import { InspectElementTool } from "./tools/InspectElementTool";
@@ -69,6 +69,7 @@ export class FrontendDevTools {
69
69
  ApplyRenderingStyleTool,
70
70
  ApplyViewByIdTool,
71
71
  ApplyViewTool,
72
+ ChangeBackgroundColorTool,
72
73
  ChangeCameraTool,
73
74
  ChangeEmphasisSettingsTool,
74
75
  ChangeFlashSettingsTool,
@@ -1 +1 @@
1
- {"version":3,"file":"FrontEndDevTools.js","sourceRoot":"","sources":["../../src/FrontEndDevTools.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/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { EdgeDetectionEffect, EmbossEffect, GaussianBlurEffect, SharpenEffect, SharpnessEffect, UnsharpenEffect } from \"./effects/Convolution\";\r\nimport { ClearEffectsTool } from \"./effects/EffectTools\";\r\nimport { ExplosionEffect } from \"./effects/Explosion\";\r\nimport { FlipImageConfig, FlipImageEffect } from \"./effects/FlipImage\";\r\nimport { LensDistortionConfig, LensDistortionEffect } from \"./effects/LensDistortion\";\r\nimport { SaturationConfig, SaturationEffect } from \"./effects/Saturation\";\r\nimport { SnowEffect } from \"./effects/Snow\";\r\nimport { VignetteConfig, VignetteEffect } from \"./effects/Vignette\";\r\nimport {\r\n MaskBackgroundMapByElementTool, MaskBackgroundMapByExcludedElementTool, MaskBackgroundMapByModelTool, MaskBackgroundMapBySubCategoryTool, MaskRealityModelByElementTool, MaskRealityModelByExcludedElementTool,\r\n MaskRealityModelByModelTool, MaskRealityModelBySubCategoryTool, SetHigherPriorityRealityModelMasking, SetMapHigherPriorityMasking, UnmaskMapTool, UnmaskRealityModelTool,\r\n} from \"./tools/PlanarMaskTools\";\r\nimport {\r\n ChangeCameraTool, ChangeEmphasisSettingsTool, ChangeFlashSettingsTool, ChangeHiliteSettingsTool, DefaultTileSizeModifierTool, FadeOutTool, FreezeSceneTool, SetAspectRatioSkewTool, ShowTileVolumesTool,\r\n Toggle3dManipulationsTool, ToggleDrawingGraphicsTool, ToggleSectionDrawingSpatialViewTool, ToggleTileTreeReferencesTool, ToggleViewAttachmentBoundariesTool, ToggleViewAttachmentClipShapesTool,\r\n ToggleViewAttachmentsTool, ViewportAddRealityModel, ViewportTileSizeModifierTool,\r\n} from \"./tools/ViewportTools\";\r\nimport { AnimationIntervalTool } from \"./tools/AnimationIntervalTool\";\r\nimport { ChangeUnitsTool } from \"./tools/ChangeUnitsTool\";\r\nimport { ClipColorTool, TestClipStyleTool, ToggleSectionCutTool } from \"./tools/ClipTools\";\r\nimport {\r\n ApplyRenderingStyleTool, ChangeViewFlagsTool, OverrideSubCategoryTool, QueryScheduleScriptTool, SaveRenderingStyleTool, SkyCubeTool, SkySphereTool, ToggleSkyboxTool,\r\n ToggleWiremeshTool, WoWIgnoreBackgroundTool,\r\n} from \"./tools/DisplayStyleTools\";\r\nimport {\r\n ClearEmphasizedElementsTool, ClearIsolatedElementsTool, EmphasizeSelectedElementsTool, EmphasizeVisibleElementsTool, IsolateSelectedElementsTool,\r\n} from \"./tools/EmphasizeElementsTool\";\r\nimport { ToggleFrustumSnapshotTool, ToggleSelectedViewFrustumTool, ToggleShadowFrustumTool } from \"./tools/FrustumDecoration\";\r\nimport { InspectElementTool } from \"./tools/InspectElementTool\";\r\nimport {\r\n AttachArcGISMapLayerByUrlTool, AttachMapLayerTool, AttachMapOverlayTool, AttachTileURLMapLayerByUrlTool, AttachWmsMapLayerByUrlTool,\r\n AttachWmtsMapLayerByUrlTool, DetachMapLayersTool, MapBaseColorTool, MapBaseTransparencyTool, MapBaseVisibilityTool, MapLayerSubLayerVisibilityTool,\r\n MapLayerTransparencyTool, MapLayerVisibilityTool, MapLayerZoomTool, ReorderMapLayers, SetMapBaseTool, ToggleTerrainTool,\r\n} from \"./tools/MapLayerTool\";\r\nimport { MeasureTileLoadTimeTool } from \"./tools/MeasureTileLoadTime\";\r\nimport {\r\n ClearModelAppearanceOverrides, SetModelColorTool, SetModelEmphasizedTool, SetModelIgnoresMaterialsTool, SetModelLineCodeTool,\r\n SetModelLineWeightTool, SetModelLocateTool, SetModelTransparencyTool,\r\n} from \"./tools/ModelAppearanceTools\";\r\nimport { ChangePlanProjectionSettingsTool, DumpPlanProjectionSettingsTool, OverrideSubCategoryPriorityTool } from \"./tools/PlanProjectionTools\";\r\nimport { ToggleProjectExtentsTool } from \"./tools/ProjectExtents\";\r\nimport {\r\n AttachCesiumAssetTool, AttachRealityModelTool, ClearRealityModelAppearanceOverrides, DetachRealityModelTool, SaveRealityModelTool,\r\n SetRealityModelColorTool, SetRealityModelEmphasizedTool, SetRealityModelLocateTool, SetRealityModelTransparencyTool, ToggleOSMBuildingDisplay,\r\n} from \"./tools/RealityModelTools\";\r\nimport { RealityTransitionTool } from \"./tools/RealityTransitionTool\";\r\nimport { CompileShadersTool, LoseWebGLContextTool, ToggleDPIForLODTool } from \"./tools/RenderSystemTools\";\r\nimport {\r\n SetAASamplesTool, ToggleDrapeFrustumTool, TogglePrimitiveVisibilityTool, ToggleReadPixelsTool, ToggleRealityTileBounds, ToggleRealityTileFreeze,\r\n ToggleRealityTileLogging, ToggleRealityTilePreload, ToggleVolClassIntersect,\r\n} from \"./tools/RenderTargetTools\";\r\nimport { ReportWebGLCompatibilityTool } from \"./tools/ReportWebGLCompatibilityTool\";\r\nimport { ApplyViewByIdTool, ApplyViewTool, SaveViewTool } from \"./tools/SavedViews\";\r\nimport { SelectElementsByIdTool } from \"./tools/SelectionTools\";\r\nimport { SetGpuMemoryLimitTool } from \"./tools/SetGpuMemoryLimitTool\";\r\nimport { ElementIdFromSourceAspectIdTool, SourceAspectIdFromElementIdTool } from \"./tools/SourceAspectIdTools\";\r\nimport { ToggleTileRequestDecorationTool } from \"./tools/TileRequestDecoration\";\r\nimport { ToggleTileTreeBoundsDecorationTool } from \"./tools/TileTreeBoundsDecoration\";\r\nimport { ToggleToolTipsTool } from \"./tools/ToolTipProvider\";\r\n\r\n/** Entry-point for the package. Before using the package you *must* call [[FrontendDevTools.initialize]].\r\n * @beta\r\n */\r\nexport class FrontendDevTools {\r\n private static _initialized = false;\r\n\r\n /** Call this before using the package (e.g., before instantiating any of its widgets or attempting to use any of its tools.\r\n * To initialize when starting up your app:\r\n * ```ts\r\n * IModelApp.startup();\r\n * await FrontendDevTools.initialize();\r\n * ```\r\n * @beta\r\n */\r\n public static async initialize(): Promise<void> {\r\n if (this._initialized)\r\n return;\r\n\r\n this._initialized = true;\r\n\r\n const namespace = \"FrontendDevTools\";\r\n const namespacePromise = IModelApp.localization.registerNamespace(namespace);\r\n const tools = [\r\n AttachMapLayerTool,\r\n AttachMapOverlayTool,\r\n AttachArcGISMapLayerByUrlTool,\r\n AttachWmsMapLayerByUrlTool,\r\n AttachWmtsMapLayerByUrlTool,\r\n AttachTileURLMapLayerByUrlTool,\r\n AnimationIntervalTool,\r\n ApplyRenderingStyleTool,\r\n ApplyViewByIdTool,\r\n ApplyViewTool,\r\n ChangeCameraTool,\r\n ChangeEmphasisSettingsTool,\r\n ChangeFlashSettingsTool,\r\n ChangeHiliteSettingsTool,\r\n ChangePlanProjectionSettingsTool,\r\n ChangeUnitsTool,\r\n ChangeViewFlagsTool,\r\n ClearEffectsTool,\r\n ClearEmphasizedElementsTool,\r\n ClearIsolatedElementsTool,\r\n ClipColorTool,\r\n CompileShadersTool,\r\n DefaultTileSizeModifierTool,\r\n DetachMapLayersTool,\r\n DumpPlanProjectionSettingsTool,\r\n EdgeDetectionEffect,\r\n EmbossEffect,\r\n ElementIdFromSourceAspectIdTool,\r\n EmphasizeSelectedElementsTool,\r\n EmphasizeVisibleElementsTool,\r\n ExplosionEffect,\r\n FadeOutTool,\r\n FlipImageConfig,\r\n FlipImageEffect,\r\n FreezeSceneTool,\r\n GaussianBlurEffect,\r\n InspectElementTool,\r\n IsolateSelectedElementsTool,\r\n LensDistortionConfig,\r\n LensDistortionEffect,\r\n LoseWebGLContextTool,\r\n MapLayerTransparencyTool,\r\n MapLayerVisibilityTool,\r\n MapLayerSubLayerVisibilityTool,\r\n MapLayerZoomTool,\r\n MapBaseColorTool,\r\n MapBaseTransparencyTool,\r\n MapBaseVisibilityTool,\r\n MeasureTileLoadTimeTool,\r\n OverrideSubCategoryTool,\r\n OverrideSubCategoryPriorityTool,\r\n QueryScheduleScriptTool,\r\n RealityTransitionTool,\r\n ReorderMapLayers,\r\n ReportWebGLCompatibilityTool,\r\n SaturationConfig,\r\n SaturationEffect,\r\n SaveRenderingStyleTool,\r\n SaveViewTool,\r\n SelectElementsByIdTool,\r\n SetAASamplesTool,\r\n SetAspectRatioSkewTool,\r\n ToggleVolClassIntersect,\r\n SetMapBaseTool,\r\n SharpenEffect,\r\n SharpnessEffect,\r\n ShowTileVolumesTool,\r\n SkyCubeTool,\r\n SkySphereTool,\r\n SnowEffect,\r\n SourceAspectIdFromElementIdTool,\r\n TestClipStyleTool,\r\n Toggle3dManipulationsTool,\r\n ToggleDrawingGraphicsTool,\r\n ToggleDPIForLODTool,\r\n ToggleDrapeFrustumTool,\r\n ToggleFrustumSnapshotTool,\r\n TogglePrimitiveVisibilityTool,\r\n ToggleProjectExtentsTool,\r\n ToggleReadPixelsTool,\r\n ToggleSectionDrawingSpatialViewTool,\r\n ToggleSelectedViewFrustumTool,\r\n ToggleShadowFrustumTool,\r\n ToggleSkyboxTool,\r\n ToggleTileRequestDecorationTool,\r\n ToggleTileTreeBoundsDecorationTool,\r\n ToggleTileTreeReferencesTool,\r\n ToggleToolTipsTool,\r\n ToggleViewAttachmentBoundariesTool,\r\n ToggleViewAttachmentClipShapesTool,\r\n ToggleViewAttachmentsTool,\r\n ToggleWiremeshTool,\r\n ToggleRealityTileBounds,\r\n ToggleRealityTilePreload,\r\n ToggleRealityTileLogging,\r\n ToggleRealityTileFreeze,\r\n ToggleSectionCutTool,\r\n ToggleTerrainTool,\r\n UnsharpenEffect,\r\n ViewportAddRealityModel,\r\n ViewportTileSizeModifierTool,\r\n VignetteConfig,\r\n VignetteEffect,\r\n AttachRealityModelTool,\r\n DetachRealityModelTool,\r\n SaveRealityModelTool,\r\n SetGpuMemoryLimitTool,\r\n SetRealityModelLocateTool,\r\n SetRealityModelEmphasizedTool,\r\n SetRealityModelTransparencyTool,\r\n SetRealityModelColorTool,\r\n SetModelLocateTool,\r\n SetModelEmphasizedTool,\r\n SetModelTransparencyTool,\r\n SetModelColorTool,\r\n SetModelLineWeightTool,\r\n SetModelLineCodeTool,\r\n SetModelIgnoresMaterialsTool,\r\n ClearRealityModelAppearanceOverrides,\r\n ClearModelAppearanceOverrides,\r\n AttachCesiumAssetTool,\r\n ToggleOSMBuildingDisplay,\r\n SetHigherPriorityRealityModelMasking,\r\n SetMapHigherPriorityMasking,\r\n MaskRealityModelByModelTool,\r\n MaskRealityModelBySubCategoryTool,\r\n MaskRealityModelByElementTool,\r\n MaskRealityModelByExcludedElementTool,\r\n UnmaskRealityModelTool,\r\n MaskBackgroundMapByModelTool,\r\n MaskBackgroundMapBySubCategoryTool,\r\n MaskBackgroundMapByElementTool,\r\n MaskBackgroundMapByExcludedElementTool,\r\n UnmaskMapTool,\r\n WoWIgnoreBackgroundTool,\r\n ];\r\n\r\n for (const tool of tools)\r\n tool.register(namespace);\r\n\r\n return namespacePromise;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"FrontEndDevTools.js","sourceRoot":"","sources":["../../src/FrontEndDevTools.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/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\nimport { IModelApp } from \"@itwin/core-frontend\";\r\nimport { EdgeDetectionEffect, EmbossEffect, GaussianBlurEffect, SharpenEffect, SharpnessEffect, UnsharpenEffect } from \"./effects/Convolution\";\r\nimport { ClearEffectsTool } from \"./effects/EffectTools\";\r\nimport { ExplosionEffect } from \"./effects/Explosion\";\r\nimport { FlipImageConfig, FlipImageEffect } from \"./effects/FlipImage\";\r\nimport { LensDistortionConfig, LensDistortionEffect } from \"./effects/LensDistortion\";\r\nimport { SaturationConfig, SaturationEffect } from \"./effects/Saturation\";\r\nimport { SnowEffect } from \"./effects/Snow\";\r\nimport { VignetteConfig, VignetteEffect } from \"./effects/Vignette\";\r\nimport {\r\n MaskBackgroundMapByElementTool, MaskBackgroundMapByExcludedElementTool, MaskBackgroundMapByModelTool, MaskBackgroundMapBySubCategoryTool, MaskRealityModelByElementTool, MaskRealityModelByExcludedElementTool,\r\n MaskRealityModelByModelTool, MaskRealityModelBySubCategoryTool, SetHigherPriorityRealityModelMasking, SetMapHigherPriorityMasking, UnmaskMapTool, UnmaskRealityModelTool,\r\n} from \"./tools/PlanarMaskTools\";\r\nimport {\r\n ChangeCameraTool, ChangeEmphasisSettingsTool, ChangeFlashSettingsTool, ChangeHiliteSettingsTool, DefaultTileSizeModifierTool, FadeOutTool, FreezeSceneTool, SetAspectRatioSkewTool, ShowTileVolumesTool,\r\n Toggle3dManipulationsTool, ToggleDrawingGraphicsTool, ToggleSectionDrawingSpatialViewTool, ToggleTileTreeReferencesTool, ToggleViewAttachmentBoundariesTool, ToggleViewAttachmentClipShapesTool,\r\n ToggleViewAttachmentsTool, ViewportAddRealityModel, ViewportTileSizeModifierTool,\r\n} from \"./tools/ViewportTools\";\r\nimport { AnimationIntervalTool } from \"./tools/AnimationIntervalTool\";\r\nimport { ChangeUnitsTool } from \"./tools/ChangeUnitsTool\";\r\nimport { ClipColorTool, TestClipStyleTool, ToggleSectionCutTool } from \"./tools/ClipTools\";\r\nimport {\r\n ApplyRenderingStyleTool, ChangeBackgroundColorTool, ChangeViewFlagsTool, OverrideSubCategoryTool, QueryScheduleScriptTool, SaveRenderingStyleTool, SkyCubeTool, SkySphereTool, ToggleSkyboxTool,\r\n ToggleWiremeshTool, WoWIgnoreBackgroundTool,\r\n} from \"./tools/DisplayStyleTools\";\r\nimport {\r\n ClearEmphasizedElementsTool, ClearIsolatedElementsTool, EmphasizeSelectedElementsTool, EmphasizeVisibleElementsTool, IsolateSelectedElementsTool,\r\n} from \"./tools/EmphasizeElementsTool\";\r\nimport { ToggleFrustumSnapshotTool, ToggleSelectedViewFrustumTool, ToggleShadowFrustumTool } from \"./tools/FrustumDecoration\";\r\nimport { InspectElementTool } from \"./tools/InspectElementTool\";\r\nimport {\r\n AttachArcGISMapLayerByUrlTool, AttachMapLayerTool, AttachMapOverlayTool, AttachTileURLMapLayerByUrlTool, AttachWmsMapLayerByUrlTool,\r\n AttachWmtsMapLayerByUrlTool, DetachMapLayersTool, MapBaseColorTool, MapBaseTransparencyTool, MapBaseVisibilityTool, MapLayerSubLayerVisibilityTool,\r\n MapLayerTransparencyTool, MapLayerVisibilityTool, MapLayerZoomTool, ReorderMapLayers, SetMapBaseTool, ToggleTerrainTool,\r\n} from \"./tools/MapLayerTool\";\r\nimport { MeasureTileLoadTimeTool } from \"./tools/MeasureTileLoadTime\";\r\nimport {\r\n ClearModelAppearanceOverrides, SetModelColorTool, SetModelEmphasizedTool, SetModelIgnoresMaterialsTool, SetModelLineCodeTool,\r\n SetModelLineWeightTool, SetModelLocateTool, SetModelTransparencyTool,\r\n} from \"./tools/ModelAppearanceTools\";\r\nimport { ChangePlanProjectionSettingsTool, DumpPlanProjectionSettingsTool, OverrideSubCategoryPriorityTool } from \"./tools/PlanProjectionTools\";\r\nimport { ToggleProjectExtentsTool } from \"./tools/ProjectExtents\";\r\nimport {\r\n AttachCesiumAssetTool, AttachRealityModelTool, ClearRealityModelAppearanceOverrides, DetachRealityModelTool, SaveRealityModelTool,\r\n SetRealityModelColorTool, SetRealityModelEmphasizedTool, SetRealityModelLocateTool, SetRealityModelTransparencyTool, ToggleOSMBuildingDisplay,\r\n} from \"./tools/RealityModelTools\";\r\nimport { RealityTransitionTool } from \"./tools/RealityTransitionTool\";\r\nimport { CompileShadersTool, LoseWebGLContextTool, ToggleDPIForLODTool } from \"./tools/RenderSystemTools\";\r\nimport {\r\n SetAASamplesTool, ToggleDrapeFrustumTool, TogglePrimitiveVisibilityTool, ToggleReadPixelsTool, ToggleRealityTileBounds, ToggleRealityTileFreeze,\r\n ToggleRealityTileLogging, ToggleRealityTilePreload, ToggleVolClassIntersect,\r\n} from \"./tools/RenderTargetTools\";\r\nimport { ReportWebGLCompatibilityTool } from \"./tools/ReportWebGLCompatibilityTool\";\r\nimport { ApplyViewByIdTool, ApplyViewTool, SaveViewTool } from \"./tools/SavedViews\";\r\nimport { SelectElementsByIdTool } from \"./tools/SelectionTools\";\r\nimport { SetGpuMemoryLimitTool } from \"./tools/SetGpuMemoryLimitTool\";\r\nimport { ElementIdFromSourceAspectIdTool, SourceAspectIdFromElementIdTool } from \"./tools/SourceAspectIdTools\";\r\nimport { ToggleTileRequestDecorationTool } from \"./tools/TileRequestDecoration\";\r\nimport { ToggleTileTreeBoundsDecorationTool } from \"./tools/TileTreeBoundsDecoration\";\r\nimport { ToggleToolTipsTool } from \"./tools/ToolTipProvider\";\r\n\r\n/** Entry-point for the package. Before using the package you *must* call [[FrontendDevTools.initialize]].\r\n * @beta\r\n */\r\nexport class FrontendDevTools {\r\n private static _initialized = false;\r\n\r\n /** Call this before using the package (e.g., before instantiating any of its widgets or attempting to use any of its tools.\r\n * To initialize when starting up your app:\r\n * ```ts\r\n * IModelApp.startup();\r\n * await FrontendDevTools.initialize();\r\n * ```\r\n * @beta\r\n */\r\n public static async initialize(): Promise<void> {\r\n if (this._initialized)\r\n return;\r\n\r\n this._initialized = true;\r\n\r\n const namespace = \"FrontendDevTools\";\r\n const namespacePromise = IModelApp.localization.registerNamespace(namespace);\r\n const tools = [\r\n AttachMapLayerTool,\r\n AttachMapOverlayTool,\r\n AttachArcGISMapLayerByUrlTool,\r\n AttachWmsMapLayerByUrlTool,\r\n AttachWmtsMapLayerByUrlTool,\r\n AttachTileURLMapLayerByUrlTool,\r\n AnimationIntervalTool,\r\n ApplyRenderingStyleTool,\r\n ApplyViewByIdTool,\r\n ApplyViewTool,\r\n ChangeBackgroundColorTool,\r\n ChangeCameraTool,\r\n ChangeEmphasisSettingsTool,\r\n ChangeFlashSettingsTool,\r\n ChangeHiliteSettingsTool,\r\n ChangePlanProjectionSettingsTool,\r\n ChangeUnitsTool,\r\n ChangeViewFlagsTool,\r\n ClearEffectsTool,\r\n ClearEmphasizedElementsTool,\r\n ClearIsolatedElementsTool,\r\n ClipColorTool,\r\n CompileShadersTool,\r\n DefaultTileSizeModifierTool,\r\n DetachMapLayersTool,\r\n DumpPlanProjectionSettingsTool,\r\n EdgeDetectionEffect,\r\n EmbossEffect,\r\n ElementIdFromSourceAspectIdTool,\r\n EmphasizeSelectedElementsTool,\r\n EmphasizeVisibleElementsTool,\r\n ExplosionEffect,\r\n FadeOutTool,\r\n FlipImageConfig,\r\n FlipImageEffect,\r\n FreezeSceneTool,\r\n GaussianBlurEffect,\r\n InspectElementTool,\r\n IsolateSelectedElementsTool,\r\n LensDistortionConfig,\r\n LensDistortionEffect,\r\n LoseWebGLContextTool,\r\n MapLayerTransparencyTool,\r\n MapLayerVisibilityTool,\r\n MapLayerSubLayerVisibilityTool,\r\n MapLayerZoomTool,\r\n MapBaseColorTool,\r\n MapBaseTransparencyTool,\r\n MapBaseVisibilityTool,\r\n MeasureTileLoadTimeTool,\r\n OverrideSubCategoryTool,\r\n OverrideSubCategoryPriorityTool,\r\n QueryScheduleScriptTool,\r\n RealityTransitionTool,\r\n ReorderMapLayers,\r\n ReportWebGLCompatibilityTool,\r\n SaturationConfig,\r\n SaturationEffect,\r\n SaveRenderingStyleTool,\r\n SaveViewTool,\r\n SelectElementsByIdTool,\r\n SetAASamplesTool,\r\n SetAspectRatioSkewTool,\r\n ToggleVolClassIntersect,\r\n SetMapBaseTool,\r\n SharpenEffect,\r\n SharpnessEffect,\r\n ShowTileVolumesTool,\r\n SkyCubeTool,\r\n SkySphereTool,\r\n SnowEffect,\r\n SourceAspectIdFromElementIdTool,\r\n TestClipStyleTool,\r\n Toggle3dManipulationsTool,\r\n ToggleDrawingGraphicsTool,\r\n ToggleDPIForLODTool,\r\n ToggleDrapeFrustumTool,\r\n ToggleFrustumSnapshotTool,\r\n TogglePrimitiveVisibilityTool,\r\n ToggleProjectExtentsTool,\r\n ToggleReadPixelsTool,\r\n ToggleSectionDrawingSpatialViewTool,\r\n ToggleSelectedViewFrustumTool,\r\n ToggleShadowFrustumTool,\r\n ToggleSkyboxTool,\r\n ToggleTileRequestDecorationTool,\r\n ToggleTileTreeBoundsDecorationTool,\r\n ToggleTileTreeReferencesTool,\r\n ToggleToolTipsTool,\r\n ToggleViewAttachmentBoundariesTool,\r\n ToggleViewAttachmentClipShapesTool,\r\n ToggleViewAttachmentsTool,\r\n ToggleWiremeshTool,\r\n ToggleRealityTileBounds,\r\n ToggleRealityTilePreload,\r\n ToggleRealityTileLogging,\r\n ToggleRealityTileFreeze,\r\n ToggleSectionCutTool,\r\n ToggleTerrainTool,\r\n UnsharpenEffect,\r\n ViewportAddRealityModel,\r\n ViewportTileSizeModifierTool,\r\n VignetteConfig,\r\n VignetteEffect,\r\n AttachRealityModelTool,\r\n DetachRealityModelTool,\r\n SaveRealityModelTool,\r\n SetGpuMemoryLimitTool,\r\n SetRealityModelLocateTool,\r\n SetRealityModelEmphasizedTool,\r\n SetRealityModelTransparencyTool,\r\n SetRealityModelColorTool,\r\n SetModelLocateTool,\r\n SetModelEmphasizedTool,\r\n SetModelTransparencyTool,\r\n SetModelColorTool,\r\n SetModelLineWeightTool,\r\n SetModelLineCodeTool,\r\n SetModelIgnoresMaterialsTool,\r\n ClearRealityModelAppearanceOverrides,\r\n ClearModelAppearanceOverrides,\r\n AttachCesiumAssetTool,\r\n ToggleOSMBuildingDisplay,\r\n SetHigherPriorityRealityModelMasking,\r\n SetMapHigherPriorityMasking,\r\n MaskRealityModelByModelTool,\r\n MaskRealityModelBySubCategoryTool,\r\n MaskRealityModelByElementTool,\r\n MaskRealityModelByExcludedElementTool,\r\n UnmaskRealityModelTool,\r\n MaskBackgroundMapByModelTool,\r\n MaskBackgroundMapBySubCategoryTool,\r\n MaskBackgroundMapByElementTool,\r\n MaskBackgroundMapByExcludedElementTool,\r\n UnmaskMapTool,\r\n WoWIgnoreBackgroundTool,\r\n ];\r\n\r\n for (const tool of tools)\r\n tool.register(namespace);\r\n\r\n return namespacePromise;\r\n }\r\n}\r\n"]}
@@ -144,4 +144,15 @@ export declare class ToggleWiremeshTool extends DisplayStyleTool {
144
144
  parse(args: string[]): Promise<boolean>;
145
145
  execute(vp: Viewport): Promise<boolean>;
146
146
  }
147
+ /** Change the background color of the active viewport and optionally its transparency.
148
+ * @beta
149
+ */
150
+ export declare class ChangeBackgroundColorTool extends DisplayStyleTool {
151
+ private _color?;
152
+ static toolId: string;
153
+ static get minArgs(): number;
154
+ static get maxArgs(): number;
155
+ parse(args: string[]): Promise<boolean>;
156
+ execute(vp: Viewport): Promise<boolean>;
157
+ }
147
158
  //# sourceMappingURL=DisplayStyleTools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayStyleTools.d.ts","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DisplayStyleTools.d.ts","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * @module Tools
7
7
  */
8
8
  import { CompressedId64Set } from "@itwin/core-bentley";
9
- import { RenderMode, SkyCube, SkySphere, SubCategoryOverride, ViewFlags, WhiteOnWhiteReversalSettings, } from "@itwin/core-common";
9
+ import { ColorDef, RenderMode, SkyCube, SkySphere, SubCategoryOverride, ViewFlags, WhiteOnWhiteReversalSettings, } from "@itwin/core-common";
10
10
  import { IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, } from "@itwin/core-frontend";
11
11
  import { copyStringToClipboard } from "../ClipboardUtilities";
12
12
  import { parseArgs } from "./parseArgs";
@@ -410,4 +410,22 @@ export class ToggleWiremeshTool extends DisplayStyleTool {
410
410
  }
411
411
  }
412
412
  ToggleWiremeshTool.toolId = "ToggleWiremesh";
413
+ /** Change the background color of the active viewport and optionally its transparency.
414
+ * @beta
415
+ */
416
+ export class ChangeBackgroundColorTool extends DisplayStyleTool {
417
+ static get minArgs() { return 1; }
418
+ static get maxArgs() { return 1; }
419
+ async parse(args) {
420
+ this._color = ColorDef.fromString(args[0]);
421
+ return true;
422
+ }
423
+ async execute(vp) {
424
+ if (!this._color)
425
+ return false;
426
+ vp.displayStyle.backgroundColor = this._color;
427
+ return true;
428
+ }
429
+ }
430
+ ChangeBackgroundColorTool.toolId = "ChangeBackgroundColor";
413
431
  //# sourceMappingURL=DisplayStyleTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayStyleTools.js","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\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 { CompressedId64Set } from \"@itwin/core-bentley\";\r\nimport {\r\n DisplayStyle3dSettingsProps, DisplayStyleOverridesOptions, ElementLoadOptions, RenderMode, RenderSchedule, RenderTimelineProps, SkyCube, SkySphere,\r\n SubCategoryAppearance, SubCategoryOverride, ViewFlags, ViewFlagsProperties, WhiteOnWhiteReversalSettings,\r\n} from \"@itwin/core-common\";\r\nimport {\r\n DisplayStyle3dState, IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport,\r\n} from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseArgs } from \"./parseArgs\";\r\nimport { parseToggle } from \"./parseToggle\";\r\n\r\ntype BooleanFlagName =\r\n \"dimensions\" | \"patterns\" | \"weights\" | \"styles\" | \"transparency\" | \"fill\" | \"textures\" | \"materials\" | \"acsTriad\" | \"grid\" | \"visibleEdges\" |\r\n \"hiddenEdges\" | \"lighting\" | \"shadows\" | \"clipVolume\" | \"constructions\" | \"monochrome\" | \"backgroundMap\" | \"ambientOcclusion\" | \"forceSurfaceDiscard\"\r\n | \"wiremesh\";\r\n\r\n// Compiler has the info to construct this array for us, but we have no access to it...\r\nconst booleanFlagNames: BooleanFlagName[] = [\r\n \"dimensions\", \"patterns\", \"weights\", \"styles\", \"transparency\", \"fill\", \"textures\", \"materials\", \"acsTriad\", \"grid\", \"visibleEdges\",\r\n \"hiddenEdges\", \"lighting\", \"shadows\", \"clipVolume\", \"constructions\", \"monochrome\", \"backgroundMap\", \"ambientOcclusion\", \"forceSurfaceDiscard\",\r\n \"wiremesh\",\r\n];\r\n\r\nconst lowercaseBooleanFlagNames = booleanFlagNames.map((name) => name.toLowerCase());\r\n\r\n/** Modifies the selected viewport's DisplayStyleState.\r\n * @beta\r\n */\r\nexport abstract class DisplayStyleTool extends Tool {\r\n protected get require3d() { return false; }\r\n // Return true if the display style was modified - we will invalidate the viewport's render plan.\r\n protected abstract execute(vp: Viewport): Promise<boolean>;\r\n // Return false if failed to parse.\r\n protected abstract parse(args: string[], vp: Viewport): Promise<boolean>;\r\n\r\n public override async run(): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.execute(vp))\r\n vp.displayStyle = vp.view.displayStyle;\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.parse(args, vp))\r\n return this.run();\r\n else\r\n return false;\r\n }\r\n}\r\n\r\n/** Modifies the selected viewport's ViewFlags.\r\n * The keyin syntax is as follows:\r\n * fdt change viewflags flag=value\r\n * Where 'flag' is one of the BooleanFlagName values, or \"renderMode\"; and value is an integer.\r\n * For boolean flags, value is 0 for false or 1 for true. For renderMode, value is one of the RenderMode enum values.\r\n * Flag names are case-insensitive.\r\n * @beta\r\n */\r\nexport class ChangeViewFlagsTool extends Tool {\r\n public static override toolId = \"ChangeViewFlags\";\r\n public static override get maxArgs() { return undefined; }\r\n public static override get minArgs() { return 1; }\r\n\r\n public override async run(vf: ViewFlags, vp?: Viewport): Promise<boolean> {\r\n if (undefined !== vf && undefined !== vp)\r\n vp.viewFlags = vf;\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || 0 === args.length)\r\n return true;\r\n\r\n const vf: Partial<ViewFlagsProperties> = { ...vp.viewFlags };\r\n for (const arg of args) {\r\n const parts = arg.split(\"=\");\r\n if (2 !== parts.length)\r\n continue;\r\n\r\n const value = parseInt(parts[1], 10);\r\n if (Number.isNaN(value))\r\n continue;\r\n\r\n const name = parts[0].toLowerCase();\r\n if (name === \"rendermode\") {\r\n switch (value) {\r\n case RenderMode.SmoothShade:\r\n case RenderMode.Wireframe:\r\n case RenderMode.HiddenLine:\r\n case RenderMode.SolidFill:\r\n vf.renderMode = value;\r\n vp.invalidateRenderPlan();\r\n break;\r\n }\r\n\r\n continue;\r\n }\r\n\r\n if (0 !== value && 1 !== value)\r\n continue;\r\n\r\n const index = lowercaseBooleanFlagNames.indexOf(name);\r\n if (-1 !== index) {\r\n const propName = booleanFlagNames[index];\r\n vf[propName] = 0 !== value;\r\n vp.invalidateRenderPlan();\r\n }\r\n }\r\n\r\n return this.run(new ViewFlags(vf), vp);\r\n }\r\n}\r\n\r\n/** Toggles the skybox.\r\n * @beta\r\n */\r\nexport class ToggleSkyboxTool extends DisplayStyleTool {\r\n public static override toolId = \"ToggleSkybox\";\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(_args: string[]): Promise<boolean> { return true; } // no arguments\r\n\r\n public async execute(vp: Viewport) {\r\n const style = vp.view.displayStyle as DisplayStyle3dState;\r\n style.environment = style.environment.withDisplay({ sky: !style.environment.displaySky });\r\n return true;\r\n }\r\n}\r\n\r\n/** Defines a [SkySphere]($common) to apply to the current view.\r\n * @beta\r\n */\r\nexport class SkySphereTool extends DisplayStyleTool {\r\n private _image?: string;\r\n\r\n public static override toolId = \"SetSkySphere\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(args: string[]) {\r\n this._image = args[0];\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (this._image && vp.view.is3d()) {\r\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\r\n displaySky: true,\r\n sky: new SkySphere(this._image),\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Defines a [SkyCube]($common) to apply to the current view.\r\n * @beta\r\n */\r\nexport class SkyCubeTool extends DisplayStyleTool {\r\n private _images: string[] = [];\r\n\r\n public static override toolId = \"SetSkyCube\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 6; }\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(args: string[]) {\r\n this._images = [...args];\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const imgs = this._images;\r\n if (imgs.length === 0 || !vp.view.is3d())\r\n return true;\r\n\r\n let top, bottom, left, right, front, back;\r\n switch (imgs.length) {\r\n case 1:\r\n top = bottom = left = right = front = back = imgs[0];\r\n break;\r\n case 2:\r\n top = bottom = imgs[0];\r\n left = right = front = back = imgs[1];\r\n break;\r\n case 3:\r\n top = bottom = imgs[0];\r\n left = right = imgs[1];\r\n front = back = imgs[2];\r\n break;\r\n case 4:\r\n top = imgs[0];\r\n bottom = imgs[1];\r\n left = right = imgs[2];\r\n front = back = imgs[3];\r\n break;\r\n case 5:\r\n top = bottom = imgs[0];\r\n left = imgs[1];\r\n right = imgs[2];\r\n front = imgs[3];\r\n back = imgs[4];\r\n break;\r\n default:\r\n top = imgs[0];\r\n bottom = imgs[1];\r\n left = imgs[2];\r\n right = imgs[3];\r\n front = imgs[4];\r\n back = imgs[5];\r\n break;\r\n }\r\n\r\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\r\n displaySky: true,\r\n sky: new SkyCube({ top, bottom, left, right, front, back }),\r\n });\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Outputs (and optionally copies to the clipboard) a \"rendering style\" as a partial DisplayStyle3dSettingsProps JSON object based\r\n * on the current view's display style settings.\r\n * All arguments are optional, of the form \"name=value\" where `value` is 0 for false or 1 for true. All arguments default to `false` if omitted.\r\n * @see [DisplayStyleSettings.toOverrides]($common) for details.\r\n * Arguments:\r\n * * `all`: include all settings.\r\n * * `imodel`: include iModel-specific settings.\r\n * * `project`: include iTwin-specific (formerly known as project) settings.\r\n * * `map`: include background map settings.\r\n * * `drawingaids`: include drawing aid decoration settings.\r\n * * `copy`: copy result to system clipboard.\r\n * * `quote`: format the JSON so it can be parsed directly by [ApplyRenderingStyleTool].\r\n * @beta\r\n */\r\nexport class SaveRenderingStyleTool extends DisplayStyleTool {\r\n private _options: DisplayStyleOverridesOptions = {};\r\n private _copyToClipboard = false;\r\n private _quote = false;\r\n\r\n public static override toolId = \"SaveRenderingStyle\";\r\n\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 7; }\r\n\r\n public async parse(inputArgs: string[]) {\r\n const args = parseArgs(inputArgs);\r\n function getArg(name: string): true | undefined {\r\n return args.getBoolean(name) ? true : undefined;\r\n }\r\n\r\n this._options.includeAll = getArg(\"a\");\r\n this._options.includeIModelSpecific = getArg(\"i\");\r\n this._options.includeITwinSpecific = getArg(\"p\"); // \"p\" for backwards compatibility with old \"project\" terminology\r\n this._options.includeBackgroundMap = getArg(\"m\");\r\n this._options.includeDrawingAids = getArg(\"d\");\r\n this._copyToClipboard = true === getArg(\"c\");\r\n this._quote = true === getArg(\"q\");\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n let json = JSON.stringify(vp.displayStyle.settings.toOverrides(this._options));\r\n if (this._quote)\r\n json = `\"${json.replace(/\"/g, '\"\"')}\"`;\r\n\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Rendering style saved\", json));\r\n if (this._copyToClipboard)\r\n copyStringToClipboard(json);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Given a \"rendering style\" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.\r\n * @see [DisplayStyleSettings.applyOverrides]($common) for details.\r\n * @beta\r\n */\r\nexport class ApplyRenderingStyleTool extends DisplayStyleTool {\r\n private _overrides?: DisplayStyle3dSettingsProps;\r\n\r\n public static override toolId = \"ApplyRenderingStyle\";\r\n\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n try {\r\n this._overrides = JSON.parse(args[0]);\r\n return true;\r\n } catch {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"Invalid JSON\"));\r\n return false;\r\n }\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (this._overrides)\r\n vp.overrideDisplayStyle(this._overrides);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Apply appearance overrides to one or more subcategories in the active viewport.\r\n * @beta\r\n */\r\nexport class OverrideSubCategoryTool extends DisplayStyleTool {\r\n private _overrideProps: SubCategoryAppearance.Props = {};\r\n private _subcategoryIds: string[] = [];\r\n\r\n public static override toolId = \"OverrideSubCategory\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 7; }\r\n\r\n public async parse(inArgs: string[]) {\r\n const args = parseArgs(inArgs);\r\n const ids = args.get(\"i\");\r\n if (ids)\r\n this._subcategoryIds = ids.split(\",\");\r\n\r\n const props = this._overrideProps;\r\n props.color = args.getInteger(\"c\");\r\n props.weight = args.getInteger(\"w\");\r\n props.priority = args.getInteger(\"p\");\r\n props.transp = args.getFloat(\"t\");\r\n props.material = args.get(\"m\");\r\n\r\n const visible = args.getBoolean(\"v\");\r\n props.invisible = typeof visible === \"boolean\" ? !visible : undefined;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const ovr = SubCategoryOverride.fromJSON(this._overrideProps);\r\n for (const id of this._subcategoryIds)\r\n vp.displayStyle.overrideSubCategory(id, ovr);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Query the schedule script JSON from an element.\r\n * @beta\r\n */\r\nexport class QueryScheduleScriptTool extends DisplayStyleTool {\r\n private _sourceId?: string;\r\n private _action: \"copy\" | \"break\" = \"copy\";\r\n private _includeElementIds = false;\r\n private _countElementIds = false;\r\n private _expandElementIds = false;\r\n\r\n public static override toolId = \"QueryScheduleScript\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 3; }\r\n\r\n public async parse(input: string[], vp: Viewport) {\r\n const args = parseArgs(input);\r\n this._sourceId = args.get(\"i\") ?? vp.displayStyle.scheduleScriptReference?.sourceId;\r\n if (!this._sourceId)\r\n return false;\r\n\r\n const action = args.get(\"a\") ?? \"\";\r\n this._action = action.length > 0 && \"b\" === action[0].toLowerCase() ? \"break\" : \"copy\";\r\n\r\n this._includeElementIds = this._countElementIds = this._expandElementIds = false;\r\n const ids = args.get(\"e\");\r\n if (ids && ids.length > 0) {\r\n switch (ids[0].toLowerCase()) {\r\n case \"i\":\r\n this._includeElementIds = true;\r\n break;\r\n case \"c\":\r\n this._includeElementIds = this._countElementIds = true;\r\n break;\r\n case \"e\":\r\n this._includeElementIds = this._expandElementIds = true;\r\n break;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (!this._sourceId || !this._action)\r\n return false;\r\n\r\n const opts: ElementLoadOptions = {\r\n displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },\r\n renderTimeline: { omitScriptElementIds: !this._includeElementIds },\r\n };\r\n\r\n let script;\r\n const props = await vp.iModel.elements.loadProps(this._sourceId, opts) as any;\r\n if (props.script)\r\n script = JSON.parse((props.script as RenderTimelineProps).script) as RenderSchedule.ScriptProps;\r\n else if (props.jsonProperties?.styles?.scheduleScript)\r\n script = props.jsonProperties.styles.scheduleScript as RenderSchedule.ScriptProps;\r\n\r\n if (!script)\r\n return false;\r\n\r\n if (this._countElementIds || this._expandElementIds) {\r\n for (const model of script) {\r\n for (const elem of model.elementTimelines) {\r\n const elemIds = typeof elem.elementIds === \"string\" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;\r\n if (this._countElementIds)\r\n elem.elementIds = elemIds.length as any;\r\n else\r\n elem.elementIds = elemIds;\r\n }\r\n }\r\n }\r\n\r\n if (this._action === \"break\")\r\n debugger; // eslint-disable-line no-debugger\r\n else\r\n copyStringToClipboard(JSON.stringify(script, null, 2));\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Set whether background color is ignored when applying white-on-white reversal.\r\n * @beta\r\n */\r\nexport class WoWIgnoreBackgroundTool extends DisplayStyleTool {\r\n private _ignore?: boolean;\r\n\r\n public static override toolId = \"WoWIgnoreBackground\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n const ignore = parseToggle(args[0]);\r\n if (typeof ignore === \"string\")\r\n return false;\r\n\r\n this._ignore = ignore;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const ignoreBackgroundColor = this._ignore ?? !vp.displayStyle.settings.whiteOnWhiteReversal.ignoreBackgroundColor;\r\n vp.displayStyle.settings.whiteOnWhiteReversal = WhiteOnWhiteReversalSettings.fromJSON({ ignoreBackgroundColor });\r\n return true;\r\n }\r\n}\r\n\r\n/** Toggle whether surfaces display with overlaid wiremesh in the active viewport.\r\n * @see [ViewFlags.wiremesh]($common).\r\n * @beta\r\n */\r\nexport class ToggleWiremeshTool extends DisplayStyleTool {\r\n private _enable?: boolean;\r\n\r\n public static override toolId = \"ToggleWiremesh\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable === \"string\")\r\n return false;\r\n\r\n this._enable = enable;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n vp.viewFlags = vp.viewFlags.with(\"wiremesh\", this._enable ?? !vp.viewFlags.wiremesh);\r\n return true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"DisplayStyleTools.js","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { CompressedId64Set } from \"@itwin/core-bentley\";\r\nimport {\r\n ColorDef, DisplayStyle3dSettingsProps, DisplayStyleOverridesOptions, ElementLoadOptions, RenderMode, RenderSchedule, RenderTimelineProps, SkyCube, SkySphere,\r\n SubCategoryAppearance, SubCategoryOverride, ViewFlags, ViewFlagsProperties, WhiteOnWhiteReversalSettings,\r\n} from \"@itwin/core-common\";\r\nimport {\r\n DisplayStyle3dState, IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool, Viewport,\r\n} from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { parseArgs } from \"./parseArgs\";\r\nimport { parseToggle } from \"./parseToggle\";\r\n\r\ntype BooleanFlagName =\r\n \"dimensions\" | \"patterns\" | \"weights\" | \"styles\" | \"transparency\" | \"fill\" | \"textures\" | \"materials\" | \"acsTriad\" | \"grid\" | \"visibleEdges\" |\r\n \"hiddenEdges\" | \"lighting\" | \"shadows\" | \"clipVolume\" | \"constructions\" | \"monochrome\" | \"backgroundMap\" | \"ambientOcclusion\" | \"forceSurfaceDiscard\"\r\n | \"wiremesh\";\r\n\r\n// Compiler has the info to construct this array for us, but we have no access to it...\r\nconst booleanFlagNames: BooleanFlagName[] = [\r\n \"dimensions\", \"patterns\", \"weights\", \"styles\", \"transparency\", \"fill\", \"textures\", \"materials\", \"acsTriad\", \"grid\", \"visibleEdges\",\r\n \"hiddenEdges\", \"lighting\", \"shadows\", \"clipVolume\", \"constructions\", \"monochrome\", \"backgroundMap\", \"ambientOcclusion\", \"forceSurfaceDiscard\",\r\n \"wiremesh\",\r\n];\r\n\r\nconst lowercaseBooleanFlagNames = booleanFlagNames.map((name) => name.toLowerCase());\r\n\r\n/** Modifies the selected viewport's DisplayStyleState.\r\n * @beta\r\n */\r\nexport abstract class DisplayStyleTool extends Tool {\r\n protected get require3d() { return false; }\r\n // Return true if the display style was modified - we will invalidate the viewport's render plan.\r\n protected abstract execute(vp: Viewport): Promise<boolean>;\r\n // Return false if failed to parse.\r\n protected abstract parse(args: string[], vp: Viewport): Promise<boolean>;\r\n\r\n public override async run(): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.execute(vp))\r\n vp.displayStyle = vp.view.displayStyle;\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.parse(args, vp))\r\n return this.run();\r\n else\r\n return false;\r\n }\r\n}\r\n\r\n/** Modifies the selected viewport's ViewFlags.\r\n * The keyin syntax is as follows:\r\n * fdt change viewflags flag=value\r\n * Where 'flag' is one of the BooleanFlagName values, or \"renderMode\"; and value is an integer.\r\n * For boolean flags, value is 0 for false or 1 for true. For renderMode, value is one of the RenderMode enum values.\r\n * Flag names are case-insensitive.\r\n * @beta\r\n */\r\nexport class ChangeViewFlagsTool extends Tool {\r\n public static override toolId = \"ChangeViewFlags\";\r\n public static override get maxArgs() { return undefined; }\r\n public static override get minArgs() { return 1; }\r\n\r\n public override async run(vf: ViewFlags, vp?: Viewport): Promise<boolean> {\r\n if (undefined !== vf && undefined !== vp)\r\n vp.viewFlags = vf;\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined === vp || 0 === args.length)\r\n return true;\r\n\r\n const vf: Partial<ViewFlagsProperties> = { ...vp.viewFlags };\r\n for (const arg of args) {\r\n const parts = arg.split(\"=\");\r\n if (2 !== parts.length)\r\n continue;\r\n\r\n const value = parseInt(parts[1], 10);\r\n if (Number.isNaN(value))\r\n continue;\r\n\r\n const name = parts[0].toLowerCase();\r\n if (name === \"rendermode\") {\r\n switch (value) {\r\n case RenderMode.SmoothShade:\r\n case RenderMode.Wireframe:\r\n case RenderMode.HiddenLine:\r\n case RenderMode.SolidFill:\r\n vf.renderMode = value;\r\n vp.invalidateRenderPlan();\r\n break;\r\n }\r\n\r\n continue;\r\n }\r\n\r\n if (0 !== value && 1 !== value)\r\n continue;\r\n\r\n const index = lowercaseBooleanFlagNames.indexOf(name);\r\n if (-1 !== index) {\r\n const propName = booleanFlagNames[index];\r\n vf[propName] = 0 !== value;\r\n vp.invalidateRenderPlan();\r\n }\r\n }\r\n\r\n return this.run(new ViewFlags(vf), vp);\r\n }\r\n}\r\n\r\n/** Toggles the skybox.\r\n * @beta\r\n */\r\nexport class ToggleSkyboxTool extends DisplayStyleTool {\r\n public static override toolId = \"ToggleSkybox\";\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(_args: string[]): Promise<boolean> { return true; } // no arguments\r\n\r\n public async execute(vp: Viewport) {\r\n const style = vp.view.displayStyle as DisplayStyle3dState;\r\n style.environment = style.environment.withDisplay({ sky: !style.environment.displaySky });\r\n return true;\r\n }\r\n}\r\n\r\n/** Defines a [SkySphere]($common) to apply to the current view.\r\n * @beta\r\n */\r\nexport class SkySphereTool extends DisplayStyleTool {\r\n private _image?: string;\r\n\r\n public static override toolId = \"SetSkySphere\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(args: string[]) {\r\n this._image = args[0];\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (this._image && vp.view.is3d()) {\r\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\r\n displaySky: true,\r\n sky: new SkySphere(this._image),\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Defines a [SkyCube]($common) to apply to the current view.\r\n * @beta\r\n */\r\nexport class SkyCubeTool extends DisplayStyleTool {\r\n private _images: string[] = [];\r\n\r\n public static override toolId = \"SetSkyCube\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 6; }\r\n\r\n public override get require3d() { return true; }\r\n\r\n public async parse(args: string[]) {\r\n this._images = [...args];\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const imgs = this._images;\r\n if (imgs.length === 0 || !vp.view.is3d())\r\n return true;\r\n\r\n let top, bottom, left, right, front, back;\r\n switch (imgs.length) {\r\n case 1:\r\n top = bottom = left = right = front = back = imgs[0];\r\n break;\r\n case 2:\r\n top = bottom = imgs[0];\r\n left = right = front = back = imgs[1];\r\n break;\r\n case 3:\r\n top = bottom = imgs[0];\r\n left = right = imgs[1];\r\n front = back = imgs[2];\r\n break;\r\n case 4:\r\n top = imgs[0];\r\n bottom = imgs[1];\r\n left = right = imgs[2];\r\n front = back = imgs[3];\r\n break;\r\n case 5:\r\n top = bottom = imgs[0];\r\n left = imgs[1];\r\n right = imgs[2];\r\n front = imgs[3];\r\n back = imgs[4];\r\n break;\r\n default:\r\n top = imgs[0];\r\n bottom = imgs[1];\r\n left = imgs[2];\r\n right = imgs[3];\r\n front = imgs[4];\r\n back = imgs[5];\r\n break;\r\n }\r\n\r\n vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({\r\n displaySky: true,\r\n sky: new SkyCube({ top, bottom, left, right, front, back }),\r\n });\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Outputs (and optionally copies to the clipboard) a \"rendering style\" as a partial DisplayStyle3dSettingsProps JSON object based\r\n * on the current view's display style settings.\r\n * All arguments are optional, of the form \"name=value\" where `value` is 0 for false or 1 for true. All arguments default to `false` if omitted.\r\n * @see [DisplayStyleSettings.toOverrides]($common) for details.\r\n * Arguments:\r\n * * `all`: include all settings.\r\n * * `imodel`: include iModel-specific settings.\r\n * * `project`: include iTwin-specific (formerly known as project) settings.\r\n * * `map`: include background map settings.\r\n * * `drawingaids`: include drawing aid decoration settings.\r\n * * `copy`: copy result to system clipboard.\r\n * * `quote`: format the JSON so it can be parsed directly by [ApplyRenderingStyleTool].\r\n * @beta\r\n */\r\nexport class SaveRenderingStyleTool extends DisplayStyleTool {\r\n private _options: DisplayStyleOverridesOptions = {};\r\n private _copyToClipboard = false;\r\n private _quote = false;\r\n\r\n public static override toolId = \"SaveRenderingStyle\";\r\n\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 7; }\r\n\r\n public async parse(inputArgs: string[]) {\r\n const args = parseArgs(inputArgs);\r\n function getArg(name: string): true | undefined {\r\n return args.getBoolean(name) ? true : undefined;\r\n }\r\n\r\n this._options.includeAll = getArg(\"a\");\r\n this._options.includeIModelSpecific = getArg(\"i\");\r\n this._options.includeITwinSpecific = getArg(\"p\"); // \"p\" for backwards compatibility with old \"project\" terminology\r\n this._options.includeBackgroundMap = getArg(\"m\");\r\n this._options.includeDrawingAids = getArg(\"d\");\r\n this._copyToClipboard = true === getArg(\"c\");\r\n this._quote = true === getArg(\"q\");\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n let json = JSON.stringify(vp.displayStyle.settings.toOverrides(this._options));\r\n if (this._quote)\r\n json = `\"${json.replace(/\"/g, '\"\"')}\"`;\r\n\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"Rendering style saved\", json));\r\n if (this._copyToClipboard)\r\n copyStringToClipboard(json);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Given a \"rendering style\" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.\r\n * @see [DisplayStyleSettings.applyOverrides]($common) for details.\r\n * @beta\r\n */\r\nexport class ApplyRenderingStyleTool extends DisplayStyleTool {\r\n private _overrides?: DisplayStyle3dSettingsProps;\r\n\r\n public static override toolId = \"ApplyRenderingStyle\";\r\n\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n try {\r\n this._overrides = JSON.parse(args[0]);\r\n return true;\r\n } catch {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"Invalid JSON\"));\r\n return false;\r\n }\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (this._overrides)\r\n vp.overrideDisplayStyle(this._overrides);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Apply appearance overrides to one or more subcategories in the active viewport.\r\n * @beta\r\n */\r\nexport class OverrideSubCategoryTool extends DisplayStyleTool {\r\n private _overrideProps: SubCategoryAppearance.Props = {};\r\n private _subcategoryIds: string[] = [];\r\n\r\n public static override toolId = \"OverrideSubCategory\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 7; }\r\n\r\n public async parse(inArgs: string[]) {\r\n const args = parseArgs(inArgs);\r\n const ids = args.get(\"i\");\r\n if (ids)\r\n this._subcategoryIds = ids.split(\",\");\r\n\r\n const props = this._overrideProps;\r\n props.color = args.getInteger(\"c\");\r\n props.weight = args.getInteger(\"w\");\r\n props.priority = args.getInteger(\"p\");\r\n props.transp = args.getFloat(\"t\");\r\n props.material = args.get(\"m\");\r\n\r\n const visible = args.getBoolean(\"v\");\r\n props.invisible = typeof visible === \"boolean\" ? !visible : undefined;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const ovr = SubCategoryOverride.fromJSON(this._overrideProps);\r\n for (const id of this._subcategoryIds)\r\n vp.displayStyle.overrideSubCategory(id, ovr);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Query the schedule script JSON from an element.\r\n * @beta\r\n */\r\nexport class QueryScheduleScriptTool extends DisplayStyleTool {\r\n private _sourceId?: string;\r\n private _action: \"copy\" | \"break\" = \"copy\";\r\n private _includeElementIds = false;\r\n private _countElementIds = false;\r\n private _expandElementIds = false;\r\n\r\n public static override toolId = \"QueryScheduleScript\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 3; }\r\n\r\n public async parse(input: string[], vp: Viewport) {\r\n const args = parseArgs(input);\r\n this._sourceId = args.get(\"i\") ?? vp.displayStyle.scheduleScriptReference?.sourceId;\r\n if (!this._sourceId)\r\n return false;\r\n\r\n const action = args.get(\"a\") ?? \"\";\r\n this._action = action.length > 0 && \"b\" === action[0].toLowerCase() ? \"break\" : \"copy\";\r\n\r\n this._includeElementIds = this._countElementIds = this._expandElementIds = false;\r\n const ids = args.get(\"e\");\r\n if (ids && ids.length > 0) {\r\n switch (ids[0].toLowerCase()) {\r\n case \"i\":\r\n this._includeElementIds = true;\r\n break;\r\n case \"c\":\r\n this._includeElementIds = this._countElementIds = true;\r\n break;\r\n case \"e\":\r\n this._includeElementIds = this._expandElementIds = true;\r\n break;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (!this._sourceId || !this._action)\r\n return false;\r\n\r\n const opts: ElementLoadOptions = {\r\n displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },\r\n renderTimeline: { omitScriptElementIds: !this._includeElementIds },\r\n };\r\n\r\n let script;\r\n const props = await vp.iModel.elements.loadProps(this._sourceId, opts) as any;\r\n if (props.script)\r\n script = JSON.parse((props.script as RenderTimelineProps).script) as RenderSchedule.ScriptProps;\r\n else if (props.jsonProperties?.styles?.scheduleScript)\r\n script = props.jsonProperties.styles.scheduleScript as RenderSchedule.ScriptProps;\r\n\r\n if (!script)\r\n return false;\r\n\r\n if (this._countElementIds || this._expandElementIds) {\r\n for (const model of script) {\r\n for (const elem of model.elementTimelines) {\r\n const elemIds = typeof elem.elementIds === \"string\" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;\r\n if (this._countElementIds)\r\n elem.elementIds = elemIds.length as any;\r\n else\r\n elem.elementIds = elemIds;\r\n }\r\n }\r\n }\r\n\r\n if (this._action === \"break\")\r\n debugger; // eslint-disable-line no-debugger\r\n else\r\n copyStringToClipboard(JSON.stringify(script, null, 2));\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Set whether background color is ignored when applying white-on-white reversal.\r\n * @beta\r\n */\r\nexport class WoWIgnoreBackgroundTool extends DisplayStyleTool {\r\n private _ignore?: boolean;\r\n\r\n public static override toolId = \"WoWIgnoreBackground\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n const ignore = parseToggle(args[0]);\r\n if (typeof ignore === \"string\")\r\n return false;\r\n\r\n this._ignore = ignore;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n const ignoreBackgroundColor = this._ignore ?? !vp.displayStyle.settings.whiteOnWhiteReversal.ignoreBackgroundColor;\r\n vp.displayStyle.settings.whiteOnWhiteReversal = WhiteOnWhiteReversalSettings.fromJSON({ ignoreBackgroundColor });\r\n return true;\r\n }\r\n}\r\n\r\n/** Toggle whether surfaces display with overlaid wiremesh in the active viewport.\r\n * @see [ViewFlags.wiremesh]($common).\r\n * @beta\r\n */\r\nexport class ToggleWiremeshTool extends DisplayStyleTool {\r\n private _enable?: boolean;\r\n\r\n public static override toolId = \"ToggleWiremesh\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable === \"string\")\r\n return false;\r\n\r\n this._enable = enable;\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n vp.viewFlags = vp.viewFlags.with(\"wiremesh\", this._enable ?? !vp.viewFlags.wiremesh);\r\n return true;\r\n }\r\n}\r\n\r\n/** Change the background color of the active viewport and optionally its transparency.\r\n * @beta\r\n */\r\nexport class ChangeBackgroundColorTool extends DisplayStyleTool {\r\n private _color?: ColorDef;\r\n\r\n public static override toolId = \"ChangeBackgroundColor\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public async parse(args: string[]) {\r\n this._color = ColorDef.fromString(args[0]);\r\n return true;\r\n }\r\n\r\n public async execute(vp: Viewport) {\r\n if (!this._color)\r\n return false;\r\n\r\n vp.displayStyle.backgroundColor = this._color;\r\n return true;\r\n }\r\n}\r\n"]}
@@ -456,6 +456,9 @@
456
456
  },
457
457
  "SetSkyCube": {
458
458
  "keyin": "fdt sky cube"
459
+ },
460
+ "ChangeBackgroundColor": {
461
+ "keyin": "fdt bgcolor"
459
462
  }
460
463
  }
461
464
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/frontend-devtools",
3
- "version": "3.0.0-dev.135",
3
+ "version": "3.0.0-dev.136",
4
4
  "description": "Debug menu and supporting UI widgets",
5
5
  "main": "lib/cjs/frontend-devtools.js",
6
6
  "module": "lib/esm/frontend-devtools.js",
@@ -23,16 +23,16 @@
23
23
  "url": "http://www.bentley.com"
24
24
  },
25
25
  "dependencies": {
26
- "@bentley/itwin-client": "3.0.0-dev.135",
27
- "@itwin/core-bentley": "3.0.0-dev.135",
28
- "@itwin/core-common": "3.0.0-dev.135",
29
- "@itwin/core-frontend": "3.0.0-dev.135",
30
- "@itwin/core-geometry": "3.0.0-dev.135",
26
+ "@bentley/itwin-client": "3.0.0-dev.136",
27
+ "@itwin/core-bentley": "3.0.0-dev.136",
28
+ "@itwin/core-common": "3.0.0-dev.136",
29
+ "@itwin/core-frontend": "3.0.0-dev.136",
30
+ "@itwin/core-geometry": "3.0.0-dev.136",
31
31
  "file-saver": "^2.0.2"
32
32
  },
33
33
  "devDependencies": {
34
- "@itwin/build-tools": "3.0.0-dev.135",
35
- "@itwin/eslint-plugin": "3.0.0-dev.135",
34
+ "@itwin/build-tools": "3.0.0-dev.136",
35
+ "@itwin/eslint-plugin": "3.0.0-dev.136",
36
36
  "@types/file-saver": "^2.0.1",
37
37
  "@types/node": "14.14.31",
38
38
  "cpx2": "^3.0.0",