@itwin/frontend-devtools
Version:
Debug menu and supporting UI widgets
178 lines • 7.46 kB
JavaScript
;
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ToggleNormalMaps = exports.SetAASamplesTool = exports.ToggleVolClassIntersect = exports.ToggleRealityTileLogging = exports.ToggleRealityTileFreeze = exports.ToggleRealityTilePreload = exports.ToggleRealityTileBounds = exports.TogglePrimitiveVisibilityTool = exports.ToggleMaskFrustumTool = exports.ToggleDrapeFrustumTool = exports.ToggleReadPixelsTool = exports.RenderTargetDebugControlToggleTool = exports.RenderTargetDebugControlTool = void 0;
/** @packageDocumentation
* @module Tools
*/
const core_frontend_1 = require("@itwin/core-frontend");
const parseToggle_1 = require("./parseToggle");
/** Executes some code against a RenderTargetDebugControl obtained from the selected viewport.
* @beta
*/
class RenderTargetDebugControlTool extends core_frontend_1.Tool {
async run(_args) {
const view = core_frontend_1.IModelApp.viewManager.selectedView;
const control = undefined !== view ? view.target.debugControl : undefined;
if (undefined !== control)
this.execute(control, view);
return true;
}
}
exports.RenderTargetDebugControlTool = RenderTargetDebugControlTool;
/** Toggles some aspect of a RenderTargetDebugControl for the selected viewport.
* @beta
*/
class RenderTargetDebugControlToggleTool extends RenderTargetDebugControlTool {
static get minArgs() { return 0; }
static get maxArgs() { return 1; }
_enable;
execute(control, vp) {
const value = undefined !== this._enable ? this._enable : !control[this.aspect];
control[this.aspect] = value;
vp.invalidateRenderPlan();
}
async parseAndRun(...args) {
const enable = (0, parseToggle_1.parseToggle)(args[0]);
if (typeof enable !== "string") {
this._enable = enable;
await this.run([]);
}
return true;
}
}
exports.RenderTargetDebugControlToggleTool = RenderTargetDebugControlToggleTool;
/** Toggles between normal rendering and rendering as if drawing to an off-screen framebuffer for element locate. Useful for debugging locate issues.
* @beta
*/
class ToggleReadPixelsTool extends RenderTargetDebugControlToggleTool {
static toolId = "ToggleReadPixels";
get aspect() { return "drawForReadPixels"; }
}
exports.ToggleReadPixelsTool = ToggleReadPixelsTool;
/** Turn on the display of the draping frustum.
* @beta
*/
class ToggleDrapeFrustumTool extends RenderTargetDebugControlToggleTool {
static toolId = "ToggleDrapeFrustum";
get aspect() { return "displayDrapeFrustum"; }
}
exports.ToggleDrapeFrustumTool = ToggleDrapeFrustumTool;
/** Turn on the display of the planar mask frustum.
* @beta
*/
class ToggleMaskFrustumTool extends RenderTargetDebugControlToggleTool {
static toolId = "ToggleMaskFrustum";
get aspect() { return "displayMaskFrustum"; }
}
exports.ToggleMaskFrustumTool = ToggleMaskFrustumTool;
/** Control whether all geometry renders, or only instanced or batched geometry.
* Allowed argument: "instanced", "batched", "all". Defaults to "all" if no arguments supplied.
* @beta
*/
class TogglePrimitiveVisibilityTool extends RenderTargetDebugControlTool {
static toolId = "TogglePrimitiveVisibility";
static get minArgs() { return 0; }
static get maxArgs() { return 1; }
_visibility = core_frontend_1.PrimitiveVisibility.All;
execute(control, vp) {
control.primitiveVisibility = this._visibility;
vp.invalidateScene();
}
async parseAndRun(...args) {
if (0 < args.length) {
switch (args[0].toLowerCase()) {
case "instanced":
this._visibility = core_frontend_1.PrimitiveVisibility.Instanced;
break;
case "batched":
this._visibility = core_frontend_1.PrimitiveVisibility.Uninstanced;
break;
case "all":
break;
default:
return true;
}
}
return this.run(args);
}
}
exports.TogglePrimitiveVisibilityTool = TogglePrimitiveVisibilityTool;
/** Turn on display of reality tile boundaries.
* @beta
*/
class ToggleRealityTileBounds extends RenderTargetDebugControlToggleTool {
static toolId = "ToggleRealityTileBounds";
get aspect() { return "displayRealityTileRanges"; }
}
exports.ToggleRealityTileBounds = ToggleRealityTileBounds;
/** Turn on display of reality tile preload debugging.
* @beta
*/
class ToggleRealityTilePreload extends RenderTargetDebugControlToggleTool {
static toolId = "ToggleRealityTilePreload";
get aspect() { return "displayRealityTilePreload"; }
}
exports.ToggleRealityTilePreload = ToggleRealityTilePreload;
/** Freeze loading of reality tiles.
* @beta
*/
class ToggleRealityTileFreeze extends RenderTargetDebugControlToggleTool {
static toolId = "ToggleRealityTileFreeze";
get aspect() { return "freezeRealityTiles"; }
}
exports.ToggleRealityTileFreeze = ToggleRealityTileFreeze;
/** Turn on logging of console tile selection and loading (to console).
* @beta
*/
class ToggleRealityTileLogging extends RenderTargetDebugControlToggleTool {
static toolId = "ToggleRealityTileLogging";
get aspect() { return "logRealityTiles"; }
}
exports.ToggleRealityTileLogging = ToggleRealityTileLogging;
/** Toggles support for intersecting volume classifiers.
* @beta
*/
class ToggleVolClassIntersect extends RenderTargetDebugControlToggleTool {
static toolId = "ToggleVCIntersect";
get aspect() { return "vcSupportIntersectingVolumes"; }
}
exports.ToggleVolClassIntersect = ToggleVolClassIntersect;
/** Set the number of antialiasing samples to use (<=1 for no antialiasing).
* @beta
*/
class SetAASamplesTool extends RenderTargetDebugControlTool {
static toolId = "SetAASamples";
static get minArgs() { return 1; }
static get maxArgs() { return 2; }
_aaSamples = 1;
_changeAll = false;
execute(_control, vp) {
if (this._changeAll)
core_frontend_1.IModelApp.viewManager.setAntialiasingAllViews(this._aaSamples);
else
vp.antialiasSamples = this._aaSamples;
}
/** Runs this tool, setting the number of antialiasing samples to use (<=1 for no antialiasing).
* @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.
*/
async parseAndRun(...args) {
if (0 < args.length)
this._aaSamples = parseInt(args[0], 10);
this._changeAll = (1 < args.length && args[1].toLowerCase() === "all");
return this.run(args);
}
}
exports.SetAASamplesTool = SetAASamplesTool;
/** Toggles support for normal maps.
* @beta
*/
class ToggleNormalMaps extends RenderTargetDebugControlToggleTool {
static toolId = "ToggleNormalMaps";
get aspect() { return "displayNormalMaps"; }
}
exports.ToggleNormalMaps = ToggleNormalMaps;
//# sourceMappingURL=RenderTargetTools.js.map