Adding flatbuffers as new I/O for sfmData #1966
Open
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.
This pull request introduces FlatBuffers support for SfM data serialization and deserialization in AliceVision, enabling more efficient and structured storage and interchange of SfM data. The changes include adding FlatBuffers as a dependency, integrating schema compilation into the build system, implementing read/write logic for FlatBuffers files, and updating core data structures to support smart pointers for easier memory management.
FlatBuffers Integration
src/CMakeLists.txt
,src/aliceVision/sfmDataIO/CMakeLists.txt
). [1] [2] [3]SfMData FlatBuffers IO Implementation
src/aliceVision/sfmDataIO/FlatBuffersIO.cpp
,src/aliceVision/sfmDataIO/FlatBuffersIO.hpp
). [1] [2]src/aliceVision/sfmDataIO/FlatBuffersIO/CameraPose.hpp
,src/aliceVision/sfmDataIO/FlatBuffersIO/Eigen.hpp
). [1] [2]Build System and Format Support
meshroom/aliceVision/ConvertSfMFormat.py
).src/aliceVision/sfmDataIO/CMakeLists.txt
). [1] [2]Core Data Structure Improvements
sptr
(shared pointer) typedefs to core classes for easier pointer management (Distortion
,Undistortion
,ImageInfo
). [1] [2] [3]Undistortion
with new overload forsetSize
to accept a vector argument (src/aliceVision/camera/Undistortion.hpp
).View
to support getting/setting image info via shared pointers (src/aliceVision/sfmData/View.hpp
).These changes collectively enable FlatBuffers-based serialization for SfM data, improve build integration, and enhance core data structures for future extensibility.