@itwin/frontend-devtools 5.0.0-dev.4 → 5.0.0-dev.40
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 +26 -1
- package/lib/cjs/FrontEndDevTools.js +1 -1
- package/lib/cjs/FrontEndDevTools.js.map +1 -1
- package/lib/cjs/effects/Convolution.js +6 -6
- 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 +2 -2
- package/lib/cjs/effects/Explosion.js.map +1 -1
- package/lib/cjs/effects/FlipImage.js +2 -2
- package/lib/cjs/effects/FlipImage.js.map +1 -1
- package/lib/cjs/effects/LensDistortion.js +4 -4
- package/lib/cjs/effects/LensDistortion.js.map +1 -1
- package/lib/cjs/effects/Saturation.js +4 -4
- package/lib/cjs/effects/Saturation.js.map +1 -1
- package/lib/cjs/effects/Snow.js +2 -2
- package/lib/cjs/effects/Snow.js.map +1 -1
- package/lib/cjs/effects/Vignette.js +12 -12
- package/lib/cjs/effects/Vignette.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 +4 -4
- package/lib/cjs/tools/ClipTools.js.map +1 -1
- package/lib/cjs/tools/DisplayStyleTools.js +10 -10
- package/lib/cjs/tools/DisplayStyleTools.js.map +1 -1
- package/lib/cjs/tools/EmphasizeElementsTool.js +5 -5
- package/lib/cjs/tools/EmphasizeElementsTool.js.map +1 -1
- package/lib/cjs/tools/FrustumDecoration.js +3 -3
- package/lib/cjs/tools/FrustumDecoration.js.map +1 -1
- package/lib/cjs/tools/InspectElementTool.js +1 -1
- package/lib/cjs/tools/InspectElementTool.js.map +1 -1
- package/lib/cjs/tools/MapLayerTool.js +20 -20
- package/lib/cjs/tools/MapLayerTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTileLoadTime.js +1 -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 +3 -3
- package/lib/cjs/tools/PlanProjectionTools.js.map +1 -1
- package/lib/cjs/tools/PlanarMaskTools.js +13 -13
- package/lib/cjs/tools/PlanarMaskTools.js.map +1 -1
- package/lib/cjs/tools/ProjectExtents.js +1 -1
- 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 +3 -3
- package/lib/cjs/tools/RenderSystemTools.js.map +1 -1
- package/lib/cjs/tools/RenderTargetTools.js +11 -11
- 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 +3 -3
- package/lib/cjs/tools/SavedViews.js.map +1 -1
- package/lib/cjs/tools/ScheduleScriptTools.js +3 -3
- package/lib/cjs/tools/ScheduleScriptTools.js.map +1 -1
- package/lib/cjs/tools/SelectionTools.js +2 -2
- 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 +1 -1
- package/lib/cjs/tools/TileRequestDecoration.js.map +1 -1
- package/lib/cjs/tools/TileTreeBoundsDecoration.js +1 -1
- package/lib/cjs/tools/TileTreeBoundsDecoration.js.map +1 -1
- package/lib/cjs/tools/ToolTipProvider.js +1 -1
- package/lib/cjs/tools/ToolTipProvider.js.map +1 -1
- package/lib/cjs/tools/ViewportTools.js +19 -19
- package/lib/cjs/tools/ViewportTools.js.map +1 -1
- package/lib/cjs/widgets/ToolSettingsTracker.js +1 -1
- package/lib/cjs/widgets/ToolSettingsTracker.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 +6 -6
- 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 +2 -2
- package/lib/esm/effects/Explosion.js.map +1 -1
- package/lib/esm/effects/FlipImage.js +2 -2
- package/lib/esm/effects/FlipImage.js.map +1 -1
- package/lib/esm/effects/LensDistortion.js +4 -4
- package/lib/esm/effects/LensDistortion.js.map +1 -1
- package/lib/esm/effects/Saturation.js +4 -4
- package/lib/esm/effects/Saturation.js.map +1 -1
- package/lib/esm/effects/Snow.js +2 -2
- package/lib/esm/effects/Snow.js.map +1 -1
- package/lib/esm/effects/Vignette.js +12 -12
- package/lib/esm/effects/Vignette.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 +4 -4
- package/lib/esm/tools/ClipTools.js.map +1 -1
- package/lib/esm/tools/DisplayStyleTools.js +10 -10
- package/lib/esm/tools/DisplayStyleTools.js.map +1 -1
- package/lib/esm/tools/EmphasizeElementsTool.js +5 -5
- package/lib/esm/tools/EmphasizeElementsTool.js.map +1 -1
- package/lib/esm/tools/FrustumDecoration.js +3 -3
- package/lib/esm/tools/FrustumDecoration.js.map +1 -1
- package/lib/esm/tools/InspectElementTool.js +1 -1
- package/lib/esm/tools/InspectElementTool.js.map +1 -1
- package/lib/esm/tools/MapLayerTool.js +20 -20
- package/lib/esm/tools/MapLayerTool.js.map +1 -1
- package/lib/esm/tools/MeasureTileLoadTime.js +1 -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 +3 -3
- package/lib/esm/tools/PlanProjectionTools.js.map +1 -1
- package/lib/esm/tools/PlanarMaskTools.js +13 -13
- package/lib/esm/tools/PlanarMaskTools.js.map +1 -1
- package/lib/esm/tools/ProjectExtents.js +1 -1
- 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 +3 -3
- package/lib/esm/tools/RenderSystemTools.js.map +1 -1
- package/lib/esm/tools/RenderTargetTools.js +11 -11
- 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 +3 -3
- package/lib/esm/tools/SavedViews.js.map +1 -1
- package/lib/esm/tools/ScheduleScriptTools.js +3 -3
- package/lib/esm/tools/ScheduleScriptTools.js.map +1 -1
- package/lib/esm/tools/SelectionTools.js +2 -2
- 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 +1 -1
- package/lib/esm/tools/TileRequestDecoration.js.map +1 -1
- package/lib/esm/tools/TileTreeBoundsDecoration.js +1 -1
- package/lib/esm/tools/TileTreeBoundsDecoration.js.map +1 -1
- package/lib/esm/tools/ToolTipProvider.js +1 -1
- package/lib/esm/tools/ToolTipProvider.js.map +1 -1
- package/lib/esm/tools/ViewportTools.js +19 -19
- package/lib/esm/tools/ViewportTools.js.map +1 -1
- package/lib/esm/widgets/ToolSettingsTracker.js +1 -1
- package/lib/esm/widgets/ToolSettingsTracker.js.map +1 -1
- package/package.json +8 -8
|
@@ -21,6 +21,7 @@ var FadeMode;
|
|
|
21
21
|
export class RealityTransitionTool extends Tool {
|
|
22
22
|
static get minArgs() { return 0; }
|
|
23
23
|
static get maxArgs() { return 1; }
|
|
24
|
+
static { this.toolId = "RealityTransition"; }
|
|
24
25
|
/** This method runs the tool, applying a transition in X, Y, Z, or transparency.
|
|
25
26
|
* @param fadeMode whether to apply the transition in X, Y, Z, or transparency
|
|
26
27
|
*/
|
|
@@ -108,5 +109,4 @@ export class RealityTransitionTool extends Tool {
|
|
|
108
109
|
return this.run(fade);
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
|
-
RealityTransitionTool.toolId = "RealityTransition";
|
|
112
112
|
//# sourceMappingURL=RealityTransitionTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityTransitionTool.js","sourceRoot":"","sources":["../../../src/tools/RealityTransitionTool.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEvD,IAAK,QAAiC;AAAtC,WAAK,QAAQ;IAAG,iCAAC,CAAA;IAAE,iCAAC,CAAA;IAAE,iCAAC,CAAA;IAAE,qDAAW,CAAA;AAAC,CAAC,EAAjC,QAAQ,KAAR,QAAQ,QAAyB;AAEtC;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,IAAI;IACtC,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"RealityTransitionTool.js","sourceRoot":"","sources":["../../../src/tools/RealityTransitionTool.ts"],"names":[],"mappings":"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","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 { Vector3d } from \"@itwin/core-geometry\";\nimport { RenderSchedule } from \"@itwin/core-common\";\nimport { IModelApp, Tool } from \"@itwin/core-frontend\";\n\nenum FadeMode { X, Y, Z, Transparent }\n\n/** This tool applies a transition in X, Y, Z, or transparency.\n * @beta\n */\nexport class RealityTransitionTool extends Tool {\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n public static override toolId = \"RealityTransition\";\n /** This method runs the tool, applying a transition in X, Y, Z, or transparency.\n * @param fadeMode whether to apply the transition in X, Y, Z, or transparency\n */\n public override async run(fadeMode: FadeMode = FadeMode.X): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp)\n return true;\n\n const displayStyle = vp.displayStyle;\n const view = vp.view;\n const timeNow = Date.now(), timeEnd = timeNow + 1000.0 * 60.0 * 60.0;\n const range = vp.iModel.projectExtents;\n const directions = [Vector3d.create(1, 0, 0), Vector3d.create(0, 1, 0), Vector3d.create(0, 0, 1)];\n const modelInTimeline: RenderSchedule.ModelTimelineProps = { modelId: \"\", elementTimelines: [] };\n const modelOutTimeline: RenderSchedule.ModelTimelineProps = { modelId: \"\", elementTimelines: [] };\n\n switch (fadeMode) {\n case FadeMode.Transparent: {\n const fadeInTimeline = new Array<RenderSchedule.VisibilityEntryProps>();\n fadeInTimeline.push({ time: timeNow, interpolation: 2, value: 100.0 });\n fadeInTimeline.push({ time: timeEnd, interpolation: 2, value: 0.0 });\n const fadeOutTimeline = new Array<RenderSchedule.VisibilityEntryProps>();\n fadeOutTimeline.push({ time: timeNow, interpolation: 2, value: 0.0 });\n fadeOutTimeline.push({ time: timeEnd, interpolation: 2, value: 100.0 });\n modelInTimeline.visibilityTimeline = fadeInTimeline;\n modelOutTimeline.visibilityTimeline = fadeOutTimeline;\n break;\n }\n\n default: {\n const direction = directions[fadeMode - FadeMode.X];\n const clipInTimeline = new Array<RenderSchedule.CuttingPlaneEntryProps>();\n clipInTimeline.push({ time: timeNow, interpolation: 2, value: { position: [range.low.x, range.low.y, range.low.z], direction: [direction.x, direction.y, direction.z] } });\n clipInTimeline.push({ time: timeEnd, interpolation: 2, value: { position: [range.high.x, range.high.y, range.high.z], direction: [direction.x, direction.y, direction.z] } });\n const clipOutTimeline = new Array<RenderSchedule.CuttingPlaneEntryProps>();\n clipOutTimeline.push({ time: timeNow, interpolation: 2, value: { position: [range.low.x, range.low.y, range.low.z], direction: [-direction.x, -direction.y, -direction.z] } });\n clipOutTimeline.push({ time: timeEnd, interpolation: 2, value: { position: [range.high.x, range.high.y, range.high.z], direction: [-direction.x, -direction.y, -direction.z] } });\n modelInTimeline.cuttingPlaneTimeline = clipInTimeline;\n modelOutTimeline.cuttingPlaneTimeline = clipOutTimeline;\n break;\n }\n }\n\n const scriptProps: RenderSchedule.ScriptProps = [];\n view.forEachModel((model) => {\n scriptProps.push({\n ...(model.jsonProperties.tilesetUrl ? modelOutTimeline : modelInTimeline),\n modelId: model.id,\n });\n });\n\n displayStyle.forEachRealityModel((model) => {\n const modelId = model.treeRef?.treeOwner.tileTree?.modelId;\n if (modelId) {\n scriptProps.push({\n ...modelOutTimeline,\n modelId,\n realityModelUrl: model.url,\n });\n }\n });\n\n const script = RenderSchedule.Script.fromJSON(scriptProps);\n if (script) {\n displayStyle.scheduleScript = script;\n vp.timePoint = script.duration.low;\n }\n\n return true;\n }\n\n /** Executes this tool's run method.\n * @param args the first entry of this array contains either \"x\", \"y\", \"z\", or \"transparent\", indicating the type of transition to apply.\n * @see [[run]]\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const transitionNames = [\n \"x\",\n \"y\",\n \"z\",\n \"transparent\",\n ];\n let fade = FadeMode.X;\n if (0 !== args.length) {\n const arg = args[0].toLowerCase();\n for (let i = 0; i < transitionNames.length; i++) {\n if (arg === transitionNames[i]) {\n fade = i;\n break;\n }\n }\n }\n\n return this.run(fade);\n }\n}\n"]}
|
|
@@ -22,27 +22,28 @@ export class RenderSystemDebugControlTool extends Tool {
|
|
|
22
22
|
* @beta
|
|
23
23
|
*/
|
|
24
24
|
export class LoseWebGLContextTool extends RenderSystemDebugControlTool {
|
|
25
|
+
static { this.toolId = "LoseWebGLContext"; }
|
|
25
26
|
execute(control) {
|
|
26
27
|
control.loseContext();
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
LoseWebGLContextTool.toolId = "LoseWebGLContext";
|
|
30
30
|
/** Compiles all registered shader programs for which compilation has not already been attempted.
|
|
31
31
|
* This is useful for uncovering/debugging platform-specific shader issues.
|
|
32
32
|
* @beta
|
|
33
33
|
*/
|
|
34
34
|
export class CompileShadersTool extends RenderSystemDebugControlTool {
|
|
35
|
+
static { this.toolId = "CompileShaders"; }
|
|
35
36
|
execute(control) {
|
|
36
37
|
const compiled = control.compileAllShaders();
|
|
37
38
|
IModelApp.notifications.outputMessage(new NotifyMessageDetails(compiled ? OutputMessagePriority.Info : OutputMessagePriority.Error, `${compiled ? "No" : "Some"} compilation errors occurred.`));
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
CompileShadersTool.toolId = "CompileShaders";
|
|
41
41
|
/** Toggles whether or not device pixel ratio should be taken into account when computing LOD for tiles and decoration graphics.
|
|
42
42
|
* @see [RenderSystem.Options.dpiAwareLOD]($frontend)
|
|
43
43
|
* @beta
|
|
44
44
|
*/
|
|
45
45
|
export class ToggleDPIForLODTool extends RenderSystemDebugControlTool {
|
|
46
|
+
static { this.toolId = "ToggleDPIForLOD"; }
|
|
46
47
|
static get minArgs() { return 0; }
|
|
47
48
|
static get maxArgs() { return 1; }
|
|
48
49
|
execute(control) {
|
|
@@ -59,5 +60,4 @@ export class ToggleDPIForLODTool extends RenderSystemDebugControlTool {
|
|
|
59
60
|
return true;
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
|
-
ToggleDPIForLODTool.toolId = "ToggleDPIForLOD";
|
|
63
63
|
//# sourceMappingURL=RenderSystemTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderSystemTools.js","sourceRoot":"","sources":["../../../src/tools/RenderSystemTools.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,qBAAqB,EAA4B,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC9H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAgB,4BAA6B,SAAQ,IAAI;IAC7C,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;QACpD,IAAI,SAAS,KAAK,OAAO;YACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;CAGF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,4BAA4B;
|
|
1
|
+
{"version":3,"file":"RenderSystemTools.js","sourceRoot":"","sources":["../../../src/tools/RenderSystemTools.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,qBAAqB,EAA4B,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC9H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAgB,4BAA6B,SAAQ,IAAI;IAC7C,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;QACpD,IAAI,SAAS,KAAK,OAAO;YACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;CAGF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,4BAA4B;aAC7C,WAAM,GAAG,kBAAkB,CAAC;IAC5C,OAAO,CAAC,OAAiC;QAC9C,OAAO,CAAC,WAAW,EAAE,CAAC;IACxB,CAAC;;AAGH;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,4BAA4B;aAC3C,WAAM,GAAG,gBAAgB,CAAC;IAC1C,OAAO,CAAC,OAAiC;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC7C,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,+BAA+B,CAAC,CAAC,CAAC;IACnM,CAAC;;AAGH;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,4BAA4B;aAC5C,WAAM,GAAG,iBAAiB,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAI3C,OAAO,CAAC,OAAiC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACpD,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;QAC7B,SAAS,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;IACnD,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC","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, NotifyMessageDetails, OutputMessagePriority, RenderSystemDebugControl, Tool } from \"@itwin/core-frontend\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** Executes some code against a RenderSystemDebugControl obtained from the IModelApp's RenderSystem.\n * @beta\n */\nexport abstract class RenderSystemDebugControlTool extends Tool {\n public override async run(_args: any[]): Promise<boolean> {\n const control = IModelApp.renderSystem.debugControl;\n if (undefined !== control)\n this.execute(control);\n\n return true;\n }\n\n protected abstract execute(_control: RenderSystemDebugControl): void;\n}\n\n/** Forces webgl context loss.\n * @beta\n */\nexport class LoseWebGLContextTool extends RenderSystemDebugControlTool {\n public static override toolId = \"LoseWebGLContext\";\n public execute(control: RenderSystemDebugControl): void {\n control.loseContext();\n }\n}\n\n/** Compiles all registered shader programs for which compilation has not already been attempted.\n * This is useful for uncovering/debugging platform-specific shader issues.\n * @beta\n */\nexport class CompileShadersTool extends RenderSystemDebugControlTool {\n public static override toolId = \"CompileShaders\";\n public execute(control: RenderSystemDebugControl): void {\n const compiled = control.compileAllShaders();\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(compiled ? OutputMessagePriority.Info : OutputMessagePriority.Error, `${compiled ? \"No\" : \"Some\"} compilation errors occurred.`));\n }\n}\n\n/** Toggles whether or not device pixel ratio should be taken into account when computing LOD for tiles and decoration graphics.\n * @see [RenderSystem.Options.dpiAwareLOD]($frontend)\n * @beta\n */\nexport class ToggleDPIForLODTool extends RenderSystemDebugControlTool {\n public static override toolId = \"ToggleDPIForLOD\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _enable?: boolean;\n\n public execute(control: RenderSystemDebugControl): void {\n const enable = this._enable ?? !control.dpiAwareLOD;\n control.dpiAwareLOD = enable;\n IModelApp.viewManager.invalidateViewportScenes();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\") {\n this._enable = enable;\n await this.run([]);\n }\n\n return true;\n }\n}\n"]}
|
|
@@ -43,23 +43,23 @@ export class RenderTargetDebugControlToggleTool extends RenderTargetDebugControl
|
|
|
43
43
|
* @beta
|
|
44
44
|
*/
|
|
45
45
|
export class ToggleReadPixelsTool extends RenderTargetDebugControlToggleTool {
|
|
46
|
+
static { this.toolId = "ToggleReadPixels"; }
|
|
46
47
|
get aspect() { return "drawForReadPixels"; }
|
|
47
48
|
}
|
|
48
|
-
ToggleReadPixelsTool.toolId = "ToggleReadPixels";
|
|
49
49
|
/** Turn on the display of the draping frustum.
|
|
50
50
|
* @beta
|
|
51
51
|
*/
|
|
52
52
|
export class ToggleDrapeFrustumTool extends RenderTargetDebugControlToggleTool {
|
|
53
|
+
static { this.toolId = "ToggleDrapeFrustum"; }
|
|
53
54
|
get aspect() { return "displayDrapeFrustum"; }
|
|
54
55
|
}
|
|
55
|
-
ToggleDrapeFrustumTool.toolId = "ToggleDrapeFrustum";
|
|
56
56
|
/** Turn on the display of the planar mask frustum.
|
|
57
57
|
* @beta
|
|
58
58
|
*/
|
|
59
59
|
export class ToggleMaskFrustumTool extends RenderTargetDebugControlToggleTool {
|
|
60
|
+
static { this.toolId = "ToggleMaskFrustum"; }
|
|
60
61
|
get aspect() { return "displayMaskFrustum"; }
|
|
61
62
|
}
|
|
62
|
-
ToggleMaskFrustumTool.toolId = "ToggleMaskFrustum";
|
|
63
63
|
/** Control whether all geometry renders, or only instanced or batched geometry.
|
|
64
64
|
* Allowed argument: "instanced", "batched", "all". Defaults to "all" if no arguments supplied.
|
|
65
65
|
* @beta
|
|
@@ -69,6 +69,7 @@ export class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool
|
|
|
69
69
|
super(...arguments);
|
|
70
70
|
this._visibility = PrimitiveVisibility.All;
|
|
71
71
|
}
|
|
72
|
+
static { this.toolId = "TogglePrimitiveVisibility"; }
|
|
72
73
|
static get minArgs() { return 0; }
|
|
73
74
|
static get maxArgs() { return 1; }
|
|
74
75
|
execute(control, vp) {
|
|
@@ -93,42 +94,41 @@ export class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool
|
|
|
93
94
|
return this.run(args);
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
|
-
TogglePrimitiveVisibilityTool.toolId = "TogglePrimitiveVisibility";
|
|
97
97
|
/** Turn on display of reality tile boundaries.
|
|
98
98
|
* @beta
|
|
99
99
|
*/
|
|
100
100
|
export class ToggleRealityTileBounds extends RenderTargetDebugControlToggleTool {
|
|
101
|
+
static { this.toolId = "ToggleRealityTileBounds"; }
|
|
101
102
|
get aspect() { return "displayRealityTileRanges"; }
|
|
102
103
|
}
|
|
103
|
-
ToggleRealityTileBounds.toolId = "ToggleRealityTileBounds";
|
|
104
104
|
/** Turn on display of reality tile preload debugging.
|
|
105
105
|
* @beta
|
|
106
106
|
*/
|
|
107
107
|
export class ToggleRealityTilePreload extends RenderTargetDebugControlToggleTool {
|
|
108
|
+
static { this.toolId = "ToggleRealityTilePreload"; }
|
|
108
109
|
get aspect() { return "displayRealityTilePreload"; }
|
|
109
110
|
}
|
|
110
|
-
ToggleRealityTilePreload.toolId = "ToggleRealityTilePreload";
|
|
111
111
|
/** Freeze loading of reality tiles.
|
|
112
112
|
* @beta
|
|
113
113
|
*/
|
|
114
114
|
export class ToggleRealityTileFreeze extends RenderTargetDebugControlToggleTool {
|
|
115
|
+
static { this.toolId = "ToggleRealityTileFreeze"; }
|
|
115
116
|
get aspect() { return "freezeRealityTiles"; }
|
|
116
117
|
}
|
|
117
|
-
ToggleRealityTileFreeze.toolId = "ToggleRealityTileFreeze";
|
|
118
118
|
/** Turn on logging of console tile selection and loading (to console).
|
|
119
119
|
* @beta
|
|
120
120
|
*/
|
|
121
121
|
export class ToggleRealityTileLogging extends RenderTargetDebugControlToggleTool {
|
|
122
|
+
static { this.toolId = "ToggleRealityTileLogging"; }
|
|
122
123
|
get aspect() { return "logRealityTiles"; }
|
|
123
124
|
}
|
|
124
|
-
ToggleRealityTileLogging.toolId = "ToggleRealityTileLogging";
|
|
125
125
|
/** Toggles support for intersecting volume classifiers.
|
|
126
126
|
* @beta
|
|
127
127
|
*/
|
|
128
128
|
export class ToggleVolClassIntersect extends RenderTargetDebugControlToggleTool {
|
|
129
|
+
static { this.toolId = "ToggleVCIntersect"; }
|
|
129
130
|
get aspect() { return "vcSupportIntersectingVolumes"; }
|
|
130
131
|
}
|
|
131
|
-
ToggleVolClassIntersect.toolId = "ToggleVCIntersect";
|
|
132
132
|
/** Set the number of antialiasing samples to use (<=1 for no antialiasing).
|
|
133
133
|
* @beta
|
|
134
134
|
*/
|
|
@@ -138,6 +138,7 @@ export class SetAASamplesTool extends RenderTargetDebugControlTool {
|
|
|
138
138
|
this._aaSamples = 1;
|
|
139
139
|
this._changeAll = false;
|
|
140
140
|
}
|
|
141
|
+
static { this.toolId = "SetAASamples"; }
|
|
141
142
|
static get minArgs() { return 1; }
|
|
142
143
|
static get maxArgs() { return 2; }
|
|
143
144
|
execute(_control, vp) {
|
|
@@ -156,12 +157,11 @@ export class SetAASamplesTool extends RenderTargetDebugControlTool {
|
|
|
156
157
|
return this.run(args);
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
|
-
SetAASamplesTool.toolId = "SetAASamples";
|
|
160
160
|
/** Toggles support for normal maps.
|
|
161
161
|
* @beta
|
|
162
162
|
*/
|
|
163
163
|
export class ToggleNormalMaps extends RenderTargetDebugControlToggleTool {
|
|
164
|
+
static { this.toolId = "ToggleNormalMaps"; }
|
|
164
165
|
get aspect() { return "displayNormalMaps"; }
|
|
165
166
|
}
|
|
166
|
-
ToggleNormalMaps.toolId = "ToggleNormalMaps";
|
|
167
167
|
//# sourceMappingURL=RenderTargetTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderTargetTools.js","sourceRoot":"","sources":["../../../src/tools/RenderTargetTools.ts"],"names":[],"mappings":"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","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, PrimitiveVisibility, RenderTargetDebugControl, ScreenViewport, Tool } from \"@itwin/core-frontend\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** Executes some code against a RenderTargetDebugControl obtained from the selected viewport.\n * @beta\n */\nexport abstract class RenderTargetDebugControlTool extends Tool {\n public override async run(_args: any[]): Promise<boolean> {\n const view = IModelApp.viewManager.selectedView;\n const control = undefined !== view ? view.target.debugControl : undefined;\n if (undefined !== control)\n this.execute(control, view!);\n\n return true;\n }\n\n protected abstract execute(_control: RenderTargetDebugControl, _vp: ScreenViewport): void;\n}\n\ntype DebugControlBoolean =\n \"displayDrapeFrustum\" | \"displayMaskFrustum\" | \"drawForReadPixels\" | \"displayRealityTileRanges\" | \"displayRealityTileRanges\" |\n \"displayRealityTilePreload\" | \"freezeRealityTiles\" | \"logRealityTiles\" | \"vcSupportIntersectingVolumes\" | \"displayNormalMaps\";\n\n/** Toggles some aspect of a RenderTargetDebugControl for the selected viewport.\n * @beta\n */\nexport abstract class RenderTargetDebugControlToggleTool extends RenderTargetDebugControlTool {\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _enable?: boolean;\n\n protected abstract get aspect(): DebugControlBoolean;\n\n protected execute(control: RenderTargetDebugControl, vp: ScreenViewport): void {\n const value = undefined !== this._enable ? this._enable : !control[this.aspect];\n control[this.aspect] = value;\n vp.invalidateRenderPlan();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\") {\n this._enable = enable;\n await this.run([]);\n }\n\n return true;\n }\n}\n\n/** Toggles between normal rendering and rendering as if drawing to an off-screen framebuffer for element locate. Useful for debugging locate issues.\n * @beta\n */\nexport class ToggleReadPixelsTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleReadPixels\";\n public get aspect(): DebugControlBoolean { return \"drawForReadPixels\"; }\n}\n\n/** Turn on the display of the draping frustum.\n * @beta\n */\nexport class ToggleDrapeFrustumTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleDrapeFrustum\";\n public get aspect(): DebugControlBoolean { return \"displayDrapeFrustum\"; }\n}\n\n/** Turn on the display of the planar mask frustum.\n * @beta\n */\nexport class ToggleMaskFrustumTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleMaskFrustum\";\n public get aspect(): DebugControlBoolean { return \"displayMaskFrustum\"; }\n}\n\n/** Control whether all geometry renders, or only instanced or batched geometry.\n * Allowed argument: \"instanced\", \"batched\", \"all\". Defaults to \"all\" if no arguments supplied.\n * @beta\n */\nexport class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool {\n public static override toolId = \"TogglePrimitiveVisibility\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _visibility = PrimitiveVisibility.All;\n\n public execute(control: RenderTargetDebugControl, vp: ScreenViewport): void {\n control.primitiveVisibility = this._visibility;\n vp.invalidateScene();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (0 < args.length) {\n switch (args[0].toLowerCase()) {\n case \"instanced\":\n this._visibility = PrimitiveVisibility.Instanced;\n break;\n case \"batched\":\n this._visibility = PrimitiveVisibility.Uninstanced;\n break;\n case \"all\":\n break;\n default:\n return true;\n }\n }\n\n return this.run(args);\n }\n}\n\n/** Turn on display of reality tile boundaries.\n * @beta\n */\nexport class ToggleRealityTileBounds extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileBounds\";\n public get aspect(): DebugControlBoolean { return \"displayRealityTileRanges\"; }\n}\n\n/** Turn on display of reality tile preload debugging.\n * @beta\n */\nexport class ToggleRealityTilePreload extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTilePreload\";\n public get aspect(): DebugControlBoolean { return \"displayRealityTilePreload\"; }\n}\n/** Freeze loading of reality tiles.\n * @beta\n */\nexport class ToggleRealityTileFreeze extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileFreeze\";\n public get aspect(): DebugControlBoolean { return \"freezeRealityTiles\"; }\n}\n\n/** Turn on logging of console tile selection and loading (to console).\n * @beta\n */\nexport class ToggleRealityTileLogging extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileLogging\";\n public get aspect(): DebugControlBoolean { return \"logRealityTiles\"; }\n}\n\n/** Toggles support for intersecting volume classifiers.\n * @beta\n */\nexport class ToggleVolClassIntersect extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleVCIntersect\";\n public get aspect(): DebugControlBoolean { return \"vcSupportIntersectingVolumes\"; }\n}\n\n/** Set the number of antialiasing samples to use (<=1 for no antialiasing).\n * @beta\n */\nexport class SetAASamplesTool extends RenderTargetDebugControlTool {\n public static override toolId = \"SetAASamples\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n private _aaSamples = 1;\n private _changeAll = false;\n\n public execute(_control: RenderTargetDebugControl, vp: ScreenViewport): void {\n if (this._changeAll)\n IModelApp.viewManager.setAntialiasingAllViews(this._aaSamples);\n else\n vp.antialiasSamples = this._aaSamples;\n }\n\n /** Runs this tool, setting the number of antialiasing samples to use (<=1 for no antialiasing).\n * @param args contains the arguments used by the tool's run method: args[0] contains the number of samples; optionally args[1] can contain the word \"all\" in order to set those number of samples for all viewports.\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (0 < args.length)\n this._aaSamples = parseInt(args[0], 10);\n this._changeAll = (1 < args.length && args[1].toLowerCase() === \"all\");\n\n return this.run(args);\n }\n}\n\n/** Toggles support for normal maps.\n * @beta\n */\nexport class ToggleNormalMaps extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleNormalMaps\";\n public get aspect(): DebugControlBoolean { return \"displayNormalMaps\"; }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RenderTargetTools.js","sourceRoot":"","sources":["../../../src/tools/RenderTargetTools.ts"],"names":[],"mappings":"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","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, PrimitiveVisibility, RenderTargetDebugControl, ScreenViewport, Tool } from \"@itwin/core-frontend\";\nimport { parseToggle } from \"./parseToggle\";\n\n/** Executes some code against a RenderTargetDebugControl obtained from the selected viewport.\n * @beta\n */\nexport abstract class RenderTargetDebugControlTool extends Tool {\n public override async run(_args: any[]): Promise<boolean> {\n const view = IModelApp.viewManager.selectedView;\n const control = undefined !== view ? view.target.debugControl : undefined;\n if (undefined !== control)\n this.execute(control, view!);\n\n return true;\n }\n\n protected abstract execute(_control: RenderTargetDebugControl, _vp: ScreenViewport): void;\n}\n\ntype DebugControlBoolean =\n \"displayDrapeFrustum\" | \"displayMaskFrustum\" | \"drawForReadPixels\" | \"displayRealityTileRanges\" | \"displayRealityTileRanges\" |\n \"displayRealityTilePreload\" | \"freezeRealityTiles\" | \"logRealityTiles\" | \"vcSupportIntersectingVolumes\" | \"displayNormalMaps\";\n\n/** Toggles some aspect of a RenderTargetDebugControl for the selected viewport.\n * @beta\n */\nexport abstract class RenderTargetDebugControlToggleTool extends RenderTargetDebugControlTool {\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _enable?: boolean;\n\n protected abstract get aspect(): DebugControlBoolean;\n\n protected execute(control: RenderTargetDebugControl, vp: ScreenViewport): void {\n const value = undefined !== this._enable ? this._enable : !control[this.aspect];\n control[this.aspect] = value;\n vp.invalidateRenderPlan();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const enable = parseToggle(args[0]);\n if (typeof enable !== \"string\") {\n this._enable = enable;\n await this.run([]);\n }\n\n return true;\n }\n}\n\n/** Toggles between normal rendering and rendering as if drawing to an off-screen framebuffer for element locate. Useful for debugging locate issues.\n * @beta\n */\nexport class ToggleReadPixelsTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleReadPixels\";\n public get aspect(): DebugControlBoolean { return \"drawForReadPixels\"; }\n}\n\n/** Turn on the display of the draping frustum.\n * @beta\n */\nexport class ToggleDrapeFrustumTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleDrapeFrustum\";\n public get aspect(): DebugControlBoolean { return \"displayDrapeFrustum\"; }\n}\n\n/** Turn on the display of the planar mask frustum.\n * @beta\n */\nexport class ToggleMaskFrustumTool extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleMaskFrustum\";\n public get aspect(): DebugControlBoolean { return \"displayMaskFrustum\"; }\n}\n\n/** Control whether all geometry renders, or only instanced or batched geometry.\n * Allowed argument: \"instanced\", \"batched\", \"all\". Defaults to \"all\" if no arguments supplied.\n * @beta\n */\nexport class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool {\n public static override toolId = \"TogglePrimitiveVisibility\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _visibility = PrimitiveVisibility.All;\n\n public execute(control: RenderTargetDebugControl, vp: ScreenViewport): void {\n control.primitiveVisibility = this._visibility;\n vp.invalidateScene();\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (0 < args.length) {\n switch (args[0].toLowerCase()) {\n case \"instanced\":\n this._visibility = PrimitiveVisibility.Instanced;\n break;\n case \"batched\":\n this._visibility = PrimitiveVisibility.Uninstanced;\n break;\n case \"all\":\n break;\n default:\n return true;\n }\n }\n\n return this.run(args);\n }\n}\n\n/** Turn on display of reality tile boundaries.\n * @beta\n */\nexport class ToggleRealityTileBounds extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileBounds\";\n public get aspect(): DebugControlBoolean { return \"displayRealityTileRanges\"; }\n}\n\n/** Turn on display of reality tile preload debugging.\n * @beta\n */\nexport class ToggleRealityTilePreload extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTilePreload\";\n public get aspect(): DebugControlBoolean { return \"displayRealityTilePreload\"; }\n}\n/** Freeze loading of reality tiles.\n * @beta\n */\nexport class ToggleRealityTileFreeze extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileFreeze\";\n public get aspect(): DebugControlBoolean { return \"freezeRealityTiles\"; }\n}\n\n/** Turn on logging of console tile selection and loading (to console).\n * @beta\n */\nexport class ToggleRealityTileLogging extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleRealityTileLogging\";\n public get aspect(): DebugControlBoolean { return \"logRealityTiles\"; }\n}\n\n/** Toggles support for intersecting volume classifiers.\n * @beta\n */\nexport class ToggleVolClassIntersect extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleVCIntersect\";\n public get aspect(): DebugControlBoolean { return \"vcSupportIntersectingVolumes\"; }\n}\n\n/** Set the number of antialiasing samples to use (<=1 for no antialiasing).\n * @beta\n */\nexport class SetAASamplesTool extends RenderTargetDebugControlTool {\n public static override toolId = \"SetAASamples\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 2; }\n\n private _aaSamples = 1;\n private _changeAll = false;\n\n public execute(_control: RenderTargetDebugControl, vp: ScreenViewport): void {\n if (this._changeAll)\n IModelApp.viewManager.setAntialiasingAllViews(this._aaSamples);\n else\n vp.antialiasSamples = this._aaSamples;\n }\n\n /** Runs this tool, setting the number of antialiasing samples to use (<=1 for no antialiasing).\n * @param args contains the arguments used by the tool's run method: args[0] contains the number of samples; optionally args[1] can contain the word \"all\" in order to set those number of samples for all viewports.\n */\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (0 < args.length)\n this._aaSamples = parseInt(args[0], 10);\n this._changeAll = (1 < args.length && args[1].toLowerCase() === \"all\");\n\n return this.run(args);\n }\n}\n\n/** Toggles support for normal maps.\n * @beta\n */\nexport class ToggleNormalMaps extends RenderTargetDebugControlToggleTool {\n public static override toolId = \"ToggleNormalMaps\";\n public get aspect(): DebugControlBoolean { return \"displayNormalMaps\"; }\n}\n"]}
|
|
@@ -10,6 +10,7 @@ import { IModelApp, MessageBoxIconType, MessageBoxType, Tool } from "@itwin/core
|
|
|
10
10
|
* @beta
|
|
11
11
|
*/
|
|
12
12
|
export class ReportWebGLCompatibilityTool extends Tool {
|
|
13
|
+
static { this.toolId = "ReportWebGLCompatibility"; }
|
|
13
14
|
async run(_args) {
|
|
14
15
|
const info = IModelApp.queryRenderCompatibility();
|
|
15
16
|
const statuses = ["OK", "Missing Optional Features", "Major Performance Caveat", "Missing Required Features", "Failed to Create Context"];
|
|
@@ -23,5 +24,4 @@ export class ReportWebGLCompatibilityTool extends Tool {
|
|
|
23
24
|
return true;
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
|
-
ReportWebGLCompatibilityTool.toolId = "ReportWebGLCompatibility";
|
|
27
27
|
//# sourceMappingURL=ReportWebGLCompatibilityTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportWebGLCompatibilityTool.js","sourceRoot":"","sources":["../../../src/tools/ReportWebGLCompatibilityTool.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE3F;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,IAAI;
|
|
1
|
+
{"version":3,"file":"ReportWebGLCompatibilityTool.js","sourceRoot":"","sources":["../../../src/tools/ReportWebGLCompatibilityTool.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE3F;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,IAAI;aAC7B,WAAM,GAAG,0BAA0B,CAAC;IAC3C,KAAK,CAAC,GAAG,CAAC,KAAY;QACpC,MAAM,IAAI,GAAG,SAAS,CAAC,wBAAwB,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,0BAA0B,CAAC,CAAC;QAC1I,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAuB;QAEnE,MAAM,GAAG,GAAG,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/C,MAAM,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACtG,OAAO,IAAI,CAAC;IACd,CAAC","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, MessageBoxIconType, MessageBoxType, Tool } from \"@itwin/core-frontend\";\n\n/** Queries the client's level of compatibility with the rendering system and outputs it to NotificationManager.\n * @beta\n */\nexport class ReportWebGLCompatibilityTool extends Tool {\n public static override toolId = \"ReportWebGLCompatibility\";\n public override async run(_args: any[]): Promise<boolean> {\n const info = IModelApp.queryRenderCompatibility();\n const statuses = [\"OK\", \"Missing Optional Features\", \"Major Performance Caveat\", \"Missing Required Features\", \"Failed to Create Context\"];\n const status = info.status < statuses.length ? statuses[info.status] : \"UNKNOWN\";\n const json = JSON.stringify(info, null, 2); // prettify JSON output\n\n const msg = `Compatibility: ${status}\\n${json}`;\n const html = document.createElement(\"div\");\n html.style.whiteSpace = \"pre-wrap\";\n html.appendChild(document.createTextNode(msg));\n\n await IModelApp.notifications.openMessageBox(MessageBoxType.Ok, html, MessageBoxIconType.Information);\n return true;\n }\n}\n"]}
|
|
@@ -40,6 +40,7 @@ export class SaveViewTool extends Tool {
|
|
|
40
40
|
}
|
|
41
41
|
static get minArgs() { return 0; }
|
|
42
42
|
static get maxArgs() { return 1; }
|
|
43
|
+
static { this.toolId = "SaveView"; }
|
|
43
44
|
parse(inputArgs) {
|
|
44
45
|
const args = parseArgs(inputArgs);
|
|
45
46
|
function getArg(name) {
|
|
@@ -73,13 +74,13 @@ export class SaveViewTool extends Tool {
|
|
|
73
74
|
return true;
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
|
-
SaveViewTool.toolId = "SaveView";
|
|
77
77
|
/** Given a string containing a JSON representation of a ViewState, applies that ViewState to the active viewport.
|
|
78
78
|
* The JSON string should be enclosed in double quotes and embedded double quote should be duplicated, example:
|
|
79
79
|
* - "{""viewDefinitionProps"":{""classFullName"":""BisCore:SpatialViewDefinition"",""id"":""0x1a""}}"
|
|
80
80
|
* @beta
|
|
81
81
|
*/
|
|
82
82
|
export class ApplyViewTool extends Tool {
|
|
83
|
+
static { this.toolId = "ApplyView"; }
|
|
83
84
|
static get maxArgs() { return 1; }
|
|
84
85
|
static get minArgs() { return 1; }
|
|
85
86
|
async run(view) {
|
|
@@ -103,11 +104,11 @@ export class ApplyViewTool extends Tool {
|
|
|
103
104
|
return true;
|
|
104
105
|
}
|
|
105
106
|
}
|
|
106
|
-
ApplyViewTool.toolId = "ApplyView";
|
|
107
107
|
/** Given the Id of a persistent ViewDefinition, applies that view to the active viewport.
|
|
108
108
|
* @beta
|
|
109
109
|
*/
|
|
110
110
|
export class ApplyViewByIdTool extends Tool {
|
|
111
|
+
static { this.toolId = "ApplyViewById"; }
|
|
111
112
|
static get minArgs() { return 1; }
|
|
112
113
|
static get maxArgs() { return 1; }
|
|
113
114
|
async parseAndRun(...args) {
|
|
@@ -125,5 +126,4 @@ export class ApplyViewByIdTool extends Tool {
|
|
|
125
126
|
return true;
|
|
126
127
|
}
|
|
127
128
|
}
|
|
128
|
-
ApplyViewByIdTool.toolId = "ApplyViewById";
|
|
129
129
|
//# sourceMappingURL=SavedViews.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SavedViews.js","sourceRoot":"","sources":["../../../src/tools/SavedViews.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EACQ,SAAS,EAAoB,oBAAoB,EAAE,qBAAqB,EAAE,IAAI,GAC5F,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAe;IAChD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAqB,EAAE,MAAwB;IACxF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAqB,KAAK,CAAC,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAiC,CAAC;IAC/I,IAAI,SAAS,KAAK,IAAI;QACpB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,SAAS,KAAK,IAAI;QACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAEnD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,IAAI;IAAtC;;QACU,WAAM,GAAG,KAAK,CAAC;IA0CzB,CAAC;IAzCQ,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,KAAc,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SavedViews.js","sourceRoot":"","sources":["../../../src/tools/SavedViews.ts"],"names":[],"mappings":"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","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 { BentleyError } from \"@itwin/core-bentley\";\nimport { ViewStateProps } from \"@itwin/core-common\";\nimport {\n EntityState, IModelApp, IModelConnection, NotifyMessageDetails, OutputMessagePriority, Tool, ViewState,\n} from \"@itwin/core-frontend\";\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\nimport { parseArgs } from \"./parseArgs\";\n\n/** Serialize a ViewState to JSON. The returned JSON can later be passed to [deserializeViewState] to reinstantiate the ViewState.\n * @beta\n */\nexport function serializeViewState(view: ViewState): ViewStateProps {\n return view.toProps();\n}\n\n/** Instantiate a ViewState serialized by [serializeViewState].\n * @beta\n */\nexport async function deserializeViewState(props: ViewStateProps, iModel: IModelConnection): Promise<ViewState> {\n const ctor = await iModel.findClassFor<typeof EntityState>(props.viewDefinitionProps.classFullName, undefined) as typeof ViewState | undefined;\n if (undefined === ctor)\n throw new Error(\"Class not found\");\n\n const view = ctor.createFromProps(props, iModel);\n if (undefined === view)\n throw new Error(\"Failed to construct ViewState\");\n\n await view.load();\n return view;\n}\n\n/** Copies a JSON representation of the active viewport's view to the clipboard.\n * * Arguments:\n * * `quote`: format the JSON so it can be parsed directly by [ApplyViewTool].\n * @beta\n */\nexport class SaveViewTool extends Tool {\n private _quote = false;\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n public static override toolId = \"SaveView\";\n\n public parse(inputArgs: string[]) {\n const args = parseArgs(inputArgs);\n function getArg(name: string): true | undefined {\n return args.getBoolean(name) ? true : undefined;\n }\n\n this._quote = true === getArg(\"q\");\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n if (this.parse(args))\n return this.run();\n else\n return false;\n }\n\n public override async run(): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, \"No viewport\"));\n return true;\n }\n\n try {\n let json = JSON.stringify(serializeViewState(vp.view));\n if (this._quote)\n json = `\"${json.replace(/\"/g, '\"\"')}\"`;\n copyStringToClipboard(json);\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, \"JSON copied to clipboard\"));\n } catch (err) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Error, BentleyError.getErrorMessage(err) || \"An unknown error occurred.\"));\n }\n\n return true;\n }\n}\n\n/** Given a string containing a JSON representation of a ViewState, applies that ViewState to the active viewport.\n * The JSON string should be enclosed in double quotes and embedded double quote should be duplicated, example:\n * - \"{\"\"viewDefinitionProps\"\":{\"\"classFullName\"\":\"\"BisCore:SpatialViewDefinition\"\",\"\"id\"\":\"\"0x1a\"\"}}\"\n * @beta\n */\nexport class ApplyViewTool extends Tool {\n public static override toolId = \"ApplyView\";\n public static override get maxArgs() { return 1; }\n public static override get minArgs() { return 1; }\n\n public override async run(view?: ViewState): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== view && undefined !== vp)\n vp.changeView(view);\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined === vp || 0 === args.length)\n return true;\n\n try {\n const json = JSON.parse(args[0]);\n\n const view = await deserializeViewState(json, vp.iModel);\n await this.run(view);\n } catch (err) {\n IModelApp.notifications.outputMessage(new NotifyMessageDetails(OutputMessagePriority.Info, BentleyError.getErrorMessage(err) || \"An unknown error occurred.\"));\n }\n\n return true;\n }\n}\n\n/** Given the Id of a persistent ViewDefinition, applies that view to the active viewport.\n * @beta\n */\nexport class ApplyViewByIdTool extends Tool {\n public static override toolId = \"ApplyViewById\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args[0]);\n }\n\n public override async run(viewId?: string): Promise<boolean> {\n if (typeof viewId !== \"string\")\n return false;\n\n const vp = IModelApp.viewManager.selectedView;\n if (!vp)\n return false;\n\n vp.iModel.views.load(viewId).then((view) => {\n vp.changeView(view);\n }).catch(() => { });\n\n return true;\n }\n}\n"]}
|
|
@@ -21,6 +21,7 @@ export class QueryScheduleScriptTool extends DisplayStyleTool {
|
|
|
21
21
|
this._countElementIds = false;
|
|
22
22
|
this._expandElementIds = false;
|
|
23
23
|
}
|
|
24
|
+
static { this.toolId = "QueryScheduleScript"; }
|
|
24
25
|
static get minArgs() { return 0; }
|
|
25
26
|
static get maxArgs() { return 3; }
|
|
26
27
|
async parse(input, vp) {
|
|
@@ -81,7 +82,6 @@ export class QueryScheduleScriptTool extends DisplayStyleTool {
|
|
|
81
82
|
return true;
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
|
-
QueryScheduleScriptTool.toolId = "QueryScheduleScript";
|
|
85
85
|
function reverseTimeline(timeline, accept) {
|
|
86
86
|
if (!timeline)
|
|
87
87
|
return;
|
|
@@ -99,6 +99,7 @@ function reverseTimeline(timeline, accept) {
|
|
|
99
99
|
* @beta
|
|
100
100
|
*/
|
|
101
101
|
export class ReverseScheduleScriptTool extends DisplayStyleTool {
|
|
102
|
+
static { this.toolId = "ReverseScheduleScript"; }
|
|
102
103
|
async execute(vp) {
|
|
103
104
|
const script = vp?.displayStyle.scheduleScript;
|
|
104
105
|
if (!script || script.modelTimelines.some((x) => x.omitsElementIds))
|
|
@@ -124,11 +125,11 @@ export class ReverseScheduleScriptTool extends DisplayStyleTool {
|
|
|
124
125
|
return true;
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
|
-
ReverseScheduleScriptTool.toolId = "ReverseScheduleScript";
|
|
128
128
|
/** A tool that changes or removes the [RenderSchedule.Script]($common) associated with the selected [Viewport]($frontend).
|
|
129
129
|
* @beta
|
|
130
130
|
*/
|
|
131
131
|
export class SetScheduleScriptTool extends DisplayStyleTool {
|
|
132
|
+
static { this.toolId = "SetScheduleScript"; }
|
|
132
133
|
static get minArgs() { return 0; }
|
|
133
134
|
static get maxArgs() { return 1; }
|
|
134
135
|
async parse(args) {
|
|
@@ -148,5 +149,4 @@ export class SetScheduleScriptTool extends DisplayStyleTool {
|
|
|
148
149
|
return true;
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
|
-
SetScheduleScriptTool.toolId = "SetScheduleScript";
|
|
152
152
|
//# sourceMappingURL=ScheduleScriptTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduleScriptTools.js","sourceRoot":"","sources":["../../../src/tools/ScheduleScriptTools.ts"],"names":[],"mappings":"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","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 { assert, CompressedId64Set } from \"@itwin/core-bentley\";\nimport {\n ElementLoadOptions, RenderSchedule, RenderTimelineProps,\n} from \"@itwin/core-common\";\nimport { Viewport } from \"@itwin/core-frontend\";\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\nimport { parseArgs } from \"./parseArgs\";\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\n\n/** Query the schedule script JSON from an element.\n * @beta\n */\nexport class QueryScheduleScriptTool extends DisplayStyleTool {\n private _sourceId?: string;\n private _action: \"copy\" | \"break\" = \"copy\";\n private _includeElementIds = false;\n private _countElementIds = false;\n private _expandElementIds = false;\n\n public static override toolId = \"QueryScheduleScript\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 3; }\n\n public async parse(input: string[], vp: Viewport) {\n const args = parseArgs(input);\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._sourceId = args.get(\"i\") ?? vp.displayStyle.scheduleScriptReference?.sourceId;\n if (!this._sourceId)\n return false;\n\n const action = args.get(\"a\") ?? \"\";\n this._action = action.length > 0 && \"b\" === action[0].toLowerCase() ? \"break\" : \"copy\";\n\n this._includeElementIds = this._countElementIds = this._expandElementIds = false;\n const ids = args.get(\"e\");\n if (ids && ids.length > 0) {\n switch (ids[0].toLowerCase()) {\n case \"i\":\n this._includeElementIds = true;\n break;\n case \"c\":\n this._includeElementIds = this._countElementIds = true;\n break;\n case \"e\":\n this._includeElementIds = this._expandElementIds = true;\n break;\n }\n }\n\n return true;\n }\n\n public async execute(vp: Viewport) {\n if (!this._sourceId || !this._action)\n return false;\n\n const opts: ElementLoadOptions = {\n displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },\n renderTimeline: { omitScriptElementIds: !this._includeElementIds },\n };\n\n let script;\n const props = await vp.iModel.elements.loadProps(this._sourceId, opts) as any;\n if (props.script)\n script = JSON.parse((props.script as RenderTimelineProps).script) as RenderSchedule.ScriptProps;\n else if (props.jsonProperties?.styles?.scheduleScript)\n script = props.jsonProperties.styles.scheduleScript as RenderSchedule.ScriptProps;\n\n if (!script)\n return false;\n\n if (this._countElementIds || this._expandElementIds) {\n for (const model of script) {\n for (const elem of model.elementTimelines) {\n const elemIds = typeof elem.elementIds === \"string\" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;\n if (this._countElementIds)\n elem.elementIds = elemIds.length as any;\n else\n elem.elementIds = elemIds;\n }\n }\n }\n\n if (this._action === \"break\")\n debugger; // eslint-disable-line no-debugger\n else\n copyStringToClipboard(JSON.stringify(script, null, 2));\n\n return true;\n }\n}\n\ninterface Timeline<Entry extends RenderSchedule.TimelineEntry> {\n readonly length: number;\n getEntry(index: number): Entry | undefined;\n}\n\nfunction reverseTimeline<Entry extends RenderSchedule.TimelineEntry>(timeline: Timeline<Entry> | undefined, accept: (time: number, entry: Entry) => void): void {\n if (!timeline)\n return;\n\n const len = timeline.length;\n for (let i = 0; i < len; i++) {\n const timeEntry = timeline.getEntry(i);\n const valueEntry = timeline.getEntry(len - i - 1);\n assert(undefined !== timeEntry);\n assert(undefined !== valueEntry);\n accept(timeEntry.time, valueEntry);\n }\n}\n\n/** A tool that modifies the [RenderSchedule.Script]($common), if any, associated with the selected [Viewport]($frontend) such that the entries in each\n * of its [RenderSchedule.ElementTimeline]($common)s are reversed.\n * @beta\n */\nexport class ReverseScheduleScriptTool extends DisplayStyleTool {\n public static override toolId = \"ReverseScheduleScript\";\n\n public override async execute(vp: Viewport): Promise<boolean> {\n const script = vp?.displayStyle.scheduleScript;\n if (!script || script.modelTimelines.some((x) => x.omitsElementIds))\n return false;\n\n const builder = new RenderSchedule.ScriptBuilder();\n for (const modelTimeline of script.modelTimelines) {\n const modelBuilder = builder.addModelTimeline(modelTimeline.modelId);\n for (const elemTimeline of modelTimeline.elementTimelines) {\n const elemBuilder = modelBuilder.addElementTimeline(elemTimeline.elementIds);\n reverseTimeline(elemTimeline.visibility, (time, entry) => elemBuilder.addVisibility(time, entry.value, entry.interpolation));\n reverseTimeline(elemTimeline.color, (time, entry) => elemBuilder.addColor(time, entry.value, entry.interpolation));\n reverseTimeline(elemTimeline.transform, (time, entry) => elemBuilder.addTransform(time, entry.value, entry.components, entry.interpolation));\n reverseTimeline(elemTimeline.cuttingPlane, (time, entry) => elemBuilder.addCuttingPlane(time, entry.value, entry.interpolation));\n }\n }\n\n const scriptProps = builder.finish();\n const newScript = RenderSchedule.Script.fromJSON(scriptProps);\n assert(undefined !== newScript);\n\n vp.displayStyle.scheduleScript = newScript;\n return true;\n }\n\n public async parse() {\n return true;\n }\n}\n\n/** A tool that changes or removes the [RenderSchedule.Script]($common) associated with the selected [Viewport]($frontend).\n * @beta\n */\nexport class SetScheduleScriptTool extends DisplayStyleTool {\n public static override toolId = \"SetScheduleScript\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _script?: RenderSchedule.Script;\n\n public override async parse(args: string[]): Promise<boolean> {\n if (args.length === 0)\n return true; // clear schedule script.\n\n try {\n this._script = RenderSchedule.Script.fromJSON(JSON.parse(args[0]));\n } catch (ex) {\n if (ex instanceof Error)\n alert(ex.toString());\n }\n\n return undefined !== this._script;\n }\n\n public override async execute(vp: Viewport): Promise<boolean> {\n vp.displayStyle.scheduleScript = this._script;\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ScheduleScriptTools.js","sourceRoot":"","sources":["../../../src/tools/ScheduleScriptTools.ts"],"names":[],"mappings":"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","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 { assert, CompressedId64Set } from \"@itwin/core-bentley\";\nimport {\n ElementLoadOptions, RenderSchedule, RenderTimelineProps,\n} from \"@itwin/core-common\";\nimport { Viewport } from \"@itwin/core-frontend\";\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\nimport { parseArgs } from \"./parseArgs\";\nimport { DisplayStyleTool } from \"./DisplayStyleTools\";\n\n/** Query the schedule script JSON from an element.\n * @beta\n */\nexport class QueryScheduleScriptTool extends DisplayStyleTool {\n private _sourceId?: string;\n private _action: \"copy\" | \"break\" = \"copy\";\n private _includeElementIds = false;\n private _countElementIds = false;\n private _expandElementIds = false;\n\n public static override toolId = \"QueryScheduleScript\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 3; }\n\n public async parse(input: string[], vp: Viewport) {\n const args = parseArgs(input);\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._sourceId = args.get(\"i\") ?? vp.displayStyle.scheduleScriptReference?.sourceId;\n if (!this._sourceId)\n return false;\n\n const action = args.get(\"a\") ?? \"\";\n this._action = action.length > 0 && \"b\" === action[0].toLowerCase() ? \"break\" : \"copy\";\n\n this._includeElementIds = this._countElementIds = this._expandElementIds = false;\n const ids = args.get(\"e\");\n if (ids && ids.length > 0) {\n switch (ids[0].toLowerCase()) {\n case \"i\":\n this._includeElementIds = true;\n break;\n case \"c\":\n this._includeElementIds = this._countElementIds = true;\n break;\n case \"e\":\n this._includeElementIds = this._expandElementIds = true;\n break;\n }\n }\n\n return true;\n }\n\n public async execute(vp: Viewport) {\n if (!this._sourceId || !this._action)\n return false;\n\n const opts: ElementLoadOptions = {\n displayStyle: { omitScheduleScriptElementIds: !this._includeElementIds },\n renderTimeline: { omitScriptElementIds: !this._includeElementIds },\n };\n\n let script;\n const props = await vp.iModel.elements.loadProps(this._sourceId, opts) as any;\n if (props.script)\n script = JSON.parse((props.script as RenderTimelineProps).script) as RenderSchedule.ScriptProps;\n else if (props.jsonProperties?.styles?.scheduleScript)\n script = props.jsonProperties.styles.scheduleScript as RenderSchedule.ScriptProps;\n\n if (!script)\n return false;\n\n if (this._countElementIds || this._expandElementIds) {\n for (const model of script) {\n for (const elem of model.elementTimelines) {\n const elemIds = typeof elem.elementIds === \"string\" ? CompressedId64Set.decompressArray(elem.elementIds) : elem.elementIds;\n if (this._countElementIds)\n elem.elementIds = elemIds.length as any;\n else\n elem.elementIds = elemIds;\n }\n }\n }\n\n if (this._action === \"break\")\n debugger; // eslint-disable-line no-debugger\n else\n copyStringToClipboard(JSON.stringify(script, null, 2));\n\n return true;\n }\n}\n\ninterface Timeline<Entry extends RenderSchedule.TimelineEntry> {\n readonly length: number;\n getEntry(index: number): Entry | undefined;\n}\n\nfunction reverseTimeline<Entry extends RenderSchedule.TimelineEntry>(timeline: Timeline<Entry> | undefined, accept: (time: number, entry: Entry) => void): void {\n if (!timeline)\n return;\n\n const len = timeline.length;\n for (let i = 0; i < len; i++) {\n const timeEntry = timeline.getEntry(i);\n const valueEntry = timeline.getEntry(len - i - 1);\n assert(undefined !== timeEntry);\n assert(undefined !== valueEntry);\n accept(timeEntry.time, valueEntry);\n }\n}\n\n/** A tool that modifies the [RenderSchedule.Script]($common), if any, associated with the selected [Viewport]($frontend) such that the entries in each\n * of its [RenderSchedule.ElementTimeline]($common)s are reversed.\n * @beta\n */\nexport class ReverseScheduleScriptTool extends DisplayStyleTool {\n public static override toolId = \"ReverseScheduleScript\";\n\n public override async execute(vp: Viewport): Promise<boolean> {\n const script = vp?.displayStyle.scheduleScript;\n if (!script || script.modelTimelines.some((x) => x.omitsElementIds))\n return false;\n\n const builder = new RenderSchedule.ScriptBuilder();\n for (const modelTimeline of script.modelTimelines) {\n const modelBuilder = builder.addModelTimeline(modelTimeline.modelId);\n for (const elemTimeline of modelTimeline.elementTimelines) {\n const elemBuilder = modelBuilder.addElementTimeline(elemTimeline.elementIds);\n reverseTimeline(elemTimeline.visibility, (time, entry) => elemBuilder.addVisibility(time, entry.value, entry.interpolation));\n reverseTimeline(elemTimeline.color, (time, entry) => elemBuilder.addColor(time, entry.value, entry.interpolation));\n reverseTimeline(elemTimeline.transform, (time, entry) => elemBuilder.addTransform(time, entry.value, entry.components, entry.interpolation));\n reverseTimeline(elemTimeline.cuttingPlane, (time, entry) => elemBuilder.addCuttingPlane(time, entry.value, entry.interpolation));\n }\n }\n\n const scriptProps = builder.finish();\n const newScript = RenderSchedule.Script.fromJSON(scriptProps);\n assert(undefined !== newScript);\n\n vp.displayStyle.scheduleScript = newScript;\n return true;\n }\n\n public async parse() {\n return true;\n }\n}\n\n/** A tool that changes or removes the [RenderSchedule.Script]($common) associated with the selected [Viewport]($frontend).\n * @beta\n */\nexport class SetScheduleScriptTool extends DisplayStyleTool {\n public static override toolId = \"SetScheduleScript\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 1; }\n\n private _script?: RenderSchedule.Script;\n\n public override async parse(args: string[]): Promise<boolean> {\n if (args.length === 0)\n return true; // clear schedule script.\n\n try {\n this._script = RenderSchedule.Script.fromJSON(JSON.parse(args[0]));\n } catch (ex) {\n if (ex instanceof Error)\n alert(ex.toString());\n }\n\n return undefined !== this._script;\n }\n\n public override async execute(vp: Viewport): Promise<boolean> {\n vp.displayStyle.scheduleScript = this._script;\n return true;\n }\n}\n"]}
|
|
@@ -14,6 +14,7 @@ import { parseArgs } from "./parseArgs";
|
|
|
14
14
|
* @beta
|
|
15
15
|
*/
|
|
16
16
|
export class SelectElementsByIdTool extends Tool {
|
|
17
|
+
static { this.toolId = "SelectElementsById"; }
|
|
17
18
|
static get minArgs() { return 1; }
|
|
18
19
|
static get maxArgs() { return undefined; }
|
|
19
20
|
async run(ids) {
|
|
@@ -26,7 +27,6 @@ export class SelectElementsByIdTool extends Tool {
|
|
|
26
27
|
return this.run(args);
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
SelectElementsByIdTool.toolId = "SelectElementsById";
|
|
30
30
|
/** A tool that outputs the Ids of the elements in the [SelectionSet]($frontend) of the [IModelConnection]($frontend) associated with the selected [Viewport]($frontend).
|
|
31
31
|
* @beta
|
|
32
32
|
*/
|
|
@@ -35,6 +35,7 @@ export class DumpSelectionSetTool extends Tool {
|
|
|
35
35
|
super(...arguments);
|
|
36
36
|
this._format = "list";
|
|
37
37
|
}
|
|
38
|
+
static { this.toolId = "DumpSelectionSet"; }
|
|
38
39
|
static get minArgs() { return 0; }
|
|
39
40
|
static get maxArgs() { return 2; }
|
|
40
41
|
async run() {
|
|
@@ -79,5 +80,4 @@ export class DumpSelectionSetTool extends Tool {
|
|
|
79
80
|
return this.run();
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
|
-
DumpSelectionSetTool.toolId = "DumpSelectionSet";
|
|
83
83
|
//# sourceMappingURL=SelectionTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionTools.js","sourceRoot":"","sources":["../../../src/tools/SelectionTools.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAW,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,MAAM,OAAO,sBAAuB,SAAQ,IAAI;
|
|
1
|
+
{"version":3,"file":"SelectionTools.js","sourceRoot":"","sources":["../../../src/tools/SelectionTools.ts"],"names":[],"mappings":"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","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 { CompressedId64Set, Id64Arg, OrderedId64Iterable } from \"@itwin/core-bentley\";\nimport { IModelApp, NotifyMessageDetails, OutputMessagePriority, Tool } from \"@itwin/core-frontend\";\nimport { copyStringToClipboard } from \"../ClipboardUtilities\";\nimport { parseArgs } from \"./parseArgs\";\n\n/** Replaces the contents of the selection set with the set of element Ids specified.\n * Element Ids are separated by whitespace.\n * @beta\n */\nexport class SelectElementsByIdTool extends Tool {\n public static override toolId = \"SelectElementsById\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return undefined; }\n\n public override async run(ids?: Id64Arg): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (undefined !== vp && undefined !== ids)\n vp.iModel.selectionSet.replace(ids);\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n return this.run(args);\n }\n}\n\n/** A tool that outputs the Ids of the elements in the [SelectionSet]($frontend) of the [IModelConnection]($frontend) associated with the selected [Viewport]($frontend).\n * @beta\n */\nexport class DumpSelectionSetTool extends Tool {\n public static override toolId = \"DumpSelectionSet\";\n public static override get minArgs() { return 0; }\n public static override get maxArgs() { return 2; }\n\n private _format: \"json\" | \"compressed\" | \"list\" = \"list\";\n private _copy?: boolean;\n\n public override async run(): Promise<boolean> {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp)\n return false;\n\n const elems = Array.from(vp.iModel.selectionSet.elements);\n OrderedId64Iterable.sortArray(elems);\n\n let output;\n switch (this._format) {\n case \"compressed\":\n output = CompressedId64Set.compressArray(elems);\n break;\n case \"json\":\n output = JSON.stringify(elems);\n break;\n default:\n output = elems.join(\" \");\n break;\n }\n\n if (this._copy)\n copyStringToClipboard(output);\n\n const brief = `Selection set dumped${this._copy ? \" to clipboard\" : \"\"}.`;\n const details = new NotifyMessageDetails(OutputMessagePriority.Info, brief, output);\n IModelApp.notifications.outputMessage(details);\n return true;\n }\n\n public override async parseAndRun(...input: string[]): Promise<boolean> {\n const args = parseArgs(input);\n this._copy = args.getBoolean(\"c\");\n const formatArg = args.get(\"f\");\n if (formatArg) {\n switch (formatArg[0].toLowerCase()) {\n case \"j\":\n this._format = \"json\";\n break;\n case \"c\":\n this._format = \"compressed\";\n break;\n }\n }\n\n return this.run();\n }\n}\n"]}
|
|
@@ -11,6 +11,7 @@ import { IModelApp, Tool } from "@itwin/core-frontend";
|
|
|
11
11
|
* @beta
|
|
12
12
|
*/
|
|
13
13
|
export class SetGpuMemoryLimitTool extends Tool {
|
|
14
|
+
static { this.toolId = "SetGpuMemoryLimit"; }
|
|
14
15
|
static get minArgs() { return 1; }
|
|
15
16
|
static get maxArgs() { return 1; }
|
|
16
17
|
async run(limit) {
|
|
@@ -26,5 +27,4 @@ export class SetGpuMemoryLimitTool extends Tool {
|
|
|
26
27
|
return this.run(limit);
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
SetGpuMemoryLimitTool.toolId = "SetGpuMemoryLimit";
|
|
30
30
|
//# sourceMappingURL=SetGpuMemoryLimitTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetGpuMemoryLimitTool.js","sourceRoot":"","sources":["../../../src/tools/SetGpuMemoryLimitTool.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAkB,SAAS,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,IAAI;
|
|
1
|
+
{"version":3,"file":"SetGpuMemoryLimitTool.js","sourceRoot":"","sources":["../../../src/tools/SetGpuMemoryLimitTool.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAkB,SAAS,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,IAAI;aACtB,WAAM,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,KAAsB;QAC9C,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,SAAS,CAAC,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC;YAC3C,SAAS,CAAC,oBAAoB,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK,CAAC,WAAW,CAAC,GAAG,IAAc;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5E,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC","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 Tools\n */\n\nimport { GpuMemoryLimit, IModelApp, Tool } from \"@itwin/core-frontend\";\n\n/** Adjust the value of [TileAdmin.gpuMemoryLimit]($frontend). This controls how much GPU memory is allowed to be consumed\n * by tile graphics before the system starts discarding the graphics for the least recently drawn tiles.\n * @beta\n */\nexport class SetGpuMemoryLimitTool extends Tool {\n public static override toolId = \"SetGpuMemoryLimit\";\n public static override get minArgs() { return 1; }\n public static override get maxArgs() { return 1; }\n\n public override async run(limit?: GpuMemoryLimit): Promise<boolean> {\n if (undefined !== limit) {\n IModelApp.tileAdmin.gpuMemoryLimit = limit;\n IModelApp.requestNextAnimation();\n }\n\n return true;\n }\n\n public override async parseAndRun(...args: string[]): Promise<boolean> {\n const maxBytes = Number.parseInt(args[0], 10);\n const limit = Number.isNaN(maxBytes) ? args[0] as GpuMemoryLimit : maxBytes;\n return this.run(limit);\n }\n}\n"]}
|