Krotos Modules 3
Loading...
Searching...
No Matches
KDTreeND.cpp
Go to the documentation of this file.
1namespace krotos
2{
3
4void KDTreeND::addDatasetItem(const std::vector<float>& x) { m_dataset.push_back(x); }
5
7{
8 if (m_dataset.empty())
9 {
10 jassertfalse;
11 return;
12 }
13
14 auto dims = m_dataset.front().size();
15 m_kdTree = std::make_unique<myKDTree>(dims, m_dataset, 10);
16}
17
18std::vector<std::size_t> KDTreeND::knnQuery(const std::vector<float>& x, std::size_t k) const
19{
20 jassert(m_kdTree);
21
22 std::vector<std::size_t> ret_indexes(k);
23 std::vector<float> out_dists_sqr(k);
24
26
27 resultSet.init(&ret_indexes[0], &out_dists_sqr[0]);
28 m_kdTree->index->findNeighbors(resultSet, &x[0]);
29
30 return ret_indexes;
31}
32
33} // namespace krotos
myVectors m_dataset
Definition KDTreeND.h:45
void buildIndex()
Definition KDTreeND.cpp:6
std::unique_ptr< myKDTree > m_kdTree
Definition KDTreeND.h:46
std::vector< std::size_t > knnQuery(const std::vector< float > &x, std::size_t k) const
Definition KDTreeND.cpp:18
void addDatasetItem(const std::vector< float > &x)
Definition KDTreeND.cpp:4
Definition nanoflann.hpp:148
void init(IndexType *indices_, DistanceType *dists_)
Definition nanoflann.hpp:163
Definition AirAbsorptionFilter.cpp:2