16#include "libmesh/nanoflann.hpp"
17#include "libmesh/utility.h"
20#if NANOFLANN_VERSION < 0x150
23template <
typename T,
typename U>
31 KDTree(
const std::vector<Point> & master_points,
unsigned int max_leaf_size);
36 unsigned int patch_size,
37 std::vector<std::size_t> & return_index);
40 unsigned int patch_size,
41 std::vector<std::size_t> & return_index,
42 std::vector<Real> & return_dist_sqr);
50 using KdTreeT = nanoflann::KDTreeSingleIndexAdaptor<
51 nanoflann::L2_Simple_Adaptor<Real,
nanoflann::KDTreeSingleIndexAdaptor< nanoflann::L2_Simple_Adaptor< Real, PointListAdaptor< Point >, Real, std::size_t >, PointListAdaptor< Point >, LIBMESH_DIM, std::size_t > KdTreeT
std::size_t numberCandidatePoints()
std::unique_ptr< KdTreeT > _kd_tree
void radiusSearch(const Point &query_point, Real radius, std::vector< nanoflann::ResultItem< std::size_t, Real > > &indices_dist)
void neighborSearch(const Point &query_point, unsigned int patch_size, std::vector< std::size_t > &return_index)
virtual ~KDTree()=default
PointListAdaptor< Point > _point_list_adaptor
std::pair< T, U > ResultItem