On this page
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>
Public Types |
|
using | Ptr = shared_ptr< TfQuadraticXYZComparison< PointT > > |
using | ConstPtr = shared_ptr< const TfQuadraticXYZComparison< PointT > > |
using | Ptr = shared_ptr< ComparisonBase< PointT > > |
using | ConstPtr = shared_ptr< const ComparisonBase< PointT > > |
Public Member Functions |
|
TfQuadraticXYZComparison () | |
Constructor. More... |
|
~TfQuadraticXYZComparison () override=default | |
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... |
|
bool | evaluate (const PointT &point) const override |
Determine the result of this comparison. More... |
|
ComparisonBase () | |
Constructor. More... |
|
virtual | ~ComparisonBase ()=default |
Destructor. More... |
|
bool | isCapable () const |
Return if the comparison is capable. More... |
|
Protected Attributes |
|
Eigen::Matrix4f | comp_matr_ |
Eigen::Vector4f | comp_vect_ |
float | comp_scalar_ |
bool | capable_ |
True if capable. More... |
|
std::string | field_name_ |
Field name to compare data on. More... |
|
std::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 radius and length, three comparisons need to be combined as AND condition:
- side: A = [0 0 0, 0 1 0, 0 0 1]; v = [0, 0, 0]; c = -radius²; OP = LT (meaning "<")
- bottom base: A = 0; v = [0.5, 0, 0]; c = -x_min; OP = GT
- top base: A = 0; v = [0.5, 0, 0]; c = -x_max; OP = LT
Definition at line 311 of file conditional_removal.h.
Member Typedef Documentation
ConstPtr
using pcl::TfQuadraticXYZComparison< PointT >::ConstPtr = shared_ptr<const TfQuadraticXYZComparison<PointT> > |
Definition at line 317 of file conditional_removal.h.
Ptr
using pcl::TfQuadraticXYZComparison< PointT >::Ptr = shared_ptr<TfQuadraticXYZComparison<PointT> > |
Definition at line 316 of file conditional_removal.h.
Constructor & Destructor Documentation
TfQuadraticXYZComparison() [1/2]
Constructor.
Definition at line 369 of file conditional_removal.hpp.
References pcl::ComparisonBase< PointT >::capable_, pcl::TfQuadraticXYZComparison< PointT >::comp_matr_, pcl::TfQuadraticXYZComparison< PointT >::comp_vect_, pcl::ComparisonOps::EQ, and pcl::ComparisonBase< PointT >::op_.
~TfQuadraticXYZComparison()
|
overridedefault |
Empty destructor.
TfQuadraticXYZComparison() [2/2]
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 427 of file conditional_removal.hpp.
References pcl::ComparisonBase< PointT >::capable_, pcl::ComparisonBase< PointT >::op_, pcl::TfQuadraticXYZComparison< PointT >::setComparisonMatrix(), pcl::TfQuadraticXYZComparison< PointT >::setComparisonVector(), and pcl::TfQuadraticXYZComparison< PointT >::transformComparison().
Member Function Documentation
evaluate()
|
overridevirtual |
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 490 of file conditional_removal.hpp.
References pcl::ComparisonOps::EQ, pcl::ComparisonOps::GE, pcl::ComparisonOps::GT, pcl::ComparisonOps::LE, and pcl::ComparisonOps::LT.
setComparisonMatrix() [1/2]
|
inline |
set the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0".
Definition at line 348 of file conditional_removal.h.
References pcl::TfQuadraticXYZComparison< PointT >::comp_matr_.
Referenced by pcl::TfQuadraticXYZComparison< PointT >::TfQuadraticXYZComparison().
setComparisonMatrix() [2/2]
|
inline |
set the matrix "A" of the comparison "p'Ap + 2v'p + c [OP] 0".
Definition at line 360 of file conditional_removal.h.
References pcl::TfQuadraticXYZComparison< PointT >::comp_matr_.
setComparisonOperator()
|
inline |
set the operator "[OP]" of the comparison "p'Ap + 2v'p + c [OP] 0".
Definition at line 340 of file conditional_removal.h.
References pcl::ComparisonBase< PointT >::op_.
setComparisonScalar()
|
inline |
set the scalar "c" of the comparison "p'Ap + 2v'p + c [OP] 0".
Definition at line 387 of file conditional_removal.h.
References pcl::TfQuadraticXYZComparison< PointT >::comp_scalar_.
setComparisonVector() [1/2]
|
inline |
set the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0".
Definition at line 369 of file conditional_removal.h.
References pcl::TfQuadraticXYZComparison< PointT >::comp_vect_.
Referenced by pcl::TfQuadraticXYZComparison< PointT >::TfQuadraticXYZComparison().
setComparisonVector() [2/2]
|
inline |
set the vector "v" of the comparison "p'Ap + 2v'p + c [OP] 0".
Definition at line 378 of file conditional_removal.h.
References pcl::TfQuadraticXYZComparison< PointT >::comp_vect_.
transformComparison() [1/2]
|
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 418 of file conditional_removal.h.
References pcl::TfQuadraticXYZComparison< PointT >::transformComparison().
transformComparison() [2/2]
|
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 402 of file conditional_removal.h.
References pcl::TfQuadraticXYZComparison< PointT >::comp_matr_, and pcl::TfQuadraticXYZComparison< PointT >::comp_vect_.
Referenced by pcl::TfQuadraticXYZComparison< PointT >::TfQuadraticXYZComparison(), and pcl::TfQuadraticXYZComparison< PointT >::transformComparison().
Member Data Documentation
comp_matr_
|
protected |
comp_scalar_
|
protected |
Definition at line 437 of file conditional_removal.h.
Referenced by pcl::TfQuadraticXYZComparison< PointT >::setComparisonScalar().
comp_vect_
|
protected |
The documentation for this class was generated from the following files:
- pcl/filters/conditional_removal.h
- pcl/filters/impl/conditional_removal.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_tf_quadratic_x_y_z_comparison.html