Classes | Public Types | Public Member Functions | Protected Member Functions
pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT > Class Template Reference

Octree pointcloud search class More...

#include <octree_search.h>

Inheritance diagram for pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >:
Inheritance graph
[legend]

List of all members.

Classes

class  prioBranchQueueEntry
 Priority queue entry for branch nodes More...
class  prioPointQueueEntry
 Priority queue entry for point candidates More...

Public Types

typedef std::vector< PointT,
Eigen::aligned_allocator
< PointT > > 
AlignedPointTVector
typedef OctreeT::BranchNode BranchNode
typedef boost::shared_ptr
< const OctreePointCloudSearch
< PointT, LeafT, BranchT > > 
ConstPtr
typedef boost::shared_ptr
< const std::vector< int > > 
IndicesConstPtr
typedef boost::shared_ptr
< std::vector< int > > 
IndicesPtr
typedef OctreeT::LeafNode LeafNode
typedef OctreePointCloud
< PointT, LeafT, BranchT > 
OctreeT
typedef pcl::PointCloud< PointTPointCloud
typedef boost::shared_ptr
< const PointCloud
PointCloudConstPtr
typedef boost::shared_ptr
< PointCloud
PointCloudPtr
typedef boost::shared_ptr
< OctreePointCloudSearch
< PointT, LeafT, BranchT > > 
Ptr

Public Member Functions

void approxNearestSearch (const PointCloud &cloud, int query_index, int &result_index, float &sqr_distance)
 Search for approx. nearest neighbor at the query point.
void approxNearestSearch (const PointT &p_q, int &result_index, float &sqr_distance)
 Search for approx. nearest neighbor at the query point.
void approxNearestSearch (int query_index, int &result_index, float &sqr_distance)
 Search for approx. nearest neighbor at the query point.
int boxSearch (const Eigen::Vector3f &min_pt, const Eigen::Vector3f &max_pt, std::vector< int > &k_indices) const
 Search for points within rectangular search area.
int getIntersectedVoxelCenters (Eigen::Vector3f origin, Eigen::Vector3f direction, AlignedPointTVector &voxelCenterList, int maxVoxelCount=0) const
 Get a PointT vector of centers of all voxels that intersected by a ray (origin, direction).
int getIntersectedVoxelIndices (Eigen::Vector3f origin, Eigen::Vector3f direction, std::vector< int > &k_indices, int maxVoxelCount=0) const
 Get indices of all voxels that are intersected by a ray (origin, direction).
int nearestKSearch (const PointCloud &cloud, int index, int k, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances)
 Search for k-nearest neighbors at the query point.
int nearestKSearch (const PointT &p_q, int k, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances)
 Search for k-nearest neighbors at given query point.
int nearestKSearch (int index, int k, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances)
 Search for k-nearest neighbors at query point.
 OctreePointCloudSearch (const double resolution)
 Constructor.
int radiusSearch (const PointCloud &cloud, int index, double radius, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0)
 Search for all neighbors of query point that are within a given radius.
int radiusSearch (const PointT &p_q, const double radius, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const
 Search for all neighbors of query point that are within a given radius.
int radiusSearch (int index, const double radius, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const
 Search for all neighbors of query point that are within a given radius.
bool voxelSearch (const PointT &point, std::vector< int > &pointIdx_data)
 Search for neighbors within a voxel at given point.
bool voxelSearch (const int index, std::vector< int > &pointIdx_data)
 Search for neighbors within a voxel at given point referenced by a point index.
virtual ~OctreePointCloudSearch ()
 Empty class constructor.

Protected Member Functions

void approxNearestSearchRecursive (const PointT &point, const BranchNode *node, const OctreeKey &key, unsigned int treeDepth, int &result_index, float &sqr_distance)
 Recursive search method that explores the octree and finds the approximate nearest neighbor.
void boxSearchRecursive (const Eigen::Vector3f &min_pt, const Eigen::Vector3f &max_pt, const BranchNode *node, const OctreeKey &key, unsigned int treeDepth, std::vector< int > &k_indices) const
 Recursive search method that explores the octree and finds points within a rectangular search area.
int getFirstIntersectedNode (double minX, double minY, double minZ, double midX, double midY, double midZ) const
 Find first child node ray will enter.
int getIntersectedVoxelCentersRecursive (double minX, double minY, double minZ, double maxX, double maxY, double maxZ, unsigned char a, const OctreeNode *node, const OctreeKey &key, AlignedPointTVector &voxelCenterList, int maxVoxelCount) const
 Recursively search the tree for all intersected leaf nodes and return a vector of voxel centers. This algorithm is based off the paper An Efficient Parametric Algorithm for Octree Traversal: http://wscg.zcu.cz/wscg2000/Papers_2000/X31.pdf.
int getIntersectedVoxelIndicesRecursive (double minX, double minY, double minZ, double maxX, double maxY, double maxZ, unsigned char a, const OctreeNode *node, const OctreeKey &key, std::vector< int > &k_indices, int maxVoxelCount) const
 Recursively search the tree for all intersected leaf nodes and return a vector of indices. This algorithm is based off the paper An Efficient Parametric Algorithm for Octree Traversal: http://wscg.zcu.cz/wscg2000/Papers_2000/X31.pdf.
double getKNearestNeighborRecursive (const PointT &point, unsigned int K, const BranchNode *node, const OctreeKey &key, unsigned int treeDepth, const double squaredSearchRadius, std::vector< prioPointQueueEntry > &pointCandidates) const
 Recursive search method that explores the octree and finds the K nearest neighbors.
void getNeighborsWithinRadiusRecursive (const PointT &point, const double radiusSquared, const BranchNode *node, const OctreeKey &key, unsigned int treeDepth, std::vector< int > &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn) const
 Recursive search method that explores the octree and finds neighbors within a given radius.
int getNextIntersectedNode (double x, double y, double z, int a, int b, int c) const
 Get the next visited node given the current node upper bounding box corner. This function accepts three float values, and three int values. The function returns the ith integer where the ith float value is the minimum of the three float values.
void initIntersectedVoxel (Eigen::Vector3f &origin, Eigen::Vector3f &direction, double &minX, double &minY, double &minZ, double &maxX, double &maxY, double &maxZ, unsigned char &a) const
 Initialize raytracing algorithm.
float pointSquaredDist (const PointT &pointA, const PointT &pointB) const
 Helper function to calculate the squared distance between two points.

Detailed Description

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
class pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >

Octree pointcloud search class

Note:
This class provides several methods for spatial neighbor search based on octree structure
typename: PointT: type of point used in pointcloud
Author:
Julius Kammerl (julius@kammerl.de)

Definition at line 62 of file octree_search.h.


Member Typedef Documentation

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef std::vector<PointT, Eigen::aligned_allocator<PointT> > pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::AlignedPointTVector

Reimplemented from pcl::octree::OctreePointCloud< PointT, LeafT, BranchT >.

Definition at line 78 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef OctreeT::BranchNode pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::BranchNode

Reimplemented from pcl::octree::OctreePointCloud< PointT, LeafT, BranchT >.

Definition at line 82 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef boost::shared_ptr<const OctreePointCloudSearch<PointT, LeafT, BranchT> > pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::ConstPtr

Reimplemented from pcl::octree::OctreePointCloud< PointT, LeafT, BranchT >.

Definition at line 75 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef boost::shared_ptr<const std::vector<int> > pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::IndicesConstPtr

Reimplemented from pcl::octree::OctreePointCloud< PointT, LeafT, BranchT >.

Definition at line 67 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef boost::shared_ptr<std::vector<int> > pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::IndicesPtr

Reimplemented from pcl::octree::OctreePointCloud< PointT, LeafT, BranchT >.

Definition at line 66 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef OctreeT::LeafNode pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::LeafNode

Reimplemented from pcl::octree::OctreePointCloud< PointT, LeafT, BranchT >.

Definition at line 81 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef OctreePointCloud<PointT, LeafT, BranchT> pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::OctreeT

Reimplemented from pcl::octree::OctreeBase< int, LeafT, BranchT >.

Definition at line 80 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef pcl::PointCloud<PointT> pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::PointCloud

Reimplemented from pcl::octree::OctreePointCloud< PointT, LeafT, BranchT >.

Definition at line 69 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef boost::shared_ptr<const PointCloud> pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::PointCloudConstPtr

Reimplemented from pcl::octree::OctreePointCloud< PointT, LeafT, BranchT >.

Definition at line 71 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef boost::shared_ptr<PointCloud> pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::PointCloudPtr

Reimplemented from pcl::octree::OctreePointCloud< PointT, LeafT, BranchT >.

Definition at line 70 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
typedef boost::shared_ptr<OctreePointCloudSearch<PointT, LeafT, BranchT> > pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::Ptr

Reimplemented from pcl::octree::OctreePointCloud< PointT, LeafT, BranchT >.

Definition at line 74 of file octree_search.h.


Constructor & Destructor Documentation

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::OctreePointCloudSearch ( const double  resolution) [inline]

Constructor.

Parameters:
[in]resolutionoctree resolution at lowest octree level

Definition at line 87 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
virtual pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::~OctreePointCloudSearch ( ) [inline, virtual]

Empty class constructor.

Definition at line 94 of file octree_search.h.


Member Function Documentation

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
void pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::approxNearestSearch ( const PointCloud cloud,
int  query_index,
int &  result_index,
float &  sqr_distance 
) [inline]

Search for approx. nearest neighbor at the query point.

Parameters:
[in]cloudthe point cloud data
[in]query_indexthe index in cloud representing the query point
[out]result_indexthe resultant index of the neighbor point
[out]sqr_distancethe resultant squared distance to the neighboring point
Returns:
number of neighbors found

Definition at line 162 of file octree_search.h.

template<typename PointT , typename LeafT , typename BranchT >
void pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::approxNearestSearch ( const PointT p_q,
int &  result_index,
float &  sqr_distance 
)

Search for approx. nearest neighbor at the query point.

Parameters:
[in]p_qthe given query point
[out]result_indexthe resultant index of the neighbor point
[out]sqr_distancethe resultant squared distance to the neighboring point

Definition at line 135 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
void pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::approxNearestSearch ( int  query_index,
int &  result_index,
float &  sqr_distance 
)

Search for approx. nearest neighbor at the query point.

Parameters:
[in]query_indexindex representing the query point in the dataset given by setInputCloud. If indices were given in setInputCloud, index will be the position in the indices vector.
[out]result_indexthe resultant index of the neighbor point
[out]sqr_distancethe resultant squared distance to the neighboring point
Returns:
number of neighbors found

Definition at line 152 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
void pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::approxNearestSearchRecursive ( const PointT point,
const BranchNode node,
const OctreeKey key,
unsigned int  treeDepth,
int &  result_index,
float &  sqr_distance 
) [protected]

Recursive search method that explores the octree and finds the approximate nearest neighbor.

Parameters:
[in]pointquery point
[in]nodecurrent octree node to be explored
[in]keyoctree key addressing a leaf node.
[in]treeDepthcurrent depth/level in the octree
[out]result_indexresult index is written to this reference
[out]sqr_distancesquared distance to search

Definition at line 408 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::boxSearch ( const Eigen::Vector3f &  min_pt,
const Eigen::Vector3f &  max_pt,
std::vector< int > &  k_indices 
) const

Search for points within rectangular search area.

Parameters:
[in]min_ptlower corner of search area
[in]max_ptupper corner of search area
[out]k_indicesthe resultant point indices
Returns:
number of points found within search area

Definition at line 194 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
void pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::boxSearchRecursive ( const Eigen::Vector3f &  min_pt,
const Eigen::Vector3f &  max_pt,
const BranchNode node,
const OctreeKey key,
unsigned int  treeDepth,
std::vector< int > &  k_indices 
) const [protected]

Recursive search method that explores the octree and finds points within a rectangular search area.

Parameters:
[in]min_ptlower corner of search area
[in]max_ptupper corner of search area
[in]nodecurrent octree node to be explored
[in]keyoctree key addressing a leaf node.
[in]treeDepthcurrent depth/level in the octree
[out]k_indicesthe resultant point indices

Definition at line 512 of file octree_search.hpp.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::getFirstIntersectedNode ( double  minX,
double  minY,
double  minZ,
double  midX,
double  midY,
double  midZ 
) const [inline, protected]

Find first child node ray will enter.

Parameters:
[in]minXoctree nodes X coordinate of lower bounding box corner
[in]minYoctree nodes Y coordinate of lower bounding box corner
[in]minZoctree nodes Z coordinate of lower bounding box corner
[in]midXoctree nodes X coordinate of bounding box mid line
[in]midYoctree nodes Y coordinate of bounding box mid line
[in]midZoctree nodes Z coordinate of bounding box mid line
Returns:
the first child node ray will enter

Definition at line 527 of file octree_search.h.

template<typename PointT , typename LeafT , typename BranchT >
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::getIntersectedVoxelCenters ( Eigen::Vector3f  origin,
Eigen::Vector3f  direction,
AlignedPointTVector voxelCenterList,
int  maxVoxelCount = 0 
) const

Get a PointT vector of centers of all voxels that intersected by a ray (origin, direction).

Parameters:
[in]originray origin
[in]directionray direction vector
[out]voxelCenterListresults are written to this vector of PointT elements
[in]maxVoxelCountstop raycasting when this many voxels intersected (0: disable)
Returns:
number of intersected voxels

Definition at line 589 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::getIntersectedVoxelCentersRecursive ( double  minX,
double  minY,
double  minZ,
double  maxX,
double  maxY,
double  maxZ,
unsigned char  a,
const OctreeNode node,
const OctreeKey key,
AlignedPointTVector voxelCenterList,
int  maxVoxelCount 
) const [protected]

Recursively search the tree for all intersected leaf nodes and return a vector of voxel centers. This algorithm is based off the paper An Efficient Parametric Algorithm for Octree Traversal: http://wscg.zcu.cz/wscg2000/Papers_2000/X31.pdf.

Parameters:
[in]minXoctree nodes X coordinate of lower bounding box corner
[in]minYoctree nodes Y coordinate of lower bounding box corner
[in]minZoctree nodes Z coordinate of lower bounding box corner
[in]maxXoctree nodes X coordinate of upper bounding box corner
[in]maxYoctree nodes Y coordinate of upper bounding box corner
[in]maxZoctree nodes Z coordinate of upper bounding box corner
[in]a
[in]nodecurrent octree node to be explored
[in]keyoctree key addressing a leaf node.
[out]voxelCenterListresults are written to this vector of PointT elements
[in]maxVoxelCountstop raycasting when this many voxels intersected (0: disable)
Returns:
number of voxels found

Definition at line 637 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::getIntersectedVoxelIndices ( Eigen::Vector3f  origin,
Eigen::Vector3f  direction,
std::vector< int > &  k_indices,
int  maxVoxelCount = 0 
) const

Get indices of all voxels that are intersected by a ray (origin, direction).

Parameters:
[in]originray origin
[in]directionray direction vector
[out]k_indicesresulting point indices from intersected voxels
[in]maxVoxelCountstop raycasting when this many voxels intersected (0: disable)
Returns:
number of intersected voxels

Definition at line 614 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::getIntersectedVoxelIndicesRecursive ( double  minX,
double  minY,
double  minZ,
double  maxX,
double  maxY,
double  maxZ,
unsigned char  a,
const OctreeNode node,
const OctreeKey key,
std::vector< int > &  k_indices,
int  maxVoxelCount 
) const [protected]

Recursively search the tree for all intersected leaf nodes and return a vector of indices. This algorithm is based off the paper An Efficient Parametric Algorithm for Octree Traversal: http://wscg.zcu.cz/wscg2000/Papers_2000/X31.pdf.

Parameters:
[in]minXoctree nodes X coordinate of lower bounding box corner
[in]minYoctree nodes Y coordinate of lower bounding box corner
[in]minZoctree nodes Z coordinate of lower bounding box corner
[in]maxXoctree nodes X coordinate of upper bounding box corner
[in]maxYoctree nodes Y coordinate of upper bounding box corner
[in]maxZoctree nodes Z coordinate of upper bounding box corner
[in]a
[in]nodecurrent octree node to be explored
[in]keyoctree key addressing a leaf node.
[out]k_indicesresulting indices
[in]maxVoxelCountstop raycasting when this many voxels intersected (0: disable)
Returns:
number of voxels found

Definition at line 755 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
double pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::getKNearestNeighborRecursive ( const PointT point,
unsigned int  K,
const BranchNode node,
const OctreeKey key,
unsigned int  treeDepth,
const double  squaredSearchRadius,
std::vector< prioPointQueueEntry > &  pointCandidates 
) const [protected]

Recursive search method that explores the octree and finds the K nearest neighbors.

Parameters:
[in]pointquery point
[in]Kamount of nearest neighbors to be found
[in]nodecurrent octree node to be explored
[in]keyoctree key addressing a leaf node.
[in]treeDepthcurrent depth/level in the octree
[in]squaredSearchRadiussquared search radius distance
[out]pointCandidatespriority queue of nearest neigbor point candidates
Returns:
squared search radius based on current point candidate set found

Definition at line 212 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
void pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::getNeighborsWithinRadiusRecursive ( const PointT point,
const double  radiusSquared,
const BranchNode node,
const OctreeKey key,
unsigned int  treeDepth,
std::vector< int > &  k_indices,
std::vector< float > &  k_sqr_distances,
unsigned int  max_nn 
) const [protected]

Recursive search method that explores the octree and finds neighbors within a given radius.

Parameters:
[in]pointquery point
[in]radiusSquaredsquared search radius
[in]nodecurrent octree node to be explored
[in]keyoctree key addressing a leaf node.
[in]treeDepthcurrent depth/level in the octree
[out]k_indicesvector of indices found to be neighbors of query point
[out]k_sqr_distancessquared distances of neighbors to query point
[in]max_nnmaximum of neighbors to be found

Definition at line 323 of file octree_search.hpp.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::getNextIntersectedNode ( double  x,
double  y,
double  z,
int  a,
int  b,
int  c 
) const [inline, protected]

Get the next visited node given the current node upper bounding box corner. This function accepts three float values, and three int values. The function returns the ith integer where the ith float value is the minimum of the three float values.

Parameters:
[in]xcurrent nodes X coordinate of upper bounding box corner
[in]ycurrent nodes Y coordinate of upper bounding box corner
[in]zcurrent nodes Z coordinate of upper bounding box corner
[in]anext node if exit Plane YZ
[in]bnext node if exit Plane XZ
[in]cnext node if exit Plane XY
Returns:
the next child node ray will enter or 8 if exiting

Definition at line 586 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
void pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::initIntersectedVoxel ( Eigen::Vector3f &  origin,
Eigen::Vector3f &  direction,
double &  minX,
double &  minY,
double &  minZ,
double &  maxX,
double &  maxY,
double &  maxZ,
unsigned char &  a 
) const [inline, protected]

Initialize raytracing algorithm.

Parameters:
origin
direction
[in]minXoctree nodes X coordinate of lower bounding box corner
[in]minYoctree nodes Y coordinate of lower bounding box corner
[in]minZoctree nodes Z coordinate of lower bounding box corner
[in]maxXoctree nodes X coordinate of upper bounding box corner
[in]maxYoctree nodes Y coordinate of upper bounding box corner
[in]maxZoctree nodes Z coordinate of upper bounding box corner
a

Definition at line 473 of file octree_search.h.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::nearestKSearch ( const PointCloud cloud,
int  index,
int  k,
std::vector< int > &  k_indices,
std::vector< float > &  k_sqr_distances 
) [inline]

Search for k-nearest neighbors at the query point.

Parameters:
[in]cloudthe point cloud data
[in]indexthe index in cloud representing the query point
[in]kthe number of neighbors to search for
[out]k_indicesthe resultant indices of the neighboring points (must be resized to k a priori!)
[out]k_sqr_distancesthe resultant squared distances to the neighboring points (must be resized to k a priori!)
Returns:
number of neighbors found

Definition at line 124 of file octree_search.h.

template<typename PointT , typename LeafT , typename BranchT >
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::nearestKSearch ( const PointT p_q,
int  k,
std::vector< int > &  k_indices,
std::vector< float > &  k_sqr_distances 
)

Search for k-nearest neighbors at given query point.

Parameters:
[in]p_qthe given query point
[in]kthe number of neighbors to search for
[out]k_indicesthe resultant indices of the neighboring points (must be resized to k a priori!)
[out]k_sqr_distancesthe resultant squared distances to the neighboring points (must be resized to k a priori!)
Returns:
number of neighbors found

Definition at line 82 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::nearestKSearch ( int  index,
int  k,
std::vector< int > &  k_indices,
std::vector< float > &  k_sqr_distances 
)

Search for k-nearest neighbors at query point.

Parameters:
[in]indexindex representing the query point in the dataset given by setInputCloud. If indices were given in setInputCloud, index will be the position in the indices vector.
[in]kthe number of neighbors to search for
[out]k_indicesthe resultant indices of the neighboring points (must be resized to k a priori!)
[out]k_sqr_distancesthe resultant squared distances to the neighboring points (must be resized to k a priori!)
Returns:
number of neighbors found

Definition at line 125 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
float pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::pointSquaredDist ( const PointT pointA,
const PointT pointB 
) const [protected]

Helper function to calculate the squared distance between two points.

Parameters:
[in]pointApoint A
[in]pointBpoint B
Returns:
squared distance between point A and point B

Definition at line 504 of file octree_search.hpp.

template<typename PointT, typename LeafT = OctreeContainerDataTVector<int>, typename BranchT = OctreeContainerEmpty<int>>
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::radiusSearch ( const PointCloud cloud,
int  index,
double  radius,
std::vector< int > &  k_indices,
std::vector< float > &  k_sqr_distances,
unsigned int  max_nn = 0 
) [inline]

Search for all neighbors of query point that are within a given radius.

Parameters:
[in]cloudthe point cloud data
[in]indexthe index in cloud representing the query point
[in]radiusthe radius of the sphere bounding all of p_q's neighbors
[out]k_indicesthe resultant indices of the neighboring points
[out]k_sqr_distancesthe resultant squared distances to the neighboring points
[in]max_nnif given, bounds the maximum returned neighbors to this value
Returns:
number of neighbors found in radius

Definition at line 196 of file octree_search.h.

template<typename PointT , typename LeafT , typename BranchT >
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::radiusSearch ( const PointT p_q,
const double  radius,
std::vector< int > &  k_indices,
std::vector< float > &  k_sqr_distances,
unsigned int  max_nn = 0 
) const

Search for all neighbors of query point that are within a given radius.

Parameters:
[in]p_qthe given query point
[in]radiusthe radius of the sphere bounding all of p_q's neighbors
[out]k_indicesthe resultant indices of the neighboring points
[out]k_sqr_distancesthe resultant squared distances to the neighboring points
[in]max_nnif given, bounds the maximum returned neighbors to this value
Returns:
number of neighbors found in radius

Definition at line 162 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
int pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::radiusSearch ( int  index,
const double  radius,
std::vector< int > &  k_indices,
std::vector< float > &  k_sqr_distances,
unsigned int  max_nn = 0 
) const

Search for all neighbors of query point that are within a given radius.

Parameters:
[in]indexindex representing the query point in the dataset given by setInputCloud. If indices were given in setInputCloud, index will be the position in the indices vector
[in]radiusradius of the sphere bounding all of p_q's neighbors
[out]k_indicesthe resultant indices of the neighboring points
[out]k_sqr_distancesthe resultant squared distances to the neighboring points
[in]max_nnif given, bounds the maximum returned neighbors to this value
Returns:
number of neighbors found in radius

Definition at line 182 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
bool pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::voxelSearch ( const PointT point,
std::vector< int > &  pointIdx_data 
)

Search for neighbors within a voxel at given point.

Parameters:
[in]pointpoint addressing a leaf node voxel
[out]pointIdx_datathe resultant indices of the neighboring voxel points
Returns:
"true" if leaf node exist; "false" otherwise

Definition at line 50 of file octree_search.hpp.

template<typename PointT , typename LeafT , typename BranchT >
bool pcl::octree::OctreePointCloudSearch< PointT, LeafT, BranchT >::voxelSearch ( const int  index,
std::vector< int > &  pointIdx_data 
)

Search for neighbors within a voxel at given point referenced by a point index.

Parameters:
[in]indexthe index in input cloud defining the query point
[out]pointIdx_datathe resultant indices of the neighboring voxel points
Returns:
"true" if leaf node exist; "false" otherwise

Definition at line 73 of file octree_search.hpp.


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


pcl
Author(s): Open Perception
autogenerated on Mon Oct 6 2014 03:20:21