Krotos Modules 3
Loading...
Searching...
No Matches
KDTreeND.h
Go to the documentation of this file.
1#pragma once
2
3#include <cassert>
4#include <cmath>
5#include <iostream>
6#include <vector>
7
8#ifndef JUCE_WINDOWS
9#pragma GCC diagnostic push
10#pragma GCC diagnostic ignored "-Weverything"
11#else
12__pragma(warning(push)) __pragma(warning(disable : 4127 4267))
13#endif
14
17
18#ifdef JUCE_MAC
19#pragma GCC diagnostic pop
20#else
21 __pragma(warning(pop))
22#endif
23
24using namespace nanoflann;
25
26namespace krotos
27{
28
30{
31 using myVectors = std::vector<std::vector<float>>;
33
34 public:
35 void addDatasetItem(const std::vector<float>& x);
36 void buildIndex();
37 void clear()
38 {
39 m_dataset.clear();
40 m_kdTree.reset(nullptr);
41 }
42 std::vector<std::size_t> knnQuery(const std::vector<float>& x, std::size_t k) const;
43
44 private:
46 std::unique_ptr<myKDTree> m_kdTree;
47};
48
49} // namespace krotos
__pragma(warning(pop)) using namespace nanoflann
Definition PCA.h:19
Definition KDTreeND.h:30
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
std::vector< std::vector< float > > myVectors
Definition KDTreeND.h:31
void addDatasetItem(const std::vector< float > &x)
Definition KDTreeND.cpp:4
void clear()
Definition KDTreeND.h:37
Definition AirAbsorptionFilter.cpp:2
Definition nanoflann.hpp:77
Definition KDTreeVectorOfVectorsAdaptor.h:55
Definition nanoflann.hpp:566