bioprocessing 6.0.4
bio::VolumeGraph< T, P >::vertex_const_iterator Class Reference

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

#include <bioprocessing/graph/volumegraph.h>

Inheritance diagram for bio::VolumeGraph< T, P >::vertex_const_iterator:
Collaboration diagram for bio::VolumeGraph< T, P >::vertex_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

 vertex_const_iterator ()
 
 vertex_const_iterator (const This &o)
 
 vertex_const_iterator (const NonConstThis &o)
 
 ~vertex_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 Vertexoperator* () const
 
const Vertexoperator-> () 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 Weight weight (const Edge &e)
 
virtual Weight weight (const Edge &e) 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 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 Edge &e)
 
virtual Weight weight (const Edge &e) const
 
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 vertex_const_iterator This
 
typedef vertex_iterator NonConstThis
 
typedef VolumeGraph< T, P > Owner
 
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

 vertex_const_iterator (const Volume &vol, bool end)
 
void toEnd ()
 
void setVertex ()
 

Protected Attributes

Volume _vol
 
Point4d _cur
 
Point4d _dim
 
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 >::vertex_const_iterator

Iterator on the vertices of a volume graph.

This is really ugly and I am sure there is a prettier way to do that, but I needed something that worked. Basically, an iterator is a class that points to a value, and which increment makes it change of pointed value. The issue here is there are no real vertices to point to since the graph is stored as a volume. Consequentely, I need to create from scratch the pointed vertex. I also need to keep in mind the corresponding voxel (actually, I keep a reference to the volume, and the coordinates of the voxel).

So the work done is iterator over the dimensions of the volume (we move along x, except if we're at the end of a line in which case we need to find where to go next). Then we create a fake vertex and point toward it.

I'm not sure I respect entirely the standard for one way random iterators as described in the standard library (I should check that). But it is usable for now (iteration from begin to end, with a temporary use in the loop. The vertices should not have an existence outside the loop).

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

◆ 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 >::vertex_const_iterator::Edge

Definition at line 427 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 vertex_iterator bio::VolumeGraph< T, P >::vertex_const_iterator::NonConstThis
protected

Definition at line 424 of file volumegraph.h.

◆ Owner

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

Definition at line 425 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 >::vertex_const_iterator::Point

Definition at line 430 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 vertex_const_iterator bio::VolumeGraph< T, P >::vertex_const_iterator::This
protected

Definition at line 423 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 >::vertex_const_iterator::Vertex

Definition at line 428 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 >::vertex_const_iterator::Volume

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

◆ vertex_const_iterator() [1/4]

template<typename T, typename P>
bio::VolumeGraph< T, P >::vertex_const_iterator::vertex_const_iterator ( const Volume & vol,
bool end )
inlineprotected

◆ vertex_const_iterator() [2/4]

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

Definition at line 446 of file volumegraph.h.

References _cur, _dim, _vol, and _vtx.

◆ vertex_const_iterator() [3/4]

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

Definition at line 452 of file volumegraph.h.

References _cur, _dim, _vol, and _vtx.

◆ vertex_const_iterator() [4/4]

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

Definition at line 458 of file volumegraph.h.

References _cur, _dim, _vol, and _vtx.

◆ ~vertex_const_iterator()

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

Definition at line 464 of file volumegraph.h.

◆ ~VolumeGraph()

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

Reimplemented in bio::VolumeGraph< T, P >::vertex_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 >::vertex_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.

◆ 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 >::vertex_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()

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.

◆ 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 >::vertex_const_iterator::operator!= ( const NonConstThis & o) const
inline

Definition at line 520 of file volumegraph.h.

References _cur.

◆ operator!=() [2/2]

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

Definition at line 518 of file volumegraph.h.

References _cur.

◆ operator*()

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

Definition at line 521 of file volumegraph.h.

References _vtx.

◆ operator++() [1/2]

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

◆ operator++() [2/2]

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

Definition at line 511 of file volumegraph.h.

◆ operator->()

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

Definition at line 522 of file volumegraph.h.

References _vtx.

◆ operator=() [1/2]

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

Definition at line 473 of file volumegraph.h.

References _cur, _dim, bio::VolumeGraph< T, P >::_vol, _vol, and _vtx.

◆ operator=() [2/2]

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

Definition at line 465 of file volumegraph.h.

References _cur, _dim, _vol, and _vtx.

◆ operator==() [1/2]

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

Definition at line 519 of file volumegraph.h.

References _cur.

◆ operator==() [2/2]

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

Definition at line 517 of file volumegraph.h.

References _cur.

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

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

◆ setVertex()

template<typename T, typename P>
void bio::VolumeGraph< T, P >::vertex_const_iterator::setVertex ( )
inlineprotected

Definition at line 529 of file volumegraph.h.

References _cur, and _vtx.

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

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

◆ toEnd()

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

Definition at line 525 of file volumegraph.h.

References _cur, and _dim.

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

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

Returns the weight of e.

Definition at line 142 of file volumegraph.h.

◆ weight() [2/2]

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

Returns the weight of e.

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 539 of file volumegraph.h.

Member Data Documentation

◆ _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 >::vertex_const_iterator::_cur
protected

◆ _dim

template<typename T, typename P>
Point4d bio::VolumeGraph< T, P >::vertex_const_iterator::_dim
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 >::vertex_const_iterator::_vol
protected

◆ _vtx

◆ _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: