Developer Documentation
OpenMesh::CirculatorRange< CirculatorRangeTraitT > Class Template Reference

Generic class for iterator ranges. More...

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

Inheritance diagram for OpenMesh::CirculatorRange< CirculatorRangeTraitT >:
OpenMesh::SmartRangeT< CirculatorRange< CirculatorRangeTraitT >, SmartHandle< CirculatorRangeTraitT::TO_ENTITYE_TYPE >::type >

Public Types

typedef CirculatorRangeTraitT::ITER_TYPE ITER_TYPE
 
typedef CirculatorRangeTraitT::CENTER_ENTITY_TYPE CENTER_ENTITY_TYPE
 
typedef CirculatorRangeTraitT::CONTAINER_TYPE CONTAINER_TYPE
 
typedef ITER_TYPE iterator
 
typedef ITER_TYPE const_iterator
 
- Public Types inherited from OpenMesh::SmartRangeT< CirculatorRange< CirculatorRangeTraitT >, SmartHandle< CirculatorRangeTraitT::TO_ENTITYE_TYPE >::type >
using Handle = SmartHandle< CirculatorRangeTraitT::TO_ENTITYE_TYPE >::type
 
using SmartRange = SmartRangeT< CirculatorRange< CirculatorRangeTraitT >, SmartHandle< CirculatorRangeTraitT::TO_ENTITYE_TYPE >::type >
 
using Range = CirculatorRange< CirculatorRangeTraitT >
 

Public Member Functions

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

Private Attributes

const CONTAINER_TYPE & container_
 
HalfedgeHandle heh_
 

Detailed Description

template<typename CirculatorRangeTraitT>
class OpenMesh::CirculatorRange< CirculatorRangeTraitT >

Generic class for iterator ranges.

Definition at line 92 of file PolyConnectivity_inline_impl.hh.

Member Typedef Documentation

◆ CENTER_ENTITY_TYPE

template<typename CirculatorRangeTraitT >
typedef CirculatorRangeTraitT::CENTER_ENTITY_TYPE OpenMesh::CirculatorRange< CirculatorRangeTraitT >::CENTER_ENTITY_TYPE

Definition at line 95 of file PolyConnectivity_inline_impl.hh.

◆ const_iterator

template<typename CirculatorRangeTraitT >
typedef ITER_TYPE OpenMesh::CirculatorRange< CirculatorRangeTraitT >::const_iterator

Definition at line 98 of file PolyConnectivity_inline_impl.hh.

◆ CONTAINER_TYPE

template<typename CirculatorRangeTraitT >
typedef CirculatorRangeTraitT::CONTAINER_TYPE OpenMesh::CirculatorRange< CirculatorRangeTraitT >::CONTAINER_TYPE

Definition at line 96 of file PolyConnectivity_inline_impl.hh.

◆ ITER_TYPE

template<typename CirculatorRangeTraitT >
typedef CirculatorRangeTraitT::ITER_TYPE OpenMesh::CirculatorRange< CirculatorRangeTraitT >::ITER_TYPE

Definition at line 94 of file PolyConnectivity_inline_impl.hh.

◆ iterator

template<typename CirculatorRangeTraitT >
typedef ITER_TYPE OpenMesh::CirculatorRange< CirculatorRangeTraitT >::iterator

Definition at line 97 of file PolyConnectivity_inline_impl.hh.

Constructor & Destructor Documentation

◆ CirculatorRange() [1/2]

template<typename CirculatorRangeTraitT >
OpenMesh::CirculatorRange< CirculatorRangeTraitT >::CirculatorRange ( const CONTAINER_TYPE &  container,
CENTER_ENTITY_TYPE  center 
)
inline

Definition at line 100 of file PolyConnectivity_inline_impl.hh.

◆ CirculatorRange() [2/2]

template<typename CirculatorRangeTraitT >
OpenMesh::CirculatorRange< CirculatorRangeTraitT >::CirculatorRange ( const CONTAINER_TYPE &  container,
HalfedgeHandle  heh,
int   
)
inline

Definition at line 109 of file PolyConnectivity_inline_impl.hh.

Member Function Documentation

◆ begin()

template<typename CirculatorRangeTraitT >
ITER_TYPE OpenMesh::CirculatorRange< CirculatorRangeTraitT >::begin ( ) const
inline

Definition at line 114 of file PolyConnectivity_inline_impl.hh.

◆ end()

template<typename CirculatorRangeTraitT >
ITER_TYPE OpenMesh::CirculatorRange< CirculatorRangeTraitT >::end ( ) const
inline

Definition at line 115 of file PolyConnectivity_inline_impl.hh.

Member Data Documentation

◆ container_

template<typename CirculatorRangeTraitT >
const CONTAINER_TYPE& OpenMesh::CirculatorRange< CirculatorRangeTraitT >::container_
private

Definition at line 118 of file PolyConnectivity_inline_impl.hh.

◆ heh_


The documentation for this class was generated from the following files: