@itwin/frontend-devtools 5.0.0-dev.9 → 5.0.0-dev.92
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 +51 -1
- package/README.md +1 -1
- package/lib/cjs/ClipboardUtilities.js.map +1 -1
- package/lib/cjs/FrontEndDevTools.js +1 -1
- package/lib/cjs/FrontEndDevTools.js.map +1 -1
- package/lib/cjs/effects/Convolution.js +23 -23
- package/lib/cjs/effects/Convolution.js.map +1 -1
- package/lib/cjs/effects/EffectTools.js +2 -2
- package/lib/cjs/effects/EffectTools.js.map +1 -1
- package/lib/cjs/effects/Explosion.js +37 -25
- package/lib/cjs/effects/Explosion.js.map +1 -1
- package/lib/cjs/effects/FlipImage.js +22 -22
- package/lib/cjs/effects/FlipImage.js.map +1 -1
- package/lib/cjs/effects/LensDistortion.js +25 -25
- package/lib/cjs/effects/LensDistortion.js.map +1 -1
- package/lib/cjs/effects/Random.js.map +1 -1
- package/lib/cjs/effects/Saturation.js +30 -30
- package/lib/cjs/effects/Saturation.js.map +1 -1
- package/lib/cjs/effects/Snow.d.ts +1 -1
- package/lib/cjs/effects/Snow.d.ts.map +1 -1
- package/lib/cjs/effects/Snow.js +19 -8
- package/lib/cjs/effects/Snow.js.map +1 -1
- package/lib/cjs/effects/Vignette.js +41 -41
- package/lib/cjs/effects/Vignette.js.map +1 -1
- package/lib/cjs/frontend-devtools.js.map +1 -1
- package/lib/cjs/tools/AnimationIntervalTool.js +1 -1
- package/lib/cjs/tools/AnimationIntervalTool.js.map +1 -1
- package/lib/cjs/tools/ChangeUnitsTool.js +1 -1
- package/lib/cjs/tools/ChangeUnitsTool.js.map +1 -1
- package/lib/cjs/tools/ClipTools.js +6 -8
- package/lib/cjs/tools/ClipTools.js.map +1 -1
- package/lib/cjs/tools/DisplayStyleTools.js +21 -25
- package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
- package/lib/cjs/tools/EmphasizeElementsTool.js +7 -13
- package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
- package/lib/cjs/tools/FrustumDecoration.js +28 -9
- package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
- package/lib/cjs/tools/InspectElementTool.js +7 -6
- package/lib/cjs/tools/InspectElementTool.js.map +1 -1
- package/lib/cjs/tools/MapLayerTool.d.ts +1 -1
- package/lib/cjs/tools/MapLayerTool.d.ts.map +1 -1
- package/lib/cjs/tools/MapLayerTool.js +31 -25
- package/lib/cjs/tools/MapLayerTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTileLoadTime.js +4 -1
- package/lib/cjs/tools/MeasureTileLoadTime.js.map +1 -1
- package/lib/cjs/tools/ModelAppearanceTools.js +9 -9
- package/lib/cjs/tools/ModelAppearanceTools.js.map +1 -1
- package/lib/cjs/tools/PlanProjectionTools.js +8 -15
- package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
- package/lib/cjs/tools/PlanarMaskTools.js +21 -26
- package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
- package/lib/cjs/tools/ProjectExtents.js +6 -3
- package/lib/cjs/tools/ProjectExtents.js.map +1 -1
- package/lib/cjs/tools/RealityModelTools.js +10 -10
- package/lib/cjs/tools/RealityModelTools.js.map +1 -1
- package/lib/cjs/tools/RealityTransitionTool.js +1 -1
- package/lib/cjs/tools/RealityTransitionTool.js.map +1 -1
- package/lib/cjs/tools/RenderSystemTools.js +4 -3
- package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
- package/lib/cjs/tools/RenderTargetTools.d.ts +1 -1
- package/lib/cjs/tools/RenderTargetTools.d.ts.map +1 -1
- package/lib/cjs/tools/RenderTargetTools.js +15 -20
- package/lib/cjs/tools/RenderTargetTools.js.map +1 -1
- package/lib/cjs/tools/ReportWebGLCompatibilityTool.js +1 -1
- package/lib/cjs/tools/ReportWebGLCompatibilityTool.js.map +1 -1
- package/lib/cjs/tools/SavedViews.js +4 -7
- package/lib/cjs/tools/SavedViews.js.map +1 -1
- package/lib/cjs/tools/ScheduleScriptTools.d.ts.map +1 -1
- package/lib/cjs/tools/ScheduleScriptTools.js +11 -12
- package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
- package/lib/cjs/tools/SelectionTools.js +4 -6
- package/lib/cjs/tools/SelectionTools.js.map +1 -1
- package/lib/cjs/tools/SetGpuMemoryLimitTool.js +1 -1
- package/lib/cjs/tools/SetGpuMemoryLimitTool.js.map +1 -1
- package/lib/cjs/tools/SourceAspectIdTools.js +2 -2
- package/lib/cjs/tools/SourceAspectIdTools.js.map +1 -1
- package/lib/cjs/tools/TileRequestDecoration.js +6 -3
- package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
- package/lib/cjs/tools/TileTreeBoundsDecoration.d.ts.map +1 -1
- package/lib/cjs/tools/TileTreeBoundsDecoration.js +8 -4
- package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
- package/lib/cjs/tools/ToolTipProvider.js +2 -1
- package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
- package/lib/cjs/tools/ViewportTools.js +22 -19
- package/lib/cjs/tools/ViewportTools.js.map +1 -1
- package/lib/cjs/tools/parseArgs.js.map +1 -1
- package/lib/cjs/tools/parseBoolean.js.map +1 -1
- package/lib/cjs/tools/parseToggle.js.map +1 -1
- package/lib/cjs/ui/Button.js.map +1 -1
- package/lib/cjs/ui/CheckBox.js.map +1 -1
- package/lib/cjs/ui/ColorInput.js.map +1 -1
- package/lib/cjs/ui/ComboBox.js.map +1 -1
- package/lib/cjs/ui/DataList.js.map +1 -1
- package/lib/cjs/ui/NestedMenu.js.map +1 -1
- package/lib/cjs/ui/NumericInput.js.map +1 -1
- package/lib/cjs/ui/RadioBox.js.map +1 -1
- package/lib/cjs/ui/Slider.js.map +1 -1
- package/lib/cjs/ui/TextBox.js.map +1 -1
- package/lib/cjs/widgets/DiagnosticsPanel.d.ts +1 -1
- package/lib/cjs/widgets/DiagnosticsPanel.d.ts.map +1 -1
- package/lib/cjs/widgets/DiagnosticsPanel.js +11 -1
- package/lib/cjs/widgets/DiagnosticsPanel.js.map +1 -1
- package/lib/cjs/widgets/FpsTracker.d.ts +1 -1
- package/lib/cjs/widgets/FpsTracker.d.ts.map +1 -1
- package/lib/cjs/widgets/FpsTracker.js +5 -1
- package/lib/cjs/widgets/FpsTracker.js.map +1 -1
- package/lib/cjs/widgets/GpuProfiler.d.ts +1 -1
- package/lib/cjs/widgets/GpuProfiler.d.ts.map +1 -1
- package/lib/cjs/widgets/GpuProfiler.js +89 -82
- package/lib/cjs/widgets/GpuProfiler.js.map +1 -1
- package/lib/cjs/widgets/KeyinField.js +8 -1
- package/lib/cjs/widgets/KeyinField.js.map +1 -1
- package/lib/cjs/widgets/MemoryTracker.d.ts +1 -1
- package/lib/cjs/widgets/MemoryTracker.d.ts.map +1 -1
- package/lib/cjs/widgets/MemoryTracker.js +16 -4
- package/lib/cjs/widgets/MemoryTracker.js.map +1 -1
- package/lib/cjs/widgets/RenderCommandBreakdown.d.ts +1 -1
- package/lib/cjs/widgets/RenderCommandBreakdown.d.ts.map +1 -1
- package/lib/cjs/widgets/RenderCommandBreakdown.js +6 -2
- package/lib/cjs/widgets/RenderCommandBreakdown.js.map +1 -1
- package/lib/cjs/widgets/TileMemoryBreakdown.d.ts +1 -1
- package/lib/cjs/widgets/TileMemoryBreakdown.d.ts.map +1 -1
- package/lib/cjs/widgets/TileMemoryBreakdown.js +10 -8
- package/lib/cjs/widgets/TileMemoryBreakdown.js.map +1 -1
- package/lib/cjs/widgets/TileStatisticsTracker.d.ts +1 -1
- package/lib/cjs/widgets/TileStatisticsTracker.d.ts.map +1 -1
- package/lib/cjs/widgets/TileStatisticsTracker.js +5 -2
- package/lib/cjs/widgets/TileStatisticsTracker.js.map +1 -1
- package/lib/cjs/widgets/ToolSettingsTracker.d.ts +1 -1
- package/lib/cjs/widgets/ToolSettingsTracker.d.ts.map +1 -1
- package/lib/cjs/widgets/ToolSettingsTracker.js +2 -2
- package/lib/cjs/widgets/ToolSettingsTracker.js.map +1 -1
- package/lib/esm/ClipboardUtilities.js.map +1 -1
- package/lib/esm/FrontEndDevTools.js +1 -1
- package/lib/esm/FrontEndDevTools.js.map +1 -1
- package/lib/esm/effects/Convolution.js +23 -23
- package/lib/esm/effects/Convolution.js.map +1 -1
- package/lib/esm/effects/EffectTools.js +2 -2
- package/lib/esm/effects/EffectTools.js.map +1 -1
- package/lib/esm/effects/Explosion.js +37 -25
- package/lib/esm/effects/Explosion.js.map +1 -1
- package/lib/esm/effects/FlipImage.js +22 -22
- package/lib/esm/effects/FlipImage.js.map +1 -1
- package/lib/esm/effects/LensDistortion.js +25 -25
- package/lib/esm/effects/LensDistortion.js.map +1 -1
- package/lib/esm/effects/Random.js.map +1 -1
- package/lib/esm/effects/Saturation.js +30 -30
- package/lib/esm/effects/Saturation.js.map +1 -1
- package/lib/esm/effects/Snow.d.ts +1 -1
- package/lib/esm/effects/Snow.d.ts.map +1 -1
- package/lib/esm/effects/Snow.js +19 -8
- package/lib/esm/effects/Snow.js.map +1 -1
- package/lib/esm/effects/Vignette.js +41 -41
- package/lib/esm/effects/Vignette.js.map +1 -1
- package/lib/esm/frontend-devtools.js.map +1 -1
- package/lib/esm/tools/AnimationIntervalTool.js +1 -1
- package/lib/esm/tools/AnimationIntervalTool.js.map +1 -1
- package/lib/esm/tools/ChangeUnitsTool.js +1 -1
- package/lib/esm/tools/ChangeUnitsTool.js.map +1 -1
- package/lib/esm/tools/ClipTools.js +6 -8
- package/lib/esm/tools/ClipTools.js.map +1 -1
- package/lib/esm/tools/DisplayStyleTools.js +21 -25
- package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
- package/lib/esm/tools/EmphasizeElementsTool.js +7 -13
- package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
- package/lib/esm/tools/FrustumDecoration.js +28 -9
- package/lib/esm/tools/FrustumDecoration.js.map +1 -1
- package/lib/esm/tools/InspectElementTool.js +7 -6
- package/lib/esm/tools/InspectElementTool.js.map +1 -1
- package/lib/esm/tools/MapLayerTool.d.ts +1 -1
- package/lib/esm/tools/MapLayerTool.d.ts.map +1 -1
- package/lib/esm/tools/MapLayerTool.js +32 -26
- package/lib/esm/tools/MapLayerTool.js.map +1 -1
- package/lib/esm/tools/MeasureTileLoadTime.js +4 -1
- package/lib/esm/tools/MeasureTileLoadTime.js.map +1 -1
- package/lib/esm/tools/ModelAppearanceTools.js +9 -9
- package/lib/esm/tools/ModelAppearanceTools.js.map +1 -1
- package/lib/esm/tools/PlanProjectionTools.js +8 -15
- package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
- package/lib/esm/tools/PlanarMaskTools.js +21 -26
- package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
- package/lib/esm/tools/ProjectExtents.js +6 -3
- package/lib/esm/tools/ProjectExtents.js.map +1 -1
- package/lib/esm/tools/RealityModelTools.js +10 -10
- package/lib/esm/tools/RealityModelTools.js.map +1 -1
- package/lib/esm/tools/RealityTransitionTool.js +1 -1
- package/lib/esm/tools/RealityTransitionTool.js.map +1 -1
- package/lib/esm/tools/RenderSystemTools.js +4 -3
- package/lib/esm/tools/RenderSystemTools.js.map +1 -1
- package/lib/esm/tools/RenderTargetTools.d.ts +1 -1
- package/lib/esm/tools/RenderTargetTools.d.ts.map +1 -1
- package/lib/esm/tools/RenderTargetTools.js +15 -20
- package/lib/esm/tools/RenderTargetTools.js.map +1 -1
- package/lib/esm/tools/ReportWebGLCompatibilityTool.js +1 -1
- package/lib/esm/tools/ReportWebGLCompatibilityTool.js.map +1 -1
- package/lib/esm/tools/SavedViews.js +4 -7
- package/lib/esm/tools/SavedViews.js.map +1 -1
- package/lib/esm/tools/ScheduleScriptTools.d.ts.map +1 -1
- package/lib/esm/tools/ScheduleScriptTools.js +11 -12
- package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
- package/lib/esm/tools/SelectionTools.js +4 -6
- package/lib/esm/tools/SelectionTools.js.map +1 -1
- package/lib/esm/tools/SetGpuMemoryLimitTool.js +1 -1
- package/lib/esm/tools/SetGpuMemoryLimitTool.js.map +1 -1
- package/lib/esm/tools/SourceAspectIdTools.js +2 -2
- package/lib/esm/tools/SourceAspectIdTools.js.map +1 -1
- package/lib/esm/tools/TileRequestDecoration.js +6 -3
- package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
- package/lib/esm/tools/TileTreeBoundsDecoration.d.ts.map +1 -1
- package/lib/esm/tools/TileTreeBoundsDecoration.js +8 -4
- package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
- package/lib/esm/tools/ToolTipProvider.js +2 -1
- package/lib/esm/tools/ToolTipProvider.js.map +1 -1
- package/lib/esm/tools/ViewportTools.js +22 -19
- package/lib/esm/tools/ViewportTools.js.map +1 -1
- package/lib/esm/tools/parseArgs.js.map +1 -1
- package/lib/esm/tools/parseBoolean.js.map +1 -1
- package/lib/esm/tools/parseToggle.js.map +1 -1
- package/lib/esm/ui/Button.js.map +1 -1
- package/lib/esm/ui/CheckBox.js.map +1 -1
- package/lib/esm/ui/ColorInput.js.map +1 -1
- package/lib/esm/ui/ComboBox.js.map +1 -1
- package/lib/esm/ui/DataList.js.map +1 -1
- package/lib/esm/ui/NestedMenu.js.map +1 -1
- package/lib/esm/ui/NumericInput.js.map +1 -1
- package/lib/esm/ui/RadioBox.js.map +1 -1
- package/lib/esm/ui/Slider.js.map +1 -1
- package/lib/esm/ui/TextBox.js.map +1 -1
- package/lib/esm/widgets/DiagnosticsPanel.d.ts +1 -1
- package/lib/esm/widgets/DiagnosticsPanel.d.ts.map +1 -1
- package/lib/esm/widgets/DiagnosticsPanel.js +11 -1
- package/lib/esm/widgets/DiagnosticsPanel.js.map +1 -1
- package/lib/esm/widgets/FpsTracker.d.ts +1 -1
- package/lib/esm/widgets/FpsTracker.d.ts.map +1 -1
- package/lib/esm/widgets/FpsTracker.js +5 -1
- package/lib/esm/widgets/FpsTracker.js.map +1 -1
- package/lib/esm/widgets/GpuProfiler.d.ts +1 -1
- package/lib/esm/widgets/GpuProfiler.d.ts.map +1 -1
- package/lib/esm/widgets/GpuProfiler.js +89 -82
- package/lib/esm/widgets/GpuProfiler.js.map +1 -1
- package/lib/esm/widgets/KeyinField.js +8 -1
- package/lib/esm/widgets/KeyinField.js.map +1 -1
- package/lib/esm/widgets/MemoryTracker.d.ts +1 -1
- package/lib/esm/widgets/MemoryTracker.d.ts.map +1 -1
- package/lib/esm/widgets/MemoryTracker.js +16 -4
- package/lib/esm/widgets/MemoryTracker.js.map +1 -1
- package/lib/esm/widgets/RenderCommandBreakdown.d.ts +1 -1
- package/lib/esm/widgets/RenderCommandBreakdown.d.ts.map +1 -1
- package/lib/esm/widgets/RenderCommandBreakdown.js +6 -2
- package/lib/esm/widgets/RenderCommandBreakdown.js.map +1 -1
- package/lib/esm/widgets/TileMemoryBreakdown.d.ts +1 -1
- package/lib/esm/widgets/TileMemoryBreakdown.d.ts.map +1 -1
- package/lib/esm/widgets/TileMemoryBreakdown.js +10 -8
- package/lib/esm/widgets/TileMemoryBreakdown.js.map +1 -1
- package/lib/esm/widgets/TileStatisticsTracker.d.ts +1 -1
- package/lib/esm/widgets/TileStatisticsTracker.d.ts.map +1 -1
- package/lib/esm/widgets/TileStatisticsTracker.js +5 -2
- package/lib/esm/widgets/TileStatisticsTracker.js.map +1 -1
- package/lib/esm/widgets/ToolSettingsTracker.d.ts +1 -1
- package/lib/esm/widgets/ToolSettingsTracker.d.ts.map +1 -1
- package/lib/esm/widgets/ToolSettingsTracker.js +2 -2
- package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
- package/lib/public/locales/en/FrontendDevTools.json +494 -494
- package/package.json +10 -10
|
@@ -16,40 +16,41 @@ const EffectTools_1 = require("./EffectTools");
|
|
|
16
16
|
* @beta
|
|
17
17
|
*/
|
|
18
18
|
class VignetteEffect extends EffectTools_1.AddEffectTool {
|
|
19
|
+
static toolId = "VignetteEffect";
|
|
19
20
|
get effectName() { return "Vignette"; }
|
|
20
21
|
get textureCoordFromPosition() { return true; }
|
|
21
22
|
get source() {
|
|
22
23
|
return {
|
|
23
|
-
vertex: `
|
|
24
|
-
void effectMain(vec4 pos) {
|
|
25
|
-
v_texCoord = textureCoordFromPosition(pos);
|
|
26
|
-
}
|
|
24
|
+
vertex: `
|
|
25
|
+
void effectMain(vec4 pos) {
|
|
26
|
+
v_texCoord = textureCoordFromPosition(pos);
|
|
27
|
+
}
|
|
27
28
|
`,
|
|
28
|
-
fragment: `
|
|
29
|
-
float sdSquare(vec2 point, float width) {
|
|
30
|
-
vec2 d = abs(point) - width;
|
|
31
|
-
return min(max(d.x,d.y),0.0) + length(max(d,0.0));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
float vignette(vec2 uv, vec2 size, float roundness, float smoothness) {
|
|
35
|
-
// Center UVs
|
|
36
|
-
uv -= 0.5;
|
|
37
|
-
|
|
38
|
-
// Shift UVs based on the larger of width or height
|
|
39
|
-
float minWidth = min(size.x, size.y);
|
|
40
|
-
uv.x = sign(uv.x) * clamp(abs(uv.x) - abs(minWidth - size.x), 0.0, 1.0);
|
|
41
|
-
uv.y = sign(uv.y) * clamp(abs(uv.y) - abs(minWidth - size.y), 0.0, 1.0);
|
|
42
|
-
|
|
43
|
-
// Signed distance calculation
|
|
44
|
-
float boxSize = minWidth * (1.0 - roundness);
|
|
45
|
-
float dist = sdSquare(uv, boxSize) - (minWidth * roundness);
|
|
46
|
-
|
|
47
|
-
return 1.0 - smoothstep(0.0, smoothness, dist);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
vec4 effectMain() {
|
|
51
|
-
return TEXTURE(u_diffuse, v_texCoord) * vignette(v_texCoord, u_size, u_roundness, u_smoothness);
|
|
52
|
-
}
|
|
29
|
+
fragment: `
|
|
30
|
+
float sdSquare(vec2 point, float width) {
|
|
31
|
+
vec2 d = abs(point) - width;
|
|
32
|
+
return min(max(d.x,d.y),0.0) + length(max(d,0.0));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
float vignette(vec2 uv, vec2 size, float roundness, float smoothness) {
|
|
36
|
+
// Center UVs
|
|
37
|
+
uv -= 0.5;
|
|
38
|
+
|
|
39
|
+
// Shift UVs based on the larger of width or height
|
|
40
|
+
float minWidth = min(size.x, size.y);
|
|
41
|
+
uv.x = sign(uv.x) * clamp(abs(uv.x) - abs(minWidth - size.x), 0.0, 1.0);
|
|
42
|
+
uv.y = sign(uv.y) * clamp(abs(uv.y) - abs(minWidth - size.y), 0.0, 1.0);
|
|
43
|
+
|
|
44
|
+
// Signed distance calculation
|
|
45
|
+
float boxSize = minWidth * (1.0 - roundness);
|
|
46
|
+
float dist = sdSquare(uv, boxSize) - (minWidth * roundness);
|
|
47
|
+
|
|
48
|
+
return 1.0 - smoothstep(0.0, smoothness, dist);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
vec4 effectMain() {
|
|
52
|
+
return TEXTURE(u_diffuse, v_texCoord) * vignette(v_texCoord, u_size, u_roundness, u_smoothness);
|
|
53
|
+
}
|
|
53
54
|
`,
|
|
54
55
|
};
|
|
55
56
|
}
|
|
@@ -73,13 +74,23 @@ class VignetteEffect extends EffectTools_1.AddEffectTool {
|
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
exports.VignetteEffect = VignetteEffect;
|
|
76
|
-
VignetteEffect.toolId = "VignetteEffect";
|
|
77
77
|
/** Configures the [[VignetteEffect]].
|
|
78
78
|
* @beta
|
|
79
79
|
*/
|
|
80
80
|
class VignetteConfig extends core_frontend_1.Tool {
|
|
81
|
+
static toolId = "VignetteConfig";
|
|
81
82
|
static get minArgs() { return 0; }
|
|
82
83
|
static get maxArgs() { return 4; }
|
|
84
|
+
/** Size of the vignette in the form (width/2, height/2). e.g., to make the vignette start fading in halfway between the center and edges of
|
|
85
|
+
* UV space, use (0.25, 0.25).
|
|
86
|
+
*/
|
|
87
|
+
static size = new Float32Array([0.25, 0.25]);
|
|
88
|
+
/** How round the vignette will be, from 0.0 (perfectly rectangular) to 1.0 (perfectly round). */
|
|
89
|
+
static roundness = 1.0;
|
|
90
|
+
/** How quickly the vignette fades in. The vignette starts fading in at the edge of the values provided by `size` and will be
|
|
91
|
+
* fully faded in at (size.x + smoothness, size.y * smoothness). A value of 0.0 produces a hard edge.
|
|
92
|
+
*/
|
|
93
|
+
static smoothness = 0.5;
|
|
83
94
|
async run(width, height, roundness, smoothness) {
|
|
84
95
|
const config = VignetteConfig;
|
|
85
96
|
config.size[0] = width ?? config.size[0];
|
|
@@ -95,15 +106,4 @@ class VignetteConfig extends core_frontend_1.Tool {
|
|
|
95
106
|
}
|
|
96
107
|
}
|
|
97
108
|
exports.VignetteConfig = VignetteConfig;
|
|
98
|
-
VignetteConfig.toolId = "VignetteConfig";
|
|
99
|
-
/** Size of the vignette in the form (width/2, height/2). e.g., to make the vignette start fading in halfway between the center and edges of
|
|
100
|
-
* UV space, use (0.25, 0.25).
|
|
101
|
-
*/
|
|
102
|
-
VignetteConfig.size = new Float32Array([0.25, 0.25]);
|
|
103
|
-
/** How round the vignette will be, from 0.0 (perfectly rectangular) to 1.0 (perfectly round). */
|
|
104
|
-
VignetteConfig.roundness = 1.0;
|
|
105
|
-
/** How quickly the vignette fades in. The vignette starts fading in at the edge of the values provided by `size` and will be
|
|
106
|
-
* fully faded in at (size.x + smoothness, size.y * smoothness). A value of 0.0 produces a hard edge.
|
|
107
|
-
*/
|
|
108
|
-
VignetteConfig.smoothness = 0.5;
|
|
109
109
|
//# sourceMappingURL=Vignette.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vignette.js","sourceRoot":"","sources":["../../../src/effects/Vignette.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAgG;AAChG,kDAA+C;AAC/C,+CAAyE;AAEzE;;;GAGG;AACH,MAAa,cAAe,SAAQ,2BAAa;
|
|
1
|
+
{"version":3,"file":"Vignette.js","sourceRoot":"","sources":["../../../src/effects/Vignette.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAgG;AAChG,kDAA+C;AAC/C,+CAAyE;AAEzE;;;GAGG;AACH,MAAa,cAAe,SAAQ,2BAAa;IACxC,MAAM,CAAU,MAAM,GAAG,gBAAgB,CAAC;IAEjD,IAAc,UAAU,KAAK,OAAO,UAAU,CAAC,CAAC,CAAC;IACjD,IAAc,wBAAwB,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAEzD,IAAc,MAAM;QAClB,OAAO;YACL,MAAM,EAAE;;;;OAIP;YACD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBT;SACF,CAAC;IACJ,CAAC;IAES,YAAY,CAAC,OAAiC;QACtD,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,2BAAW,CAAC,IAAI,CAAC,CAAC;QACnD,OAAO,CAAC,UAAU,CAAC;YACjB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,2BAAW,CAAC,IAAI;YACtB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;SAC9D,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,CAAC;YACjB,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,2BAAW,CAAC,KAAK;YACvB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC;SAClE,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,CAAC;YACjB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,2BAAW,CAAC,KAAK;YACvB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;;AA3DH,wCA4DC;AAED;;GAEG;AACH,MAAa,cAAe,SAAQ,oBAAI;IAC/B,MAAM,CAAU,MAAM,GAAG,gBAAgB,CAAC;IAC1C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;OAEG;IACI,MAAM,CAAU,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7D,iGAAiG;IAC1F,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;IAE9B;;OAEG;IACI,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;IAEf,KAAK,CAAC,GAAG,CAAC,KAAc,EAAE,MAAe,EAAE,SAAkB,EAAE,UAAmB;QAChG,MAAM,MAAM,GAAG,cAAc,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;QACjD,MAAM,CAAC,UAAU,GAAG,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;QAEpD,IAAA,uCAAyB,EAAC,cAAc,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,KAAe;QAClD,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAClG,CAAC;;AAhCH,wCAiCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Effects\n */\n\nimport { ScreenSpaceEffectBuilder, Tool, UniformType, VaryingType } from \"@itwin/core-frontend\";\nimport { parseArgs } from \"../tools/parseArgs\";\nimport { AddEffectTool, refreshViewportsForEffect } from \"./EffectTools\";\n\n/** Applies a [vignette](https://en.wikipedia.org/wiki/Vignetting) effect to the viewport.\n * From https://github.com/TyLindberg/glsl-vignette/blob/master/advanced.glsl.\n * @beta\n */\nexport class VignetteEffect extends AddEffectTool {\n public static override toolId = \"VignetteEffect\";\n\n protected get effectName() { return \"Vignette\"; }\n protected get textureCoordFromPosition() { return true; }\n\n protected get source() {\n return {\n vertex: `\n void effectMain(vec4 pos) {\n v_texCoord = textureCoordFromPosition(pos);\n }\n `,\n fragment: `\n float sdSquare(vec2 point, float width) {\n vec2 d = abs(point) - width;\n return min(max(d.x,d.y),0.0) + length(max(d,0.0));\n }\n\n float vignette(vec2 uv, vec2 size, float roundness, float smoothness) {\n // Center UVs\n uv -= 0.5;\n\n // Shift UVs based on the larger of width or height\n float minWidth = min(size.x, size.y);\n uv.x = sign(uv.x) * clamp(abs(uv.x) - abs(minWidth - size.x), 0.0, 1.0);\n uv.y = sign(uv.y) * clamp(abs(uv.y) - abs(minWidth - size.y), 0.0, 1.0);\n\n // Signed distance calculation\n float boxSize = minWidth * (1.0 - roundness);\n float dist = sdSquare(uv, boxSize) - (minWidth * roundness);\n\n return 1.0 - smoothstep(0.0, smoothness, dist);\n }\n\n vec4 effectMain() {\n return TEXTURE(u_diffuse, v_texCoord) * vignette(v_texCoord, u_size, u_roundness, u_smoothness);\n }\n `,\n };\n }\n\n protected defineEffect(builder: ScreenSpaceEffectBuilder): void {\n builder.addVarying(\"v_texCoord\", VaryingType.Vec2);\n builder.addUniform({\n name: \"u_size\",\n type: UniformType.Vec2,\n bind: (uniform) => uniform.setUniform2fv(VignetteConfig.size),\n });\n builder.addUniform({\n name: \"u_roundness\",\n type: UniformType.Float,\n bind: (uniform) => uniform.setUniform1f(VignetteConfig.roundness),\n });\n builder.addUniform({\n name: \"u_smoothness\",\n type: UniformType.Float,\n bind: (uniform) => uniform.setUniform1f(VignetteConfig.smoothness),\n });\n }\n}\n\n/** Configures the [[VignetteEffect]].\n * @beta\n */\nexport class VignetteConfig extends Tool {\n public static override toolId = \"VignetteConfig\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 4; }\n\n /** Size of the vignette in the form (width/2, height/2). e.g., to make the vignette start fading in halfway between the center and edges of\n * UV space, use (0.25, 0.25).\n */\n public static readonly size = new Float32Array([0.25, 0.25]);\n\n /** How round the vignette will be, from 0.0 (perfectly rectangular) to 1.0 (perfectly round). */\n public static roundness = 1.0;\n\n /** How quickly the vignette fades in. The vignette starts fading in at the edge of the values provided by `size` and will be\n * fully faded in at (size.x + smoothness, size.y * smoothness). A value of 0.0 produces a hard edge.\n */\n public static smoothness = 0.5;\n\n public override async run(width?: number, height?: number, roundness?: number, smoothness?: number): Promise<boolean> {\n const config = VignetteConfig;\n config.size[0] = width ?? config.size[0];\n config.size[1] = height ?? config.size[1];\n config.roundness = roundness ?? config.roundness;\n config.smoothness = smoothness ?? config.smoothness;\n\n refreshViewportsForEffect(\"fdt Vignette\");\n return true;\n }\n\n public override async parseAndRun(...input: string[]): Promise<boolean> {\n const args = parseArgs(input);\n return this.run(args.getFloat(\"w\"), args.getFloat(\"h\"), args.getFloat(\"r\"), args.getFloat(\"s\"));\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-devtools.js","sourceRoot":"","sources":["../../src/frontend-devtools.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;;;;;AAE/F,uDAAqC;AACrC,qDAAmC;AAEnC,wDAAsC;AACtC,wDAAsC;AACtC,sDAAoC;AACpC,sDAAoC;AACpC,2DAAyC;AACzC,mDAAiC;AACjC,uDAAqC;AACrC,iDAA+B;AAC/B,qDAAmC;AAEnC,gEAA8C;AAC9C,0DAAwC;AACxC,oDAAkC;AAClC,4DAA0C;AAC1C,gEAA8C;AAC9C,4DAA0C;AAC1C,6DAA2C;AAC3C,uDAAqC;AACrC,8DAA4C;AAC5C,+DAA6C;AAC7C,oDAAkC;AAClC,uDAAqC;AACrC,sDAAoC;AACpC,0DAAwC;AACxC,8DAA4C;AAC5C,yDAAuC;AACvC,4DAA0C;AAC1C,gEAA8C;AAC9C,4DAA0C;AAC1C,4DAA0C;AAC1C,uEAAqD;AACrD,qDAAmC;AACnC,yDAAuC;AACvC,8DAA4C;AAC5C,gEAA8C;AAC9C,8DAA4C;AAC5C,gEAA8C;AAC9C,mEAAiD;AACjD,0DAAwC;AACxC,wDAAsC;AAEtC,8CAA4B;AAC5B,gDAA8B;AAC9B,kDAAgC;AAChC,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAChC,oDAAkC;AAClC,gDAA8B;AAC9B,8CAA4B;AAC5B,+CAA6B;AAE7B,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,uDAAqC;AACrC,0DAAwC;AACxC,gEAA8C;AAC9C,kEAAgD;AAChD,gEAA8C;AAE9C;;GAEG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"frontend-devtools.js","sourceRoot":"","sources":["../../src/frontend-devtools.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;;;;;AAE/F,uDAAqC;AACrC,qDAAmC;AAEnC,wDAAsC;AACtC,wDAAsC;AACtC,sDAAoC;AACpC,sDAAoC;AACpC,2DAAyC;AACzC,mDAAiC;AACjC,uDAAqC;AACrC,iDAA+B;AAC/B,qDAAmC;AAEnC,gEAA8C;AAC9C,0DAAwC;AACxC,oDAAkC;AAClC,4DAA0C;AAC1C,gEAA8C;AAC9C,4DAA0C;AAC1C,6DAA2C;AAC3C,uDAAqC;AACrC,8DAA4C;AAC5C,+DAA6C;AAC7C,oDAAkC;AAClC,uDAAqC;AACrC,sDAAoC;AACpC,0DAAwC;AACxC,8DAA4C;AAC5C,yDAAuC;AACvC,4DAA0C;AAC1C,gEAA8C;AAC9C,4DAA0C;AAC1C,4DAA0C;AAC1C,uEAAqD;AACrD,qDAAmC;AACnC,yDAAuC;AACvC,8DAA4C;AAC5C,gEAA8C;AAC9C,8DAA4C;AAC5C,gEAA8C;AAC9C,mEAAiD;AACjD,0DAAwC;AACxC,wDAAsC;AAEtC,8CAA4B;AAC5B,gDAA8B;AAC9B,kDAAgC;AAChC,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAChC,oDAAkC;AAClC,gDAA8B;AAC9B,8CAA4B;AAC5B,+CAA6B;AAE7B,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,uDAAqC;AACrC,0DAAwC;AACxC,gEAA8C;AAC9C,kEAAgD;AAChD,gEAA8C;AAE9C;;GAEG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG;AAEH;;;GAGG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nexport * from \"./ClipboardUtilities\";\nexport * from \"./FrontEndDevTools\";\n\nexport * from \"./effects/Convolution\";\nexport * from \"./effects/EffectTools\";\nexport * from \"./effects/Explosion\";\nexport * from \"./effects/FlipImage\";\nexport * from \"./effects/LensDistortion\";\nexport * from \"./effects/Random\";\nexport * from \"./effects/Saturation\";\nexport * from \"./effects/Snow\";\nexport * from \"./effects/Vignette\";\n\nexport * from \"./tools/AnimationIntervalTool\";\nexport * from \"./tools/ChangeUnitsTool\";\nexport * from \"./tools/ClipTools\";\nexport * from \"./tools/DisplayStyleTools\";\nexport * from \"./tools/EmphasizeElementsTool\";\nexport * from \"./tools/FrustumDecoration\";\nexport * from \"./tools/InspectElementTool\";\nexport * from \"./tools/MapLayerTool\";\nexport * from \"./tools/MeasureTileLoadTime\";\nexport * from \"./tools/ModelAppearanceTools\";\nexport * from \"./tools/parseArgs\";\nexport * from \"./tools/parseBoolean\";\nexport * from \"./tools/parseToggle\";\nexport * from \"./tools/PlanarMaskTools\";\nexport * from \"./tools/PlanProjectionTools\";\nexport * from \"./tools/ProjectExtents\";\nexport * from \"./tools/RealityModelTools\";\nexport * from \"./tools/RealityTransitionTool\";\nexport * from \"./tools/RenderSystemTools\";\nexport * from \"./tools/RenderTargetTools\";\nexport * from \"./tools/ReportWebGLCompatibilityTool\";\nexport * from \"./tools/SavedViews\";\nexport * from \"./tools/SelectionTools\";\nexport * from \"./tools/ScheduleScriptTools\";\nexport * from \"./tools/SetGpuMemoryLimitTool\";\nexport * from \"./tools/SourceAspectIdTools\";\nexport * from \"./tools/TileRequestDecoration\";\nexport * from \"./tools/TileTreeBoundsDecoration\";\nexport * from \"./tools/ToolTipProvider\";\nexport * from \"./tools/ViewportTools\";\n\nexport * from \"./ui/Button\";\nexport * from \"./ui/CheckBox\";\nexport * from \"./ui/ColorInput\";\nexport * from \"./ui/ComboBox\";\nexport * from \"./ui/DataList\";\nexport * from \"./ui/NestedMenu\";\nexport * from \"./ui/NumericInput\";\nexport * from \"./ui/RadioBox\";\nexport * from \"./ui/Slider\";\nexport * from \"./ui/TextBox\";\n\nexport * from \"./widgets/DiagnosticsPanel\";\nexport * from \"./widgets/FpsTracker\";\nexport * from \"./widgets/GpuProfiler\";\nexport * from \"./widgets/KeyinField\";\nexport * from \"./widgets/MemoryTracker\";\nexport * from \"./widgets/TileMemoryBreakdown\";\nexport * from \"./widgets/TileStatisticsTracker\";\nexport * from \"./widgets/ToolSettingsTracker\";\n\n/** @docs-package-description\n * The frontend-devtools package contains various tools and widgets for monitoring and debugging the front-end state of an iTwin.js application.\n */\n\n/**\n * @docs-group-description Widgets\n * Widgets that wrap some of the package's functionality into embeddable HTML controls.\n */\n\n/**\n * @docs-group-description Tools\n * Interactive- and immediate-mode [tools]($docs/learning/frontend/Tools.md), most of which can be executed via key-in. All key-ins are documented in the package's README.\n */\n\n/**\n * @docs-group-description Controls\n * Rudimentary HTML components used to build the widgets.\n */\n\n/**\n * @docs-group-description Effects\n * Examples of screen-space effects produced by [RenderSystem.createScreenSpaceEffectBuilder]($frontend).\n */\n\n/**\n * @docs-group-description Utilities\n * Utility functions used throughout the package.\n */\n"]}
|
|
@@ -14,6 +14,7 @@ const core_frontend_1 = require("@itwin/core-frontend");
|
|
|
14
14
|
* @beta
|
|
15
15
|
*/
|
|
16
16
|
class AnimationIntervalTool extends core_frontend_1.Tool {
|
|
17
|
+
static toolId = "AnimationInterval";
|
|
17
18
|
static get minArgs() { return 1; }
|
|
18
19
|
static get maxArgs() { return 1; }
|
|
19
20
|
async run(interval) {
|
|
@@ -27,5 +28,4 @@ class AnimationIntervalTool extends core_frontend_1.Tool {
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
exports.AnimationIntervalTool = AnimationIntervalTool;
|
|
30
|
-
AnimationIntervalTool.toolId = "AnimationInterval";
|
|
31
31
|
//# sourceMappingURL=AnimationIntervalTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimationIntervalTool.js","sourceRoot":"","sources":["../../../src/tools/AnimationIntervalTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,sDAAiD;AACjD,wDAAuD;AAEvD;;GAEG;AACH,MAAa,qBAAsB,SAAQ,oBAAI;
|
|
1
|
+
{"version":3,"file":"AnimationIntervalTool.js","sourceRoot":"","sources":["../../../src/tools/AnimationIntervalTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,sDAAiD;AACjD,wDAAuD;AAEvD;;GAEG;AACH,MAAa,qBAAsB,SAAQ,oBAAI;IACtC,MAAM,CAAU,MAAM,GAAG,mBAAmB,CAAC;IAC7C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElC,KAAK,CAAC,GAAG,CAAC,QAAqB;QAC7C,yBAAS,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;;AAdH,sDAeC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { BeDuration } from \"@itwin/core-bentley\";\nimport { IModelApp, Tool } from \"@itwin/core-frontend\";\n\n/** Changes the [IModelApp.animationInterval]($frontend). Specify the interval in integer milliseconds; or pass any string not parseable as an integer to disable the animation interval callback.\n * @beta\n */\nexport class AnimationIntervalTool extends Tool {\n public static override toolId = \"AnimationInterval\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n public override async run(interval?: BeDuration): Promise<boolean> {\n IModelApp.animationInterval = interval;\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const millis = Number.parseInt(args[0], 10);\n const interval = !Number.isNaN(millis) ? BeDuration.fromMilliseconds(millis) : undefined;\n return this.run(interval);\n }\n}\n"]}
|
|
@@ -16,6 +16,7 @@ const parseToggle_1 = require("./parseToggle");
|
|
|
16
16
|
* @beta
|
|
17
17
|
*/
|
|
18
18
|
class ChangeUnitsTool extends core_frontend_1.Tool {
|
|
19
|
+
static toolId = "ChangeUnits";
|
|
19
20
|
static get minArgs() { return 0; }
|
|
20
21
|
static get maxArgs() { return 1; }
|
|
21
22
|
// support boolean for backwards compatibility
|
|
@@ -38,5 +39,4 @@ class ChangeUnitsTool extends core_frontend_1.Tool {
|
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
exports.ChangeUnitsTool = ChangeUnitsTool;
|
|
41
|
-
ChangeUnitsTool.toolId = "ChangeUnits";
|
|
42
42
|
//# sourceMappingURL=ChangeUnitsTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeUnitsTool.js","sourceRoot":"","sources":["../../../src/tools/ChangeUnitsTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,wDAAuD;AACvD,+CAA4C;AAE5C,sBAAsB;AAEtB;;;GAGG;AACH,MAAa,eAAgB,SAAQ,oBAAI;
|
|
1
|
+
{"version":3,"file":"ChangeUnitsTool.js","sourceRoot":"","sources":["../../../src/tools/ChangeUnitsTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,wDAAuD;AACvD,+CAA4C;AAE5C,sBAAsB;AAEtB;;;GAGG;AACH,MAAa,eAAgB,SAAQ,oBAAI;IAChC,MAAM,CAAU,MAAM,GAAG,aAAa,CAAC;IACvC,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD,8CAA8C;IAC9B,KAAK,CAAC,GAAG,CAAC,SAAmB;QAC3C,MAAM,IAAI,GAAG,yBAAS,CAAC,iBAAiB,CAAC;QAEzC,kEAAkE;QAClE,MAAM,WAAW,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,KAAK,QAAQ,CAAC;QAC9F,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEvD,IAAI,UAAU,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,yBAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;;AA3BH,0CA4BC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Tools\n */\n\nimport { IModelApp, Tool } from \"@itwin/core-frontend\";\nimport { parseToggle } from \"./parseToggle\";\n\n// CSpell: ignore fmtr\n\n/** Controls whether quantities are formatted using imperial or metric units.\n * Such formatting is used in many places; one example is the output of the MeasureTool.\n * @beta\n */\nexport class ChangeUnitsTool extends Tool {\n public static override toolId = \"ChangeUnits\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n // support boolean for backwards compatibility\n public override async run(useMetric?: boolean): Promise<boolean> {\n const fmtr = IModelApp.quantityFormatter;\n\n // if no arg then toggle to metric from any non-metric unit system\n const useImperial = undefined !== useMetric ? !useMetric : fmtr.activeUnitSystem === \"metric\";\n const unitSystem = useImperial ? \"imperial\" : \"metric\";\n\n if (unitSystem !== fmtr.activeUnitSystem) {\n await fmtr.setActiveUnitSystem(unitSystem);\n await IModelApp.toolAdmin.startDefaultTool();\n }\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\")\n await this.run(enable);\n\n return true;\n }\n}\n"]}
|
|
@@ -29,6 +29,7 @@ const DisplayStyleTools_1 = require("./DisplayStyleTools");
|
|
|
29
29
|
* @beta
|
|
30
30
|
*/
|
|
31
31
|
class ClipColorTool extends core_frontend_1.Tool {
|
|
32
|
+
static toolId = "ClipColorTool";
|
|
32
33
|
static get minArgs() { return 1; }
|
|
33
34
|
static get maxArgs() { return 2; }
|
|
34
35
|
_clearClipColors() {
|
|
@@ -74,7 +75,6 @@ class ClipColorTool extends core_frontend_1.Tool {
|
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
exports.ClipColorTool = ClipColorTool;
|
|
77
|
-
ClipColorTool.toolId = "ClipColorTool";
|
|
78
78
|
/** This tool specifies or un-specifies a color and width to use for pixels within the specified width of a clip plane.
|
|
79
79
|
* Arguments can be:
|
|
80
80
|
* - off
|
|
@@ -92,6 +92,7 @@ ClipColorTool.toolId = "ClipColorTool";
|
|
|
92
92
|
* @beta
|
|
93
93
|
*/
|
|
94
94
|
class ClipIntersectionTool extends core_frontend_1.Tool {
|
|
95
|
+
static toolId = "ClipIntersectionTool";
|
|
95
96
|
static get minArgs() { return 0; }
|
|
96
97
|
static get maxArgs() { return 4; }
|
|
97
98
|
_toggleIntersectionStyle(toggle) {
|
|
@@ -162,11 +163,11 @@ class ClipIntersectionTool extends core_frontend_1.Tool {
|
|
|
162
163
|
}
|
|
163
164
|
}
|
|
164
165
|
exports.ClipIntersectionTool = ClipIntersectionTool;
|
|
165
|
-
ClipIntersectionTool.toolId = "ClipIntersectionTool";
|
|
166
166
|
/** Controls a view state's view details' flag for producing cut geometry for a clip style.
|
|
167
167
|
* @beta
|
|
168
168
|
*/
|
|
169
169
|
class ToggleSectionCutTool extends core_frontend_1.Tool {
|
|
170
|
+
static toolId = "ToggleSectionCut";
|
|
170
171
|
static get minArgs() { return 0; }
|
|
171
172
|
static get maxArgs() { return 1; }
|
|
172
173
|
/** This method runs the tool, controlling a view state's view details' flag for producing cut geometry for a clip style.
|
|
@@ -199,17 +200,15 @@ class ToggleSectionCutTool extends core_frontend_1.Tool {
|
|
|
199
200
|
}
|
|
200
201
|
}
|
|
201
202
|
exports.ToggleSectionCutTool = ToggleSectionCutTool;
|
|
202
|
-
ToggleSectionCutTool.toolId = "ToggleSectionCut";
|
|
203
203
|
/** Simple tool that toggles a hard-coded clip style overriding various aspects of the cut geometry appearance.
|
|
204
204
|
* @beta
|
|
205
205
|
*/
|
|
206
206
|
class TestClipStyleTool extends DisplayStyleTools_1.DisplayStyleTool {
|
|
207
|
-
|
|
208
|
-
super(...arguments);
|
|
209
|
-
this._useStyle = false;
|
|
210
|
-
}
|
|
207
|
+
static toolId = "TestClipStyle";
|
|
211
208
|
static get maxArgs() { return 2; }
|
|
212
209
|
static get minArgs() { return 1; }
|
|
210
|
+
_useStyle = false;
|
|
211
|
+
_style;
|
|
213
212
|
get require3d() { return true; }
|
|
214
213
|
async parse(args) {
|
|
215
214
|
this._useStyle = (0, parseBoolean_1.parseBoolean)(args[0]) ?? false;
|
|
@@ -251,5 +250,4 @@ class TestClipStyleTool extends DisplayStyleTools_1.DisplayStyleTool {
|
|
|
251
250
|
}
|
|
252
251
|
}
|
|
253
252
|
exports.TestClipStyleTool = TestClipStyleTool;
|
|
254
|
-
TestClipStyleTool.toolId = "TestClipStyle";
|
|
255
253
|
//# sourceMappingURL=ClipTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipTools.js","sourceRoot":"","sources":["../../../src/tools/ClipTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport {\r\n ClipIntersectionStyle, ClipStyle, ClipStyleProps, ColorByName, ColorDef, CutStyleProps, 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/** This tool specifies or un-specifies a color and width to use for pixels within the specified width of a clip plane.\r\n * Arguments can be:\r\n * - off\r\n * - default\r\n * - color <color string>\r\n * - width <number>\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 ClipIntersectionTool extends Tool {\r\n public static override toolId = \"ClipIntersectionTool\";\r\n public static override get minArgs() { return 0; }\r\n public static override get maxArgs() { return 4; }\r\n\r\n private _toggleIntersectionStyle(toggle: boolean) {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp) {\r\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\r\n props.colorizeIntersection = toggle;\r\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\r\n }\r\n }\r\n\r\n private _defaultClipIntersection() {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (undefined !== vp) {\r\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\r\n if (!props.intersectionStyle) {\r\n props.intersectionStyle = ClipIntersectionStyle.defaults;\r\n } else {\r\n props.intersectionStyle.color = RgbColor.fromColorDef(ColorDef.white);\r\n props.intersectionStyle.width = 1;\r\n }\r\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\r\n }\r\n }\r\n\r\n private setClipIntersection(colStr: string, width: number) {\r\n const vp = IModelApp.viewManager.selectedView;\r\n if (vp) {\r\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\r\n\r\n if (!props.intersectionStyle) {\r\n props.intersectionStyle = ClipIntersectionStyle.defaults;\r\n }\r\n if (colStr) {\r\n props.intersectionStyle.color = RgbColor.fromColorDef(ColorDef.fromString(colStr));\r\n }\r\n if (width) {\r\n props.intersectionStyle.width = width;\r\n }\r\n\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 color and width to use for pixels within the specified width of a clip plane.\r\n * Arguments can be:\r\n * - off\r\n * - default\r\n * - color <color string>\r\n * - width <number>\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 (args[0] === \"off\") {\r\n this._toggleIntersectionStyle(false);\r\n return true;\r\n }\r\n\r\n this._toggleIntersectionStyle(true);\r\n if (args[0] === \"default\") {\r\n this._defaultClipIntersection();\r\n return true;\r\n }\r\n\r\n args[0] === \"color\" ? this.setClipIntersection(args[1], +args[3]) : this.setClipIntersection(args[3], +args[1]);\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 2; }\r\n public static override get minArgs() { return 1; }\r\n\r\n private _useStyle = false;\r\n private _style?: CutStyleProps;\r\n\r\n protected override get require3d() { return true; }\r\n\r\n protected async parse(args: string[]): Promise<boolean> {\r\n this._useStyle = parseBoolean(args[0]) ?? false;\r\n if (this._useStyle && args.length > 1)\r\n this._style = JSON.parse(args[1]);\r\n return true;\r\n }\r\n\r\n protected async execute(vp: Viewport) {\r\n const props: ClipStyleProps = { produceCutGeometry: true };\r\n if (this._useStyle) {\r\n if (this._style)\r\n props.cutStyle = this._style;\r\n else\r\n props.cutStyle = {\r\n viewflags: {\r\n renderMode: RenderMode.SmoothShade,\r\n visibleEdges: true,\r\n hiddenEdges: false,\r\n },\r\n appearance: {\r\n rgb: { r: 0xff, g: 0x7f, b: 0 },\r\n transparency: 0.5,\r\n nonLocatable: true,\r\n },\r\n hiddenLine: {\r\n visible: {\r\n ovrColor: true,\r\n color: ColorByName.blue,\r\n pattern: LinePixels.Solid,\r\n width: 3,\r\n },\r\n },\r\n };\r\n }\r\n\r\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\r\n vp.invalidateRenderPlan();\r\n vp.setFeatureOverrideProviderChanged();\r\n\r\n return true;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ClipTools.js","sourceRoot":"","sources":["../../../src/tools/ClipTools.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,oDAE4B;AAC5B,wDAAiE;AACjE,+CAA4C;AAC5C,iDAA8C;AAC9C,2DAAuD;AAEvD;;;;;;;;;;;;;;GAcG;AACH,MAAa,aAAc,SAAQ,oBAAI;IAC9B,MAAM,CAAU,MAAM,GAAG,eAAe,CAAC;IACzC,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1C,gBAAgB;QACtB,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAChE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;YACnD,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,uBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,MAAc,EAAE,KAAqC;QACxE,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAChE,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAQ,CAAC,YAAY,CAAC,sBAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACnG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,uBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO;gBACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAE1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS;YAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAElF,OAAO,IAAI,CAAC;IACd,CAAC;;AAlDH,sCAmDC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAa,oBAAqB,SAAQ,oBAAI;IACrC,MAAM,CAAU,MAAM,GAAG,sBAAsB,CAAC;IAChD,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1C,wBAAwB,CAAC,MAAe;QAC9C,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAChE,KAAK,CAAC,oBAAoB,GAAG,MAAM,CAAC;YACpC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,uBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,wBAAwB;QAC9B,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,KAAK,CAAC,iBAAiB,GAAG,mCAAqB,CAAC,QAAQ,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,iBAAiB,CAAC,KAAK,GAAG,sBAAQ,CAAC,YAAY,CAAC,sBAAQ,CAAC,KAAK,CAAC,CAAC;gBACtE,KAAK,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC;YACpC,CAAC;YACD,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,uBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,MAAc,EAAE,KAAa;QACvD,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAEhE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,KAAK,CAAC,iBAAiB,GAAG,mCAAqB,CAAC,QAAQ,CAAC;YAC3D,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,iBAAiB,CAAC,KAAK,GAAG,sBAAQ,CAAC,YAAY,CAAC,sBAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;YACxC,CAAC;YAED,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,uBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChH,OAAO,IAAI,CAAC;IACd,CAAC;;AA5EH,oDA6EC;AAED;;GAEG;AACH,MAAa,oBAAqB,SAAQ,oBAAI;IACrC,MAAM,CAAU,MAAM,GAAG,kBAAkB,CAAC;IAC5C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAElD;;OAEG;IACa,KAAK,CAAC,GAAG,CAAC,kBAA4B;QACpD,MAAM,EAAE,GAAG,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC;QAC9C,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;YACtD,kBAAkB,GAAG,kBAAkB,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACrE,IAAI,kBAAkB,KAAK,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBACpD,MAAM,IAAI,GAAG;oBACX,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;oBACnD,kBAAkB;iBACnB,CAAC;gBAEF,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,uBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACnE,EAAE,CAAC,eAAe,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACa,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;;AApCH,oDAqCC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,oCAAgB;IAC9C,MAAM,CAAU,MAAM,GAAG,eAAe,CAAC;IACzC,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1C,SAAS,GAAG,KAAK,CAAC;IAClB,MAAM,CAAiB;IAE/B,IAAuB,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAEzC,KAAK,CAAC,KAAK,CAAC,IAAc;QAClC,IAAI,CAAC,SAAS,GAAG,IAAA,2BAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;QAChD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,EAAY;QAClC,MAAM,KAAK,GAAmB,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM;gBACb,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;;gBAE7B,KAAK,CAAC,QAAQ,GAAG;oBACf,SAAS,EAAE;wBACT,UAAU,EAAE,wBAAU,CAAC,WAAW;wBAClC,YAAY,EAAE,IAAI;wBAClB,WAAW,EAAE,KAAK;qBACnB;oBACD,UAAU,EAAE;wBACV,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;wBAC/B,YAAY,EAAE,GAAG;wBACjB,YAAY,EAAE,IAAI;qBACnB;oBACD,UAAU,EAAE;wBACV,OAAO,EAAE;4BACP,QAAQ,EAAE,IAAI;4BACd,KAAK,EAAE,yBAAW,CAAC,IAAI;4BACvB,OAAO,EAAE,wBAAU,CAAC,KAAK;4BACzB,KAAK,EAAE,CAAC;yBACT;qBACF;iBACF,CAAC;QACN,CAAC;QAED,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,uBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/D,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAC1B,EAAE,CAAC,iCAAiC,EAAE,CAAC;QAEvC,OAAO,IAAI,CAAC;IACd,CAAC;;AAlDH,8CAmDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module Tools\n */\n\nimport {\n ClipIntersectionStyle, ClipStyle, ClipStyleProps, ColorByName, ColorDef, CutStyleProps, LinePixels, RenderMode, RgbColor,\n} from \"@itwin/core-common\";\nimport { IModelApp, Tool, Viewport } from \"@itwin/core-frontend\";\nimport { parseToggle } from \"./parseToggle\";\nimport { parseBoolean } from \"./parseBoolean\";\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\n\n/** This tool specifies or un-specifies a clip color to use for pixels inside or outside the clip region.\n * Arguments can be:\n * - clear\n * - inside <color string> | clear\n * - outside <color string> | clear\n * <color string> must be in one of the following forms:\n * \"rgb(255,0,0)\"\n * \"rgba(255,0,0,255)\"\n * \"rgb(100%,0%,0%)\"\n * \"hsl(120,50%,50%)\"\n * \"#rrbbgg\"\n * \"blanchedAlmond\" (see possible values from [[ColorByName]]). Case insensitive.\n * @see [ColorDef]\n * @beta\n */\nexport class ClipColorTool extends Tool {\n public static override toolId = \"ClipColorTool\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n private _clearClipColors() {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== vp) {\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\n props.insideColor = props.outsideColor = undefined;\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\n }\n }\n\n private setClipColor(colStr: string, which: \"insideColor\" | \"outsideColor\") {\n const vp = IModelApp.viewManager.selectedView;\n if (vp) {\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\n props[which] = colStr === \"clear\" ? undefined : RgbColor.fromColorDef(ColorDef.fromString(colStr));\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\n }\n }\n\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.\n * Arguments can be:\n * - clear\n * - inside <color string> | clear\n * - outside <color string> | clear\n * <color string> must be in one of the following forms:\n * \"rgb(255,0,0)\"\n * \"rgba(255,0,0,255)\"\n * \"rgb(100%,0%,0%)\"\n * \"hsl(120,50%,50%)\"\n * \"#rrbbgg\"\n * \"blanchedAlmond\" (see possible values from [[ColorByName]]). Case insensitive.\n * @beta\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (1 === args.length) {\n if (args[0] === \"clear\")\n this._clearClipColors();\n\n return true;\n }\n\n const which = args[0];\n if (which === \"inside\" || which === \"outside\")\n this.setClipColor(args[1], \"inside\" === which ? \"insideColor\" : \"outsideColor\");\n\n return true;\n }\n}\n\n/** This tool specifies or un-specifies a color and width to use for pixels within the specified width of a clip plane.\n * Arguments can be:\n * - off\n * - default\n * - color <color string>\n * - width <number>\n * <color string> must be in one of the following forms:\n * \"rgb(255,0,0)\"\n * \"rgba(255,0,0,255)\"\n * \"rgb(100%,0%,0%)\"\n * \"hsl(120,50%,50%)\"\n * \"#rrbbgg\"\n * \"blanchedAlmond\" (see possible values from [[ColorByName]]). Case insensitive.\n * @see [ColorDef]\n * @beta\n */\nexport class ClipIntersectionTool extends Tool {\n public static override toolId = \"ClipIntersectionTool\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 4; }\n\n private _toggleIntersectionStyle(toggle: boolean) {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== vp) {\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\n props.colorizeIntersection = toggle;\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\n }\n }\n\n private _defaultClipIntersection() {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== vp) {\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\n if (!props.intersectionStyle) {\n props.intersectionStyle = ClipIntersectionStyle.defaults;\n } else {\n props.intersectionStyle.color = RgbColor.fromColorDef(ColorDef.white);\n props.intersectionStyle.width = 1;\n }\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\n }\n }\n\n private setClipIntersection(colStr: string, width: number) {\n const vp = IModelApp.viewManager.selectedView;\n if (vp) {\n const props = vp.displayStyle.settings.clipStyle.toJSON() ?? {};\n\n if (!props.intersectionStyle) {\n props.intersectionStyle = ClipIntersectionStyle.defaults;\n }\n if (colStr) {\n props.intersectionStyle.color = RgbColor.fromColorDef(ColorDef.fromString(colStr));\n }\n if (width) {\n props.intersectionStyle.width = width;\n }\n\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\n }\n }\n\n /** This runs the tool using the given arguments, specifying or unspecifying a color and width to use for pixels within the specified width of a clip plane.\n * Arguments can be:\n * - off\n * - default\n * - color <color string>\n * - width <number>\n * <color string> must be in one of the following forms:\n * \"rgb(255,0,0)\"\n * \"rgba(255,0,0,255)\"\n * \"rgb(100%,0%,0%)\"\n * \"hsl(120,50%,50%)\"\n * \"#rrbbgg\"\n * \"blanchedAlmond\" (see possible values from [[ColorByName]]). Case insensitive.\n * @beta\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (args[0] === \"off\") {\n this._toggleIntersectionStyle(false);\n return true;\n }\n\n this._toggleIntersectionStyle(true);\n if (args[0] === \"default\") {\n this._defaultClipIntersection();\n return true;\n }\n\n args[0] === \"color\" ? this.setClipIntersection(args[1], +args[3]) : this.setClipIntersection(args[3], +args[1]);\n return true;\n }\n}\n\n/** Controls a view state's view details' flag for producing cut geometry for a clip style.\n * @beta\n */\nexport class ToggleSectionCutTool extends Tool {\n public static override toolId = \"ToggleSectionCut\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n /** This method runs the tool, controlling a view state's view details' flag for producing cut geometry for a clip style.\n * @param produceCutGeometry whether to produce cut geometry\n */\n public override async run(produceCutGeometry?: boolean): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (vp) {\n const style = vp.view.displayStyle.settings.clipStyle;\n produceCutGeometry = produceCutGeometry ?? !style.produceCutGeometry;\n if (produceCutGeometry !== style.produceCutGeometry) {\n const json = {\n ...vp.view.displayStyle.settings.clipStyle.toJSON(),\n produceCutGeometry,\n };\n\n vp.view.displayStyle.settings.clipStyle = ClipStyle.fromJSON(json);\n vp.invalidateScene();\n }\n }\n\n return true;\n }\n\n /** Executes this tool's run method with args[0] containing `produceCutGeometry`.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\")\n await this.run(enable);\n\n return true;\n }\n}\n\n/** Simple tool that toggles a hard-coded clip style overriding various aspects of the cut geometry appearance.\n * @beta\n */\nexport class TestClipStyleTool extends DisplayStyleTool {\n public static override toolId = \"TestClipStyle\";\n public static override get maxArgs() { return 2; }\n public static override get minArgs() { return 1; }\n\n private _useStyle = false;\n private _style?: CutStyleProps;\n\n protected override get require3d() { return true; }\n\n protected async parse(args: string[]): Promise<boolean> {\n this._useStyle = parseBoolean(args[0]) ?? false;\n if (this._useStyle && args.length > 1)\n this._style = JSON.parse(args[1]);\n return true;\n }\n\n protected async execute(vp: Viewport) {\n const props: ClipStyleProps = { produceCutGeometry: true };\n if (this._useStyle) {\n if (this._style)\n props.cutStyle = this._style;\n else\n props.cutStyle = {\n viewflags: {\n renderMode: RenderMode.SmoothShade,\n visibleEdges: true,\n hiddenEdges: false,\n },\n appearance: {\n rgb: { r: 0xff, g: 0x7f, b: 0 },\n transparency: 0.5,\n nonLocatable: true,\n },\n hiddenLine: {\n visible: {\n ovrColor: true,\n color: ColorByName.blue,\n pattern: LinePixels.Solid,\n width: 3,\n },\n },\n };\n }\n\n vp.displayStyle.settings.clipStyle = ClipStyle.fromJSON(props);\n vp.invalidateRenderPlan();\n vp.setFeatureOverrideProviderChanged();\n\n return true;\n }\n}\n"]}
|
|
@@ -49,6 +49,7 @@ exports.DisplayStyleTool = DisplayStyleTool;
|
|
|
49
49
|
* @beta
|
|
50
50
|
*/
|
|
51
51
|
class ChangeViewFlagsTool extends core_frontend_1.Tool {
|
|
52
|
+
static toolId = "ChangeViewFlags";
|
|
52
53
|
static get maxArgs() { return undefined; }
|
|
53
54
|
static get minArgs() { return 1; }
|
|
54
55
|
async run(vf, vp) {
|
|
@@ -94,11 +95,11 @@ class ChangeViewFlagsTool extends core_frontend_1.Tool {
|
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
97
|
exports.ChangeViewFlagsTool = ChangeViewFlagsTool;
|
|
97
|
-
ChangeViewFlagsTool.toolId = "ChangeViewFlags";
|
|
98
98
|
/** Toggles the skybox.
|
|
99
99
|
* @beta
|
|
100
100
|
*/
|
|
101
101
|
class ToggleSkyboxTool extends DisplayStyleTool {
|
|
102
|
+
static toolId = "ToggleSkybox";
|
|
102
103
|
get require3d() { return true; }
|
|
103
104
|
async parse(_args) { return true; } // no arguments
|
|
104
105
|
async execute(vp) {
|
|
@@ -108,11 +109,12 @@ class ToggleSkyboxTool extends DisplayStyleTool {
|
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
111
|
exports.ToggleSkyboxTool = ToggleSkyboxTool;
|
|
111
|
-
ToggleSkyboxTool.toolId = "ToggleSkybox";
|
|
112
112
|
/** Defines a [SkySphere]($common) to apply to the current view.
|
|
113
113
|
* @beta
|
|
114
114
|
*/
|
|
115
115
|
class SkySphereTool extends DisplayStyleTool {
|
|
116
|
+
_image;
|
|
117
|
+
static toolId = "SetSkySphere";
|
|
116
118
|
static get minArgs() { return 1; }
|
|
117
119
|
static get maxArgs() { return 1; }
|
|
118
120
|
get require3d() { return true; }
|
|
@@ -131,15 +133,12 @@ class SkySphereTool extends DisplayStyleTool {
|
|
|
131
133
|
}
|
|
132
134
|
}
|
|
133
135
|
exports.SkySphereTool = SkySphereTool;
|
|
134
|
-
SkySphereTool.toolId = "SetSkySphere";
|
|
135
136
|
/** Defines a [SkyCube]($common) to apply to the current view.
|
|
136
137
|
* @beta
|
|
137
138
|
*/
|
|
138
139
|
class SkyCubeTool extends DisplayStyleTool {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
this._images = [];
|
|
142
|
-
}
|
|
140
|
+
_images = [];
|
|
141
|
+
static toolId = "SetSkyCube";
|
|
143
142
|
static get minArgs() { return 1; }
|
|
144
143
|
static get maxArgs() { return 6; }
|
|
145
144
|
get require3d() { return true; }
|
|
@@ -195,7 +194,6 @@ class SkyCubeTool extends DisplayStyleTool {
|
|
|
195
194
|
}
|
|
196
195
|
}
|
|
197
196
|
exports.SkyCubeTool = SkyCubeTool;
|
|
198
|
-
SkyCubeTool.toolId = "SetSkyCube";
|
|
199
197
|
/** Outputs (and optionally copies to the clipboard) a "rendering style" as a partial DisplayStyle3dSettingsProps JSON object based
|
|
200
198
|
* on the current view's display style settings.
|
|
201
199
|
* 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.
|
|
@@ -211,12 +209,10 @@ SkyCubeTool.toolId = "SetSkyCube";
|
|
|
211
209
|
* @beta
|
|
212
210
|
*/
|
|
213
211
|
class SaveRenderingStyleTool extends DisplayStyleTool {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
this._quote = false;
|
|
219
|
-
}
|
|
212
|
+
_options = {};
|
|
213
|
+
_copyToClipboard = false;
|
|
214
|
+
_quote = false;
|
|
215
|
+
static toolId = "SaveRenderingStyle";
|
|
220
216
|
static get minArgs() { return 0; }
|
|
221
217
|
static get maxArgs() { return 7; }
|
|
222
218
|
async parse(inputArgs) {
|
|
@@ -244,12 +240,13 @@ class SaveRenderingStyleTool extends DisplayStyleTool {
|
|
|
244
240
|
}
|
|
245
241
|
}
|
|
246
242
|
exports.SaveRenderingStyleTool = SaveRenderingStyleTool;
|
|
247
|
-
SaveRenderingStyleTool.toolId = "SaveRenderingStyle";
|
|
248
243
|
/** Given a "rendering style" as a partial DisplayStyle3dSettingsProperties JSON string, apply it to the selected viewport's display style.
|
|
249
244
|
* @see [DisplayStyleSettings.applyOverrides]($common) for details.
|
|
250
245
|
* @beta
|
|
251
246
|
*/
|
|
252
247
|
class ApplyRenderingStyleTool extends DisplayStyleTool {
|
|
248
|
+
_overrides;
|
|
249
|
+
static toolId = "ApplyRenderingStyle";
|
|
253
250
|
static get minArgs() { return 1; }
|
|
254
251
|
static get maxArgs() { return 1; }
|
|
255
252
|
async parse(args) {
|
|
@@ -269,16 +266,13 @@ class ApplyRenderingStyleTool extends DisplayStyleTool {
|
|
|
269
266
|
}
|
|
270
267
|
}
|
|
271
268
|
exports.ApplyRenderingStyleTool = ApplyRenderingStyleTool;
|
|
272
|
-
ApplyRenderingStyleTool.toolId = "ApplyRenderingStyle";
|
|
273
269
|
/** Apply appearance overrides to one or more subcategories in the active viewport.
|
|
274
270
|
* @beta
|
|
275
271
|
*/
|
|
276
272
|
class OverrideSubCategoryTool extends DisplayStyleTool {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
this._subcategoryIds = [];
|
|
281
|
-
}
|
|
273
|
+
_overrideProps = {};
|
|
274
|
+
_subcategoryIds = [];
|
|
275
|
+
static toolId = "OverrideSubCategory";
|
|
282
276
|
static get minArgs() { return 1; }
|
|
283
277
|
static get maxArgs() { return 7; }
|
|
284
278
|
async parse(inArgs) {
|
|
@@ -304,11 +298,12 @@ class OverrideSubCategoryTool extends DisplayStyleTool {
|
|
|
304
298
|
}
|
|
305
299
|
}
|
|
306
300
|
exports.OverrideSubCategoryTool = OverrideSubCategoryTool;
|
|
307
|
-
OverrideSubCategoryTool.toolId = "OverrideSubCategory";
|
|
308
301
|
/** Set whether background color is ignored when applying white-on-white reversal.
|
|
309
302
|
* @beta
|
|
310
303
|
*/
|
|
311
304
|
class WoWIgnoreBackgroundTool extends DisplayStyleTool {
|
|
305
|
+
_ignore;
|
|
306
|
+
static toolId = "WoWIgnoreBackground";
|
|
312
307
|
static get minArgs() { return 0; }
|
|
313
308
|
static get maxArgs() { return 1; }
|
|
314
309
|
async parse(args) {
|
|
@@ -325,12 +320,13 @@ class WoWIgnoreBackgroundTool extends DisplayStyleTool {
|
|
|
325
320
|
}
|
|
326
321
|
}
|
|
327
322
|
exports.WoWIgnoreBackgroundTool = WoWIgnoreBackgroundTool;
|
|
328
|
-
WoWIgnoreBackgroundTool.toolId = "WoWIgnoreBackground";
|
|
329
323
|
/** Toggle whether surfaces display with overlaid wiremesh in the active viewport.
|
|
330
324
|
* @see [ViewFlags.wiremesh]($common).
|
|
331
325
|
* @beta
|
|
332
326
|
*/
|
|
333
327
|
class ToggleWiremeshTool extends DisplayStyleTool {
|
|
328
|
+
_enable;
|
|
329
|
+
static toolId = "ToggleWiremesh";
|
|
334
330
|
static get minArgs() { return 0; }
|
|
335
331
|
static get maxArgs() { return 1; }
|
|
336
332
|
async parse(args) {
|
|
@@ -346,11 +342,12 @@ class ToggleWiremeshTool extends DisplayStyleTool {
|
|
|
346
342
|
}
|
|
347
343
|
}
|
|
348
344
|
exports.ToggleWiremeshTool = ToggleWiremeshTool;
|
|
349
|
-
ToggleWiremeshTool.toolId = "ToggleWiremesh";
|
|
350
345
|
/** Change the background color of the active viewport and optionally its transparency.
|
|
351
346
|
* @beta
|
|
352
347
|
*/
|
|
353
348
|
class ChangeBackgroundColorTool extends DisplayStyleTool {
|
|
349
|
+
_color;
|
|
350
|
+
static toolId = "ChangeBackgroundColor";
|
|
354
351
|
static get minArgs() { return 1; }
|
|
355
352
|
static get maxArgs() { return 1; }
|
|
356
353
|
async parse(args) {
|
|
@@ -365,5 +362,4 @@ class ChangeBackgroundColorTool extends DisplayStyleTool {
|
|
|
365
362
|
}
|
|
366
363
|
}
|
|
367
364
|
exports.ChangeBackgroundColorTool = ChangeBackgroundColorTool;
|
|
368
|
-
ChangeBackgroundColorTool.toolId = "ChangeBackgroundColor";
|
|
369
365
|
//# sourceMappingURL=DisplayStyleTools.js.map
|