Point Cloud Library (PCL)  1.7.0
Public Types | Public Member Functions | Protected Attributes
pcl::PointRepresentation< PointT > Class Template Reference

PointRepresentation provides a set of methods for converting a point structs/object into an n-dimensional vector. More...

#include <pcl/point_representation.h>

List of all members.

Public Types

typedef boost::shared_ptr
< PointRepresentation< PointT > > 
Ptr
typedef boost::shared_ptr
< const PointRepresentation
< PointT > > 
ConstPtr

Public Member Functions

 PointRepresentation ()
 Empty constructor.
virtual ~PointRepresentation ()
 Empty destructor.
virtual void copyToFloatArray (const PointT &p, float *out) const =0
 Copy point data from input point to a float array.
bool isTrivial () const
 Returns whether this point representation is trivial.
virtual bool isValid (const PointT &p) const
 Verify that the input point is valid.
template<typename OutputType >
void vectorize (const PointT &p, OutputType &out) const
 Convert input point into a vector representation, rescaling by alpha.
void setRescaleValues (const float *rescale_array)
 Set the rescale values to use when vectorizing points.
int getNumberOfDimensions () const
 Return the number of dimensions in the point's vector representation.

Protected Attributes

int nr_dimensions_
 The number of dimensions in this point's vector (i.e.
std::vector< float > alpha_
 A vector containing the rescale factor to apply to each dimension.
bool trivial_
 Indicates whether this point representation is trivial.

Detailed Description

template<typename PointT>
class pcl::PointRepresentation< PointT >

PointRepresentation provides a set of methods for converting a point structs/object into an n-dimensional vector.

Note:
This is an abstract class. Subclasses must set nr_dimensions_ to the appropriate value in the constructor and provide an implemention of the pure virtual copyToFloatArray method.
Author:
Michael Dixon

Definition at line 55 of file point_representation.h.


Member Typedef Documentation

template<typename PointT>
typedef boost::shared_ptr<const PointRepresentation<PointT> > pcl::PointRepresentation< PointT >::ConstPtr
template<typename PointT>
typedef boost::shared_ptr<PointRepresentation<PointT> > pcl::PointRepresentation< PointT >::Ptr

Constructor & Destructor Documentation

template<typename PointT>
pcl::PointRepresentation< PointT >::PointRepresentation ( ) [inline]

Empty constructor.

Definition at line 78 of file point_representation.h.

template<typename PointT>
virtual pcl::PointRepresentation< PointT >::~PointRepresentation ( ) [inline, virtual]

Empty destructor.

Definition at line 81 of file point_representation.h.


Member Function Documentation

template<typename PointT>
virtual void pcl::PointRepresentation< PointT >::copyToFloatArray ( const PointT p,
float *  out 
) const [pure virtual]
template<typename PointT>
int pcl::PointRepresentation< PointT >::getNumberOfDimensions ( ) const [inline]

Return the number of dimensions in the point's vector representation.

Definition at line 171 of file point_representation.h.

template<typename PointT>
bool pcl::PointRepresentation< PointT >::isTrivial ( ) const [inline]

Returns whether this point representation is trivial.

It is trivial if and only if the following conditions hold:

  • the relevant data consists only of float values
  • the vectorize operation directly copies the first nr_dimensions_ elements of PointT to the out array
  • sizeof(PointT) is a multiple of sizeof(float) In short, a trivial point representation converts the input point to a float array that is the same as if the point was reinterpret_casted to a float array of length nr_dimensions_ .

Definition at line 96 of file point_representation.h.

template<typename PointT>
virtual bool pcl::PointRepresentation< PointT >::isValid ( const PointT p) const [inline, virtual]

Verify that the input point is valid.

Parameters:
pThe point to validate

Definition at line 102 of file point_representation.h.

template<typename PointT>
void pcl::PointRepresentation< PointT >::setRescaleValues ( const float *  rescale_array) [inline]

Set the rescale values to use when vectorizing points.

Parameters:
[in]rescale_arrayThe array/vector of rescale values. Can be of any type that implements the [] operator.

Definition at line 163 of file point_representation.h.

template<typename PointT>
template<typename OutputType >
void pcl::PointRepresentation< PointT >::vectorize ( const PointT p,
OutputType &  out 
) const [inline]

Convert input point into a vector representation, rescaling by alpha.

Parameters:
[in]pthe input point
[out]outThe output vector. Can be of any type that implements the [] operator.

Definition at line 142 of file point_representation.h.


Member Data Documentation

template<typename PointT>
std::vector<float> pcl::PointRepresentation< PointT >::alpha_ [protected]

A vector containing the rescale factor to apply to each dimension.

Definition at line 61 of file point_representation.h.

Referenced by pcl::PointRepresentation< Narf * >::isTrivial(), pcl::PointRepresentation< Narf * >::setRescaleValues(), and pcl::PointRepresentation< Narf * >::vectorize().

template<typename PointT>
int pcl::PointRepresentation< PointT >::nr_dimensions_ [protected]
template<typename PointT>
bool pcl::PointRepresentation< PointT >::trivial_ [protected]

Indicates whether this point representation is trivial.

It is trivial if and only if the following conditions hold:

  • the relevant data consists only of float values
  • the vectorize operation directly copies the first nr_dimensions_ elements of PointT to the out array
  • sizeof(PointT) is a multiple of sizeof(float) In short, a trivial point representation converts the input point to a float array that is the same as if the point was reinterpret_casted to a float array of length nr_dimensions_ . This value says that this representation can be trivial; it is only trivial if setRescaleValues() has not been set.

Definition at line 71 of file point_representation.h.

Referenced by pcl::PointRepresentation< Narf * >::isTrivial(), and pcl::PointRepresentation< Narf * >::isValid().


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