gtsam_points
Loading...
Searching...
No Matches
nearest_neighbor_search.hpp
1// SPDX-License-Identifier: MIT
2// Copyright (c) 2021 Kenji Koide (k.koide@aist.go.jp)
3
4#pragma once
5
6#include <memory>
7#include <vector>
8#include <limits>
9#include <iostream>
10
11namespace gtsam_points {
12
17public:
18 using Ptr = std::shared_ptr<NearestNeighborSearch>;
19 using ConstPtr = std::shared_ptr<const NearestNeighborSearch>;
20
22 virtual ~NearestNeighborSearch() {}
23
31 virtual size_t
32 knn_search(const double* pt, size_t k, size_t* k_indices, double* k_sq_dists, double max_sq_dist = std::numeric_limits<double>::max()) const {
33 std::cerr << "NearestNeighborSearch::knn_search() is not implemented" << std::endl;
34 return 0;
35 };
36
48 virtual size_t radius_search(
49 const double* pt,
50 double radius,
51 std::vector<size_t>& indices,
52 std::vector<double>& sq_dists,
53 int max_num_neighbors = std::numeric_limits<int>::max()) const {
54 std::cerr << "NearestNeighborSearch::radius_search() is not implemented" << std::endl;
55 return 0;
56 };
57};
58} // namespace gtsam_points
Nearest neighbor search interface.
Definition nearest_neighbor_search.hpp:16
virtual size_t knn_search(const double *pt, size_t k, size_t *k_indices, double *k_sq_dists, double max_sq_dist=std::numeric_limits< double >::max()) const
k-nearest neighbor search
Definition nearest_neighbor_search.hpp:32
virtual size_t radius_search(const double *pt, double radius, std::vector< size_t > &indices, std::vector< double > &sq_dists, int max_num_neighbors=std::numeric_limits< int >::max()) const
Radius search.
Definition nearest_neighbor_search.hpp:48