Point Cloud Library (PCL) 1.15.1
Loading...
Searching...
No Matches
pcl::PointRepresentation< PointT > Class Template Referenceabstract

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

#include <pcl/point_representation.h>

Public Types

using Ptr = shared_ptr<PointRepresentation<PointT> >
using ConstPtr = shared_ptr<const PointRepresentation<PointT> >

Public Member Functions

virtual ~PointRepresentation ()=default
 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 vectorize (const PointT &p, float *out) const
void vectorize (const PointT &p, std::vector< float > &out) const
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_ = 0
 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_ = false
 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 implementation of the pure virtual copyToFloatArray method.
Author
Michael Dixon

Definition at line 59 of file point_representation.h.

Member Typedef Documentation

◆ ConstPtr

template<typename PointT>
using pcl::PointRepresentation< PointT >::ConstPtr = shared_ptr<const PointRepresentation<PointT> >

Definition at line 79 of file point_representation.h.

◆ Ptr

template<typename PointT>
using pcl::PointRepresentation< PointT >::Ptr = shared_ptr<PointRepresentation<PointT> >

Definition at line 78 of file point_representation.h.

Constructor & Destructor Documentation

◆ ~PointRepresentation()

template<typename PointT>
virtual pcl::PointRepresentation< PointT >::~PointRepresentation ( )
virtualdefault

Empty destructor.

Member Function Documentation

◆ copyToFloatArray()

template<typename PointT>
virtual void pcl::PointRepresentation< PointT >::copyToFloatArray ( const PointT & p,
float * out ) const
pure virtual

Copy point data from input point to a float array.

This method must be overridden in all subclasses.

Parameters
[in]pThe input point
[out]outA pointer to a float array.

Implemented in pcl::CustomPointRepresentation< PointDefault >, pcl::DefaultFeatureRepresentation< PointDefault >, pcl::DefaultFeatureRepresentation< FPFHSignature33 >, pcl::DefaultFeatureRepresentation< GASDSignature512 >, pcl::DefaultFeatureRepresentation< GASDSignature7992 >, pcl::DefaultFeatureRepresentation< GASDSignature984 >, pcl::DefaultFeatureRepresentation< NormalBasedSignature12 >, pcl::DefaultFeatureRepresentation< PFHRGBSignature250 >, pcl::DefaultFeatureRepresentation< PFHSignature125 >, pcl::DefaultFeatureRepresentation< PPFSignature >, pcl::DefaultFeatureRepresentation< VFHSignature308 >, pcl::DefaultPointRepresentation< PointDefault >, pcl::DefaultPointRepresentation< FPFHSignature33 >, pcl::DefaultPointRepresentation< GASDSignature512 >, pcl::DefaultPointRepresentation< GASDSignature7992 >, pcl::DefaultPointRepresentation< GASDSignature984 >, pcl::DefaultPointRepresentation< Narf36 >, pcl::DefaultPointRepresentation< NormalBasedSignature12 >, pcl::DefaultPointRepresentation< PFHRGBSignature250 >, pcl::DefaultPointRepresentation< PFHSignature125 >, pcl::DefaultPointRepresentation< PointNormal >, pcl::DefaultPointRepresentation< PointXYZ >, pcl::DefaultPointRepresentation< PointXYZI >, pcl::DefaultPointRepresentation< PPFSignature >, pcl::DefaultPointRepresentation< ShapeContext1980 >, pcl::DefaultPointRepresentation< SHOT1344 >, pcl::DefaultPointRepresentation< SHOT352 >, pcl::DefaultPointRepresentation< UniqueShapeContext1960 >, pcl::DefaultPointRepresentation< VFHSignature308 >, pcl::GeneralizedIterativeClosestPoint6D::MyPointRepresentation, and pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::MyPointRepresentation.

Referenced by isValid(), vectorize(), vectorize(), and vectorize().

◆ getNumberOfDimensions()

template<typename PointT>
int pcl::PointRepresentation< PointT >::getNumberOfDimensions ( ) const
inline

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

Definition at line 190 of file point_representation.h.

References nr_dimensions_.

◆ isTrivial()

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 98 of file point_representation.h.

References alpha_, and trivial_.

◆ isValid()

template<typename PointT>
virtual bool pcl::PointRepresentation< PointT >::isValid ( const PointT & p) const
inlinevirtual

Verify that the input point is valid.

Parameters
pThe point to validate

Definition at line 104 of file point_representation.h.

References copyToFloatArray(), nr_dimensions_, and trivial_.

◆ setRescaleValues()

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 183 of file point_representation.h.

References alpha_, and nr_dimensions_.

◆ vectorize() [1/3]

template<typename PointT>
void pcl::PointRepresentation< PointT >::vectorize ( const PointT & p,
float * out ) const
inline

Definition at line 162 of file point_representation.h.

References alpha_, copyToFloatArray(), and nr_dimensions_.

◆ vectorize() [2/3]

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 144 of file point_representation.h.

References alpha_, copyToFloatArray(), and nr_dimensions_.

◆ vectorize() [3/3]

template<typename PointT>
void pcl::PointRepresentation< PointT >::vectorize ( const PointT & p,
std::vector< float > & out ) const
inline

Definition at line 171 of file point_representation.h.

References alpha_, copyToFloatArray(), and nr_dimensions_.

Member Data Documentation

◆ alpha_

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 65 of file point_representation.h.

Referenced by isTrivial(), setRescaleValues(), vectorize(), vectorize(), and vectorize().

◆ nr_dimensions_

template<typename PointT>
int pcl::PointRepresentation< PointT >::nr_dimensions_ = 0
protected

The number of dimensions in this point's vector (i.e.

the "k" in "k-D")

Definition at line 63 of file point_representation.h.

Referenced by getNumberOfDimensions(), isValid(), setRescaleValues(), vectorize(), vectorize(), and vectorize().

◆ trivial_

template<typename PointT>
bool pcl::PointRepresentation< PointT >::trivial_ = false
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 75 of file point_representation.h.

Referenced by isTrivial(), and isValid().


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