point_cloud_library / 1.12.1 / classpcl_1_1gpu_1_1_octree.html /

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 &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 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 ()
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 57 of file octree.hpp.

Member Typedef Documentation

ConstPtr

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

Definition at line 69 of file octree.hpp.

Indices

Point Indices for batch query

Definition at line 84 of file octree.hpp.

PointCloud

Point cloud supported.

Definition at line 75 of file octree.hpp.

PointType

Point typwe supported.

Definition at line 72 of file octree.hpp.

Ptr

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

Types.

Definition at line 68 of file octree.hpp.

Queries

Point Batch query cloud type.

Definition at line 78 of file octree.hpp.

Radiuses

Point Radiuses for batch query

Definition at line 81 of file octree.hpp.

ResultSqrDists

Point Sqrt distances array type.

Definition at line 87 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() [1/2]

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 )
Deprecated:
Scheduled for removal in version 1 . 14 : "use approxNearestSearch() which returns square distances instead"

approxNearestSearch() [2/2]

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

Batch approximate nearest search on GPU.

Parameters
[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

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 ( ) const

Returns true if tree has been built.

nearestKSearchBatch() [1/2]

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

nearestKSearchBatch() [2/2]

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!

Parameters
[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

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


The documentation for this class was generated from the following file:
  • /__w/1/s/gpu/octree/include/pcl/gpu/octree/octree.hpp

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1gpu_1_1_octree.html