Developer Documentation
Loading...
Searching...
No Matches
OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor > Struct Template Reference

Class which applies a filter when iterating over elements. More...

#include <OpenFlipper/libs_required/OpenMesh/src/OpenMesh/Core/Mesh/SmartRange.hh>

Inheritance diagram for OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor >:
OpenMesh::SmartRangeT< FilteredSmartRangeT< RangeT, HandleT, Functor >, HandleT >

Classes

struct  FilteredIterator
 

Public Types

using BaseRange = SmartRangeT< FilteredSmartRangeT< RangeT, HandleT, Functor >, HandleT >
 
using BaseIterator = decltype((std::declval< typename RangeT::Range >().begin()))
 
- Public Types inherited from OpenMesh::SmartRangeT< FilteredSmartRangeT< RangeT, HandleT, Functor >, HandleT >
using Handle = HandleT
 
using SmartRange = SmartRangeT< FilteredSmartRangeT< RangeT, HandleT, Functor >, HandleT >
 
using Range = FilteredSmartRangeT< RangeT, HandleT, Functor >
 

Public Member Functions

 FilteredSmartRangeT (Functor &&f, BaseIterator begin, BaseIterator end)
 
FilteredIterator begin () const
 
FilteredIterator end () const
 
- Public Member Functions inherited from OpenMesh::SmartRangeT< FilteredSmartRangeT< RangeT, HandleT, Functor >, HandleT >
auto size () const -> size_t
 Computes number of elements.
 
auto sum (Functor &&f) const -> typename std::decay< decltype(f(std::declval< HandleT >()))>::type
 Computes the sum of elements.
 
auto avg (Functor &&f) const -> typename std::decay< decltype(f(std::declval< HandleT >()))>::type
 Computes the average of elements.
 
auto avg (Functor &&f, WeightFunctor &&w) const -> typename std::decay< decltype((1.0/(w(std::declval< HandleT >())+w(std::declval< HandleT >()))) *f(std::declval< HandleT >()))>::type
 Computes the weighted average of elements.
 
auto any_of (Functor &&f) const -> bool
 Check if any element fulfils condition.
 
auto all_of (Functor &&f) const -> bool
 Check if all elements fulfil condition.
 
auto to_array (Functor &&f={}) const -> std::array< typename std::decay< decltype(f(std::declval< HandleT >()))>::type, n >
 Convert range to array.
 
auto to_vector (Functor &&f={}) const -> std::vector< typename std::decay< decltype(f(std::declval< HandleT >()))>::type >
 Convert range to vector.
 
auto to_set (Functor &&f={}) const -> std::set< typename std::decay< decltype(f(std::declval< HandleT >()))>::type >
 Convert range to set.
 
auto first (Functor &&f={}) const -> HandleT
 Get the first element that fulfills a condition.
 
auto min (Functor &&f) const -> typename std::decay< decltype(f(std::declval< HandleT >()))>::type
 Compute minimum.
 
auto argmin (Functor &&f) const -> HandleT
 Compute minimal element.
 
auto max (Functor &&f) const -> typename std::decay< decltype(f(std::declval< HandleT >()))>::type
 Compute maximum.
 
auto argmax (Functor &&f) const -> HandleT
 Compute maximal element.
 
auto minmax (Functor &&f) const -> std::pair< typename std::decay< decltype(f(std::declval< HandleT >()))>::type, typename std::decay< decltype(f(std::declval< HandleT >()))>::type >
 Computes minimum and maximum.
 
auto count_if (Functor &&f) const -> int
 Compute number of elements that satisfy a given predicate.
 
auto for_each (Functor &&f) const -> void
 Apply a functor to each element.
 
auto filtered (Functor &&f) const -> FilteredSmartRangeT< SmartRange, Handle, Functor >
 Only iterate over a subset of elements.
 

Public Attributes

Functor f_
 
BaseIterator begin_
 
BaseIterator end_
 

Detailed Description

template<typename RangeT, typename HandleT, typename Functor>
struct OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor >

Class which applies a filter when iterating over elements.

Definition at line 449 of file SmartRange.hh.

Member Typedef Documentation

◆ BaseIterator

template<typename RangeT , typename HandleT , typename Functor >
using OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor >::BaseIterator = decltype((std::declval<typename RangeT::Range>().begin()))

Definition at line 452 of file SmartRange.hh.

◆ BaseRange

template<typename RangeT , typename HandleT , typename Functor >
using OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor >::BaseRange = SmartRangeT<FilteredSmartRangeT<RangeT, HandleT, Functor>, HandleT>

Definition at line 451 of file SmartRange.hh.

Constructor & Destructor Documentation

◆ FilteredSmartRangeT()

template<typename RangeT , typename HandleT , typename Functor >
OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor >::FilteredSmartRangeT ( Functor &&  f,
BaseIterator  begin,
BaseIterator  end 
)
inline

Definition at line 489 of file SmartRange.hh.

Member Function Documentation

◆ begin()

template<typename RangeT , typename HandleT , typename Functor >
FilteredIterator OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor >::begin ( ) const
inline

Definition at line 490 of file SmartRange.hh.

◆ end()

template<typename RangeT , typename HandleT , typename Functor >
FilteredIterator OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor >::end ( ) const
inline

Definition at line 491 of file SmartRange.hh.

Member Data Documentation

◆ begin_

template<typename RangeT , typename HandleT , typename Functor >
BaseIterator OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor >::begin_

Definition at line 494 of file SmartRange.hh.

◆ end_

template<typename RangeT , typename HandleT , typename Functor >
BaseIterator OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor >::end_

Definition at line 495 of file SmartRange.hh.

◆ f_

template<typename RangeT , typename HandleT , typename Functor >
Functor OpenMesh::FilteredSmartRangeT< RangeT, HandleT, Functor >::f_

Definition at line 493 of file SmartRange.hh.


The documentation for this struct was generated from the following file: