Public Member Functions | Private Attributes

MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge > Class Template Reference

MeshHalfEdgeIterator, transverse all the halfedges in the mesh. More...

#include <iterators.h>

Collaboration diagram for MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 MeshHalfEdgeIterator (CBaseMesh< CVertex, CEdge, CFace, CHalfEdge > *pMesh)
CHalfEdgevalue ()
CHalfEdgeoperator* ()
void operator++ ()
void operator++ (int)
bool end ()

Private Attributes

CHalfEdgem_he
CBaseMesh< CVertex, CEdge,
CFace, CHalfEdge > * 
m_pMesh
std::list< CEdge * >::iterator m_iter
int m_id

Detailed Description

template<typename CVertex, typename CEdge, typename CFace, typename CHalfEdge>
class MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >

MeshHalfEdgeIterator, transverse all the halfedges in the mesh.

Definition at line 919 of file iterators.h.


Constructor & Destructor Documentation

template<typename CVertex , typename CEdge , typename CFace , typename CHalfEdge >
MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >::MeshHalfEdgeIterator ( CBaseMesh< CVertex, CEdge, CFace, CHalfEdge > *  pMesh  )  [inline]

MeshHalfedgeIterator constructor,

Parameters:
pMesh the current mesh

Definition at line 926 of file iterators.h.

        {
     m_pMesh = pMesh;
     m_iter = m_pMesh->edges().begin();
     m_id = 0;
        }


Member Function Documentation

template<typename CVertex , typename CEdge , typename CFace , typename CHalfEdge >
bool MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >::end (  )  [inline]

Indicate whether all the halfedges have been accessed

Definition at line 993 of file iterators.h.

{ return m_iter == m_pMesh->edges().end(); }

template<typename CVertex , typename CEdge , typename CFace , typename CHalfEdge >
CHalfEdge* MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >::operator* (  )  [inline]

The halfedge, pointed by the current iterator

Definition at line 939 of file iterators.h.

{ return value(); };

Here is the call graph for this function:

template<typename CVertex , typename CEdge , typename CFace , typename CHalfEdge >
void MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >::operator++ ( int   )  [inline]

MeshVertexIterator postfix operator ++, goes to the next vertex

Definition at line 968 of file iterators.h.

        { 
                ++m_id;

                switch( m_id )
                {
                case 1:
                        {
                                CEdge * e = *m_iter;
                                if( e->halfedge(m_id) == NULL )
                                {
                                        m_id = 0;
                                        ++ m_iter;
                                }
                        }
                        break;
                case 2:
                        m_id = 0;
                        ++m_iter;
                        break;
                }
        };

Here is the call graph for this function:

template<typename CVertex , typename CEdge , typename CFace , typename CHalfEdge >
void MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >::operator++ (  )  [inline]

MeshVertexIterator prefix operator ++, goes to the next halfedge

Definition at line 943 of file iterators.h.

        { 
                ++m_id;

                switch( m_id )
                {
                case 1:
                        {
                                CEdge * e = *m_iter;
                                if( e->halfedge(m_id) == NULL )
                                {
                                        m_id = 0;
                                        ++ m_iter;
                                }
                        }
                        break;
                case 2:
                        m_id = 0;
                        ++m_iter;
                        break;
                }
        };

Here is the call graph for this function:

template<typename CVertex , typename CEdge , typename CFace , typename CHalfEdge >
CHalfEdge* MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >::value (  )  [inline]

The halfedge, pointed by the current iterator

Definition at line 935 of file iterators.h.

{ CEdge * e = *m_iter; return (CHalfEdge*)e->halfedge(m_id); };

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

template<typename CVertex , typename CEdge , typename CFace , typename CHalfEdge >
CHalfEdge* MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >::m_he [private]

Current halfedge

Definition at line 1000 of file iterators.h.

template<typename CVertex , typename CEdge , typename CFace , typename CHalfEdge >
int MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >::m_id [private]

Definition at line 1009 of file iterators.h.

template<typename CVertex , typename CEdge , typename CFace , typename CHalfEdge >
std::list<CEdge*>::iterator MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >::m_iter [private]

Current edge list iterator

Definition at line 1008 of file iterators.h.

template<typename CVertex , typename CEdge , typename CFace , typename CHalfEdge >
CBaseMesh<CVertex,CEdge,CFace,CHalfEdge>* MeshLib::MeshHalfEdgeIterator< CVertex, CEdge, CFace, CHalfEdge >::m_pMesh [private]

Current mesh

Definition at line 1004 of file iterators.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Defines