@itwin/frontend-devtools 3.0.0-dev.72
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 +723 -0
- package/LICENSE.md +9 -0
- package/README.md +321 -0
- package/lib/ClipboardUtilities.d.ts +9 -0
- package/lib/ClipboardUtilities.d.ts.map +1 -0
- package/lib/ClipboardUtilities.js +27 -0
- package/lib/ClipboardUtilities.js.map +1 -0
- package/lib/FrontEndDevTools.d.ts +19 -0
- package/lib/FrontEndDevTools.d.ts.map +1 -0
- package/lib/FrontEndDevTools.js +203 -0
- package/lib/FrontEndDevTools.js.map +1 -0
- package/lib/effects/Convolution.d.ts +69 -0
- package/lib/effects/Convolution.d.ts.map +1 -0
- package/lib/effects/Convolution.js +166 -0
- package/lib/effects/Convolution.js.map +1 -0
- package/lib/effects/EffectTools.d.ts +34 -0
- package/lib/effects/EffectTools.d.ts.map +1 -0
- package/lib/effects/EffectTools.js +69 -0
- package/lib/effects/EffectTools.js.map +1 -0
- package/lib/effects/Explosion.d.ts +13 -0
- package/lib/effects/Explosion.d.ts.map +1 -0
- package/lib/effects/Explosion.js +168 -0
- package/lib/effects/Explosion.js.map +1 -0
- package/lib/effects/FlipImage.d.ts +31 -0
- package/lib/effects/FlipImage.d.ts.map +1 -0
- package/lib/effects/FlipImage.js +100 -0
- package/lib/effects/FlipImage.js.map +1 -0
- package/lib/effects/LensDistortion.d.ts +35 -0
- package/lib/effects/LensDistortion.d.ts.map +1 -0
- package/lib/effects/LensDistortion.js +110 -0
- package/lib/effects/LensDistortion.js.map +1 -0
- package/lib/effects/Random.d.ts +25 -0
- package/lib/effects/Random.d.ts.map +1 -0
- package/lib/effects/Random.js +50 -0
- package/lib/effects/Random.js.map +1 -0
- package/lib/effects/Saturation.d.ts +31 -0
- package/lib/effects/Saturation.d.ts.map +1 -0
- package/lib/effects/Saturation.js +86 -0
- package/lib/effects/Saturation.js.map +1 -0
- package/lib/effects/Snow.d.ts +77 -0
- package/lib/effects/Snow.d.ts.map +1 -0
- package/lib/effects/Snow.js +187 -0
- package/lib/effects/Snow.js.map +1 -0
- package/lib/effects/Vignette.d.ts +40 -0
- package/lib/effects/Vignette.d.ts.map +1 -0
- package/lib/effects/Vignette.js +109 -0
- package/lib/effects/Vignette.js.map +1 -0
- package/lib/frontend-devtools.d.ts +82 -0
- package/lib/frontend-devtools.d.ts.map +1 -0
- package/lib/frontend-devtools.js +98 -0
- package/lib/frontend-devtools.js.map +1 -0
- package/lib/public/locales/en/FrontendDevTools.json +449 -0
- package/lib/public/sprites/particle_explosion.png +0 -0
- package/lib/public/sprites/particle_flame.png +0 -0
- package/lib/public/sprites/particle_snow.png +0 -0
- package/lib/tools/AnimationIntervalTool.d.ts +16 -0
- package/lib/tools/AnimationIntervalTool.d.ts.map +1 -0
- package/lib/tools/AnimationIntervalTool.js +31 -0
- package/lib/tools/AnimationIntervalTool.js.map +1 -0
- package/lib/tools/ChangeUnitsTool.d.ts +16 -0
- package/lib/tools/ChangeUnitsTool.d.ts.map +1 -0
- package/lib/tools/ChangeUnitsTool.js +42 -0
- package/lib/tools/ChangeUnitsTool.js.map +1 -0
- package/lib/tools/ClipTools.d.ts +68 -0
- package/lib/tools/ClipTools.d.ts.map +1 -0
- package/lib/tools/ClipTools.js +162 -0
- package/lib/tools/ClipTools.js.map +1 -0
- package/lib/tools/DisplayStyleTools.d.ts +99 -0
- package/lib/tools/DisplayStyleTools.d.ts.map +1 -0
- package/lib/tools/DisplayStyleTools.js +242 -0
- package/lib/tools/DisplayStyleTools.js.map +1 -0
- package/lib/tools/EmphasizeElementsTool.d.ts +61 -0
- package/lib/tools/EmphasizeElementsTool.d.ts.map +1 -0
- package/lib/tools/EmphasizeElementsTool.js +155 -0
- package/lib/tools/EmphasizeElementsTool.js.map +1 -0
- package/lib/tools/FrustumDecoration.d.ts +58 -0
- package/lib/tools/FrustumDecoration.d.ts.map +1 -0
- package/lib/tools/FrustumDecoration.js +372 -0
- package/lib/tools/FrustumDecoration.js.map +1 -0
- package/lib/tools/InspectElementTool.d.ts +42 -0
- package/lib/tools/InspectElementTool.d.ts.map +1 -0
- package/lib/tools/InspectElementTool.js +185 -0
- package/lib/tools/InspectElementTool.js.map +1 -0
- package/lib/tools/MapLayerTool.d.ts +248 -0
- package/lib/tools/MapLayerTool.d.ts.map +1 -0
- package/lib/tools/MapLayerTool.js +462 -0
- package/lib/tools/MapLayerTool.js.map +1 -0
- package/lib/tools/MeasureTileLoadTime.d.ts +13 -0
- package/lib/tools/MeasureTileLoadTime.d.ts.map +1 -0
- package/lib/tools/MeasureTileLoadTime.js +61 -0
- package/lib/tools/MeasureTileLoadTime.js.map +1 -0
- package/lib/tools/ModelAppearanceTools.d.ts +87 -0
- package/lib/tools/ModelAppearanceTools.d.ts.map +1 -0
- package/lib/tools/ModelAppearanceTools.js +184 -0
- package/lib/tools/ModelAppearanceTools.js.map +1 -0
- package/lib/tools/PlanProjectionTools.d.ts +41 -0
- package/lib/tools/PlanProjectionTools.d.ts.map +1 -0
- package/lib/tools/PlanProjectionTools.js +150 -0
- package/lib/tools/PlanProjectionTools.js.map +1 -0
- package/lib/tools/PlanarMaskTools.d.ts +182 -0
- package/lib/tools/PlanarMaskTools.d.ts.map +1 -0
- package/lib/tools/PlanarMaskTools.js +366 -0
- package/lib/tools/PlanarMaskTools.js.map +1 -0
- package/lib/tools/ProjectExtents.d.ts +41 -0
- package/lib/tools/ProjectExtents.d.ts.map +1 -0
- package/lib/tools/ProjectExtents.js +108 -0
- package/lib/tools/ProjectExtents.js.map +1 -0
- package/lib/tools/RealityModelTools.d.ts +117 -0
- package/lib/tools/RealityModelTools.d.ts.map +1 -0
- package/lib/tools/RealityModelTools.js +269 -0
- package/lib/tools/RealityModelTools.js.map +1 -0
- package/lib/tools/RealityTransitionTool.d.ts +26 -0
- package/lib/tools/RealityTransitionTool.d.ts.map +1 -0
- package/lib/tools/RealityTransitionTool.js +110 -0
- package/lib/tools/RealityTransitionTool.js.map +1 -0
- package/lib/tools/RenderSystemTools.d.ts +46 -0
- package/lib/tools/RenderSystemTools.d.ts.map +1 -0
- package/lib/tools/RenderSystemTools.js +81 -0
- package/lib/tools/RenderSystemTools.js.map +1 -0
- package/lib/tools/RenderTargetTools.d.ts +101 -0
- package/lib/tools/RenderTargetTools.d.ts.map +1 -0
- package/lib/tools/RenderTargetTools.js +167 -0
- package/lib/tools/RenderTargetTools.js.map +1 -0
- package/lib/tools/ReportWebGLCompatibilityTool.d.ts +12 -0
- package/lib/tools/ReportWebGLCompatibilityTool.d.ts.map +1 -0
- package/lib/tools/ReportWebGLCompatibilityTool.js +31 -0
- package/lib/tools/ReportWebGLCompatibilityTool.js.map +1 -0
- package/lib/tools/SavedViews.d.ts +47 -0
- package/lib/tools/SavedViews.d.ts.map +1 -0
- package/lib/tools/SavedViews.js +137 -0
- package/lib/tools/SavedViews.js.map +1 -0
- package/lib/tools/SelectionTools.d.ts +17 -0
- package/lib/tools/SelectionTools.d.ts.map +1 -0
- package/lib/tools/SelectionTools.js +28 -0
- package/lib/tools/SelectionTools.js.map +1 -0
- package/lib/tools/SetGpuMemoryLimitTool.d.ts +16 -0
- package/lib/tools/SetGpuMemoryLimitTool.d.ts.map +1 -0
- package/lib/tools/SetGpuMemoryLimitTool.js +34 -0
- package/lib/tools/SetGpuMemoryLimitTool.js.map +1 -0
- package/lib/tools/SourceAspectIdTools.d.ts +41 -0
- package/lib/tools/SourceAspectIdTools.d.ts.map +1 -0
- package/lib/tools/SourceAspectIdTools.js +105 -0
- package/lib/tools/SourceAspectIdTools.js.map +1 -0
- package/lib/tools/TileRequestDecoration.d.ts +13 -0
- package/lib/tools/TileRequestDecoration.d.ts.map +1 -0
- package/lib/tools/TileRequestDecoration.js +84 -0
- package/lib/tools/TileRequestDecoration.js.map +1 -0
- package/lib/tools/TileTreeBoundsDecoration.d.ts +12 -0
- package/lib/tools/TileTreeBoundsDecoration.d.ts.map +1 -0
- package/lib/tools/TileTreeBoundsDecoration.js +75 -0
- package/lib/tools/TileTreeBoundsDecoration.js.map +1 -0
- package/lib/tools/ToolTipProvider.d.ts +16 -0
- package/lib/tools/ToolTipProvider.d.ts.map +1 -0
- package/lib/tools/ToolTipProvider.js +67 -0
- package/lib/tools/ToolTipProvider.js.map +1 -0
- package/lib/tools/ViewportTools.d.ts +194 -0
- package/lib/tools/ViewportTools.d.ts.map +1 -0
- package/lib/tools/ViewportTools.js +451 -0
- package/lib/tools/ViewportTools.js.map +1 -0
- package/lib/tools/parseArgs.d.ts +24 -0
- package/lib/tools/parseArgs.d.ts.map +1 -0
- package/lib/tools/parseArgs.js +52 -0
- package/lib/tools/parseArgs.js.map +1 -0
- package/lib/tools/parseBoolean.d.ts +9 -0
- package/lib/tools/parseBoolean.d.ts.map +1 -0
- package/lib/tools/parseBoolean.js +27 -0
- package/lib/tools/parseBoolean.js.map +1 -0
- package/lib/tools/parseToggle.d.ts +9 -0
- package/lib/tools/parseToggle.d.ts.map +1 -0
- package/lib/tools/parseToggle.js +26 -0
- package/lib/tools/parseToggle.js.map +1 -0
- package/lib/ui/Button.d.ts +30 -0
- package/lib/ui/Button.d.ts.map +1 -0
- package/lib/ui/Button.js +27 -0
- package/lib/ui/Button.js.map +1 -0
- package/lib/ui/CheckBox.d.ts +24 -0
- package/lib/ui/CheckBox.d.ts.map +1 -0
- package/lib/ui/CheckBox.js +28 -0
- package/lib/ui/CheckBox.js.map +1 -0
- package/lib/ui/ColorInput.d.ts +28 -0
- package/lib/ui/ColorInput.d.ts.map +1 -0
- package/lib/ui/ColorInput.js +54 -0
- package/lib/ui/ColorInput.js.map +1 -0
- package/lib/ui/ComboBox.d.ts +29 -0
- package/lib/ui/ComboBox.d.ts.map +1 -0
- package/lib/ui/ComboBox.js +43 -0
- package/lib/ui/ComboBox.js.map +1 -0
- package/lib/ui/DataList.d.ts +28 -0
- package/lib/ui/DataList.d.ts.map +1 -0
- package/lib/ui/DataList.js +40 -0
- package/lib/ui/DataList.js.map +1 -0
- package/lib/ui/NestedMenu.d.ts +20 -0
- package/lib/ui/NestedMenu.d.ts.map +1 -0
- package/lib/ui/NestedMenu.js +47 -0
- package/lib/ui/NestedMenu.js.map +1 -0
- package/lib/ui/NumericInput.d.ts +35 -0
- package/lib/ui/NumericInput.d.ts.map +1 -0
- package/lib/ui/NumericInput.js +60 -0
- package/lib/ui/NumericInput.js.map +1 -0
- package/lib/ui/RadioBox.d.ts +29 -0
- package/lib/ui/RadioBox.d.ts.map +1 -0
- package/lib/ui/RadioBox.js +77 -0
- package/lib/ui/RadioBox.js.map +1 -0
- package/lib/ui/Slider.d.ts +25 -0
- package/lib/ui/Slider.d.ts.map +1 -0
- package/lib/ui/Slider.js +33 -0
- package/lib/ui/Slider.js.map +1 -0
- package/lib/ui/TextBox.d.ts +33 -0
- package/lib/ui/TextBox.d.ts.map +1 -0
- package/lib/ui/TextBox.js +57 -0
- package/lib/ui/TextBox.js.map +1 -0
- package/lib/widgets/DiagnosticsPanel.d.ts +36 -0
- package/lib/widgets/DiagnosticsPanel.d.ts.map +1 -0
- package/lib/widgets/DiagnosticsPanel.js +76 -0
- package/lib/widgets/DiagnosticsPanel.js.map +1 -0
- package/lib/widgets/FpsTracker.d.ts +20 -0
- package/lib/widgets/FpsTracker.d.ts.map +1 -0
- package/lib/widgets/FpsTracker.js +57 -0
- package/lib/widgets/FpsTracker.js.map +1 -0
- package/lib/widgets/GpuProfiler.d.ts +17 -0
- package/lib/widgets/GpuProfiler.d.ts.map +1 -0
- package/lib/widgets/GpuProfiler.js +193 -0
- package/lib/widgets/GpuProfiler.js.map +1 -0
- package/lib/widgets/KeyinField.d.ts +62 -0
- package/lib/widgets/KeyinField.d.ts.map +1 -0
- package/lib/widgets/KeyinField.js +188 -0
- package/lib/widgets/KeyinField.js.map +1 -0
- package/lib/widgets/MemoryTracker.d.ts +28 -0
- package/lib/widgets/MemoryTracker.d.ts.map +1 -0
- package/lib/widgets/MemoryTracker.js +244 -0
- package/lib/widgets/MemoryTracker.js.map +1 -0
- package/lib/widgets/TileMemoryBreakdown.d.ts +31 -0
- package/lib/widgets/TileMemoryBreakdown.d.ts.map +1 -0
- package/lib/widgets/TileMemoryBreakdown.js +205 -0
- package/lib/widgets/TileMemoryBreakdown.js.map +1 -0
- package/lib/widgets/TileStatisticsTracker.d.ts +22 -0
- package/lib/widgets/TileStatisticsTracker.d.ts.map +1 -0
- package/lib/widgets/TileStatisticsTracker.js +143 -0
- package/lib/widgets/TileStatisticsTracker.js.map +1 -0
- package/lib/widgets/ToolSettingsTracker.d.ts +10 -0
- package/lib/widgets/ToolSettingsTracker.d.ts.map +1 -0
- package/lib/widgets/ToolSettingsTracker.js +182 -0
- package/lib/widgets/ToolSettingsTracker.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TestClipStyleTool = exports.ToggleSectionCutTool = exports.ClipColorTool = void 0;
|
|
8
|
+
/** @packageDocumentation
|
|
9
|
+
* @module Tools
|
|
10
|
+
*/
|
|
11
|
+
const core_common_1 = require("@itwin/core-common");
|
|
12
|
+
const core_frontend_1 = require("@itwin/core-frontend");
|
|
13
|
+
const parseToggle_1 = require("./parseToggle");
|
|
14
|
+
const parseBoolean_1 = require("./parseBoolean");
|
|
15
|
+
const DisplayStyleTools_1 = require("./DisplayStyleTools");
|
|
16
|
+
/** This tool specifies or un-specifies a clip color to use for pixels inside or outside the clip region.
|
|
17
|
+
* Arguments can be:
|
|
18
|
+
* - clear
|
|
19
|
+
* - inside <color string> | clear
|
|
20
|
+
* - outside <color string> | clear
|
|
21
|
+
* <color string> must be in one of the following forms:
|
|
22
|
+
* "rgb(255,0,0)"
|
|
23
|
+
* "rgba(255,0,0,255)"
|
|
24
|
+
* "rgb(100%,0%,0%)"
|
|
25
|
+
* "hsl(120,50%,50%)"
|
|
26
|
+
* "#rrbbgg"
|
|
27
|
+
* "blanchedAlmond" (see possible values from [[ColorByName]]). Case insensitive.
|
|
28
|
+
* @see [ColorDef]
|
|
29
|
+
* @beta
|
|
30
|
+
*/
|
|
31
|
+
class ClipColorTool extends core_frontend_1.Tool {
|
|
32
|
+
static get minArgs() { return 1; }
|
|
33
|
+
static get maxArgs() { return 2; }
|
|
34
|
+
_clearClipColors() {
|
|
35
|
+
var _a;
|
|
36
|
+
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
37
|
+
if (undefined !== vp) {
|
|
38
|
+
const props = (_a = vp.displayStyle.settings.clipStyle.toJSON()) !== null && _a !== void 0 ? _a : {};
|
|
39
|
+
props.insideColor = props.outsideColor = undefined;
|
|
40
|
+
vp.displayStyle.settings.clipStyle = core_common_1.ClipStyle.fromJSON(props);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
setClipColor(colStr, which) {
|
|
44
|
+
var _a;
|
|
45
|
+
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
46
|
+
if (vp) {
|
|
47
|
+
const props = (_a = vp.displayStyle.settings.clipStyle.toJSON()) !== null && _a !== void 0 ? _a : {};
|
|
48
|
+
props[which] = colStr === "clear" ? undefined : core_common_1.RgbColor.fromColorDef(core_common_1.ColorDef.fromString(colStr));
|
|
49
|
+
vp.displayStyle.settings.clipStyle = core_common_1.ClipStyle.fromJSON(props);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** This runs the tool using the given arguments, specifying or unspecifying a clip color to use for pixels inside or outside the clip region.
|
|
53
|
+
* Arguments can be:
|
|
54
|
+
* - clear
|
|
55
|
+
* - inside <color string> | clear
|
|
56
|
+
* - outside <color string> | clear
|
|
57
|
+
* <color string> must be in one of the following forms:
|
|
58
|
+
* "rgb(255,0,0)"
|
|
59
|
+
* "rgba(255,0,0,255)"
|
|
60
|
+
* "rgb(100%,0%,0%)"
|
|
61
|
+
* "hsl(120,50%,50%)"
|
|
62
|
+
* "#rrbbgg"
|
|
63
|
+
* "blanchedAlmond" (see possible values from [[ColorByName]]). Case insensitive.
|
|
64
|
+
* @beta
|
|
65
|
+
*/
|
|
66
|
+
async parseAndRun(...args) {
|
|
67
|
+
if (1 === args.length) {
|
|
68
|
+
if (args[0] === "clear")
|
|
69
|
+
this._clearClipColors();
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
const which = args[0];
|
|
73
|
+
if (which === "inside" || which === "outside")
|
|
74
|
+
this.setClipColor(args[1], "inside" === which ? "insideColor" : "outsideColor");
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.ClipColorTool = ClipColorTool;
|
|
79
|
+
ClipColorTool.toolId = "ClipColorTool";
|
|
80
|
+
/** Controls a view state's view details' flag for producing cut geometry for a clip style.
|
|
81
|
+
* @beta
|
|
82
|
+
*/
|
|
83
|
+
class ToggleSectionCutTool extends core_frontend_1.Tool {
|
|
84
|
+
static get minArgs() { return 0; }
|
|
85
|
+
static get maxArgs() { return 1; }
|
|
86
|
+
/** This method runs the tool, controlling a view state's view details' flag for producing cut geometry for a clip style.
|
|
87
|
+
* @param produceCutGeometry whether to produce cut geometry
|
|
88
|
+
*/
|
|
89
|
+
async run(produceCutGeometry) {
|
|
90
|
+
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
91
|
+
if (vp) {
|
|
92
|
+
const style = vp.view.displayStyle.settings.clipStyle;
|
|
93
|
+
produceCutGeometry = produceCutGeometry !== null && produceCutGeometry !== void 0 ? produceCutGeometry : !style.produceCutGeometry;
|
|
94
|
+
if (produceCutGeometry !== style.produceCutGeometry) {
|
|
95
|
+
const json = Object.assign(Object.assign({}, vp.view.displayStyle.settings.clipStyle.toJSON()), { produceCutGeometry });
|
|
96
|
+
vp.view.displayStyle.settings.clipStyle = core_common_1.ClipStyle.fromJSON(json);
|
|
97
|
+
vp.invalidateScene();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
/** Executes this tool's run method with args[0] containing `produceCutGeometry`.
|
|
103
|
+
* @see [[run]]
|
|
104
|
+
*/
|
|
105
|
+
async parseAndRun(...args) {
|
|
106
|
+
const enable = (0, parseToggle_1.parseToggle)(args[0]);
|
|
107
|
+
if (typeof enable !== "string")
|
|
108
|
+
await this.run(enable);
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.ToggleSectionCutTool = ToggleSectionCutTool;
|
|
113
|
+
ToggleSectionCutTool.toolId = "ToggleSectionCut";
|
|
114
|
+
/** Simple tool that toggles a hard-coded clip style overriding various aspects of the cut geometry appearance.
|
|
115
|
+
* @beta
|
|
116
|
+
*/
|
|
117
|
+
class TestClipStyleTool extends DisplayStyleTools_1.DisplayStyleTool {
|
|
118
|
+
constructor() {
|
|
119
|
+
super(...arguments);
|
|
120
|
+
this._useStyle = false;
|
|
121
|
+
}
|
|
122
|
+
static get maxArgs() { return 1; }
|
|
123
|
+
static get minArgs() { return 1; }
|
|
124
|
+
get require3d() { return true; }
|
|
125
|
+
parse(args) {
|
|
126
|
+
var _a;
|
|
127
|
+
this._useStyle = (_a = (0, parseBoolean_1.parseBoolean)(args[0])) !== null && _a !== void 0 ? _a : false;
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
execute(vp) {
|
|
131
|
+
const props = { produceCutGeometry: true };
|
|
132
|
+
if (this._useStyle) {
|
|
133
|
+
props.cutStyle = {
|
|
134
|
+
viewflags: {
|
|
135
|
+
renderMode: core_common_1.RenderMode.SmoothShade,
|
|
136
|
+
visibleEdges: true,
|
|
137
|
+
hiddenEdges: false,
|
|
138
|
+
},
|
|
139
|
+
appearance: {
|
|
140
|
+
rgb: { r: 0xff, g: 0x7f, b: 0 },
|
|
141
|
+
transparency: 0.5,
|
|
142
|
+
nonLocatable: true,
|
|
143
|
+
},
|
|
144
|
+
hiddenLine: {
|
|
145
|
+
visible: {
|
|
146
|
+
ovrColor: true,
|
|
147
|
+
color: core_common_1.ColorByName.blue,
|
|
148
|
+
pattern: core_common_1.LinePixels.Solid,
|
|
149
|
+
width: 3,
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
vp.displayStyle.settings.clipStyle = core_common_1.ClipStyle.fromJSON(props);
|
|
155
|
+
vp.invalidateRenderPlan();
|
|
156
|
+
vp.setFeatureOverrideProviderChanged();
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.TestClipStyleTool = TestClipStyleTool;
|
|
161
|
+
TestClipStyleTool.toolId = "TestClipStyle";
|
|
162
|
+
//# sourceMappingURL=ClipTools.js.map
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Tools
|
|
3
|
+
*/
|
|
4
|
+
import { ViewFlags } from "@itwin/core-common";
|
|
5
|
+
import { Tool, Viewport } from "@itwin/core-frontend";
|
|
6
|
+
/** Modifies the selected viewport's DisplayStyleState.
|
|
7
|
+
* @beta
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class DisplayStyleTool extends Tool {
|
|
10
|
+
protected get require3d(): boolean;
|
|
11
|
+
protected abstract execute(vp: Viewport): boolean;
|
|
12
|
+
protected abstract parse(args: string[]): boolean;
|
|
13
|
+
run(): Promise<boolean>;
|
|
14
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
15
|
+
}
|
|
16
|
+
/** Modifies the selected viewport's ViewFlags.
|
|
17
|
+
* The keyin syntax is as follows:
|
|
18
|
+
* fdt change viewflags flag=value
|
|
19
|
+
* Where 'flag' is one of the BooleanFlagName values, or "renderMode"; and value is an integer.
|
|
20
|
+
* For boolean flags, value is 0 for false or 1 for true. For renderMode, value is one of the RenderMode enum values.
|
|
21
|
+
* Flag names are case-insensitive.
|
|
22
|
+
* @beta
|
|
23
|
+
*/
|
|
24
|
+
export declare class ChangeViewFlagsTool extends Tool {
|
|
25
|
+
static toolId: string;
|
|
26
|
+
static get maxArgs(): undefined;
|
|
27
|
+
static get minArgs(): number;
|
|
28
|
+
run(vf: ViewFlags, vp?: Viewport): Promise<boolean>;
|
|
29
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
30
|
+
}
|
|
31
|
+
/** Toggles the skybox.
|
|
32
|
+
* @beta
|
|
33
|
+
*/
|
|
34
|
+
export declare class ToggleSkyboxTool extends DisplayStyleTool {
|
|
35
|
+
static toolId: string;
|
|
36
|
+
get require3d(): boolean;
|
|
37
|
+
parse(_args: string[]): boolean;
|
|
38
|
+
execute(vp: Viewport): boolean;
|
|
39
|
+
}
|
|
40
|
+
/** Outputs (and optionally copies to the clipboard) a "rendering style" as a partial DisplayStyle3dSettingsProps JSON object based
|
|
41
|
+
* on the current view's display style settings.
|
|
42
|
+
* 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.
|
|
43
|
+
* @see [DisplayStyleSettings.toOverrides]($common) for details.
|
|
44
|
+
* Arguments:
|
|
45
|
+
* * `all`: include all settings.
|
|
46
|
+
* * `imodel`: include iModel-specific settings.
|
|
47
|
+
* * `project`: include project-specific settings.
|
|
48
|
+
* * `map`: include background map settings.
|
|
49
|
+
* * `drawingaids`: include drawing aid decoration settings.
|
|
50
|
+
* * `copy`: copy result to system clipboarad.
|
|
51
|
+
* * `quote`: format the JSON so it can be parsed directly by [ApplyRenderingStyleTool].
|
|
52
|
+
* @beta
|
|
53
|
+
*/
|
|
54
|
+
export declare class SaveRenderingStyleTool extends DisplayStyleTool {
|
|
55
|
+
private _options;
|
|
56
|
+
private _copyToClipboard;
|
|
57
|
+
private _quote;
|
|
58
|
+
static toolId: string;
|
|
59
|
+
static get minArgs(): number;
|
|
60
|
+
static get maxArgs(): number;
|
|
61
|
+
parse(inputArgs: string[]): boolean;
|
|
62
|
+
execute(vp: Viewport): boolean;
|
|
63
|
+
}
|
|
64
|
+
/** Given a "rendering style" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.
|
|
65
|
+
* @see [DisplayStyleSettings.applyOverrides]($common) for details.
|
|
66
|
+
* @beta
|
|
67
|
+
*/
|
|
68
|
+
export declare class ApplyRenderingStyleTool extends DisplayStyleTool {
|
|
69
|
+
private _overrides?;
|
|
70
|
+
static toolId: string;
|
|
71
|
+
static get minArgs(): number;
|
|
72
|
+
static get maxArgs(): number;
|
|
73
|
+
parse(args: string[]): boolean;
|
|
74
|
+
execute(vp: Viewport): boolean;
|
|
75
|
+
}
|
|
76
|
+
/** Apply appearance overrides to one or more subcategories in the active viewport.
|
|
77
|
+
* @beta
|
|
78
|
+
*/
|
|
79
|
+
export declare class OverrideSubCategoryTool extends DisplayStyleTool {
|
|
80
|
+
private _overrideProps;
|
|
81
|
+
private _subcategoryIds;
|
|
82
|
+
static toolId: string;
|
|
83
|
+
static get minArgs(): number;
|
|
84
|
+
static get maxArgs(): number;
|
|
85
|
+
parse(inArgs: string[]): boolean;
|
|
86
|
+
execute(vp: Viewport): boolean;
|
|
87
|
+
}
|
|
88
|
+
/** Set whether background color is ignored when applying white-on-white reversal.
|
|
89
|
+
* @beta
|
|
90
|
+
*/
|
|
91
|
+
export declare class WoWIgnoreBackgroundTool extends DisplayStyleTool {
|
|
92
|
+
private _ignore?;
|
|
93
|
+
static toolId: string;
|
|
94
|
+
static get minArgs(): number;
|
|
95
|
+
static get maxArgs(): number;
|
|
96
|
+
parse(args: string[]): boolean;
|
|
97
|
+
execute(vp: Viewport): boolean;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=DisplayStyleTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DisplayStyleTools.d.ts","sourceRoot":"","sources":["../../src/tools/DisplayStyleTools.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAC8G,SAAS,EAE7H,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACqF,IAAI,EAAE,QAAQ,EACzG,MAAM,sBAAsB,CAAC;AAiB9B;;GAEG;AACH,8BAAsB,gBAAiB,SAAQ,IAAI;IACjD,SAAS,KAAK,SAAS,YAAoB;IAE3C,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAEjD,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO;IAE3B,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;IAQvB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAOvE;AAED;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,IAAI;IAC3C,OAAuB,MAAM,SAAqB;IAClD,WAA2B,OAAO,cAAwB;IAC1D,WAA2B,OAAO,WAAgB;IAE5B,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAOnD,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CA2CvE;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD,OAAuB,MAAM,SAAkB;IAE/C,IAAoB,SAAS,YAAmB;IAEzC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;IAErB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;CAKtC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAuB,SAAQ,gBAAgB;IAC1D,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAuB,MAAM,SAAwB;IAErD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAE3C,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE;IAiBzB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;CAWtC;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,UAAU,CAAC,CAA8B;IAEjD,OAAuB,MAAM,SAAyB;IAEtD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAE3C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;IAUpB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;CAMtC;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,eAAe,CAAgB;IAEvC,OAAuB,MAAM,SAAyB;IACtD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAE3C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;IAkBhC,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;CAOtC;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,OAAO,CAAC,CAAU;IAE1B,OAAuB,MAAM,SAAyB;IACtD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAE3C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO;IAS9B,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;CAKtC"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.WoWIgnoreBackgroundTool = exports.OverrideSubCategoryTool = exports.ApplyRenderingStyleTool = exports.SaveRenderingStyleTool = exports.ToggleSkyboxTool = exports.ChangeViewFlagsTool = exports.DisplayStyleTool = void 0;
|
|
8
|
+
/** @packageDocumentation
|
|
9
|
+
* @module Tools
|
|
10
|
+
*/
|
|
11
|
+
const core_common_1 = require("@itwin/core-common");
|
|
12
|
+
const core_frontend_1 = require("@itwin/core-frontend");
|
|
13
|
+
const ClipboardUtilities_1 = require("../ClipboardUtilities");
|
|
14
|
+
const parseArgs_1 = require("./parseArgs");
|
|
15
|
+
const parseToggle_1 = require("./parseToggle");
|
|
16
|
+
// Compiler has the info to construct this array for us, but we have no access to it...
|
|
17
|
+
const booleanFlagNames = [
|
|
18
|
+
"dimensions", "patterns", "weights", "styles", "transparency", "fill", "textures", "materials", "acsTriad", "grid", "visibleEdges",
|
|
19
|
+
"hiddenEdges", "lighting", "shadows", "clipVolume", "constructions", "monochrome", "backgroundMap", "ambientOcclusion", "forceSurfaceDiscard",
|
|
20
|
+
];
|
|
21
|
+
const lowercaseBooleanFlagNames = booleanFlagNames.map((name) => name.toLowerCase());
|
|
22
|
+
/** Modifies the selected viewport's DisplayStyleState.
|
|
23
|
+
* @beta
|
|
24
|
+
*/
|
|
25
|
+
class DisplayStyleTool extends core_frontend_1.Tool {
|
|
26
|
+
get require3d() { return false; }
|
|
27
|
+
async run() {
|
|
28
|
+
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
29
|
+
if (undefined !== vp && (!this.require3d || vp.view.is3d()) && this.execute(vp))
|
|
30
|
+
vp.displayStyle = vp.view.displayStyle;
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
async parseAndRun(...args) {
|
|
34
|
+
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
35
|
+
if (undefined !== vp && (!this.require3d || vp.view.is3d()) && this.parse(args))
|
|
36
|
+
return this.run();
|
|
37
|
+
else
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.DisplayStyleTool = DisplayStyleTool;
|
|
42
|
+
/** Modifies the selected viewport's ViewFlags.
|
|
43
|
+
* The keyin syntax is as follows:
|
|
44
|
+
* fdt change viewflags flag=value
|
|
45
|
+
* Where 'flag' is one of the BooleanFlagName values, or "renderMode"; and value is an integer.
|
|
46
|
+
* For boolean flags, value is 0 for false or 1 for true. For renderMode, value is one of the RenderMode enum values.
|
|
47
|
+
* Flag names are case-insensitive.
|
|
48
|
+
* @beta
|
|
49
|
+
*/
|
|
50
|
+
class ChangeViewFlagsTool extends core_frontend_1.Tool {
|
|
51
|
+
static get maxArgs() { return undefined; }
|
|
52
|
+
static get minArgs() { return 1; }
|
|
53
|
+
async run(vf, vp) {
|
|
54
|
+
if (undefined !== vf && undefined !== vp)
|
|
55
|
+
vp.viewFlags = vf;
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
async parseAndRun(...args) {
|
|
59
|
+
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
60
|
+
if (undefined === vp || 0 === args.length)
|
|
61
|
+
return true;
|
|
62
|
+
const vf = Object.assign({}, vp.viewFlags);
|
|
63
|
+
for (const arg of args) {
|
|
64
|
+
const parts = arg.split("=");
|
|
65
|
+
if (2 !== parts.length)
|
|
66
|
+
continue;
|
|
67
|
+
const value = parseInt(parts[1], 10);
|
|
68
|
+
if (Number.isNaN(value))
|
|
69
|
+
continue;
|
|
70
|
+
const name = parts[0].toLowerCase();
|
|
71
|
+
if (name === "rendermode") {
|
|
72
|
+
switch (value) {
|
|
73
|
+
case core_common_1.RenderMode.SmoothShade:
|
|
74
|
+
case core_common_1.RenderMode.Wireframe:
|
|
75
|
+
case core_common_1.RenderMode.HiddenLine:
|
|
76
|
+
case core_common_1.RenderMode.SolidFill:
|
|
77
|
+
vf.renderMode = value;
|
|
78
|
+
vp.invalidateRenderPlan();
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (0 !== value && 1 !== value)
|
|
84
|
+
continue;
|
|
85
|
+
const index = lowercaseBooleanFlagNames.indexOf(name);
|
|
86
|
+
if (-1 !== index) {
|
|
87
|
+
const propName = booleanFlagNames[index];
|
|
88
|
+
vf[propName] = 0 !== value;
|
|
89
|
+
vp.invalidateRenderPlan();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return this.run(new core_common_1.ViewFlags(vf), vp);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.ChangeViewFlagsTool = ChangeViewFlagsTool;
|
|
96
|
+
ChangeViewFlagsTool.toolId = "ChangeViewFlags";
|
|
97
|
+
/** Toggles the skybox.
|
|
98
|
+
* @beta
|
|
99
|
+
*/
|
|
100
|
+
class ToggleSkyboxTool extends DisplayStyleTool {
|
|
101
|
+
get require3d() { return true; }
|
|
102
|
+
parse(_args) { return true; } // no arguments
|
|
103
|
+
execute(vp) {
|
|
104
|
+
const style = vp.view.displayStyle;
|
|
105
|
+
style.environment = new core_frontend_1.Environment({ sky: { display: !style.environment.sky.display } });
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.ToggleSkyboxTool = ToggleSkyboxTool;
|
|
110
|
+
ToggleSkyboxTool.toolId = "ToggleSkybox";
|
|
111
|
+
/** Outputs (and optionally copies to the clipboard) a "rendering style" as a partial DisplayStyle3dSettingsProps JSON object based
|
|
112
|
+
* on the current view's display style settings.
|
|
113
|
+
* 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.
|
|
114
|
+
* @see [DisplayStyleSettings.toOverrides]($common) for details.
|
|
115
|
+
* Arguments:
|
|
116
|
+
* * `all`: include all settings.
|
|
117
|
+
* * `imodel`: include iModel-specific settings.
|
|
118
|
+
* * `project`: include project-specific settings.
|
|
119
|
+
* * `map`: include background map settings.
|
|
120
|
+
* * `drawingaids`: include drawing aid decoration settings.
|
|
121
|
+
* * `copy`: copy result to system clipboarad.
|
|
122
|
+
* * `quote`: format the JSON so it can be parsed directly by [ApplyRenderingStyleTool].
|
|
123
|
+
* @beta
|
|
124
|
+
*/
|
|
125
|
+
class SaveRenderingStyleTool extends DisplayStyleTool {
|
|
126
|
+
constructor() {
|
|
127
|
+
super(...arguments);
|
|
128
|
+
this._options = {};
|
|
129
|
+
this._copyToClipboard = false;
|
|
130
|
+
this._quote = false;
|
|
131
|
+
}
|
|
132
|
+
static get minArgs() { return 0; }
|
|
133
|
+
static get maxArgs() { return 7; }
|
|
134
|
+
parse(inputArgs) {
|
|
135
|
+
const args = (0, parseArgs_1.parseArgs)(inputArgs);
|
|
136
|
+
function getArg(name) {
|
|
137
|
+
return args.getBoolean(name) ? true : undefined;
|
|
138
|
+
}
|
|
139
|
+
this._options.includeAll = getArg("a");
|
|
140
|
+
this._options.includeIModelSpecific = getArg("i");
|
|
141
|
+
this._options.includeProjectSpecific = getArg("p");
|
|
142
|
+
this._options.includeBackgroundMap = getArg("m");
|
|
143
|
+
this._options.includeDrawingAids = getArg("d");
|
|
144
|
+
this._copyToClipboard = true === getArg("c");
|
|
145
|
+
this._quote = true === getArg("q");
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
execute(vp) {
|
|
149
|
+
let json = JSON.stringify(vp.displayStyle.settings.toOverrides(this._options));
|
|
150
|
+
if (this._quote)
|
|
151
|
+
json = `"${json.replace(/"/g, '""')}"`;
|
|
152
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, "Rendering style saved", json));
|
|
153
|
+
if (this._copyToClipboard)
|
|
154
|
+
(0, ClipboardUtilities_1.copyStringToClipboard)(json);
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.SaveRenderingStyleTool = SaveRenderingStyleTool;
|
|
159
|
+
SaveRenderingStyleTool.toolId = "SaveRenderingStyle";
|
|
160
|
+
/** Given a "rendering style" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.
|
|
161
|
+
* @see [DisplayStyleSettings.applyOverrides]($common) for details.
|
|
162
|
+
* @beta
|
|
163
|
+
*/
|
|
164
|
+
class ApplyRenderingStyleTool extends DisplayStyleTool {
|
|
165
|
+
static get minArgs() { return 1; }
|
|
166
|
+
static get maxArgs() { return 1; }
|
|
167
|
+
parse(args) {
|
|
168
|
+
try {
|
|
169
|
+
this._overrides = JSON.parse(args[0]);
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
catch (_a) {
|
|
173
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Error, "Invalid JSON"));
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
execute(vp) {
|
|
178
|
+
if (this._overrides)
|
|
179
|
+
vp.overrideDisplayStyle(this._overrides);
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
exports.ApplyRenderingStyleTool = ApplyRenderingStyleTool;
|
|
184
|
+
ApplyRenderingStyleTool.toolId = "ApplyRenderingStyle";
|
|
185
|
+
/** Apply appearance overrides to one or more subcategories in the active viewport.
|
|
186
|
+
* @beta
|
|
187
|
+
*/
|
|
188
|
+
class OverrideSubCategoryTool extends DisplayStyleTool {
|
|
189
|
+
constructor() {
|
|
190
|
+
super(...arguments);
|
|
191
|
+
this._overrideProps = {};
|
|
192
|
+
this._subcategoryIds = [];
|
|
193
|
+
}
|
|
194
|
+
static get minArgs() { return 1; }
|
|
195
|
+
static get maxArgs() { return 7; }
|
|
196
|
+
parse(inArgs) {
|
|
197
|
+
const args = (0, parseArgs_1.parseArgs)(inArgs);
|
|
198
|
+
const ids = args.get("i");
|
|
199
|
+
if (ids)
|
|
200
|
+
this._subcategoryIds = ids.split(",");
|
|
201
|
+
const props = this._overrideProps;
|
|
202
|
+
props.color = args.getInteger("c");
|
|
203
|
+
props.weight = args.getInteger("w");
|
|
204
|
+
props.priority = args.getInteger("p");
|
|
205
|
+
props.transp = args.getFloat("t");
|
|
206
|
+
props.material = args.get("m");
|
|
207
|
+
const visible = args.getBoolean("v");
|
|
208
|
+
props.invisible = typeof visible === "boolean" ? !visible : undefined;
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
execute(vp) {
|
|
212
|
+
const ovr = core_common_1.SubCategoryOverride.fromJSON(this._overrideProps);
|
|
213
|
+
for (const id of this._subcategoryIds)
|
|
214
|
+
vp.displayStyle.overrideSubCategory(id, ovr);
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
exports.OverrideSubCategoryTool = OverrideSubCategoryTool;
|
|
219
|
+
OverrideSubCategoryTool.toolId = "OverrideSubCategory";
|
|
220
|
+
/** Set whether background color is ignored when applying white-on-white reversal.
|
|
221
|
+
* @beta
|
|
222
|
+
*/
|
|
223
|
+
class WoWIgnoreBackgroundTool extends DisplayStyleTool {
|
|
224
|
+
static get minArgs() { return 0; }
|
|
225
|
+
static get maxArgs() { return 1; }
|
|
226
|
+
parse(args) {
|
|
227
|
+
const ignore = (0, parseToggle_1.parseToggle)(args[0]);
|
|
228
|
+
if (typeof ignore === "string")
|
|
229
|
+
return false;
|
|
230
|
+
this._ignore = ignore;
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
execute(vp) {
|
|
234
|
+
var _a;
|
|
235
|
+
const ignoreBackgroundColor = (_a = this._ignore) !== null && _a !== void 0 ? _a : !vp.displayStyle.settings.whiteOnWhiteReversal.ignoreBackgroundColor;
|
|
236
|
+
vp.displayStyle.settings.whiteOnWhiteReversal = core_common_1.WhiteOnWhiteReversalSettings.fromJSON({ ignoreBackgroundColor });
|
|
237
|
+
return true;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
exports.WoWIgnoreBackgroundTool = WoWIgnoreBackgroundTool;
|
|
241
|
+
WoWIgnoreBackgroundTool.toolId = "WoWIgnoreBackground";
|
|
242
|
+
//# sourceMappingURL=DisplayStyleTools.js.map
|
|
@@ -0,0 +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 {\r\n DisplayStyle3dSettingsProps, DisplayStyleOverridesOptions, RenderMode, SubCategoryAppearance, SubCategoryOverride, ViewFlags, ViewFlagsProperties,\r\n WhiteOnWhiteReversalSettings,\r\n} from \"@itwin/core-common\";\r\nimport {\r\n DisplayStyle3dState, Environment, 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\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];\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): boolean;\r\n // Return false if failed to parse.\r\n protected abstract parse(args: string[]): 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()) && 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()) && this.parse(args))\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 parse(_args: string[]) { return true; } // no arguments\r\n\r\n public execute(vp: Viewport): boolean {\r\n const style = vp.view.displayStyle as DisplayStyle3dState;\r\n style.environment = new Environment({ sky: { display: !style.environment.sky.display } });\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 project-specific settings.\r\n * * `map`: include background map settings.\r\n * * `drawingaids`: include drawing aid decoration settings.\r\n * * `copy`: copy result to system clipboarad.\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 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.includeProjectSpecific = getArg(\"p\");\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 execute(vp: Viewport): boolean {\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 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 execute(vp: Viewport): boolean {\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 parse(inArgs: string[]): boolean {\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 execute(vp: Viewport): boolean {\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/** 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 parse(args: string[]): boolean {\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 execute(vp: Viewport): boolean {\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"]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Tools
|
|
3
|
+
*/
|
|
4
|
+
import { EmphasizeElements, ScreenViewport, Tool } from "@itwin/core-frontend";
|
|
5
|
+
/** Applies the `EmphasizeElements` API in some way to the selected Viewport.
|
|
6
|
+
* @beta
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class EmphasizeElementsTool extends Tool {
|
|
9
|
+
protected get _wantCreate(): boolean;
|
|
10
|
+
protected get _wantClear(): boolean;
|
|
11
|
+
protected abstract execute(emph: EmphasizeElements, vp: ScreenViewport): void;
|
|
12
|
+
run(_args: any[]): Promise<boolean>;
|
|
13
|
+
}
|
|
14
|
+
/** If any elements are selected, emphasize them all by overriding their color to be orange; and de-emphasize all other elements by drawing them transparent grey.
|
|
15
|
+
* @beta
|
|
16
|
+
*/
|
|
17
|
+
export declare class EmphasizeSelectedElementsTool extends EmphasizeElementsTool {
|
|
18
|
+
static toolId: string;
|
|
19
|
+
static get minArgs(): number;
|
|
20
|
+
static get maxArgs(): number;
|
|
21
|
+
private _type;
|
|
22
|
+
execute(emph: EmphasizeElements, vp: ScreenViewport): void;
|
|
23
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
24
|
+
}
|
|
25
|
+
/** Isolate all selected elements so that *only* those elements will be drawn.
|
|
26
|
+
* @beta
|
|
27
|
+
*/
|
|
28
|
+
export declare class IsolateSelectedElementsTool extends EmphasizeElementsTool {
|
|
29
|
+
static toolId: string;
|
|
30
|
+
execute(emph: EmphasizeElements, vp: ScreenViewport): void;
|
|
31
|
+
}
|
|
32
|
+
/** Clear the set of isolated elements.
|
|
33
|
+
* @beta
|
|
34
|
+
*/
|
|
35
|
+
export declare class ClearIsolatedElementsTool extends EmphasizeElementsTool {
|
|
36
|
+
static toolId: string;
|
|
37
|
+
protected get _wantCreate(): boolean;
|
|
38
|
+
execute(emph: EmphasizeElements, vp: ScreenViewport): void;
|
|
39
|
+
}
|
|
40
|
+
/** Reset [EmphasizeElements]($frontend) for the active [Viewport]($frontend).
|
|
41
|
+
* @beta
|
|
42
|
+
*/
|
|
43
|
+
export declare class ClearEmphasizedElementsTool extends EmphasizeElementsTool {
|
|
44
|
+
static toolId: string;
|
|
45
|
+
protected get _wantCreate(): boolean;
|
|
46
|
+
protected get _wantClear(): boolean;
|
|
47
|
+
execute(emph: EmphasizeElements, vp: ScreenViewport): void;
|
|
48
|
+
}
|
|
49
|
+
/** Emphasize the set of elements currently visible in the view based on [Viewport.queryVisibleFeatures]($frontend).
|
|
50
|
+
* @beta
|
|
51
|
+
*/
|
|
52
|
+
export declare class EmphasizeVisibleElementsTool extends EmphasizeElementsTool {
|
|
53
|
+
static toolId: string;
|
|
54
|
+
static get minArgs(): number;
|
|
55
|
+
static get maxArgs(): number;
|
|
56
|
+
private _options;
|
|
57
|
+
protected get _wantClear(): boolean;
|
|
58
|
+
parseAndRun(...input: string[]): Promise<boolean>;
|
|
59
|
+
execute(emph: EmphasizeElements, vp: ScreenViewport): void;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=EmphasizeElementsTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmphasizeElementsTool.d.ts","sourceRoot":"","sources":["../../src/tools/EmphasizeElementsTool.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,iBAAiB,EAA0C,cAAc,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAGvH;;GAEG;AACH,8BAAsB,qBAAsB,SAAQ,IAAI;IACtD,SAAS,KAAK,WAAW,IAAI,OAAO,CAAiB;IACrD,SAAS,KAAK,UAAU,IAAI,OAAO,CAAkB;IACrD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;IAEvD,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAc1D;AASD;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,qBAAqB;IACtE,OAAuB,MAAM,SAA+B;IAC5D,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAClD,OAAO,CAAC,KAAK,CAAqB;IAE3B,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;IAe3C,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAmBvE;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,qBAAqB;IACpE,OAAuB,MAAM,SAA6B;IACnD,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;CAGlE;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,qBAAqB;IAClE,OAAuB,MAAM,SAA2B;IACxD,cAAuB,WAAW,YAAoB;IAC/C,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;CAGlE;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,qBAAqB;IACpE,OAAuB,MAAM,SAA6B;IAC1D,cAAuB,WAAW,YAAoB;IACtD,cAAuB,UAAU,YAAmB;IAE7C,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;CAIlE;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,qBAAqB;IACrE,OAAuB,MAAM,SAA8B;IAC3D,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAClD,OAAO,CAAC,QAAQ,CAAqD;IACrE,cAAuB,UAAU,YAAmB;IAE9B,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBhE,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;CAalE"}
|