Skip to content

feat: Integrated new vneintraction code. Also, make vneinteraction by default on for the vnetestbed.#43

Open
ajeetsinghyadav wants to merge 5 commits intomainfrom
VNE_TESTBED_INTERACTION_INTEGRATION
Open

feat: Integrated new vneintraction code. Also, make vneinteraction by default on for the vnetestbed.#43
ajeetsinghyadav wants to merge 5 commits intomainfrom
VNE_TESTBED_INTERACTION_INTEGRATION

Conversation

@ajeetsinghyadav
Copy link
Copy Markdown
Member

@ajeetsinghyadav ajeetsinghyadav commented Apr 3, 2026

  • Changed the default option for VNE_WITH_VNEINTRACTION to ON, indicating that the vneinteraction dependency is now expected for this repository.
  • Updated comments in VNEPrivateDeps.cmake to clarify the behavior of the vneinteraction dependency management, ensuring better understanding of its integration and testing options.

Description

Release notes: Use a Conventional Commits–style PR title (e.g. feat: add X, fix: resolve Y, docs: update Z) so release-please can include this change in the changelog. If you squash-merge, use the PR title as the commit message.

Checklist

  • Project builds (e.g. cmake -B build and cmake --build build, or platform script).
  • Tests pass (e.g. ctest --test-dir build or script -a test).
  • Code is formatted (e.g. run clang-format as configured for this repo); CI clang-format will check.
  • Docs updated if you changed behavior or public API.

Additional notes

Summary by CodeRabbit

  • Updates
    • Navigation API updated: mode naming clarified and navigation-mode API adjusted; runtime navigation now exposes FPS and Fly only (Game mode removed).
    • Sample interaction demo updated to use the newer manipulator-based controls and updated UI labels/controls.
    • Build default changed: the interaction module is enabled by default.

- Replaced references to behavior classes with manipulator classes for improved clarity and consistency in interaction management.
- Updated navigation mode handling to utilize FreeLookMode instead of NavigateMode, enhancing the user experience.
- Adjusted UI elements and documentation to reflect these changes, ensuring accurate representation of available controls and settings.
…action

- Moved trackball projection settings UI elements to the correct conditional block based on the rotation mode, ensuring proper display and functionality.
- Enhanced clarity in the interaction settings by maintaining consistent UI behavior for trackball projection options.
- Changed the default option for VNE_WITH_VNEINTRACTION to ON, indicating that the vneinteraction dependency is now expected for this repository.
- Updated comments in VNEPrivateDeps.cmake to clarify the behavior of the vneinteraction dependency management, ensuring better understanding of its integration and testing options.
Copilot AI review requested due to automatic review settings April 3, 2026 05:03
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 3, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d9cf26b1-53f0-48a3-81cb-6a48c5628fd9

📥 Commits

Reviewing files that changed from the base of the PR and between da8a85a and e542058.

📒 Files selected for processing (1)
  • cmake/VNEPrivateDeps.cmake
🚧 Files skipped from review as they are similar to previous changes (1)
  • cmake/VNEPrivateDeps.cmake

📝 Walkthrough

Walkthrough

This PR enables the vneinteraction submodule by default, bumps its submodule revision, and migrates sample interaction code from the behavior API to the manipulator API with renamed enums and updated signatures; CMake private-deps handling for vneinteraction cache variables was adjusted.

Changes

Cohort / File(s) Summary
Build Configuration
CMakeLists.txt, cmake/VNEPrivateDeps.cmake
VNE_WITH_VNEINTRACTION default changed OFFON; VNEPrivateDeps now forces-disable several VNE_INTERACTION_* cache options when embedding and introduces VNETESTBED_VNEINTERACTION_EMBEDDED=ON; SAVE_RESTORE behavior altered to only restore BUILD_TESTS/BUILD_EXAMPLES.
Dependency Update
deps/internal/vneinteraction
Submodule revision updated (c8830bb57b...cffb98533a...).
Sample Code Migration
samples/glfw_opengl/03_test_interaction/README.md, samples/glfw_opengl/03_test_interaction/demo_test_interaction.h, samples/glfw_opengl/03_test_interaction/demo_test_interaction.cpp
Refactored samples to use manipulator API instead of behavior API; enums and types renamed (OrbitRotationModeOrbitalRotationMode, NavigateModeFreeLookMode); updated function signatures, UI plumbing, and removed "Game" from Navigation docs.
Common Layer Update
samples/glfw_opengl/common/base_scene_layer.cpp
Initialization switched rotation enum reference from OrbitRotationMode::eOrbit to OrbitalRotationMode::eOrbit.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Poem

🐰
Old knobs and behaviors hop away,
New manipulators lead the play.
Defaults flipped to light the track,
Submodule updated — hop back, pack!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.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 describes the two main changes: enabling vneinteraction by default and integrating new vneinteraction code.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch VNE_TESTBED_INTERACTION_INTEGRATION

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

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the GLFW/OpenGL interaction sample code to the newer vneinteraction API (mode/type renames and behavior→manipulator accessors) and makes vneinteraction enabled by default in the repo build.

Changes:

  • Switch sample interaction code from *Behavior() APIs / NavigateMode / OrbitRotationMode to *Manipulator() APIs / FreeLookMode / OrbitalRotationMode.
  • Default VNE_WITH_VNEINTRACTION to ON so the vneinteraction submodule is expected for typical builds.
  • Extend VNEPrivateDeps.cmake cache var wiring to keep vneinteraction tests/examples/dev options disabled by default.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
samples/glfw_opengl/common/base_scene_layer.cpp Update Inspect controller rotation mode enum name to match new interaction API.
samples/glfw_opengl/03_test_interaction/README.md Update documentation to reference FreeLookMode (needs a small consistency fix).
samples/glfw_opengl/03_test_interaction/demo_test_interaction.h Replace NavigateMode with FreeLookMode in the interaction demo interface/state.
samples/glfw_opengl/03_test_interaction/demo_test_interaction.cpp Migrate demo implementation to manipulator APIs and updated interaction types.
CMakeLists.txt Enable vneinteraction by default via VNE_WITH_VNEINTRACTION=ON.
cmake/VNEPrivateDeps.cmake Ensure vneinteraction tests/examples/dev options stay disabled unless explicitly enabled.


1. **Base scene**: Grid, axes, perspective or orthographic camera from `BaseSceneLayer`; settings can toggle grid/axes and switch projection.
2. **Controllers**: Runtime selection among Inspect (Euler orbit or trackball), Navigation (FPS / Fly / Game via `NavigateMode`), Ortho 2D (`Ortho2DController`), and Follow; per-controller ImGui tuning (trackball projection when in trackball inspect mode, pivot mode, speeds, navigation multipliers, ortho/follow options).
2. **Controllers**: Runtime selection among Inspect (Euler orbit or trackball), Navigation (FPS / Fly via `FreeLookMode`), Ortho 2D (`Ortho2DController`), and Follow; per-controller ImGui tuning (trackball projection when in trackball inspect mode, pivot mode, speeds, navigation multipliers, ortho/follow options).
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README still advertises Navigation3D as supporting “FPS/Fly/Game modes” in the intro (line 3), but the controller list and code now only reference FreeLookMode with FPS/Fly. Please update the intro text to match the current supported modes (or document how/where “Game” is selected if it still exists).

Copilot uses AI. Check for mistakes.
- Updated comments in VNEPrivateDeps.cmake to clarify the behavior of the SAVE_RESTORE mechanism for VNE_INTERACTION_* variables, addressing issues seen in CI with stale cache values.
- Set VNETESTBED_VNEINTERACTION_EMBEDDED to ON to ensure proper integration of the vneinteraction tests while keeping its gtest suite out of vnetestbed.
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.

2 participants