Skip to content

Cross Section Tool for Meshes - #36

Open
alemuntoni wants to merge 84 commits into
cnr-isti-vclab:mainfrom
alemuntoni:cross_section
Open

Cross Section Tool for Meshes#36
alemuntoni wants to merge 84 commits into
cnr-isti-vclab:mainfrom
alemuntoni:cross_section

Conversation

@alemuntoni

@alemuntoni alemuntoni commented Apr 15, 2026

Copy link
Copy Markdown
Member

Introduce cross-section rendering support across the rendering pipeline, including new data structures, uniform handling, and Qt UI integration. The main changes add the ability to configure, propagate, and bind cross-section settings for meshes and lines, and expose these controls in the GUI.

Cross-section rendering support

  • Added CrossSectionSettings member and related getter/setter methods to AbstractDrawableMesh, ensuring all drawable meshes can store and update cross-section parameters.
  • Implemented propagation of cross-section settings to mesh render buffers and lines, ensuring rendering code can access and use these settings.
  • Integrated cross-section uniform handling with new CrossSectionUniforms class, which manages GPU uniform updates and binding for cross-section parameters.

Qt GUI integration

  • Added CrossSectionSettingsFrame and related signals/slots to the mesh render settings UI, enabling users to view and update cross-section settings interactively.
  • Updated signal names and propagation to distinguish between mesh render and cross-section settings changes, improving event handling in the UI.

These changes collectively enable cross-section rendering features throughout the rendering stack, from data structures and GPU uniforms to user-facing controls in the Qt GUI.

TODO:

alemuntoni added 30 commits July 1, 2026 17:29
# Conflicts:
#	vclib/render/include/vclib/bgfx/drawable/drawable_mesh_bgfx.h
# Conflicts:
#	vclib/render/include/vclib/bgfx/drawable/drawable_mesh_bgfx.h
# Conflicts:
#	vclib/render/include/vclib/bgfx/drawable/drawable_mesh_bgfx.h
# Conflicts:
#	vclib/render/include/vclib/bgfx/drawable/drawable_mesh_bgfx.h
# Conflicts:
#	vclib/render/include/vclib/qt/gui/mesh_render_settings_frame.h
#	vclib/render/include/vclib/qt/mesh_viewer.h
#	vclib/render/src/vclib/qt/gui/mesh_render_settings_frame.cpp
#	vclib/render/src/vclib/qt/mesh_viewer.cpp
# Conflicts:
#	vclib/render/include/vclib/bgfx/drawable/drawable_mesh_bgfx.h
#	vclib/render/include/vclib/render/drawable/abstract_drawable_mesh.h
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points/varying.def.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points/vs_points.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_instance/fs_points_instance.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_instance/varying.def.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_instance/vs_points_instance.sc
# Conflicts:
#	vclib/render/include/vclib/bgfx/drawable/mesh/mesh_render_buffers.h
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points/fs_points.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points/varying.def.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points/vs_points.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_id/varying.def.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_id/vs_points_id.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_instance/fs_points_instance.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_instance/varying.def.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_instance/vs_points_instance.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_instance_id/fs_points_instance_id.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_instance_id/varying.def.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/points_instance_id/vs_points_instance_id.sc
#	vclib/render/shaders/vclib/bgfx/primitives/points/fs_points_id_in.sh
# Conflicts:
#	vclib/render/include/vclib/bgfx/drawable/drawable_mesh_bgfx.h
#	vclib/render/src/vclib/bgfx/primitives/points.cpp
# Conflicts:
#	vclib/render/src/vclib/qt/gui/mesh_render_settings_frame.cpp
# Conflicts:
#	vclib/render/src/vclib/qt/gui/mesh_render_settings_frame.cpp
# Conflicts:
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/surface/fs_surface_in.sh
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/surface/vs_surface_in.sh
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/surface_id/fs_surface_id.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/surface_pbr/fs_surface_pbr.sc
#	vclib/render/shaders/vclib/bgfx/drawable/drawable_mesh/surface_pbr/vs_surface_pbr.sc
# Conflicts:
#	vclib/render/include/vclib/bgfx/drawable/drawable_mesh_bgfx.h
#	vclib/render/include/vclib/bgfx/primitives/lines.h
#	vclib/render/include/vclib/render/drawable/abstract_drawable_mesh.h
#	vclib/render/shaders/vclib/bgfx/primitives/lines/cpu_generated_lines/fs_cpu_generated_lines.sc
#	vclib/render/shaders/vclib/bgfx/primitives/lines/cpu_generated_lines/vs_cpu_generated_lines.sc
#	vclib/render/shaders/vclib/bgfx/primitives/lines/fs_lines_id_in.sh
#	vclib/render/shaders/vclib/bgfx/primitives/lines/fs_lines_in.sh
#	vclib/render/shaders/vclib/bgfx/primitives/lines/primitive_lines/vs_primitive_lines.sc
#	vclib/render/shaders/vclib/bgfx/primitives/uniforms/lines_uniforms.sh
# Conflicts:
#	vclib/render/include/vclib/bgfx/primitives/lines.h
#	vclib/render/include/vclib/bgfx/primitives/points.h
#	vclib/render/shaders/vclib/bgfx/primitives/lines/fs_lines_in.sh
#	vclib/render/shaders/vclib/bgfx/primitives/lines/lines.config
#	vclib/render/shaders/vclib/bgfx/primitives/lines/varying.def.sc
#	vclib/render/src/vclib/bgfx/primitives/lines.cpp
# Conflicts:
#	vclib/render/include/vclib/bgfx/drawable/drawable_mesh_bgfx.h
# Conflicts:
#	vclib/render/include/vclib/bgfx/drawable/drawable_mesh_bgfx.h
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