Fix e57 pose update and saving sessions created from e57 - #552
Merged
Merged
Conversation
…apsHD#551) libE57Format's Writer::NewData3D builds the intensity prototype node with value 0, which throws E57_ERROR_VALUE_OUT_OF_BOUNDS when the source file's intensityMinimum is above 0 (e.g. 1/65535 in Leica exports). Clamp the minimum to 0 before writing the header. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Scans imported from e57 only existed in memory under a made-up .laz name, so "Save session as" / "Save subsession" wrote a session pointing to missing files. Add PointCloud::laz_in_memory_only, set it on e57 import, and export those clouds as .laz next to the session on save (visible ones only for subsessions). "Save session as" also no longer prompts for poses file names: sessions without them showed an error popup plus two save dialogs whose result replaced the derived names, so cancelling saved a session with empty poses paths. Poses always go to <session>_poses.mrp / _ini_poses.mri. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Fixes #551
Update e57 poses failing (#551)
libE57Format's
Writer::NewData3Dbuilds the intensity prototype node with value0, which throwsE57_ERROR_VALUE_OUT_OF_BOUNDSwhen the source file'sintensityMinimumis above 0 (e.g.1.5259e-05= 1/65535 in Leica exports). Not Windows-specific.rewrite_e57_posesnow clamps the minimum to 0 before writing the header.Tested on the reporter's
Merge_9_11_13.e57(3 scans, ~34M points each): rewrite succeeds, the moved scan's pose changes, the other poses and all point counts are unchanged.Saving sessions created from e57 (step 2)
.lazname, so "Save session as" / "Save subsession" wrote a session pointing to missing files. NewPointCloud::laz_in_memory_onlyis set on e57 import; on save those clouds are exported as.laznext to the session (visible ones only for subsessions).<session>_poses.mrp/<session>_ini_poses.mri.Tested manually: open e57 → Save session as / Save subsession → reopen.
Note: exported
.lazkeeps points, intensity and timestamps (no e57 colors), and is downsampled if "Downsample during load" was on. Legacy app not changed.🤖 Generated with Claude Code