声明:
/ ** \ brief在给定树级别的八叉树体素中心生成一个点
* \ param [in] key_arg八叉树键,用于寻址八叉树节点。
* \ param [in] tree_depth_arg 查询体素的octree深度
* \ param [out] point_arg写叶节点中心指向此引用
*/
void
genVoxelCenterFromOctreeKey (const OctreeKey & key_arg,
unsigned int tree_depth_arg, PointT& point_arg) const;
实现:
template<typename PointT, typename LeafContainerT, typename BranchContainerT, typename OctreeT> void
pcl::octree::OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeT>::genVoxelCenterFromOctreeKey (
const OctreeKey & key_arg,
unsigned int tree_depth_arg,
PointT& point_arg) const
{
// generate point for voxel center defined by treedepth (bitLen) and key
point_arg.x = static_cast<float> ((static_cast <double> (key_arg.x) + 0.5f) * (this->resolution_ * static_cast<double> (1 << (this->octree_depth_ - tree_depth_arg))) + this->min_x_);
point_arg.y = static_cast<float> ((static_cast <double> (key_arg.y) + 0.5f) * (this->resolution_ * static_cast<double> (1 << (this->octree_depth_ - tree_depth_arg))) + this->min_y_);
point_arg.z = static_cast<float> ((static_cast <double> (key_arg.z) + 0.5f) * (this->resolution_ * static_cast<double> (1 << (this->octree_depth_ - tree_depth_arg))) + this->min_z_);
}