@itwin/frontend-devtools 3.0.0-dev.98 → 3.0.0
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/CHANGELOG.md +96 -1
- package/LICENSE.md +1 -1
- package/README.md +28 -3
- package/lib/cjs/FrontEndDevTools.d.ts.map +1 -1
- package/lib/cjs/FrontEndDevTools.js +6 -1
- package/lib/cjs/FrontEndDevTools.js.map +1 -1
- package/lib/cjs/effects/Explosion.d.ts.map +1 -1
- package/lib/cjs/effects/Explosion.js +3 -2
- package/lib/cjs/effects/Explosion.js.map +1 -1
- package/lib/cjs/effects/Snow.d.ts.map +1 -1
- package/lib/cjs/effects/Snow.js +3 -2
- package/lib/cjs/effects/Snow.js.map +1 -1
- package/lib/cjs/frontend-devtools.d.ts +1 -1
- package/lib/cjs/frontend-devtools.js +1 -1
- package/lib/cjs/frontend-devtools.js.map +1 -1
- package/lib/cjs/tools/ClipTools.d.ts +2 -2
- package/lib/cjs/tools/ClipTools.d.ts.map +1 -1
- package/lib/cjs/tools/ClipTools.js +2 -2
- package/lib/cjs/tools/ClipTools.js.map +1 -1
- package/lib/cjs/tools/DisplayStyleTools.d.ts +75 -16
- package/lib/cjs/tools/DisplayStyleTools.d.ts.map +1 -1
- package/lib/cjs/tools/DisplayStyleTools.js +219 -15
- package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
- package/lib/cjs/tools/PlanProjectionTools.d.ts +6 -6
- package/lib/cjs/tools/PlanProjectionTools.d.ts.map +1 -1
- package/lib/cjs/tools/PlanProjectionTools.js +6 -6
- package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
- package/lib/cjs/tools/PlanarMaskTools.d.ts +3 -2
- package/lib/cjs/tools/PlanarMaskTools.d.ts.map +1 -1
- package/lib/cjs/tools/PlanarMaskTools.js +47 -22
- package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
- package/lib/cjs/tools/RenderSystemTools.d.ts +0 -7
- package/lib/cjs/tools/RenderSystemTools.d.ts.map +1 -1
- package/lib/cjs/tools/RenderSystemTools.js +1 -11
- package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
- package/lib/cjs/tools/SourceAspectIdTools.js +1 -1
- package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
- package/lib/cjs/tools/ViewportTools.d.ts +15 -0
- package/lib/cjs/tools/ViewportTools.d.ts.map +1 -1
- package/lib/cjs/tools/ViewportTools.js +46 -1
- package/lib/cjs/tools/ViewportTools.js.map +1 -1
- package/lib/cjs/widgets/DiagnosticsPanel.d.ts +2 -0
- package/lib/cjs/widgets/DiagnosticsPanel.d.ts.map +1 -1
- package/lib/cjs/widgets/DiagnosticsPanel.js +6 -0
- package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
- package/lib/cjs/widgets/MemoryTracker.js +2 -2
- package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
- package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +16 -0
- package/lib/cjs/widgets/RenderCommandBreakdown.d.ts.map +1 -0
- package/lib/cjs/widgets/RenderCommandBreakdown.js +69 -0
- package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -0
- package/lib/esm/FrontEndDevTools.d.ts.map +1 -1
- package/lib/esm/FrontEndDevTools.js +9 -4
- package/lib/esm/FrontEndDevTools.js.map +1 -1
- package/lib/esm/effects/Explosion.d.ts.map +1 -1
- package/lib/esm/effects/Explosion.js +3 -2
- package/lib/esm/effects/Explosion.js.map +1 -1
- package/lib/esm/effects/Snow.d.ts.map +1 -1
- package/lib/esm/effects/Snow.js +3 -2
- package/lib/esm/effects/Snow.js.map +1 -1
- package/lib/esm/frontend-devtools.d.ts +1 -1
- package/lib/esm/frontend-devtools.js +1 -1
- package/lib/esm/frontend-devtools.js.map +1 -1
- package/lib/esm/tools/ClipTools.d.ts +2 -2
- package/lib/esm/tools/ClipTools.d.ts.map +1 -1
- package/lib/esm/tools/ClipTools.js +2 -2
- package/lib/esm/tools/ClipTools.js.map +1 -1
- package/lib/esm/tools/DisplayStyleTools.d.ts +75 -16
- package/lib/esm/tools/DisplayStyleTools.d.ts.map +1 -1
- package/lib/esm/tools/DisplayStyleTools.js +215 -16
- package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
- package/lib/esm/tools/PlanProjectionTools.d.ts +6 -6
- package/lib/esm/tools/PlanProjectionTools.d.ts.map +1 -1
- package/lib/esm/tools/PlanProjectionTools.js +6 -6
- package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
- package/lib/esm/tools/PlanarMaskTools.d.ts +3 -2
- package/lib/esm/tools/PlanarMaskTools.d.ts.map +1 -1
- package/lib/esm/tools/PlanarMaskTools.js +47 -22
- package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
- package/lib/esm/tools/RenderSystemTools.d.ts +0 -7
- package/lib/esm/tools/RenderSystemTools.d.ts.map +1 -1
- package/lib/esm/tools/RenderSystemTools.js +0 -9
- package/lib/esm/tools/RenderSystemTools.js.map +1 -1
- package/lib/esm/tools/SourceAspectIdTools.js +1 -1
- package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
- package/lib/esm/tools/ViewportTools.d.ts +15 -0
- package/lib/esm/tools/ViewportTools.d.ts.map +1 -1
- package/lib/esm/tools/ViewportTools.js +44 -0
- package/lib/esm/tools/ViewportTools.js.map +1 -1
- package/lib/esm/widgets/DiagnosticsPanel.d.ts +2 -0
- package/lib/esm/widgets/DiagnosticsPanel.d.ts.map +1 -1
- package/lib/esm/widgets/DiagnosticsPanel.js +6 -0
- package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
- package/lib/esm/widgets/MemoryTracker.js +2 -2
- package/lib/esm/widgets/MemoryTracker.js.map +1 -1
- package/lib/esm/widgets/RenderCommandBreakdown.d.ts +16 -0
- package/lib/esm/widgets/RenderCommandBreakdown.d.ts.map +1 -0
- package/lib/esm/widgets/RenderCommandBreakdown.js +65 -0
- package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -0
- package/lib/public/locales/en/FrontendDevTools.json +464 -449
- package/package.json +11 -11
|
@@ -62,7 +62,7 @@ export declare class TestClipStyleTool extends DisplayStyleTool {
|
|
|
62
62
|
static get minArgs(): number;
|
|
63
63
|
private _useStyle;
|
|
64
64
|
protected get require3d(): boolean;
|
|
65
|
-
protected parse(args: string[]): boolean
|
|
66
|
-
protected execute(vp: Viewport): boolean
|
|
65
|
+
protected parse(args: string[]): Promise<boolean>;
|
|
66
|
+
protected execute(vp: Viewport): Promise<boolean>;
|
|
67
67
|
}
|
|
68
68
|
//# sourceMappingURL=ClipTools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipTools.d.ts","sourceRoot":"","sources":["../../../src/tools/ClipTools.ts"],"names":[],"mappings":"AAYA,OAAO,EAAa,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAc,SAAQ,IAAI;IACrC,OAAuB,MAAM,SAAmB;IAChD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAElD,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,YAAY;IASpB;;;;;;;;;;;;;OAaG;IACmB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAcvE;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,IAAI;IAC5C,OAAuB,MAAM,SAAsB;IACnD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAElD;;OAEG;IACmB,GAAG,CAAC,kBAAkB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBzE;;OAEG;IACmB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAOvE;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;IACrD,OAAuB,MAAM,SAAmB;IAChD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAElD,OAAO,CAAC,SAAS,CAAS;IAE1B,cAAuB,SAAS,YAAmB;
|
|
1
|
+
{"version":3,"file":"ClipTools.d.ts","sourceRoot":"","sources":["../../../src/tools/ClipTools.ts"],"names":[],"mappings":"AAYA,OAAO,EAAa,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAc,SAAQ,IAAI;IACrC,OAAuB,MAAM,SAAmB;IAChD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAElD,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,YAAY;IASpB;;;;;;;;;;;;;OAaG;IACmB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAcvE;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,IAAI;IAC5C,OAAuB,MAAM,SAAsB;IACnD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAElD;;OAEG;IACmB,GAAG,CAAC,kBAAkB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBzE;;OAEG;IACmB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAOvE;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;IACrD,OAAuB,MAAM,SAAmB;IAChD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAElD,OAAO,CAAC,SAAS,CAAS;IAE1B,cAAuB,SAAS,YAAmB;cAEnC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;cAKvC,OAAO,CAAC,EAAE,EAAE,QAAQ;CA+BrC"}
|
|
@@ -125,12 +125,12 @@ class TestClipStyleTool extends DisplayStyleTools_1.DisplayStyleTool {
|
|
|
125
125
|
static get maxArgs() { return 1; }
|
|
126
126
|
static get minArgs() { return 1; }
|
|
127
127
|
get require3d() { return true; }
|
|
128
|
-
parse(args) {
|
|
128
|
+
async parse(args) {
|
|
129
129
|
var _a;
|
|
130
130
|
this._useStyle = (_a = (0, parseBoolean_1.parseBoolean)(args[0])) !== null && _a !== void 0 ? _a : false;
|
|
131
131
|
return true;
|
|
132
132
|
}
|
|
133
|
-
execute(vp) {
|
|
133
|
+
async execute(vp) {
|
|
134
134
|
const props = { produceCutGeometry: true };
|
|
135
135
|
if (this._useStyle) {
|
|
136
136
|
props.cutStyle = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipTools.js","sourceRoot":"","sources":["../../../src/tools/ClipTools.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 {\r\n ClipStyle, ClipStyleProps, ColorByName, ColorDef, LinePixels, RenderMode, RgbColor,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp, Tool, Viewport } from \"@itwin/core-frontend\";\r\nimport { parseToggle } from \"./parseToggle\";\r\nimport { parseBoolean } from \"./parseBoolean\";\r\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\r\n\r\n/** This tool specifies or un-specifies a clip color to use for pixels inside or outside the clip region.\r\n * Arguments can be:\r\n * - clear\r\n * - inside <color string> | clear\r\n * - outside <color string> | clear\r\n * <color string> must be in one of the following forms:\r\n * \"rgb(255,0,0)\"\r\n * \"rgba(255,0,0,255)\"\r\n * \"rgb(100%,0%,0%)\"\r\n * \"hsl(120,50%,50%)\"\r\n * \"#rrbbgg\"\r\n * \"blanchedAlmond\" (see possible values from [[ColorByName]]). Case insensitive.\r\n * @see [ColorDef]\r\n * @beta\r\n */\r\nexport class ClipColorTool extends Tool {\r\n public static override toolId = \"ClipColorTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n private _clearClipColors() {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp) {\r\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\r\n props.insideColor = props.outsideColor = undefined;\r\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\r\n }\r\n }\r\n\r\n private setClipColor(colStr: string, which: \"insideColor\" | \"outsideColor\") {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp) {\r\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\r\n props[which] = colStr === \"clear\" ? undefined : RgbColor.fromColorDef(ColorDef.fromString(colStr));\r\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\r\n }\r\n }\r\n\r\n /** This runs the tool using the given arguments, specifying or unspecifying a clip color to use for pixels inside or outside the clip region.\r\n * Arguments can be:\r\n * - clear\r\n * - inside <color string> | clear\r\n * - outside <color string> | clear\r\n * <color string> must be in one of the following forms:\r\n * \"rgb(255,0,0)\"\r\n * \"rgba(255,0,0,255)\"\r\n * \"rgb(100%,0%,0%)\"\r\n * \"hsl(120,50%,50%)\"\r\n * \"#rrbbgg\"\r\n * \"blanchedAlmond\" (see possible values from [[ColorByName]]). Case insensitive.\r\n * @beta\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n if (1 === args.length) {\r\n if (args[0] === \"clear\")\r\n this._clearClipColors();\r\n\r\n return true;\r\n }\r\n\r\n const which = args[0];\r\n if (which === \"inside\" || which === \"outside\")\r\n this.setClipColor(args[1], \"inside\" === which ? \"insideColor\" : \"outsideColor\");\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Controls a view state's view details' flag for producing cut geometry for a clip style.\r\n * @beta\r\n */\r\nexport class ToggleSectionCutTool extends Tool {\r\n public static override toolId = \"ToggleSectionCut\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n /** This method runs the tool, controlling a view state's view details' flag for producing cut geometry for a clip style.\r\n * @param produceCutGeometry whether to produce cut geometry\r\n */\r\n public override async run(produceCutGeometry?: boolean): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp) {\r\n const style = vp.view.displayStyle.settings.clipStyle;\r\n produceCutGeometry = produceCutGeometry ?? !style.produceCutGeometry;\r\n if (produceCutGeometry !== style.produceCutGeometry) {\r\n const json = {\r\n ...vp.view.displayStyle.settings.clipStyle.toJSON(),\r\n produceCutGeometry,\r\n };\r\n\r\n vp.view.displayStyle.settings.clipStyle = ClipStyle.fromJSON(json);\r\n vp.invalidateScene();\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `produceCutGeometry`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable !== \"string\")\r\n await this.run(enable);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Simple tool that toggles a hard-coded clip style overriding various aspects of the cut geometry appearance.\r\n * @beta\r\n */\r\nexport class TestClipStyleTool extends DisplayStyleTool {\r\n public static override toolId = \"TestClipStyle\";\r\n public static override get maxArgs() { return 1; }\r\n public static override get minArgs() { return 1; }\r\n\r\n private _useStyle = false;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected parse(args: string[]): boolean {\r\n this._useStyle = parseBoolean(args[0]) ?? false;\r\n return true;\r\n }\r\n\r\n protected execute(vp: Viewport): boolean {\r\n const props: ClipStyleProps = { produceCutGeometry: true };\r\n if (this._useStyle) {\r\n props.cutStyle = {\r\n viewflags: {\r\n renderMode: RenderMode.SmoothShade,\r\n visibleEdges: true,\r\n hiddenEdges: false,\r\n },\r\n appearance: {\r\n rgb: { r: 0xff, g: 0x7f, b: 0 },\r\n transparency: 0.5,\r\n nonLocatable: true,\r\n },\r\n hiddenLine: {\r\n visible: {\r\n ovrColor: true,\r\n color: ColorByName.blue,\r\n pattern: LinePixels.Solid,\r\n width: 3,\r\n },\r\n },\r\n };\r\n }\r\n\r\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\r\n vp.invalidateRenderPlan();\r\n vp.setFeatureOverrideProviderChanged();\r\n\r\n return true;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ClipTools.js","sourceRoot":"","sources":["../../../src/tools/ClipTools.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 {\r\n ClipStyle, ClipStyleProps, ColorByName, ColorDef, LinePixels, RenderMode, RgbColor,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp, Tool, Viewport } from \"@itwin/core-frontend\";\r\nimport { parseToggle } from \"./parseToggle\";\r\nimport { parseBoolean } from \"./parseBoolean\";\r\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\r\n\r\n/** This tool specifies or un-specifies a clip color to use for pixels inside or outside the clip region.\r\n * Arguments can be:\r\n * - clear\r\n * - inside <color string> | clear\r\n * - outside <color string> | clear\r\n * <color string> must be in one of the following forms:\r\n * \"rgb(255,0,0)\"\r\n * \"rgba(255,0,0,255)\"\r\n * \"rgb(100%,0%,0%)\"\r\n * \"hsl(120,50%,50%)\"\r\n * \"#rrbbgg\"\r\n * \"blanchedAlmond\" (see possible values from [[ColorByName]]). Case insensitive.\r\n * @see [ColorDef]\r\n * @beta\r\n */\r\nexport class ClipColorTool extends Tool {\r\n public static override toolId = \"ClipColorTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n private _clearClipColors() {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp) {\r\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\r\n props.insideColor = props.outsideColor = undefined;\r\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\r\n }\r\n }\r\n\r\n private setClipColor(colStr: string, which: \"insideColor\" | \"outsideColor\") {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp) {\r\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\r\n props[which] = colStr === \"clear\" ? undefined : RgbColor.fromColorDef(ColorDef.fromString(colStr));\r\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\r\n }\r\n }\r\n\r\n /** This runs the tool using the given arguments, specifying or unspecifying a clip color to use for pixels inside or outside the clip region.\r\n * Arguments can be:\r\n * - clear\r\n * - inside <color string> | clear\r\n * - outside <color string> | clear\r\n * <color string> must be in one of the following forms:\r\n * \"rgb(255,0,0)\"\r\n * \"rgba(255,0,0,255)\"\r\n * \"rgb(100%,0%,0%)\"\r\n * \"hsl(120,50%,50%)\"\r\n * \"#rrbbgg\"\r\n * \"blanchedAlmond\" (see possible values from [[ColorByName]]). Case insensitive.\r\n * @beta\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n if (1 === args.length) {\r\n if (args[0] === \"clear\")\r\n this._clearClipColors();\r\n\r\n return true;\r\n }\r\n\r\n const which = args[0];\r\n if (which === \"inside\" || which === \"outside\")\r\n this.setClipColor(args[1], \"inside\" === which ? \"insideColor\" : \"outsideColor\");\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Controls a view state's view details' flag for producing cut geometry for a clip style.\r\n * @beta\r\n */\r\nexport class ToggleSectionCutTool extends Tool {\r\n public static override toolId = \"ToggleSectionCut\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n /** This method runs the tool, controlling a view state's view details' flag for producing cut geometry for a clip style.\r\n * @param produceCutGeometry whether to produce cut geometry\r\n */\r\n public override async run(produceCutGeometry?: boolean): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp) {\r\n const style = vp.view.displayStyle.settings.clipStyle;\r\n produceCutGeometry = produceCutGeometry ?? !style.produceCutGeometry;\r\n if (produceCutGeometry !== style.produceCutGeometry) {\r\n const json = {\r\n ...vp.view.displayStyle.settings.clipStyle.toJSON(),\r\n produceCutGeometry,\r\n };\r\n\r\n vp.view.displayStyle.settings.clipStyle = ClipStyle.fromJSON(json);\r\n vp.invalidateScene();\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** Executes this tool's run method with args[0] containing `produceCutGeometry`.\r\n * @see [[run]]\r\n */\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const enable = parseToggle(args[0]);\r\n if (typeof enable !== \"string\")\r\n await this.run(enable);\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Simple tool that toggles a hard-coded clip style overriding various aspects of the cut geometry appearance.\r\n * @beta\r\n */\r\nexport class TestClipStyleTool extends DisplayStyleTool {\r\n public static override toolId = \"TestClipStyle\";\r\n public static override get maxArgs() { return 1; }\r\n public static override get minArgs() { return 1; }\r\n\r\n private _useStyle = false;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected async parse(args: string[]): Promise<boolean> {\r\n this._useStyle = parseBoolean(args[0]) ?? false;\r\n return true;\r\n }\r\n\r\n protected async execute(vp: Viewport) {\r\n const props: ClipStyleProps = { produceCutGeometry: true };\r\n if (this._useStyle) {\r\n props.cutStyle = {\r\n viewflags: {\r\n renderMode: RenderMode.SmoothShade,\r\n visibleEdges: true,\r\n hiddenEdges: false,\r\n },\r\n appearance: {\r\n rgb: { r: 0xff, g: 0x7f, b: 0 },\r\n transparency: 0.5,\r\n nonLocatable: true,\r\n },\r\n hiddenLine: {\r\n visible: {\r\n ovrColor: true,\r\n color: ColorByName.blue,\r\n pattern: LinePixels.Solid,\r\n width: 3,\r\n },\r\n },\r\n };\r\n }\r\n\r\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\r\n vp.invalidateRenderPlan();\r\n vp.setFeatureOverrideProviderChanged();\r\n\r\n return true;\r\n }\r\n}\r\n"]}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Tools
|
|
3
|
-
*/
|
|
4
1
|
import { ViewFlags } from "@itwin/core-common";
|
|
5
2
|
import { Tool, Viewport } from "@itwin/core-frontend";
|
|
6
3
|
/** Modifies the selected viewport's DisplayStyleState.
|
|
@@ -8,8 +5,8 @@ import { Tool, Viewport } from "@itwin/core-frontend";
|
|
|
8
5
|
*/
|
|
9
6
|
export declare abstract class DisplayStyleTool extends Tool {
|
|
10
7
|
protected get require3d(): boolean;
|
|
11
|
-
protected abstract execute(vp: Viewport): boolean
|
|
12
|
-
protected abstract parse(args: string[]): boolean
|
|
8
|
+
protected abstract execute(vp: Viewport): Promise<boolean>;
|
|
9
|
+
protected abstract parse(args: string[], vp: Viewport): Promise<boolean>;
|
|
13
10
|
run(): Promise<boolean>;
|
|
14
11
|
parseAndRun(...args: string[]): Promise<boolean>;
|
|
15
12
|
}
|
|
@@ -34,8 +31,32 @@ export declare class ChangeViewFlagsTool extends Tool {
|
|
|
34
31
|
export declare class ToggleSkyboxTool extends DisplayStyleTool {
|
|
35
32
|
static toolId: string;
|
|
36
33
|
get require3d(): boolean;
|
|
37
|
-
parse(_args: string[]): boolean
|
|
38
|
-
execute(vp: Viewport): boolean
|
|
34
|
+
parse(_args: string[]): Promise<boolean>;
|
|
35
|
+
execute(vp: Viewport): Promise<boolean>;
|
|
36
|
+
}
|
|
37
|
+
/** Defines a [SkySphere]($common) to apply to the current view.
|
|
38
|
+
* @beta
|
|
39
|
+
*/
|
|
40
|
+
export declare class SkySphereTool extends DisplayStyleTool {
|
|
41
|
+
private _image?;
|
|
42
|
+
static toolId: string;
|
|
43
|
+
static get minArgs(): number;
|
|
44
|
+
static get maxArgs(): number;
|
|
45
|
+
get require3d(): boolean;
|
|
46
|
+
parse(args: string[]): Promise<boolean>;
|
|
47
|
+
execute(vp: Viewport): Promise<boolean>;
|
|
48
|
+
}
|
|
49
|
+
/** Defines a [SkyCube]($common) to apply to the current view.
|
|
50
|
+
* @beta
|
|
51
|
+
*/
|
|
52
|
+
export declare class SkyCubeTool extends DisplayStyleTool {
|
|
53
|
+
private _images;
|
|
54
|
+
static toolId: string;
|
|
55
|
+
static get minArgs(): number;
|
|
56
|
+
static get maxArgs(): number;
|
|
57
|
+
get require3d(): boolean;
|
|
58
|
+
parse(args: string[]): Promise<boolean>;
|
|
59
|
+
execute(vp: Viewport): Promise<boolean>;
|
|
39
60
|
}
|
|
40
61
|
/** Outputs (and optionally copies to the clipboard) a "rendering style" as a partial DisplayStyle3dSettingsProps JSON object based
|
|
41
62
|
* on the current view's display style settings.
|
|
@@ -47,7 +68,7 @@ export declare class ToggleSkyboxTool extends DisplayStyleTool {
|
|
|
47
68
|
* * `project`: include iTwin-specific (formerly known as project) settings.
|
|
48
69
|
* * `map`: include background map settings.
|
|
49
70
|
* * `drawingaids`: include drawing aid decoration settings.
|
|
50
|
-
* * `copy`: copy result to system
|
|
71
|
+
* * `copy`: copy result to system clipboard.
|
|
51
72
|
* * `quote`: format the JSON so it can be parsed directly by [ApplyRenderingStyleTool].
|
|
52
73
|
* @beta
|
|
53
74
|
*/
|
|
@@ -58,8 +79,8 @@ export declare class SaveRenderingStyleTool extends DisplayStyleTool {
|
|
|
58
79
|
static toolId: string;
|
|
59
80
|
static get minArgs(): number;
|
|
60
81
|
static get maxArgs(): number;
|
|
61
|
-
parse(inputArgs: string[]): boolean
|
|
62
|
-
execute(vp: Viewport): boolean
|
|
82
|
+
parse(inputArgs: string[]): Promise<boolean>;
|
|
83
|
+
execute(vp: Viewport): Promise<boolean>;
|
|
63
84
|
}
|
|
64
85
|
/** Given a "rendering style" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.
|
|
65
86
|
* @see [DisplayStyleSettings.applyOverrides]($common) for details.
|
|
@@ -70,8 +91,8 @@ export declare class ApplyRenderingStyleTool extends DisplayStyleTool {
|
|
|
70
91
|
static toolId: string;
|
|
71
92
|
static get minArgs(): number;
|
|
72
93
|
static get maxArgs(): number;
|
|
73
|
-
parse(args: string[]): boolean
|
|
74
|
-
execute(vp: Viewport): boolean
|
|
94
|
+
parse(args: string[]): Promise<boolean>;
|
|
95
|
+
execute(vp: Viewport): Promise<boolean>;
|
|
75
96
|
}
|
|
76
97
|
/** Apply appearance overrides to one or more subcategories in the active viewport.
|
|
77
98
|
* @beta
|
|
@@ -82,8 +103,23 @@ export declare class OverrideSubCategoryTool extends DisplayStyleTool {
|
|
|
82
103
|
static toolId: string;
|
|
83
104
|
static get minArgs(): number;
|
|
84
105
|
static get maxArgs(): number;
|
|
85
|
-
parse(inArgs: string[]): boolean
|
|
86
|
-
execute(vp: Viewport): boolean
|
|
106
|
+
parse(inArgs: string[]): Promise<boolean>;
|
|
107
|
+
execute(vp: Viewport): Promise<boolean>;
|
|
108
|
+
}
|
|
109
|
+
/** Query the schedule script JSON from an element.
|
|
110
|
+
* @beta
|
|
111
|
+
*/
|
|
112
|
+
export declare class QueryScheduleScriptTool extends DisplayStyleTool {
|
|
113
|
+
private _sourceId?;
|
|
114
|
+
private _action;
|
|
115
|
+
private _includeElementIds;
|
|
116
|
+
private _countElementIds;
|
|
117
|
+
private _expandElementIds;
|
|
118
|
+
static toolId: string;
|
|
119
|
+
static get minArgs(): number;
|
|
120
|
+
static get maxArgs(): number;
|
|
121
|
+
parse(input: string[], vp: Viewport): Promise<boolean>;
|
|
122
|
+
execute(vp: Viewport): Promise<boolean>;
|
|
87
123
|
}
|
|
88
124
|
/** Set whether background color is ignored when applying white-on-white reversal.
|
|
89
125
|
* @beta
|
|
@@ -93,7 +129,30 @@ export declare class WoWIgnoreBackgroundTool extends DisplayStyleTool {
|
|
|
93
129
|
static toolId: string;
|
|
94
130
|
static get minArgs(): number;
|
|
95
131
|
static get maxArgs(): number;
|
|
96
|
-
parse(args: string[]): boolean
|
|
97
|
-
execute(vp: Viewport): boolean
|
|
132
|
+
parse(args: string[]): Promise<boolean>;
|
|
133
|
+
execute(vp: Viewport): Promise<boolean>;
|
|
134
|
+
}
|
|
135
|
+
/** Toggle whether surfaces display with overlaid wiremesh in the active viewport.
|
|
136
|
+
* @see [ViewFlags.wiremesh]($common).
|
|
137
|
+
* @beta
|
|
138
|
+
*/
|
|
139
|
+
export declare class ToggleWiremeshTool extends DisplayStyleTool {
|
|
140
|
+
private _enable?;
|
|
141
|
+
static toolId: string;
|
|
142
|
+
static get minArgs(): number;
|
|
143
|
+
static get maxArgs(): number;
|
|
144
|
+
parse(args: string[]): Promise<boolean>;
|
|
145
|
+
execute(vp: Viewport): Promise<boolean>;
|
|
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>;
|
|
98
157
|
}
|
|
99
158
|
//# sourceMappingURL=DisplayStyleTools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayStyleTools.d.ts","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DisplayStyleTools.d.ts","sourceRoot":"","sources":["../../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,11 @@
|
|
|
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.WoWIgnoreBackgroundTool = exports.OverrideSubCategoryTool = exports.ApplyRenderingStyleTool = exports.SaveRenderingStyleTool = 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
|
*/
|
|
11
|
+
const core_bentley_1 = require("@itwin/core-bentley");
|
|
11
12
|
const core_common_1 = require("@itwin/core-common");
|
|
12
13
|
const core_frontend_1 = require("@itwin/core-frontend");
|
|
13
14
|
const ClipboardUtilities_1 = require("../ClipboardUtilities");
|
|
@@ -17,6 +18,7 @@ const parseToggle_1 = require("./parseToggle");
|
|
|
17
18
|
const booleanFlagNames = [
|
|
18
19
|
"dimensions", "patterns", "weights", "styles", "transparency", "fill", "textures", "materials", "acsTriad", "grid", "visibleEdges",
|
|
19
20
|
"hiddenEdges", "lighting", "shadows", "clipVolume", "constructions", "monochrome", "backgroundMap", "ambientOcclusion", "forceSurfaceDiscard",
|
|
21
|
+
"wiremesh",
|
|
20
22
|
];
|
|
21
23
|
const lowercaseBooleanFlagNames = booleanFlagNames.map((name) => name.toLowerCase());
|
|
22
24
|
/** Modifies the selected viewport's DisplayStyleState.
|
|
@@ -26,13 +28,13 @@ class DisplayStyleTool extends core_frontend_1.Tool {
|
|
|
26
28
|
get require3d() { return false; }
|
|
27
29
|
async run() {
|
|
28
30
|
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
29
|
-
if (undefined !== vp && (!this.require3d || vp.view.is3d()) && this.execute(vp))
|
|
31
|
+
if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.execute(vp))
|
|
30
32
|
vp.displayStyle = vp.view.displayStyle;
|
|
31
33
|
return true;
|
|
32
34
|
}
|
|
33
35
|
async parseAndRun(...args) {
|
|
34
36
|
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
35
|
-
if (undefined !== vp && (!this.require3d || vp.view.is3d()) && this.parse(args))
|
|
37
|
+
if (undefined !== vp && (!this.require3d || vp.view.is3d()) && await this.parse(args, vp))
|
|
36
38
|
return this.run();
|
|
37
39
|
else
|
|
38
40
|
return false;
|
|
@@ -99,15 +101,102 @@ ChangeViewFlagsTool.toolId = "ChangeViewFlags";
|
|
|
99
101
|
*/
|
|
100
102
|
class ToggleSkyboxTool extends DisplayStyleTool {
|
|
101
103
|
get require3d() { return true; }
|
|
102
|
-
parse(_args) { return true; } // no arguments
|
|
103
|
-
execute(vp) {
|
|
104
|
+
async parse(_args) { return true; } // no arguments
|
|
105
|
+
async execute(vp) {
|
|
104
106
|
const style = vp.view.displayStyle;
|
|
105
|
-
style.environment =
|
|
107
|
+
style.environment = style.environment.withDisplay({ sky: !style.environment.displaySky });
|
|
106
108
|
return true;
|
|
107
109
|
}
|
|
108
110
|
}
|
|
109
111
|
exports.ToggleSkyboxTool = ToggleSkyboxTool;
|
|
110
112
|
ToggleSkyboxTool.toolId = "ToggleSkybox";
|
|
113
|
+
/** Defines a [SkySphere]($common) to apply to the current view.
|
|
114
|
+
* @beta
|
|
115
|
+
*/
|
|
116
|
+
class SkySphereTool extends DisplayStyleTool {
|
|
117
|
+
static get minArgs() { return 1; }
|
|
118
|
+
static get maxArgs() { return 1; }
|
|
119
|
+
get require3d() { return true; }
|
|
120
|
+
async parse(args) {
|
|
121
|
+
this._image = args[0];
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
async execute(vp) {
|
|
125
|
+
if (this._image && vp.view.is3d()) {
|
|
126
|
+
vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({
|
|
127
|
+
displaySky: true,
|
|
128
|
+
sky: new core_common_1.SkySphere(this._image),
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.SkySphereTool = SkySphereTool;
|
|
135
|
+
SkySphereTool.toolId = "SetSkySphere";
|
|
136
|
+
/** Defines a [SkyCube]($common) to apply to the current view.
|
|
137
|
+
* @beta
|
|
138
|
+
*/
|
|
139
|
+
class SkyCubeTool extends DisplayStyleTool {
|
|
140
|
+
constructor() {
|
|
141
|
+
super(...arguments);
|
|
142
|
+
this._images = [];
|
|
143
|
+
}
|
|
144
|
+
static get minArgs() { return 1; }
|
|
145
|
+
static get maxArgs() { return 6; }
|
|
146
|
+
get require3d() { return true; }
|
|
147
|
+
async parse(args) {
|
|
148
|
+
this._images = [...args];
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
async execute(vp) {
|
|
152
|
+
const imgs = this._images;
|
|
153
|
+
if (imgs.length === 0 || !vp.view.is3d())
|
|
154
|
+
return true;
|
|
155
|
+
let top, bottom, left, right, front, back;
|
|
156
|
+
switch (imgs.length) {
|
|
157
|
+
case 1:
|
|
158
|
+
top = bottom = left = right = front = back = imgs[0];
|
|
159
|
+
break;
|
|
160
|
+
case 2:
|
|
161
|
+
top = bottom = imgs[0];
|
|
162
|
+
left = right = front = back = imgs[1];
|
|
163
|
+
break;
|
|
164
|
+
case 3:
|
|
165
|
+
top = bottom = imgs[0];
|
|
166
|
+
left = right = imgs[1];
|
|
167
|
+
front = back = imgs[2];
|
|
168
|
+
break;
|
|
169
|
+
case 4:
|
|
170
|
+
top = imgs[0];
|
|
171
|
+
bottom = imgs[1];
|
|
172
|
+
left = right = imgs[2];
|
|
173
|
+
front = back = imgs[3];
|
|
174
|
+
break;
|
|
175
|
+
case 5:
|
|
176
|
+
top = bottom = imgs[0];
|
|
177
|
+
left = imgs[1];
|
|
178
|
+
right = imgs[2];
|
|
179
|
+
front = imgs[3];
|
|
180
|
+
back = imgs[4];
|
|
181
|
+
break;
|
|
182
|
+
default:
|
|
183
|
+
top = imgs[0];
|
|
184
|
+
bottom = imgs[1];
|
|
185
|
+
left = imgs[2];
|
|
186
|
+
right = imgs[3];
|
|
187
|
+
front = imgs[4];
|
|
188
|
+
back = imgs[5];
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
vp.view.displayStyle.environment = vp.view.displayStyle.environment.clone({
|
|
192
|
+
displaySky: true,
|
|
193
|
+
sky: new core_common_1.SkyCube({ top, bottom, left, right, front, back }),
|
|
194
|
+
});
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
exports.SkyCubeTool = SkyCubeTool;
|
|
199
|
+
SkyCubeTool.toolId = "SetSkyCube";
|
|
111
200
|
/** Outputs (and optionally copies to the clipboard) a "rendering style" as a partial DisplayStyle3dSettingsProps JSON object based
|
|
112
201
|
* on the current view's display style settings.
|
|
113
202
|
* 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.
|
|
@@ -118,7 +207,7 @@ ToggleSkyboxTool.toolId = "ToggleSkybox";
|
|
|
118
207
|
* * `project`: include iTwin-specific (formerly known as project) settings.
|
|
119
208
|
* * `map`: include background map settings.
|
|
120
209
|
* * `drawingaids`: include drawing aid decoration settings.
|
|
121
|
-
* * `copy`: copy result to system
|
|
210
|
+
* * `copy`: copy result to system clipboard.
|
|
122
211
|
* * `quote`: format the JSON so it can be parsed directly by [ApplyRenderingStyleTool].
|
|
123
212
|
* @beta
|
|
124
213
|
*/
|
|
@@ -131,7 +220,7 @@ class SaveRenderingStyleTool extends DisplayStyleTool {
|
|
|
131
220
|
}
|
|
132
221
|
static get minArgs() { return 0; }
|
|
133
222
|
static get maxArgs() { return 7; }
|
|
134
|
-
parse(inputArgs) {
|
|
223
|
+
async parse(inputArgs) {
|
|
135
224
|
const args = (0, parseArgs_1.parseArgs)(inputArgs);
|
|
136
225
|
function getArg(name) {
|
|
137
226
|
return args.getBoolean(name) ? true : undefined;
|
|
@@ -145,7 +234,7 @@ class SaveRenderingStyleTool extends DisplayStyleTool {
|
|
|
145
234
|
this._quote = true === getArg("q");
|
|
146
235
|
return true;
|
|
147
236
|
}
|
|
148
|
-
execute(vp) {
|
|
237
|
+
async execute(vp) {
|
|
149
238
|
let json = JSON.stringify(vp.displayStyle.settings.toOverrides(this._options));
|
|
150
239
|
if (this._quote)
|
|
151
240
|
json = `"${json.replace(/"/g, '""')}"`;
|
|
@@ -164,7 +253,7 @@ SaveRenderingStyleTool.toolId = "SaveRenderingStyle";
|
|
|
164
253
|
class ApplyRenderingStyleTool extends DisplayStyleTool {
|
|
165
254
|
static get minArgs() { return 1; }
|
|
166
255
|
static get maxArgs() { return 1; }
|
|
167
|
-
parse(args) {
|
|
256
|
+
async parse(args) {
|
|
168
257
|
try {
|
|
169
258
|
this._overrides = JSON.parse(args[0]);
|
|
170
259
|
return true;
|
|
@@ -174,7 +263,7 @@ class ApplyRenderingStyleTool extends DisplayStyleTool {
|
|
|
174
263
|
return false;
|
|
175
264
|
}
|
|
176
265
|
}
|
|
177
|
-
execute(vp) {
|
|
266
|
+
async execute(vp) {
|
|
178
267
|
if (this._overrides)
|
|
179
268
|
vp.overrideDisplayStyle(this._overrides);
|
|
180
269
|
return false;
|
|
@@ -193,7 +282,7 @@ class OverrideSubCategoryTool extends DisplayStyleTool {
|
|
|
193
282
|
}
|
|
194
283
|
static get minArgs() { return 1; }
|
|
195
284
|
static get maxArgs() { return 7; }
|
|
196
|
-
parse(inArgs) {
|
|
285
|
+
async parse(inArgs) {
|
|
197
286
|
const args = (0, parseArgs_1.parseArgs)(inArgs);
|
|
198
287
|
const ids = args.get("i");
|
|
199
288
|
if (ids)
|
|
@@ -208,7 +297,7 @@ class OverrideSubCategoryTool extends DisplayStyleTool {
|
|
|
208
297
|
props.invisible = typeof visible === "boolean" ? !visible : undefined;
|
|
209
298
|
return true;
|
|
210
299
|
}
|
|
211
|
-
execute(vp) {
|
|
300
|
+
async execute(vp) {
|
|
212
301
|
const ovr = core_common_1.SubCategoryOverride.fromJSON(this._overrideProps);
|
|
213
302
|
for (const id of this._subcategoryIds)
|
|
214
303
|
vp.displayStyle.overrideSubCategory(id, ovr);
|
|
@@ -217,20 +306,94 @@ class OverrideSubCategoryTool extends DisplayStyleTool {
|
|
|
217
306
|
}
|
|
218
307
|
exports.OverrideSubCategoryTool = OverrideSubCategoryTool;
|
|
219
308
|
OverrideSubCategoryTool.toolId = "OverrideSubCategory";
|
|
309
|
+
/** Query the schedule script JSON from an element.
|
|
310
|
+
* @beta
|
|
311
|
+
*/
|
|
312
|
+
class QueryScheduleScriptTool extends DisplayStyleTool {
|
|
313
|
+
constructor() {
|
|
314
|
+
super(...arguments);
|
|
315
|
+
this._action = "copy";
|
|
316
|
+
this._includeElementIds = false;
|
|
317
|
+
this._countElementIds = false;
|
|
318
|
+
this._expandElementIds = false;
|
|
319
|
+
}
|
|
320
|
+
static get minArgs() { return 0; }
|
|
321
|
+
static get maxArgs() { return 3; }
|
|
322
|
+
async parse(input, vp) {
|
|
323
|
+
var _a, _b, _c;
|
|
324
|
+
const args = (0, parseArgs_1.parseArgs)(input);
|
|
325
|
+
this._sourceId = (_a = args.get("i")) !== null && _a !== void 0 ? _a : (_b = vp.displayStyle.scheduleScriptReference) === null || _b === void 0 ? void 0 : _b.sourceId;
|
|
326
|
+
if (!this._sourceId)
|
|
327
|
+
return false;
|
|
328
|
+
const action = (_c = args.get("a")) !== null && _c !== void 0 ? _c : "";
|
|
329
|
+
this._action = action.length > 0 && "b" === action[0].toLowerCase() ? "break" : "copy";
|
|
330
|
+
this._includeElementIds = this._countElementIds = this._expandElementIds = false;
|
|
331
|
+
const ids = args.get("e");
|
|
332
|
+
if (ids && ids.length > 0) {
|
|
333
|
+
switch (ids[0].toLowerCase()) {
|
|
334
|
+
case "i":
|
|
335
|
+
this._includeElementIds = true;
|
|
336
|
+
break;
|
|
337
|
+
case "c":
|
|
338
|
+
this._includeElementIds = this._countElementIds = true;
|
|
339
|
+
break;
|
|
340
|
+
case "e":
|
|
341
|
+
this._includeElementIds = this._expandElementIds = true;
|
|
342
|
+
break;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return true;
|
|
346
|
+
}
|
|
347
|
+
async execute(vp) {
|
|
348
|
+
var _a, _b;
|
|
349
|
+
if (!this._sourceId || !this._action)
|
|
350
|
+
return false;
|
|
351
|
+
const opts = {
|
|
352
|
+
displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },
|
|
353
|
+
renderTimeline: { omitScriptElementIds: !this._includeElementIds },
|
|
354
|
+
};
|
|
355
|
+
let script;
|
|
356
|
+
const props = await vp.iModel.elements.loadProps(this._sourceId, opts);
|
|
357
|
+
if (props.script)
|
|
358
|
+
script = JSON.parse(props.script.script);
|
|
359
|
+
else if ((_b = (_a = props.jsonProperties) === null || _a === void 0 ? void 0 : _a.styles) === null || _b === void 0 ? void 0 : _b.scheduleScript)
|
|
360
|
+
script = props.jsonProperties.styles.scheduleScript;
|
|
361
|
+
if (!script)
|
|
362
|
+
return false;
|
|
363
|
+
if (this._countElementIds || this._expandElementIds) {
|
|
364
|
+
for (const model of script) {
|
|
365
|
+
for (const elem of model.elementTimelines) {
|
|
366
|
+
const elemIds = typeof elem.elementIds === "string" ? core_bentley_1.CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;
|
|
367
|
+
if (this._countElementIds)
|
|
368
|
+
elem.elementIds = elemIds.length;
|
|
369
|
+
else
|
|
370
|
+
elem.elementIds = elemIds;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
if (this._action === "break")
|
|
375
|
+
debugger; // eslint-disable-line no-debugger
|
|
376
|
+
else
|
|
377
|
+
(0, ClipboardUtilities_1.copyStringToClipboard)(JSON.stringify(script, null, 2));
|
|
378
|
+
return true;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
exports.QueryScheduleScriptTool = QueryScheduleScriptTool;
|
|
382
|
+
QueryScheduleScriptTool.toolId = "QueryScheduleScript";
|
|
220
383
|
/** Set whether background color is ignored when applying white-on-white reversal.
|
|
221
384
|
* @beta
|
|
222
385
|
*/
|
|
223
386
|
class WoWIgnoreBackgroundTool extends DisplayStyleTool {
|
|
224
387
|
static get minArgs() { return 0; }
|
|
225
388
|
static get maxArgs() { return 1; }
|
|
226
|
-
parse(args) {
|
|
389
|
+
async parse(args) {
|
|
227
390
|
const ignore = (0, parseToggle_1.parseToggle)(args[0]);
|
|
228
391
|
if (typeof ignore === "string")
|
|
229
392
|
return false;
|
|
230
393
|
this._ignore = ignore;
|
|
231
394
|
return true;
|
|
232
395
|
}
|
|
233
|
-
execute(vp) {
|
|
396
|
+
async execute(vp) {
|
|
234
397
|
var _a;
|
|
235
398
|
const ignoreBackgroundColor = (_a = this._ignore) !== null && _a !== void 0 ? _a : !vp.displayStyle.settings.whiteOnWhiteReversal.ignoreBackgroundColor;
|
|
236
399
|
vp.displayStyle.settings.whiteOnWhiteReversal = core_common_1.WhiteOnWhiteReversalSettings.fromJSON({ ignoreBackgroundColor });
|
|
@@ -239,4 +402,45 @@ class WoWIgnoreBackgroundTool extends DisplayStyleTool {
|
|
|
239
402
|
}
|
|
240
403
|
exports.WoWIgnoreBackgroundTool = WoWIgnoreBackgroundTool;
|
|
241
404
|
WoWIgnoreBackgroundTool.toolId = "WoWIgnoreBackground";
|
|
405
|
+
/** Toggle whether surfaces display with overlaid wiremesh in the active viewport.
|
|
406
|
+
* @see [ViewFlags.wiremesh]($common).
|
|
407
|
+
* @beta
|
|
408
|
+
*/
|
|
409
|
+
class ToggleWiremeshTool extends DisplayStyleTool {
|
|
410
|
+
static get minArgs() { return 0; }
|
|
411
|
+
static get maxArgs() { return 1; }
|
|
412
|
+
async parse(args) {
|
|
413
|
+
const enable = (0, parseToggle_1.parseToggle)(args[0]);
|
|
414
|
+
if (typeof enable === "string")
|
|
415
|
+
return false;
|
|
416
|
+
this._enable = enable;
|
|
417
|
+
return true;
|
|
418
|
+
}
|
|
419
|
+
async execute(vp) {
|
|
420
|
+
var _a;
|
|
421
|
+
vp.viewFlags = vp.viewFlags.with("wiremesh", (_a = this._enable) !== null && _a !== void 0 ? _a : !vp.viewFlags.wiremesh);
|
|
422
|
+
return true;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
exports.ToggleWiremeshTool = ToggleWiremeshTool;
|
|
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";
|
|
242
446
|
//# sourceMappingURL=DisplayStyleTools.js.map
|