xymap.h
author hegyi
Mon, 25 Sep 2006 15:30:04 +0000
changeset 154 65c1b103443d
parent 98 f60f89147531
child 174 95872af46fc4
permissions -rw-r--r--
Node view
ladanyi@53
     1
#ifndef XYMAP_H
ladanyi@53
     2
#define XYMAP_H
ladanyi@53
     3
ladanyi@53
     4
#include <lemon/list_graph.h>
hegyi@150
     5
#include <lemon/dim2.h>
ladanyi@53
     6
ladanyi@53
     7
template<class M>
ladanyi@53
     8
class XYMap
ladanyi@53
     9
{
ladanyi@53
    10
  private:
ladanyi@53
    11
    M *xmap, *ymap;
ladanyi@53
    12
ladanyi@53
    13
  public:
ladanyi@53
    14
    typedef typename M::Key Key;
hegyi@150
    15
    typedef lemon::dim2::Point<typename M::Value> Value;
ladanyi@53
    16
    XYMap() {}
ladanyi@53
    17
    XYMap(M &_xmap, M &_ymap) : xmap(&_xmap), ymap(&_ymap) {}
ladanyi@53
    18
    void setXMap(M &_xmap) { xmap = &_xmap; }
ladanyi@53
    19
    void setYMap(M &_ymap) { ymap = &_ymap; }
ladanyi@53
    20
    Value operator[](Key k) const
ladanyi@53
    21
    {
ladanyi@53
    22
      Value v(xmap->operator[](k), ymap->operator[](k));
ladanyi@53
    23
      return v;
ladanyi@53
    24
    }
ladanyi@53
    25
    void set(Key k, Value v)
ladanyi@53
    26
    {
ladanyi@53
    27
      xmap->set(k, v.x);
ladanyi@53
    28
      ymap->set(k, v.y);
ladanyi@53
    29
    }
ladanyi@53
    30
};
ladanyi@53
    31
ladanyi@53
    32
#endif