Go to the documentation of this file.
32 #ifndef __NABO_EXPERIMENTAL_H
33 #define __NABO_EXPERIMENTAL_H
35 #include "../nabo/nabo_private.h"
36 #include "../nabo/index_heap.h"
41 template<
typename T,
typename CloudType>
74 typedef std::vector<Node>
Nodes;
78 inline size_t childLeft(
size_t pos)
const {
return 2*pos + 1; }
79 inline size_t childRight(
size_t pos)
const {
return 2*pos + 2; }
80 inline size_t parent(
size_t pos)
const {
return (pos-1)/2; }
84 void dump(
const Vector minValues,
const Vector maxValues,
const size_t pos)
const;
91 template<
typename T,
typename CloudType>
123 template<
typename T,
typename CloudType>
141 void recurseKnn(
const Vector& query,
const size_t n, T rd,
Heap& heap,
Vector& off,
const T maxError,
const bool allowSelfMatch);
150 template<
typename T,
typename CloudType>
194 inline size_t childLeft(
size_t pos)
const {
return 2*pos + 1; }
195 inline size_t childRight(
size_t pos)
const {
return 2*pos + 2; }
196 inline size_t parent(
size_t pos)
const {
return (pos-1)/2; }
199 void recurseKnn(
const Vector& query,
const size_t n, T rd,
Heap& heap,
Vector& off,
const T maxError,
const bool allowSelfMatch);
207 template<
typename T,
typename Heap,
typename CloudType>
264 void recurseKnn(
const Vector& query,
const unsigned n, T rd, Heap& heap,
Vector& off,
const T maxError,
const bool allowSelfMatch);
273 template<
typename T,
typename CloudType>
322 void recurseKnn(
const Vector& query,
const size_t n, T rd,
Heap& heap,
const T maxError,
const bool allowSelfMatch);
std::vector< BuildPoint > BuildPoints
BuildPoints::iterator BuildPointsIt
void recurseKnn(const Vector &query, const size_t n, T rd, Heap &heap, const T maxError, const bool allowSelfMatch)
NearestNeighbourSearch< T, CloudType >::Vector Vector
virtual IndexVector knn(const Vector &query, const Index k, const T epsilon, const unsigned optionFlags)
CompareDim(const size_t dim)
NearestNeighbourSearch< T, CloudType >::Vector Vector
IndexHeapSTL< Index, T > Heap
Node(const int dim=-1, const T cutVal=0, const T lowBound=0, const T highBound=0, unsigned rightChild=0)
NearestNeighbourSearch< T, CloudType >::Index Index
Node(const Vector &pos=Vector(), const int dim=-2, const Index index=0)
KDTreeBalancedPtInNodes< T, CloudType >::Nodes Nodes
BuildPoints::const_iterator BuildPointsCstIt
NearestNeighbourSearch< T, CloudType >::IndexVector IndexVector
virtual IndexVector knn(const Vector &query, const Index k, const T epsilon, const unsigned optionFlags)
const CloudType & cloud
the reference to the data-point cloud, which must remain valid during the lifetime of the NearestNeig...
virtual IndexVector knn(const Vector &query, const Index k, const T epsilon, const unsigned optionFlags)
CloudType CloudType
a column-major Eigen matrix in which each column is a point; this matrix has dim rows
NearestNeighbourSearch< T, CloudType >::Matrix Matrix
KDTreeBalancedPtInNodes(const CloudType &cloud)
virtual IndexMatrix knnM(const Matrix &query, const Index k, const T epsilon, const unsigned optionFlags)
Node(const int dim=-1, const T cutVal=0)
bool operator()(const BuildPoint &p0, const BuildPoint &p1)
CompareDim(const size_t dim)
KDTreeBalancedPtInNodes< T, CloudType >::Nodes Nodes
BuildPoint(const Vector &pos=Vector(), const size_t index=0)
NearestNeighbourSearch< T, CloudType >::IndexVector IndexVector
NearestNeighbourSearch< T, CloudType >::Index Index
NearestNeighbourSearch< T, CloudType >::IndexVector IndexVector
void buildNodes(const BuildPointsIt first, const BuildPointsIt last, const size_t pos)
KDTreeBalancedPtInNodes< T, CloudType >::Node Node
BuildPoint(const Vector &pos=Vector(), const size_t index=0)
NearestNeighbourSearch< T, CloudType >::IndexMatrix IndexMatrix
std::vector< Node > Nodes
CompareDim(const size_t dim)
IndexHeapSTL< Index, T > Heap
IndexHeapSTL< Index, T > Heap
bool operator()(const BuildPoint &p0, const BuildPoint &p1)
virtual IndexVector knn(const Vector &query, const Index k, const T epsilon, const unsigned optionFlags)
BuildPoints::iterator BuildPointsIt
BuildPoint(const Vector &pos=Vector(), const size_t index=0)
NearestNeighbourSearch< T, CloudType >::Vector Vector
BuildPoint(const Vector &pos=Vector(), const size_t index=0)
Nearest neighbour search interface, templatized on scalar type.
BuildPoints::const_iterator BuildPointsCstIt
void dump(const Vector minValues, const Vector maxValues, const size_t pos) const
KDTreeBalancedPtInNodesStack(const CloudType &cloud)
NearestNeighbourSearch< T, CloudType >::Index Index
NearestNeighbourSearch< T, CloudType >::Matrix Matrix
KDTreeUnbalancedPtInLeavesExplicitBoundsStack(const CloudType &cloud)
void recurseKnn(const Vector &query, const size_t n, T rd, Heap &heap, Vector &off, const T maxError, const bool allowSelfMatch)
size_t childLeft(size_t pos) const
BuildPoints::const_iterator BuildPointsCstIt
bool operator()(const BuildPoint &p0, const BuildPoint &p1)
size_t childRight(size_t pos) const
std::vector< BuildPoint > BuildPoints
std::vector< Node > Nodes
void buildNodes(const BuildPointsIt first, const BuildPointsIt last, const size_t pos, const Vector minValues, const Vector maxValues, const bool balanceVariance)
Node(const int dim, const T cutVal, unsigned rightChild)
NearestNeighbourSearch< T, CloudType >::Vector Vector
size_t getTreeSize(size_t size) const
balanced-tree implementation of heap
size_t getTreeSize(size_t size) const
NearestNeighbourSearch< T, CloudType >::Vector Vector
size_t childLeft(size_t pos) const
KDTreeBalancedPtInNodesPQ(const CloudType &cloud)
Node(const unsigned ptIndex=INVALID_PT)
friend bool operator<(const SearchElement &e0, const SearchElement &e1)
NearestNeighbourSearch< T, CloudType >::IndexVector IndexVector
SearchElement(const size_t index, const T minDist)
std::vector< Node > Nodes
NearestNeighbourSearch< T, CloudType >::Matrix Matrix
NearestNeighbourSearch< T, CloudType >::Index Index
size_t parent(size_t pos) const
BuildPoints::iterator BuildPointsIt
BuildPoints::const_iterator BuildPointsCstIt
std::vector< Node > Nodes
BuildPoints::iterator BuildPointsIt
NearestNeighbourSearch< T, CloudType >::Index Index
NearestNeighbourSearch< T, CloudType >::Vector Vector
bool operator()(const BuildPoint &p0, const BuildPoint &p1)
unsigned buildNodes(const BuildPointsIt first, const BuildPointsIt last, const Vector minValues, const Vector maxValues)
NearestNeighbourSearch< T, CloudType >::IndexVector IndexVector
void recurseKnn(const Vector &query, const unsigned n, T rd, Heap &heap, Vector &off, const T maxError, const bool allowSelfMatch)
NearestNeighbourSearch< T, CloudType >::Matrix Matrix
IndexVector cloudIndexesFromNodesIndexes(const IndexVector &indexes) const
KDTreeBalancedPtInLeavesStack(const CloudType &cloud, const bool balanceVariance)
KDTreeUnbalancedPtInLeavesImplicitBoundsStack(const CloudType &cloud)
unsigned buildNodes(const BuildPointsIt first, const BuildPointsIt last, const Vector minValues, const Vector maxValues)
NearestNeighbourSearch< T, CloudType >::IndexVector IndexVector
size_t childRight(size_t pos) const
virtual IndexVector knn(const Vector &query, const Index k, const T epsilon, const unsigned optionFlags)
size_t parent(size_t pos) const
void recurseKnn(const Vector &query, const size_t n, T rd, Heap &heap, Vector &off, const T maxError, const bool allowSelfMatch)
std::vector< BuildPoint > BuildPoints
NearestNeighbourSearch< T, CloudType >::Matrix Matrix
NearestNeighbourSearch< T, CloudType >::Matrix Matrix
std::vector< BuildPoint > BuildPoints
CompareDim(const size_t dim)
KDTreeBalancedPtInNodes< T, CloudType >::Node Node
NearestNeighbourSearch< T, CloudType >::Index Index
libnabo
Author(s): Stéphane Magnenat
autogenerated on Fri Aug 2 2024 08:39:11