pcl::gpu::Octree Class Reference

Octree implementation on GPU. More...

`#include </build/pcl-OilVEB/pcl-1.8.1+dfsg1/gpu/octree/include/pcl/gpu/octree/octree.hpp>`

## Public Types

typedef boost::shared_ptr< Octree > | Ptr
| Types. More...
typedef pcl::PointXYZ | PointType
| Point typwe supported. More...
typedef DeviceArray< PointType > | PointCloud
| Point cloud supported. More...
typedef DeviceArray< PointType > | Queries
| 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 fucntion. More...
void | radiusSearchHost (const PointType &center, float radius, std::vector< int > &out, int max_nn=INT_MAX)
| Performs search of all points wihtin given radius on CPU. More...
void | approxNearestSearchHost (const PointType &query, int &out_index, float &sqr_dist)
| Performs approximate neares 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 PointCloud * | cloud_

## Detailed Description

Octree implementation on GPU.

It suppors parallel building and paralel 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

## Indices

typedef DeviceArray<int> pcl::gpu::Octree::Indices

Point Indices for batch query.

Definition at line 82 of file octree.hpp.

## PointCloud

typedef DeviceArray<PointType> pcl::gpu::Octree::PointCloud

Point cloud supported.

Definition at line 73 of file octree.hpp.

## PointType

typedef pcl::PointXYZ pcl::gpu::Octree::PointType

Point typwe supported.

Definition at line 70 of file octree.hpp.

## Ptr

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

Types.

Definition at line 67 of file octree.hpp.

## Queries

typedef DeviceArray<PointType> pcl::gpu::Octree::Queries

Point Batch query cloud type.

Definition at line 76 of file octree.hpp.

## Radiuses

typedef DeviceArray<float> pcl::gpu::Octree::Radiuses

Point Radiuses for batch query.

Definition at line 79 of file octree.hpp.

## ResultSqrDists

typedef DeviceArray<float> pcl::gpu::Octree::ResultSqrDists

Point Sqrt distances array type.

Definition at line 85 of file octree.hpp.

## Constructor & Destructor Documentation

## Octree()

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

Default constructor.

## ~Octree()

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

virtual

Denstructor.

## Member Function Documentation

## approxNearestSearch()

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

Batch approximate nearest search on GPU.

Parameters

  [in] | queries | array of centers
  [out] | result | array of results ( one index for each query )

## approxNearestSearchHost()

void pcl::gpu::Octree::approxNearestSearchHost | ( | const PointType & | query,
|  | int & | out_index,
|  | float & | sqr_dist
| ) |  |

Performs approximate neares neighbor search on CPU.

It call internalDownload if nessesary

Parameters

  [in] | query | 3D point for which neighbour is be fetched
  [out] | out_index | neighbour index
  [out] | sqr_dist | square distance to the neighbour returned

## build()

void pcl::gpu::Octree::build | ( |  | ) |

Performs parallel octree building.

## clear()

void pcl::gpu::Octree::clear | ( |  | ) |

Desroys octree and release all resources.

## internalDownload()

void pcl::gpu::Octree::internalDownload | ( |  | ) |

Downloads Octree from GPU to search using CPU fucntion.

It use usefull for signle (not-batch) search

## isBuilt()

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

Returns true if tree has been built.

## nearestKSearchBatch()

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] | queries | array of centers
  [in] | k | nubmer of neighbors (only k == 1 is supported)
  [out] | results | array of results

## radiusSearch() [1/3]

void pcl::gpu::Octree::radiusSearch | ( | const Queries & | centers,
|  | float | radius,
|  | int | max_results,
|  | NeighborIndices & | result
| ) |  | const

Performs batch radius search on GPU.

Parameters

  [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 signle array

## radiusSearch() [2/3]

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] | 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 signle array

## radiusSearch() [3/3]

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] | 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 signle array

## radiusSearchHost()

void pcl::gpu::Octree::radiusSearchHost | ( | const PointType & | center,
|  | float | radius,
|  | std::vector< int > & | out,
|  | int | max_nn = `INT_MAX`
| ) |  |

Performs search of all points wihtin given radius on CPU.

It call internalDownload if nessesary

Parameters

  [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

## setCloud()

void pcl::gpu::Octree::setCloud | ( | const PointCloud & | cloud_arg | ) |

Sets cloud for which octree is built.

## Member Data Documentation

## cloud_

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:

- /build/pcl-OilVEB/pcl-1.8.1+dfsg1/gpu/octree/include/pcl/gpu/octree/octree.hpp