[Lemon-commits] [lemon_svn] hegyi: r1709 - hugo/trunk/src/work/peter
Lemon SVN
svn at lemon.cs.elte.hu
Mon Nov 6 20:47:07 CET 2006
Author: hegyi
Date: Wed Mar 30 16:29:55 2005
New Revision: 1709
Added:
hugo/trunk/src/work/peter/xy-reader.cc
Modified:
hugo/trunk/src/work/peter/Makefile
hugo/trunk/src/work/peter/canvas-test.cc
Log:
XY reading is being wrote.
Modified: hugo/trunk/src/work/peter/Makefile
==============================================================================
--- hugo/trunk/src/work/peter/Makefile (original)
+++ hugo/trunk/src/work/peter/Makefile Wed Mar 30 16:29:55 2005
@@ -1,7 +1,10 @@
-triangle: canvas-test.cc
- g++ canvas-test.cc -W -Wall -ansi -pedantic -o triangle `pkg-config libgnomecanvasmm-2.6 --cflags --libs`
+gd: graph-displayer.cc
+ g++ graph-displayer.cc -W -Wall -ansi -pedantic -o gd `pkg-config libgnomecanvasmm-2.6 --cflags --libs` -I../..
-run: triangle
- ./triangle 100 100 -100 100 0 -100
+xyr: xy-reader.cc
+ g++ xy-reader.cc -W -Wall -ansi -pedantic -o xyr -I../..
+
+run: gd
+ ./gd
.PHONY: run
Modified: hugo/trunk/src/work/peter/canvas-test.cc
==============================================================================
--- hugo/trunk/src/work/peter/canvas-test.cc (original)
+++ hugo/trunk/src/work/peter/canvas-test.cc Wed Mar 30 16:29:55 2005
@@ -6,6 +6,7 @@
#include <libgnomecanvasmm.h>
#include <libgnomecanvasmm/polygon.h>
#include <iostream>
+#include <lemon/list_graph.h>
class CanvasExample : public Gnome::Canvas::CanvasAA
{
Added: hugo/trunk/src/work/peter/xy-reader.cc
==============================================================================
--- (empty file)
+++ hugo/trunk/src/work/peter/xy-reader.cc Wed Mar 30 16:29:55 2005
@@ -0,0 +1,69 @@
+#include <fstream>
+#include <iostream>
+
+#include <lemon/xy.h>
+#include <lemon/concept/maps.h>
+#include <lemon/error.h>
+#include <lemon/list_graph.h>
+#include <lemon/graph_reader.h>
+#include <lemon/graph_utils.h>
+
+using namespace lemon;
+
+typedef ListGraph Graph;
+typedef xy<double> Coordinates;
+typedef Graph::NodeMap<Coordinates> CoordinatesMap;
+typedef Graph::Node Node;
+
+class CoordReaderMap: public concept::WriteMap<Node, double>
+{
+ CoordinatesMap * cm;
+ char xoy;
+
+public:
+ CoordReaderMap(char xory, CoordinatesMap * coordmap): concept::WriteMap<Node, double>() ,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<Graph> reader(is, g);
+ reader.addNodeMap("coordinates_x", xreader);
+ reader.addNodeMap("coordinates_y", yreader);
+ reader.run();
+
+ return 0;
+}
More information about the Lemon-commits
mailing list