Skip to content

Commit

Permalink
Version updated to v0.8.3. Documentation updated.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jaybro committed Sep 26, 2023
1 parent 956e6cf commit 35b5fbd
Show file tree
Hide file tree
Showing 8 changed files with 25 additions and 11 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/utils.cmake)

project(pico_tree
LANGUAGES CXX
VERSION 0.8.2
VERSION 0.8.3
DESCRIPTION "PicoTree is a C++ header only library for fast nearest neighbor searches and range searches using a KdTree."
HOMEPAGE_URL "https://github.com/Jaybro/pico_tree")

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ PicoTree is a C++ header only library with [Python bindings](https://github.com/
| [Scikit-learn KDTree][skkd] 1.2.2 | ... | 6.2s | ... | 42.2s |
| [pykdtree][pykd] 1.3.7 | ... | 1.0s | ... | 6.6s |
| [OpenCV FLANN][cvfn] 4.6.0 | 1.9s | ... | 4.7s | ... |
| PicoTree KdTree v0.8.2 | 0.9s | 1.0s | 2.8s | 3.1s |
| PicoTree KdTree v0.8.3 | 0.9s | 1.0s | 2.8s | 3.1s |

Two [LiDAR](./docs/benchmark.md) based point clouds of sizes 7733372 and 7200863 were used to generate these numbers. The first point cloud was the input to the build algorithm and the second to the query algorithm. All benchmarks were run on a single thread with the following parameters: `max_leaf_size=10` and `knn=1`. A more detailed [C++ comparison](./docs/benchmark.md) of PicoTree is available with respect to [nanoflann][nano].

Expand Down
2 changes: 1 addition & 1 deletion docs/benchmark.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ One of the PicoTree examples contains [benchmarks](../examples/benchmark/) of di

The results described in this document were generated on 29-08-2021 using MinGW GCC 10.3, PicoTree v0.7.4 and Nanoflann v1.3.2.

Note: The performance of PicoTree v0.8.2 released on 07-09-2023 is identical to that of v0.7.4. However, the build algorithm of nanoflann v1.5.0 regressed and has become 90% slower.
Note: The performance of PicoTree v0.8.3 released on 26-09-2023 is identical to that of v0.7.4. However, the build algorithm of nanoflann v1.5.0 regressed and has become 90% slower.

# Data sets

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setup(name='pico_tree',
# The same as the CMake project version.
version='0.8.2',
version='0.8.3',
description='PicoTree Python Bindings',
author='Jonathan Broere',
url='https://github.com/Jaybro/pico_tree',
Expand Down
6 changes: 3 additions & 3 deletions src/pico_tree/pico_tree/internal/kd_tree_builder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ enum class SplittingRule {

namespace internal {

//! \see SplittingRule::kLongestMedian
//! \copydoc SplittingRule::kLongestMedian
template <typename SpaceWrapper_>
class SplitterLongestMedian {
using ScalarType = typename SpaceWrapper_::ScalarType;
Expand Down Expand Up @@ -86,7 +86,7 @@ class SplitterLongestMedian {
SpaceWrapper_ space_;
};

//! \see SplittingRule::kMidpoint
//! \copydoc SplittingRule::kMidpoint
template <typename SpaceWrapper_>
class SplitterMidpoint {
using ScalarType = typename SpaceWrapper_::ScalarType;
Expand Down Expand Up @@ -122,7 +122,7 @@ class SplitterMidpoint {
SpaceWrapper_ space_;
};

//! \see SplittingRule::kSlidingMidpoint
//! \copydoc SplittingRule::kSlidingMidpoint
template <typename SpaceWrapper_>
class SplitterSlidingMidpoint {
using ScalarType = typename SpaceWrapper_::ScalarType;
Expand Down
10 changes: 8 additions & 2 deletions src/pico_tree/pico_tree/internal/point_wrapper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,14 @@
#include "pico_tree/core.hpp"
#include "pico_tree/point_traits.hpp"

namespace pico_tree ::internal {

namespace pico_tree::internal {

//! \brief The PointWrapper class wraps makes working with any point type
//! through its respective PointTraits a bit easier and it allows for the
//! addition of extra convenience methods.
//! \details The internals of PicoTree never use the specializations of the
//! PointTraits class directly, but interface with any point type through this
//! wrapper interface.
template <typename Point_>
class PointWrapper {
using PointTraitsType = PointTraits<Point_>;
Expand Down
6 changes: 6 additions & 0 deletions src/pico_tree/pico_tree/internal/space_wrapper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@

namespace pico_tree::internal {

//! \brief The SpaceWrapper class wraps makes working with any space type
//! through its respective SpaceTraits a bit easier and it allows for the
//! addition of extra convenience methods.
//! \details The internals of PicoTree never use the specializations of the
//! SpaceTraits class directly, but interface with any space type through this
//! wrapper interface
template <typename Space_>
class SpaceWrapper {
using SpaceTraitsType = SpaceTraits<Space_>;
Expand Down
6 changes: 4 additions & 2 deletions src/pico_tree/pico_tree/point_traits.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ namespace pico_tree {

//! \brief PointTraits provides an interface for the different point types that
//! are supported by PicoTree.
//! \details Example use of PointTraits can be seen in
//! SpaceTraits<std::vector<Point_, Allocator_>>.
//! \details Examples of how a PointTraits can be created and used are linked
//! below.
//! \tparam Point_ Any of the point types supported by PointTraits.
//! \see PointTraits<Scalar_[Dim_]>
//! \see SpaceTraits<std::vector<Point_, Allocator_>>
template <typename Point_>
struct PointTraits;

Expand Down

0 comments on commit 35b5fbd

Please sign in to comment.