Skip to content

mm-viewer: add CLI flags to load overlaid 3D scenes for visualization#28

Merged
jlblancoc merged 1 commit intodevelopfrom
feat/mm-viewer-3d-layers
Jan 22, 2026
Merged

mm-viewer: add CLI flags to load overlaid 3D scenes for visualization#28
jlblancoc merged 1 commit intodevelopfrom
feat/mm-viewer-3d-layers

Conversation

@jlblancoc
Copy link
Copy Markdown
Member

@jlblancoc jlblancoc commented Jan 22, 2026

Summary by CodeRabbit

  • New Features

    • Added command-line option to load and display additional 3D scene files at application startup.
    • Added per-file UI toggles to independently control the visibility of each loaded 3D scene.
  • Documentation

    • Added documentation for mm-viewer command-line options and usage.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 22, 2026

📝 Walkthrough

Walkthrough

The pull request adds functionality to load and visualize additional 3D scene files within the mm-viewer application. A new CLI option enables specifying extra scene files at startup, which are parsed and displayed as toggleable visualization layers in the GUI.

Changes

Cohort / File(s) Summary
Core Feature Implementation
apps/mm-viewer/main.cpp
Added CLI argument arg_add3dScenes to accept external 3D scene paths; introduced ExtraVizLayer struct and extraVizLayers collection to track per-file visualization objects; created glVizObjects rendering container; extended GUI initialization to generate per-file visibility checkboxes; updated 3D view rebuild pipeline to load scene files, extract viewport objects, and manage layer aggregation; added scene loading logic in startup flow.
Documentation Update
docs/source/app_mm-viewer.rst
Added bash code-block documenting mm-viewer usage syntax, command-line flags, and argument descriptions for the new --add-3d-scene option and existing features.

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant CLI as CLI Parser
    participant App as Application
    participant FileLoader as Scene Loader
    participant GUI as GUI Layer
    participant Renderer as 3D Renderer

    User->>CLI: Execute with --add-3d-scene <scene_path>
    CLI->>App: Parse arg_add3dScenes
    App->>FileLoader: Load 3D scene file for each path
    FileLoader->>FileLoader: Extract viewport objects
    FileLoader->>App: Return viewport objects
    App->>App: Create ExtraVizLayer structure
    App->>App: Store in extraVizLayers collection
    App->>GUI: Create per-file visibility checkbox
    GUI->>GUI: Register checkbox state listener
    User->>GUI: Toggle checkbox for layer visibility
    GUI->>App: Trigger visibility change
    App->>Renderer: Rebuild 3D view
    Renderer->>Renderer: Aggregate glVizObjects from extraVizLayers
    Renderer->>User: Display/hide layer in 3D scene
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

The main.cpp changes introduce new data structures, CLI argument handling, and visualization management logic spread across startup, GUI, and rendering flows. The documentation addition is trivial. Overall complexity stems from integrating multiple interacting components rather than dense algorithmic logic.

Poem

🐰 A script to scene-load with newfound cheer,
Extra layers hopping in, layer by layer dear,
Checkboxes click to toggle the view,
Three-D vistas dance, both old and new! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and specifically describes the main change: adding CLI flags to load overlaid 3D scenes in mm-viewer for visualization purposes.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@jlblancoc jlblancoc force-pushed the feat/mm-viewer-3d-layers branch from 0234495 to 95ef8ee Compare January 22, 2026 19:11
@codecov
Copy link
Copy Markdown

codecov Bot commented Jan 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.19%. Comparing base (47fde83) to head (95ef8ee).
⚠️ Report is 2 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff            @@
##           develop      #28   +/-   ##
========================================
  Coverage    66.19%   66.19%           
========================================
  Files          165      165           
  Lines         8100     8100           
  Branches       879      879           
========================================
  Hits          5362     5362           
  Misses        2738     2738           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jlblancoc jlblancoc merged commit 8c3f819 into develop Jan 22, 2026
15 checks passed
@jlblancoc jlblancoc deleted the feat/mm-viewer-3d-layers branch January 22, 2026 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant