volrover3: port to cvc::gl namespace + install-deps (build against current cvcGL) - #45
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes volrover3 build against the current libcvc/cvcGL SDK. Supersedes #44 (its install-deps commit is included here).
Two parts
cvcpkg install-deps recipes/volrover3instead of a hand-maintained parallel list — the recipe is the single source of truth, and imgui rides in transitively via cvcgl.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) withcvc::gl::across 34 files, wraps the global forward-decls innamespace cvc { namespace gl { … } }, and rebases volrover3'sCameraControllerontopublic cvc::gl::SceneNode. Nousing namespace cvc::gl(collides with volrover3's own CameraController).Deliberately NOT de-forked (documented as tech debt)
volrover3::Settingsstays — it's a Python-interpreter/persistence class, not a cvcGL type.cvc::gl::Settings.hhas onlyShadowSettings/UiSettings; there is nothing to de-fork to.CameraControllerstays (rebased oncvc::gl::SceneNode).cvc::gl::CameraControllerexists but is astate_objectwith a keysym/dt input model vs volrover3'sSceneNode+ Qt-int path (~3/15 methods match) — adopting it is a VTKRenderWidget input-path rewrite, not a swap. Documented inCameraController.hand 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.