title
Graph Drawing Toolkit

An object-oriented C++ library for handling and drawing graphs

gdtnode_matrix.h

Go to the documentation of this file.
00001 
00003 #ifndef __gdtnode_matrix__
00004 #define __gdtnode_matrix__
00005 
00006 #include <GDT/rm3_undi_graph.h>
00007 #include <GDT/gdt_graph_array.h>
00008 
00009 namespace gdt {
00010 
00011 template<class E>
00012 
00013 class gdtnode_matrix {
00014 
00015         gdtnode_array< gdtnode_array<E> > M;
00016 
00017 public:
00018 
00019 gdtnode_matrix() {}
00020 
00021 gdtnode_matrix(const undi_graph& G)  { init(G);   }
00022 
00023 gdtnode_matrix(const undi_graph& G, E x) { init(G,x); }
00024 
00025 gdtnode_matrix(const gdtnode_matrix<E>& mat) : M(mat.M) {}
00026 
00027 gdtnode_matrix<E>& operator=(const gdtnode_matrix<E>& mat) 
00028 { M = mat.M; return *this; }
00029 
00030 ~gdtnode_matrix() {}
00031 
00032 void  init(const undi_graph& G)
00033 { 
00034         M.init(G); 
00035         gdtnode v;
00036         forall_nodes(v,G) M[v].init(G);
00037 }
00038 
00039 void  init(const undi_graph& G, E x)
00040 { 
00041         M.init(G); 
00042         gdtnode v;
00043         forall_nodes(v,G) M[v].init(G,x);
00044 }
00045 
00046 const gdtnode_array<E>& operator[](gdtnode v) const { return M[v]; }
00047       gdtnode_array<E>& operator[](gdtnode v)       { return M[v]; }
00048 
00049 const E&  operator()(gdtnode v, gdtnode w) const { return M[v][w]; }
00050       E&  operator()(gdtnode v, gdtnode w)       { return M[v][w]; }
00051 
00052 };
00053 
00054 }
00055 
00056 #endif

Generated on Thu Jan 10 14:48:01 2008 for GDToolkit GAPI by  doxygen 1.5.3