Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Friends
pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT > Class Template Reference

Octree adjacency leaf container class- stores a list of pointers to neighbors, number of points added, and a DataT value More...

#include <pcl/octree/octree_pointcloud_adjacency_container.h>

+ Inheritance diagram for pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >:
+ Collaboration diagram for pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >:

Public Types

using NeighborListT = std::list< OctreePointCloudAdjacencyContainer< PointInT, DataT > * >
 
using const_iterator = typename NeighborListT::const_iterator
 

Public Member Functions

const_iterator cbegin () const
 
const_iterator cend () const
 
std::size_t size () const
 
 OctreePointCloudAdjacencyContainer ()
 Class initialization. More...
 
 ~OctreePointCloudAdjacencyContainer () override=default
 Empty class deconstructor. More...
 
std::size_t getNumNeighbors () const
 Returns the number of neighbors this leaf has. More...
 
uindex_t getPointCounter () const
 Gets the number of points contributing to this leaf. More...
 
DataT & getData ()
 Returns a reference to the data member to access it without copying. More...
 
void setData (const DataT &data_arg)
 Sets the data member. More...
 
uindex_t getSize () const override
 virtual method to get size of container More...
 
- Public Member Functions inherited from pcl::octree::OctreeContainerBase
virtual ~OctreeContainerBase ()=default
 
virtual bool operator== (const OctreeContainerBase &) const
 Equal comparison operator. More...
 
bool operator!= (const OctreeContainerBase &other) const
 Inequal comparison operator. More...
 
virtual void addPointIndex (index_t)
 Empty addPointIndex implementation. More...
 
void getPointIndex (index_t &) const
 Empty getPointIndex implementation as this leaf node does not store any point indices. More...
 
virtual index_t getPointIndex () const
 Empty getPointIndex implementation as this leaf node does not store any point indices. More...
 
virtual void getPointIndices (Indices &) const
 Empty getPointIndices implementation as this leaf node does not store any data. More...
 

Protected Types

using iterator = typename NeighborListT::iterator
 

Protected Member Functions

iterator begin ()
 
iterator end ()
 
virtual OctreePointCloudAdjacencyContainerdeepCopy () const
 deep copy function More...
 
void addPoint (const PointInT &)
 Add new point to container- this just counts points. More...
 
void computeData ()
 Function for working on data added. More...
 
void setPointCounter (uindex_t points_arg)
 Sets the number of points contributing to this leaf. More...
 
void reset () override
 Clear the voxel centroid. More...
 
void addNeighbor (OctreePointCloudAdjacencyContainer *neighbor)
 Add new neighbor to voxel. More...
 
void removeNeighbor (OctreePointCloudAdjacencyContainer *neighbor)
 Remove neighbor from neighbor set. More...
 
void setNeighbors (const NeighborListT &neighbor_arg)
 Sets the whole neighbor set. More...
 
void addPoint (const pcl::PointXYZRGB &new_point)
 
void addPoint (const pcl::PointXYZRGBA &new_point)
 
void computeData ()
 
void computeData ()
 
void addPoint (const pcl::PointXYZ &new_point)
 
void computeData ()
 

Friends

template<typename T , typename U , typename V >
class OctreePointCloudAdjacency
 

Detailed Description

template<typename PointInT, typename DataT = PointInT>
class pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >

Octree adjacency leaf container class- stores a list of pointers to neighbors, number of points added, and a DataT value

Note
This class implements a leaf node that stores pointers to neighboring leaves
This class also has a virtual computeData function, which is called by octreePointCloudAdjacency::addPointsFromInputCloud.
You should make explicit instantiations of it for your pointtype/datatype combo (if needed) see supervoxel_clustering.hpp for an example of this

Definition at line 56 of file octree_pointcloud_adjacency_container.h.

Member Typedef Documentation

◆ const_iterator

template<typename PointInT , typename DataT = PointInT>
using pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::const_iterator = typename NeighborListT::const_iterator

Definition at line 62 of file octree_pointcloud_adjacency_container.h.

◆ iterator

template<typename PointInT , typename DataT = PointInT>
using pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::iterator = typename NeighborListT::iterator
protected

Definition at line 130 of file octree_pointcloud_adjacency_container.h.

◆ NeighborListT

template<typename PointInT , typename DataT = PointInT>
using pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::NeighborListT = std::list<OctreePointCloudAdjacencyContainer<PointInT, DataT>*>

Definition at line 61 of file octree_pointcloud_adjacency_container.h.

Constructor & Destructor Documentation

◆ OctreePointCloudAdjacencyContainer()

template<typename PointInT , typename DataT = PointInT>
pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::OctreePointCloudAdjacencyContainer ( )
inline

◆ ~OctreePointCloudAdjacencyContainer()

template<typename PointInT , typename DataT = PointInT>
pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::~OctreePointCloudAdjacencyContainer ( )
overridedefault

Empty class deconstructor.

Member Function Documentation

◆ addNeighbor()

template<typename PointInT , typename DataT = PointInT>
void pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::addNeighbor ( OctreePointCloudAdjacencyContainer< PointInT, DataT > *  neighbor)
inlineprotected

Add new neighbor to voxel.

Parameters
[in]neighborthe new neighbor to add

Definition at line 190 of file octree_pointcloud_adjacency_container.h.

◆ addPoint() [1/4]

◆ addPoint() [2/4]

◆ addPoint() [3/4]

◆ addPoint() [4/4]

template<typename PointInT , typename DataT = PointInT>
void pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::addPoint ( const PointInT &  )
inlineprotected

Add new point to container- this just counts points.

Note
To actually store data in the leaves, need to specialize this for your point and data type as in supervoxel_clustering.hpp

Definition at line 158 of file octree_pointcloud_adjacency_container.h.

◆ begin()

template<typename PointInT , typename DataT = PointInT>
iterator pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::begin ( )
inlineprotected

Definition at line 132 of file octree_pointcloud_adjacency_container.h.

◆ cbegin()

template<typename PointInT , typename DataT = PointInT>
const_iterator pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::cbegin ( ) const
inline

Definition at line 65 of file octree_pointcloud_adjacency_container.h.

◆ cend()

template<typename PointInT , typename DataT = PointInT>
const_iterator pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::cend ( ) const
inline

Definition at line 70 of file octree_pointcloud_adjacency_container.h.

◆ computeData() [1/4]

template<typename PointInT , typename DataT = PointInT>
void pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::computeData ( )
inlineprotected

Function for working on data added.

Base implementation does nothing

Definition at line 167 of file octree_pointcloud_adjacency_container.h.

◆ computeData() [2/4]

◆ computeData() [3/4]

◆ computeData() [4/4]

◆ deepCopy()

template<typename PointInT , typename DataT = PointInT>
virtual OctreePointCloudAdjacencyContainer* pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::deepCopy ( ) const
inlineprotectedvirtual

◆ end()

template<typename PointInT , typename DataT = PointInT>
iterator pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::end ( )
inlineprotected

Definition at line 137 of file octree_pointcloud_adjacency_container.h.

◆ getData()

template<typename PointInT , typename DataT = PointInT>
DataT& pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::getData ( )
inline

Returns a reference to the data member to access it without copying.

Definition at line 105 of file octree_pointcloud_adjacency_container.h.

Referenced by pcl::SupervoxelClustering< PointT >::getLabeledCloud(), and pcl::SupervoxelClustering< PointT >::SupervoxelHelper::compareLeaves::operator()().

◆ getNumNeighbors()

template<typename PointInT , typename DataT = PointInT>
std::size_t pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::getNumNeighbors ( ) const
inline

Returns the number of neighbors this leaf has.

Returns
number of neighbors

Definition at line 91 of file octree_pointcloud_adjacency_container.h.

◆ getPointCounter()

template<typename PointInT , typename DataT = PointInT>
uindex_t pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::getPointCounter ( ) const
inline

Gets the number of points contributing to this leaf.

Definition at line 98 of file octree_pointcloud_adjacency_container.h.

◆ getSize()

template<typename PointInT , typename DataT = PointInT>
uindex_t pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::getSize ( ) const
inlineoverridevirtual

virtual method to get size of container

Returns
number of points added to leaf node container.

Reimplemented from pcl::octree::OctreeContainerBase.

Definition at line 123 of file octree_pointcloud_adjacency_container.h.

◆ removeNeighbor()

template<typename PointInT , typename DataT = PointInT>
void pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::removeNeighbor ( OctreePointCloudAdjacencyContainer< PointInT, DataT > *  neighbor)
inlineprotected

Remove neighbor from neighbor set.

Parameters
[in]neighborthe neighbor to remove

Definition at line 199 of file octree_pointcloud_adjacency_container.h.

◆ reset()

template<typename PointInT , typename DataT = PointInT>
void pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::reset ( )
inlineoverrideprotectedvirtual

◆ setData()

template<typename PointInT , typename DataT = PointInT>
void pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::setData ( const DataT &  data_arg)
inline

Sets the data member.

Parameters
[in]data_argNew value for data

Definition at line 114 of file octree_pointcloud_adjacency_container.h.

◆ setNeighbors()

template<typename PointInT , typename DataT = PointInT>
void pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::setNeighbors ( const NeighborListT neighbor_arg)
inlineprotected

Sets the whole neighbor set.

Parameters
[in]neighbor_argthe new set

Definition at line 214 of file octree_pointcloud_adjacency_container.h.

◆ setPointCounter()

template<typename PointInT , typename DataT = PointInT>
void pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::setPointCounter ( uindex_t  points_arg)
inlineprotected

Sets the number of points contributing to this leaf.

Definition at line 172 of file octree_pointcloud_adjacency_container.h.

◆ size()

template<typename PointInT , typename DataT = PointInT>
std::size_t pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::size ( ) const
inline

Definition at line 76 of file octree_pointcloud_adjacency_container.h.

Friends And Related Function Documentation

◆ OctreePointCloudAdjacency

template<typename PointInT , typename DataT = PointInT>
template<typename T , typename U , typename V >
friend class OctreePointCloudAdjacency
friend

Definition at line 58 of file octree_pointcloud_adjacency_container.h.


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