pcl::gpu::Octree Class Reference

Octree implementation on GPU. More...

`#include </build/pcl-gWGA5r/pcl-1.10.0+dfsg/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 ()
| 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 PointCloud * | cloud_

## 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

## ConstPtr

using pcl::gpu::Octree::ConstPtr = shared_ptr<const Octree>

Definition at line 68 of file octree.hpp.

## Indices

using pcl::gpu::Octree::Indices = DeviceArray<int>

Point Indices for batch query

Definition at line 83 of file octree.hpp.

## PointCloud

using pcl::gpu::Octree::PointCloud = DeviceArray<PointType>

Point cloud supported.

Definition at line 74 of file octree.hpp.

## PointType

using pcl::gpu::Octree::PointType = pcl::PointXYZ

Point typwe supported.

Definition at line 71 of file octree.hpp.

## Ptr

using pcl::gpu::Octree::Ptr = shared_ptr<Octree>

Types.

Definition at line 67 of file octree.hpp.

## Queries

using pcl::gpu::Octree::Queries = DeviceArray<PointType>

Point Batch query cloud type.

Definition at line 77 of file octree.hpp.

## Radiuses

using pcl::gpu::Octree::Radiuses = DeviceArray<float>

Point Radiuses for batch query

Definition at line 80 of file octree.hpp.

## ResultSqrDists

using pcl::gpu::Octree::ResultSqrDists = DeviceArray<float>

Point Sqrt distances array type.

Definition at line 86 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 nearest neighbor search on CPU.

It call internalDownload if necessary

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 function.

It use useful for single (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 | number of neighbors (only k == 1 is supported)
  [out] | results | array of results

## radiusSearch() [1/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 single 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 single array

## radiusSearch() [3/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 single 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 within given radius on CPU.

It call internalDownload if necessary

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 88 of file octree.hpp.

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

- /build/pcl-gWGA5r/pcl-1.10.0+dfsg/gpu/octree/include/pcl/gpu/octree/octree.hpp