@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,87 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module Tools
|
|
3
|
+
*/
|
|
4
|
+
import { LinePixels, RgbColorProps } from "@itwin/core-common";
|
|
5
|
+
import { Tool } from "@itwin/core-frontend";
|
|
6
|
+
/** Set model appearance override for transparency in display style.
|
|
7
|
+
* @beta
|
|
8
|
+
*/
|
|
9
|
+
export declare class SetModelTransparencyTool extends Tool {
|
|
10
|
+
static toolId: string;
|
|
11
|
+
static get minArgs(): number;
|
|
12
|
+
static get maxArgs(): number;
|
|
13
|
+
run(transparency: number, name: string): Promise<boolean>;
|
|
14
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
15
|
+
}
|
|
16
|
+
/** Set model appearance override for line weight in display style.
|
|
17
|
+
* @beta
|
|
18
|
+
*/
|
|
19
|
+
export declare class SetModelLineWeightTool extends Tool {
|
|
20
|
+
static toolId: string;
|
|
21
|
+
static get minArgs(): number;
|
|
22
|
+
static get maxArgs(): number;
|
|
23
|
+
run(weight: number, name: string): Promise<boolean>;
|
|
24
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
25
|
+
}
|
|
26
|
+
/** Set model appearance override for line code in display style.
|
|
27
|
+
* @beta
|
|
28
|
+
*/
|
|
29
|
+
export declare class SetModelLineCodeTool extends Tool {
|
|
30
|
+
static toolId: string;
|
|
31
|
+
static get minArgs(): number;
|
|
32
|
+
static get maxArgs(): number;
|
|
33
|
+
static linePixels: LinePixels[];
|
|
34
|
+
run(lineCode: number, name: string): Promise<boolean>;
|
|
35
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
36
|
+
}
|
|
37
|
+
/** Set model appearance override for nonLocatable in display style.
|
|
38
|
+
* @beta
|
|
39
|
+
*/
|
|
40
|
+
export declare class SetModelLocateTool extends Tool {
|
|
41
|
+
static toolId: string;
|
|
42
|
+
static get minArgs(): number;
|
|
43
|
+
static get maxArgs(): number;
|
|
44
|
+
run(locate: boolean, name: string): Promise<boolean>;
|
|
45
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
46
|
+
}
|
|
47
|
+
/** Set model appearance override for emphasized in display style.
|
|
48
|
+
* @beta
|
|
49
|
+
*/
|
|
50
|
+
export declare class SetModelEmphasizedTool extends Tool {
|
|
51
|
+
static toolId: string;
|
|
52
|
+
static get minArgs(): number;
|
|
53
|
+
static get maxArgs(): number;
|
|
54
|
+
run(emphasized: true | undefined, name: string): Promise<boolean>;
|
|
55
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
56
|
+
}
|
|
57
|
+
/** Set model appearance override for ignoreMaterials in display style.
|
|
58
|
+
* @beta
|
|
59
|
+
*/
|
|
60
|
+
export declare class SetModelIgnoresMaterialsTool extends Tool {
|
|
61
|
+
static toolId: string;
|
|
62
|
+
static get minArgs(): number;
|
|
63
|
+
static get maxArgs(): number;
|
|
64
|
+
run(ignoresMaterial: true | undefined, name: string): Promise<boolean>;
|
|
65
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
66
|
+
}
|
|
67
|
+
/** Set model appearance override for color in display style.
|
|
68
|
+
* @beta
|
|
69
|
+
*/
|
|
70
|
+
export declare class SetModelColorTool extends Tool {
|
|
71
|
+
static toolId: string;
|
|
72
|
+
static get minArgs(): number;
|
|
73
|
+
static get maxArgs(): number;
|
|
74
|
+
run(rgb: RgbColorProps, name: string): Promise<boolean>;
|
|
75
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
76
|
+
}
|
|
77
|
+
/** clear model appearance overrides in display style.
|
|
78
|
+
* @beta
|
|
79
|
+
*/
|
|
80
|
+
export declare class ClearModelAppearanceOverrides extends Tool {
|
|
81
|
+
static toolId: string;
|
|
82
|
+
static get minArgs(): number;
|
|
83
|
+
static get maxArgs(): number;
|
|
84
|
+
run(name?: string): Promise<boolean>;
|
|
85
|
+
parseAndRun(...args: string[]): Promise<boolean>;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=ModelAppearanceTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelAppearanceTools.d.ts","sourceRoot":"","sources":["../../src/tools/ModelAppearanceTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
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.ClearModelAppearanceOverrides = exports.SetModelColorTool = exports.SetModelIgnoresMaterialsTool = exports.SetModelEmphasizedTool = exports.SetModelLocateTool = exports.SetModelLineCodeTool = exports.SetModelLineWeightTool = exports.SetModelTransparencyTool = 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 parseBoolean_1 = require("./parseBoolean");
|
|
14
|
+
function changeModelAppearanceOverrides(vp, overrides, name) {
|
|
15
|
+
let changed = false;
|
|
16
|
+
if (vp !== undefined && vp.view instanceof core_frontend_1.SpatialViewState)
|
|
17
|
+
vp.view.forEachModel((model) => {
|
|
18
|
+
if (name === undefined || model.name === name) {
|
|
19
|
+
changed = true;
|
|
20
|
+
const existingOverrides = vp.displayStyle.settings.getModelAppearanceOverride(model.id);
|
|
21
|
+
vp.overrideModelAppearance(model.id, existingOverrides ? existingOverrides.clone(overrides) : core_common_1.FeatureAppearance.fromJSON(overrides));
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return changed;
|
|
25
|
+
}
|
|
26
|
+
function modelChangedString(name) {
|
|
27
|
+
return name === undefined ? `All Models` : `Model: ${name}`;
|
|
28
|
+
}
|
|
29
|
+
/** Set model appearance override for transparency in display style.
|
|
30
|
+
* @beta
|
|
31
|
+
*/
|
|
32
|
+
class SetModelTransparencyTool extends core_frontend_1.Tool {
|
|
33
|
+
static get minArgs() { return 1; }
|
|
34
|
+
static get maxArgs() { return 2; }
|
|
35
|
+
async run(transparency, name) {
|
|
36
|
+
const changed = changeModelAppearanceOverrides(core_frontend_1.IModelApp.viewManager.selectedView, { transparency }, name);
|
|
37
|
+
if (changed)
|
|
38
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, `${modelChangedString(name)} set to transparency: ${transparency}`));
|
|
39
|
+
return changed;
|
|
40
|
+
}
|
|
41
|
+
async parseAndRun(...args) {
|
|
42
|
+
return this.run(parseFloat(args[0]), args[1]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.SetModelTransparencyTool = SetModelTransparencyTool;
|
|
46
|
+
SetModelTransparencyTool.toolId = "SetModelTransparencyTool";
|
|
47
|
+
/** Set model appearance override for line weight in display style.
|
|
48
|
+
* @beta
|
|
49
|
+
*/
|
|
50
|
+
class SetModelLineWeightTool extends core_frontend_1.Tool {
|
|
51
|
+
static get minArgs() { return 1; }
|
|
52
|
+
static get maxArgs() { return 2; }
|
|
53
|
+
async run(weight, name) {
|
|
54
|
+
const changed = changeModelAppearanceOverrides(core_frontend_1.IModelApp.viewManager.selectedView, { weight }, name);
|
|
55
|
+
if (changed)
|
|
56
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, `${modelChangedString(name)} set to line weight: ${weight}`));
|
|
57
|
+
return changed;
|
|
58
|
+
}
|
|
59
|
+
async parseAndRun(...args) {
|
|
60
|
+
return this.run(parseFloat(args[0]), args[1]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.SetModelLineWeightTool = SetModelLineWeightTool;
|
|
64
|
+
SetModelLineWeightTool.toolId = "SetModelLineWeightTool";
|
|
65
|
+
/** Set model appearance override for line code in display style.
|
|
66
|
+
* @beta
|
|
67
|
+
*/
|
|
68
|
+
class SetModelLineCodeTool extends core_frontend_1.Tool {
|
|
69
|
+
static get minArgs() { return 1; }
|
|
70
|
+
static get maxArgs() { return 2; }
|
|
71
|
+
async run(lineCode, name) {
|
|
72
|
+
if (lineCode < 0 || lineCode >= SetModelLineCodeTool.linePixels.length)
|
|
73
|
+
return false;
|
|
74
|
+
const changed = changeModelAppearanceOverrides(core_frontend_1.IModelApp.viewManager.selectedView, { linePixels: SetModelLineCodeTool.linePixels[lineCode] }, name);
|
|
75
|
+
if (changed)
|
|
76
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, `${modelChangedString(name)} set to line code: ${lineCode}`));
|
|
77
|
+
return changed;
|
|
78
|
+
}
|
|
79
|
+
async parseAndRun(...args) {
|
|
80
|
+
return this.run(parseFloat(args[0]), args[1]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.SetModelLineCodeTool = SetModelLineCodeTool;
|
|
84
|
+
SetModelLineCodeTool.toolId = "SetModelLineCodeTool";
|
|
85
|
+
SetModelLineCodeTool.linePixels = [core_common_1.LinePixels.Code0, core_common_1.LinePixels.Code1, core_common_1.LinePixels.Code2, core_common_1.LinePixels.Code3, core_common_1.LinePixels.Code4, core_common_1.LinePixels.Code5, core_common_1.LinePixels.Code6, core_common_1.LinePixels.Code7];
|
|
86
|
+
/** Set model appearance override for nonLocatable in display style.
|
|
87
|
+
* @beta
|
|
88
|
+
*/
|
|
89
|
+
class SetModelLocateTool extends core_frontend_1.Tool {
|
|
90
|
+
static get minArgs() { return 1; }
|
|
91
|
+
static get maxArgs() { return 2; }
|
|
92
|
+
async run(locate, name) {
|
|
93
|
+
const nonLocatable = locate ? undefined : true;
|
|
94
|
+
const changed = changeModelAppearanceOverrides(core_frontend_1.IModelApp.viewManager.selectedView, { nonLocatable }, name);
|
|
95
|
+
if (changed)
|
|
96
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, `${modelChangedString(name)} set to locate: ${locate}`));
|
|
97
|
+
return changed;
|
|
98
|
+
}
|
|
99
|
+
async parseAndRun(...args) {
|
|
100
|
+
const locate = (0, parseBoolean_1.parseBoolean)(args[0]);
|
|
101
|
+
return locate === undefined ? false : this.run(locate, args[1]);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.SetModelLocateTool = SetModelLocateTool;
|
|
105
|
+
SetModelLocateTool.toolId = "SetModelLocateTool";
|
|
106
|
+
/** Set model appearance override for emphasized in display style.
|
|
107
|
+
* @beta
|
|
108
|
+
*/
|
|
109
|
+
class SetModelEmphasizedTool extends core_frontend_1.Tool {
|
|
110
|
+
static get minArgs() { return 1; }
|
|
111
|
+
static get maxArgs() { return 2; }
|
|
112
|
+
async run(emphasized, name) {
|
|
113
|
+
const changed = changeModelAppearanceOverrides(core_frontend_1.IModelApp.viewManager.selectedView, { emphasized }, name);
|
|
114
|
+
if (changed)
|
|
115
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, `Mode: ${name} set to emphasized: ${emphasized}`));
|
|
116
|
+
return changed;
|
|
117
|
+
}
|
|
118
|
+
async parseAndRun(...args) {
|
|
119
|
+
const emphasized = (0, parseBoolean_1.parseBoolean)(args[0]);
|
|
120
|
+
return emphasized === undefined ? false : this.run(emphasized ? true : undefined, args[1]);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.SetModelEmphasizedTool = SetModelEmphasizedTool;
|
|
124
|
+
SetModelEmphasizedTool.toolId = "SetModelEmphasizedTool";
|
|
125
|
+
/** Set model appearance override for ignoreMaterials in display style.
|
|
126
|
+
* @beta
|
|
127
|
+
*/
|
|
128
|
+
class SetModelIgnoresMaterialsTool extends core_frontend_1.Tool {
|
|
129
|
+
static get minArgs() { return 1; }
|
|
130
|
+
static get maxArgs() { return 2; }
|
|
131
|
+
async run(ignoresMaterial, name) {
|
|
132
|
+
const changed = changeModelAppearanceOverrides(core_frontend_1.IModelApp.viewManager.selectedView, { ignoresMaterial }, name);
|
|
133
|
+
if (changed)
|
|
134
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, `Mode: ${name} set to ignore Materials: ${ignoresMaterial}`));
|
|
135
|
+
return changed;
|
|
136
|
+
}
|
|
137
|
+
async parseAndRun(...args) {
|
|
138
|
+
const ignoresMaterial = (0, parseBoolean_1.parseBoolean)(args[0]);
|
|
139
|
+
return ignoresMaterial === undefined ? false : this.run(ignoresMaterial ? true : undefined, args[1]);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.SetModelIgnoresMaterialsTool = SetModelIgnoresMaterialsTool;
|
|
143
|
+
SetModelIgnoresMaterialsTool.toolId = "SetModelIgnoresMaterialsTool";
|
|
144
|
+
/** Set model appearance override for color in display style.
|
|
145
|
+
* @beta
|
|
146
|
+
*/
|
|
147
|
+
class SetModelColorTool extends core_frontend_1.Tool {
|
|
148
|
+
static get minArgs() { return 3; }
|
|
149
|
+
static get maxArgs() { return 4; }
|
|
150
|
+
async run(rgb, name) {
|
|
151
|
+
const changed = changeModelAppearanceOverrides(core_frontend_1.IModelApp.viewManager.selectedView, { rgb }, name);
|
|
152
|
+
if (changed)
|
|
153
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, `${modelChangedString(name)} set to RGB color: (${rgb.r}, ${rgb.g}, ${rgb.b})`));
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
async parseAndRun(...args) {
|
|
157
|
+
return this.run({ r: parseFloat(args[0]), g: parseFloat(args[1]), b: parseFloat(args[2]) }, args[3]);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.SetModelColorTool = SetModelColorTool;
|
|
161
|
+
SetModelColorTool.toolId = "SetModelColorTool";
|
|
162
|
+
/** clear model appearance overrides in display style.
|
|
163
|
+
* @beta
|
|
164
|
+
*/
|
|
165
|
+
class ClearModelAppearanceOverrides extends core_frontend_1.Tool {
|
|
166
|
+
static get minArgs() { return 0; }
|
|
167
|
+
static get maxArgs() { return 1; }
|
|
168
|
+
async run(name) {
|
|
169
|
+
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
170
|
+
if (vp !== undefined && vp.view instanceof core_frontend_1.SpatialViewState) {
|
|
171
|
+
vp.view.forEachModel((model) => {
|
|
172
|
+
if (name === undefined || model.name === name)
|
|
173
|
+
vp.dropModelAppearanceOverride(model.id);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
async parseAndRun(...args) {
|
|
179
|
+
return this.run(args[0]);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.ClearModelAppearanceOverrides = ClearModelAppearanceOverrides;
|
|
183
|
+
ClearModelAppearanceOverrides.toolId = "ClearModelAppearanceOverrides";
|
|
184
|
+
//# sourceMappingURL=ModelAppearanceTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelAppearanceTools.js","sourceRoot":"","sources":["../../src/tools/ModelAppearanceTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { FeatureAppearance, FeatureAppearanceProps, LinePixels, RgbColorProps } from \"@itwin/core-common\";\r\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, SpatialViewState, Tool, Viewport } from \"@itwin/core-frontend\";\r\nimport { parseBoolean } from \"./parseBoolean\";\r\n\r\nfunction changeModelAppearanceOverrides(vp: Viewport | undefined, overrides: FeatureAppearanceProps, name: string): boolean {\r\n let changed = false;\r\n if (vp !== undefined && vp.view instanceof SpatialViewState)\r\n vp.view.forEachModel((model) => {\r\n if (name === undefined || model.name === name) {\r\n changed = true;\r\n const existingOverrides = vp.displayStyle.settings.getModelAppearanceOverride(model.id);\r\n vp.overrideModelAppearance(model.id, existingOverrides ? existingOverrides.clone(overrides) : FeatureAppearance.fromJSON(overrides));\r\n }\r\n });\r\n\r\n return changed;\r\n}\r\n\r\nfunction modelChangedString(name: string) {\r\n return name === undefined ? `All Models` : `Model: ${name}`;\r\n}\r\n\r\n/** Set model appearance override for transparency in display style.\r\n * @beta\r\n */\r\nexport class SetModelTransparencyTool extends Tool {\r\n public static override toolId = \"SetModelTransparencyTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(transparency: number, name: string): Promise<boolean> {\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { transparency }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to transparency: ${transparency}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(parseFloat(args[0]), args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for line weight in display style.\r\n * @beta\r\n */\r\nexport class SetModelLineWeightTool extends Tool {\r\n public static override toolId = \"SetModelLineWeightTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(weight: number, name: string): Promise<boolean> {\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { weight }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to line weight: ${weight}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(parseFloat(args[0]), args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for line code in display style.\r\n * @beta\r\n */\r\nexport class SetModelLineCodeTool extends Tool {\r\n public static override toolId = \"SetModelLineCodeTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n public static linePixels = [LinePixels.Code0, LinePixels.Code1, LinePixels.Code2, LinePixels.Code3, LinePixels.Code4, LinePixels.Code5, LinePixels.Code6, LinePixels.Code7];\r\n\r\n public override async run(lineCode: number, name: string): Promise<boolean> {\r\n if (lineCode < 0 || lineCode >= SetModelLineCodeTool.linePixels.length)\r\n return false;\r\n\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { linePixels: SetModelLineCodeTool.linePixels[lineCode] }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to line code: ${lineCode}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(parseFloat(args[0]), args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for nonLocatable in display style.\r\n * @beta\r\n */\r\nexport class SetModelLocateTool extends Tool {\r\n public static override toolId = \"SetModelLocateTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(locate: boolean, name: string): Promise<boolean> {\r\n const nonLocatable = locate ? undefined : true;\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { nonLocatable }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to locate: ${locate}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const locate = parseBoolean(args[0]);\r\n return locate === undefined ? false : this.run(locate, args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for emphasized in display style.\r\n * @beta\r\n */\r\nexport class SetModelEmphasizedTool extends Tool {\r\n public static override toolId = \"SetModelEmphasizedTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(emphasized: true | undefined, name: string): Promise<boolean> {\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { emphasized }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Mode: ${name} set to emphasized: ${emphasized}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const emphasized = parseBoolean(args[0]);\r\n return emphasized === undefined ? false : this.run(emphasized ? true : undefined, args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for ignoreMaterials in display style.\r\n * @beta\r\n */\r\nexport class SetModelIgnoresMaterialsTool extends Tool {\r\n public static override toolId = \"SetModelIgnoresMaterialsTool\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n public override async run(ignoresMaterial: true | undefined, name: string): Promise<boolean> {\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { ignoresMaterial }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `Mode: ${name} set to ignore Materials: ${ignoresMaterial}`));\r\n\r\n return changed;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n const ignoresMaterial = parseBoolean(args[0]);\r\n return ignoresMaterial === undefined ? false : this.run(ignoresMaterial ? true : undefined, args[1]);\r\n }\r\n}\r\n\r\n/** Set model appearance override for color in display style.\r\n * @beta\r\n */\r\nexport class SetModelColorTool extends Tool {\r\n public static override toolId = \"SetModelColorTool\";\r\n public static override get minArgs() { return 3; }\r\n public static override get maxArgs() { return 4; }\r\n\r\n public override async run(rgb: RgbColorProps, name: string): Promise<boolean> {\r\n const changed = changeModelAppearanceOverrides(IModelApp.viewManager.selectedView, { rgb }, name);\r\n\r\n if (changed)\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, `${modelChangedString(name)} set to RGB color: (${rgb.r}, ${rgb.g}, ${rgb.b})`));\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run({ r: parseFloat(args[0]), g: parseFloat(args[1]), b: parseFloat(args[2]) }, args[3]);\r\n }\r\n}\r\n\r\n/** clear model appearance overrides in display style.\r\n * @beta\r\n */\r\nexport class ClearModelAppearanceOverrides extends Tool {\r\n public static override toolId = \"ClearModelAppearanceOverrides\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n public override async run(name?: string): Promise<boolean> {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp !== undefined && vp.view instanceof SpatialViewState) {\r\n vp.view.forEachModel((model) => {\r\n if (name === undefined || model.name === name)\r\n vp.dropModelAppearanceOverride(model.id);\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public override async parseAndRun(...args: string[]): Promise<boolean> {\r\n return this.run(args[0]);\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Viewport } from "@itwin/core-frontend";
|
|
2
|
+
import { DisplayStyleTool } from "./DisplayStyleTools";
|
|
3
|
+
/** Dumps a JSON representation of the plan projection settings for the current viewport.
|
|
4
|
+
* @beta
|
|
5
|
+
*/
|
|
6
|
+
export declare class DumpPlanProjectionSettingsTool extends DisplayStyleTool {
|
|
7
|
+
static toolId: string;
|
|
8
|
+
static get minArgs(): number;
|
|
9
|
+
static get maxArgs(): number;
|
|
10
|
+
private _copyToClipboard;
|
|
11
|
+
protected get require3d(): boolean;
|
|
12
|
+
protected parse(args: string[]): boolean;
|
|
13
|
+
protected execute(vp: Viewport): boolean;
|
|
14
|
+
}
|
|
15
|
+
/** Changes subcategory display priority.
|
|
16
|
+
* @beta
|
|
17
|
+
*/
|
|
18
|
+
export declare abstract class OverrideSubCategoryPriorityTool extends DisplayStyleTool {
|
|
19
|
+
static toolId: string;
|
|
20
|
+
static get minArgs(): number;
|
|
21
|
+
static get maxArgs(): number;
|
|
22
|
+
private readonly _subcatIds;
|
|
23
|
+
private _priority?;
|
|
24
|
+
protected execute(vp: Viewport): boolean;
|
|
25
|
+
protected parse(args: string[]): boolean;
|
|
26
|
+
}
|
|
27
|
+
/** Changes plan projection settings for one or more models.
|
|
28
|
+
* @beta
|
|
29
|
+
*/
|
|
30
|
+
export declare abstract class ChangePlanProjectionSettingsTool extends DisplayStyleTool {
|
|
31
|
+
static toolId: string;
|
|
32
|
+
static get minArgs(): number;
|
|
33
|
+
static get maxArgs(): number;
|
|
34
|
+
private readonly _modelIds;
|
|
35
|
+
private _settings?;
|
|
36
|
+
protected get require3d(): boolean;
|
|
37
|
+
protected execute(vp: Viewport): boolean;
|
|
38
|
+
protected parse(inputArgs: string[]): boolean;
|
|
39
|
+
private parseModels;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=PlanProjectionTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanProjectionTools.d.ts","sourceRoot":"","sources":["../../src/tools/PlanProjectionTools.ts"],"names":[],"mappings":"AAUA,OAAO,EAA2F,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEzI,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,gBAAgB;IAClE,OAAuB,MAAM,SAAuB;IACpD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAElD,OAAO,CAAC,gBAAgB,CAAS;IAEjC,cAAuB,SAAS,YAAmB;IAEnD,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;IAO9B,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;CAoBzC;AAED;;GAEG;AACH,8BAAsB,+BAAgC,SAAQ,gBAAgB;IAC5E,OAAuB,MAAM,SAAiC;IAC9D,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAElD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,SAAS,CAAC,CAAS;IAE3B,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAiBxC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;CAU/B;AAED;;GAEG;AACH,8BAAsB,gCAAiC,SAAQ,gBAAgB;IAC7E,OAAuB,MAAM,SAAyB;IACtD,WAA2B,OAAO,WAAgB;IAClD,WAA2B,OAAO,WAAgB;IAElD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAC,CAAyB;IAE3C,cAAuB,SAAS,YAAmB;IAEnD,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO;IAQxC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE;IAgBnC,OAAO,CAAC,WAAW;CAmCpB"}
|
|
@@ -0,0 +1,150 @@
|
|
|
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.ChangePlanProjectionSettingsTool = exports.OverrideSubCategoryPriorityTool = exports.DumpPlanProjectionSettingsTool = 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 DisplayStyleTools_1 = require("./DisplayStyleTools");
|
|
15
|
+
const parseArgs_1 = require("./parseArgs");
|
|
16
|
+
/** Dumps a JSON representation of the plan projection settings for the current viewport.
|
|
17
|
+
* @beta
|
|
18
|
+
*/
|
|
19
|
+
class DumpPlanProjectionSettingsTool extends DisplayStyleTools_1.DisplayStyleTool {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this._copyToClipboard = false;
|
|
23
|
+
}
|
|
24
|
+
static get minArgs() { return 0; }
|
|
25
|
+
static get maxArgs() { return 1; }
|
|
26
|
+
get require3d() { return true; }
|
|
27
|
+
parse(args) {
|
|
28
|
+
if (1 === args.length)
|
|
29
|
+
this._copyToClipboard = "c" === args[0].toLowerCase();
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
execute(vp) {
|
|
33
|
+
const settings = vp.displayStyle.settings.planProjectionSettings;
|
|
34
|
+
if (undefined === settings) {
|
|
35
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, "No plan projection settings defined"));
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const props = [];
|
|
39
|
+
for (const [modelId, value] of settings)
|
|
40
|
+
props.push({ modelId, settings: value.toJSON() });
|
|
41
|
+
const json = JSON.stringify(props);
|
|
42
|
+
if (this._copyToClipboard)
|
|
43
|
+
(0, ClipboardUtilities_1.copyStringToClipboard)(json);
|
|
44
|
+
const messageDetails = new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Info, "Dumped plan projection settings", json);
|
|
45
|
+
core_frontend_1.IModelApp.notifications.outputMessage(messageDetails);
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.DumpPlanProjectionSettingsTool = DumpPlanProjectionSettingsTool;
|
|
50
|
+
DumpPlanProjectionSettingsTool.toolId = "DumpLayerSettings";
|
|
51
|
+
/** Changes subcategory display priority.
|
|
52
|
+
* @beta
|
|
53
|
+
*/
|
|
54
|
+
class OverrideSubCategoryPriorityTool extends DisplayStyleTools_1.DisplayStyleTool {
|
|
55
|
+
constructor() {
|
|
56
|
+
super(...arguments);
|
|
57
|
+
this._subcatIds = new Set();
|
|
58
|
+
}
|
|
59
|
+
static get minArgs() { return 1; }
|
|
60
|
+
static get maxArgs() { return 2; }
|
|
61
|
+
execute(vp) {
|
|
62
|
+
const style = vp.displayStyle;
|
|
63
|
+
for (const id of this._subcatIds) {
|
|
64
|
+
const ovr = style.getSubCategoryOverride(id);
|
|
65
|
+
if (undefined === ovr) {
|
|
66
|
+
if (undefined !== this._priority)
|
|
67
|
+
style.overrideSubCategory(id, core_common_1.SubCategoryOverride.fromJSON({ priority: this._priority }));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const props = ovr.toJSON();
|
|
71
|
+
props.priority = this._priority;
|
|
72
|
+
style.overrideSubCategory(id, core_common_1.SubCategoryOverride.fromJSON(props));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
parse(args) {
|
|
78
|
+
for (const id of args[0].split(","))
|
|
79
|
+
this._subcatIds.add(id);
|
|
80
|
+
const priority = parseInt(args[1], 10);
|
|
81
|
+
if (!Number.isNaN(priority))
|
|
82
|
+
this._priority = priority;
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.OverrideSubCategoryPriorityTool = OverrideSubCategoryPriorityTool;
|
|
87
|
+
OverrideSubCategoryPriorityTool.toolId = "OverrideSubCategoryPriority";
|
|
88
|
+
/** Changes plan projection settings for one or more models.
|
|
89
|
+
* @beta
|
|
90
|
+
*/
|
|
91
|
+
class ChangePlanProjectionSettingsTool extends DisplayStyleTools_1.DisplayStyleTool {
|
|
92
|
+
constructor() {
|
|
93
|
+
super(...arguments);
|
|
94
|
+
this._modelIds = new Set();
|
|
95
|
+
}
|
|
96
|
+
static get minArgs() { return 1; }
|
|
97
|
+
static get maxArgs() { return 5; }
|
|
98
|
+
get require3d() { return true; }
|
|
99
|
+
execute(vp) {
|
|
100
|
+
const settings = vp.displayStyle.settings;
|
|
101
|
+
for (const modelId of this._modelIds)
|
|
102
|
+
settings.setPlanProjectionSettings(modelId, this._settings);
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
parse(inputArgs) {
|
|
106
|
+
if (!this.parseModels(inputArgs[0]))
|
|
107
|
+
return false;
|
|
108
|
+
const args = (0, parseArgs_1.parseArgs)(inputArgs.slice(1));
|
|
109
|
+
const props = {};
|
|
110
|
+
props.transparency = args.getFloat("t");
|
|
111
|
+
props.overlay = args.getBoolean("o");
|
|
112
|
+
props.enforceDisplayPriority = args.getBoolean("p");
|
|
113
|
+
props.elevation = args.getFloat("e");
|
|
114
|
+
this._settings = core_common_1.PlanProjectionSettings.fromJSON(props);
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
parseModels(models) {
|
|
118
|
+
const vp = core_frontend_1.IModelApp.viewManager.selectedView; // already validated by super.parseAndRun
|
|
119
|
+
models = models.toLowerCase();
|
|
120
|
+
const isPlanProjection = (modelId) => {
|
|
121
|
+
const model = vp.iModel.models.getLoaded(modelId);
|
|
122
|
+
return undefined !== model && isPlanProjectionModel(model);
|
|
123
|
+
};
|
|
124
|
+
const isPlanProjectionModel = (model) => {
|
|
125
|
+
const model3d = model.asGeometricModel3d;
|
|
126
|
+
return undefined !== model3d && model3d.isPlanProjection;
|
|
127
|
+
};
|
|
128
|
+
switch (models[0]) {
|
|
129
|
+
case "a": // all models in selector
|
|
130
|
+
vp.view.forEachModel((model) => {
|
|
131
|
+
if (isPlanProjectionModel(model))
|
|
132
|
+
this._modelIds.add(model.id);
|
|
133
|
+
});
|
|
134
|
+
break;
|
|
135
|
+
case "0": // comma-separated list of Ids
|
|
136
|
+
for (const modelId of models.split(","))
|
|
137
|
+
if (isPlanProjection(modelId))
|
|
138
|
+
this._modelIds.add(modelId);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
if (this._modelIds.size === 0) {
|
|
142
|
+
core_frontend_1.IModelApp.notifications.outputMessage(new core_frontend_1.NotifyMessageDetails(core_frontend_1.OutputMessagePriority.Error, "No plan projection models"));
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.ChangePlanProjectionSettingsTool = ChangePlanProjectionSettingsTool;
|
|
149
|
+
ChangePlanProjectionSettingsTool.toolId = "ChangeLayerSettings";
|
|
150
|
+
//# sourceMappingURL=PlanProjectionTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanProjectionTools.js","sourceRoot":"","sources":["../../src/tools/PlanProjectionTools.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,oDAA8G;AAC9G,wDAAyI;AACzI,8DAA8D;AAC9D,2DAAuD;AACvD,2CAAwC;AAExC;;GAEG;AACH,MAAa,8BAA+B,SAAQ,oCAAgB;IAApE;;QAKU,qBAAgB,GAAG,KAAK,CAAC;IA+BnC,CAAC;IAlCQ,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAIlD,IAAuB,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAEzC,KAAK,CAAC,IAAc;QAC5B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;YACnB,IAAI,CAAC,gBAAgB,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAExD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,OAAO,CAAC,EAAY;QAC5B,MAAM,QAAQ,GAAI,EAAE,CAAC,YAAoC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAC1F,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,qCAAqC,CAAC,CAAC,CAAC;YACnI,OAAO,KAAK,CAAC;SACd;QAED,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,QAAQ;YACrC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,gBAAgB;YACvB,IAAA,0CAAqB,EAAC,IAAI,CAAC,CAAC;QAE9B,MAAM,cAAc,GAAG,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,IAAI,EAAE,iCAAiC,EAAE,IAAI,CAAC,CAAC;QACrH,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAEtD,OAAO,KAAK,CAAC;IACf,CAAC;;AAnCH,wEAoCC;AAnCwB,qCAAM,GAAG,mBAAmB,CAAC;AAqCtD;;GAEG;AACH,MAAsB,+BAAgC,SAAQ,oCAAgB;IAA9E;;QAKmB,eAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IA8BlD,CAAC;IAjCQ,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAKxC,OAAO,CAAC,EAAY;QAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC;QAC9B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,SAAS,KAAK,GAAG,EAAE;gBACrB,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS;oBAC9B,KAAK,CAAC,mBAAmB,CAAC,EAAE,EAAE,iCAAmB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;aAC7F;iBAAM;gBACL,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC3B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAChC,KAAK,CAAC,mBAAmB,CAAC,EAAE,EAAE,iCAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aACpE;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,IAAc;QAC5B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE5B,OAAO,IAAI,CAAC;IACd,CAAC;;AAlCH,0EAmCC;AAlCwB,sCAAM,GAAG,6BAA6B,CAAC;AAoChE;;GAEG;AACH,MAAsB,gCAAiC,SAAQ,oCAAgB;IAA/E;;QAKmB,cAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAgEjD,CAAC;IAnEQ,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAKlD,IAAuB,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAEzC,OAAO,CAAC,EAAY;QAC5B,MAAM,QAAQ,GAAI,EAAE,CAAC,YAAoC,CAAC,QAAQ,CAAC;QACnE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS;YAClC,QAAQ,CAAC,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9D,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,SAAmB;QACjC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC;QAEf,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAgC,EAAE,CAAC;QAE9C,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACpD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,GAAG,oCAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,WAAW,CAAC,MAAc;QAChC,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAa,CAAC,CAAC,yCAAyC;QACzF,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAE9B,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,SAAS,KAAK,KAAK,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC;QACF,MAAM,qBAAqB,GAAG,CAAC,KAAiB,EAAE,EAAE;YAClD,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC;YACzC,OAAO,SAAS,KAAK,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;QAC3D,CAAC,CAAC;QAEF,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE;YACjB,KAAK,GAAG,EAAE,yBAAyB;gBACjC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC7B,IAAI,qBAAqB,CAAC,KAAK,CAAC;wBAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,GAAG,EAAE,8BAA8B;gBACtC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;oBACrC,IAAI,gBAAgB,CAAC,OAAO,CAAC;wBAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAEhC,MAAM;SACT;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE;YAC7B,yBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oCAAoB,CAAC,qCAAqB,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC,CAAC;YAC1H,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;AApEH,4EAqEC;AApEwB,uCAAM,GAAG,qBAAqB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { PlanProjectionSettings, PlanProjectionSettingsProps, SubCategoryOverride } from \"@itwin/core-common\";\r\nimport { DisplayStyle3dState, IModelApp, ModelState, NotifyMessageDetails, OutputMessagePriority, Viewport } from \"@itwin/core-frontend\";\r\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\r\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\r\nimport { parseArgs } from \"./parseArgs\";\r\n\r\n/** Dumps a JSON representation of the plan projection settings for the current viewport.\r\n * @beta\r\n */\r\nexport class DumpPlanProjectionSettingsTool extends DisplayStyleTool {\r\n public static override toolId = \"DumpLayerSettings\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 1; }\r\n\r\n private _copyToClipboard = false;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected parse(args: string[]) {\r\n if (1 === args.length)\r\n this._copyToClipboard = \"c\" === args[0].toLowerCase();\r\n\r\n return true;\r\n }\r\n\r\n protected execute(vp: Viewport): boolean {\r\n const settings = (vp.displayStyle as DisplayStyle3dState).settings.planProjectionSettings;\r\n if (undefined === settings) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"No plan projection settings defined\"));\r\n return false;\r\n }\r\n\r\n const props = [];\r\n for (const [modelId, value] of settings)\r\n props.push({ modelId, settings: value.toJSON() });\r\n\r\n const json = JSON.stringify(props);\r\n if (this._copyToClipboard)\r\n copyStringToClipboard(json);\r\n\r\n const messageDetails = new NotifyMessageDetails(OutputMessagePriority.Info, \"Dumped plan projection settings\", json);\r\n IModelApp.notifications.outputMessage(messageDetails);\r\n\r\n return false;\r\n }\r\n}\r\n\r\n/** Changes subcategory display priority.\r\n * @beta\r\n */\r\nexport abstract class OverrideSubCategoryPriorityTool extends DisplayStyleTool {\r\n public static override toolId = \"OverrideSubCategoryPriority\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 2; }\r\n\r\n private readonly _subcatIds = new Set<string>();\r\n private _priority?: number;\r\n\r\n protected execute(vp: Viewport): boolean {\r\n const style = vp.displayStyle;\r\n for (const id of this._subcatIds) {\r\n const ovr = style.getSubCategoryOverride(id);\r\n if (undefined === ovr) {\r\n if (undefined !== this._priority)\r\n style.overrideSubCategory(id, SubCategoryOverride.fromJSON({ priority: this._priority }));\r\n } else {\r\n const props = ovr.toJSON();\r\n props.priority = this._priority;\r\n style.overrideSubCategory(id, SubCategoryOverride.fromJSON(props));\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected parse(args: string[]) {\r\n for (const id of args[0].split(\",\"))\r\n this._subcatIds.add(id);\r\n\r\n const priority = parseInt(args[1], 10);\r\n if (!Number.isNaN(priority))\r\n this._priority = priority;\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/** Changes plan projection settings for one or more models.\r\n * @beta\r\n */\r\nexport abstract class ChangePlanProjectionSettingsTool extends DisplayStyleTool {\r\n public static override toolId = \"ChangeLayerSettings\";\r\n public static override get minArgs() { return 1; }\r\n public static override get maxArgs() { return 5; }\r\n\r\n private readonly _modelIds = new Set<string>();\r\n private _settings?: PlanProjectionSettings;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected execute(vp: Viewport): boolean {\r\n const settings = (vp.displayStyle as DisplayStyle3dState).settings;\r\n for (const modelId of this._modelIds)\r\n settings.setPlanProjectionSettings(modelId, this._settings);\r\n\r\n return true;\r\n }\r\n\r\n protected parse(inputArgs: string[]) {\r\n if (!this.parseModels(inputArgs[0]))\r\n return false;\r\n\r\n const args = parseArgs(inputArgs.slice(1));\r\n const props: PlanProjectionSettingsProps = {};\r\n\r\n props.transparency = args.getFloat(\"t\");\r\n props.overlay = args.getBoolean(\"o\");\r\n props.enforceDisplayPriority = args.getBoolean(\"p\");\r\n props.elevation = args.getFloat(\"e\");\r\n\r\n this._settings = PlanProjectionSettings.fromJSON(props);\r\n return true;\r\n }\r\n\r\n private parseModels(models: string) {\r\n const vp = IModelApp.viewManager.selectedView!; // already validated by super.parseAndRun\r\n models = models.toLowerCase();\r\n\r\n const isPlanProjection = (modelId: string) => {\r\n const model = vp.iModel.models.getLoaded(modelId);\r\n return undefined !== model && isPlanProjectionModel(model);\r\n };\r\n const isPlanProjectionModel = (model: ModelState) => {\r\n const model3d = model.asGeometricModel3d;\r\n return undefined !== model3d && model3d.isPlanProjection;\r\n };\r\n\r\n switch (models[0]) {\r\n case \"a\": // all models in selector\r\n vp.view.forEachModel((model) => {\r\n if (isPlanProjectionModel(model))\r\n this._modelIds.add(model.id);\r\n });\r\n break;\r\n case \"0\": // comma-separated list of Ids\r\n for (const modelId of models.split(\",\"))\r\n if (isPlanProjection(modelId))\r\n this._modelIds.add(modelId);\r\n\r\n break;\r\n }\r\n\r\n if (this._modelIds.size === 0) {\r\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"No plan projection models\"));\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n"]}
|