fix: restore mandatory quiver CI integration - #13
Merged
Conversation
…te discovery Replace MeshData's internal data buffers with a shared_ptr<quiver::MeshBase>. All attributes from the mesh are now enumerable via DiscoveredAttribute and assignable to visualization roles (positions, normals, scalar field) through RoleBinding with automatic double-to-float conversion via CachedAttribute. - MeshData holds shared_ptr<MeshBase>, discovers all attributes on set_mesh() - RoleBinding provides raw_data() + component_count for GPU upload - OBJ and MSH loading goes through quiver::io::read_mesh() pipeline - VulkanMeshDrawable syncs from role bindings instead of raw arrays - MeshBuffers supports variable component counts (1D/2D/3D positions) - MeshPipelineManager generates correct VkFormat for component count - ImGui mesh_controls_panel shows attribute selector combos per role - Qt mesh_controls_widget has full attribute binding UI with filtering - BVHData creates quiver::Mesh<1> edge meshes from role bindings - All tests rewritten with quiver::Mesh<2> objects (65/65 passing)
…te discovery Replace MeshData's internal data buffers with a shared_ptr<quiver::MeshBase>. All attributes from the mesh are now enumerable via DiscoveredAttribute and assignable to visualization roles (positions, normals, scalar field) through RoleBinding with automatic double-to-float conversion via CachedAttribute. - MeshData holds shared_ptr<MeshBase>, discovers all attributes on set_mesh() - RoleBinding provides raw_data() + component_count for GPU upload - OBJ and MSH loading goes through quiver::io::read_mesh() pipeline - VulkanMeshDrawable syncs from role bindings instead of raw arrays - MeshBuffers supports variable component counts (1D/2D/3D positions) - MeshPipelineManager generates correct VkFormat for component count - ImGui mesh_controls_panel shows attribute selector combos per role - Qt mesh_controls_widget has full attribute binding UI with filtering - BVHData creates quiver::Mesh<1> edge meshes from role bindings - All tests rewritten with quiver::Mesh<2> objects (65/65 passing)
Add VulkanTexture (RAII GPU texture with full/partial upload), ImageData (CPU pixel buffer scene graph feature with dirty tracking), ImagePipelineManager (descriptor sets, UBOs, fullscreen triangle pipeline), VulkanImageDrawable (per-frame sync from ImageData to GPU texture), ImageScene (orthographic 2D viewer with pan/zoom/fit-to-window), image shaders (fullscreen triangle + HDR tone mapping fragment shader), ImGui image controls panel (exposure/gamma/channel/zoom/pan), PPM I/O (P6 binary reader/writer, RGB->RGBA expansion), image_viewer_glfw standalone tool (CLI11, scroll-zoom, middle-drag pan), and unit tests for ImageData and PPM I/O (15 new test cases). This lays the foundation for ART ray tracer live preview and the MultiscreenManga comic reader port.
- BoundingBox<T, Dim> now backed by quiver's AABB<T, Dim> (T first, no default), matching quiver's feature/kdop-scalar-type branch - Add per-axis accessors: min(axis), max(axis), range(axis) - Add convenience names: width(), height(), depth() - Add 4-arg constructor (x_min, y_min, x_max, y_max) for Dim==2 - Replace ImageData::DirtyRegion struct with BoundingBox<uint32_t, 2> - Update BVHData to use BVH<double, 3, K> (explicit scalar type) - Unify bounding_box.hpp (remove #if BALSA_HAS_QUIVER split) - Point quiver.wrap to feature/kdop-scalar-type (revert after merge)
…' into feature/image-infrastructure # Conflicts: # visualization/src/scene_graph/BVHData.cpp # visualization/tests/test_scene_graph.cpp
feat: add image/texture infrastructure for visualization
…' into fix/ci-integration # Conflicts: # geometry/include/balsa/geometry/BoundingBox.hpp # geometry/include/balsa/geometry/bounding_box.hpp # visualization/src/scene_graph/BVHData.cpp
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.
Summary
Verification