38#ifndef PCL_FILTERS_IMPL_FILTER_INDICES_H_
39#define PCL_FILTERS_IMPL_FILTER_INDICES_H_
41#include <pcl/filters/filter_indices.h>
43template <
typename Po
intT>
void
61 if (!std::isfinite (
cloud_in[i].x) ||
76template<
typename Po
intT>
void
82 if (!extract_removed_indices_)
84 PCL_WARN (
"[pcl::FilterIndices<PointT>::applyFilter] extract_removed_indices_ was set to 'true' to keep the point cloud organized.\n");
85 extract_removed_indices_ =
true;
87 applyFilter (indices);
95 const PointXYZ ufv (user_filter_value_, user_filter_value_, user_filter_value_);
96 for (
const auto ri : *removed_indices_)
98 if (!std::isfinite (user_filter_value_))
104 applyFilter (indices);
110#define PCL_INSTANTIATE_removeNanFromPointCloud(T) template PCL_EXPORTS void pcl::removeNaNFromPointCloud<T>(const pcl::PointCloud<T>&, Indices&);
111#define PCL_INSTANTIATE_FilterIndices(T) template class PCL_EXPORTS pcl::FilterIndices<T>;
Iterator class for point clouds with or without given indices.
ConstCloudIterator(const PointCloud< PointT > &cloud)
std::size_t size() const
Size of the range the iterator is going through.
virtual void applyFilter(Indices &indices)=0
Abstract filter method for point cloud indices.
PointCloud represents the base class in PCL for storing collections of 3D points.
void copyPoint(const PointInT &point_in, PointOutT &point_out)
Copy the fields of a source point into a target point.
void copyPointCloud(const pcl::PointCloud< PointInT > &cloud_in, pcl::PointCloud< PointOutT > &cloud_out)
Copy all the fields from a given point cloud into a new point cloud.
void removeNaNFromPointCloud(const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, Indices &index)
Removes points with x, y, or z equal to NaN.
IndicesAllocator<> Indices
Type used for indices in PCL.
A point structure representing Euclidean xyz coordinates.