Developer Documentation
OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember > Class Template Reference

Public Types

typedef ValueHandle value_handle
 
typedef value_handle value_type
 
typedef std::bidirectional_iterator_tag iterator_category
 
typedef std::ptrdiff_t difference_type
 
typedef const Meshmesh_ptr
 
typedef const Meshmesh_ref
 
typedef decltype(make_smart(std::declval< ValueHandle >(), std::declval< Mesh >())) SmartHandle
 
typedef const SmartHandle & reference
 
typedef const SmartHandle * pointer
 

Public Member Functions

 GenericIteratorT ()
 Default constructor. More...
 
 GenericIteratorT (mesh_ref _mesh, value_handle _hnd, bool _skip=false)
 Construct with mesh and a target handle. More...
 
reference operator* () const
 Standard dereferencing operator. More...
 
pointer operator-> () const
 Standard pointer operator. More...
 
value_handle handle () const
 Get the handle of the item the iterator refers to. More...
 
 operator value_handle () const
 Cast to the handle of the item the iterator refers to. More...
 
bool operator== (const GenericIteratorT &_rhs) const
 Are two iterators equal? Only valid if they refer to the same mesh! More...
 
bool operator!= (const GenericIteratorT &_rhs) const
 Not equal? More...
 
GenericIteratorToperator++ ()
 Standard pre-increment operator. More...
 
GenericIteratorT operator++ (int)
 Standard post-increment operator. More...
 
GenericIteratorToperator-- ()
 Standard pre-decrement operator. More...
 
GenericIteratorT operator-- (int)
 Standard post-decrement operator. More...
 
void enable_skipping ()
 Turn on skipping: automatically skip deleted/hidden elements. More...
 
void disable_skipping ()
 Turn on skipping: automatically skip deleted/hidden elements. More...
 

Protected Attributes

SmartHandle hnd_
 
unsigned int skip_bits_
 

Private Member Functions

void skip_fwd ()
 
void skip_bwd ()
 

Detailed Description

template<class Mesh, class ValueHandle, class MemberOwner, bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
class OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >

Definition at line 82 of file IteratorsT.hh.

Member Typedef Documentation

◆ difference_type

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
typedef std::ptrdiff_t OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::difference_type

Definition at line 89 of file IteratorsT.hh.

◆ iterator_category

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
typedef std::bidirectional_iterator_tag OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::iterator_category

Definition at line 88 of file IteratorsT.hh.

◆ mesh_ptr

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
typedef const Mesh* OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::mesh_ptr

Definition at line 90 of file IteratorsT.hh.

◆ mesh_ref

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
typedef const Mesh& OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::mesh_ref

Definition at line 91 of file IteratorsT.hh.

◆ pointer

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
typedef const SmartHandle* OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::pointer

Definition at line 94 of file IteratorsT.hh.

◆ reference

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
typedef const SmartHandle& OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::reference

Definition at line 93 of file IteratorsT.hh.

◆ SmartHandle

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
typedef decltype(make_smart(std::declval<ValueHandle>(), std::declval<Mesh>())) OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::SmartHandle

Definition at line 92 of file IteratorsT.hh.

◆ value_handle

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
typedef ValueHandle OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::value_handle

Definition at line 86 of file IteratorsT.hh.

◆ value_type

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
typedef value_handle OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::value_type

Definition at line 87 of file IteratorsT.hh.

Constructor & Destructor Documentation

◆ GenericIteratorT() [1/2]

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::GenericIteratorT ( )
inline

Default constructor.

Definition at line 97 of file IteratorsT.hh.

◆ GenericIteratorT() [2/2]

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::GenericIteratorT ( mesh_ref  _mesh,
value_handle  _hnd,
bool  _skip = false 
)
inline

Construct with mesh and a target handle.

Definition at line 102 of file IteratorsT.hh.

Member Function Documentation

◆ disable_skipping()

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
void OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::disable_skipping ( )
inline

Turn on skipping: automatically skip deleted/hidden elements.

Definition at line 223 of file IteratorsT.hh.

◆ enable_skipping()

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
void OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::enable_skipping ( )
inline

Turn on skipping: automatically skip deleted/hidden elements.

Definition at line 211 of file IteratorsT.hh.

◆ handle()

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
value_handle OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::handle ( ) const
inline

Get the handle of the item the iterator refers to.

Deprecated:
This function clutters your code. Use dereferencing operators -> and * instead.

Definition at line 124 of file IteratorsT.hh.

◆ operator value_handle()

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::operator value_handle ( ) const
inline

Cast to the handle of the item the iterator refers to.

Deprecated:
Implicit casts of iterators are unsafe. Use dereferencing operators -> and * instead.

Definition at line 135 of file IteratorsT.hh.

◆ operator!=()

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
bool OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::operator!= ( const GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember > &  _rhs) const
inline

Not equal?

Definition at line 145 of file IteratorsT.hh.

◆ operator*()

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
reference OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::operator* ( ) const
inline

Standard dereferencing operator.

Definition at line 109 of file IteratorsT.hh.

◆ operator++() [1/2]

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
GenericIteratorT & OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::operator++ ( )
inline

Standard pre-increment operator.

Definition at line 150 of file IteratorsT.hh.

◆ operator++() [2/2]

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
GenericIteratorT OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::operator++ ( int  )
inline

Standard post-increment operator.

Definition at line 158 of file IteratorsT.hh.

◆ operator--() [1/2]

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
GenericIteratorT & OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::operator-- ( )
inline

Standard pre-decrement operator.

Definition at line 196 of file IteratorsT.hh.

◆ operator--() [2/2]

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
GenericIteratorT OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::operator-- ( int  )
inline

Standard post-decrement operator.

Definition at line 204 of file IteratorsT.hh.

◆ operator->()

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
pointer OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::operator-> ( ) const
inline

Standard pointer operator.

Definition at line 114 of file IteratorsT.hh.

◆ operator==()

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
bool OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::operator== ( const GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember > &  _rhs) const
inline

Are two iterators equal? Only valid if they refer to the same mesh!

Definition at line 140 of file IteratorsT.hh.

◆ skip_bwd()

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
void OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::skip_bwd ( )
inlineprivate

Definition at line 236 of file IteratorsT.hh.

◆ skip_fwd()

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
void OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::skip_fwd ( )
inlineprivate

Definition at line 229 of file IteratorsT.hh.

Member Data Documentation

◆ hnd_

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
SmartHandle OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::hnd_
protected

Definition at line 243 of file IteratorsT.hh.

◆ skip_bits_

template<class Mesh , class ValueHandle , class MemberOwner , bool(MemberOwner::*)() const PrimitiveStatusMember, size_t(MemberOwner::*)() const PrimitiveCountMember>
unsigned int OpenMesh::Iterators::GenericIteratorT< Mesh, ValueHandle, MemberOwner, PrimitiveStatusMember, PrimitiveCountMember >::skip_bits_
protected

Definition at line 244 of file IteratorsT.hh.


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