Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/graph.hpp

    r5621c3 rf66195  
    88#define GRAPH_HPP_
    99
     10/*********************************************** includes ***********************************/
     11
    1012// include config.h
    1113#ifdef HAVE_CONFIG_H
     
    1416
    1517// STL headers
     18#include <deque>
    1619#include <map>
    17 #include <multimap>
     20#include <set>
    1821
    19 #include "molecules.hpp"
     22/****************************************** forward declarations *****************************/
     23
     24class atom;
     25class bond;
     26class config;
     27class molecule;
    2028
    2129class Graph;
     
    2432class Edge;
    2533
    26 /***************************************** Various graph-related STL defines ********************************/
     34/********************************************** definitions *********************************/
    2735
    2836#define NodeMap pair < int, class Node* >
    2937#define EdgeMap multimap < class Node*, class Edge* >
    3038
    31 /***************************************** Definition for classes ********************************/
     39#define KeyStack deque<int>
     40#define KeySet set<int>
     41#define NumberValuePair pair<int, double>
     42#define Graph map <KeySet, NumberValuePair, KeyCompare >
     43#define GraphPair pair <KeySet, NumberValuePair >
     44#define KeySetTestPair pair<KeySet::iterator, bool>
     45#define GraphTestPair pair<Graph::iterator, bool>
    3246
    33 /** Graph class containing the graphs behind molecules.
    34  */
    35 class Graph
     47
     48/******************************** Some small functions and/or structures **********************************/
     49
     50struct KeyCompare
    3651{
    37         NodeMap ListOfNodes;            //!< tree-list of all nodes in this graph
    38         EdgeMap ListOfEdges;            //!< tree-multi-list of all nodes, referenced to node id
     52  bool operator() (const KeySet SubgraphA, const KeySet SubgraphB) const;
    3953};
    4054
    41 /** Class describing subgraphs of the Class \a Graph.
    42  * SubGraph has its own node and edge lists, however also a pointer to its father graph
    43  * and hence access to its list as well.
     55//bool operator < (KeySet SubgraphA, KeySet SubgraphB);   //note: this declaration is important, otherwise normal < is used (producing wrong order)
     56void InsertFragmentIntoGraph(ofstream *out, struct UniqueFragments *Fragment); // Insert a KeySet into a Graph
     57void InsertGraphIntoGraph(ofstream *out, Graph &graph1, Graph &graph2, int *counter);  // Insert all KeySet's in a Graph into another Graph
     58
     59/** Structure containing all values in power set combination generation.
    4460 */
    45 class SubGraph : class Graph
    46 {
    47         class Graph *FatherGraph;               //!< Graph whose subgraph we are
     61struct UniqueFragments {
     62  config *configuration;
     63  atom *Root;
     64  Graph *Leaflet;
     65  KeySet *FragmentSet;
     66  int ANOVAOrder;
     67  int FragmentCounter;
     68  int CurrentIndex;
     69  double TEFactor;
     70  int *ShortestPathList;
     71  bool **UsedList;
     72  bond **BondsPerSPList;
     73  int *BondsPerSPCount;
    4874};
    4975
    50 /** Class containing the nodes of a graph.
    51  */
    52 class Node
    53 {
    54         int     id;                             //!< individual id of the node
    55         char *Name;             //!< Name of the node for pretty printing
    56 };
     76/********************************************** declarations *******************************/
    5777
    58 /** Class containing egdes in a Graph strructure.
    59  */
    60 class Edge
    61 {
    62         class Node *leftnode;           //!< pointer to first node
    63         class Node *atomnode;           //!< pointer to second node
    64 };
     78///** Graph class containing the graphs behind molecules.
     79// */
     80//class Graph
     81//{
     82//      NodeMap ListOfNodes;            //!< tree-list of all nodes in this graph
     83//      EdgeMap ListOfEdges;            //!< tree-multi-list of all nodes, referenced to node id
     84//};
     85//
     86///** Class describing subgraphs of the Class \a Graph.
     87// * SubGraph has its own node and edge lists, however also a pointer to its father graph
     88// * and hence access to its list as well.
     89// */
     90//class SubGraph : class Graph
     91//{
     92//      class Graph *FatherGraph;               //!< Graph whose subgraph we are
     93//};
     94//
     95///** Class containing the nodes of a graph.
     96// */
     97//class Node
     98//{
     99//      int     id;                             //!< individual id of the node
     100//      char *Name;             //!< Name of the node for pretty printing
     101//};
     102//
     103///** Class containing egdes in a Graph strructure.
     104// */
     105//class Edge
     106//{
     107//      class Node *leftnode;           //!< pointer to first node
     108//      class Node *atomnode;           //!< pointer to second node
     109//};
    65110
    66111
Note: See TracChangeset for help on using the changeset viewer.