ladanyi@1606: #ifndef XYMAP_H ladanyi@1606: #define XYMAP_H ladanyi@1606: ladanyi@1606: #include ladanyi@1606: #include ladanyi@1606: ladanyi@1606: using lemon::ListGraph; ladanyi@1606: using lemon::xy; ladanyi@1606: ladanyi@1606: template ladanyi@1606: class XYMap ladanyi@1606: { ladanyi@1606: private: ladanyi@1606: M *xmap, *ymap; ladanyi@1606: ladanyi@1606: public: ladanyi@1606: typedef typename M::Key Key; ladanyi@1606: typedef xy Value; ladanyi@1606: XYMap() {} ladanyi@1606: XYMap(M &_xmap, M &_ymap) : xmap(&_xmap), ymap(&_ymap) {} ladanyi@1606: void setXMap(M &_xmap) { xmap = &_xmap; } ladanyi@1606: void setYMap(M &_ymap) { ymap = &_ymap; } ladanyi@1606: Value operator[](Key k) const ladanyi@1606: { ladanyi@1606: Value v(xmap->operator[](k), ymap->operator[](k)); ladanyi@1606: return v; ladanyi@1606: } ladanyi@1606: void set(Key k, Value v) ladanyi@1606: { ladanyi@1606: xmap->set(k, v.x); ladanyi@1606: ymap->set(k, v.y); ladanyi@1606: } ladanyi@1606: }; ladanyi@1606: ladanyi@1606: #endif