Developer Documentation
RAVL, Recognition And Vision Library
USER 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)
GraphC::Body(void)
GraphC::Body(void) const
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
GraphBaseC::AllocEdgeID(void)
GraphBaseC::AllocNodeID(void)
GraphBaseC::Body(void)
GraphBaseC::Body(void) const
GraphBaseC::InsNode(GraphNodeBaseBodyC &)
GraphBaseC::InsEdge(GraphEdgeBaseBodyC &)
RCHandleVC::Body(void) const
RCHandleVC::Body(void)
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::Body(void)
RCHandleC::Body(void) 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 
Source file:Ravl/Core/Container/Graph/Graph.hh
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.

GraphBaseBodyC & Body()
Access body.

const GraphBaseBodyC & Body() const
Access body.

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

UIntT AllocEdgeID()
Allocate a new edge ID.

UIntT AllocNodeID()
Allocate a new node ID.

GraphBaseBodyC & Body()
Access body.

const GraphBaseBodyC & Body() const
Access body.

GraphNodeBaseC InsNode(GraphNodeBaseBodyC & aNode)
Inserts one node to the graph. Returns the node iterator. ANode must be a GraphNodeBaseBodyC that's just been created, and not a part of another graph.

GraphEdgeBaseC InsEdge(GraphEdgeBaseBodyC & anEdge)
Inserts one edge to the graph. Returns the edge iterator. AnEdge must be a GraphEdgeBaseBodyC that's just been created, and not a part of another graph.

#include "Ravl/RCHandleV.hh"
const GraphBaseBodyC & Body() const
Constant access to body of object.

GraphBaseBodyC & Body()
Constant access to body of object.

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.

GraphBaseBodyC & Body()
Access body of object.

const GraphBaseBodyC & Body() const
Constant access to body of object.

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:30 2002