Point Cloud Library (PCL)
1.13.0dev

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) const 
Batch approximate nearest 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 knearest search on GPU for k == 1 only! More...  
void  nearestKSearchBatch (const Queries &queries, int k, NeighborIndices &results, ResultSqrDists &sqr_distances) const 
Batch exact knearest search on GPU for k == 1 only! More...  
void  clear () 
Desroys 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  
)  const 
Batch approximate nearest search on GPU.
[in]  queries  array of centers 
[out]  result  array of results ( one index for each query ) 
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  (  ) 
Desroys octree and release all resources.
void pcl::gpu::Octree::internalDownload  (  ) 
Downloads Octree from GPU to search using CPU function.
It use useful for single (notbatch) 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 knearest 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 knearest 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.