12 #include <pcl/filters/filter_indices.h>
13 #include <pcl/type_traits.h>
16 namespace experimental {
17 template <
typename Po
intT,
typename Function>
28 template <
typename Po
intT,
typename Functor>
36 static_assert(is_functor_for_filter_v<PointT, FunctorT>,
37 "Functor signature must be similar to `bool(const PointCloud<PointT>&, "
57 :
Base(extract_removed_indices),
functor_(std::move(functor))
82 indices.reserve(
input_->size());
91 indices.push_back(index);
bool extract_removed_indices_
Set to true if we want to return the indices of the removed points.
std::string filter_name_
The filter name.
IndicesPtr removed_indices_
Indices of the points that are removed.
FilterIndices represents the base class for filters that are about binary point removal.
bool negative_
False = normal filter behavior (default), true = inverted behavior.
PointCloudConstPtr input_
The input point cloud dataset.
IndicesPtr indices_
A pointer to the vector of point indices to use.
Filter point clouds and indices based on a functor passed in the ctor.
FunctorT & getFunctor() noexcept
PointCloudConstPtr input_
The input point cloud dataset.
const FunctorT & getFunctor() const noexcept
FunctorFilter(FunctorT functor, bool extract_removed_indices=false)
Constructor.
bool negative_
False = normal filter behavior (default), true = inverted behavior.
IndicesPtr indices_
A pointer to the vector of point indices to use.
void applyFilter(Indices &indices) override
Filtered results are indexed by an indices array.
constexpr static bool is_functor_for_filter_v
detail::int_type_t< detail::index_type_size, detail::index_type_signed > index_t
Type used for an index in PCL.
std::remove_cv_t< std::remove_reference_t< T > > remove_cvref_t
IndicesAllocator<> Indices
Type used for indices in PCL.
constexpr bool is_invocable_r_v
Base functor all the models that need non linear optimization must define their own one and implement...