template<typename ContainerT, typename PointT> void OutofcoreOctreeBase<ContainerT, PointT>::queryBBIncludes_subsample (const Eigen::Vector3d& min, const Eigen::Vector3d& max, const size_t query_depth, const double percent, AlignedPointTVector& dst) const { boost::shared_lock < boost::shared_mutex > lock (read_write_mutex_); dst.clear (); root_->queryBBIncludes_subsample (min, max, query_depth, percent, dst); }
template<typename PointT, typename LeafT, typename BranchT, typename OctreeT> int pcl::octree::OctreePointCloud<PointT, LeafT, BranchT, OctreeT>::getOccupiedVoxelCenters ( AlignedPointTVector &voxelCenterList_arg) const { OctreeKey key; key.x = key.y = key.z = 0; voxelCenterList_arg.clear (); return getOccupiedVoxelCentersRecursive (this->rootNode_, key, voxelCenterList_arg); }
int pcl::octree::OctreePointCloudSearch<PointT, LeafT, OctreeT>::getIntersectedVoxelCenters ( Eigen::Vector3f origin, Eigen::Vector3f direction, AlignedPointTVector &voxelCenterList) 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); return (0); }
template<typename PointT, typename LeafContainerT, typename BranchContainerT> int pcl::octree::OctreePointCloudSearch<PointT, LeafContainerT, BranchContainerT>::getIntersectedVoxelCenters ( Eigen::Vector3f origin, Eigen::Vector3f direction, AlignedPointTVector &voxel_center_list, int max_voxel_count) const { OctreeKey key; key.x = key.y = key.z = 0; voxel_center_list.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 getIntersectedVoxelCentersRecursive (min_x, min_y, min_z, max_x, max_y, max_z, a, this->root_node_, key, voxel_center_list, max_voxel_count); return (0); }