本文整理汇总了C++中LeafNode::getContainer方法的典型用法代码示例。如果您正苦于以下问题:C++ LeafNode::getContainer方法的具体用法?C++ LeafNode::getContainer怎么用?C++ LeafNode::getContainer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LeafNode
的用法示例。
在下文中一共展示了LeafNode::getContainer方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
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
{
// child iterator
unsigned char child_idx;
// iterate over all children
for (child_idx = 0; child_idx < 8; child_idx++)
{
// if child exist
if (branch_arg->hasChild (child_idx))
{
// add current branch voxel to key
key_arg.pushBranch (child_idx);
OctreeNode *child_node = branch_arg->getChildPtr (child_idx);
switch (child_node->getNodeType ())
{
case BRANCH_NODE:
{
// recursively proceed with indexed child branch
getVoxelCentroidsRecursive (static_cast<const BranchNode*> (child_node), key_arg, voxel_centroid_list_arg);
break;
}
case LEAF_NODE:
{
PointT new_centroid;
LeafNode* container = static_cast<LeafNode*> (child_node);
container->getContainer().getCentroid (new_centroid);
voxel_centroid_list_arg.push_back (new_centroid);
break;
}
default:
break;
}
// pop current branch voxel from key
key_arg.popBranch ();
}
}
}