pcl::TfQuadraticXYZComparison< PointT > Class Template Reference

A comparison whether the (x,y,z) components of a given point satisfy (p'Ap + 2v'p + c [OP] 0). More...

`#include <pcl/filters/conditional_removal.h>`

Inheritance diagram for pcl::TfQuadraticXYZComparison< PointT >:

## Public Types

typedef boost::shared_ptr< const TfQuadraticXYZComparison< PointT > > | ConstPtr
Public Types inherited from pcl::ComparisonBase< PointT >
typedef boost::shared_ptr< ComparisonBase< PointT > > | Ptr
typedef boost::shared_ptr< const ComparisonBase< PointT > > | ConstPtr

## Public Member Functions

| TfQuadraticXYZComparison ()
| Constructor. More...
virtual | ~TfQuadraticXYZComparison ()
| Empty destructor. More...
| TfQuadraticXYZComparison (const pcl::ComparisonOps::CompareOp op, const Eigen::Matrix3f &comparison_matrix, const Eigen::Vector3f &comparison_vector, const float &comparison_scalar, const Eigen::Affine3f &comparison_transform=Eigen::Affine3f::Identity())
| Constructor. More...
void | setComparisonOperator (const pcl::ComparisonOps::CompareOp op)
| set the operator "[OP]" of the comparison "p'Ap + 2v'p + c [OP] 0". More...
void | setComparisonMatrix (const Eigen::Matrix3f &matrix)
| set the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0". More...
void | setComparisonMatrix (const Eigen::Matrix4f &homogeneousMatrix)
| set the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0". More...
void | setComparisonVector (const Eigen::Vector3f &vector)
| set the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0". More...
void | setComparisonVector (const Eigen::Vector4f &homogeneousVector)
| set the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0". More...
void | setComparisonScalar (const float &scalar)
| set the scalar "c" of the comparison "p'Ap + 2v'p + c [OP] 0". More...
void | transformComparison (const Eigen::Matrix4f &transform)
| transform the coordinate system of the comparison. More...
void | transformComparison (const Eigen::Affine3f &transform)
| transform the coordinate system of the comparison. More...
virtual bool | evaluate (const PointT &point) const
| Determine the result of this comparison. More...
Public Member Functions inherited from pcl::ComparisonBase< PointT >
| ComparisonBase ()
| Constructor. More...
virtual | ~ComparisonBase ()
| Destructor. More...
bool | isCapable () const
| Return if the comparison is capable. More...

## Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef boost::shared_ptr< TfQuadraticXYZComparison< PointT > > | Ptr

## Protected Attributes

Eigen::Matrix4f | comp_matr_
Eigen::Vector4f | comp_vect_
float | comp_scalar_
Protected Attributes inherited from pcl::ComparisonBase< PointT >
bool | capable_
| True if capable. More...
std::string | field_name_
| Field name to compare data on. More...
uint32_t | offset_
| The data offset. More...
ComparisonOps::CompareOp | op_
| The comparison operator type. More...

## Detailed Description

### template<typename PointT>
class pcl::TfQuadraticXYZComparison< PointT >

A comparison whether the (x,y,z) components of a given point satisfy (p'Ap + 2v'p + c [OP] 0).

Here [OP] stands for the defined pcl::ComparisonOps, i.e. for GT, GE, LT, LE or EQ; p = (x,y,z) is a point of the point cloud; A is 3x3 matrix; v is the 3x1 vector; c is a scalar.

One can also use TfQuadraticXYZComparison for simpler geometric shapes by defining the quadratic parts (i.e. the matrix A) to be zero. By combining different instances of TfQuadraticXYZComparison one can get more complex shapes. For example, to have a simple cylinder (along the x-axis) of specific length one needs three comparisons combined as AND condition:

1. The cylinder: A = [0 0 0, 0 1 0, 0 0 1]; v = [0, 0, 0]; c = radius²; OP = LT (meaning "<")
2. X-min limit: A = 0; v = [1, 0, 0]; c = x_min; OP = GT
3. X-max ...

Author
  Julian Löchner

Definition at line 309 of file conditional_removal.h.

## Member Typedef Documentation

## ConstPtr

template<typename PointT >

typedef boost::shared_ptr<const TfQuadraticXYZComparison<PointT> > pcl::TfQuadraticXYZComparison< PointT >::ConstPtr

Definition at line 315 of file conditional_removal.h.

## Constructor & Destructor Documentation

## TfQuadraticXYZComparison() [1/2]

template<typename PointT >

pcl::TfQuadraticXYZComparison< PointT >::TfQuadraticXYZComparison | ( |  | ) |

Constructor.

Definition at line 382 of file conditional_removal.hpp.

References pcl::ComparisonBase< PointT >::capable_, pcl::TfQuadraticXYZComparison< PointT >::comp_matr_, pcl::TfQuadraticXYZComparison< PointT >::comp_vect_, pcl::ComparisonOps::EQ, pcl::getFields(), and pcl::ComparisonBase< PointT >::op_.

## ~TfQuadraticXYZComparison()

template<typename PointT >

virtual pcl::TfQuadraticXYZComparison< PointT >::~TfQuadraticXYZComparison | ( |  | ) |

inline virtual

Empty destructor.

Definition at line 322 of file conditional_removal.h.

## TfQuadraticXYZComparison() [2/2]

template<typename PointT >

pcl::TfQuadraticXYZComparison< PointT >::TfQuadraticXYZComparison | ( | const pcl::ComparisonOps::CompareOp | op,
|  | const Eigen::Matrix3f & | comparison_matrix,
|  | const Eigen::Vector3f & | comparison_vector,
|  | const float & | comparison_scalar,
|  | const Eigen::Affine3f & | comparison_transform = `Eigen::Affine3f::Identity ()`
| ) |  |

Constructor.

Parameters

  op | the operator "[OP]" of the comparison "p'Ap + 2v'p + c [OP] 0".
  comparison_matrix | the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0".
  comparison_vector | the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0".
  comparison_scalar | the scalar "c" of the comparison "p'Ap + 2v'p + c [OP] 0".
  comparison_transform | the transformation of the comparison.

Definition at line 443 of file conditional_removal.hpp.

References pcl::ComparisonBase< PointT >::capable_, pcl::getFields(), pcl::ComparisonBase< PointT >::op_, pcl::TfQuadraticXYZComparison< PointT >::setComparisonMatrix(), pcl::TfQuadraticXYZComparison< PointT >::setComparisonVector(), and pcl::TfQuadraticXYZComparison< PointT >::transformComparison().

## Member Function Documentation

## evaluate()

template<typename PointT >

bool pcl::TfQuadraticXYZComparison< PointT >::evaluate | ( | const PointT & | point | ) | const

virtual

Determine the result of this comparison.

Parameters

  point | the point to evaluate

Returns
  the result of this comparison.

Implements pcl::ComparisonBase< PointT >.

Definition at line 509 of file conditional_removal.hpp.

References pcl::TfQuadraticXYZComparison< PointT >::comp_scalar_, pcl::ComparisonOps::EQ, pcl::ComparisonOps::GE, pcl::ComparisonOps::GT, pcl::ComparisonOps::LE, pcl::ComparisonOps::LT, and pcl::ComparisonBase< PointT >::op_.

Referenced by pcl::ConditionAnd< PointT >::evaluate(), and pcl::ConditionOr< PointT >::evaluate().

## setComparisonMatrix() [1/2]

template<typename PointT >

void pcl::TfQuadraticXYZComparison< PointT >::setComparisonMatrix | ( | const Eigen::Matrix3f & | matrix | ) |

inline

set the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0".

Definition at line 346 of file conditional_removal.h.

Referenced by pcl::TfQuadraticXYZComparison< PointT >::TfQuadraticXYZComparison().

## setComparisonMatrix() [2/2]

template<typename PointT >

void pcl::TfQuadraticXYZComparison< PointT >::setComparisonMatrix | ( | const Eigen::Matrix4f & | homogeneousMatrix | ) |

inline

set the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0".

Definition at line 358 of file conditional_removal.h.

## setComparisonOperator()

template<typename PointT >

void pcl::TfQuadraticXYZComparison< PointT >::setComparisonOperator | ( | const pcl::ComparisonOps::CompareOp | op | ) |

inline

set the operator "[OP]" of the comparison "p'Ap + 2v'p + c [OP] 0".

Definition at line 338 of file conditional_removal.h.

## setComparisonScalar()

template<typename PointT >

void pcl::TfQuadraticXYZComparison< PointT >::setComparisonScalar | ( | const float & | scalar | ) |

inline

set the scalar "c" of the comparison "p'Ap + 2v'p + c [OP] 0".

Definition at line 385 of file conditional_removal.h.

## setComparisonVector() [1/2]

template<typename PointT >

void pcl::TfQuadraticXYZComparison< PointT >::setComparisonVector | ( | const Eigen::Vector3f & | vector | ) |

inline

set the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0".

Definition at line 367 of file conditional_removal.h.

Referenced by pcl::TfQuadraticXYZComparison< PointT >::TfQuadraticXYZComparison().

## setComparisonVector() [2/2]

template<typename PointT >

void pcl::TfQuadraticXYZComparison< PointT >::setComparisonVector | ( | const Eigen::Vector4f & | homogeneousVector | ) |

inline

set the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0".

Definition at line 376 of file conditional_removal.h.

## transformComparison() [1/2]

template<typename PointT >

void pcl::TfQuadraticXYZComparison< PointT >::transformComparison | ( | const Eigen::Matrix4f & | transform | ) |

inline

transform the coordinate system of the comparison.

If you think of the transformation to be a translation and rotation of the comparison in the same coordinate system, you have to provide the inverse transformation. This function does not change the original definition of the comparison. Thus, each call of this function will assume the original definition of the comparison as starting point for the transformation.

Parameters

  transform | the transformation (rotation and translation) as an affine matrix.

Definition at line 400 of file conditional_removal.h.

Referenced by pcl::TfQuadraticXYZComparison< PointT >::TfQuadraticXYZComparison().

## transformComparison() [2/2]

template<typename PointT >

void pcl::TfQuadraticXYZComparison< PointT >::transformComparison | ( | const Eigen::Affine3f & | transform | ) |

inline

transform the coordinate system of the comparison.

If you think of the transformation to be a translation and rotation of the comparison in the same coordinate system, you have to provide the inverse transformation. This function does not change the original definition of the comparison. Thus, each call of this function will assume the original definition of the comparison as starting point for the transformation.

Parameters

  transform | the transformation (rotation and translation) as an affine matrix.

Definition at line 416 of file conditional_removal.h.

## Member Data Documentation

## comp_matr_

template<typename PointT >

Eigen::Matrix4f pcl::TfQuadraticXYZComparison< PointT >::comp_matr_

protected

Definition at line 432 of file conditional_removal.h.

Referenced by pcl::TfQuadraticXYZComparison< PointT >::TfQuadraticXYZComparison().

## comp_scalar_

template<typename PointT >

float pcl::TfQuadraticXYZComparison< PointT >::comp_scalar_

protected

Definition at line 435 of file conditional_removal.h.

Referenced by pcl::TfQuadraticXYZComparison< PointT >::evaluate().

## comp_vect_

template<typename PointT >

Eigen::Vector4f pcl::TfQuadraticXYZComparison< PointT >::comp_vect_

protected

Definition at line 433 of file conditional_removal.h.

Referenced by pcl::TfQuadraticXYZComparison< PointT >::TfQuadraticXYZComparison().

## Ptr

template<typename PointT >

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef boost::shared_ptr<TfQuadraticXYZComparison<PointT> > pcl::TfQuadraticXYZComparison< PointT >::Ptr

Definition at line 314 of file conditional_removal.h.

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

- /build/pcl-qv3n_B/pcl-1.8.1+dfsg1/filters/include/pcl/filters/conditional_removal.h
- /build/pcl-qv3n_B/pcl-1.8.1+dfsg1/filters/include/pcl/filters/impl/conditional_removal.hpp