Point Cloud Library (PCL)
1.14.1-dev
|
Octree implementation on GPU. More...
#include </__w/1/s/gpu/octree/include/pcl/gpu/octree/octree.hpp>
Public Types | |
using | Ptr = shared_ptr< Octree > |
Types. More... | |
using | ConstPtr = shared_ptr< const Octree > |
using | PointType = pcl::PointXYZ |
Point typwe supported. More... | |
using | PointCloud = DeviceArray< PointType > |
Point cloud supported. More... | |
using | Queries = DeviceArray< PointType > |
Point Batch query cloud type. More... | |
using | Radiuses = DeviceArray< float > |
Point Radiuses for batch query More... | |
using | Indices = DeviceArray< int > |
Point Indices for batch query More... | |
using | ResultSqrDists = DeviceArray< float > |
Point Sqrt distances array type. More... | |
Public Member Functions | |
Octree () | |
Default constructor. More... | |
virtual | ~Octree () |
Denstructor. More... | |
void | setCloud (const PointCloud &cloud_arg) |
Sets cloud for which octree is built. More... | |
void | build () |
Performs parallel octree building. More... | |
bool | isBuilt () const |
Returns true if tree has been built. More... | |
void | internalDownload () |
Downloads Octree from GPU to search using CPU function. More... | |
void | radiusSearchHost (const PointType ¢er, float radius, std::vector< int > &out, int max_nn=std::numeric_limits< int >::max()) |
Performs search of all points within given radius on CPU. More... | |
void | approxNearestSearchHost (const PointType &query, int &out_index, float &sqr_dist) |
Performs approximate nearest neighbor search on CPU. More... | |
void | radiusSearch (const Queries ¢ers, float radius, int max_results, NeighborIndices &result) const |
Performs batch radius search on GPU. More... | |
void | radiusSearch (const Queries ¢ers, const Radiuses &radiuses, int max_results, NeighborIndices &result) const |
Performs batch radius search on GPU. More... | |
void | radiusSearch (const Queries ¢ers, const Indices &indices, float radius, int max_results, NeighborIndices &result) const |
Performs batch radius search on GPU. More... | |
void | approxNearestSearch (const Queries &queries, NeighborIndices &result, ResultSqrDists &sqr_distance) const |
Batch approximate nearest search on GPU. More... | |
void | nearestKSearchBatch (const Queries &queries, int k, NeighborIndices &results) const |
Batch exact k-nearest search on GPU for k == 1 only! More... | |
void | nearestKSearchBatch (const Queries &queries, int k, NeighborIndices &results, ResultSqrDists &sqr_distances) const |
Batch exact k-nearest search on GPU for k == 1 only! More... | |
void | clear () |
Destroys octree and release all resources. More... | |
Public Attributes | |
const PointCloud * | cloud_ |
Octree implementation on GPU.
It supports parallel building and parallel batch search as well .
Definition at line 58 of file octree.hpp.
using pcl::gpu::Octree::ConstPtr = shared_ptr<const Octree> |
Definition at line 70 of file octree.hpp.
using pcl::gpu::Octree::Indices = DeviceArray<int> |
Point Indices for batch query
Definition at line 85 of file octree.hpp.
Point cloud supported.
Definition at line 76 of file octree.hpp.
Point typwe supported.
Definition at line 73 of file octree.hpp.
using pcl::gpu::Octree::Ptr = shared_ptr<Octree> |
Types.
Definition at line 69 of file octree.hpp.
Point Batch query cloud type.
Definition at line 79 of file octree.hpp.
using pcl::gpu::Octree::Radiuses = DeviceArray<float> |
Point Radiuses for batch query
Definition at line 82 of file octree.hpp.
using pcl::gpu::Octree::ResultSqrDists = DeviceArray<float> |
Point Sqrt distances array type.
Definition at line 88 of file octree.hpp.
pcl::gpu::Octree::Octree | ( | ) |
Default constructor.
|
virtual |
Denstructor.
void pcl::gpu::Octree::approxNearestSearch | ( | const Queries & | queries, |
NeighborIndices & | result, | ||
ResultSqrDists & | sqr_distance | ||
) | const |
Batch approximate nearest search on GPU.
[in] | queries | array of centers |
[out] | result | array of results ( one index for each query ) |
[out] | sqr_distance | corresponding square distances to results from query point |
void pcl::gpu::Octree::approxNearestSearchHost | ( | const PointType & | query, |
int & | out_index, | ||
float & | sqr_dist | ||
) |
Performs approximate nearest neighbor search on CPU.
It call internalDownload if necessary
[in] | query | 3D point for which neighbour is be fetched |
[out] | out_index | neighbour index |
[out] | sqr_dist | square distance to the neighbour returned |
void pcl::gpu::Octree::build | ( | ) |
Performs parallel octree building.
void pcl::gpu::Octree::clear | ( | ) |
Destroys octree and release all resources.
void pcl::gpu::Octree::internalDownload | ( | ) |
Downloads Octree from GPU to search using CPU function.
It use useful for single (not-batch) search
bool pcl::gpu::Octree::isBuilt | ( | ) | const |
Returns true if tree has been built.
void pcl::gpu::Octree::nearestKSearchBatch | ( | const Queries & | queries, |
int | k, | ||
NeighborIndices & | results | ||
) | const |
Batch exact k-nearest search on GPU for k == 1 only!
[in] | queries | array of centers |
[in] | k | number of neighbors (only k == 1 is supported) |
[out] | results | array of results |
void pcl::gpu::Octree::nearestKSearchBatch | ( | const Queries & | queries, |
int | k, | ||
NeighborIndices & | results, | ||
ResultSqrDists & | sqr_distances | ||
) | const |
Batch exact k-nearest search on GPU for k == 1 only!
[in] | queries | array of centers |
[in] | k | number of neighbors (only k == 1 is supported) |
[out] | results | array of results |
[out] | sqr_distances | square distances to results |
void pcl::gpu::Octree::radiusSearch | ( | const Queries & | centers, |
const Indices & | indices, | ||
float | radius, | ||
int | max_results, | ||
NeighborIndices & | result | ||
) | const |
Performs batch radius search on GPU.
[in] | centers | array of centers |
[in] | indices | indices for centers array (only for these points search is performed) |
[in] | radius | radius for all queries |
[in] | max_results | max number of returned points for each querey |
[out] | result | results packed to single array |
void pcl::gpu::Octree::radiusSearch | ( | const Queries & | centers, |
const Radiuses & | radiuses, | ||
int | max_results, | ||
NeighborIndices & | result | ||
) | const |
Performs batch radius search on GPU.
[in] | centers | array of centers |
[in] | radiuses | array of radiuses |
[in] | max_results | max number of returned points for each querey |
[out] | result | results packed to single array |
void pcl::gpu::Octree::radiusSearch | ( | const Queries & | centers, |
float | radius, | ||
int | max_results, | ||
NeighborIndices & | result | ||
) | const |
Performs batch radius search on GPU.
[in] | centers | array of centers |
[in] | radius | radius for all queries |
[in] | max_results | max number of returned points for each querey |
[out] | result | results packed to single array |
void pcl::gpu::Octree::radiusSearchHost | ( | const PointType & | center, |
float | radius, | ||
std::vector< int > & | out, | ||
int | max_nn = std::numeric_limits< int >::max() |
||
) |
Performs search of all points within given radius on CPU.
It call internalDownload if necessary
[in] | center | center of sphere |
[in] | radius | radious of sphere |
[out] | out | indeces of points within give sphere |
[in] | max_nn | maximum numver of results returned |
void pcl::gpu::Octree::setCloud | ( | const PointCloud & | cloud_arg | ) |
Sets cloud for which octree is built.
const PointCloud* pcl::gpu::Octree::cloud_ |
Definition at line 90 of file octree.hpp.