bioprocessing 6.0.4
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
 
typedef T Type
 Value type.
 
typedef P Point
 Point type.
 
typedef Base::Edge Edge
 Usable edge type (RC)
 
typedef Base::Vertex Vertex
 Usable vertex type (RC)
 
typedef Base::Weight Weight
 Weight type.
 
typedef VolumeGraphRef< T, P > Graph
 Usable graph type (RC)
 
typedef VolumeGraphRef< T, P > Ref
 Reference type.
 
typedef carto::VolumeRef< TypeVolume
 Volume type.
 
- Public Types inherited from bio::EWBaseGraph< SetEdgeRef< PointVertexRef< P > >, T >
typedef T Weight
 Weight type.
 
typedef Base::Edge Edge
 Usable edge type.
 
typedef Base::Vertex Vertex
 Usable vertex type.
 
typedef EWBaseGraphRef< SetEdgeRef< PointVertexRef< P > >, T > Graph
 Usable graph type.
 
typedef EWBaseGraphRef< SetEdgeRef< PointVertexRef< P > >, T > Ref
 Reference type.
 
- Public Types inherited from bio::BaseGraph< SetEdgeRef< PointVertexRef< P > > >
typedef SetEdgeRef< PointVertexRef< P > > Edge
 Usable edge type.
 
typedef Edge::Vertex Vertex
 Usable vertex type.
 
typedef BaseGraphRef< SetEdgeRef< PointVertexRef< P > > > Graph
 Usable graph type.
 
typedef BaseGraphRef< SetEdgeRef< PointVertexRef< P > > > Ref
 Reference type.
 

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
 
 VolumeGraph (int sx=1, int sy=1, int sz=1, int st=1, const aims::strel::Connectivity &conn=aims::strel::Connectivity6XYZ())
 Constructor from volume dimensions and connectivity This initializes the graph so that it represents a volume of size sx * sy * sz * st, with edges representing a connectivity conn.
 
 VolumeGraph (const Volume &in, const aims::strel::Connectivity &conn=aims::strel::Connectivity6XYZ())
 Constructor from an exisiting volume and connectivity The volume is not copied, a reference to it is made.
 
virtual ~VolumeGraph ()
 
vertex_const_iterator beginVertex () const
 Iterator on all edges (This::Edge)
 
vertex_iterator beginVertex ()
 Iterator on all vertices.
 
vertex_const_iterator endVertex () const
 Iterator on all vertices.
 
vertex_iterator endVertex ()
 Iterator on all vertices.
 
edge_const_iterator beginEdge (const Vertex &v) const
 Iterator on the edges containing a given vertex.
 
edge_iterator beginEdge (const Vertex &v)
 Iterator on the edges containing a given vertex.
 
edge_const_iterator beginEdge () const
 
edge_iterator beginEdge ()
 
edge_const_iterator endEdge (const Vertex &v) const
 Iterator on the edges containing a given vertex.
 
edge_iterator endEdge (const Vertex &v)
 Iterator on the edges containing a given vertex.
 
edge_const_iterator endEdge () const
 
edge_iterator endEdge ()
 
void insert (Vertex v)
 Insertion of a new vertex (undefined for now)
 
void insert (Edge e)
 Insertion of a new edge (undefined for now)
 
void insert (Edge e, Weight w=(Weight) 0)
 Insertion of a weighted edge (undefined for now)
 
bool contains (const Vertex &v) const
 True if v is in the graph.
 
bool contains (const Edge &e) const
 True if e is in the graph.
 
bool empty () const
 True if the graph contains no edges and vertices.
 
void clear ()
 Clear the graph from all edges and vertices.
 
Weight weight (const Edge &e)
 Returns the weight of e.
 
Weight weight (const Edge &e) const
 Returns the weight of e.
 
bool isAdjacent (const Vertex &x, const Vertex &y) const
 Are x and y adjacent in the graph ?
 
bool isLinked (const Vertex &x, const Vertex &y) const
 Are x and y linked in the graph ?
 
bool isSubGraph (const Graph &g) const
 Is g a sub-graph os this graph ?
 
bool isConnectedComponent (const Graph &g) const
 Is g a connected component in this graph (Meaning all its vertices are linked)
 
bool isAdjacentTo (const Vertex &v, const Graph &g) const
 Is v adjacent to g ?
 
bool isAdjacentFrom (const Vertex &v, const Graph &g) const
 
Graph getConnectedComponent (Vertex &v)
 Returns the (one and only) connected component of this graph containing v.
 
Weight Fm (const Vertex &v) const
 Returns the minimum weight of all edges containing v.
 
void setDimensions (int sx=1, int sy=1, int sz=1, int st=1)
 Sets the dimensions of the underlying volume.
 
void setDimensions (const Point &dim)
 Sets the dimensions of the underlying volume.
 
void setHeader (float vx=1., float vy=1., float vz=1., float vt=1.)
 Sets the header of the underlying volume.
 
void setHeader (const Point4df &vs)
 Sets the header of the underlying volume.
 
void setWeightMethod (Weight(*weight)(const Type &, const Type &))
 Sets the weight method.
 
void mask (const carto::VolumeRef< M > &mask)
 Mask the underlying volume using mask.
 
T & access (const Point &p)
 Access the volume at voxel p.
 
const T & access (const Point &p) const
 Access the volume at voxel p.
 
bool inside (const Point &p) const
 True if p is a voxel from the underlying volume.
 
- Public Member Functions inherited from bio::EWBaseGraph< SetEdgeRef< PointVertexRef< P > >, T >
virtual ~EWBaseGraph ()
 
virtual bool isMinimum (const Graph &g) const
 
virtual bool isMinimumSpanningForestRelativeTo (const Graph &h, const Graph &g) const
 
virtual bool isMinimumSpanningTree (const Graph &g) const
 
bool isDescending (const Path &p) const
 
bool isPathofSteepestdescent (const Path &p) const
 
bool isWatershedCut (const EdgeSet &s) const
 
bool isBasinCut (const EdgeSet &es) const
 
virtual Graph getMinOfF () const
 
virtual Weight weight (const Graph &g) const
 
virtual Weight Fm (const Vertex &v) const
 
Fm (const G &thisg, const Vertex &v)
 
virtual ~EWBaseGraph ()
 
virtual Weight weight (const Graph &g) const
 
virtual bool isMinimum (const Graph &g) const
 
virtual bool isMinimumSpanningForestRelativeTo (const Graph &h, const Graph &g) const
 
virtual bool isMinimumSpanningTree (const Graph &g) const
 
bool isDescending (const Path &p) const
 
bool isPathofSteepestdescent (const Path &p) const
 
bool isWatershedCut (const EdgeSet &s) const
 
bool isBasinCut (const EdgeSet &es) const
 
virtual Graph getMinOfF () const
 
virtual Weight Fm (const Vertex &v) const
 
Fm (const G &thisg, const Vertex &v)
 
- Public Member Functions inherited from bio::BaseGraph< SetEdgeRef< PointVertexRef< P > > >
virtual ~BaseGraph ()
 
virtual void insert (Vertex v)
 
virtual bool contains (const Vertex &v) const
 
virtual bool contains (const Edge &e) const
 
virtual bool operator== (const This &other) const
 
virtual bool operator!= (const This &other) const
 
virtual bool operator> (const This &other) const
 
virtual bool operator< (const This &other) const
 
virtual bool operator>= (const This &other) const
 
virtual bool operator<= (const This &other) const
 
virtual bool operator= (const This &other)
 
virtual bool isAdjacent (const Vertex &x, const Vertex &y) const
 
virtual bool isLinked (const Vertex &x, const Vertex &y) const
 
virtual bool isSubGraph (const Graph &g) const
 
virtual bool isConnectedComponent (const Graph &g) const
 
virtual bool isAdjacentTo (const Vertex &v, const Graph &g) const
 
virtual bool isAdjacentFrom (const Vertex &v, const Graph &g) const
 
virtual bool isAdjacent (const Edge &e) const
 
virtual bool isLinked (const Vertex &v) const
 
virtual bool isExtension (const Graph &h, const Graph &g) const
 
virtual bool isForestRelativeTo (const Graph &h, const Graph &g) const
 
virtual bool isSpanningForestRelativeTo (const Graph &h, const Graph &g) const
 
virtual bool isTree (const Graph &g) const
 
virtual bool isSpanningTree (const Graph &g) const
 
virtual bool isForest (const Graph &g) const
 
virtual bool isSpanningForest (const Graph &g) const
 
bool isGraphCut (EdgeIterator begin, EdgeIterator end, const Graph &g) const
 
bool isGraphCut (const EdgeSet &es, const Graph &g) const
 
virtual ~BaseGraph ()
 
virtual void insert (Vertex v)
 
virtual bool contains (const Vertex &v) const
 
virtual bool contains (const Edge &e) const
 
virtual bool operator== (const This &other) const
 
virtual bool operator!= (const This &other) const
 
virtual bool operator> (const This &other) const
 
virtual bool operator< (const This &other) const
 
virtual bool operator>= (const This &other) const
 
virtual bool operator<= (const This &other) const
 
virtual bool operator= (const This &other)
 
virtual bool isAdjacent (const Vertex &x, const Vertex &y) const
 
virtual bool isAdjacent (const Edge &e) const
 
virtual bool isLinked (const Vertex &x, const Vertex &y) const
 
virtual bool isLinked (const Vertex &v) const
 
virtual bool isSubGraph (const Graph &g) const
 
virtual bool isConnectedComponent (const Graph &g) const
 
virtual bool isAdjacentTo (const Vertex &v, const Graph &g) const
 
virtual bool isAdjacentFrom (const Vertex &v, const Graph &g) const
 
virtual bool isExtension (const Graph &h, const Graph &g) const
 
virtual bool isForestRelativeTo (const Graph &h, const Graph &g) const
 
virtual bool isSpanningForestRelativeTo (const Graph &h, const Graph &g) const
 
virtual bool isTree (const Graph &g) const
 
virtual bool isSpanningTree (const Graph &g) const
 
virtual bool isForest (const Graph &g) const
 
virtual bool isSpanningForest (const Graph &g) const
 
bool isGraphCut (EdgeIterator begin, EdgeIterator end, const Graph &g) const
 
bool isGraphCut (const EdgeSet &es, const Graph &g) const
 

Static Public Member Functions

static Set getComplement (const Set &s, const Set &e)
 Returns the complement of s in e.
 
static Type notPresentValue ()
 Value whose meaning is "none".
 
static Type presentValue ()
 Value whose meaning is "present".
 
- Static Public Member Functions inherited from bio::BaseGraph< SetEdgeRef< PointVertexRef< P > > >
static Set getComplement (const Set &s, const Set &e)
 
static Set getComplement (const Set &s, const Set &e)
 

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
 
typedef VolumeGraph< T, P > This
 Type of *this.
 
typedef EWBaseGraph< SetEdgeRef< PointVertexRef< P > >, T > Base
 Base class (EWBaseGraph)
 
typedef BaseGraph< SetEdgeRef< PointVertexRef< P > > > BaseBase
 Base class of Base (BaseGraph)
 
- Protected Types inherited from bio::EWBaseGraph< SetEdgeRef< PointVertexRef< P > >, T >
typedef EWBaseGraph< SetEdgeRef< PointVertexRef< P > >, T > This
 Type of *this.
 
typedef BaseGraph< SetEdgeRef< PointVertexRef< P > > > Base
 Base class.
 
- Protected Types inherited from bio::BaseGraph< SetEdgeRef< PointVertexRef< P > > >
typedef BaseGraph< SetEdgeRef< PointVertexRef< P > > > This
 Type of *this.
 

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
 
Volume _vol
 
Weight(* _weight )(const Type &, const Type &)
 
aims::StructuringElement _conn
 

Friends

class VolumeGraph< T, P >
 

Additional Inherited Members

- Static Protected Member Functions inherited from bio::EWBaseGraph< SetEdgeRef< PointVertexRef< P > >, T >
static Weight Fm (const G &thisg, const Vertex &v)
 
static Weight Fm (const G &thisg, const Vertex &v)
 
- Static Protected Member Functions inherited from bio::BaseGraph< SetEdgeRef< PointVertexRef< P > > >
static bool isAdjacent (const G &thisg, const Vertex &x, const Vertex &y)
 These methods are templated on the iterator type (which is implementation dependant and thus not known in BaseGraph).
 
static bool isLinked (const G &thisg, const Vertex &x, const Vertex &y)
 
static bool isLinked (const G &thisg, const Vertex &x, const Vertex &y, VertexSet &s)
 
static bool isSubGraph (const G &thisg, const typename G::Ref &g)
 
static bool isConnectedComponent (const G &thisg, const typename G::Ref &g)
 
static bool isAdjacent (const G &thisg, const Edge &e)
 
static bool isAdjacentTo (const G &thisg, const Vertex &v, const typename G::Ref &g)
 
static bool isAdjacentFrom (const G &thisg, const Vertex &v, const typename G::Ref &g)
 
static G::Ref getConnectedComponent (G &thisg, Vertex &v)
 
static void getConnectedComponent (G &thisg, Vertex &v, typename G::Ref &g)
 
static bool isAdjacent (const G &thisg, const Vertex &x, const Vertex &y)
 These methods are templated on the iterator type (which is implementation dependant and thus not known in BaseGraph).
 
static bool isAdjacent (const G &thisg, const Edge &e)
 
static bool isLinked (const G &thisg, const Vertex &x, const Vertex &y)
 
static bool isLinked (const G &thisg, const Vertex &x, const Vertex &y, VertexSet &s)
 
static bool isSubGraph (const G &thisg, const typename G::Ref &g)
 
static bool isConnectedComponent (const G &thisg, const typename G::Ref &g)
 
static bool isAdjacentTo (const G &thisg, const Vertex &v, const typename G::Ref &g)
 
static bool isAdjacentFrom (const G &thisg, const Vertex &v, const typename G::Ref &g)
 
static G::Ref getConnectedComponent (G &thisg, Vertex &v)
 
static void getConnectedComponent (G &thisg, Vertex &v, typename G::Ref &g)
 

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

◆ Base

typedef EWBaseGraph< SetEdgeRef< PointVertexRef< P > >, T > bio::VolumeGraph< T, P >::Base
protected

Base class (EWBaseGraph)

Definition at line 62 of file volumegraph.h.

◆ BaseBase

typedef BaseGraph<SetEdgeRef< PointVertexRef< P > > > bio::VolumeGraph< T, P >::BaseBase
protected

Base class of Base (BaseGraph)

Definition at line 63 of file volumegraph.h.

◆ 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 [1/2]

typedef Base::Edge bio::VolumeGraph< T, P >::Edge

Usable edge type (RC)

Definition at line 67 of file volumegraph.h.

◆ Edge [2/2]

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

Definition at line 600 of file volumegraph.h.

◆ Graph

typedef VolumeGraphRef<T,P> bio::VolumeGraph< T, P >::Graph

Usable graph type (RC)

Definition at line 70 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 [1/2]

typedef P bio::VolumeGraph< T, P >::Point

Point type.

Definition at line 66 of file volumegraph.h.

◆ Point [2/2]

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

Definition at line 603 of file volumegraph.h.

◆ Ref

typedef VolumeGraphRef<T,P> bio::VolumeGraph< T, P >::Ref

Reference type.

Definition at line 71 of file volumegraph.h.

◆ This [1/2]

typedef VolumeGraph<T,P> bio::VolumeGraph< T, P >::This
protected

Type of *this.

Definition at line 61 of file volumegraph.h.

◆ This [2/2]

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.

◆ Type

typedef T bio::VolumeGraph< T, P >::Type

Value type.

Definition at line 65 of file volumegraph.h.

◆ Vertex [1/2]

typedef Base::Vertex bio::VolumeGraph< T, P >::Vertex

Usable vertex type (RC)

Definition at line 68 of file volumegraph.h.

◆ Vertex [2/2]

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 [1/2]

typedef carto::VolumeRef<Type> bio::VolumeGraph< T, P >::Volume

Volume type.

Definition at line 72 of file volumegraph.h.

◆ Volume [2/2]

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

Definition at line 602 of file volumegraph.h.

◆ Weight

typedef Base::Weight bio::VolumeGraph< T, P >::Weight

Weight type.

Definition at line 69 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.

References _conbeg, _concur, _conend, _cur, _dim, _edg, _nbr, _vol, _vtx, _vtxbeg, _vtxend, copy(), setEdge(), toEnd(), and toNext().

◆ 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.

References _conbeg, _concur, _conend, _cur, _dim, _edg, _nbr, _vol, _vtx, _vtxbeg, _vtxend, copy(), setEdge(), toEnd(), and toNext().

◆ 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.

References _conbeg, _concur, _conend, _cur, _dim, _edg, _nbr, _vol, _vtx, _vtxbeg, and _vtxend.

◆ 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.

References _conbeg, _concur, _conend, _cur, _dim, _edg, _nbr, _vol, _vtx, _vtxbeg, and _vtxend.

◆ 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.

References _conbeg, _concur, _conend, _cur, _dim, _edg, _nbr, _vol, _vtx, _vtxbeg, and _vtxend.

◆ ~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.

◆ ~VolumeGraph()

virtual bio::VolumeGraph< T, P >::~VolumeGraph ( )
inlinevirtual

Reimplemented in bio::VolumeGraph< T, P >::edge_iterator.

Definition at line 88 of file volumegraph.h.

Member Function Documentation

◆ access() [1/2]

T & bio::VolumeGraph< T, P >::access ( const Point & p)

Access the volume at voxel p.

Definition at line 204 of file volumegraph.h.

◆ access() [2/2]

const T & bio::VolumeGraph< T, P >::access ( const Point & p) const

Access the volume at voxel p.

Definition at line 206 of file volumegraph.h.

◆ beginEdge() [1/4]

edge_iterator bio::VolumeGraph< T, P >::beginEdge ( )

◆ beginEdge() [2/4]

edge_const_iterator bio::VolumeGraph< T, P >::beginEdge ( ) const

◆ beginEdge() [3/4]

edge_iterator bio::VolumeGraph< T, P >::beginEdge ( const Vertex & v)
inline

Iterator on the edges containing a given vertex.

Definition at line 111 of file volumegraph.h.

◆ beginEdge() [4/4]

edge_const_iterator bio::VolumeGraph< T, P >::beginEdge ( const Vertex & v) const
inline

Iterator on the edges containing a given vertex.

Definition at line 105 of file volumegraph.h.

◆ beginVertex() [1/2]

vertex_iterator bio::VolumeGraph< T, P >::beginVertex ( )
inline

Iterator on all vertices.

Definition at line 101 of file volumegraph.h.

◆ beginVertex() [2/2]

vertex_const_iterator bio::VolumeGraph< T, P >::beginVertex ( ) const
inline

Iterator on all edges (This::Edge)

Iterator on all vertices

Definition at line 97 of file volumegraph.h.

◆ clear()

void bio::VolumeGraph< T, P >::clear ( )
virtual

Clear the graph from all edges and vertices.

Reimplemented from bio::BaseGraph< SetEdgeRef< PointVertexRef< P > > >.

Reimplemented in bio::VolumeGraph< T, P >::edge_iterator.

Definition at line 138 of file volumegraph.h.

◆ contains() [1/2]

bool bio::VolumeGraph< T, P >::contains ( const Edge & e) const

True if e is in the graph.

Definition at line 134 of file volumegraph.h.

◆ contains() [2/2]

bool bio::VolumeGraph< T, P >::contains ( const Vertex & v) const

True if v is in the graph.

Definition at line 132 of file volumegraph.h.

◆ 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.

Referenced by edge_const_iterator(), edge_const_iterator(), setEdge(), and toNext().

◆ empty()

bool bio::VolumeGraph< T, P >::empty ( ) const
virtual

True if the graph contains no edges and vertices.

Reimplemented from bio::BaseGraph< SetEdgeRef< PointVertexRef< P > > >.

Reimplemented in bio::VolumeGraph< T, P >::edge_iterator.

Definition at line 136 of file volumegraph.h.

◆ endEdge() [1/4]

edge_iterator bio::VolumeGraph< T, P >::endEdge ( )

◆ endEdge() [2/4]

edge_const_iterator bio::VolumeGraph< T, P >::endEdge ( ) const

◆ endEdge() [3/4]

edge_iterator bio::VolumeGraph< T, P >::endEdge ( const Vertex & v)
inline

Iterator on the edges containing a given vertex.

Definition at line 114 of file volumegraph.h.

◆ endEdge() [4/4]

edge_const_iterator bio::VolumeGraph< T, P >::endEdge ( const Vertex & v) const
inline

Iterator on the edges containing a given vertex.

Definition at line 108 of file volumegraph.h.

◆ endVertex() [1/2]

vertex_iterator bio::VolumeGraph< T, P >::endVertex ( )
inline

Iterator on all vertices.

Definition at line 103 of file volumegraph.h.

◆ endVertex() [2/2]

vertex_const_iterator bio::VolumeGraph< T, P >::endVertex ( ) const
inline

Iterator on all vertices.

Definition at line 99 of file volumegraph.h.

◆ Fm()

Weight bio::VolumeGraph< T, P >::Fm ( const Vertex & v) const
inline

Returns the minimum weight of all edges containing v.

Definition at line 174 of file volumegraph.h.

◆ getComplement()

static Set bio::VolumeGraph< T, P >::getComplement ( const Set & s,
const Set & e )
inlinestatic

Returns the complement of s in e.

Definition at line 178 of file volumegraph.h.

◆ getConnectedComponent()

Graph bio::VolumeGraph< T, P >::getConnectedComponent ( Vertex & v)
inline

Returns the (one and only) connected component of this graph containing v.

Definition at line 171 of file volumegraph.h.

◆ insert() [1/3]

void bio::VolumeGraph< T, P >::insert ( Edge e)
inlinevirtual

Insertion of a new edge (undefined for now)

Reimplemented from bio::BaseGraph< SetEdgeRef< PointVertexRef< P > > >.

Definition at line 130 of file volumegraph.h.

◆ insert() [2/3]

void bio::VolumeGraph< T, P >::insert ( Edge e,
Weight w = (Weight)0 )
inlinevirtual

Insertion of a weighted edge (undefined for now)

Reimplemented from bio::EWBaseGraph< SetEdgeRef< PointVertexRef< P > >, T >.

Definition at line 140 of file volumegraph.h.

◆ insert() [3/3]

void bio::VolumeGraph< T, P >::insert ( Vertex v)
inline

Insertion of a new vertex (undefined for now)

Definition at line 128 of file volumegraph.h.

◆ inside() [1/2]

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

Definition at line 783 of file volumegraph.h.

References _dim, and _nbr.

◆ inside() [2/2]

bool bio::VolumeGraph< T, P >::inside ( const Point & p) const

True if p is a voxel from the underlying volume.

Definition at line 208 of file volumegraph.h.

◆ isAdjacent()

bool bio::VolumeGraph< T, P >::isAdjacent ( const Vertex & x,
const Vertex & y ) const
inline

Are x and y adjacent in the graph ?

Definition at line 149 of file volumegraph.h.

◆ isAdjacentFrom()

bool bio::VolumeGraph< T, P >::isAdjacentFrom ( const Vertex & v,
const Graph & g ) const
inline

Definition at line 167 of file volumegraph.h.

◆ isAdjacentTo()

bool bio::VolumeGraph< T, P >::isAdjacentTo ( const Vertex & v,
const Graph & g ) const
inline

Is v adjacent to g ?

(Meaning v isn't in g and there exist an edge in this graph that contains v and a vertex of g)

Definition at line 165 of file volumegraph.h.

◆ isConnectedComponent()

bool bio::VolumeGraph< T, P >::isConnectedComponent ( const Graph & g) const
inline

Is g a connected component in this graph (Meaning all its vertices are linked)

Definition at line 160 of file volumegraph.h.

◆ isLinked()

bool bio::VolumeGraph< T, P >::isLinked ( const Vertex & x,
const Vertex & y ) const
inline

Are x and y linked in the graph ?

Definition at line 152 of file volumegraph.h.

◆ isSubGraph()

bool bio::VolumeGraph< T, P >::isSubGraph ( const Graph & g) const
inline

Is g a sub-graph os this graph ?

(Meaning all its edges and vertices are included in this graph)

Definition at line 156 of file volumegraph.h.

◆ mask()

void bio::VolumeGraph< T, P >::mask ( const carto::VolumeRef< M > & mask)

Mask the underlying volume using mask.

i.e. All voxels/vertices not present in the mask are set to notPresentValue()

Definition at line 202 of file volumegraph.h.

References mask().

Referenced by mask().

◆ notPresentValue()

T bio::VolumeGraph< T, P >::notPresentValue ( )
static

Value whose meaning is "none".

Definition at line 184 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

Definition at line 735 of file volumegraph.h.

References _edg.

◆ operator!=() [2/2]

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

Definition at line 733 of file volumegraph.h.

References _edg.

◆ 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.

References _edg.

◆ 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.

References setEdge(), and toNext().

Referenced by bio::VolumeGraph< T, P >::edge_iterator::operator++().

◆ 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.

References _edg.

◆ operator=() [1/2]

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

Definition at line 705 of file volumegraph.h.

References _conbeg, _concur, _conend, _cur, _dim, _edg, _nbr, bio::VolumeGraph< T, P >::_vol, _vol, _vtx, _vtxbeg, and _vtxend.

◆ operator=() [2/2]

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

Definition at line 690 of file volumegraph.h.

References _conbeg, _concur, _conend, _cur, _dim, _edg, _nbr, _vol, _vtx, _vtxbeg, and _vtxend.

◆ operator==() [1/2]

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

Definition at line 734 of file volumegraph.h.

References _edg.

◆ operator==() [2/2]

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

Definition at line 732 of file volumegraph.h.

References _edg.

◆ presentValue()

T bio::VolumeGraph< T, P >::presentValue ( )
static

Value whose meaning is "present".

Definition at line 186 of file volumegraph.h.

◆ setDimensions() [1/2]

void bio::VolumeGraph< T, P >::setDimensions ( const Point & dim)

Sets the dimensions of the underlying volume.

Definition at line 190 of file volumegraph.h.

◆ setDimensions() [2/2]

void bio::VolumeGraph< T, P >::setDimensions ( int sx = 1,
int sy = 1,
int sz = 1,
int st = 1 )

Sets the dimensions of the underlying volume.

Definition at line 188 of file volumegraph.h.

◆ setEdge()

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

Definition at line 769 of file volumegraph.h.

References _cur, _edg, _nbr, and copy().

Referenced by edge_const_iterator(), edge_const_iterator(), and operator++().

◆ setHeader() [1/2]

void bio::VolumeGraph< T, P >::setHeader ( const Point4df & vs)

Sets the header of the underlying volume.

Definition at line 194 of file volumegraph.h.

◆ setHeader() [2/2]

void bio::VolumeGraph< T, P >::setHeader ( float vx = 1.,
float vy = 1.,
float vz = 1.,
float vt = 1. )

Sets the header of the underlying volume.

Definition at line 192 of file volumegraph.h.

◆ setWeightMethod()

void bio::VolumeGraph< T, P >::setWeightMethod ( Weight(* weight )(const Type &, const Type &))

Sets the weight method.

A weight method takes two voxels values and returns a weight.

Definition at line 197 of file volumegraph.h.

References weight().

◆ toEnd()

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

Definition at line 740 of file volumegraph.h.

References _cur, _dim, and _nbr.

Referenced by edge_const_iterator(), edge_const_iterator(), and toNext().

◆ toNext()

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

◆ VolumeGraph() [1/2]

bio::VolumeGraph< T, P >::VolumeGraph ( const Volume & in,
const aims::strel::Connectivity & conn = aims::strel::Connectivity6XYZ() )

Constructor from an exisiting volume and connectivity The volume is not copied, a reference to it is made.

As such, any change to the VolumeGraph is a change to this volume.

Definition at line 85 of file volumegraph.h.

◆ VolumeGraph() [2/2]

bio::VolumeGraph< T, P >::VolumeGraph ( int sx = 1,
int sy = 1,
int sz = 1,
int st = 1,
const aims::strel::Connectivity & conn = aims::strel::Connectivity6XYZ() )

Constructor from volume dimensions and connectivity This initializes the graph so that it represents a volume of size sx * sy * sz * st, with edges representing a connectivity conn.

Definition at line 79 of file volumegraph.h.

◆ weight() [1/2]

VolumeGraph< T, P >::Weight bio::VolumeGraph< T, P >::weight ( const Edge & e)
virtual

Returns the weight of e.

Reimplemented from bio::EWBaseGraph< SetEdgeRef< PointVertexRef< P > >, T >.

Definition at line 142 of file volumegraph.h.

Referenced by setWeightMethod().

◆ weight() [2/2]

VolumeGraph< T, P >::Weight bio::VolumeGraph< T, P >::weight ( const Edge & e) const
virtual

Returns the weight of e.

Reimplemented from bio::EWBaseGraph< SetEdgeRef< PointVertexRef< P > >, T >.

Definition at line 144 of file volumegraph.h.

Friends And Related Symbol 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

◆ _conn

aims::StructuringElement bio::VolumeGraph< T, P >::_conn
protected

Definition at line 214 of file volumegraph.h.

◆ _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 [1/2]

Volume bio::VolumeGraph< T, P >::_vol
protected

Definition at line 212 of file volumegraph.h.

◆ _vol [2/2]

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

◆ _weight

Weight(* bio::VolumeGraph< T, P >::_weight) (const Type &, const Type &)
protected

Definition at line 213 of file volumegraph.h.


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