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). 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. More...

`#include <conditional_removal.h>`

Inheritance diagram for pcl::TfQuadraticXYZComparison< PointT >:
[legend]

List of all members.

## Public Types

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

## Public Member Functions

virtual bool evaluate (const PointT &point) const
Determine the result of this comparison.
void setComparisonMatrix (const Eigen::Matrix3f &matrix)
set the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0".
void setComparisonMatrix (const Eigen::Matrix4f &homogeneousMatrix)
set the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0".
void setComparisonOperator (const pcl::ComparisonOps::CompareOp op)
set the operator "[OP]" of the comparison "p'Ap + 2v'p + c [OP] 0".
void setComparisonScalar (const float &scalar)
set the scalar "c" of the comparison "p'Ap + 2v'p + c [OP] 0".
void setComparisonVector (const Eigen::Vector3f &vector)
set the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0".
void setComparisonVector (const Eigen::Vector4f &homogeneousVector)
set the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0".
Constructor.
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.
void transformComparison (const Eigen::Matrix4f &transform)
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.
void transformComparison (const Eigen::Affine3f &transform)
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.
Empty destructor.

## Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW
typedef boost::shared_ptr
< PointT > >
Ptr

## Protected Attributes

Eigen::Matrix4f comp_matr_
float comp_scalar_
Eigen::Vector4f comp_vect_

## Private Attributes

Eigen::Matrix4f tf_comp_matr_
Eigen::Vector4f tf_comp_vect_

## 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 ...

Definition at line 309 of file conditional_removal.h.

## Member Typedef Documentation

template<typename PointT>
 typedef boost::shared_ptr > pcl::TfQuadraticXYZComparison< PointT >::ConstPtr

Reimplemented from pcl::ComparisonBase< PointT >.

Definition at line 315 of file conditional_removal.h.

## Constructor & Destructor Documentation

template<typename PointT >

Constructor.

Definition at line 381 of file conditional_removal.hpp.

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

Empty destructor.

Definition at line 322 of file conditional_removal.h.

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 442 of file conditional_removal.hpp.

## Member Function Documentation

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 508 of file conditional_removal.hpp.

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.

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.

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.

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.

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.

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.

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.

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

template<typename PointT>
 Eigen::Matrix4f pcl::TfQuadraticXYZComparison< PointT >::comp_matr_` [protected]`

Definition at line 432 of file conditional_removal.h.

template<typename PointT>
 float pcl::TfQuadraticXYZComparison< PointT >::comp_scalar_` [protected]`

Definition at line 435 of file conditional_removal.h.

template<typename PointT>
 Eigen::Vector4f pcl::TfQuadraticXYZComparison< PointT >::comp_vect_` [protected]`

Definition at line 433 of file conditional_removal.h.

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

Reimplemented from pcl::ComparisonBase< PointT >.

Definition at line 314 of file conditional_removal.h.

template<typename PointT>
 Eigen::Matrix4f pcl::TfQuadraticXYZComparison< PointT >::tf_comp_matr_` [private]`

Definition at line 438 of file conditional_removal.h.

template<typename PointT>
 Eigen::Vector4f pcl::TfQuadraticXYZComparison< PointT >::tf_comp_vect_` [private]`

Definition at line 439 of file conditional_removal.h.

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

pcl
Author(s): Open Perception
autogenerated on Wed Aug 26 2015 15:43:37