From e1c7e1978075f2c4421f3ed127c4603dd23a7ca9 Mon Sep 17 00:00:00 2001 From: Haroon Qureshi Date: Sun, 28 Sep 2025 23:57:06 -0700 Subject: [PATCH] Add rendering flags to the studio UI. PiperOrigin-RevId: 812649785 Change-Id: I47c6f974b7336bdd63c088ccfd06b5835e77ebff --- src/experimental/studio/app.cc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/experimental/studio/app.cc b/src/experimental/studio/app.cc index b26e5e8b..6d6529c2 100644 --- a/src/experimental/studio/app.cc +++ b/src/experimental/studio/app.cc @@ -1519,6 +1519,8 @@ 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"); @@ -1540,7 +1542,7 @@ void App::RenderingGui() { SetCamera(ui_.camera_idx); } if (ImGui::Button("Copy Camera")) { - std::string camera_string = toolbox::CameraToString(&renderer_->GetScene()); + std::string camera_string = toolbox::CameraToString(&scene); toolbox::MaybeSaveToClipboard(camera_string); } @@ -1556,6 +1558,19 @@ void App::RenderingGui() { ImGui::SameLine(); } } + ImGui::Indent(ImGui::GetTreeNodeToLabelSpacing() / 2); + ImGui::TreePop(); + } + + if (ImGui::TreeNodeEx("Render Flags", ImGuiTreeNodeFlags_DefaultOpen)) { + ImGui::Unindent(ImGui::GetTreeNodeToLabelSpacing() / 2); + + for (int i = 0; i < mjNRNDFLAG; ++i) { + Toggle(mjRNDSTRING[i][0], scene.flags[i]); + if (i % 2 == 0 && i != mjNRNDFLAG - 1) { + ImGui::SameLine(); + } + } ImGui::Indent(ImGui::GetTreeNodeToLabelSpacing() / 2); ImGui::TreePop();