User Documentation
RAVL, Recognition And Vision Library
DEVELOP HOME PAGE CLASS LIST CONTENTS
Ravl - Core - Graphs - GraphC<class NodeT,class EdgeT>
 

  PUBLIC
GraphC::GraphC(GraphTypeT)
GraphC::GraphC(const GraphC &)
GraphC::~GraphC(void)
GraphC::Copy(void)
GraphC::Copy(HashC &)
GraphC::operator =(const GraphC &)
GraphC::InsNode(const NodeT &)
GraphC::InsEdge(NodeIter &,NodeIter &,const EdgeT &)
GraphC::InsEdge(const GraphNodeHC &,const GraphNodeHC &,const EdgeT &)
GraphC::NoNodes(void) const
GraphC::NoEdges(void) const
GraphC::IsCyclic(void)
GraphBaseC::InsNode(void)
GraphBaseC::InsEdge(GraphNodeBaseC &,GraphNodeBaseC &)
GraphBaseC::Type(void) const
GraphBaseC::Nodes(void) const
GraphBaseC::Nodes(void)
GraphBaseC::Edges(void) const
GraphBaseC::Edges(void)
GraphBaseC::IsCyclic(void)
GraphBaseC::EdgeIDs(void) const
GraphBaseC::NodeIDs(void) const
RCHandleVC::Save(ostream &) const
RCHandleVC::Save(BinOStreamC &) const
RCHandleVC::Abstract(void)
RCHandleVC::operator >>(istream &,RCHandleVC &)
RCHandleVC::operator >>(BinIStreamC &,RCHandleVC &)
RCHandleC::operator =(const RCHandleC &)
RCHandleC::DeepCopy(UIntT) const
RCHandleC::operator ==(const RCHandleC &) const
RCHandleC::operator !=(const RCHandleC &) const
RCHandleC::Hash(void) const
RCHandleC::IsValid(void) const
RCHandleC::Invalidate(void)
RCHandleC::IsHandleType(const DT &) const
RCHandleC::CheckHandleType(const DT &) const
RCHandleC::References(void) const
RCHandleC::operator <<(ostream &,const RCHandleC &)
RCHandleC::operator >>(istream &,RCHandleC &)

   GraphC<class NodeT,class EdgeT>   
 
Templated graphs.
 
include "Ravl/Graph.hh"
Created:10/12/1996 
User Level:Normal
Library:RavlCore
Example:exGraph.cc
In Scope:RavlN

Parent Classes: Typedefs:
typedef GraphEdgeIterC<NodeT,EdgeT> EdgeIter;

typedef GraphNodeIterC<NodeT,EdgeT> NodeIter;

typedef GraphC<NodeT,EdgeT> Graph;

Methods:
GraphC(GraphTypeT type = GRAPH_DIRECTED)
Creates an empty graph, directed or undirected.

GraphC(const GraphC<NodeT,EdgeT> & g)
Creates another access to the graph 'g'.
The constructor does not change the content of the graph 'g', but its reference counting. However, the content of the graph 'g' can be changed through the this new access later.

~GraphC()
Destructor.

GraphC<NodeT,EdgeT> Copy()
Make a copy of this graph.

GraphC<NodeT,EdgeT> Copy(HashC<NodeIter,NodeIter> & NodeMap)
Make a copy of this graph.
The mapping between new and old nodes is in NodeMap.

const GraphC<NodeT,EdgeT> & operator =(const GraphC<NodeT,EdgeT> & g)
Creates another access to the graph 'g'.
The assigment does not change the content of the graph 'g', but its reference counting. However, the content of the graph 'g' can be changed through the this new access later.

Creation of graph structure.

GraphNodeIterC<NodeT,EdgeT> InsNode(const NodeT & Dat)
Inserts one node to the graph.
Returns the node iterator pointing to the new element.

GraphEdgeIterC<NodeT,EdgeT> InsEdge(NodeIter & fromNode,NodeIter & toNode,const EdgeT & Dat)
Inserts one egde to the graph.
Returns an edge iterator pointing to the new element.

GraphEdgeIterC<NodeT,EdgeT> InsEdge(const GraphNodeHC<NodeT,EdgeT> & fromNode,const GraphNodeHC<NodeT,EdgeT> & toNode,const EdgeT & Dat)
Inserts one egde to the graph.
Returns an edge iterator pointing to the new element.

UIntT NoNodes() const
Count the number of nodes in the graph.
This actuall iterates through the list and so is slow.

UIntT NoEdges() const
Count the number of edges in the graph.
This actuall iterates through the list and so is slow.

Tests on graph structure.

bool IsCyclic()
Test if a directed graph contains cycles.

#include "Ravl/GraphBase.hh"
GraphNodeBaseC InsNode()
Inserts one node to the graph. Returns the node iterator.

GraphEdgeBaseC InsEdge(GraphNodeBaseC & fromNode,GraphNodeBaseC & toNode)
Inserts one egde to the graph. Returns the edge iterator. Access to the parts of the graph --------------------------------

GraphTypeT Type() const
Returns the type of the graph, if it is directed or undirected.

const IntrDListC<GraphNodeBaseBodyC> & Nodes() const
Returns the constant list of nodes.

IntrDListC<GraphNodeBaseBodyC> & Nodes()
Returns the list of nodes.

const IntrDListC<GraphEdgeBaseBodyC> & Edges() const
Returns the constant list of edges.

IntrDListC<GraphEdgeBaseBodyC> & Edges()
Returns the list of edges.

bool IsCyclic()
Test if a directed graph contains cycles.

UIntT EdgeIDs() const
Return the number of edge ID's issued.

UIntT NodeIDs() const
Return the number of node ID's issued.

#include "Ravl/RCHandleV.hh"
bool Save(ostream & out) const
Save to stream 'out'.

bool Save(BinOStreamC & out) const
Save to binary stream 'out'.

RCAbstractC Abstract()
Create an abstract handle.

istream & operator >>(istream & strm,RCHandleVC<GraphBaseBodyC> & obj)

BinIStreamC & operator >>(BinIStreamC & strm,RCHandleVC<GraphBaseBodyC> & obj)

#include "Ravl/RefCounter.hh"
const RCHandleC<GraphBaseBodyC> & operator =(const RCHandleC<GraphBaseBodyC> & oth)
Assign handle.

RCHandleC<GraphBaseBodyC> DeepCopy(UIntT levels = ((UIntT))) const
Do a deep copy of the object.

bool operator ==(const RCHandleC<GraphBaseBodyC> & oth) const
Are handles to the same object ?

bool operator !=(const RCHandleC<GraphBaseBodyC> & oth) const
Are handles to different objects ?

UIntT Hash() const
Default hash function.
This hashes on the address of the body.

bool IsValid() const
Test if this is a valid handle.

void Invalidate()
Invalidate this handle.
Unattaches the body from the handle.

bool IsHandleType(const DT &) const
Is handle of given type ?

void CheckHandleType(const DT & dummy) const
Check handle type. Throw an expception if not.

UIntT References() const
Find the number of references to the body of this object.

ostream & operator <<(ostream & strm,const RCHandleC<GraphBaseBodyC> & obj)

istream & operator >>(istream & strm,RCHandleC<GraphBaseBodyC> & obj)


Maintainer:Charles Galambos, Created: 10/12/1996, Documentation by CxxDoc: Tue Aug 13 09:59:02 2002