W3cubDocs

/PointCloudLibrary

Octree pointcloud class More...

#include <pcl/octree/octree_pointcloud.h>

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 = const OctreeDepthFirstIterator< OctreeT >
using LeafNodeIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using ConstLeafNodeIterator = const OctreeLeafNodeDepthFirstIterator< OctreeT >
using LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using ConstLeafNodeDepthFirstIterator = const OctreeLeafNodeDepthFirstIterator< OctreeT >
using DepthFirstIterator = OctreeDepthFirstIterator< OctreeT >
using ConstDepthFirstIterator = const OctreeDepthFirstIterator< OctreeT >
using BreadthFirstIterator = OctreeBreadthFirstIterator< OctreeT >
using ConstBreadthFirstIterator = const OctreeBreadthFirstIterator< OctreeT >
using FixedDepthIterator = OctreeFixedDepthIterator< OctreeT >
using ConstFixedDepthIterator = const OctreeFixedDepthIterator< OctreeT >
using LeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< OctreeT >
using ConstLeafNodeBreadthFirstIterator = const OctreeLeafNodeBreadthFirstIterator< 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...
const IndicesConstPtr 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)
const Iterator end ()
LeafNodeDepthFirstIterator leaf_depth_begin (uindex_t max_depth_arg=0u)
const LeafNodeDepthFirstIterator leaf_depth_end ()
DepthFirstIterator depth_begin (uindex_t max_depth_arg=0u)
const DepthFirstIterator depth_end ()
BreadthFirstIterator breadth_begin (uindex_t max_depth_arg=0u)
const BreadthFirstIterator breadth_end ()
FixedDepthIterator fixed_depth_begin (uindex_t fixed_depth_arg=0u)
const FixedDepthIterator fixed_depth_end ()
LeafNodeBreadthFirstIterator leaf_breadth_begin (uindex_t max_depth_arg=0u)
const LeafNodeBreadthFirstIterator leaf_breadth_end ()
OctreeBase ()
Empty constructor. More...
OctreeBase (const OctreeBase &source)
Copy constructor. More...
virtual ~OctreeBase ()
Empty deconstructor. More...
OctreeBase & operator= (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...
OctreeContainerPointIndices * createLeaf (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...
OctreeContainerPointIndices * findLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
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)
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)
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 PointT & getPointByIndex (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 >
OctreeContainerPointIndices * createLeaf (const OctreeKey &key_arg)
Create a leaf node. More...
OctreeContainerPointIndices * findLeaf (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...
OctreeNode * getRootNode () 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...
OctreeNode * getBranchChildPtr (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...
BranchNode * createBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Create and add a new branch child to a branch class. More...
LeafNode * createLeafChild (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 ()
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_
Epsilon precision (error bound) for nearest neighbors searches. More...
double resolution_
Octree resolution. More...
double min_x_
double max_x_
double min_y_
double max_y_
double min_z_
double max_z_
bool bounding_box_defined_
Flag indicating if octree has defined bounding box. More...
std::size_t max_objs_per_leaf_
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...
BranchNode * root_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
PointT type of point used in pointcloud
LeafContainerT leaf node container
BranchContainerT branch node container
OctreeT octree 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 109 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 104 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 102 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 96 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_arg octree resolution at lowest octree level

Definition at line 54 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_arg index of point to be added
[in] indices_arg pointer to indices vector of the dataset (given by setInputCloud)

Definition at line 108 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

Add point at index from input pointcloud dataset to octree.

Parameters
[in] point_idx_arg the index representing the point in the dataset given by setInputCloud to be added

Reimplemented in pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >, pcl::io::OctreePointCloudCompression< PointT, LeafT, BranchT, OctreeT >, and pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >.

Definition at line 655 of file octree_pointcloud.hpp.

Referenced by pcl::io::OctreePointCloudCompression< PointT, LeafT, BranchT, OctreeT >::addPointIdx().

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_arg point to be added
[in] cloud_arg pointer to input point cloud dataset (given by setInputCloud)

Definition at line 122 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_arg point to be added
[in] cloud_arg pointer to input point cloud dataset (given by setInputCloud)
[in] indices_arg pointer to indices vector of the dataset (given by setInputCloud)

Definition at line 138 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_arg point that should be within bounding box;

Definition at line 512 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 333 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_arg side length of bounding box cube.

Definition at line 452 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_arg X coordinate of upper bounding box corner
[in] max_y_arg Y coordinate of upper bounding box corner
[in] max_z_arg Z coordinate of upper bounding box corner

Definition at line 411 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_arg X coordinate of lower bounding box corner
[in] min_y_arg Y coordinate of lower bounding box corner
[in] min_z_arg Z coordinate of lower bounding box corner
[in] max_x_arg X coordinate of upper bounding box corner
[in] max_y_arg Y coordinate of upper bounding box corner
[in] max_z_arg Z coordinate of upper bounding box corner

Definition at line 367 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

Delete the octree structure and its leaf nodes.

Definition at line 236 of file octree_pointcloud.h.

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_arg index of point addressing the voxel to be deleted.

Definition at line 237 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_arg point addressing the voxel to be deleted.

Definition at line 216 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
maxObjsPerLeaf maximum number of DataT objects per leaf

Definition at line 417 of file octree_pointcloud.h.

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_node to be expanded
[in] parent_branch parent of leaf node to be expanded
[in] child_idx child index of leaf node (in parent branch)
[in] depth_mask of leaf node to be expanded

Definition at line 605 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_arg query point
Returns
pointer to leaf node. If leaf node does not exist, pointer is 0.

Definition at line 458 of file octree_pointcloud.h.

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_arg octree key addressing a leaf node.
[out] point_arg write leaf node voxel center to this point reference

Definition at line 843 of file octree_pointcloud.hpp.

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_arg index value representing a point in the dataset given by setInputCloud
[out] key_arg write octree key to this reference
Returns
"true" - octree keys are assignable

Definition at line 826 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_arg X coordinate of point addressing a voxel
[in] point_y_arg Y coordinate of point addressing a voxel
[in] point_z_arg Z coordinate of point addressing a voxel
[out] key_arg write octree key to this reference

Definition at line 804 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_arg the point addressing a voxel
[out] key_arg write octree key to this reference

Definition at line 785 of file octree_pointcloud.hpp.

Referenced by pcl::octree::OctreePointCloud< PointT, OctreeContainerPointIndex, OctreeContainerEmpty, OctreeBase< OctreeContainerPointIndex, OctreeContainerEmpty > >::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_arg octree key addressing an octree node.
[in] tree_depth_arg octree depth of query voxel
[out] min_pt lower bound of voxel
[out] max_pt upper bound of voxel

Definition at line 890 of file octree_pointcloud.hpp.

Referenced by pcl::octree::OctreePointCloud< PointT, OctreeContainerPointIndex, OctreeContainerEmpty, OctreeBase< OctreeContainerPointIndex, OctreeContainerEmpty > >::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_arg octree key addressing an octree node.
[in] tree_depth_arg octree depth of query voxel
[out] point_arg write leaf node center point to this reference

Definition at line 861 of file octree_pointcloud.hpp.

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] origin origin of the line segment
[in] end end of the line segment
[out] voxel_center_list results are written to this vector of PointT elements
[in] precision determines the size of the steps: step_size = octree_resolution x precision
Returns
number of intersected voxels

Definition at line 270 of file octree_pointcloud.hpp.

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_arg X coordinate of lower bounding box corner
[in] min_y_arg Y coordinate of lower bounding box corner
[in] min_z_arg Z coordinate of lower bounding box corner
[in] max_x_arg X coordinate of upper bounding box corner
[in] max_y_arg Y coordinate of upper bounding box corner
[in] max_z_arg Z coordinate of upper bounding box corner

Definition at line 489 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.

getIndices()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
const IndicesConstPtr 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.

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.

getKeyBitSize()

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

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_arg results are written to this vector of PointT elements
Returns
number of occupied voxels

Definition at line 253 of file octree_pointcloud.hpp.

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_arg current octree node to be explored
[in] key_arg octree key addressing a leaf node.
[out] voxel_center_list_arg results are written to this vector of PointT elements
Returns
number of voxels found

Definition at line 957 of file octree_pointcloud.hpp.

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_arg index representing the point in the dataset given by setInputCloud
Returns
PointT from input pointcloud dataset

Definition at line 703 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 178 of file octree_pointcloud.h.

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 187 of file octree_pointcloud.h.

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] iterator octree iterator
[out] min_pt lower bound of voxel
[out] max_pt upper bound of voxel

Definition at line 401 of file octree_pointcloud.h.

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

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_arg depth/level in octree
Returns
squared diameter

Definition at line 944 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 390 of file octree_pointcloud.h.

Referenced by pcl::octree::OctreePointCloud< PointT, OctreeContainerPointIndex, OctreeContainerEmpty, OctreeBase< OctreeContainerPointIndex, OctreeContainerEmpty > >::getVoxelSquaredSideLen().

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_arg depth/level in octree
Returns
squared voxel cube side length

Definition at line 923 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

Checks if given point is within the bounding box of the octree.

Parameters
[in] point_idx_arg point to be checked for bounding box violations
Returns
"true" - no bound violation

Definition at line 488 of file octree_pointcloud.h.

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_arg X coordinate of point to be checked
[in] point_y_arg Y coordinate of point to be checked
[in] point_z_arg Z coordinate of point to be checked
Returns
"true" if voxel exist; "false" otherwise

Definition at line 195 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_arg point to be checked
Returns
"true" if voxel exist; "false" otherwise

Definition at line 179 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_arg point to be checked
Returns
"true" if voxel exist; "false" otherwise

Definition at line 157 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] eps precision (error bound) for nearest neighbors searches

Definition at line 147 of file octree_pointcloud.h.

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_arg the const boost shared pointer to a PointCloud message
[in] indices_arg the 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.

Referenced by 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

Set/change the octree voxel resolution.

Parameters
[in] resolution_arg side length of voxels at lowest tree level

Definition at line 164 of file octree_pointcloud.h.

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_
protected

epsilon_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::epsilon_
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_
protected

Amount of DataT objects per leafNode before expanding branch.

Note
zero indicates a fixed/maximum depth octree structure

Definition at line 599 of file octree_pointcloud.h.

Referenced by pcl::octree::OctreePointCloud< PointT, OctreeContainerPointIndex, OctreeContainerEmpty, OctreeBase< OctreeContainerPointIndex, OctreeContainerEmpty > >::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_
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_
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_
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:

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_point_cloud.html