Add Camera Guide viewport toggle (stageView.py DrawCameraGuides port)
Adds a per-viewport "Camera Guide" toggle (default off) that draws a full frustum wireframe box (near quad + far quad + 4 connecting edges) in oracle orange for every non-active UsdGeomCamera prim, matching usdview's displayCameraOracles behaviour. Uses GfFrustum::ComputeCorners() and the same 24-index line layout as DrawCameraGuides. Toggle exposed in the right-click context menu and gear popup; persists to INI as ShowCameraGuide. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -93,6 +93,7 @@ ViewportTileSettings ViewportTile::GetSettings() const
|
||||
ViewportTileSettings s;
|
||||
s.renderDelegate = m_renderer.GetCurrentRendererId().GetString();
|
||||
s.showGrid = m_renderer.ShowGrid();
|
||||
s.showCameraGuide = m_renderer.ShowCameraGuide();
|
||||
s.aaEnabled = m_renderer.GetAAEnabled();
|
||||
const pxr::GfVec3f& bg = m_renderer.GetBackgroundColor();
|
||||
s.bgColorR = bg[0]; s.bgColorG = bg[1]; s.bgColorB = bg[2];
|
||||
@@ -108,6 +109,7 @@ void ViewportTile::ApplySettings(const ViewportTileSettings& s)
|
||||
if (!s.renderDelegate.empty())
|
||||
m_renderer.SetRendererPlugin(pxr::TfToken(s.renderDelegate));
|
||||
m_renderer.SetShowGrid(s.showGrid);
|
||||
m_renderer.SetShowCameraGuide(s.showCameraGuide);
|
||||
m_renderer.SetAAEnabled(s.aaEnabled);
|
||||
m_renderer.SetBackgroundColor(pxr::GfVec3f(s.bgColorR, s.bgColorG, s.bgColorB));
|
||||
m_renderer.SetBBoxMode(static_cast<BBoxMode>(s.bboxMode));
|
||||
@@ -738,6 +740,10 @@ void ViewportTile::RenderContextMenu(int tileIndex)
|
||||
if (ImGui::MenuItem("Show Grid", nullptr, &showGrid))
|
||||
m_renderer.SetShowGrid(showGrid);
|
||||
|
||||
bool showGuide = m_renderer.ShowCameraGuide();
|
||||
if (ImGui::MenuItem("Camera Guide", nullptr, &showGuide))
|
||||
m_renderer.SetShowCameraGuide(showGuide);
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
bool ambientOnly = m_renderer.GetAmbientLightOnly();
|
||||
@@ -1024,6 +1030,10 @@ void ViewportTile::RenderCompactToolbar(int tileIndex)
|
||||
if (ImGui::MenuItem("Show Grid", nullptr, grid))
|
||||
m_renderer.SetShowGrid(!grid);
|
||||
|
||||
bool guide = m_renderer.ShowCameraGuide();
|
||||
if (ImGui::MenuItem("Camera Guide", nullptr, guide))
|
||||
m_renderer.SetShowCameraGuide(!guide);
|
||||
|
||||
bool aaItem = m_renderer.GetAAEnabled();
|
||||
if (ImGui::MenuItem("Anti-Aliasing", nullptr, aaItem))
|
||||
m_renderer.SetAAEnabled(!aaItem);
|
||||
|
||||
Reference in New Issue
Block a user