Image Component Library (ICL)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Types | Private Member Functions | Private Attributes
icl::geom::PCLPointCloudObject< PCLPointType > Class Template Reference

PointCloudObject implementation for the PCLPointCloud types. More...

#include <PCLPointCloudObject.h>

Inheritance diagram for icl::geom::PCLPointCloudObject< PCLPointType >:
icl::geom::PointCloudObjectBase icl::geom::SceneObject

List of all members.

Public Member Functions

 PCLPointCloudObject (int width, int height=-1, const PCLPointType &init=PCLPointType())
 creates a PCLPointCloudObject with given width height and intial value
 PCLPointCloudObject (const PCLPointCloudObject< PCLPointType > &other)
 deeply copying copy constructor
PCLPointCloudObject
< PCLPointType > & 
operator= (const PCLPointCloudObject< PCLPointType > &other)
 deeply copying assignment operator
 PCLPointCloudObject (const pcl::PointCloud< PCLPointType > &cloud)
 const wrapper for given pcl-pointcloud (deep copy only)
 PCLPointCloudObject (pcl::PointCloud< PCLPointType > &cloud, bool deepCopy=true)
 wrapps given pcl-point-cloud (optionally shallowly copied)
 ~PCLPointCloudObject ()
 Destructor.
pcl::PointCloud< PCLPointType > & pcl () throw (utils::ICLException)
 grants access to the underlying pcl-point-cloud
const pcl::PointCloud
< PCLPointType > & 
pcl () const throw (utils::ICLException)
 grants access to the underlying pcl-point-cloud (const)
void setPCL (const pcl::PointCloud< PCLPointType > &pcl)
 sets wrapped PCL point cloud (const, always deeply copied)
void setPCL (pcl::PointCloud< PCLPointType > &pcl, bool deepCopy=true)
 sets wrapped PCL point cloud (const, always deeply copied)
virtual bool supports (FeatureType t) const
 generic version, that trys to get an offset (can be optimized with specialization)
virtual bool isOrganized () const
 returns whether pointcloud is 2D organized
virtual utils::Size getSize () const throw (utils::ICLException)
 returns the 2D size of the pointcloud (throws exception if not ordered)
virtual int getDim () const
 return the linearily ordered number of point in the point cloud
virtual void setSize (const utils::Size &size)
 adapts the point cloud size
bool isNull () const
virtual core::DataSegment
< float, 1 > 
selectIntensity ()
 well known feature Intensity (single float values)
virtual core::DataSegment
< icl32s, 1 > 
selectLabel ()
 well known feature Intensity (single 32bit int values)
virtual core::DataSegment
< icl8u, 3 > 
selectBGR ()
 well known feature Intensity (three byte vectors ordered BGR)
virtual core::DataSegment
< icl8u, 4 > 
selectBGRA ()
 well known feature Intensity (four byte vectors ordered BGRA)
virtual core::DataSegment
< icl32s, 1 > 
selectBGRA32s ()
 well known feature Intensity (single int value encoding byte-wise BGRA)
virtual core::DataSegment
< float, 3 > 
selectXYZ ()
 well know features XYZ (three floats, this feature must usually be available)
virtual core::DataSegment
< float, 4 > 
selectXYZH ()
 common way to store XYZ-data (4th float define homogeneous part)
virtual core::DataSegment
< float, 4 > 
selectNormal ()
 well known feature Normal (4 float values)
virtual core::DataSegment
< float, 4 > 
selectRGBA32f ()
 well known feature RGBA (4 float values, ordred RGBA)
virtual core::DataSegmentBase select (const std::string &featureName)
 selects a dynamic feature
virtual PCLPointCloudObject
< PCLPointType > * 
copy () const
 deep copy interface

Private Types

typedef PCLPointType Entry
 internally used typedef

Private Member Functions

int offset (FeatureType) const
 this is actually specialized for the different types
icl8udata ()
 returns the data orignin pointer
const icl8udata () const
 returns the data orignin pointer (const)
template<class T , int N, FeatureType t>
core::DataSegment< T, N > createSegment ()
 creates a data segment for a given feature type
void deletePCL ()
 savely delets the pcl_image

Private Attributes

pcl::PointCloud< PCLPointType > * m_pcl
 internal pcl::PointCloud data pointer
bool m_ownPCL
 ownership flag

Detailed Description

template<class PCLPointType>
class icl::geom::PCLPointCloudObject< PCLPointType >

PointCloudObject implementation for the PCLPointCloud types.

Right now, the following pcl-point types are supported. Due to the non-inline implementation of the class, all other point-types are not available. For other point types, one can specialize the offset()-template in the source file.


Member Typedef Documentation

template<class PCLPointType>
typedef PCLPointType icl::geom::PCLPointCloudObject< PCLPointType >::Entry [private]

internally used typedef


Constructor & Destructor Documentation

template<class PCLPointType>
icl::geom::PCLPointCloudObject< PCLPointType >::PCLPointCloudObject ( int  width,
int  height = -1,
const PCLPointType &  init = PCLPointType() 
)

creates a PCLPointCloudObject with given width height and intial value

If the height value is -1, the PointCloud instance is assumed to be not ordered, e.g. only a 1D set of points instead of a 2D array

template<class PCLPointType>
icl::geom::PCLPointCloudObject< PCLPointType >::PCLPointCloudObject ( const PCLPointCloudObject< PCLPointType > &  other)

deeply copying copy constructor

template<class PCLPointType>
icl::geom::PCLPointCloudObject< PCLPointType >::PCLPointCloudObject ( const pcl::PointCloud< PCLPointType > &  cloud)

const wrapper for given pcl-pointcloud (deep copy only)

template<class PCLPointType>
icl::geom::PCLPointCloudObject< PCLPointType >::PCLPointCloudObject ( pcl::PointCloud< PCLPointType > &  cloud,
bool  deepCopy = true 
)

wrapps given pcl-point-cloud (optionally shallowly copied)

template<class PCLPointType>
icl::geom::PCLPointCloudObject< PCLPointType >::~PCLPointCloudObject ( )

Destructor.


Member Function Documentation

template<class PCLPointType>
virtual PCLPointCloudObject<PCLPointType>* icl::geom::PCLPointCloudObject< PCLPointType >::copy ( ) const [virtual]

deep copy interface

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
template<class T , int N, FeatureType t>
core::DataSegment<T,N> icl::geom::PCLPointCloudObject< PCLPointType >::createSegment ( ) [inline, private]

creates a data segment for a given feature type

template<class PCLPointType>
icl8u* icl::geom::PCLPointCloudObject< PCLPointType >::data ( ) [inline, private]

returns the data orignin pointer

template<class PCLPointType>
const icl8u* icl::geom::PCLPointCloudObject< PCLPointType >::data ( ) const [inline, private]

returns the data orignin pointer (const)

template<class PCLPointType>
void icl::geom::PCLPointCloudObject< PCLPointType >::deletePCL ( ) [private]

savely delets the pcl_image

template<class PCLPointType>
virtual int icl::geom::PCLPointCloudObject< PCLPointType >::getDim ( ) const [virtual]

return the linearily ordered number of point in the point cloud

Implements icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual utils::Size icl::geom::PCLPointCloudObject< PCLPointType >::getSize ( ) const throw (utils::ICLException) [virtual]

returns the 2D size of the pointcloud (throws exception if not ordered)

Implements icl::geom::PointCloudObjectBase.

template<class PCLPointType>
bool icl::geom::PCLPointCloudObject< PCLPointType >::isNull ( ) const
template<class PCLPointType>
virtual bool icl::geom::PCLPointCloudObject< PCLPointType >::isOrganized ( ) const [virtual]

returns whether pointcloud is 2D organized

Implements icl::geom::PointCloudObjectBase.

template<class PCLPointType>
int icl::geom::PCLPointCloudObject< PCLPointType >::offset ( FeatureType  ) const [private]

this is actually specialized for the different types

Please note, offset needs to return -1 for non-supported feature types

template<class PCLPointType>
PCLPointCloudObject<PCLPointType>& icl::geom::PCLPointCloudObject< PCLPointType >::operator= ( const PCLPointCloudObject< PCLPointType > &  other)

deeply copying assignment operator

for shallow copies, use

template<class PCLPointType>
pcl::PointCloud<PCLPointType>& icl::geom::PCLPointCloudObject< PCLPointType >::pcl ( ) throw (utils::ICLException)

grants access to the underlying pcl-point-cloud

template<class PCLPointType>
const pcl::PointCloud<PCLPointType>& icl::geom::PCLPointCloudObject< PCLPointType >::pcl ( ) const throw (utils::ICLException)

grants access to the underlying pcl-point-cloud (const)

template<class PCLPointType>
virtual core::DataSegmentBase icl::geom::PCLPointCloudObject< PCLPointType >::select ( const std::string &  featureName) [virtual]

selects a dynamic feature

some pcl types support special features that can be selected by a string ID. By default, the featureName 'all' can be used to create a DataSegment that give access to all data entries as floats

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual core::DataSegment<icl8u,3> icl::geom::PCLPointCloudObject< PCLPointType >::selectBGR ( ) [virtual]

well known feature Intensity (three byte vectors ordered BGR)

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual core::DataSegment<icl8u,4> icl::geom::PCLPointCloudObject< PCLPointType >::selectBGRA ( ) [virtual]

well known feature Intensity (four byte vectors ordered BGRA)

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual core::DataSegment<icl32s,1> icl::geom::PCLPointCloudObject< PCLPointType >::selectBGRA32s ( ) [virtual]

well known feature Intensity (single int value encoding byte-wise BGRA)

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual core::DataSegment<float,1> icl::geom::PCLPointCloudObject< PCLPointType >::selectIntensity ( ) [virtual]

well known feature Intensity (single float values)

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual core::DataSegment<icl32s,1> icl::geom::PCLPointCloudObject< PCLPointType >::selectLabel ( ) [virtual]

well known feature Intensity (single 32bit int values)

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual core::DataSegment<float,4> icl::geom::PCLPointCloudObject< PCLPointType >::selectNormal ( ) [virtual]

well known feature Normal (4 float values)

in the PCL, the 4th value is sometimes used to store a local curvature value

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual core::DataSegment<float,4> icl::geom::PCLPointCloudObject< PCLPointType >::selectRGBA32f ( ) [virtual]

well known feature RGBA (4 float values, ordred RGBA)

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual core::DataSegment<float,3> icl::geom::PCLPointCloudObject< PCLPointType >::selectXYZ ( ) [virtual]

well know features XYZ (three floats, this feature must usually be available)

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual core::DataSegment<float,4> icl::geom::PCLPointCloudObject< PCLPointType >::selectXYZH ( ) [virtual]

common way to store XYZ-data (4th float define homogeneous part)

Reimplemented from icl::geom::PointCloudObjectBase.

template<class PCLPointType>
void icl::geom::PCLPointCloudObject< PCLPointType >::setPCL ( const pcl::PointCloud< PCLPointType > &  pcl)

sets wrapped PCL point cloud (const, always deeply copied)

template<class PCLPointType>
void icl::geom::PCLPointCloudObject< PCLPointType >::setPCL ( pcl::PointCloud< PCLPointType > &  pcl,
bool  deepCopy = true 
)

sets wrapped PCL point cloud (const, always deeply copied)

template<class PCLPointType>
virtual void icl::geom::PCLPointCloudObject< PCLPointType >::setSize ( const utils::Size size) [virtual]

adapts the point cloud size

if the sizes height is smaller than 1, the cloud becomes un-organized

Implements icl::geom::PointCloudObjectBase.

template<class PCLPointType>
virtual bool icl::geom::PCLPointCloudObject< PCLPointType >::supports ( FeatureType  t) const [virtual]

generic version, that trys to get an offset (can be optimized with specialization)

Implements icl::geom::PointCloudObjectBase.


Member Data Documentation

template<class PCLPointType>
bool icl::geom::PCLPointCloudObject< PCLPointType >::m_ownPCL [private]

ownership flag

template<class PCLPointType>
pcl::PointCloud<PCLPointType>* icl::geom::PCLPointCloudObject< PCLPointType >::m_pcl [private]

internal pcl::PointCloud data pointer


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines