Loading...
Searching...
No Matches
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, LeafContainerT, BranchContainerT, OctreeT >
using | Base = OctreeT
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, LeafContainerT, BranchContainerT, OctreeBase< LeafContainerT > >
using | Ptr = shared_ptr< OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT > >
using | ConstPtr = shared_ptr< const OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT > >
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 = OctreeDepthFirstIterator< const OctreeT >
using | LeafNodeIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using | ConstLeafNodeIterator = OctreeLeafNodeDepthFirstIterator< const OctreeT >
using | LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using | ConstLeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< const OctreeT >
using | DepthFirstIterator = OctreeDepthFirstIterator< OctreeT >
using | ConstDepthFirstIterator = OctreeDepthFirstIterator< const OctreeT >
using | BreadthFirstIterator = OctreeBreadthFirstIterator< OctreeT >
using | ConstBreadthFirstIterator = OctreeBreadthFirstIterator< const OctreeT >
using | FixedDepthIterator = OctreeFixedDepthIterator< OctreeT >
using | ConstFixedDepthIterator = OctreeFixedDepthIterator< const OctreeT >
using | LeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< OctreeT >
using | ConstLeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< const OctreeT >

## Public Member Functions

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

## Additional Inherited Members

Protected Member Functions inherited from pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >
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.
const PointT & | getPointByIndex (uindex_t index_arg) const
| Get point at index from input pointcloud dataset.
LeafContainerT * | findLeafAtPoint (const PointT &point_arg) const
| Find octree leaf node at a given point.
void | getKeyBitSize ()
| Define octree key setting and octree depth based on defined bounding box.
void | adoptBoundingBoxToPoint (const PointT &point_idx_arg)
| Grow the bounding box/octree until point fits.
bool | isPointWithinBoundingBox (const PointT &point_idx_arg) const
| Checks if given point is within the bounding box of the octree.
void | genOctreeKeyforPoint (const PointT &point_arg, OctreeKey &key_arg) const
| Generate octree key for voxel at a given point.
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.
virtual bool | genOctreeKeyForDataT (const index_t &data_arg, OctreeKey &key_arg) const
| Virtual method for generating octree key for a given point index.
void | genLeafNodeCenterFromOctreeKey (const OctreeKey &key_arg, PointT &point_arg) const
| Generate a point at center of leaf node voxel.
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.
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.
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.
Protected Member Functions inherited from pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >
LeafContainerT * | createLeaf (const OctreeKey &key_arg)
| Create a leaf node.
LeafContainerT * | findLeaf (const OctreeKey &key_arg) const
| Find leaf node.
bool | existLeaf (const OctreeKey &key_arg) const
| Check for existence of a leaf node in the octree.
void | removeLeaf (const OctreeKey &key_arg)
| Remove leaf node from octree.
OctreeNode * | getRootNode () const
| Retrieve root node.
bool | branchHasChild (const BranchNode &branch_arg, unsigned char child_idx_arg) const
| Check if branch is pointing to a particular child node.
OctreeNode * | getBranchChildPtr (const BranchNode &branch_arg, unsigned char child_idx_arg) const
| Retrieve a child node pointer for child node at child_idx.
void | setBranchChildPtr (BranchNode &branch_arg, unsigned char child_idx_arg, OctreeNode *new_child_arg)
| Assign new child node to branch.
char | getBranchBitPattern (const BranchNode &branch_arg) const
| Generate bit pattern reflecting the existence of child node pointers.
void | deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
| Delete child node and all its subchilds from octree.
void | deleteBranch (BranchNode &branch_arg)
| Delete branch and all its subchilds from octree.
BranchNode * | createBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
| Create and add a new branch child to a branch class.
LeafNode * | createLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg)
| Create and add a new leaf child to a branch class.
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.
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.
bool | deleteLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg)
| Recursively search and delete leaf node.
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.

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

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

override default

Empty class deconstructor.

## 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, LeafContainerT, BranchContainerT, OctreeT >.

Definition at line 159 of file octree_pointcloud_voxelcentroid.h.

References pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::adoptBoundingBoxToPoint(), pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::createLeaf(), pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint(), and pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::input_.

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

References pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidAtPoint(), and pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::input_.

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

Referenced by pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidAtPoint().

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

References pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidsRecursive(), pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::leaf_count_, and pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::root_node_.

## 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::OctreeNode::getNodeType(), pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidsRecursive(), pcl::octree::LEAF_NODE, pcl::octree::OctreeKey::popBranch(), and pcl::octree::OctreeKey::pushBranch().

Referenced by pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroids(), and pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidsRecursive().

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

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