UNPKG

@itwin/frontend-devtools

Version:

Debug menu and supporting UI widgets

178 lines • 7.46 kB
"use strict"; /*--------------------------------------------------------------------------------------------- * 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