[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