39 #ifndef PCL_OCTREE_POINTCLOUD_H
40 #define PCL_OCTREE_POINTCLOUD_H
42 #include "octree_base.h"
45 #include <pcl/point_cloud.h>
46 #include <pcl/point_types.h>
73 template<
typename PointT,
typename LeafContainerT = OctreeContainerPointIndices,
74 typename BranchContainerT = OctreeContainerEmpty,
75 typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT> >
129 typedef boost::shared_ptr<OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeT> >
Ptr;
130 typedef boost::shared_ptr<const OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeT> >
ConstPtr;
183 assert( this->leaf_count_ == 0);
203 return this->octree_depth_;
247 OctreeT::deleteTree ();
257 isVoxelOccupiedAtPoint (
const double point_x_arg,
const double point_y_arg,
const double point_z_arg)
const;
285 const Eigen::Vector3f& origin,
const Eigen::Vector3f& end,
318 defineBoundingBox (
const double min_x_arg,
const double min_y_arg,
const double min_z_arg,
319 const double max_x_arg,
const double max_y_arg,
const double max_z_arg);
329 defineBoundingBox (
const double max_x_arg,
const double max_y_arg,
const double max_z_arg);
349 getBoundingBox (
double& min_x_arg,
double& min_y_arg,
double& min_z_arg,
350 double& max_x_arg,
double& max_y_arg,
double& max_z_arg)
const;
402 assert(this->leaf_count_==0);
445 return (this->findLeaf (key));
468 return (! ( (point_idx_arg.x <
min_x_) || (point_idx_arg.y <
min_y_)
469 || (point_idx_arg.z <
min_z_) || (point_idx_arg.x >=
max_x_)
470 || (point_idx_arg.y >=
max_y_) || (point_idx_arg.z >=
max_z_)));
488 genOctreeKeyforPoint (
const double point_x_arg,
const double point_y_arg,
const double point_z_arg,
515 unsigned int tree_depth_arg,
PointT& point_arg)
const;
525 unsigned int tree_depth_arg, Eigen::Vector3f &min_pt,
526 Eigen::Vector3f &max_pt)
const;
576 #ifdef PCL_NO_PRECOMPILE
577 #include <pcl/octree/impl/octree_pointcloud.hpp>