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>`

Inheritance diagram for pcl::PointRepresentation< PointT >:

## 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 | ( |  | ) |

virtual default

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] | p | The input point
  [out] | out | A pointer to a float array.

Implemented in pcl::DefaultPointRepresentation< Narf36 >, pcl::DefaultPointRepresentation< PointDefault >, pcl::DefaultFeatureRepresentation< PointDefault >, pcl::CustomPointRepresentation< PointDefault >, pcl::DefaultPointRepresentation< PointNormal >, pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::MyPointRepresentation, pcl::DefaultPointRepresentation< PointXYZ >, pcl::DefaultPointRepresentation< PointXYZI >, pcl::GeneralizedIterativeClosestPoint6D::MyPointRepresentation, pcl::DefaultPointRepresentation< ShapeContext1980 >, pcl::DefaultPointRepresentation< SHOT1344 >, pcl::DefaultPointRepresentation< SHOT352 >, and pcl::DefaultPointRepresentation< UniqueShapeContext1960 >.

Referenced by pcl::PointRepresentation< PointT >::isValid(), pcl::PointRepresentation< PointT >::vectorize(), pcl::PointRepresentation< PointT >::vectorize(), and pcl::PointRepresentation< PointT >::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 pcl::PointRepresentation< PointT >::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 pcl::PointRepresentation< PointT >::alpha_, and pcl::PointRepresentation< PointT >::trivial_.

## isValid()

template<typename PointT >

virtual bool pcl::PointRepresentation< PointT >::isValid | ( | const PointT & | p | ) | const

inline virtual

Verify that the input point is valid.

Parameters

  p | The point to validate

Definition at line 104 of file point_representation.h.

References pcl::PointRepresentation< PointT >::copyToFloatArray(), pcl::PointRepresentation< PointT >::nr_dimensions_, and pcl::PointRepresentation< PointT >::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_array | The array/vector of rescale values. Can be of any type that implements the [] operator.

Definition at line 183 of file point_representation.h.

References pcl::PointRepresentation< PointT >::alpha_, and pcl::PointRepresentation< PointT >::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 pcl::PointRepresentation< PointT >::alpha_, pcl::PointRepresentation< PointT >::copyToFloatArray(), and pcl::PointRepresentation< PointT >::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] | p | the input point
  [out] | out | The output vector. Can be of any type that implements the [] operator.

Definition at line 144 of file point_representation.h.

References pcl::PointRepresentation< PointT >::alpha_, pcl::PointRepresentation< PointT >::copyToFloatArray(), and pcl::PointRepresentation< PointT >::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 pcl::PointRepresentation< PointT >::alpha_, pcl::PointRepresentation< PointT >::copyToFloatArray(), and pcl::PointRepresentation< PointT >::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 pcl::PointRepresentation< PointT >::isTrivial(), pcl::PointRepresentation< PointT >::setRescaleValues(), pcl::PointRepresentation< PointT >::vectorize(), pcl::PointRepresentation< PointT >::vectorize(), and pcl::PointRepresentation< PointT >::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 pcl::PointRepresentation< PointT >::getNumberOfDimensions(), pcl::PointRepresentation< PointT >::isValid(), pcl::PointRepresentation< PointT >::setRescaleValues(), pcl::PointRepresentation< PointT >::vectorize(), pcl::PointRepresentation< PointT >::vectorize(), and pcl::PointRepresentation< PointT >::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 pcl::PointRepresentation< PointT >::isTrivial(), and pcl::PointRepresentation< PointT >::isValid().

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

- pcl/point_representation.h