Generated on Wed Apr 29 2015 11:51:41 for GGL-4.1.2 by doxygen 1.8.3.1
Public Types | Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Protected Attributes
ggl::chem::ClassIDGraph Class Reference

#include <ClassIDGraph.hh>

Inheritance diagram for ggl::chem::ClassIDGraph:
Inheritance graph
[legend]

Public Types

typedef std::vector< size_t > CompLabel
 
typedef size_t IndexType
 Type for global indicex of nodes in the graph. More...
 

Public Member Functions

 ClassIDGraph (const sgm::Graph_Interface &molGraph, const size_t leadingZeros)
 
virtual Edge_iterator getEdgesBegin (const IndexType &i, const IndexType &j) const
 
virtual Edge_iterator getEdgesEnd (const IndexType &i, const IndexType &j) const
 
virtual std::string getNodeLabel (const IndexType &i) const
 
virtual size_t getNodeNumber (void) const
 
virtual OutEdge_iterator getOutEdgesBegin (const IndexType &i) const
 
virtual OutEdge_iterator getOutEdgesEnd (const IndexType &i) const
 
virtual bool operator!= (const Graph_Interface &toCompare) const
 
virtual bool operator== (const Graph_Interface &toCompare) const
 
virtual ~ClassIDGraph ()
 

Static Public Member Functions

static size_t connectedComponents (const Graph_Interface &g, CompLabel &compID)
 

Static Protected Member Functions

static void labelAdjacentNodes (const Graph_Interface &g, const size_t curNode, CompLabel &compID, const size_t label)
 

Protected Attributes

size_t classIdLength
 
const sgm::Graph_InterfaceoriGraph
 

Detailed Description

Graph wrapper that adds the atom node ID as class information to each atom node label. The class ID string length is the length of the node number string plus a given number of leading zeros. For instance a graph with 12 atoms nodes and two leading zeros will have class ID '0001' to '0012'.

NOTE: existing class information is extended with the generated class ID string.

Author
Martin Mann - 2013

Definition at line 23 of file ClassIDGraph.hh.

Member Typedef Documentation

typedef std::vector<size_t> sgm::Graph_Interface::CompLabel
inherited

Definition at line 284 of file Graph_Interface.hh.

typedef size_t sgm::Graph_Interface::IndexType
inherited

Definition at line 23 of file Graph_Interface.hh.

Constructor & Destructor Documentation

ggl::chem::ClassIDGraph::ClassIDGraph ( const sgm::Graph_Interface molGraph,
const size_t  leadingZeros 
)
inline

Construction

Parameters
molGraphthe molecule graph to wrap
leadingZerosthe number of leading zeros in the class ID

Definition at line 37 of file ClassIDGraph.hh.

virtual ggl::chem::ClassIDGraph::~ClassIDGraph ( )
inlinevirtual

Destruction

Definition at line 54 of file ClassIDGraph.hh.

Member Function Documentation

static size_t sgm::Graph_Interface::connectedComponents ( const Graph_Interface g,
CompLabel compID 
)
staticinherited

Computes the connected components of a given graph. It stores the connected component ID of each node within the provided container and returns the number of components.

Parameters
gthe graph to check for connected components
compIDthe container to store the component ID information within
Returns
the number of connected components within g
virtual Edge_iterator sgm::Graph_Interface::getEdgesBegin ( const IndexType i,
const IndexType j 
) const
virtualinherited

Access to the label of a specified edge

Parameters
ithe index of the first end node of interest
jthe index of the second end node of interest
Returns
the edge iterator pointing to the first edge between node i and j or to getEdgesEnd(i,j) if no edge exists
virtual Edge_iterator sgm::Graph_Interface::getEdgesEnd ( const IndexType i,
const IndexType j 
) const
virtualinherited

Access to the label of a specified edge

Parameters
ithe index of the first end node of interest
jthe index of the second end node of interest
Returns
the edge iterator pointing to the first edge between node i and j or to getEdgesEnd(i,j) if no edge exists
virtual std::string ggl::chem::ClassIDGraph::getNodeLabel ( const IndexType i) const
inlinevirtual

Access to the label of a specified node

Parameters
ithe index of the node of interest
Returns
a string representation of the node label

Implements sgm::Graph_Interface.

Definition at line 91 of file ClassIDGraph.hh.

virtual size_t ggl::chem::ClassIDGraph::getNodeNumber ( void  ) const
inlinevirtual

Access to the number of nodes of the graph

Returns
the overall node number

Implements sgm::Graph_Interface.

Definition at line 62 of file ClassIDGraph.hh.

virtual OutEdge_iterator ggl::chem::ClassIDGraph::getOutEdgesBegin ( const IndexType i) const
inlinevirtual

Access to iteration begin for the edge in the adjacency list of a specified node

Parameters
ithe index of the node of interest
Returns
the iterator to the first edge within the adjacency of i

Implements sgm::Graph_Interface.

Definition at line 72 of file ClassIDGraph.hh.

virtual OutEdge_iterator ggl::chem::ClassIDGraph::getOutEdgesEnd ( const IndexType i) const
inlinevirtual

Access to iteration end for the edge in the adjacency list of a specified node

Parameters
ithe index of the node of interest
Returns
the iterator the end of the adjacency iteration of i

Implements sgm::Graph_Interface.

Definition at line 82 of file ClassIDGraph.hh.

static void sgm::Graph_Interface::labelAdjacentNodes ( const Graph_Interface g,
const size_t  curNode,
CompLabel compID,
const size_t  label 
)
staticprotectedinherited

Performs a depths-first-search labeling of all accessible nodes starting from curNode within g. The reached nodes are labeled with the given label in the component ID container compID

Parameters
thegraph to screen
curNodethe node to start the search from
compIDthe container to store the component ID information within
labelthe component ID to be used for all nodes of the connected component reachable from curNode
virtual bool sgm::Graph_Interface::operator!= ( const Graph_Interface toCompare) const
virtualinherited

Interface inequality comparison : NOTE : this function checks whether the interfaces of two graphs are identical or not, i.e. nodes with same index are equal and the order of adjacent edges is the same. This function performs NO GRAPH ISOMORPHISM !!! Thus, slight changes in the node order etc. will result in a non-equal interface!

Parameters
toComparethe Graph_Interface to compare to
Returns
true if both graph interfaces are different
virtual bool sgm::Graph_Interface::operator== ( const Graph_Interface toCompare) const
virtualinherited

Interface equality comparison : NOTE : this function checks whether the interfaces of two graphs are identical or not, i.e. nodes with same index are equal and the order of adjacent edges is the same. This function performs NO GRAPH ISOMORPHISM !!! Thus, slight changes in the node order etc. will result in a non-equal interface!

Parameters
toComparethe Graph_Interface to compare to
Returns
true if both graph interfaces are equal

Field Documentation

size_t ggl::chem::ClassIDGraph::classIdLength
protected

Definition at line 28 of file ClassIDGraph.hh.

const sgm::Graph_Interface& ggl::chem::ClassIDGraph::oriGraph
protected

Definition at line 26 of file ClassIDGraph.hh.


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