COIN-OR::LEMON - Graph Library

source: lemon-0.x/src/demo/graph_to_eps_demo.cc @ 1417:53c2a0ccc9a4

Last change on this file since 1417:53c2a0ccc9a4 was 1417:53c2a0ccc9a4, checked in by Balazs Dezso, 19 years ago

std:: prefix bug corrected

File size: 5.3 KB
RevLine 
[1073]1/* -*- C++ -*-
2 * src/lemon/demo/graph_to_eps.cc -
3 * Part of LEMON, a generic C++ optimization library
4 *
[1164]5 * Copyright (C) 2005 Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
[1359]6 * (Egervary Research Group on Combinatorial Optimization, EGRES).
[1073]7 *
8 * Permission to use, modify and distribute this software is granted
9 * provided that this copyright notice appears in all copies. For
10 * precise terms see the accompanying LICENSE file.
11 *
12 * This software is provided "AS IS" with no warranty of any kind,
13 * express or implied, and with no claim as to its suitability for any
14 * purpose.
15 *
16 */
17
18#include<lemon/graph_to_eps.h>
19#include<lemon/maps.h>
20#include<lemon/list_graph.h>
[1268]21#include<lemon/graph_utils.h>
[1073]22
[1417]23#include <cmath>
24
[1073]25
26using namespace std;
27using namespace lemon;
28
29int main()
30{
[1178]31  ColorSet colorSet;
32
[1073]33  ListGraph g;
34  typedef ListGraph::Node Node;
35  typedef ListGraph::NodeIt NodeIt;
36  typedef ListGraph::Edge Edge;
37  typedef xy<int> Xy;
38 
39  Node n1=g.addNode();
40  Node n2=g.addNode();
41  Node n3=g.addNode();
42  Node n4=g.addNode();
43  Node n5=g.addNode();
44
45  ListGraph::NodeMap<Xy> coords(g);
46  ListGraph::NodeMap<double> sizes(g);
47  ListGraph::NodeMap<int> colors(g);
[1086]48  ListGraph::NodeMap<int> shapes(g);
[1073]49  ListGraph::EdgeMap<int> ecolors(g);
50  ListGraph::EdgeMap<int> widths(g);
51 
[1086]52  coords[n1]=Xy(50,50);  sizes[n1]=1; colors[n1]=1; shapes[n1]=0;
[1088]53  coords[n2]=Xy(50,70);  sizes[n2]=2; colors[n2]=2; shapes[n2]=2;
[1086]54  coords[n3]=Xy(70,70);  sizes[n3]=1; colors[n3]=3; shapes[n3]=0;
55  coords[n4]=Xy(70,50);  sizes[n4]=2; colors[n4]=4; shapes[n4]=1;
[1088]56  coords[n5]=Xy(85,60);  sizes[n5]=3; colors[n5]=5; shapes[n5]=2;
[1073]57 
58  Edge e;
59
60  e=g.addEdge(n1,n2); ecolors[e]=0; widths[e]=1;
61  e=g.addEdge(n2,n3); ecolors[e]=0; widths[e]=1;
62  e=g.addEdge(n3,n5); ecolors[e]=0; widths[e]=3;
63  e=g.addEdge(n5,n4); ecolors[e]=0; widths[e]=1;
64  e=g.addEdge(n4,n1); ecolors[e]=0; widths[e]=1;
65  e=g.addEdge(n2,n4); ecolors[e]=1; widths[e]=2;
66  e=g.addEdge(n3,n4); ecolors[e]=2; widths[e]=1;
67 
[1268]68  IdMap<ListGraph,Node> id(g);
[1073]69
70  graphToEps(g,"graph_to_eps_demo_out.eps").scale(10).coords(coords).
[1108]71    title("Sample .eps figure").
[1164]72    copyright("(C) 2005 LEMON Project").
[1073]73    nodeScale(2).nodeSizes(sizes).
[1086]74    nodeShapes(shapes).
[1073]75    nodeColors(composeMap(colorSet,colors)).
76    edgeColors(composeMap(colorSet,ecolors)).
77    edgeWidthScale(.4).edgeWidths(widths).
[1091]78    nodeTexts(id).nodeTextSize(3).
79    run();
[1073]80
[1091]81  graphToEps(g,"graph_to_eps_demo_out_arr.eps").scale(10).
[1108]82    title("Sample .eps figure (with arrowheads)").
[1164]83    copyright("(C) 2005 LEMON Project").
[1091]84    nodeColors(composeMap(colorSet,colors)).
85    coords(coords).
[1073]86    nodeScale(2).nodeSizes(sizes).
[1086]87    nodeShapes(shapes).
[1073]88    edgeColors(composeMap(colorSet,ecolors)).
89    edgeWidthScale(.4).edgeWidths(widths).
90    nodeTexts(id).nodeTextSize(3).
[1091]91    drawArrows().arrowWidth(1).arrowLength(1).
92    run();
[1073]93
94  e=g.addEdge(n1,n4); ecolors[e]=2; widths[e]=1;
95  e=g.addEdge(n4,n1); ecolors[e]=1; widths[e]=2;
96
97  e=g.addEdge(n1,n2); ecolors[e]=1; widths[e]=1;
98  e=g.addEdge(n1,n2); ecolors[e]=2; widths[e]=1;
99  e=g.addEdge(n1,n2); ecolors[e]=3; widths[e]=1;
100  e=g.addEdge(n1,n2); ecolors[e]=4; widths[e]=1;
101  e=g.addEdge(n1,n2); ecolors[e]=5; widths[e]=1;
102  e=g.addEdge(n1,n2); ecolors[e]=6; widths[e]=1;
103  e=g.addEdge(n1,n2); ecolors[e]=7; widths[e]=1;
104
[1091]105  graphToEps(g,"graph_to_eps_demo_out_par.eps").scale(10).
[1108]106    title("Sample .eps figure (parallel edges)").
[1164]107    copyright("(C) 2005 LEMON Project").
[1091]108    nodeShapes(shapes).
109    coords(coords).
[1073]110    nodeScale(2).nodeSizes(sizes).
111    nodeColors(composeMap(colorSet,colors)).
112    edgeColors(composeMap(colorSet,ecolors)).
113    edgeWidthScale(.4).edgeWidths(widths).
114    nodeTexts(id).nodeTextSize(3).
[1091]115    enableParallel().parEdgeDist(1.5).
116    run();
117 
118  graphToEps(g,"graph_to_eps_demo_out_par_arr.eps").scale(10).
[1108]119    title("Sample .eps figure (parallel edges and arrowheads)").
[1164]120    copyright("(C) 2005 LEMON Project").
[1073]121    nodeScale(2).nodeSizes(sizes).
[1091]122    coords(coords).
[1086]123    nodeShapes(shapes).
[1073]124    nodeColors(composeMap(colorSet,colors)).
125    edgeColors(composeMap(colorSet,ecolors)).
126    edgeWidthScale(.3).edgeWidths(widths).
127    nodeTexts(id).nodeTextSize(3).
128    enableParallel().parEdgeDist(1).
[1091]129    drawArrows().arrowWidth(1).arrowLength(1).
[1103]130    run();
131
132  graphToEps(g,"graph_to_eps_demo_out_a4.eps").scaleToA4().
[1108]133    title("Sample .eps figure (fits to A4)").
[1164]134    copyright("(C) 2005 LEMON Project").
[1103]135    nodeScale(2).nodeSizes(sizes).
136    coords(coords).
137    nodeShapes(shapes).
138    nodeColors(composeMap(colorSet,colors)).
139    edgeColors(composeMap(colorSet,ecolors)).
140    edgeWidthScale(.3).edgeWidths(widths).
141    nodeTexts(id).nodeTextSize(3).
142    enableParallel().parEdgeDist(1).
143    drawArrows().arrowWidth(1).arrowLength(1).
144    run();
145
[1178]146  ListGraph h;
147  ListGraph::NodeMap<int> hcolors(h);
148  ListGraph::NodeMap<Xy> hcoords(h);
149 
150  int cols=int(sqrt(double(colorSet.size())));
151  for(int i=0;i<int(colorSet.size());i++) {
152    Node n=h.addNode();
153    hcoords[n]=Xy(i%cols,i/cols);
154    hcolors[n]=i;
155  }
156 
157  graphToEps(h,"graph_to_eps_demo_out_colors.eps").scale(60).
158    title("Sample .eps figure (parallel edges and arrowheads)").
159    copyright("(C) 2005 LEMON Project").
160    coords(hcoords).
161    nodeScale(.45).
162    distantColorNodeTexts().
163    //    distantBWNodeTexts().
164    nodeTexts(hcolors).nodeTextSize(.6).
165    nodeColors(composeMap(colorSet,hcolors)).
166    run();
167
168
[1073]169}
Note: See TracBrowser for help on using the repository browser.