38 #ifndef PCL_FILTER_FIELD_VAL_CONDITION_H_
39 #define PCL_FILTER_FIELD_VAL_CONDITION_H_
46 namespace ComparisonOps
59 template<
typename Po
intT>
65 datatype_ (datatype), offset_ (offset)
87 template<
typename Po
intT>
91 typedef boost::shared_ptr<ComparisonBase<PointT> >
Ptr;
92 typedef boost::shared_ptr<const ComparisonBase<PointT> >
ConstPtr;
116 std::string field_name_;
127 template<
typename Po
intT>
135 typedef boost::shared_ptr<FieldComparison<PointT> >
Ptr;
136 typedef boost::shared_ptr<const FieldComparison<PointT> >
ConstPtr;
149 compare_val_ (src.compare_val_), point_data_ (src.point_data_)
159 compare_val_ = src.compare_val_;
160 point_data_ = src.point_data_;
183 compare_val_ (), point_data_ ()
190 template<
typename Po
intT>
216 std::string component_name_;
219 uint32_t component_offset_;
226 component_name_ (), component_offset_ (), compare_val_ ()
234 template<
typename Po
intT>
267 std::string component_name_;
276 uint32_t rgb_offset_;
280 component_name_ (), component_id_ (), compare_val_ (), rgb_offset_ ()
292 template<
typename Po
intT>
296 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
298 typedef boost::shared_ptr<TfQuadraticXYZComparison<PointT> >
Ptr;
299 typedef boost::shared_ptr<const TfQuadraticXYZComparison<PointT> >
ConstPtr;
313 const Eigen::Vector3f &comparison_vector,
const float &comparison_scalar,
314 const Eigen::Affine3f &comparison_transform = Eigen::Affine3f::Identity ());
330 comp_matr_.block<3, 3> (0, 0) = matrix;
331 comp_matr_.col (3) << 0, 0, 0, 1;
332 comp_matr_.block<1, 3> (3, 0) << 0, 0, 0;
333 tf_comp_matr_ = comp_matr_;
341 comp_matr_ = homogeneousMatrix;
342 tf_comp_matr_ = comp_matr_;
350 comp_vect_ = vector.homogeneous ();
351 tf_comp_vect_ = comp_vect_;
359 comp_vect_ = homogeneousVector;
360 tf_comp_vect_ = comp_vect_;
368 comp_scalar_ = scalar;
383 tf_comp_matr_ = transform.transpose () * comp_matr_ * transform;
384 tf_comp_vect_ = comp_vect_.transpose () * transform;
413 Eigen::Matrix4f comp_matr_;
414 Eigen::Vector4f comp_vect_;
419 Eigen::Matrix4f tf_comp_matr_;
420 Eigen::Vector4f tf_comp_vect_;
425 template<
typename Po
intT>
433 typedef boost::shared_ptr<ConditionBase<PointT> >
Ptr;
434 typedef boost::shared_ptr<const ConditionBase<PointT> >
ConstPtr;
445 comparisons_.clear ();
448 conditions_.clear ();
481 std::vector<ComparisonBaseConstPtr> comparisons_;
484 std::vector<Ptr> conditions_;
489 template<
typename Po
intT>
496 typedef boost::shared_ptr<ConditionAnd<PointT> >
Ptr;
497 typedef boost::shared_ptr<const ConditionAnd<PointT> >
ConstPtr;
517 template<
typename Po
intT>
524 typedef boost::shared_ptr<ConditionOr<PointT> >
Ptr;
525 typedef boost::shared_ptr<const ConditionOr<PointT> >
ConstPtr;
574 template<
typename Po
intT>
600 Filter<
PointT>::
Filter (extract_removed_indices), capable_ (false), keep_organized_ (false), condition_ (),
601 user_filter_value_ (std::numeric_limits<float>::quiet_NaN ())
603 filter_name_ =
"ConditionalRemoval";
612 Filter<
PointT>::
Filter (extract_removed_indices), capable_ (false), keep_organized_ (false), condition_ (),
613 user_filter_value_ (std::numeric_limits<float>::quiet_NaN ())
615 filter_name_ =
"ConditionalRemoval";
630 keep_organized_ = val;
636 return (keep_organized_);
647 user_filter_value_ = val;
674 bool keep_organized_;
682 float user_filter_value_;