Summary of Changes
Hello @ahojnnes, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request undertakes a significant refactoring effort to untangle a circular dependency between the feature and scene libraries. By creating a dedicated colmap_scene_types library for common scene data structures and relocating pairing and matcher_cache to the controllers module, the codebase's modularity and maintainability are greatly enhanced. The changes ensure a cleaner, more logical dependency flow, all while preserving the current operational behavior of the system.
Highlights
- New Library Introduction: A new library,
colmap_scene_types, has been introduced to house fundamental scene-related data structures, such ascamera,frame,image,point2d, andtwo_view_geometry. - Component Relocation: The
pairingandmatcher_cachefunctionalities, along with their associated test files, have been moved from thefeaturelibrary to thecontrollerslibrary. - Dependency Refactoring: Circular dependencies between the
featureandscenelibraries have been resolved by reorganizing header includes and updating CMake build configurations to reflect the new library structure. - No Functional Change: These extensive structural and organizational changes have been implemented without altering the existing functionality of the application.
- CMakeLists.txt
- Added
colmap_scene_typesto the list of exported libraries.
- Added
- src/colmap/controllers/CMakeLists.txt
- Added
matcher_cache.h,matcher_cache.cc,pairing.h, andpairing.ccto thecolmap_controllerslibrary sources. - Added
colmap_retrievalandfaissto the public link libraries forcolmap_controllers. - Added a new test target for
pairing_test.cc.
- Added
- src/colmap/controllers/feature_matching.h
- Updated include path for
pairing.hto reflect its new location.
- Updated include path for
- src/colmap/controllers/matcher_cache.cc
- Added implementation for the
FeatureMatcherCacheclass.
- Added implementation for the
- src/colmap/controllers/matcher_cache.h
- Added declaration for the
FeatureMatcherCacheclass.
- Added declaration for the
- src/colmap/controllers/option_manager.cc
- Updated include path for
pairing.hto reflect its new location.
- Updated include path for
- src/colmap/controllers/pairing.cc
- Renamed from
src/colmap/feature/pairing.ccand updated its self-include path.
- Renamed from
- src/colmap/controllers/pairing.h
- Renamed from
src/colmap/feature/pairing.hand updated its includes to usecolmap/controllers/matcher_cache.h.
- Renamed from
- src/colmap/controllers/pairing_test.cc
- Renamed from
src/colmap/feature/pairing_test.ccand updated its include path.
- Renamed from
- src/colmap/feature/CMakeLists.txt
- Removed
pairing.h,pairing.cc, andpairing_test.ccfrom thecolmap_featurelibrary sources and tests. - Removed
colmap_retrievalandcolmap_scenefromPUBLIC_LINK_LIBS. - Added
colmap_scene_typestoPUBLIC_LINK_LIBS.
- Removed
- src/colmap/feature/matcher.cc
- Removed the implementation of
FeatureMatcherCache.
- Removed the implementation of
- src/colmap/feature/matcher.h
- Removed the declaration of
FeatureMatcherCacheand associated includes.
- Removed the declaration of
- src/colmap/feature/sift.h
- Added includes for
colmap/feature/index.handcolmap/util/cache.h.
- Added includes for
- src/colmap/scene/CMakeLists.txt
- Created a new library
colmap_scene_typesand movedcamera.h/cc,frame.h/cc,image.h/cc,point2d.h/cc, andtwo_view_geometry.h/ccto its sources. - Configured
colmap_scene_typeswith necessary public link libraries. - Removed the moved files from the
colmap_scenelibrary sources. - Updated
colmap_sceneto publicly linkcolmap_scene_typesand removed direct links to its former dependencies.
- Created a new library
- src/pycolmap/pipeline/match_features.cc
- Updated include path for
pairing.hto reflect its new location.
- Updated include path for
- No human activity (comments, reviews, etc.) has been recorded for this pull request yet.
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in pull request comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with ๐ and ๐ on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. โฉ