int pcl::octree::OctreePointCloudSearch<PointT, LeafT, OctreeT>::getIntersectedVoxelIndices ( Eigen::Vector3f origin, Eigen::Vector3f direction, std::vector<int> &k_indices) const { OctreeKey key; key.x = key.y = key.z = 0; k_indices.clear (); // Voxel childIdx remapping unsigned char a = 0; double minX, minY, minZ, maxX, maxY, maxZ; initIntersectedVoxel (origin, direction, minX, minY, minZ, maxX, maxY, maxZ, a); if (max (max (minX, minY), minZ) < min (min (maxX, maxY), maxZ)) return getIntersectedVoxelIndicesRecursive (minX, minY, minZ, maxX, maxY, maxZ, a, this->rootNode_, key, k_indices); return (0); }
template<typename PointT, typename LeafContainerT, typename BranchContainerT> int pcl::octree::OctreePointCloudSearch<PointT, LeafContainerT, BranchContainerT>::getIntersectedVoxelIndices ( Eigen::Vector3f origin, Eigen::Vector3f direction, std::vector<int> &k_indices, int max_voxel_count) const { OctreeKey key; key.x = key.y = key.z = 0; k_indices.clear (); // Voxel child_idx remapping unsigned char a = 0; double min_x, min_y, min_z, max_x, max_y, max_z; initIntersectedVoxel (origin, direction, min_x, min_y, min_z, max_x, max_y, max_z, a); if (std::max (std::max (min_x, min_y), min_z) < std::min (std::min (max_x, max_y), max_z)) return getIntersectedVoxelIndicesRecursive (min_x, min_y, min_z, max_x, max_y, max_z, a, this->root_node_, key, k_indices, max_voxel_count); return (0); }
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) const { OctreeKey key; key.x = key.y = key.z = 0; voxelCenterList.clear (); // Voxel childIdx remapping unsigned char a = 0; double minX, minY, minZ, maxX, maxY, maxZ; initIntersectedVoxel (origin, direction, minX, minY, minZ, maxX, maxY, maxZ, a); if (max (max (minX, minY), minZ) < min (min (maxX, maxY), maxZ)) return getIntersectedVoxelCentersRecursive (minX, minY, minZ, maxX, maxY, maxZ, a, this->rootNode_, key, voxelCenterList, maxVoxelCount); return (0); }