Point Cloud Library (PCL)  1.9.1-dev
List of all members | Public Types | Public Member Functions | Public Attributes
pcl::gpu::Octree Class Reference

Octree implementation on GPU. More...

#include </__w/1/s/gpu/octree/include/pcl/gpu/octree/octree.hpp>

Public Types

typedef boost::shared_ptr< OctreePtr
 Types. More...
 
typedef pcl::PointXYZ PointType
 Point typwe supported. More...
 
typedef DeviceArray< PointTypePointCloud
 Point cloud supported. More...
 
typedef DeviceArray< PointTypeQueries
 Point Batch query cloud type. More...
 
typedef DeviceArray< float > Radiuses
 Point Radiuses for batch query. More...
 
typedef DeviceArray< int > Indices
 Point Indices for batch query. More...
 
typedef DeviceArray< float > ResultSqrDists
 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 ()
 Returns true if tree has been built. More...
 
void internalDownload ()
 Downloads Octree from GPU to search using CPU function. More...
 
void radiusSearchHost (const PointType &center, float radius, std::vector< int > &out, int max_nn=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 &centers, float radius, int max_results, NeighborIndices &result) const
 Performs batch radius search on GPU. More...
 
void radiusSearch (const Queries &centers, const Radiuses &radiuses, int max_results, NeighborIndices &result) const
 Performs batch radius search on GPU. More...
 
void radiusSearch (const Queries &centers, 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 nearestKSearchBatch (const Queries &queries, int k, NeighborIndices &results) const
 Batch exact k-nearest search on GPU for k == 1 only! More...
 
void clear ()
 Desroys octree and release all resources. More...
 

Public Attributes

const PointCloudcloud_
 

Detailed Description

Octree implementation on GPU.

It suppors parallel building and parallel batch search as well .

Author
Anaoly Baksheev, Itseez, mynam.nosp@m.e.my.nosp@m.surna.nosp@m.me@m.nosp@m.ycomp.nosp@m.any..nosp@m.com

Definition at line 56 of file octree.hpp.

Member Typedef Documentation

Point Indices for batch query.

Definition at line 82 of file octree.hpp.

Point cloud supported.

Definition at line 73 of file octree.hpp.

Point typwe supported.

Definition at line 70 of file octree.hpp.

typedef boost::shared_ptr<Octree> pcl::gpu::Octree::Ptr

Types.

Definition at line 67 of file octree.hpp.

Point Batch query cloud type.

Definition at line 76 of file octree.hpp.

Point Radiuses for batch query.

Definition at line 79 of file octree.hpp.

Point Sqrt distances array type.

Definition at line 85 of file octree.hpp.

Constructor & Destructor Documentation

pcl::gpu::Octree::Octree ( )

Default constructor.

virtual pcl::gpu::Octree::~Octree ( )
virtual

Denstructor.

Member Function Documentation

void pcl::gpu::Octree::approxNearestSearch ( const Queries queries,
NeighborIndices result 
) const

Batch approximate nearest search on GPU.

Parameters
[in]queriesarray of centers
[out]resultarray of results ( one index for each query )
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

Parameters
[in]query3D point for which neighbour is be fetched
[out]out_indexneighbour index
[out]sqr_distsquare 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 (not-batch) search

bool pcl::gpu::Octree::isBuilt ( )

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!

Parameters
[in]queriesarray of centers
[in]knumber of neighbors (only k == 1 is supported)
[out]resultsarray of results
void pcl::gpu::Octree::radiusSearch ( const Queries centers,
float  radius,
int  max_results,
NeighborIndices result 
) const

Performs batch radius search on GPU.

Parameters
[in]centersarray of centers
[in]radiusradius for all queries
[in]max_resultsmax number of returned points for each querey
[out]resultresults 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.

Parameters
[in]centersarray of centers
[in]radiusesarray of radiuses
[in]max_resultsmax number of returned points for each querey
[out]resultresults packed to single array
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.

Parameters
[in]centersarray of centers
[in]indicesindices for centers array (only for these points search is performed)
[in]radiusradius for all queries
[in]max_resultsmax number of returned points for each querey
[out]resultresults packed to single array
void pcl::gpu::Octree::radiusSearchHost ( const PointType center,
float  radius,
std::vector< int > &  out,
int  max_nn = INT_MAX 
)

Performs search of all points within given radius on CPU.

It call internalDownload if necessary

Parameters
[in]centercenter of sphere
[in]radiusradious of sphere
[out]outindeces of points within give sphere
[in]max_nnmaximum numver of results returned
void pcl::gpu::Octree::setCloud ( const PointCloud cloud_arg)

Sets cloud for which octree is built.

Member Data Documentation

const PointCloud* pcl::gpu::Octree::cloud_

Definition at line 87 of file octree.hpp.


The documentation for this class was generated from the following file: