Changelog for package nanoflann

1.10.1 (2026-06-09)

  • Merge pull request #303 from jlblancoc/refactor/tests-smaller-files refactor: unit tests into smaller files

  • refactor: unit tests into smaller files

  • CHANGELOG: ported to rst format for ROS tools compatibility

  • doc: update outdated COPYING dates

  • docs: add readme build badges

  • docs: add ROS build farm badge table to README

  • Add ROS package.xml and integrate BUILD_TESTING for ROS build farm - package.xml: plain cmake build_type, BSD-2-Clause, libgtest-dev test_depend - CMakeLists.txt: include(CTest), use BUILD_TESTING guard, auto-select system GTest when ROS_VERSION env is set - tests/CMakeLists.txt: remove redundant project(), rename test target to nanoflann_unit_tests to avoid collisions in workspaces

  • Contributors: Jose Luis Blanco-Claraco

1.10.0 (2026-06-06)

  • New: Incremental self-balancing dynamic k-d tree index (KDTreeSingleIndexIncrementalAdaptor), both single-threaded and multithreaded variants (#302).

  • Performance: Hoist point-length computation out of search inner loops (#301).

  • Refactor: Deduplicate tree builders, harden Eigen adaptor ownership, centralize DIM dispatch with if constexpr (#297, #299, #300).

  • Fix: SO2_Adaptor now returns absolute angular distance instead of signed (#298).

  • Fix: saveIndex/loadIndex now include a magic+version+type-size header and throw on mismatch (#295).

  • Fix: KDTreeSingleIndexDynamicAdaptor_ saveIndex/loadIndex infinite recursion (#290).

  • Fix: loadIndex reading past EOF for empty indices (#287).

  • Fix: duplicate-entry growth on removePoint/addPoints re-add cycles (#285).

  • Fix: divideTree assertion failure with dynamic adaptor removePoint/addPoints (#283).

  • CI: Added Windows (MSVC + clang-cl) and macOS (14+15) workflows; extended tested C++ standards.

  • Docs: Consolidated macro list and documented threading guarantees.

  • Contributors: Jose Luis Blanco-Claraco

1.8.0 (2025-11-16)

  • Performance: Minor performance optimization changes (#271).

  • New API: findWithinBox() (#272).

  • Contributors: Jose Luis Blanco-Claraco

1.7.1 (2025-03-15)

  • Fix: ResultSets::worstDist(): fix a potential access to negative index in array (did not happen in practice, but static analysis tools correctly detected this possibility).

  • Contributors: Jose Luis Blanco-Claraco

1.7.0 (2025-02-03)

  • API: ResultSets::worstDist(): clarified the meaning of its return value; now returns the actual worst distance in the found set (only if set is full).

  • Contributors: Jose Luis Blanco-Claraco

1.6.3 (2025-01-07)

  • cmake_required_version bumped to 3.10.

  • clang-format version bumped to 14.

  • Contributors: Jose Luis Blanco-Claraco

1.6.2 (2024-11-04)

  • Fix: middleSplit_ for same points (#250).

  • Fix: Build warnings.

  • Contributors: Jose Luis Blanco-Claraco, yzabalotski

1.6.1 (2024-08-24)

  • Add conan install instructions.

  • Add multiple thread kdtree build support for KDTreeEigenMatrixAdaptor (#246).

  • Contributors: Jose Luis Blanco-Claraco

1.6.0 (2024-07-11)

  • Fix: nanoflann::SearchParameters::sorted was ignored for RadiusResultSet.

  • API: ResultSet classes now must implement a sort() method.

  • API: Added type IndexType to nanoflann::KDTreeBaseClass.

  • Contributors: Jose Luis Blanco-Claraco

1.5.5 (2024-03-12)

  • Performance: Potentially more efficient scheduling of multi-thread index building (#236).

  • Bump minimum required cmake version to 3.5 (#230).

  • Contributors: Jose Luis Blanco-Claraco

1.5.4 (2024-01-10)

  • Fix outdated NANOFLANN_VERSION macro in header file.

  • Fix pool-allocator alignment problems.

  • Add NANOFLANN_USE_SYSTEM_GTEST option.

  • Look for Threads dependency in CMake config script.

  • Contributors: Jose Luis Blanco-Claraco

1.5.3 (2023-12-07)

  • Performance: Save one redundant call to computeMinMax() in middleSplit_ (#220). Saves up to 20% build time in benchmarks with small (thousands) point clouds.

  • Contributors: Jose Luis Blanco-Claraco, qq422216549

1.5.2 (2023-11-29)

  • Performance: Improve RKNN search efficiency (#219).

  • Contributors: Jose Luis Blanco-Claraco, kya8

1.5.1 (2023-11-27)

  • New API: rknnSearch() for knn searches with a maximum radius.

  • Fix: Add missing SearchParameters argument to KDTreeSingleIndexDynamicAdaptor_::knnSearch() (#213).

  • Fix: Add missing method KNNResultSet::empty() for consistency with other result sets.

  • Add GUI examples for each search type: nanoflann_gui_example_R3_knn, nanoflann_gui_example_R3_radius, nanoflann_gui_example_R3_rknn.

  • Contributors: Jose Luis Blanco-Claraco, ManosPapadakis95

1.5.0 (2023-06-16)

  • API: Users of radius search should update result placeholder type from std::vector<std::pair<IndexType, DistanceType>> to std::vector<nanoflann::ResultItem<IndexType, DistanceType>>.

  • API: More concise auxiliary type name: array_or_vector_selector -> array_or_vector.

  • API: Remove obsolete parameter nChecks_IGNORED; SearchParams renamed to SearchParameters.

  • API: Added method RadiusResultSet::empty().

  • API: Template argument rename: AccesorType => IndexType.

  • API: Added concurrent tree building support via KDTreeSingleIndexAdaptorParams::n_thread_build.

  • Macros to avoid conflicts with X11 symbols.

  • Inline auxiliary example function to support inclusion in multiple translation units.

  • Move all benchmarking code and scripts to a separate repository.

  • Fix: Potential uninitialized variable GCC warning.

  • Docs: Clarified that L2 distances are squared distances.

  • Add GUI examples: nanoflann_gui_example_R3 and nanoflann_gui_example_bearings.

  • Fix: Avoid segfault when saving an empty index.

  • Contributors: Jose Luis Blanco-Claraco

1.4.3 (2022-07-24)

  • Add flag SkipInitialBuildIndex to skip tree building when the index will be loaded from a file (#171).

  • Mark all constructors explicit to avoid unintended creation of temporary objects.

  • Fix: Potential index out of bounds in KDTreeSingleIndexDynamicAdaptor (#173).

  • Contributors: Jose Luis Blanco-Claraco

1.4.2 (2022-01-11)

  • Install pkg-config .pc file under lib directory.

  • Integrate AppVeyor CI.

  • Contributors: Jose Luis Blanco-Claraco

1.4.1 (2022-01-06)

  • Fix incorrect install directory for cmake target & config files.

  • Do not install example binaries with make install.

  • Provide working examples for cmake and pkgconfig under examples/example_* directories.

  • Contributors: Jose Luis Blanco-Claraco

1.4.0 (2022-01-02)

  • API: nanoflann::KDTreeSingleIndexAdaptor() ctor now forwards additional parameters to the metric class, enabling custom dynamic metrics.

  • Add and apply a .clang-format file.

  • Examples: Clean up and code modernization.

  • CMake variables now prefixed with NANOFLANN_ for easier Git submodule integration.

  • Fix: IndexType for non-integral types (#154).

  • API: save/load upgraded from C FILE* to C++ file streams (#157).

  • Contributors: Jose Luis Blanco-Claraco, Dominic Kempf

1.3.2 (2020-11-05)

  • Add optional argument for Eigen matrix layout.

  • Throw exception on malloc failure (#126).

  • Respect GNUInstallDirs in CMake install rules (#131).

  • Contributors: Jose Luis Blanco-Claraco

1.3.1 (2019-10-11)

  • Fix bug in KDTreeSingleIndexDynamicAdaptor.

  • Fix build in XCode.

  • Simplify CMakeLists for Eigen example (requires Eigen3Config.cmake now).

  • Avoid setting cmake global executable build path.

  • Contributors: Jose Luis Blanco-Claraco

1.3.0 (2018-08-28)

  • Add make install instructions for Linux and Windows.

  • Fix all MSVC conversion warnings.

  • Avoid need for _USE_MATH_DEFINES in MSVC.

  • Eigen::Matrix datasets: now uses std::cref() to store a reference to matrix.

  • GSOC2017: Support for dynamic datasets.

  • GSOC2017: Support for non-Euclidean spaces: SO(2), SO(3).

  • Contributors: Jose Luis Blanco-Claraco, Pranjal Kumar Rai

1.2.3 (2016-12-20)

  • Fix: Split plane now correctly chooses the dimension with the largest span, leading to more optimal trees.

  • Contributors: Jose Luis Blanco-Claraco

1.2.2 (2016-11-10)

  • knnSearch() now also returns the number of valid points found.

  • Contributors: Jose Luis Blanco-Claraco

1.2.1 (2016-06-01)

  • Fix potential compiler warnings if IndexType is signed.

  • New unit tests comparing results against brute-force search.

  • Contributors: Jose Luis Blanco-Claraco

1.2.0 (2016-05-05)

  • Fix: Many class constructors were accepting const ref arguments but storing const values.

  • Contributors: Jose Luis Blanco-Claraco

1.1.9 (2015-10-02)

  • New: KDTreeSingleIndexAdaptor::radiusSearchCustomCallback().

  • Better documentation in class headers.

  • Cleanup of unused code.

  • Remove redundant parameter KDTreeSingleIndexAdaptorParams::dim.

  • Contributors: Jose Luis Blanco-Claraco

1.1.8 (2014-05-02)

  • Create hidden constructors in nanoflann class to disallow unintentional copies that corrupt internal pointers.

  • Fix crash when building an index from an empty dataset.

  • Contributors: Jose Luis Blanco-Claraco

1.1.7 (2013-08-24)

  • Two internal containers now automatically use fixed-size arrays when problem dimension is known at compile time, improving efficiency (KDTreeSingleIndexAdaptor::BoundingBox, KDTreeSingleIndexAdaptor::distance_vector_t).

  • Fix compilation with GCC 4.8 and C++11 enabled.

  • Contributors: Jose Luis Blanco-Claraco, Simon Praetorius

1.1.6 (2013-05-14)

  • Fix warnings about unused parameters.

  • Fix L1_adaptor.accum_dist(), which was implementing L2 instead of L1.

  • Fix wrong typedef in KDTreeEigenMatrixAdaptor<> for IndexType!=size_t.

  • Contributors: Jose Luis Blanco-Claraco

1.1.5 (2013-03-25)

  • Fix: Memory pool was not freed after each call to buildIndex().

  • GCC: Added -isystem flag to gtest headers to avoid pedantic warnings.

  • Contributors: Jose Luis Blanco-Claraco

1.1.4 (2013-01-11)

  • Fix compilation with Visual Studio 11 (MSVC 2012).

  • Fix compilation of gtest with VS11 and its _VARIADIC_MAX bug.

  • Add security check: throw exception if searches are attempted before buildIndex().

  • New example demonstrating save/load of the index to files.

  • Expose save/load methods as public.

  • Contributors: Jose Luis Blanco-Claraco

1.1.3 (2012-06-06)

  • Embed GTest sources due to changes in newer Ubuntu packages.

  • Add asserts to detect NULL query points passed by the user.

  • New method RadiusResultSet::worst_item().

  • New method RadiusResultSet::set_radius_and_clear().

  • Avoid potential collision of min/max macros with <windows.h>.

  • Remove unneeded #include of std headers.

  • New sample code for vectors of vectors.

  • Fix building of tests for MSVC on Windows.

  • Allow manually setting path to Eigen3 (mainly for Windows example builds).

  • Contributors: Jose Luis Blanco-Claraco

1.1.2 (2012-05-02)

  • Better documentation and benchmark graphs for choosing leaf_max_size.

  • KDTreeSingleIndexAdaptor::buildIndex() can now be called multiple times even when the dataset size changes.

  • Contributors: Jose Luis Blanco-Claraco

1.1.1 (2012-02-01)

  • Fix kd-tree index and L1/L2 metrics to allow distinct types for data elements and distances (e.g. integer data with floating-point distances).

  • Fix examples and unit tests to use template arguments instead of hard-coded float types.

  • Contributors: Jose Luis Blanco-Claraco, Thomas Vincent

1.1.0 (2011-12-15)

  • Fix warnings for MSVC and GCC with -Wall -pedantic.

  • Update performance tests for current nanoflann code.

  • All main classes now have a new template argument for index type, defaulting to size_t instead of int.

  • Contributors: Jose Luis Blanco-Claraco

1.0.0 (2011-08-30)

  • Initial release.

  • Contributors: Jose Luis Blanco-Claraco