bioprocessing  5.1.2
bio::VolumeGraph< T, P >::edge_const_iterator Class Reference

Iterator on the edges of a volume graph. More...

#include <bioprocessing/graph/volumegraph.h>

Inheritance diagram for bio::VolumeGraph< T, P >::edge_const_iterator:
Collaboration diagram for bio::VolumeGraph< T, P >::edge_const_iterator:

Public Types

typedef Owner::Edge Edge
 
typedef Owner::Vertex Vertex
 
typedef Owner::Volume Volume
 
typedef Owner::Point Point
 

Public Member Functions

 edge_const_iterator ()
 
 edge_const_iterator (const This &o)
 
 edge_const_iterator (const NonConstThis &o)
 
 ~edge_const_iterator ()
 
Thisoperator= (const This &o)
 
Thisoperator= (const NonConstThis &o)
 
Thisoperator++ ()
 
This operator++ (int)
 
bool operator== (const This &o) const
 
bool operator!= (const This &o) const
 
bool operator== (const NonConstThis &o) const
 
bool operator!= (const NonConstThis &o) const
 
const Edgeoperator* () const
 
const Edgeoperator-> () const
 

Protected Types

typedef edge_const_iterator This
 
typedef edge_iterator NonConstThis
 
typedef VolumeGraph< T, P > Owner
 
typedef aims::StructuringElement::const_iterator ConnIt
 
typedef vertex_const_iterator VertexIt
 

Protected Member Functions

 edge_const_iterator (const Volume &vol, bool end, const Vertex &v, ConnIt b, ConnIt e)
 
 edge_const_iterator (const Volume &vol, bool end, VertexIt vb, VertexIt ve, ConnIt b, ConnIt e)
 
void toEnd ()
 
void toNext ()
 
void setEdge ()
 
template<typename P1 , typename P2 >
void copy (const P1 &p1, P2 &p2)
 
bool inside ()
 

Protected Attributes

Volume _vol
 
Point4d _cur
 
Point4d _nbr
 
Point4d _dim
 
VertexIt _vtxbeg
 
VertexIt _vtxend
 
ConnIt _conbeg
 
ConnIt _concur
 
ConnIt _conend
 
Edge _edg
 
Vertex _vtx
 

Friends

class VolumeGraph< T, P >
 

Detailed Description

template<typename T, typename P>
class bio::VolumeGraph< T, P >::edge_const_iterator

Iterator on the edges of a volume graph.

A lot like the vertex iterator

See also
VolumeGraph<T,P>::vertex_const_iterator

This is even more ugly, because I need to embed the connectivity iterator, and we loop on both the vertices and the connectivity. I am even wondering if the edges appear twice in the loop (a->b and then b->a), which is bad since we are considering non-oriented edges.

There must be a better way to do this, and it would not be wasted time to look at it.

Definition at line 593 of file volumegraph.h.

Member Typedef Documentation

◆ ConnIt

template<typename T , typename P >
typedef aims::StructuringElement::const_iterator bio::VolumeGraph< T, P >::edge_const_iterator::ConnIt
protected

Definition at line 605 of file volumegraph.h.

◆ Edge

template<typename T , typename P >
typedef Owner::Edge bio::VolumeGraph< T, P >::edge_const_iterator::Edge

Definition at line 600 of file volumegraph.h.

◆ NonConstThis

template<typename T , typename P >
typedef edge_iterator bio::VolumeGraph< T, P >::edge_const_iterator::NonConstThis
protected

Definition at line 597 of file volumegraph.h.

◆ Owner

template<typename T , typename P >
typedef VolumeGraph<T,P> bio::VolumeGraph< T, P >::edge_const_iterator::Owner
protected

Definition at line 598 of file volumegraph.h.

◆ Point

template<typename T , typename P >
typedef Owner::Point bio::VolumeGraph< T, P >::edge_const_iterator::Point

Definition at line 603 of file volumegraph.h.

◆ This

template<typename T , typename P >
typedef edge_const_iterator bio::VolumeGraph< T, P >::edge_const_iterator::This
protected

Definition at line 596 of file volumegraph.h.

◆ Vertex

template<typename T , typename P >
typedef Owner::Vertex bio::VolumeGraph< T, P >::edge_const_iterator::Vertex

Definition at line 601 of file volumegraph.h.

◆ VertexIt

template<typename T , typename P >
typedef vertex_const_iterator bio::VolumeGraph< T, P >::edge_const_iterator::VertexIt
protected

Definition at line 606 of file volumegraph.h.

◆ Volume

template<typename T , typename P >
typedef Owner::Volume bio::VolumeGraph< T, P >::edge_const_iterator::Volume

Definition at line 602 of file volumegraph.h.

Constructor & Destructor Documentation

◆ edge_const_iterator() [1/5]

template<typename T , typename P >
bio::VolumeGraph< T, P >::edge_const_iterator::edge_const_iterator ( const Volume vol,
bool  end,
const Vertex v,
ConnIt  b,
ConnIt  e 
)
inlineprotected

Definition at line 607 of file volumegraph.h.

◆ edge_const_iterator() [2/5]

template<typename T , typename P >
bio::VolumeGraph< T, P >::edge_const_iterator::edge_const_iterator ( const Volume vol,
bool  end,
VertexIt  vb,
VertexIt  ve,
ConnIt  b,
ConnIt  e 
)
inlineprotected

Definition at line 628 of file volumegraph.h.

◆ edge_const_iterator() [3/5]

template<typename T , typename P >
bio::VolumeGraph< T, P >::edge_const_iterator::edge_const_iterator ( )
inline

Definition at line 650 of file volumegraph.h.

◆ edge_const_iterator() [4/5]

template<typename T , typename P >
bio::VolumeGraph< T, P >::edge_const_iterator::edge_const_iterator ( const This o)
inline

Definition at line 663 of file volumegraph.h.

◆ edge_const_iterator() [5/5]

template<typename T , typename P >
bio::VolumeGraph< T, P >::edge_const_iterator::edge_const_iterator ( const NonConstThis o)
inline

Definition at line 676 of file volumegraph.h.

◆ ~edge_const_iterator()

template<typename T , typename P >
bio::VolumeGraph< T, P >::edge_const_iterator::~edge_const_iterator ( )
inline

Definition at line 689 of file volumegraph.h.

Member Function Documentation

◆ copy()

template<typename T , typename P >
template<typename P1 , typename P2 >
void bio::VolumeGraph< T, P >::edge_const_iterator::copy ( const P1 &  p1,
P2 &  p2 
)
inlineprotected

Definition at line 777 of file volumegraph.h.

◆ inside()

template<typename T , typename P >
bool bio::VolumeGraph< T, P >::edge_const_iterator::inside ( )
inlineprotected

Definition at line 783 of file volumegraph.h.

◆ operator!=() [1/2]

template<typename T , typename P >
bool bio::VolumeGraph< T, P >::edge_const_iterator::operator!= ( const NonConstThis o) const
inline

◆ operator!=() [2/2]

template<typename T , typename P >
bool bio::VolumeGraph< T, P >::edge_const_iterator::operator!= ( const This o) const
inline

◆ operator*()

template<typename T , typename P >
const Edge& bio::VolumeGraph< T, P >::edge_const_iterator::operator* ( ) const
inline

Definition at line 736 of file volumegraph.h.

◆ operator++() [1/2]

template<typename T , typename P >
This& bio::VolumeGraph< T, P >::edge_const_iterator::operator++ ( )
inline

Definition at line 720 of file volumegraph.h.

◆ operator++() [2/2]

template<typename T , typename P >
This bio::VolumeGraph< T, P >::edge_const_iterator::operator++ ( int  )
inline

Definition at line 726 of file volumegraph.h.

◆ operator->()

template<typename T , typename P >
const Edge* bio::VolumeGraph< T, P >::edge_const_iterator::operator-> ( ) const
inline

Definition at line 737 of file volumegraph.h.

◆ operator=() [1/2]

◆ operator=() [2/2]

◆ operator==() [1/2]

template<typename T , typename P >
bool bio::VolumeGraph< T, P >::edge_const_iterator::operator== ( const NonConstThis o) const
inline

◆ operator==() [2/2]

template<typename T , typename P >
bool bio::VolumeGraph< T, P >::edge_const_iterator::operator== ( const This o) const
inline

◆ setEdge()

template<typename T , typename P >
void bio::VolumeGraph< T, P >::edge_const_iterator::setEdge ( )
inlineprotected

Definition at line 769 of file volumegraph.h.

◆ toEnd()

template<typename T , typename P >
void bio::VolumeGraph< T, P >::edge_const_iterator::toEnd ( )
inlineprotected

Definition at line 740 of file volumegraph.h.

◆ toNext()

template<typename T , typename P >
void bio::VolumeGraph< T, P >::edge_const_iterator::toNext ( )
inlineprotected

Definition at line 745 of file volumegraph.h.

References bio::VolumeGraph< T, P >::inside().

Friends And Related Function Documentation

◆ VolumeGraph< T, P >

template<typename T , typename P >
friend class VolumeGraph< T, P >
friend

Definition at line 801 of file volumegraph.h.

Member Data Documentation

◆ _conbeg

template<typename T , typename P >
ConnIt bio::VolumeGraph< T, P >::edge_const_iterator::_conbeg
protected

◆ _concur

template<typename T , typename P >
ConnIt bio::VolumeGraph< T, P >::edge_const_iterator::_concur
protected

◆ _conend

template<typename T , typename P >
ConnIt bio::VolumeGraph< T, P >::edge_const_iterator::_conend
protected

◆ _cur

template<typename T , typename P >
Point4d bio::VolumeGraph< T, P >::edge_const_iterator::_cur
protected

◆ _dim

template<typename T , typename P >
Point4d bio::VolumeGraph< T, P >::edge_const_iterator::_dim
protected

◆ _edg

◆ _nbr

template<typename T , typename P >
Point4d bio::VolumeGraph< T, P >::edge_const_iterator::_nbr
protected

◆ _vol

template<typename T , typename P >
Volume bio::VolumeGraph< T, P >::edge_const_iterator::_vol
protected

◆ _vtx

template<typename T , typename P >
Vertex bio::VolumeGraph< T, P >::edge_const_iterator::_vtx
protected

◆ _vtxbeg

template<typename T , typename P >
VertexIt bio::VolumeGraph< T, P >::edge_const_iterator::_vtxbeg
protected

◆ _vtxend

template<typename T , typename P >
VertexIt bio::VolumeGraph< T, P >::edge_const_iterator::_vtxend
protected

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