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 | Protected Types | Static Protected Member Functions | Protected Attributes
ggl::chem::LeftSidePattern Class Reference

LeftSidePattern graph of a ggl::chem::ChemRule.

#include <ChemRuleGraph.hh>

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

Public Types

typedef std::vector< size_t > CompLabel
 
typedef std::vector
< Match_Constraint * > 
ConstraintVec
 container of matching constraints More...
 
typedef SuperClass::IndexSet IndexSet
 index type used More...
 
typedef size_t IndexType
 Type for global indicex of nodes in the graph. More...
 
typedef ggl::LeftSidePattern SuperClass
 type of the super class More...
 

Public Member Functions

const CompLabelgetComponentLabeling (void) const
 
virtual const ConstraintVecgetConstraints (void) const
 
virtual Edge_iterator getEdgesBegin (const IndexType &i, const IndexType &j) const
 
virtual Edge_iterator getEdgesEnd (const IndexType &i, const IndexType &j) const
 
const IndexSetgetFirstOfEachComponent (void) const
 
virtual sgm::PA_OrderCheck getGraphAutomorphism () const
 
template<class GRAPHMATCHER >
sgm::PA_OrderCheck getGraphAutomorphismT () 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 const Graph_Interface & getPatternGraph (void) const
 
virtual const ChemRulegetRule (void) const
 
virtual const std::string * getUsedWildcard (void) const
 
 LeftSidePattern (const ChemRule &rule)
 
virtual bool operator!= (const Pattern_Interface &toCompare) const
 
virtual bool operator!= (const Graph_Interface &toCompare) const
 
virtual bool operator== (const Pattern_Interface &toCompare) const
 
virtual bool operator== (const Graph_Interface &toCompare) const
 
virtual ~LeftSidePattern ()
 destruction More...
 

Static Public Member Functions

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

Protected Types

typedef boost::property_map
< Rule::CoreGraph,
Rule::EdgeContextProperty >
::const_type 
EdgeContextMap
 handle to the property map used to derive the local edge context More...
 
typedef boost::property_map
< Rule::CoreGraph,
Rule::EdgeLabelProperty >
::const_type 
EdgeLabelMap
 handle to the property map used to derive the edge label More...
 
typedef boost::property_map
< Rule::CoreGraph,
Rule::NodeContextProperty >
::const_type 
NodeContextMap
 handle to the property map used to derive the local node context More...
 
typedef boost::property_map
< Rule::CoreGraph,
Rule::NodeIndexProperty >
::const_type 
NodeIndexMap
 handle to the property map used to derive the local node indices More...
 
typedef boost::property_map
< Rule::CoreGraph,
Rule::NodeLabelProperty >
::const_type 
NodeLabelMap
 handle to the property map used to derive the node label More...
 

Static Protected Member Functions

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

Protected Attributes

sgm::Graph_Interface::CompLabel compLabels
 Compontent labeling. More...
 
EdgeContextMap edgeContext
 direct access of the edge context map of the core graph More...
 
EdgeLabelMap edgeLabel
 direct access of the edge label map of the core graph More...
 
IndexSet firstOfEachComponent
 
NodeContextMap nodeContext
 direct access of the node context map of the core graph More...
 
NodeIndexMap nodeIndex
 direct access of the node index map of the core graph More...
 
NodeLabelMap nodeLabel
 direct access of the node label map of the core graph More...
 
const Rulerule
 The Rule object to map into the Graph_Interface. More...
 
sgm::PA_OrderCheck::CheckListsymmBreakList
 

Detailed Description

Definition at line 17 of file ChemRuleGraph.hh.

Member Typedef Documentation

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

Definition at line 284 of file Graph_Interface.hh.

typedef std::vector< Match_Constraint* > sgm::Pattern_Interface::ConstraintVec
inherited

Definition at line 129 of file Pattern.hh.

typedef boost::property_map<Rule::CoreGraph, Rule::EdgeContextProperty>::const_type ggl::LeftSidePattern::EdgeContextMap
protectedinherited

Definition at line 41 of file RuleGraph.hh.

typedef boost::property_map<Rule::CoreGraph, Rule::EdgeLabelProperty>::const_type ggl::LeftSidePattern::EdgeLabelMap
protectedinherited

Definition at line 35 of file RuleGraph.hh.

Definition at line 26 of file ChemRuleGraph.hh.

typedef size_t sgm::Graph_Interface::IndexType
inherited

Definition at line 23 of file Graph_Interface.hh.

typedef boost::property_map<Rule::CoreGraph, Rule::NodeContextProperty>::const_type ggl::LeftSidePattern::NodeContextMap
protectedinherited

Definition at line 43 of file RuleGraph.hh.

typedef boost::property_map<Rule::CoreGraph, Rule::NodeIndexProperty>::const_type ggl::LeftSidePattern::NodeIndexMap
protectedinherited

Definition at line 39 of file RuleGraph.hh.

typedef boost::property_map<Rule::CoreGraph, Rule::NodeLabelProperty>::const_type ggl::LeftSidePattern::NodeLabelMap
protectedinherited

Definition at line 37 of file RuleGraph.hh.

Definition at line 23 of file ChemRuleGraph.hh.

Constructor & Destructor Documentation

ggl::chem::LeftSidePattern::LeftSidePattern ( const ChemRule rule)
inline

Constructs a LeftSidePattern for the given rule

Parameters
rulethe ChemRule this object will be a left side pattern of

Definition at line 30 of file ChemRuleGraph.hh.

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

Reimplemented from ggl::LeftSidePattern.

Definition at line 36 of file ChemRuleGraph.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
const CompLabel& ggl::LeftSidePattern::getComponentLabeling ( void  ) const
inherited

Access to the component labeling of this pattern.

Returns
the component labeling
virtual const ConstraintVec& ggl::LeftSidePattern::getConstraints ( void  ) const
virtualinherited

Access to the additional constraints that have to be fulfilled by a valid matching of the left side of a graph grammar rule.

Returns
the additional sgm::Pattern_Interface::Match_Constraint's to be matched

Implements sgm::Pattern_Interface.

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
const IndexSet& ggl::LeftSidePattern::getFirstOfEachComponent ( void  ) const
inherited

Access to the first index of each component of this pattern.

Returns
a set of the first index for each component
virtual sgm::PA_OrderCheck ggl::LeftSidePattern::getGraphAutomorphism ( ) const
virtualinherited

Creates a Pattern_Automorphism object to handle symmetries when matching the LeftSidePattern of this rule. Calls getGraphAutomorphismT< sgm::GM_vf2 >().

Returns
the Pattern_Automorphism for this rule
template<class GRAPHMATCHER >
sgm::PA_OrderCheck ggl::LeftSidePattern::getGraphAutomorphismT ( ) const
inherited

Creates a Pattern_Automorphism object to handle symmetries when matching the LeftSidePattern of this rule. The GRAPHMATCHER template argument is used to choose a sgm::GraphMatcher class to be used for automorphism detection.

Returns
the Pattern_Automorphism for this rule
virtual std::string ggl::LeftSidePattern::getNodeLabel ( const IndexType i) const
virtualinherited

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.

virtual size_t ggl::LeftSidePattern::getNodeNumber ( void  ) const
virtualinherited

Access to the number of nodes of the graph

Returns
the overall node number

Implements sgm::Graph_Interface.

virtual OutEdge_iterator ggl::LeftSidePattern::getOutEdgesBegin ( const IndexType i) const
virtualinherited

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.

virtual OutEdge_iterator ggl::LeftSidePattern::getOutEdgesEnd ( const IndexType i) const
virtualinherited

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.

virtual const Graph_Interface& ggl::LeftSidePattern::getPatternGraph ( void  ) const
virtualinherited

Access to *this, since this is the pattern graph..

Returns
the pattern graph to be matched

Implements sgm::Pattern_Interface.

virtual const ChemRule& ggl::chem::LeftSidePattern::getRule ( void  ) const
inlinevirtual

Constant access to the internal ChemRule object.

Returns
the internal Rule object

Reimplemented from ggl::LeftSidePattern.

Definition at line 43 of file ChemRuleGraph.hh.

virtual const std::string* ggl::LeftSidePattern::getUsedWildcard ( void  ) const
virtualinherited

Access to the wildcard to be used when matching this pattern onto some other graph.

Returns
the wildcard string to be used for edge and node labels, or NULL if no wildcard should be applied

Implements sgm::Pattern_Interface.

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::Pattern_Interface::operator!= ( const Pattern_Interface toCompare) const
virtualinherited

Inequality comparison

Parameters
toComparethe Pattern to compare to
Returns
true if both describe the different patterns
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::Pattern_Interface::operator== ( const Pattern_Interface toCompare) const
virtualinherited

Equality comparison

Parameters
toComparethe Pattern to compare to
Returns
true if both describe the same pattern
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

sgm::Graph_Interface::CompLabel ggl::LeftSidePattern::compLabels
protectedinherited

Definition at line 53 of file RuleGraph.hh.

EdgeContextMap ggl::LeftSidePattern::edgeContext
protectedinherited

Definition at line 66 of file RuleGraph.hh.

EdgeLabelMap ggl::LeftSidePattern::edgeLabel
protectedinherited

Definition at line 60 of file RuleGraph.hh.

IndexSet ggl::LeftSidePattern::firstOfEachComponent
protectedinherited

Holds the first index of each component of this graph Has to be sorted in increasing indices !!!

Definition at line 50 of file RuleGraph.hh.

NodeContextMap ggl::LeftSidePattern::nodeContext
protectedinherited

Definition at line 68 of file RuleGraph.hh.

NodeIndexMap ggl::LeftSidePattern::nodeIndex
protectedinherited

Definition at line 64 of file RuleGraph.hh.

NodeLabelMap ggl::LeftSidePattern::nodeLabel
protectedinherited

Definition at line 62 of file RuleGraph.hh.

const Rule& ggl::LeftSidePattern::rule
protectedinherited

Definition at line 46 of file RuleGraph.hh.

sgm::PA_OrderCheck::CheckList* ggl::LeftSidePattern::symmBreakList
mutableprotectedinherited

the list of order checks to apply to break all symmetries for this rule

Definition at line 57 of file RuleGraph.hh.


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