Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT > Class Template Reference

Octree pointcloud class More...

#include <pcl/octree/octree_pointcloud.h>

+ Inheritance diagram for pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >:
+ Collaboration diagram for pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >:

Public Types

using Base = OctreeT
 
using LeafNode = typename OctreeT::LeafNode
 
using BranchNode = typename OctreeT::BranchNode
 
using IndicesPtr = shared_ptr< Indices >
 
using IndicesConstPtr = shared_ptr< const Indices >
 
using PointCloud = pcl::PointCloud< PointT >
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using SingleBuffer = OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeBase< LeafContainerT > >
 
using Ptr = shared_ptr< OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT > >
 
using ConstPtr = shared_ptr< const OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT > >
 
using AlignedPointTVector = std::vector< PointT, Eigen::aligned_allocator< PointT > >
 
using AlignedPointXYZVector = std::vector< PointXYZ, Eigen::aligned_allocator< PointXYZ > >
 
- Public Types inherited from pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
using OctreeT = OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
 
using BranchNode = OctreeBranchNode< OctreeContainerEmpty >
 
using LeafNode = OctreeLeafNode< OctreeContainerPointIndices >
 
using BranchContainer = OctreeContainerEmpty
 
using LeafContainer = OctreeContainerPointIndices
 
using Iterator = OctreeDepthFirstIterator< OctreeT >
 
using ConstIterator = OctreeDepthFirstIterator< const OctreeT >
 
using LeafNodeIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
 
using ConstLeafNodeIterator = OctreeLeafNodeDepthFirstIterator< const OctreeT >
 
using LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
 
using ConstLeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< const OctreeT >
 
using DepthFirstIterator = OctreeDepthFirstIterator< OctreeT >
 
using ConstDepthFirstIterator = OctreeDepthFirstIterator< const OctreeT >
 
using BreadthFirstIterator = OctreeBreadthFirstIterator< OctreeT >
 
using ConstBreadthFirstIterator = OctreeBreadthFirstIterator< const OctreeT >
 
using FixedDepthIterator = OctreeFixedDepthIterator< OctreeT >
 
using ConstFixedDepthIterator = OctreeFixedDepthIterator< const OctreeT >
 
using LeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< OctreeT >
 
using ConstLeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< const OctreeT >
 

Public Member Functions

 OctreePointCloud (const double resolution_arg)
 Octree pointcloud constructor. More...
 
void setInputCloud (const PointCloudConstPtr &cloud_arg, const IndicesConstPtr &indices_arg=IndicesConstPtr())
 Provide a pointer to the input data set. More...
 
IndicesConstPtr const getIndices () const
 Get a pointer to the vector of indices used. More...
 
PointCloudConstPtr getInputCloud () const
 Get a pointer to the input point cloud dataset. More...
 
void setEpsilon (double eps)
 Set the search epsilon precision (error bound) for nearest neighbors searches. More...
 
double getEpsilon () const
 Get the search epsilon precision (error bound) for nearest neighbors searches. More...
 
void setResolution (double resolution_arg)
 Set/change the octree voxel resolution. More...
 
double getResolution () const
 Get octree voxel resolution. More...
 
uindex_t getTreeDepth () const
 Get the maximum depth of the octree. More...
 
void addPointsFromInputCloud ()
 Add points from input point cloud to octree. More...
 
void addPointFromCloud (uindex_t point_idx_arg, IndicesPtr indices_arg)
 Add point at given index from input point cloud to octree. More...
 
void addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg)
 Add point simultaneously to octree and input point cloud. More...
 
void addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg, IndicesPtr indices_arg)
 Add point simultaneously to octree and input point cloud. More...
 
bool isVoxelOccupiedAtPoint (const PointT &point_arg) const
 Check if voxel at given point exist. More...
 
void deleteTree ()
 Delete the octree structure and its leaf nodes. More...
 
bool isVoxelOccupiedAtPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg) const
 Check if voxel at given point coordinates exist. More...
 
bool isVoxelOccupiedAtPoint (const index_t &point_idx_arg) const
 Check if voxel at given point from input cloud exist. More...
 
uindex_t getOccupiedVoxelCenters (AlignedPointTVector &voxel_center_list_arg) const
 Get a PointT vector of centers of all occupied voxels. More...
 
uindex_t getApproxIntersectedVoxelCentersBySegment (const Eigen::Vector3f &origin, const Eigen::Vector3f &end, AlignedPointTVector &voxel_center_list, float precision=0.2)
 Get a PointT vector of centers of voxels intersected by a line segment. More...
 
void deleteVoxelAtPoint (const PointT &point_arg)
 Delete leaf node / voxel at given point. More...
 
void deleteVoxelAtPoint (const index_t &point_idx_arg)
 Delete leaf node / voxel at given point from input cloud. More...
 
void defineBoundingBox ()
 Investigate dimensions of pointcloud data set and define corresponding bounding box for octree. More...
 
void defineBoundingBox (const double min_x_arg, const double min_y_arg, const double min_z_arg, const double max_x_arg, const double max_y_arg, const double max_z_arg)
 Define bounding box for octree. More...
 
void defineBoundingBox (const double max_x_arg, const double max_y_arg, const double max_z_arg)
 Define bounding box for octree. More...
 
void defineBoundingBox (const double cubeLen_arg)
 Define bounding box cube for octree. More...
 
void getBoundingBox (double &min_x_arg, double &min_y_arg, double &min_z_arg, double &max_x_arg, double &max_y_arg, double &max_z_arg) const
 Get bounding box for octree. More...
 
double getVoxelSquaredDiameter (uindex_t tree_depth_arg) const
 Calculates the squared diameter of a voxel at given tree depth. More...
 
double getVoxelSquaredDiameter () const
 Calculates the squared diameter of a voxel at leaf depth. More...
 
double getVoxelSquaredSideLen (uindex_t tree_depth_arg) const
 Calculates the squared voxel cube side length at given tree depth. More...
 
double getVoxelSquaredSideLen () const
 Calculates the squared voxel cube side length at leaf level. More...
 
void getVoxelBounds (const OctreeIteratorBase< OctreeT > &iterator, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
 Generate bounds of the current voxel of an octree iterator. More...
 
void enableDynamicDepth (std::size_t maxObjsPerLeaf)
 Enable dynamic octree structure. More...
 
- Public Member Functions inherited from pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
Iterator begin (uindex_t max_depth_arg=0u)
 
ConstIterator begin (uindex_t max_depth_arg=0u) const
 
ConstIterator cbegin (uindex_t max_depth_arg=0u) const
 
const Iterator end ()
 
const ConstIterator end () const
 
const ConstIterator cend () const
 
LeafNodeDepthFirstIterator leaf_depth_begin (uindex_t max_depth_arg=0u)
 
ConstLeafNodeDepthFirstIterator leaf_depth_begin (uindex_t max_depth_arg=0u) const
 
const LeafNodeDepthFirstIterator leaf_depth_end ()
 
const ConstLeafNodeDepthFirstIterator leaf_depth_end () const
 
DepthFirstIterator depth_begin (uindex_t max_depth_arg=0u)
 
ConstDepthFirstIterator depth_begin (uindex_t max_depth_arg=0u) const
 
const DepthFirstIterator depth_end ()
 
const ConstDepthFirstIterator depth_end () const
 
BreadthFirstIterator breadth_begin (uindex_t max_depth_arg=0u)
 
ConstBreadthFirstIterator breadth_begin (uindex_t max_depth_arg=0u) const
 
const BreadthFirstIterator breadth_end ()
 
const ConstBreadthFirstIterator breadth_end () const
 
FixedDepthIterator fixed_depth_begin (uindex_t fixed_depth_arg=0u)
 
ConstFixedDepthIterator fixed_depth_begin (uindex_t fixed_depth_arg=0u) const
 
const FixedDepthIterator fixed_depth_end ()
 
const ConstFixedDepthIterator fixed_depth_end () const
 
LeafNodeBreadthFirstIterator leaf_breadth_begin (uindex_t max_depth_arg=0u)
 
ConstLeafNodeBreadthFirstIterator leaf_breadth_begin (uindex_t max_depth_arg=0u) const
 
const LeafNodeBreadthFirstIterator leaf_breadth_end ()
 
const ConstLeafNodeBreadthFirstIterator leaf_breadth_end () const
 
 OctreeBase ()
 Empty constructor. More...
 
 OctreeBase (const OctreeBase &source)
 Copy constructor. More...
 
virtual ~OctreeBase ()
 Empty deconstructor. More...
 
OctreeBaseoperator= (const OctreeBase &source)
 Copy operator. More...
 
void setMaxVoxelIndex (uindex_t max_voxel_index_arg)
 Set the maximum amount of voxels per dimension. More...
 
void setTreeDepth (uindex_t max_depth_arg)
 Set the maximum depth of the octree. More...
 
uindex_t getTreeDepth () const
 Get the maximum depth of the octree. More...
 
OctreeContainerPointIndicescreateLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
 Create new leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
 
OctreeContainerPointIndicesfindLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg) const
 Find leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
 
bool existLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg) const
 idx_x_arg for the existence of leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
 
void removeLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
 Remove leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
 
std::size_t getLeafCount () const
 Return the amount of existing leafs in the octree. More...
 
std::size_t getBranchCount () const
 Return the amount of existing branch nodes in the octree. More...
 
void deleteTree ()
 Delete the octree structure and its leaf nodes. More...
 
void serializeTree (std::vector< char > &binary_tree_out_arg) const
 Serialize octree into a binary output vector describing its branch node structure. More...
 
void serializeTree (std::vector< char > &binary_tree_out_arg, std::vector< OctreeContainerPointIndices * > &leaf_container_vector_arg) const
 Serialize octree into a binary output vector describing its branch node structure and push all LeafContainerT elements stored in the octree to a vector. More...
 
void serializeLeafs (std::vector< OctreeContainerPointIndices * > &leaf_container_vector_arg)
 Outputs a vector of all LeafContainerT elements that are stored within the octree leaf nodes. More...
 
void deserializeTree (std::vector< char > &binary_tree_input_arg)
 Deserialize a binary octree description vector and create a corresponding octree structure. More...
 
void deserializeTree (std::vector< char > &binary_tree_input_arg, std::vector< OctreeContainerPointIndices * > &leaf_container_vector_arg)
 Deserialize a binary octree description and create a corresponding octree structure. More...
 

Protected Member Functions

virtual void addPointIdx (uindex_t point_idx_arg)
 Add point at index from input pointcloud dataset to octree. More...
 
void expandLeafNode (LeafNode *leaf_node, BranchNode *parent_branch, unsigned char child_idx, uindex_t depth_mask)
 Add point at index from input pointcloud dataset to octree. More...
 
const PointTgetPointByIndex (uindex_t index_arg) const
 Get point at index from input pointcloud dataset. More...
 
LeafContainerT * findLeafAtPoint (const PointT &point_arg) const
 Find octree leaf node at a given point. More...
 
void getKeyBitSize ()
 Define octree key setting and octree depth based on defined bounding box. More...
 
void adoptBoundingBoxToPoint (const PointT &point_idx_arg)
 Grow the bounding box/octree until point fits. More...
 
bool isPointWithinBoundingBox (const PointT &point_idx_arg) const
 Checks if given point is within the bounding box of the octree. More...
 
void genOctreeKeyforPoint (const PointT &point_arg, OctreeKey &key_arg) const
 Generate octree key for voxel at a given point. More...
 
void genOctreeKeyforPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg, OctreeKey &key_arg) const
 Generate octree key for voxel at a given point. More...
 
virtual bool genOctreeKeyForDataT (const index_t &data_arg, OctreeKey &key_arg) const
 Virtual method for generating octree key for a given point index. More...
 
void genLeafNodeCenterFromOctreeKey (const OctreeKey &key_arg, PointT &point_arg) const
 Generate a point at center of leaf node voxel. More...
 
void genVoxelCenterFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, PointT &point_arg) const
 Generate a point at center of octree voxel at given tree level. More...
 
void genVoxelBoundsFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
 Generate bounds of an octree voxel using octree key and tree depth arguments. More...
 
uindex_t getOccupiedVoxelCentersRecursive (const BranchNode *node_arg, const OctreeKey &key_arg, AlignedPointTVector &voxel_center_list_arg) const
 Recursively search the tree for all leaf nodes and return a vector of voxel centers. More...
 
- Protected Member Functions inherited from pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
OctreeContainerPointIndicescreateLeaf (const OctreeKey &key_arg)
 Create a leaf node. More...
 
OctreeContainerPointIndicesfindLeaf (const OctreeKey &key_arg) const
 Find leaf node. More...
 
bool existLeaf (const OctreeKey &key_arg) const
 Check for existence of a leaf node in the octree. More...
 
void removeLeaf (const OctreeKey &key_arg)
 Remove leaf node from octree. More...
 
OctreeNodegetRootNode () const
 Retrieve root node. More...
 
bool branchHasChild (const BranchNode &branch_arg, unsigned char child_idx_arg) const
 Check if branch is pointing to a particular child node. More...
 
OctreeNodegetBranchChildPtr (const BranchNode &branch_arg, unsigned char child_idx_arg) const
 Retrieve a child node pointer for child node at child_idx. More...
 
void setBranchChildPtr (BranchNode &branch_arg, unsigned char child_idx_arg, OctreeNode *new_child_arg)
 Assign new child node to branch. More...
 
char getBranchBitPattern (const BranchNode &branch_arg) const
 Generate bit pattern reflecting the existence of child node pointers. More...
 
void deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
 Delete child node and all its subchilds from octree. More...
 
void deleteBranch (BranchNode &branch_arg)
 Delete branch and all its subchilds from octree. More...
 
BranchNodecreateBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
 Create and add a new branch child to a branch class. More...
 
LeafNodecreateLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg)
 Create and add a new leaf child to a branch class. More...
 
uindex_t createLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafNode *&return_leaf_arg, BranchNode *&parent_of_leaf_arg)
 Create a leaf node at octree key. More...
 
void findLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, OctreeContainerPointIndices *&result_arg) const
 Recursively search for a given leaf node and return a pointer. More...
 
bool deleteLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg)
 Recursively search and delete leaf node. More...
 
void serializeTreeRecursive (const BranchNode *branch_arg, OctreeKey &key_arg, std::vector< char > *binary_tree_out_arg, typename std::vector< OctreeContainerPointIndices * > *leaf_container_vector_arg) const
 Recursively explore the octree and output binary octree description together with a vector of leaf node LeafContainerTs. More...
 
void deserializeTreeRecursive (BranchNode *branch_arg, uindex_t depth_mask_arg, OctreeKey &key_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_end_arg, typename std::vector< OctreeContainerPointIndices * >::const_iterator *leaf_container_vector_it_arg, typename std::vector< OctreeContainerPointIndices * >::const_iterator *leaf_container_vector_it_end_arg)
 Recursive method for deserializing octree structure. More...
 
virtual void serializeTreeCallback (OctreeContainerPointIndices &, const OctreeKey &) const
 Callback executed for every leaf node during serialization. More...
 
virtual void deserializeTreeCallback (OctreeContainerPointIndices &, const OctreeKey &)
 Callback executed for every leaf node during deserialization. More...
 
bool octreeCanResize () const
 Test if octree is able to dynamically change its depth. More...
 

Protected Attributes

PointCloudConstPtr input_
 Pointer to input point cloud dataset. More...
 
IndicesConstPtr indices_
 A pointer to the vector of point indices to use. More...
 
double epsilon_ {0.0}
 Epsilon precision (error bound) for nearest neighbors searches. More...
 
double resolution_
 Octree resolution. More...
 
double min_x_ {0.0}
 
double max_x_
 
double min_y_ {0.0}
 
double max_y_
 
double min_z_ {0.0}
 
double max_z_
 
bool bounding_box_defined_ {false}
 Flag indicating if octree has defined bounding box. More...
 
std::size_t max_objs_per_leaf_ {0}
 Amount of DataT objects per leafNode before expanding branch. More...
 
- Protected Attributes inherited from pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
std::size_t leaf_count_
 Amount of leaf nodes
More...
 
std::size_t branch_count_
 Amount of branch nodes
More...
 
BranchNoderoot_node_
 Pointer to root branch node of octree
More...
 
uindex_t depth_mask_
 Depth mask based on octree depth
More...
 
uindex_t octree_depth_
 Octree depth. More...
 
bool dynamic_depth_enabled_
 Enable dynamic_depth. More...
 
OctreeKey max_key_
 key range More...
 

Detailed Description

template<typename PointT, typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
class pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >

Octree pointcloud class

Note
Octree implementation for pointclouds. Only indices are stored by the octree leaf nodes (zero-copy).
The octree pointcloud class needs to be initialized with its voxel resolution. Its bounding box is automatically adjusted
according to the pointcloud dimension or it can be predefined.
Note: The tree depth equates to the resolution and the bounding box dimensions of the octree.
Template Parameters
PointTtype of point used in pointcloud
LeafContainerTleaf node container
BranchContainerTbranch node container
OctreeToctree implementation
Author
Julius Kammerl * (juliu.nosp@m.s@ka.nosp@m.mmerl.nosp@m..de)

Definition at line 72 of file octree_pointcloud.h.

Member Typedef Documentation

◆ AlignedPointTVector

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::AlignedPointTVector = std::vector<PointT, Eigen::aligned_allocator<PointT> >

Definition at line 107 of file octree_pointcloud.h.

◆ AlignedPointXYZVector

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::AlignedPointXYZVector = std::vector<PointXYZ, Eigen::aligned_allocator<PointXYZ> >

Definition at line 108 of file octree_pointcloud.h.

◆ Base

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::Base = OctreeT

Definition at line 74 of file octree_pointcloud.h.

◆ BranchNode

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::BranchNode = typename OctreeT::BranchNode

Definition at line 77 of file octree_pointcloud.h.

◆ ConstPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::ConstPtr = shared_ptr< const OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeT> >

Definition at line 103 of file octree_pointcloud.h.

◆ IndicesConstPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::IndicesConstPtr = shared_ptr<const Indices>

Definition at line 86 of file octree_pointcloud.h.

◆ IndicesPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::IndicesPtr = shared_ptr<Indices>

Definition at line 85 of file octree_pointcloud.h.

◆ LeafNode

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::LeafNode = typename OctreeT::LeafNode

Definition at line 76 of file octree_pointcloud.h.

◆ PointCloud

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::PointCloud = pcl::PointCloud<PointT>

Definition at line 88 of file octree_pointcloud.h.

◆ PointCloudConstPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::PointCloudConstPtr = typename PointCloud::ConstPtr

Definition at line 90 of file octree_pointcloud.h.

◆ PointCloudPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::PointCloudPtr = typename PointCloud::Ptr

Definition at line 89 of file octree_pointcloud.h.

◆ Ptr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::Ptr = shared_ptr<OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeT> >

Definition at line 101 of file octree_pointcloud.h.

◆ SingleBuffer

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::SingleBuffer = OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeBase<LeafContainerT> >

Definition at line 93 of file octree_pointcloud.h.

Constructor & Destructor Documentation

◆ OctreePointCloud()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::OctreePointCloud ( const double  resolution_arg)

Octree pointcloud constructor.

Parameters
[in]resolution_argoctree resolution at lowest octree level

Definition at line 53 of file octree_pointcloud.hpp.

Member Function Documentation

◆ addPointFromCloud()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointFromCloud ( uindex_t  point_idx_arg,
IndicesPtr  indices_arg 
)

Add point at given index from input point cloud to octree.

Index will be also added to indices vector.

Parameters
[in]point_idx_argindex of point to be added
[in]indices_argpointer to indices vector of the dataset (given by setInputCloud)

Definition at line 105 of file octree_pointcloud.hpp.

◆ addPointIdx()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointIdx ( uindex_t  point_idx_arg)
protectedvirtual

◆ addPointsFromInputCloud()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointsFromInputCloud

◆ addPointToCloud() [1/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointToCloud ( const PointT point_arg,
PointCloudPtr  cloud_arg 
)

Add point simultaneously to octree and input point cloud.

Parameters
[in]point_argpoint to be added
[in]cloud_argpointer to input point cloud dataset (given by setInputCloud)

Definition at line 119 of file octree_pointcloud.hpp.

◆ addPointToCloud() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointToCloud ( const PointT point_arg,
PointCloudPtr  cloud_arg,
IndicesPtr  indices_arg 
)

Add point simultaneously to octree and input point cloud.

A corresponding index will be added to the indices vector.

Parameters
[in]point_argpoint to be added
[in]cloud_argpointer to input point cloud dataset (given by setInputCloud)
[in]indices_argpointer to indices vector of the dataset (given by setInputCloud)

Definition at line 135 of file octree_pointcloud.hpp.

◆ adoptBoundingBoxToPoint()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::adoptBoundingBoxToPoint ( const PointT point_idx_arg)
protected

Grow the bounding box/octree until point fits.

Parameters
[in]point_idx_argpoint that should be within bounding box;

Definition at line 492 of file octree_pointcloud.hpp.

◆ defineBoundingBox() [1/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox

Investigate dimensions of pointcloud data set and define corresponding bounding box for octree.

Definition at line 330 of file octree_pointcloud.hpp.

Referenced by pcl::TextureMapping< PointInT >::removeOccludedPoints(), and pcl::TextureMapping< PointInT >::showOcclusions().

◆ defineBoundingBox() [2/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox ( const double  cubeLen_arg)

Define bounding box cube for octree.

Note
Lower bounding box corner is set to (0, 0, 0)
Bounding box cannot be changed once the octree contains elements.
Parameters
[in]cubeLen_argside length of bounding box cube.

Definition at line 438 of file octree_pointcloud.hpp.

◆ defineBoundingBox() [3/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox ( const double  max_x_arg,
const double  max_y_arg,
const double  max_z_arg 
)

Define bounding box for octree.

Note
Lower bounding box point is set to (0, 0, 0)
Bounding box cannot be changed once the octree contains elements.
Parameters
[in]max_x_argX coordinate of upper bounding box corner
[in]max_y_argY coordinate of upper bounding box corner
[in]max_z_argZ coordinate of upper bounding box corner

Definition at line 405 of file octree_pointcloud.hpp.

◆ defineBoundingBox() [4/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox ( const double  min_x_arg,
const double  min_y_arg,
const double  min_z_arg,
const double  max_x_arg,
const double  max_y_arg,
const double  max_z_arg 
)

Define bounding box for octree.

Note
Bounding box cannot be changed once the octree contains elements.
Parameters
[in]min_x_argX coordinate of lower bounding box corner
[in]min_y_argY coordinate of lower bounding box corner
[in]min_z_argZ coordinate of lower bounding box corner
[in]max_x_argX coordinate of upper bounding box corner
[in]max_y_argY coordinate of upper bounding box corner
[in]max_z_argZ coordinate of upper bounding box corner

Definition at line 369 of file octree_pointcloud.hpp.

◆ deleteTree()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree ( )
inline

◆ deleteVoxelAtPoint() [1/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteVoxelAtPoint ( const index_t point_idx_arg)

Delete leaf node / voxel at given point from input cloud.

Parameters
[in]point_idx_argindex of point addressing the voxel to be deleted.

Definition at line 234 of file octree_pointcloud.hpp.

◆ deleteVoxelAtPoint() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteVoxelAtPoint ( const PointT point_arg)

Delete leaf node / voxel at given point.

Parameters
[in]point_argpoint addressing the voxel to be deleted.

Definition at line 213 of file octree_pointcloud.hpp.

◆ enableDynamicDepth()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::enableDynamicDepth ( std::size_t  maxObjsPerLeaf)
inline

Enable dynamic octree structure.

Note
Leaf nodes are kept as close to the root as possible and are only expanded if the number of DataT objects within a leaf node exceeds a fixed limit.
Parameters
maxObjsPerLeafmaximum number of DataT objects per leaf

Definition at line 421 of file octree_pointcloud.h.

References pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::dynamic_depth_enabled_, pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::leaf_count_, and pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_objs_per_leaf_.

◆ expandLeafNode()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::expandLeafNode ( LeafNode leaf_node,
BranchNode parent_branch,
unsigned char  child_idx,
uindex_t  depth_mask 
)
protected

Add point at index from input pointcloud dataset to octree.

Parameters
[in]leaf_nodeto be expanded
[in]parent_branchparent of leaf node to be expanded
[in]child_idxchild index of leaf node (in parent branch)
[in]depth_maskof leaf node to be expanded

Definition at line 585 of file octree_pointcloud.hpp.

◆ findLeafAtPoint()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
LeafContainerT* pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::findLeafAtPoint ( const PointT point_arg) const
inlineprotected

Find octree leaf node at a given point.

Parameters
[in]point_argquery point
Returns
pointer to leaf node. If leaf node does not exist, pointer is 0.

Definition at line 466 of file octree_pointcloud.h.

References pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::findLeaf(), and pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint().

◆ genLeafNodeCenterFromOctreeKey()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genLeafNodeCenterFromOctreeKey ( const OctreeKey key_arg,
PointT point_arg 
) const
protected

Generate a point at center of leaf node voxel.

Parameters
[in]key_argoctree key addressing a leaf node.
[out]point_argwrite leaf node voxel center to this point reference

Definition at line 823 of file octree_pointcloud.hpp.

References pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y, and pcl::octree::OctreeKey::z.

◆ genOctreeKeyForDataT()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyForDataT ( const index_t data_arg,
OctreeKey key_arg 
) const
protectedvirtual

Virtual method for generating octree key for a given point index.

Note
This method enables to assign indices to leaf nodes during octree deserialization.
Parameters
[in]data_argindex value representing a point in the dataset given by setInputCloud
[out]key_argwrite octree key to this reference
Returns
"true" - octree keys are assignable

Definition at line 806 of file octree_pointcloud.hpp.

◆ genOctreeKeyforPoint() [1/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint ( const double  point_x_arg,
const double  point_y_arg,
const double  point_z_arg,
OctreeKey key_arg 
) const
protected

Generate octree key for voxel at a given point.

Parameters
[in]point_x_argX coordinate of point addressing a voxel
[in]point_y_argY coordinate of point addressing a voxel
[in]point_z_argZ coordinate of point addressing a voxel
[out]key_argwrite octree key to this reference

Definition at line 784 of file octree_pointcloud.hpp.

◆ genOctreeKeyforPoint() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint ( const PointT point_arg,
OctreeKey key_arg 
) const
protected

Generate octree key for voxel at a given point.

Parameters
[in]point_argthe point addressing a voxel
[out]key_argwrite octree key to this reference

Definition at line 765 of file octree_pointcloud.hpp.

References pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y, and pcl::octree::OctreeKey::z.

Referenced by pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::findLeafAtPoint().

◆ genVoxelBoundsFromOctreeKey()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelBoundsFromOctreeKey ( const OctreeKey key_arg,
uindex_t  tree_depth_arg,
Eigen::Vector3f &  min_pt,
Eigen::Vector3f &  max_pt 
) const
protected

Generate bounds of an octree voxel using octree key and tree depth arguments.

Parameters
[in]key_argoctree key addressing an octree node.
[in]tree_depth_argoctree depth of query voxel
[out]min_ptlower bound of voxel
[out]max_ptupper bound of voxel

Definition at line 870 of file octree_pointcloud.hpp.

References pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y, and pcl::octree::OctreeKey::z.

Referenced by pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelBounds().

◆ genVoxelCenterFromOctreeKey()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelCenterFromOctreeKey ( const OctreeKey key_arg,
uindex_t  tree_depth_arg,
PointT point_arg 
) const
protected

Generate a point at center of octree voxel at given tree level.

Parameters
[in]key_argoctree key addressing an octree node.
[in]tree_depth_argoctree depth of query voxel
[out]point_argwrite leaf node center point to this reference

Definition at line 841 of file octree_pointcloud.hpp.

References pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y, and pcl::octree::OctreeKey::z.

◆ getApproxIntersectedVoxelCentersBySegment()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
pcl::uindex_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getApproxIntersectedVoxelCentersBySegment ( const Eigen::Vector3f &  origin,
const Eigen::Vector3f &  end,
AlignedPointTVector voxel_center_list,
float  precision = 0.2 
)

Get a PointT vector of centers of voxels intersected by a line segment.

This returns a approximation of the actual intersected voxels by walking along the line with small steps. Voxels are ordered, from closest to furthest w.r.t. the origin.

Parameters
[in]originorigin of the line segment
[in]endend of the line segment
[out]voxel_center_listresults are written to this vector of PointT elements
[in]precisiondetermines the size of the steps: step_size = octree_resolution x precision
Returns
number of intersected voxels

Definition at line 267 of file octree_pointcloud.hpp.

Referenced by pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature().

◆ getBoundingBox()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getBoundingBox ( double &  min_x_arg,
double &  min_y_arg,
double &  min_z_arg,
double &  max_x_arg,
double &  max_y_arg,
double &  max_z_arg 
) const

Get bounding box for octree.

Note
Bounding box cannot be changed once the octree contains elements.
Parameters
[in]min_x_argX coordinate of lower bounding box corner
[in]min_y_argY coordinate of lower bounding box corner
[in]min_z_argZ coordinate of lower bounding box corner
[in]max_x_argX coordinate of upper bounding box corner
[in]max_y_argY coordinate of upper bounding box corner
[in]max_z_argZ coordinate of upper bounding box corner

Definition at line 469 of file octree_pointcloud.hpp.

◆ getEpsilon()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getEpsilon ( ) const
inline

Get the search epsilon precision (error bound) for nearest neighbors searches.

Definition at line 155 of file octree_pointcloud.h.

References pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::epsilon_.

◆ getIndices()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
IndicesConstPtr const pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getIndices ( ) const
inline

Get a pointer to the vector of indices used.

Returns
pointer to vector of indices used.

Definition at line 128 of file octree_pointcloud.h.

References pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::indices_.

◆ getInputCloud()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
PointCloudConstPtr pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getInputCloud ( ) const
inline

Get a pointer to the input point cloud dataset.

Returns
pointer to pointcloud input class.

Definition at line 137 of file octree_pointcloud.h.

References pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::input_.

◆ getKeyBitSize()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getKeyBitSize
protected

Define octree key setting and octree depth based on defined bounding box.

Definition at line 697 of file octree_pointcloud.hpp.

References pcl::octree::OctreeKey::maxDepth.

Referenced by pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setResolution().

◆ getOccupiedVoxelCenters()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
pcl::uindex_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCenters ( AlignedPointTVector voxel_center_list_arg) const

Get a PointT vector of centers of all occupied voxels.

Parameters
[out]voxel_center_list_argresults are written to this vector of PointT elements
Returns
number of occupied voxels

Definition at line 250 of file octree_pointcloud.hpp.

References pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y, and pcl::octree::OctreeKey::z.

Referenced by pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature().

◆ getOccupiedVoxelCentersRecursive()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
pcl::uindex_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCentersRecursive ( const BranchNode node_arg,
const OctreeKey key_arg,
AlignedPointTVector voxel_center_list_arg 
) const
protected

Recursively search the tree for all leaf nodes and return a vector of voxel centers.

Parameters
[in]node_argcurrent octree node to be explored
[in]key_argoctree key addressing a leaf node.
[out]voxel_center_list_argresults are written to this vector of PointT elements
Returns
number of voxels found

Definition at line 937 of file octree_pointcloud.hpp.

References pcl::octree::BRANCH_NODE, pcl::octree::OctreeNode::getNodeType(), pcl::octree::LEAF_NODE, pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y, and pcl::octree::OctreeKey::z.

◆ getPointByIndex()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
const PointT & pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getPointByIndex ( uindex_t  index_arg) const
protected

Get point at index from input pointcloud dataset.

Parameters
[in]index_argindex representing the point in the dataset given by setInputCloud
Returns
PointT from input pointcloud dataset

Definition at line 683 of file octree_pointcloud.hpp.

◆ getResolution()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getResolution ( ) const
inline

Get octree voxel resolution.

Returns
voxel resolution at lowest tree level

Definition at line 182 of file octree_pointcloud.h.

References pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::resolution_.

◆ getTreeDepth()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
uindex_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getTreeDepth ( ) const
inline

Get the maximum depth of the octree.

Returns
depth_arg: maximum depth of octree

Definition at line 191 of file octree_pointcloud.h.

References pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::octree_depth_.

◆ getVoxelBounds()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelBounds ( const OctreeIteratorBase< OctreeT > &  iterator,
Eigen::Vector3f &  min_pt,
Eigen::Vector3f &  max_pt 
) const
inline

Generate bounds of the current voxel of an octree iterator.

Parameters
[in]iteratoroctree iterator
[out]min_ptlower bound of voxel
[out]max_ptupper bound of voxel

Definition at line 405 of file octree_pointcloud.h.

References pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelBoundsFromOctreeKey(), pcl::octree::OctreeIteratorBase< OctreeT >::getCurrentOctreeDepth(), and pcl::octree::OctreeIteratorBase< OctreeT >::getCurrentOctreeKey().

◆ getVoxelSquaredDiameter() [1/2]

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredDiameter ( ) const
inline

Calculates the squared diameter of a voxel at leaf depth.

Returns
squared diameter

Definition at line 378 of file octree_pointcloud.h.

References pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::octree_depth_.

◆ getVoxelSquaredDiameter() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredDiameter ( uindex_t  tree_depth_arg) const

Calculates the squared diameter of a voxel at given tree depth.

Parameters
[in]tree_depth_argdepth/level in octree
Returns
squared diameter

Definition at line 924 of file octree_pointcloud.hpp.

◆ getVoxelSquaredSideLen() [1/2]

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredSideLen ( ) const
inline

Calculates the squared voxel cube side length at leaf level.

Returns
squared voxel cube side length

Definition at line 394 of file octree_pointcloud.h.

References pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >::octree_depth_.

◆ getVoxelSquaredSideLen() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredSideLen ( uindex_t  tree_depth_arg) const

Calculates the squared voxel cube side length at given tree depth.

Parameters
[in]tree_depth_argdepth/level in octree
Returns
squared voxel cube side length

Definition at line 903 of file octree_pointcloud.hpp.

◆ isPointWithinBoundingBox()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isPointWithinBoundingBox ( const PointT point_idx_arg) const
inlineprotected

◆ isVoxelOccupiedAtPoint() [1/3]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isVoxelOccupiedAtPoint ( const double  point_x_arg,
const double  point_y_arg,
const double  point_z_arg 
) const

Check if voxel at given point coordinates exist.

Parameters
[in]point_x_argX coordinate of point to be checked
[in]point_y_argY coordinate of point to be checked
[in]point_z_argZ coordinate of point to be checked
Returns
"true" if voxel exist; "false" otherwise

Definition at line 192 of file octree_pointcloud.hpp.

◆ isVoxelOccupiedAtPoint() [2/3]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isVoxelOccupiedAtPoint ( const index_t point_idx_arg) const

Check if voxel at given point from input cloud exist.

Parameters
[in]point_idx_argpoint to be checked
Returns
"true" if voxel exist; "false" otherwise

Definition at line 176 of file octree_pointcloud.hpp.

◆ isVoxelOccupiedAtPoint() [3/3]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isVoxelOccupiedAtPoint ( const PointT point_arg) const

Check if voxel at given point exist.

Parameters
[in]point_argpoint to be checked
Returns
"true" if voxel exist; "false" otherwise

Definition at line 154 of file octree_pointcloud.hpp.

◆ setEpsilon()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setEpsilon ( double  eps)
inline

Set the search epsilon precision (error bound) for nearest neighbors searches.

Parameters
[in]epsprecision (error bound) for nearest neighbors searches

Definition at line 147 of file octree_pointcloud.h.

References pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::epsilon_.

◆ setInputCloud()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setInputCloud ( const PointCloudConstPtr cloud_arg,
const IndicesConstPtr indices_arg = IndicesConstPtr() 
)
inline

Provide a pointer to the input data set.

Parameters
[in]cloud_argthe const boost shared pointer to a PointCloud message
[in]indices_argthe point indices subset that is to be used from cloud - if 0 the whole point cloud is used

Definition at line 117 of file octree_pointcloud.h.

References pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::indices_, and pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::input_.

Referenced by pcl::applyMorphologicalOperator(), pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeFeature(), pcl::TextureMapping< PointInT >::removeOccludedPoints(), and pcl::TextureMapping< PointInT >::showOcclusions().

◆ setResolution()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setResolution ( double  resolution_arg)
inline

Member Data Documentation

◆ bounding_box_defined_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::bounding_box_defined_ {false}
protected

Flag indicating if octree has defined bounding box.

Definition at line 602 of file octree_pointcloud.h.

Referenced by pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree().

◆ epsilon_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::epsilon_ {0.0}
protected

◆ indices_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
IndicesConstPtr pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::indices_
protected

◆ input_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
PointCloudConstPtr pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::input_
protected

◆ max_objs_per_leaf_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
std::size_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_objs_per_leaf_ {0}
protected

Amount of DataT objects per leafNode before expanding branch.

Note
zero indicates a fixed/maximum depth octree structure

Definition at line 607 of file octree_pointcloud.h.

Referenced by pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::enableDynamicDepth().

◆ max_x_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_x_
protected

◆ max_y_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_y_
protected

◆ max_z_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_z_
protected

◆ min_x_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_x_ {0.0}
protected

◆ min_y_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_y_ {0.0}
protected

◆ min_z_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_z_ {0.0}
protected

◆ resolution_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::resolution_
protected

The documentation for this class was generated from the following files: