bioprocessing  5.1.2
bio::EWBaseGraph< E, W > Class Template Reference

Base class for edge weighted graphs. More...

#include <bioprocessing/graph/edgeweightedgraph.h>

Inheritance diagram for bio::EWBaseGraph< E, W >:
Collaboration diagram for bio::EWBaseGraph< E, W >:

Public Types

typedef W Weight
 Weight type. More...
 
typedef Base::Edge Edge
 Usable edge type. More...
 
typedef Base::Vertex Vertex
 Usable vertex type. More...
 
typedef EWBaseGraphRef< E, W > Graph
 Usable graph type. More...
 
typedef EWBaseGraphRef< E, W > Ref
 Reference type. More...
 
- Public Types inherited from bio::BaseGraph< E >
typedef E Edge
 Usable edge type. More...
 
typedef Edge::Vertex Vertex
 Usable vertex type. More...
 
typedef BaseGraphRef< E > Graph
 Usable graph type. More...
 
typedef BaseGraphRef< E > Ref
 Reference type. More...
 

Public Member Functions

virtual ~EWBaseGraph ()
 
virtual void insert (Edge e, Weight w=(Weight) 0)
 
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
 
template<typename Path >
bool isDescending (const Path &p) const
 
template<typename Path >
bool isPathofSteepestdescent (const Path &p) const
 
template<typename EdgeSet >
bool isWatershedCut (const EdgeSet &s) const
 
template<typename EdgeSet >
bool isBasinCut (const EdgeSet &es) const
 
virtual Graph getMinOfF () const
 
virtual Weight weight (const Graph &g) const
 
virtual Weight Fm (const Vertex &v) const
 
template<typename G >
Fm (const G &thisg, const Vertex &v)
 
- Public Member Functions inherited from bio::BaseGraph< E >
virtual ~BaseGraph ()
 
virtual void insert (Vertex v)
 
virtual void insert (Edge e)
 
virtual bool contains (const Vertex &v) const
 
virtual bool contains (const Edge &e) const
 
virtual bool empty () const
 
virtual void clear ()
 
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
 
template<typename EdgeIterator >
bool isGraphCut (EdgeIterator begin, EdgeIterator end, const Graph &g) const
 
template<typename EdgeSet >
bool isGraphCut (const EdgeSet &es, const Graph &g) const
 

Protected Types

typedef EWBaseGraph< E, W > This
 Type of *this. More...
 
typedef BaseGraph< E > Base
 Base class. More...
 
- Protected Types inherited from bio::BaseGraph< E >
typedef BaseGraph< E > This
 Type of *this. More...
 

Static Protected Member Functions

template<typename G >
static Weight Fm (const G &thisg, const Vertex &v)
 
- Static Protected Member Functions inherited from bio::BaseGraph< E >
template<typename 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). More...
 
template<typename G >
static bool isLinked (const G &thisg, const Vertex &x, const Vertex &y)
 
template<typename VertexSet , typename G >
static bool isLinked (const G &thisg, const Vertex &x, const Vertex &y, VertexSet &s)
 
template<typename G >
static bool isSubGraph (const G &thisg, const typename G::Ref &g)
 
template<typename G >
static bool isConnectedComponent (const G &thisg, const typename G::Ref &g)
 
template<typename G >
static bool isAdjacent (const G &thisg, const Edge &e)
 
template<typename G >
static bool isAdjacentTo (const G &thisg, const Vertex &v, const typename G::Ref &g)
 
template<typename G >
static bool isAdjacentFrom (const G &thisg, const Vertex &v, const typename G::Ref &g)
 
template<typename G >
static G::Ref getConnectedComponent (G &thisg, Vertex &v)
 
template<typename G >
static void getConnectedComponent (G &thisg, Vertex &v, typename G::Ref &g)
 

Friends

class EWBaseGraphRef< E, W >
 

Additional Inherited Members

- Static Public Member Functions inherited from bio::BaseGraph< E >
template<typename Set >
static Set getComplement (const Set &s, const Set &e)
 

Detailed Description

template<typename E, typename W>
class bio::EWBaseGraph< E, W >

Base class for edge weighted graphs.

In those graphs, each edge is associated with a value named weight. Several implementations are possible (use of a weighted edge type, use of a map associating edges with weights, ...)

Template Parameters
EEdge type (prefere RC types)
WWeight type (S16, S32, ....)

Definition at line 39 of file edgeweightedgraph.h.

Member Typedef Documentation

◆ Base

template<typename E , typename W >
typedef BaseGraph<E> bio::EWBaseGraph< E, W >::Base
protected

Base class.

Definition at line 44 of file edgeweightedgraph.h.

◆ Edge

template<typename E , typename W >
typedef Base::Edge bio::EWBaseGraph< E, W >::Edge

Usable edge type.

Definition at line 47 of file edgeweightedgraph.h.

◆ Graph

template<typename E , typename W >
typedef EWBaseGraphRef<E,W> bio::EWBaseGraph< E, W >::Graph

Usable graph type.

Definition at line 49 of file edgeweightedgraph.h.

◆ Ref

template<typename E , typename W >
typedef EWBaseGraphRef<E,W> bio::EWBaseGraph< E, W >::Ref

Reference type.

Definition at line 50 of file edgeweightedgraph.h.

◆ This

template<typename E , typename W >
typedef EWBaseGraph<E,W> bio::EWBaseGraph< E, W >::This
protected

Type of *this.

Definition at line 43 of file edgeweightedgraph.h.

◆ Vertex

template<typename E , typename W >
typedef Base::Vertex bio::EWBaseGraph< E, W >::Vertex

Usable vertex type.

Definition at line 48 of file edgeweightedgraph.h.

◆ Weight

template<typename E , typename W >
typedef W bio::EWBaseGraph< E, W >::Weight

Weight type.

Definition at line 46 of file edgeweightedgraph.h.

Constructor & Destructor Documentation

◆ ~EWBaseGraph()

template<typename E , typename W >
virtual bio::EWBaseGraph< E, W >::~EWBaseGraph ( )
inlinevirtual

Definition at line 54 of file edgeweightedgraph.h.

Member Function Documentation

◆ Fm() [1/3]

template<typename E , typename W >
template<typename G >
static Weight bio::EWBaseGraph< E, W >::Fm ( const G &  thisg,
const Vertex v 
)
staticprotected

◆ Fm() [2/3]

template<typename E , typename W >
template<typename G >
W bio::EWBaseGraph< E, W >::Fm ( const G &  thisg,
const Vertex v 
)

Definition at line 99 of file edgeweightedgraph.h.

◆ Fm() [3/3]

template<typename E , typename W >
virtual Weight bio::EWBaseGraph< E, W >::Fm ( const Vertex v) const
inlinevirtual

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

Definition at line 86 of file edgeweightedgraph.h.

◆ getMinOfF()

template<typename E , typename W >
virtual Graph bio::EWBaseGraph< E, W >::getMinOfF ( ) const
inlinevirtual

Definition at line 84 of file edgeweightedgraph.h.

◆ insert()

template<typename E , typename W >
virtual void bio::EWBaseGraph< E, W >::insert ( Edge  e,
Weight  w = (Weight)0 
)
inlinevirtual

Definition at line 58 of file edgeweightedgraph.h.

◆ isBasinCut()

template<typename E , typename W >
template<typename EdgeSet >
bool bio::EWBaseGraph< E, W >::isBasinCut ( const EdgeSet &  es) const
inline

Definition at line 77 of file edgeweightedgraph.h.

◆ isDescending()

template<typename E , typename W >
template<typename Path >
bool bio::EWBaseGraph< E, W >::isDescending ( const Path &  p) const
inline

Definition at line 71 of file edgeweightedgraph.h.

◆ isMinimum()

template<typename E , typename W >
virtual bool bio::EWBaseGraph< E, W >::isMinimum ( const Graph g) const
inlinevirtual

Definition at line 67 of file edgeweightedgraph.h.

◆ isMinimumSpanningForestRelativeTo()

template<typename E , typename W >
virtual bool bio::EWBaseGraph< E, W >::isMinimumSpanningForestRelativeTo ( const Graph h,
const Graph g 
) const
inlinevirtual

Definition at line 68 of file edgeweightedgraph.h.

◆ isMinimumSpanningTree()

template<typename E , typename W >
virtual bool bio::EWBaseGraph< E, W >::isMinimumSpanningTree ( const Graph g) const
inlinevirtual

Definition at line 69 of file edgeweightedgraph.h.

◆ isPathofSteepestdescent()

template<typename E , typename W >
template<typename Path >
bool bio::EWBaseGraph< E, W >::isPathofSteepestdescent ( const Path &  p) const
inline

Definition at line 73 of file edgeweightedgraph.h.

◆ isWatershedCut()

template<typename E , typename W >
template<typename EdgeSet >
bool bio::EWBaseGraph< E, W >::isWatershedCut ( const EdgeSet &  s) const
inline

Definition at line 75 of file edgeweightedgraph.h.

◆ weight() [1/3]

template<typename E , typename W >
virtual Weight bio::EWBaseGraph< E, W >::weight ( const Edge e)
inlinevirtual

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

Definition at line 59 of file edgeweightedgraph.h.

◆ weight() [2/3]

template<typename E , typename W >
virtual Weight bio::EWBaseGraph< E, W >::weight ( const Edge e) const
inlinevirtual

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

Definition at line 60 of file edgeweightedgraph.h.

◆ weight() [3/3]

template<typename E , typename W >
virtual Weight bio::EWBaseGraph< E, W >::weight ( const Graph g) const
inlinevirtual

Definition at line 85 of file edgeweightedgraph.h.

Friends And Related Function Documentation

◆ EWBaseGraphRef< E, W >

template<typename E , typename W >
friend class EWBaseGraphRef< E, W >
friend

Definition at line 91 of file edgeweightedgraph.h.


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