source: molecuilder/src/graph.hpp@ 972706

Last change on this file since 972706 was f92d00, checked in by Frederik Heber <heber@…>, 16 years ago

class molecule implementation split up into six separate parts.

  • dynamics: Verlet integration and constraint potential
  • fragmentation: BOSSANOVA scheme
  • geometry: all operations acting on the Vector's inside the atom's
  • graph: supplementary functions for fragmentation, treating molecule as a bonding graph
  • pointcloud: implementations of virtual functions for pointcloud class, needed for Tesselation
  • 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 "molecule.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.