Add FlannIndex abstract interface and implement NanoFlannIndex subclass (#1744)

* Add FlannIndex abstract interface and implement NanoFlannIndex subclass

* Refactored: made NanoFlann a new NN type instead of inheriting FlannIndex. Added tests. Vendoring nanoflann.h directly in the repo. RegistrationVis now use NANOFLANN_INDEX_KDTREE_SINGLE (instead of FLANN_INDEX_KDTREE_SINGLE) flann index for 2d points matching.

* cleanup comments, added FlannIndex doxygen

* Fixing windows tests

* updating flaky test

* Simplified interface, added flann kdtree single approach selectable by parameters.

* RegVis: symmetry of nanoflann for two branches of guess feature matching

* cv::BFMatcher baseline

* Small cmake optimization FLANN_KDTREE_MEM_OPT only defined for FlannIndex

* Refactored where FLANN_KDTREE_MEM_OPT is defined

* fixed file name already exist

* cleanup

* fixup build

---------

Co-authored-by: matlabbe <[email protected]>
This commit is contained in:
Muhammad
2026-08-16 09:51:39 -07:00
committed by GitHub
co-authored by matlabbe
parent df52523a0c
commit f647014f54
28 changed files with 7537 additions and 179 deletions
@@ -35,4 +35,11 @@
#endif
#define FLANN_VERSION_ "1.8.4"
// Generated by CMake from config.h.in, as upstream flann does. Carrying the
// option here rather than in a compile definition keeps a toggle of it from
// rebuilding the whole library: a definition given to the compiler lands in the
// target's flags, which every object file depends on, while this header is only
// included where rtflann is.
#cmakedefine FLANN_KDTREE_MEM_OPT
#endif /* RTABMAP_FLANN_CONFIG_H_ */
+1 -1
View File
@@ -29,7 +29,7 @@
#ifndef RTABMAP_FLANN_DEFINES_H_
#define RTABMAP_FLANN_DEFINES_H_
#include "config.h"
#include "rtflann/config.h" // generated by CMake
#ifdef FLANN_EXPORT
#undef FLANN_EXPORT