pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT > Class Template Reference
Module octree

Octree pointcloud voxel centroid class More...

`#include <pcl/octree/octree_pointcloud_voxelcentroid.h>`

Inheritance diagram for pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >:

## Public Types

using | Ptr = shared_ptr< OctreePointCloudVoxelCentroid< PointT, LeafContainerT > >
using | ConstPtr = shared_ptr< const OctreePointCloudVoxelCentroid< PointT, LeafContainerT > >
using | OctreeT = OctreePointCloud< PointT, LeafContainerT, BranchContainerT >
using | LeafNode = typename OctreeT::LeafNode
using | BranchNode = typename OctreeT::BranchNode
Public Types inherited from pcl::octree::OctreePointCloud< PointT, OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >
using | Base = OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >
using | LeafNode = typename OctreeT::LeafNode
using | BranchNode = typename OctreeT::BranchNode
using | IndicesPtr = shared_ptr< Indices >
using | IndicesConstPtr = shared_ptr< const Indices >
using | PointCloud = pcl::PointCloud< PointT >
using | PointCloudPtr = typename PointCloud::Ptr
using | PointCloudConstPtr = typename PointCloud::ConstPtr
using | SingleBuffer = OctreePointCloud< PointT, OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty, OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT > > >
using | Ptr = shared_ptr< OctreePointCloud< PointT, OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty, OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty > > >
using | ConstPtr = shared_ptr< const OctreePointCloud< PointT, OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty, OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty > > >
using | AlignedPointTVector = std::vector< PointT, Eigen::aligned_allocator< PointT > >
using | AlignedPointXYZVector = std::vector< PointXYZ, Eigen::aligned_allocator< PointXYZ > >
Public Types inherited from pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >
using | OctreeT = OctreeBase< LeafContainerT, BranchContainerT >
using | BranchNode = OctreeBranchNode< BranchContainerT >
using | LeafNode = OctreeLeafNode< LeafContainerT >
using | BranchContainer = BranchContainerT
using | LeafContainer = LeafContainerT
using | Iterator = OctreeDepthFirstIterator< OctreeT >
using | ConstIterator = const OctreeDepthFirstIterator< OctreeT >
using | LeafNodeIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using | ConstLeafNodeIterator = const OctreeLeafNodeDepthFirstIterator< OctreeT >
using | LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using | ConstLeafNodeDepthFirstIterator = const OctreeLeafNodeDepthFirstIterator< OctreeT >
using | DepthFirstIterator = OctreeDepthFirstIterator< OctreeT >
using | ConstDepthFirstIterator = const OctreeDepthFirstIterator< OctreeT >
using | BreadthFirstIterator = OctreeBreadthFirstIterator< OctreeT >
using | ConstBreadthFirstIterator = const OctreeBreadthFirstIterator< OctreeT >
using | FixedDepthIterator = OctreeFixedDepthIterator< OctreeT >
using | ConstFixedDepthIterator = const OctreeFixedDepthIterator< OctreeT >
using | LeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< OctreeT >
using | ConstLeafNodeBreadthFirstIterator = const OctreeLeafNodeBreadthFirstIterator< OctreeT >

## Public Member Functions

| OctreePointCloudVoxelCentroid (const double resolution_arg)
| OctreePointCloudVoxelCentroids class constructor. More...
| ~OctreePointCloudVoxelCentroid ()
| Empty class deconstructor. More...
void | addPointIdx (const uindex_t pointIdx_arg) override
| Add DataT object to leaf node at octree key. More...
bool | getVoxelCentroidAtPoint (const PointT &point_arg, PointT &voxel_centroid_arg) const
| Get centroid for a single voxel addressed by a PointT point. More...
bool | getVoxelCentroidAtPoint (const index_t &point_idx_arg, PointT &voxel_centroid_arg) const
| Get centroid for a single voxel addressed by a PointT point from input cloud. More...
uindex_t | getVoxelCentroids (typename OctreePointCloud< PointT, LeafContainerT, BranchContainerT >::AlignedPointTVector &voxel_centroid_list_arg) const
| Get PointT vector of centroids for all occupied voxels. More...
void | getVoxelCentroidsRecursive (const BranchNode *branch_arg, OctreeKey &key_arg, typename OctreePointCloud< PointT, LeafContainerT, BranchContainerT >::AlignedPointTVector &voxel_centroid_list_arg) const
| Recursively explore the octree and output a PointT vector of centroids for all occupied voxels. More...
Public Member Functions inherited from pcl::octree::OctreePointCloud< PointT, OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >
| OctreePointCloud (const double resolution_arg)
| Octree pointcloud constructor. More...
void | setInputCloud (const PointCloudConstPtr &cloud_arg, const IndicesConstPtr &indices_arg=IndicesConstPtr())
| Provide a pointer to the input data set. More...
IndicesConstPtr const | getIndices () const
| Get a pointer to the vector of indices used. More...
PointCloudConstPtr | getInputCloud () const
| Get a pointer to the input point cloud dataset. More...
void | setEpsilon (double eps)
| Set the search epsilon precision (error bound) for nearest neighbors searches. More...
double | getEpsilon () const
| Get the search epsilon precision (error bound) for nearest neighbors searches. More...
void | setResolution (double resolution_arg)
| Set/change the octree voxel resolution. More...
double | getResolution () const
| Get octree voxel resolution. More...
uindex_t | getTreeDepth () const
| Get the maximum depth of the octree. More...
void | addPointsFromInputCloud ()
| Add points from input point cloud to octree. More...
void | addPointFromCloud (uindex_t point_idx_arg, IndicesPtr indices_arg)
| Add point at given index from input point cloud to octree. More...
void | addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg)
| Add point simultaneously to octree and input point cloud. More...
void | addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg, IndicesPtr indices_arg)
| Add point simultaneously to octree and input point cloud. More...
bool | isVoxelOccupiedAtPoint (const PointT &point_arg) const
| Check if voxel at given point exist. More...
bool | isVoxelOccupiedAtPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg) const
| Check if voxel at given point coordinates exist. More...
bool | isVoxelOccupiedAtPoint (const index_t &point_idx_arg) const
| Check if voxel at given point from input cloud exist. More...
void | deleteTree ()
| Delete the octree structure and its leaf nodes. More...
uindex_t | getOccupiedVoxelCenters (AlignedPointTVector &voxel_center_list_arg) const
| Get a PointT vector of centers of all occupied voxels. More...
uindex_t | getApproxIntersectedVoxelCentersBySegment (const Eigen::Vector3f &origin, const Eigen::Vector3f &end, AlignedPointTVector &voxel_center_list, float precision=0.2)
| Get a PointT vector of centers of voxels intersected by a line segment. More...
void | deleteVoxelAtPoint (const PointT &point_arg)
| Delete leaf node / voxel at given point. More...
void | deleteVoxelAtPoint (const index_t &point_idx_arg)
| Delete leaf node / voxel at given point from input cloud. More...
void | defineBoundingBox ()
| Investigate dimensions of pointcloud data set and define corresponding bounding box for octree. More...
void | defineBoundingBox (const double min_x_arg, const double min_y_arg, const double min_z_arg, const double max_x_arg, const double max_y_arg, const double max_z_arg)
| Define bounding box for octree. More...
void | defineBoundingBox (const double max_x_arg, const double max_y_arg, const double max_z_arg)
| Define bounding box for octree. More...
void | defineBoundingBox (const double cubeLen_arg)
| Define bounding box cube for octree. More...
void | getBoundingBox (double &min_x_arg, double &min_y_arg, double &min_z_arg, double &max_x_arg, double &max_y_arg, double &max_z_arg) const
| Get bounding box for octree. More...
double | getVoxelSquaredDiameter (uindex_t tree_depth_arg) const
| Calculates the squared diameter of a voxel at given tree depth. More...
double | getVoxelSquaredDiameter () const
| Calculates the squared diameter of a voxel at leaf depth. More...
double | getVoxelSquaredSideLen (uindex_t tree_depth_arg) const
| Calculates the squared voxel cube side length at given tree depth. More...
double | getVoxelSquaredSideLen () const
| Calculates the squared voxel cube side length at leaf level. More...
void | getVoxelBounds (const OctreeIteratorBase< OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty > > &iterator, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
| Generate bounds of the current voxel of an octree iterator. More...
void | enableDynamicDepth (std::size_t maxObjsPerLeaf)
| Enable dynamic octree structure. More...
Public Member Functions inherited from pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >
Iterator | begin (uindex_t max_depth_arg=0u)
const Iterator | end ()
LeafNodeDepthFirstIterator | leaf_depth_begin (uindex_t max_depth_arg=0u)
const LeafNodeDepthFirstIterator | leaf_depth_end ()
DepthFirstIterator | depth_begin (uindex_t max_depth_arg=0u)
const DepthFirstIterator | depth_end ()
BreadthFirstIterator | breadth_begin (uindex_t max_depth_arg=0u)
const BreadthFirstIterator | breadth_end ()
FixedDepthIterator | fixed_depth_begin (uindex_t fixed_depth_arg=0u)
const FixedDepthIterator | fixed_depth_end ()
LeafNodeBreadthFirstIterator | leaf_breadth_begin (uindex_t max_depth_arg=0u)
const LeafNodeBreadthFirstIterator | leaf_breadth_end ()
| OctreeBase ()
| Empty constructor. More...
virtual | ~OctreeBase ()
| Empty deconstructor. More...
| OctreeBase (const OctreeBase &source)
| Copy constructor. More...
OctreeBase & | operator= (const OctreeBase &source)
| Copy operator. More...
void | setMaxVoxelIndex (uindex_t max_voxel_index_arg)
| Set the maximum amount of voxels per dimension. More...
void | setTreeDepth (uindex_t max_depth_arg)
| Set the maximum depth of the octree. More...
uindex_t | getTreeDepth () const
| Get the maximum depth of the octree. More...
LeafContainerT * | createLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
| Create new leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
LeafContainerT * | findLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
| Find leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
bool | existLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg) const
| idx_x_arg for the existence of leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
void | removeLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
| Remove leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
std::size_t | getLeafCount () const
| Return the amount of existing leafs in the octree. More...
std::size_t | getBranchCount () const
| Return the amount of existing branch nodes in the octree. More...
void | deleteTree ()
| Delete the octree structure and its leaf nodes. More...
void | serializeTree (std::vector< char > &binary_tree_out_arg)
| Serialize octree into a binary output vector describing its branch node structure. More...
void | serializeTree (std::vector< char > &binary_tree_out_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg)
| Serialize octree into a binary output vector describing its branch node structure and push all LeafContainerT elements stored in the octree to a vector. More...
void | serializeLeafs (std::vector< LeafContainerT * > &leaf_container_vector_arg)
| Outputs a vector of all LeafContainerT elements that are stored within the octree leaf nodes. More...
void | deserializeTree (std::vector< char > &binary_tree_input_arg)
| Deserialize a binary octree description vector and create a corresponding octree structure. More...
void | deserializeTree (std::vector< char > &binary_tree_input_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg)
| Deserialize a binary octree description and create a corresponding octree structure. More...

## Additional Inherited Members

Protected Member Functions inherited from pcl::octree::OctreePointCloud< PointT, OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >
void | expandLeafNode (LeafNode *leaf_node, BranchNode *parent_branch, unsigned char child_idx, uindex_t depth_mask)
| Add point at index from input pointcloud dataset to octree. More...
const PointT & | getPointByIndex (uindex_t index_arg) const
| Get point at index from input pointcloud dataset. More...
OctreePointCloudVoxelCentroidContainer< PointT > * | findLeafAtPoint (const PointT &point_arg) const
| Find octree leaf node at a given point. More...
void | getKeyBitSize ()
| Define octree key setting and octree depth based on defined bounding box. More...
void | adoptBoundingBoxToPoint (const PointT &point_idx_arg)
| Grow the bounding box/octree until point fits. More...
bool | isPointWithinBoundingBox (const PointT &point_idx_arg) const
| Checks if given point is within the bounding box of the octree. More...
void | genOctreeKeyforPoint (const PointT &point_arg, OctreeKey &key_arg) const
| Generate octree key for voxel at a given point. More...
void | genOctreeKeyforPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg, OctreeKey &key_arg) const
| Generate octree key for voxel at a given point. More...
virtual bool | genOctreeKeyForDataT (const index_t &data_arg, OctreeKey &key_arg) const
| Virtual method for generating octree key for a given point index. More...
void | genLeafNodeCenterFromOctreeKey (const OctreeKey &key_arg, PointT &point_arg) const
| Generate a point at center of leaf node voxel. More...
void | genVoxelCenterFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, PointT &point_arg) const
| Generate a point at center of octree voxel at given tree level. More...
void | genVoxelBoundsFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
| Generate bounds of an octree voxel using octree key and tree depth arguments. More...
uindex_t | getOccupiedVoxelCentersRecursive (const BranchNode *node_arg, const OctreeKey &key_arg, AlignedPointTVector &voxel_center_list_arg) const
| Recursively search the tree for all leaf nodes and return a vector of voxel centers. More...
Protected Member Functions inherited from pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >
LeafContainerT * | createLeaf (const OctreeKey &key_arg)
| Create a leaf node. More...
LeafContainerT * | findLeaf (const OctreeKey &key_arg) const
| Find leaf node. More...
bool | existLeaf (const OctreeKey &key_arg) const
| Check for existence of a leaf node in the octree. More...
void | removeLeaf (const OctreeKey &key_arg)
| Remove leaf node from octree. More...
OctreeNode * | getRootNode () const
| Retrieve root node. More...
bool | branchHasChild (const BranchNode &branch_arg, unsigned char child_idx_arg) const
| Check if branch is pointing to a particular child node. More...
OctreeNode * | getBranchChildPtr (const BranchNode &branch_arg, unsigned char child_idx_arg) const
| Retrieve a child node pointer for child node at child_idx. More...
void | setBranchChildPtr (BranchNode &branch_arg, unsigned char child_idx_arg, OctreeNode *new_child_arg)
| Assign new child node to branch. More...
char | getBranchBitPattern (const BranchNode &branch_arg) const
| Generate bit pattern reflecting the existence of child node pointers. More...
void | deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
| Delete child node and all its subchilds from octree. More...
void | deleteBranch (BranchNode &branch_arg)
| Delete branch and all its subchilds from octree. More...
BranchNode * | createBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
| Create and add a new branch child to a branch class. More...
LeafNode * | createLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg)
| Create and add a new leaf child to a branch class. More...
uindex_t | createLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafNode *&return_leaf_arg, BranchNode *&parent_of_leaf_arg)
| Create a leaf node at octree key. More...
void | findLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafContainerT *&result_arg) const
| Recursively search for a given leaf node and return a pointer. More...
bool | deleteLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg)
| Recursively search and delete leaf node. More...
void | serializeTreeRecursive (const BranchNode *branch_arg, OctreeKey &key_arg, std::vector< char > *binary_tree_out_arg, typename std::vector< LeafContainerT * > *leaf_container_vector_arg) const
| Recursively explore the octree and output binary octree description together with a vector of leaf node LeafContainerTs. More...

void

deserializeTreeRecursive (BranchNode *branch_arg, uindex_t depth_mask_arg, OctreeKey &key_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_end_arg, typename std::vector< LeafContainerT * >::const_iterator *leaf_container_vector_it_arg, typename std::vector< LeafContainerT * >::const_iterator *leaf_container_vector_it_end_arg)

| Recursive method for deserializing octree structure. More...
virtual void | serializeTreeCallback (LeafContainerT &, const OctreeKey &) const
| Callback executed for every leaf node during serialization. More...
virtual void | deserializeTreeCallback (LeafContainerT &, const OctreeKey &)
| Callback executed for every leaf node during deserialization. More...
bool | octreeCanResize ()
| Test if octree is able to dynamically change its depth. More...
Protected Attributes inherited from pcl::octree::OctreePointCloud< PointT, OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >
PointCloudConstPtr | input_
| Pointer to input point cloud dataset. More...
IndicesConstPtr | indices_
| A pointer to the vector of point indices to use. More...
double | epsilon_
| Epsilon precision (error bound) for nearest neighbors searches. More...
double | resolution_
| Octree resolution. More...
double | min_x_
double | max_x_
double | min_y_
double | max_y_
double | min_z_
double | max_z_
bool | bounding_box_defined_
| Flag indicating if octree has defined bounding box. More...
std::size_t | max_objs_per_leaf_
| Amount of DataT objects per leafNode before expanding branch. More...
Protected Attributes inherited from pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >
std::size_t | leaf_count_
| Amount of leaf nodes More...
std::size_t | branch_count_
| Amount of branch nodes More...
BranchNode * | root_node_
| Pointer to root branch node of octree More...
uindex_t | depth_mask_
| Depth mask based on octree depth More...
uindex_t | octree_depth_
| Octree depth. More...
bool | dynamic_depth_enabled_
| Enable dynamic_depth. More...
OctreeKey | max_key_
| key range More...

## Detailed Description

### template<typename PointT, typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
class pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >

Octree pointcloud voxel centroid class

Note
  This class generate an octrees from a point cloud (zero-copy). It provides a vector of centroids for all occupied voxels.
  The octree pointcloud is initialized with its voxel resolution. Its bounding box is automatically adjusted or can be predefined.

Template Parameters

  PointT | type of point used in pointcloud

Author
  Julius Kammerl (juliu.nosp@m.s@ka.nosp@m.mmerl.nosp@m..de)

Definition at line 133 of file octree_pointcloud_voxelcentroid.h.

## Member Typedef Documentation

## BranchNode

template<typename PointT , typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>

using pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::BranchNode = typename OctreeT::BranchNode

Definition at line 142 of file octree_pointcloud_voxelcentroid.h.

## ConstPtr

template<typename PointT , typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>

using pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::ConstPtr = shared_ptr<const OctreePointCloudVoxelCentroid<PointT, LeafContainerT> >

Definition at line 137 of file octree_pointcloud_voxelcentroid.h.

## LeafNode

template<typename PointT , typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>

using pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::LeafNode = typename OctreeT::LeafNode

Definition at line 141 of file octree_pointcloud_voxelcentroid.h.

## OctreeT

template<typename PointT , typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>

using pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::OctreeT = OctreePointCloud<PointT, LeafContainerT, BranchContainerT>

Definition at line 140 of file octree_pointcloud_voxelcentroid.h.

## Ptr

template<typename PointT , typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>

using pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::Ptr = shared_ptr<OctreePointCloudVoxelCentroid<PointT, LeafContainerT> >

Definition at line 136 of file octree_pointcloud_voxelcentroid.h.

## Constructor & Destructor Documentation

## OctreePointCloudVoxelCentroid()

template<typename PointT , typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>

pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::OctreePointCloudVoxelCentroid | ( | const double | resolution_arg | ) |

inline

OctreePointCloudVoxelCentroids class constructor.

Parameters

  [in] | resolution_arg | octree resolution at lowest octree level

Definition at line 147 of file octree_pointcloud_voxelcentroid.h.

## ~OctreePointCloudVoxelCentroid()

template<typename PointT , typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>

pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::~OctreePointCloudVoxelCentroid | ( |  | ) |

inline

Empty class deconstructor.

Definition at line 153 of file octree_pointcloud_voxelcentroid.h.

## Member Function Documentation

## addPointIdx()

template<typename PointT , typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>

void pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::addPointIdx | ( | const uindex_t | pointIdx_arg | ) |

inline override virtual

Add DataT object to leaf node at octree key.

Parameters

  pointIdx_arg |

Reimplemented from pcl::octree::OctreePointCloud< PointT, OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >.

Definition at line 159 of file octree_pointcloud_voxelcentroid.h.

## getVoxelCentroidAtPoint() [1/2]

template<typename PointT , typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>

bool pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidAtPoint | ( | const index_t & | point_idx_arg,
|  | PointT & | voxel_centroid_arg
| ) |  | const

inline

Get centroid for a single voxel addressed by a PointT point from input cloud.

Parameters

  [in] | point_idx_arg | point index from input cloud addressing a voxel in octree
  [out] | voxel_centroid_arg | centroid is written to this PointT reference

Returns
  "true" if voxel is found; "false" otherwise

Definition at line 193 of file octree_pointcloud_voxelcentroid.h.

## getVoxelCentroidAtPoint() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT >

bool pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidAtPoint | ( | const PointT & | point_arg,
|  | PointT & | voxel_centroid_arg
| ) |  | const

Get centroid for a single voxel addressed by a PointT point.

Parameters

  [in] | point_arg | point addressing a voxel in octree
  [out] | voxel_centroid_arg | centroid is written to this PointT reference

Returns
  "true" if voxel is found; "false" otherwise

Definition at line 55 of file octree_pointcloud_voxelcentroid.hpp.

## getVoxelCentroids()

template<typename PointT , typename LeafContainerT , typename BranchContainerT >

pcl::uindex_t pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroids | ( | typename OctreePointCloud< PointT, LeafContainerT, BranchContainerT >::AlignedPointTVector & | voxel_centroid_list_arg | ) | const

Get PointT vector of centroids for all occupied voxels.

Parameters

  [out] | voxel_centroid_list_arg | results are written to this vector of PointT elements

Returns
  number of occupied voxels

Definition at line 74 of file octree_pointcloud_voxelcentroid.hpp.

## getVoxelCentroidsRecursive()

template<typename PointT , typename LeafContainerT , typename BranchContainerT >

void pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidsRecursive | ( | const BranchNode * | branch_arg,
|  | OctreeKey & | key_arg,
|  | typename OctreePointCloud< PointT, LeafContainerT, BranchContainerT >::AlignedPointTVector & | voxel_centroid_list_arg
| ) |  | const

Recursively explore the octree and output a PointT vector of centroids for all occupied voxels.

Parameters

  [in] | branch_arg | current branch node
  [in] | key_arg | current key
  [out] | voxel_centroid_list_arg | results are written to this vector of PointT elements

Definition at line 94 of file octree_pointcloud_voxelcentroid.hpp.

References pcl::octree::BRANCH_NODE, pcl::octree::OctreeBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeLeafNode< ContainerT >::getContainer(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::OctreeBranchNode< ContainerT >::hasChild(), pcl::octree::LEAF_NODE, pcl::octree::OctreeKey::popBranch(), and pcl::octree::OctreeKey::pushBranch().

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

- pcl/octree/octree_pointcloud_voxelcentroid.h
- pcl/octree/impl/octree_pointcloud_voxelcentroid.hpp