Skip to content

Large pointclouds, quality of live to step 3. - #540

Merged
michalpelka merged 2 commits into
mainfrom
mp/fix_large_pointclouds
Sep 24, 2026
Merged

michalpelka merged 2 commits into
mainfrom
mp/fix_large_pointclouds

Conversation

@michalpelka

Copy link
Copy Markdown
Contributor

No description provided.

michalpelka and others added 2 commits September 24, 2026 14:00
- Manual loop closure: add a Delete button to each edge row, replacing
  "remove active edge". Deletion happens after the list is drawn and
  keeps index_active_edge pointing at the same edge.
- Entering loop closure mode drops the session gizmo selection and
  disables the session Gizmo radio buttons, since session gizmos are not
  drawn there and would block the edge gizmo.
- Bind Ctrl+M to toggle Manual Loop Closure (the menu wrongly showed
  Ctrl+L, which is Load sessions) and list it in the shortcuts table.
- Add File > "Save session poses". save_results() now reports poses
  files that failed to write instead of ignoring the result.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
rlLoadVertexBuffer() takes the byte size as int. TrajectoryViewer stores
28 bytes per point, so a 105M-point cloud (2.95 GB) overflowed it, the
buffer got no storage and glDrawArrays segfaulted. ScanRenderer (steps 2
and 3) and the camera_lidar_calibration Renderer have the same limit at
16 bytes per point (~134M points).

Add RaylibWidgets/PointBufferParts.h, which uploads interleaved vertices
as VAO/VBO parts of at most 16M points and draws them one glDrawArrays
per part, and use it in all three renderers. The part struct lives in
its own GL-free header so raylib_render.hpp and Renderer.h don't pull in
glad.h. gl_VertexID-based sparse drawing now restarts at each part.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@michalpelka
michalpelka merged commit 24130c9 into main Sep 24, 2026
7 checks passed
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