From 3b79d3f14bd175f417b381625c0f58257966ea88 Mon Sep 17 00:00:00 2001 From: Haroon Qureshi Date: Tue, 28 Oct 2025 05:23:00 -0700 Subject: [PATCH] Set flags directly on Renderer class. This removes a dependency on mjvScene from the App class. PiperOrigin-RevId: 824983816 Change-Id: I20dd411e6359ee411f9b0b86d4442c090ba4bd5c --- src/experimental/studio/app.cc | 7 ++++--- src/experimental/toolbox/renderer.h | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/experimental/studio/app.cc b/src/experimental/studio/app.cc index 2388405b..f5262306 100644 --- a/src/experimental/studio/app.cc +++ b/src/experimental/studio/app.cc @@ -1678,8 +1678,6 @@ void App::VisualizationGui() { } void App::RenderingGui() { - mjvScene& scene = renderer_->GetScene(); - // Generate a list of camera names dynamically. std::vector camera_names; camera_names.push_back("Free"); @@ -1725,7 +1723,10 @@ void App::RenderingGui() { ImGui::Unindent(ImGui::GetTreeNodeToLabelSpacing() / 2); for (int i = 0; i < mjNRNDFLAG; ++i) { - Toggle(mjRNDSTRING[i][0], scene.flags[i]); + mjtByte flag = renderer_->GetFlag(static_cast(i)); + Toggle(mjRNDSTRING[i][0], flag); + renderer_->SetFlag(static_cast(i), flag); + if (i % 2 == 0 && i != mjNRNDFLAG - 1) { ImGui::SameLine(); } diff --git a/src/experimental/toolbox/renderer.h b/src/experimental/toolbox/renderer.h index 2891a45a..b7ee239c 100644 --- a/src/experimental/toolbox/renderer.h +++ b/src/experimental/toolbox/renderer.h @@ -55,6 +55,10 @@ class Renderer { // Saves a screenshot of the simulation state into the given file. void SaveScreenshot(const std::string& filename, int width, int height); + // Rendering flags. + mjtByte GetFlag(mjtRndFlag flag) const { return scene_.flags[flag];} + void SetFlag(mjtRndFlag flag, mjtByte value) { scene_.flags[flag] = value; } + // Returns the mjvScene used by the renderer. mjvScene& GetScene() { return scene_; }