Skip to content

volrover3: port to cvc::gl namespace + install-deps (build against current cvcGL) - #45

Merged
transfix merged 4 commits into
masterfrom
fix/volrover3-cvcgl-namespace-port
Sep 16, 2026
Merged

transfix merged 4 commits into
masterfrom
fix/volrover3-cvcgl-namespace-port

Conversation

@transfix

Copy link
Copy Markdown
Owner

Makes volrover3 build against the current libcvc/cvcGL SDK. Supersedes #44 (its install-deps commit is included here).

Two parts

  1. Deps (from volrover3 publish: install the recipe's declared closure via install-deps #44): the publish workflow installs volrover3's declared closure via cvcpkg install-deps recipes/volrover3 instead of a hand-maintained parallel list — the recipe is the single source of truth, and imgui rides in transitively via cvcgl.
  2. Namespace port (PR #327): cvcGL moved its scene-graph classes into namespace cvc::gl, but volrover3 used them unqualified and forward-declared several globally, so it failed to compile. This qualifies the nine cvcGL node types (SceneGraph/SceneNode/GraphicsNode/VolumeNode/GeometryNode/GridNode/AxisNode/BBoxNode/NullGraphicNode) with cvc::gl:: across 34 files, wraps the global forward-decls in namespace cvc { namespace gl { … } }, and rebases volrover3's CameraController onto public cvc::gl::SceneNode. No using namespace cvc::gl (collides with volrover3's own CameraController).

Deliberately NOT de-forked (documented as tech debt)

  • volrover3::Settings stays — it's a Python-interpreter/persistence class, not a cvcGL type. cvc::gl::Settings.h has only ShadowSettings/UiSettings; there is nothing to de-fork to.
  • CameraController stays (rebased on cvc::gl::SceneNode). cvc::gl::CameraController exists but is a state_object with a keysym/dt input model vs volrover3's SceneNode + Qt-int path (~3/15 methods match) — adopting it is a VTKRenderWidget input-path rewrite, not a swap. Documented in CameraController.h and tracked as follow-up.

Platform scope

Linux builds+publishes. macOS/Windows remain blocked until the Python runtime stack (pycvc/pycvc-gl/pyside6/shiboken6) is published for those platforms — separate work.

Verifying via a dry-run dispatch on this branch.

libcvc's cvcGL moved its scene-graph classes into namespace cvc::gl (PR #327), but
volrover3 still used them unqualified and forward-declared several in the GLOBAL
namespace — so it failed to compile against the installed SDK ("expected class-name
before '{'", override/getState errors on CameraController, etc.).

Qualify the nine cvcGL node types volrover3 uses (SceneGraph, SceneNode,
GraphicsNode, VolumeNode, GeometryNode, GridNode, AxisNode, BBoxNode,
NullGraphicNode) with cvc::gl:: across 34 files, wrap the global forward-decls in
`namespace cvc { namespace gl { ... } }`, and rebase volrover3's CameraController
onto `public cvc::gl::SceneNode`. No `using namespace cvc::gl` (would collide with
volrover3's own CameraController). volrover3::Settings is unrelated (a Python/
persistence class in namespace volrover3, not a cvcGL type) and is untouched.
…deps

The publish-cvcpkg volrover3 job hand-maintained a parallel
`cvcpkg install libcvc vtk cvcgl yaml-cpp python311` list that kept drifting
from what recipes/volrover3 actually declares — cvcgl, yaml-cpp, python311 and
(most recently) imgui each had to be chased down and added here by hand after
the recipe already listed the real dependency.

Replace it with `cvcpkg install-deps recipes/volrover3`, which installs the
recipe's build + runtime deps transitively. The recipe is now the single source
of truth for what volrover3 links, and imgui rides in automatically via cvcgl
(cvcGL's config does find_dependency(imgui CONFIG) now that the overlay is
compiled into libcvcGL.a — libcvc#370), so there is no explicit imgui line to
forget. Host tools (cmake/ninja) are excluded by default; the system-deps step
still provides the top-level VolumeRover2 configure-gate packages
(Boost/FFTW/GSL/log4cplus) that are not volrover3's own dependencies.
@transfix
transfix merged commit c81cd9e into master Sep 16, 2026
4 of 6 checks passed
@transfix
transfix deleted the fix/volrover3-cvcgl-namespace-port branch September 16, 2026 01:34
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