KDTree, balanced, points in nodes, stack, implicit bounds, balance aspect ratio.
More...
|
typedef NearestNeighbourSearch< T, CloudType >::Vector | Vector |
|
typedef NearestNeighbourSearch< T, CloudType >::Matrix | Matrix |
|
typedef NearestNeighbourSearch< T, CloudType >::Index | Index |
|
typedef NearestNeighbourSearch< T, CloudType >::IndexVector | IndexVector |
|
typedef NearestNeighbourSearch< T, CloudType >::IndexMatrix | IndexMatrix |
|
typedef NearestNeighbourSearch< T, Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > >::Vector | Vector |
|
typedef NearestNeighbourSearch< T, Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > >::Matrix | Matrix |
|
typedef NearestNeighbourSearch< T, Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > >::Index | Index |
|
typedef NearestNeighbourSearch< T, Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > >::IndexVector | IndexVector |
|
typedef NearestNeighbourSearch< T, Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > >::IndexMatrix | IndexMatrix |
|
enum | SearchType |
| type of search
|
|
enum | CreationOptionFlags |
| creation option
|
|
enum | SearchOptionFlags |
| search option
|
|
typedef Eigen::Matrix< T, Eigen::Dynamic, 1 > | Vector |
| an Eigen vector of type T, to hold the coordinates of a point
|
|
typedef Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > | Matrix |
| a column-major Eigen matrix in which each column is a point; this matrix has dim rows
|
|
typedef Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > | CloudType |
| a column-major Eigen matrix in which each column is a point; this matrix has dim rows
|
|
typedef int | Index |
| an index to a Vector or a Matrix, for refering to data points
|
|
typedef Eigen::Matrix< Index, Eigen::Dynamic, 1 > | IndexVector |
| a vector of indices to data points
|
|
typedef Eigen::Matrix< Index, Eigen::Dynamic, Eigen::Dynamic > | IndexMatrix |
| a matrix of indices to data points
|
|
|
| KDTreeBalancedPtInNodesStackOpenCL (const CloudType &cloud, const Index dim, const unsigned creationOptionFlags, const cl_device_type deviceType) |
| constructor, calls OpenCLSearch<T, CloudType>(cloud, ...)
|
|
virtual unsigned long | knn (const Matrix &query, IndexMatrix &indices, Matrix &dists2, const Index k, const T epsilon, const unsigned optionFlags, const T maxRadius) const |
|
virtual unsigned long | knn (const Matrix &query, IndexMatrix &indices, Matrix &dists2, const Vector &maxRadii, const Index k=1, const T epsilon=0, const unsigned optionFlags=0) const |
|
unsigned long | knn (const Vector &query, IndexVector &indices, Vector &dists2, const Index k=1, const T epsilon=0, const unsigned optionFlags=0, const T maxRadius=std::numeric_limits< T >::infinity()) const |
| Find the k nearest neighbours of query. More...
|
|
virtual unsigned long | knn (const Matrix &query, IndexMatrix &indices, Matrix &dists2, const Index k=1, const T epsilon=0, const unsigned optionFlags=0, const T maxRadius=std::numeric_limits< T >::infinity()) const=0 |
| Find the k nearest neighbours for each point of query. More...
|
|
virtual | ~NearestNeighbourSearch () |
| virtual destructor
|
|
|
size_t | childLeft (size_t pos) const |
| Return the left child of pos.
|
|
size_t | childRight (size_t pos) const |
| Return the right child of pos.
|
|
size_t | parent (size_t pos) const |
| Return the parent of pos.
|
|
size_t | getTreeDepth (size_t size) const |
| Return the max depth of a tree of a given size.
|
|
size_t | getTreeSize (size_t size) const |
| Return the storage size of tree of a given size.
|
|
void | buildNodes (const BuildPointsIt first, const BuildPointsIt last, const size_t pos, const Vector minValues, const Vector maxValues) |
| Recurse to build nodes.
|
|
| OpenCLSearch (const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &cloud, const Index dim, const unsigned creationOptionFlags, const cl_device_type deviceType) |
| constructor, calls NearestNeighbourSearch<T, CloudType>(cloud)
|
|
void | initOpenCL (const char *clFileName, const char *kernelName, const std::string &additionalDefines="") |
| Initialize CL support. More...
|
|
| NearestNeighbourSearch (const CloudType &cloud, const Index dim, const unsigned creationOptionFlags) |
| constructor
|
|
void | checkSizesKnn (const Matrix &query, const IndexMatrix &indices, const Matrix &dists2, const Index k, const unsigned optionFlags, const Vector *maxRadii=0) const |
| Make sure that the output matrices have the right sizes. Throw an exception otherwise. More...
|
|
|
static NearestNeighbourSearch * | create (const CloudType &cloud, const Index dim=std::numeric_limits< Index >::max(), const SearchType preferedType=KDTREE_LINEAR_HEAP, const unsigned creationOptionFlags=0, const Parameters &additionalParameters=Parameters()) |
| Create a nearest-neighbour search. More...
|
|
static NearestNeighbourSearch * | create (const WrongMatrixType &cloud, const Index dim=std::numeric_limits< Index >::max(), const SearchType preferedType=KDTREE_LINEAR_HEAP, const unsigned creationOptionFlags=0, const Parameters &additionalParameters=Parameters()) |
| Prevent creation of trees with the wrong matrix type. Currently only dynamic size matrices are supported.
|
|
static NearestNeighbourSearch * | createBruteForce (const CloudType &cloud, const Index dim=std::numeric_limits< Index >::max(), const unsigned creationOptionFlags=0) |
| Create a nearest-neighbour search, using brute-force search, useful for comparison only. More...
|
|
static NearestNeighbourSearch * | createBruteForce (const WrongMatrixType &cloud, const Index dim=std::numeric_limits< Index >::max(), const unsigned creationOptionFlags=0) |
| Prevent creation of trees with the wrong matrix type. Currently only dynamic size matrices are supported.
|
|
static NearestNeighbourSearch * | createKDTreeLinearHeap (const CloudType &cloud, const Index dim=std::numeric_limits< Index >::max(), const unsigned creationOptionFlags=0, const Parameters &additionalParameters=Parameters()) |
| Create a nearest-neighbour search, using a kd-tree with linear heap, good for small k (~up to 30) More...
|
|
static NearestNeighbourSearch * | createKDTreeLinearHeap (const WrongMatrixType &cloud, const Index dim=std::numeric_limits< Index >::max(), const unsigned creationOptionFlags=0, const Parameters &additionalParameters=Parameters()) |
| Prevent creation of trees with the wrong matrix type. Currently only dynamic size matrices are supported.
|
|
static NearestNeighbourSearch * | createKDTreeTreeHeap (const CloudType &cloud, const Index dim=std::numeric_limits< Index >::max(), const unsigned creationOptionFlags=0, const Parameters &additionalParameters=Parameters()) |
| Create a nearest-neighbour search, using a kd-tree with tree heap, good for large k (~from 30) More...
|
|
static NearestNeighbourSearch * | createKDTreeTreeHeap (const WrongMatrixType &, const Index dim=std::numeric_limits< Index >::max(), const unsigned creationOptionFlags=0, const Parameters &additionalParameters=Parameters()) |
| Prevent creation of trees with the wrong matrix type. Currently only dynamic size matrices are supported.
|
|
const CloudType & | cloud |
| the reference to the data-point cloud, which must remain valid during the lifetime of the NearestNeighbourSearch object
|
|
const Index | dim |
| the dimensionality of the data-point cloud
|
|
const unsigned | creationOptionFlags |
| creation options
|
|
const Vector | minBound |
| the low bound of the search space (axis-aligned bounding box)
|
|
const Vector | maxBound |
| the high bound of the search space (axis-aligned bounding box)
|
|
static constexpr Index | InvalidIndex |
| the invalid index
|
|
static constexpr T | InvalidValue |
| the invalid value
|
|
template<typename T, typename CloudType = Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>>
struct Nabo::KDTreeBalancedPtInNodesStackOpenCL< T, CloudType >
KDTree, balanced, points in nodes, stack, implicit bounds, balance aspect ratio.