xymap.h
author deba
Tue, 24 Jan 2006 16:07:38 +0000
branchgui
changeset 126 e682395d45f7
parent 53 e73d7540bd24
child 150 86273bfe0e4d
permissions -rw-r--r--
Lemon Graph Format uses label instead of id named map.
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
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;
ladanyi@98
    15
    typedef lemon::xy<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