source: molecuilder/src/graph.hpp@ 3746440

Last change on this file since 3746440 was 650212, checked in by Frederik Heber <heber@…>, 17 years ago

Begin of implementing classes Graph, SubGraph, Node and Edge.

So far only initial class definitions, functions are all as of yet missing.

  • Property mode set to 100644
File size: 1.5 KB
Line 
1/** \file graph.cpp
2 *
3 * Function definitions for the class graph.
4 *
5 */
6
7#ifndef GRAPH_HPP_
8#define GRAPH_HPP_
9
10// include config.h
11#ifdef HAVE_CONFIG_H
12#include <config.h>
13#endif
14
15// STL headers
16#include <map>
17#include <multimap>
18
19#include "molecules.hpp"
20
21class Graph;
22class SubGraph;
23class Node;
24class Edge;
25
26/***************************************** Various graph-related STL defines ********************************/
27
28#define NodeMap pair < int, class Node* >
29#define EdgeMap multimap < class Node*, class Edge* >
30
31/***************************************** Definition for classes ********************************/
32
33/** Graph class containing the graphs behind molecules.
34 */
35class Graph
36{
37 NodeMap ListOfNodes; //!< tree-list of all nodes in this graph
38 EdgeMap ListOfEdges; //!< tree-multi-list of all nodes, referenced to node id
39};
40
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.
44 */
45class SubGraph : class Graph
46{
47 class Graph *FatherGraph; //!< Graph whose subgraph we are
48};
49
50/** Class containing the nodes of a graph.
51 */
52class Node
53{
54 int id; //!< individual id of the node
55 char *Name; //!< Name of the node for pretty printing
56};
57
58/** Class containing egdes in a Graph strructure.
59 */
60class Edge
61{
62 class Node *leftnode; //!< pointer to first node
63 class Node *atomnode; //!< pointer to second node
64};
65
66
67
68#endif /*GRAPH_HPP_*/
Note: See TracBrowser for help on using the repository browser.