xymap.h
author ladanyi
Tue, 23 Aug 2005 15:57:12 +0000
branchgui
changeset 64 7a32d528857f
child 98 f60f89147531
permissions -rw-r--r--
- handle the case when there is no id map in the edgeset section
- do not use ListGraph.id() to determine the id of a new node/edge
     1 #ifndef XYMAP_H
     2 #define XYMAP_H
     3 
     4 #include <lemon/list_graph.h>
     5 #include <lemon/xy.h>
     6 
     7 using lemon::ListGraph;
     8 using lemon::xy;
     9 
    10 template<class M>
    11 class XYMap
    12 {
    13   private:
    14     M *xmap, *ymap;
    15 
    16   public:
    17     typedef typename M::Key Key;
    18     typedef xy<typename M::Value> Value;
    19     XYMap() {}
    20     XYMap(M &_xmap, M &_ymap) : xmap(&_xmap), ymap(&_ymap) {}
    21     void setXMap(M &_xmap) { xmap = &_xmap; }
    22     void setYMap(M &_ymap) { ymap = &_ymap; }
    23     Value operator[](Key k) const
    24     {
    25       Value v(xmap->operator[](k), ymap->operator[](k));
    26       return v;
    27     }
    28     void set(Key k, Value v)
    29     {
    30       xmap->set(k, v.x);
    31       ymap->set(k, v.y);
    32     }
    33 };
    34 
    35 #endif