diff -r b143e42c44de -r e4cc8e996912 src/work/peter/xy-reader.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/work/peter/xy-reader.cc Wed Mar 30 14:29:55 2005 +0000 @@ -0,0 +1,69 @@ +#include +#include + +#include +#include +#include +#include +#include +#include + +using namespace lemon; + +typedef ListGraph Graph; +typedef xy Coordinates; +typedef Graph::NodeMap CoordinatesMap; +typedef Graph::Node Node; + +class CoordReaderMap: public concept::WriteMap +{ + CoordinatesMap * cm; + char xoy; + +public: + CoordReaderMap(char xory, CoordinatesMap * coordmap): concept::WriteMap() ,cm(coordmap) + { + switch(xory) + { + case 'x': + case 'y': + xoy=xory; + break; + default: + throw UninitializedParameter() ; + } + } + + void set(Node node, double coord) + { + switch(xoy) + { + case 'x': + (*cm)[node].x=coord; + break; + case 'y': + (*cm)[node].y=coord; + break; + default: + throw UninitializedParameter() ; + } + } +}; + +int main(void) +{ + Graph g; + CoordinatesMap cm(g); + + CoordReaderMap xreader('x',&cm); + CoordReaderMap yreader('y',&cm); + + std::ifstream is("dijkstra_test.lemon"); + + GraphReader reader(is, g); + reader.addNodeMap("coordinates_x", xreader); + reader.addNodeMap("coordinates_y", yreader); + reader.run(); + + return 0; +}