Index: src/work/marci/leda/leda_graph_wrapper.h
===================================================================
--- src/work/marci/leda/leda_graph_wrapper.h	(revision 646)
+++ src/work/marci/leda/leda_graph_wrapper.h	(revision 650)
@@ -34,8 +34,9 @@
     void setGraph(Graph& _l_graph) { l_graph=&_l_graph; }
   public:
-   
-        //LedaGraphWrapper() { }
+
+    /// Constructor for wrapping LEDA graphs.
     LedaGraphWrapper(Graph& _l_graph) : l_graph(&_l_graph) { }
-    LedaGraphWrapper(const LedaGraphWrapper &G) : l_graph(G.l_graph) { }
+    /// Copy constructor
+    LedaGraphWrapper(const LedaGraphWrapper &g) : l_graph(g.l_graph) { }
 
     template <typename T> class NodeMap;
@@ -51,5 +52,5 @@
     class InEdgeIt;
 
-    /// The base type of the node iterators.
+    /// Trivial node-iterator
     class Node {
       friend class LedaGraphWrapper<Graph>;
@@ -66,5 +67,5 @@
       /// @warning The default constructor sets the iterator
       /// to an undefined value.
-      Node() {}   //FIXME
+      Node() { }   //FIXME
       /// Initialize the iterator to be invalid
       Node(Invalid) : l_n(0) { }
@@ -80,7 +81,7 @@
       /// @warning The default constructor sets the iterator
       /// to an undefined value.
-      NodeIt() {} //FIXME
-      /// Initialize the iterator to be invalid
-      NodeIt(Invalid i) : Node(i) {}
+      NodeIt() { } //FIXME
+      /// Initialize the iterator to be invalid
+      NodeIt(Invalid i) : Node(i) { }
       /// Sets the iterator to the first node of \c G.
       NodeIt(const LedaGraphWrapper &G) : Node(G.l_graph->first_node()) { }
@@ -88,5 +89,5 @@
     };
     
-    /// The base type of the edge iterators.
+    /// Trivial edge-iterator.
     class Edge {
       friend class LedaGraphWrapper;
@@ -99,7 +100,7 @@
       /// @warning The default constructor sets the iterator
       /// to an undefined value.
-      Edge() {}   //FIXME
-      /// Initialize the iterator to be invalid
-      Edge(Invalid) : l_e(0) {}
+      Edge() { }   //FIXME
+      /// Initialize the iterator to be invalid
+      Edge(Invalid) : l_e(0) { }
       //Edge(const Edge &) {} 
       bool operator==(Edge e) const { return l_e==e.l_e; } //FIXME
@@ -108,13 +109,12 @@
     };
     
-    /// This iterator goes trought the outgoing edges of a certain graph.
-    
+    /// This iterator goes trought the outgoing edges of a certain node.
     class OutEdgeIt : public Edge {
     public:
       /// @warning The default constructor sets the iterator
       /// to an undefined value.
-      OutEdgeIt() {}
-      /// Initialize the iterator to be invalid
-      OutEdgeIt(Invalid i) : Edge(i) {}
+      OutEdgeIt() { }
+      /// Initialize the iterator to be invalid
+      OutEdgeIt(Invalid i) : Edge(i) { }
       /// This constructor sets the iterator to first outgoing edge.
     
@@ -126,27 +126,30 @@
     };
 
+    /// This iterator goes trought the incoming edges of a certain node.
     class InEdgeIt : public Edge {
     public:
       /// @warning The default constructor sets the iterator
       /// to an undefined value.
-      InEdgeIt() {}
-      /// Initialize the iterator to be invalid
-      InEdgeIt(Invalid i) : Edge(i) {}
+      InEdgeIt() { }
+      /// Initialize the iterator to be invalid
+      InEdgeIt(Invalid i) : Edge(i) { }
       InEdgeIt(const LedaGraphWrapper & G, Node n) : Edge(G.l_graph->first_in_edge(n.l_n)) { }
     };
 
     //  class SymEdgeIt : public Edge {};
+    
+    /// This iterator goes trought the edges of the graph.
     class EdgeIt : public Edge {
     public:
       /// @warning The default constructor sets the iterator
       /// to an undefined value.
-      EdgeIt() {}
-      /// Initialize the iterator to be invalid
-      EdgeIt(Invalid i) : Edge(i) {}
+      EdgeIt() { }
+      /// Initialize the iterator to be invalid
+      EdgeIt(Invalid i) : Edge(i) { }
       EdgeIt(const LedaGraphWrapper & G) : Edge(G.l_graph->first_edge()) { }
     };
 
     /// First node of the graph.
-
+    ///
     /// \post \c i and the return value will be the first node.
     ///
@@ -164,5 +167,5 @@
     }
     //  SymEdgeIt &first(SymEdgeIt &, Node) const { return i;}
-    /// The first edge of the Graph.
+    /// The first edge of the graph.
     EdgeIt &first(EdgeIt &i) const {      
       i=EdgeIt(*this); 
@@ -254,5 +257,5 @@
     int edgeNum() const { return l_graph->number_of_edges(); }
 
-    ///Read/write map from the nodes to type \c T.
+    /// Read/write map from the nodes to type \c T.
     template<typename T> class NodeMap
     {
@@ -274,5 +277,5 @@
     };
 
-    ///Read/write map from the edges to type \c T.
+    /// Read/write map from the edges to type \c T.
     template<typename T> class EdgeMap
     {
@@ -295,18 +298,19 @@
 
 
-    ///Read/write map from the nodes to type \c T.
+    /// This class is to wrap existing 
+    /// LEDA node-maps to HUGO ones.
     template<typename T> class NodeMapWrapper
     {
-      leda_node_map<T>* leda_stuff;
+      leda_node_array<T>* leda_stuff;
     public:
       typedef T ValueType;
       typedef Node KeyType;
 
-      NodeMapWrapper(leda_node_map<T>& _leda_stuff) : 
+      NodeMapWrapper(leda_node_array<T>& _leda_stuff) : 
 	leda_stuff(&_leda_stuff) { }
       //NodeMap(leda_node_map& &G, T t) : leda_stuff(*(G.l_graph), t) {}
 
       void set(Node i, T t) { (*leda_stuff)[i.l_n]=t; }
-      T get(Node i) const { return (*leda_stuff)[i.l_n]; }  //FIXME: Is it necessary
+      //T get(Node i) const { return (*leda_stuff)[i.l_n]; }  //FIXME: Is it necessary
       T &operator[](Node i) { return (*leda_stuff)[i.l_n]; }
       const T &operator[](Node i) const { return (*leda_stuff)[i.l_n]; }
@@ -316,18 +320,19 @@
     };
 
-    ///Read/write map from the edges to type \c T.
+    /// This class is to wrap existing 
+    /// LEDA edge-maps to HUGO ones.
     template<typename T> class EdgeMapWrapper
     {
-      leda_edge_map<T>* leda_stuff;
+      leda_edge_array<T>* leda_stuff;
     public:
       typedef T ValueType;
       typedef Edge KeyType;
 
-      EdgeMapWrapper(leda_edge_map<T>& _leda_stuff) : 
+      EdgeMapWrapper(leda_edge_array<T>& _leda_stuff) : 
 	leda_stuff(_leda_stuff) { }
       //EdgeMap(const LedaGraphWrapper &G, T t) : leda_stuff(*(G.l_graph), t) {}
 
       void set(Edge i, T t) { (*leda_stuff)[i.l_e]=t; }
-      T get(Edge i) const { return (*leda_stuff)[i.l_e]; }  //FIXME: Is it necessary
+      //T get(Edge i) const { return (*leda_stuff)[i.l_e]; }  //FIXME: Is it necessary
       T &operator[](Edge i) { return (*leda_stuff)[i.l_e]; }
       const T &operator[](Edge i) const { return (*leda_stuff)[i.l_e]; }
@@ -335,4 +340,24 @@
       void update() { /*leda_stuff.init(leda_stuff.get_graph());*/ }
       //void update(T a) { leda_stuff.init(leda_stuff.get_graph()/**(G.l_graph)*/, a); }   //FIXME: Is it necessary
+    };
+
+    /// This class is used for access node-data of 
+    /// LEDA parametrized graphs.
+    template<typename T> 
+    class NodeDataMap : public NodeMapWrapper<T>
+    {
+    public:
+      NodeDataMap(LedaGraphWrapper<Graph>& LGW) : 
+	NodeMapWrapper<T>(*(LGW._g_graph).node_data()) { }
+    };
+
+    /// This class is used for access edge-data of 
+    /// LEDA parametrized graphs.
+    template<typename T> 
+    class EdgeDataMap : public EdgeMapWrapper<T>
+    {
+    public:
+      EdgeDataMap(LedaGraphWrapper<Graph>& LGW) : 
+	EdgeMapWrapper<T>(*(LGW._g_graph).edge_data()) { }
     };
 
