xymap.h
author hegyi
Mon, 21 Nov 2005 18:03:20 +0000
branchgui
changeset 90 e9f8f44f12a3
child 98 f60f89147531
permissions -rw-r--r--
NewMapWin has become Dialog instead of Window. Therefore it is created dynamically, when there is need for it, instead of keeping one instance in memory. This solution is slower, but more correct than before.
ladanyi@53
     1
#ifndef XYMAP_H
ladanyi@53
     2
#define XYMAP_H
ladanyi@53
     3
ladanyi@53
     4
#include <lemon/list_graph.h>
ladanyi@53
     5
#include <lemon/xy.h>
ladanyi@53
     6
ladanyi@53
     7
using lemon::ListGraph;
ladanyi@53
     8
using lemon::xy;
ladanyi@53
     9
ladanyi@53
    10
template<class M>
ladanyi@53
    11
class XYMap
ladanyi@53
    12
{
ladanyi@53
    13
  private:
ladanyi@53
    14
    M *xmap, *ymap;
ladanyi@53
    15
ladanyi@53
    16
  public:
ladanyi@53
    17
    typedef typename M::Key Key;
ladanyi@53
    18
    typedef xy<typename M::Value> Value;
ladanyi@53
    19
    XYMap() {}
ladanyi@53
    20
    XYMap(M &_xmap, M &_ymap) : xmap(&_xmap), ymap(&_ymap) {}
ladanyi@53
    21
    void setXMap(M &_xmap) { xmap = &_xmap; }
ladanyi@53
    22
    void setYMap(M &_ymap) { ymap = &_ymap; }
ladanyi@53
    23
    Value operator[](Key k) const
ladanyi@53
    24
    {
ladanyi@53
    25
      Value v(xmap->operator[](k), ymap->operator[](k));
ladanyi@53
    26
      return v;
ladanyi@53
    27
    }
ladanyi@53
    28
    void set(Key k, Value v)
ladanyi@53
    29
    {
ladanyi@53
    30
      xmap->set(k, v.x);
ladanyi@53
    31
      ymap->set(k, v.y);
ladanyi@53
    32
    }
ladanyi@53
    33
};
ladanyi@53
    34
ladanyi@53
    35
#endif