xymap.h
author hegyi
Thu, 06 Oct 2005 12:32:06 +0000
branchgui
changeset 80 231191361de5
child 98 f60f89147531
permissions -rw-r--r--
Shape keeping movement is implemented, at last. Many thanks to Alpar.
     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