gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Improvements related to graphToEps()
0 3 0
default
3 files changed with 97 insertions and 159 deletions:
↑ Collapse diff ↑
Show white space 6 line context
... ...
@@ -18,23 +18,22 @@
18 18

	
19 19
/// \ingroup demos
20 20
/// \file
21
/// \brief Demo of the graph grawing function \ref graphToEps()
21
/// \brief Demo of the graph drawing function \ref graphToEps()
22 22
///
23 23
/// This demo program shows examples how to  use the function \ref
24 24
/// graphToEps(). It takes no input but simply creates  six
25 25
/// <tt>.eps</tt> files demonstrating the capability of \ref
26
/// graphToEps(), and showing how to draw directed/graphs,
26
/// graphToEps(), and showing how to draw directed graphs,
27 27
/// how to handle parallel egdes, how to change the properties (like
28 28
/// color, shape, size, title etc.) of nodes and arcs individually
29 29
/// using appropriate \ref maps-page "graph maps".
30 30
///
31 31
/// \include graph_to_eps_demo.cc
32 32

	
33
#include <lemon/math.h>
34

	
35
#include<lemon/graph_to_eps.h>
36 33
#include<lemon/list_graph.h>
37 34
#include<lemon/graph_utils.h>
35
#include<lemon/graph_to_eps.h>
36
#include<lemon/math.h>
38 37

	
39 38
using namespace std;
40 39
using namespace lemon;
... ...
@@ -44,6 +43,7 @@
44 43
  Palette palette;
45 44
  Palette paletteW(true);
46 45

	
46
  // Create a small digraph
47 47
  ListDigraph g;
48 48
  typedef ListDigraph::Node Node;
49 49
  typedef ListDigraph::NodeIt NodeIt;
... ...
@@ -60,7 +60,7 @@
60 60
  ListDigraph::NodeMap<double> sizes(g);
61 61
  ListDigraph::NodeMap<int> colors(g);
62 62
  ListDigraph::NodeMap<int> shapes(g);
63
  ListDigraph::ArcMap<int> ecolors(g);
63
  ListDigraph::ArcMap<int> acolors(g);
64 64
  ListDigraph::ArcMap<int> widths(g);
65 65
  
66 66
  coords[n1]=Point(50,50);  sizes[n1]=1; colors[n1]=1; shapes[n1]=0;
... ...
@@ -69,118 +69,116 @@
69 69
  coords[n4]=Point(70,50);  sizes[n4]=2; colors[n4]=4; shapes[n4]=1;
70 70
  coords[n5]=Point(85,60);  sizes[n5]=3; colors[n5]=5; shapes[n5]=2;
71 71
  
72
  Arc e;
72
  Arc a;
73 73

	
74
  e=g.addArc(n1,n2); ecolors[e]=0; widths[e]=1;
75
  e=g.addArc(n2,n3); ecolors[e]=0; widths[e]=1;
76
  e=g.addArc(n3,n5); ecolors[e]=0; widths[e]=3;
77
  e=g.addArc(n5,n4); ecolors[e]=0; widths[e]=1;
78
  e=g.addArc(n4,n1); ecolors[e]=0; widths[e]=1;
79
  e=g.addArc(n2,n4); ecolors[e]=1; widths[e]=2;
80
  e=g.addArc(n3,n4); ecolors[e]=2; widths[e]=1;
74
  a=g.addArc(n1,n2); acolors[a]=0; widths[a]=1;
75
  a=g.addArc(n2,n3); acolors[a]=0; widths[a]=1;
76
  a=g.addArc(n3,n5); acolors[a]=0; widths[a]=3;
77
  a=g.addArc(n5,n4); acolors[a]=0; widths[a]=1;
78
  a=g.addArc(n4,n1); acolors[a]=0; widths[a]=1;
79
  a=g.addArc(n2,n4); acolors[a]=1; widths[a]=2;
80
  a=g.addArc(n3,n4); acolors[a]=2; widths[a]=1;
81 81
  
82 82
  IdMap<ListDigraph,Node> id(g);
83 83

	
84
  cout << "Create 'graph_to_eps_demo_out_pure.eps'" << endl;
85
  graphToEps(g,"graph_to_eps_demo_out_pure.eps").
86
    //scale(10).
84
  // Create five .eps files showing the digraph with different options
85
  cout << "Create 'graph_to_eps_demo_out_1_pure.eps'" << endl;
86
  graphToEps(g,"graph_to_eps_demo_out_1_pure.eps").
87 87
    coords(coords).
88 88
    title("Sample .eps figure").
89
    copyright("(C) 2003-2007 LEMON Project").
89
    copyright("(C) 2003-2008 LEMON Project").
90 90
    run();
91 91

	
92
  cout << "Create 'graph_to_eps_demo_out.eps'" << endl;
93
  graphToEps(g,"graph_to_eps_demo_out.eps").
94
    //scale(10).
92
  cout << "Create 'graph_to_eps_demo_out_2.eps'" << endl;
93
  graphToEps(g,"graph_to_eps_demo_out_2.eps").
95 94
    coords(coords).
96 95
    title("Sample .eps figure").
97
    copyright("(C) 2003-2007 LEMON Project").
96
    copyright("(C) 2003-2008 LEMON Project").
98 97
    absoluteNodeSizes().absoluteArcWidths().
99 98
    nodeScale(2).nodeSizes(sizes).
100 99
    nodeShapes(shapes).
101 100
    nodeColors(composeMap(palette,colors)).
102
    arcColors(composeMap(palette,ecolors)).
101
    arcColors(composeMap(palette,acolors)).
103 102
    arcWidthScale(.4).arcWidths(widths).
104 103
    nodeTexts(id).nodeTextSize(3).
105 104
    run();
106 105

	
107

	
108
  cout << "Create 'graph_to_eps_demo_out_arr.eps'" << endl;
109
  graphToEps(g,"graph_to_eps_demo_out_arr.eps").
110
    //scale(10).
106
  cout << "Create 'graph_to_eps_demo_out_3_arr.eps'" << endl;
107
  graphToEps(g,"graph_to_eps_demo_out_3_arr.eps").
111 108
    title("Sample .eps figure (with arrowheads)").
112
    copyright("(C) 2003-2007 LEMON Project").
109
    copyright("(C) 2003-2008 LEMON Project").
113 110
    absoluteNodeSizes().absoluteArcWidths().
114 111
    nodeColors(composeMap(palette,colors)).
115 112
    coords(coords).
116 113
    nodeScale(2).nodeSizes(sizes).
117 114
    nodeShapes(shapes).
118
    arcColors(composeMap(palette,ecolors)).
115
    arcColors(composeMap(palette,acolors)).
119 116
    arcWidthScale(.4).arcWidths(widths).
120 117
    nodeTexts(id).nodeTextSize(3).
121
    drawArrows().arrowWidth(1).arrowLength(1).
118
    drawArrows().arrowWidth(2).arrowLength(2).
122 119
    run();
123 120

	
124
  e=g.addArc(n1,n4); ecolors[e]=2; widths[e]=1;
125
  e=g.addArc(n4,n1); ecolors[e]=1; widths[e]=2;
121
  a=g.addArc(n1,n4); acolors[a]=2; widths[a]=1;
122
  a=g.addArc(n4,n1); acolors[a]=1; widths[a]=2;
126 123

	
127
  e=g.addArc(n1,n2); ecolors[e]=1; widths[e]=1;
128
  e=g.addArc(n1,n2); ecolors[e]=2; widths[e]=1;
129
  e=g.addArc(n1,n2); ecolors[e]=3; widths[e]=1;
130
  e=g.addArc(n1,n2); ecolors[e]=4; widths[e]=1;
131
  e=g.addArc(n1,n2); ecolors[e]=5; widths[e]=1;
132
  e=g.addArc(n1,n2); ecolors[e]=6; widths[e]=1;
133
  e=g.addArc(n1,n2); ecolors[e]=7; widths[e]=1;
124
  a=g.addArc(n1,n2); acolors[a]=1; widths[a]=1;
125
  a=g.addArc(n1,n2); acolors[a]=2; widths[a]=1;
126
  a=g.addArc(n1,n2); acolors[a]=3; widths[a]=1;
127
  a=g.addArc(n1,n2); acolors[a]=4; widths[a]=1;
128
  a=g.addArc(n1,n2); acolors[a]=5; widths[a]=1;
129
  a=g.addArc(n1,n2); acolors[a]=6; widths[a]=1;
130
  a=g.addArc(n1,n2); acolors[a]=7; widths[a]=1;
134 131

	
135 132
  cout << "Create 'graph_to_eps_demo_out_par.eps'" << endl;
136 133
  graphToEps(g,"graph_to_eps_demo_out_par.eps").
137 134
    //scale(10).
138 135
    title("Sample .eps figure (parallel arcs)").
139
    copyright("(C) 2003-2007 LEMON Project").
136
    copyright("(C) 2003-2008 LEMON Project").
140 137
    absoluteNodeSizes().absoluteArcWidths().
141 138
    nodeShapes(shapes).
142 139
    coords(coords).
143 140
    nodeScale(2).nodeSizes(sizes).
144 141
    nodeColors(composeMap(palette,colors)).
145
    arcColors(composeMap(palette,ecolors)).
142
    arcColors(composeMap(palette,acolors)).
146 143
    arcWidthScale(.4).arcWidths(widths).
147 144
    nodeTexts(id).nodeTextSize(3).
148 145
    enableParallel().parArcDist(1.5).
149 146
    run();
150 147
  
151
  cout << "Create 'graph_to_eps_demo_out_par_arr.eps'" << endl;
152
  graphToEps(g,"graph_to_eps_demo_out_par_arr.eps").
153
    //scale(10).
148
  cout << "Create 'graph_to_eps_demo_out_4_par_arr.eps'" << endl;
149
  graphToEps(g,"graph_to_eps_demo_out_4_par_arr.eps").
154 150
    title("Sample .eps figure (parallel arcs and arrowheads)").
155
    copyright("(C) 2003-2007 LEMON Project").
151
    copyright("(C) 2003-2008 LEMON Project").
156 152
    absoluteNodeSizes().absoluteArcWidths().
157 153
    nodeScale(2).nodeSizes(sizes).
158 154
    coords(coords).
159 155
    nodeShapes(shapes).
160 156
    nodeColors(composeMap(palette,colors)).
161
    arcColors(composeMap(palette,ecolors)).
157
    arcColors(composeMap(palette,acolors)).
162 158
    arcWidthScale(.3).arcWidths(widths).
163 159
    nodeTexts(id).nodeTextSize(3).
164 160
    enableParallel().parArcDist(1).
165 161
    drawArrows().arrowWidth(1).arrowLength(1).
166 162
    run();
167 163

	
168
  cout << "Create 'graph_to_eps_demo_out_a4.eps'" << endl;
169
  graphToEps(g,"graph_to_eps_demo_out_a4.eps").scaleToA4().
164
  cout << "Create 'graph_to_eps_demo_out_5_par_arr_a4.eps'" << endl;
165
  graphToEps(g,"graph_to_eps_demo_out_5_par_arr_a4.eps").
170 166
    title("Sample .eps figure (fits to A4)").
171
    copyright("(C) 2003-2007 LEMON Project").
167
    copyright("(C) 2003-2008 LEMON Project").
168
    scaleToA4().
172 169
    absoluteNodeSizes().absoluteArcWidths().
173 170
    nodeScale(2).nodeSizes(sizes).
174 171
    coords(coords).
175 172
    nodeShapes(shapes).
176 173
    nodeColors(composeMap(palette,colors)).
177
    arcColors(composeMap(palette,ecolors)).
174
    arcColors(composeMap(palette,acolors)).
178 175
    arcWidthScale(.3).arcWidths(widths).
179 176
    nodeTexts(id).nodeTextSize(3).
180 177
    enableParallel().parArcDist(1).
181 178
    drawArrows().arrowWidth(1).arrowLength(1).
182 179
    run();
183 180

	
181
  // Create an .eps file showing the colors of a default Palette
184 182
  ListDigraph h;
185 183
  ListDigraph::NodeMap<int> hcolors(h);
186 184
  ListDigraph::NodeMap<Point> hcoords(h);
... ...
@@ -188,21 +186,22 @@
188 186
  int cols=int(sqrt(double(palette.size())));
189 187
  for(int i=0;i<int(paletteW.size());i++) {
190 188
    Node n=h.addNode();
191
    hcoords[n]=Point(i%cols,i/cols);
189
    hcoords[n]=Point(1+i%cols,1+i/cols);
192 190
    hcolors[n]=i;
193 191
  }
194 192
  
195
  cout << "Create 'graph_to_eps_demo_out_colors.eps'" << endl;
196
  graphToEps(h,"graph_to_eps_demo_out_colors.eps").
197
    //scale(60).
193
  cout << "Create 'graph_to_eps_demo_out_6_colors.eps'" << endl;
194
  graphToEps(h,"graph_to_eps_demo_out_6_colors.eps").
195
    scale(60).
198 196
    title("Sample .eps figure (Palette demo)").
199
    copyright("(C) 2003-2007 LEMON Project").
197
    copyright("(C) 2003-2008 LEMON Project").
200 198
    coords(hcoords).
201 199
    absoluteNodeSizes().absoluteArcWidths().
202 200
    nodeScale(.45).
203 201
    distantColorNodeTexts().
204
    //    distantBWNodeTexts().
205 202
    nodeTexts(hcolors).nodeTextSize(.6).
206 203
    nodeColors(composeMap(paletteW,hcolors)).
207 204
    run();
205
    
206
  return 0;
208 207
}
Show white space 6 line context
... ...
@@ -108,11 +108,11 @@
108 108
  public:
109 109
    ///Constructor
110 110

	
111
    ///Constructor 
112
    ///\param have_white indicates whether white is amongst the
111
    ///Constructor.
112
    ///\param have_white Indicates whether white is among the
113 113
    ///provided initial colors (\c true) or not (\c false). If it is true,
114 114
    ///white will be assigned to \c 0.
115
    ///\param num the number of the allocated colors. If it is \c -1,
115
    ///\param num The number of the allocated colors. If it is \c -1,
116 116
    ///the default color configuration is set up (26 color plus optionaly the
117 117
    ///white).  If \c num is less then 26/27 then the default color
118 118
    ///list is cut. Otherwise the color list is filled repeatedly with
... ...
@@ -153,7 +153,6 @@
153 153
        colors.push_back(Color(0,.5,1));
154 154
        colors.push_back(Color(.5,0,1));
155 155
      } while(int(colors.size())<num);
156
      //    colors.push_back(Color(1,1,1));
157 156
      if(num>=0) colors.resize(num);
158 157
    }
159 158
    ///\e
... ...
@@ -171,13 +170,13 @@
171 170
    {
172 171
      colors[i%colors.size()]=c;
173 172
    }
174
    ///Add a new color to the end of the color list.
173
    ///Adds a new color to the end of the color list.
175 174
    void add(const Color &c) 
176 175
    {
177 176
      colors.push_back(c);
178 177
    }
179 178

	
180
    ///Sets the number of the exiting colors.
179
    ///Sets the number of the existing colors.
181 180
    void resize(int s) { colors.resize(s);}
182 181
    ///Returns the number of the existing colors.
183 182
    int size() const { return int(colors.size());}
Show white space 6 line context
... ...
@@ -63,7 +63,7 @@
63 63
  
64 64
///Default traits class of \ref GraphToEps
65 65

	
66
///Default traits class of \ref GraphToEps
66
///Default traits class of \ref GraphToEps.
67 67
///
68 68
///\c G is the type of the underlying graph.
69 69
template<class G>
... ...
@@ -140,12 +140,11 @@
140 140
  ///Constructor
141 141

	
142 142
  ///Constructor
143
  ///\param _g is a reference to the graph to be printed
144
  ///\param _os is a reference to the output stream.
145
  ///\param _os is a reference to the output stream.
143
  ///\param _g  Reference to the graph to be printed.
144
  ///\param _os Reference to the output stream.
145
  ///\param _os Reference to the output stream. By default it is <tt>std::cout</tt>.
146 146
  ///\param _pros If it is \c true, then the \c ostream referenced by \c _os
147 147
  ///will be explicitly deallocated by the destructor.
148
  ///By default it is <tt>std::cout</tt>
149 148
  DefaultGraphToEpsTraits(const G &_g,std::ostream& _os=std::cout,
150 149
			  bool _pros=false) :
151 150
    g(_g), os(_os),
... ...
@@ -173,7 +172,9 @@
173 172

	
174 173
///Auxiliary class to implement the named parameters of \ref graphToEps()
175 174

	
176
///Auxiliary class to implement the named parameters of \ref graphToEps()
175
///Auxiliary class to implement the named parameters of \ref graphToEps().
176
///
177
///For detailed examples see the \ref graph_to_eps_demo.cc demo file.
177 178
template<class T> class GraphToEps : public T 
178 179
{
179 180
  // Can't believe it is required by the C++ standard
... ...
@@ -258,7 +259,7 @@
258 259
public:
259 260
  ///Node shapes
260 261

	
261
  ///Node shapes
262
  ///Node shapes.
262 263
  ///
263 264
  enum NodeShapes { 
264 265
    /// = 0
... ...
@@ -335,7 +336,7 @@
335 336
  ///Sets the map of the node coordinates
336 337

	
337 338
  ///Sets the map of the node coordinates.
338
  ///\param x must be a node map with dim2::Point<double> or
339
  ///\param x must be a node map with \ref dim2::Point "dim2::Point<double>" or
339 340
  ///\ref dim2::Point "dim2::Point<int>" values. 
340 341
  template<class X> GraphToEps<CoordsTraits<X> > coords(const X &x) {
341 342
    dontPrint=true;
... ...
@@ -347,7 +348,7 @@
347 348
  };
348 349
  ///Sets the map of the node sizes
349 350

	
350
  ///Sets the map of the node sizes
351
  ///Sets the map of the node sizes.
351 352
  ///\param x must be a node map with \c double (or convertible) values. 
352 353
  template<class X> GraphToEps<NodeSizesTraits<X> > nodeSizes(const X &x)
353 354
  {
... ...
@@ -376,9 +377,9 @@
376 377
  };
377 378
  ///Sets the text printed on the nodes
378 379

	
379
  ///Sets the text printed on the nodes
380
  ///Sets the text printed on the nodes.
380 381
  ///\param x must be a node map with type that can be pushed to a standard
381
  ///ostream. 
382
  ///\c ostream. 
382 383
  template<class X> GraphToEps<NodeTextsTraits<X> > nodeTexts(const X &x)
383 384
  {
384 385
    dontPrint=true;
... ...
@@ -393,14 +394,14 @@
393 394

	
394 395
  ///With this command it is possible to insert a verbatim PostScript
395 396
  ///block to the nodes.
396
  ///The PS current point will be moved to the centre of the node before
397
  ///The PS current point will be moved to the center of the node before
397 398
  ///the PostScript block inserted.
398 399
  ///
399 400
  ///Before and after the block a newline character is inserted so you
400 401
  ///don't have to bother with the separators.
401 402
  ///
402 403
  ///\param x must be a node map with type that can be pushed to a standard
403
  ///ostream.
404
  ///\c ostream.
404 405
  ///
405 406
  ///\sa nodePsTextsPreamble()
406 407
  template<class X> GraphToEps<NodePsTextsTraits<X> > nodePsTexts(const X &x)
... ...
@@ -415,7 +416,7 @@
415 416
  };
416 417
  ///Sets the map of the arc widths
417 418

	
418
  ///Sets the map of the arc widths
419
  ///Sets the map of the arc widths.
419 420
  ///\param x must be an arc map with \c double (or convertible) values. 
420 421
  template<class X> GraphToEps<ArcWidthsTraits<X> > arcWidths(const X &x)
421 422
  {
... ...
@@ -429,7 +430,7 @@
429 430
  };
430 431
  ///Sets the map of the node colors
431 432

	
432
  ///Sets the map of the node colors
433
  ///Sets the map of the node colors.
433 434
  ///\param x must be a node map with \ref Color values.
434 435
  ///
435 436
  ///\sa Palette
... ...
@@ -445,7 +446,7 @@
445 446
  };
446 447
  ///Sets the map of the node text colors
447 448

	
448
  ///Sets the map of the node text colors
449
  ///Sets the map of the node text colors.
449 450
  ///\param x must be a node map with \ref Color values. 
450 451
  ///
451 452
  ///\sa Palette
... ...
@@ -463,7 +464,7 @@
463 464
  };
464 465
  ///Sets the map of the arc colors
465 466

	
466
  ///Sets the map of the arc colors
467
  ///Sets the map of the arc colors.
467 468
  ///\param x must be an arc map with \ref Color values. 
468 469
  ///
469 470
  ///\sa Palette
... ...
@@ -487,9 +488,9 @@
487 488
  /// \sa nodeSizes()
488 489
  /// \sa autoNodeScale()
489 490
  GraphToEps<T> &nodeScale(double d=.01) {_nodeScale=d;return *this;}
490
  ///Turns on/off the automatic node width scaling.
491
  ///Turns on/off the automatic node size scaling.
491 492

	
492
  ///Turns on/off the automatic node width scaling.
493
  ///Turns on/off the automatic node size scaling.
493 494
  ///
494 495
  ///\sa nodeScale()
495 496
  ///
... ...
@@ -497,9 +498,9 @@
497 498
    _autoNodeScale=b;return *this;
498 499
  }
499 500

	
500
  ///Turns on/off the absolutematic node width scaling.
501
  ///Turns on/off the absolutematic node size scaling.
501 502

	
502
  ///Turns on/off the absolutematic node width scaling.
503
  ///Turns on/off the absolutematic node size scaling.
503 504
  ///
504 505
  ///\sa nodeScale()
505 506
  ///
... ...
@@ -508,9 +509,6 @@
508 509
  }
509 510

	
510 511
  ///Negates the Y coordinates.
511

	
512
  ///Negates the Y coordinates.
513
  ///
514 512
  GraphToEps<T> &negateY(bool b=true) {
515 513
    _negY=b;return *this;
516 514
  }
... ...
@@ -557,86 +555,47 @@
557 555
    _absoluteArcWidths=b;return *this;
558 556
  }
559 557
  ///Sets a global scale factor for the whole picture
560

	
561
  ///Sets a global scale factor for the whole picture
562
  ///
563

	
564 558
  GraphToEps<T> &scale(double d) {_scale=d;return *this;}
565 559
  ///Sets the width of the border around the picture
566

	
567
  ///Sets the width of the border around the picture
568
  ///
569 560
  GraphToEps<T> &border(double b=10) {_xBorder=_yBorder=b;return *this;}
570 561
  ///Sets the width of the border around the picture
571

	
572
  ///Sets the width of the border around the picture
573
  ///
574 562
  GraphToEps<T> &border(double x, double y) {
575 563
    _xBorder=x;_yBorder=y;return *this;
576 564
  }
577 565
  ///Sets whether to draw arrows
578

	
579
  ///Sets whether to draw arrows
580
  ///
581 566
  GraphToEps<T> &drawArrows(bool b=true) {_drawArrows=b;return *this;}
582 567
  ///Sets the length of the arrowheads
583

	
584
  ///Sets the length of the arrowheads
585
  ///
586 568
  GraphToEps<T> &arrowLength(double d=1.0) {_arrowLength*=d;return *this;}
587 569
  ///Sets the width of the arrowheads
588

	
589
  ///Sets the width of the arrowheads
590
  ///
591 570
  GraphToEps<T> &arrowWidth(double d=.3) {_arrowWidth*=d;return *this;}
592 571
  
593 572
  ///Scales the drawing to fit to A4 page
594

	
595
  ///Scales the drawing to fit to A4 page
596
  ///
597 573
  GraphToEps<T> &scaleToA4() {_scaleToA4=true;return *this;}
598 574
  
599 575
  ///Enables parallel arcs
600

	
601
  ///Enables parallel arcs
602 576
  GraphToEps<T> &enableParallel(bool b=true) {_enableParallel=b;return *this;}
603 577
  
604
  ///Sets the distance 
605
  
606
  ///Sets the distance 
607
  ///
578
  ///Sets the distance between parallel arcs
608 579
  GraphToEps<T> &parArcDist(double d) {_parArcDist*=d;return *this;}
609 580
  
610 581
  ///Hides the arcs
611
  
612
  ///Hides the arcs
613
  ///
614 582
  GraphToEps<T> &hideArcs(bool b=true) {_showArcs=!b;return *this;}
615 583
  ///Hides the nodes
616
  
617
  ///Hides the nodes
618
  ///
619 584
  GraphToEps<T> &hideNodes(bool b=true) {_showNodes=!b;return *this;}
620 585
  
621 586
  ///Sets the size of the node texts
622
  
623
  ///Sets the size of the node texts
624
  ///
625 587
  GraphToEps<T> &nodeTextSize(double d) {_nodeTextSize=d;return *this;}
626 588

	
627 589
  ///Sets the color of the node texts to be different from the node color
628 590

	
629 591
  ///Sets the color of the node texts to be as different from the node color
630
  ///as it is possible
631
  ///
592
  ///as it is possible.
632 593
  GraphToEps<T> &distantColorNodeTexts()
633 594
  {_nodeTextColorType=DIST_COL;return *this;}
634 595
  ///Sets the color of the node texts to be black or white and always visible.
635 596

	
636 597
  ///Sets the color of the node texts to be black or white according to
637
  ///which is more 
638
  ///different from the node color
639
  ///
598
  ///which is more different from the node color.
640 599
  GraphToEps<T> &distantBWNodeTexts()
641 600
  {_nodeTextColorType=DIST_BW;return *this;}
642 601

	
... ...
@@ -648,18 +607,18 @@
648 607
  GraphToEps<T> & nodePsTextsPreamble(const char *str) {
649 608
    _nodePsTextsPreamble=str ;return *this;
650 609
  }
651
  ///Sets whether the the graph is undirected
610
  ///Sets whether the graph is undirected
652 611

	
653
  ///Sets whether the the graph is undirected.
612
  ///Sets whether the graph is undirected.
654 613
  ///
655 614
  ///This setting is the default for undirected graphs.
656 615
  ///
657 616
  ///\sa directed()
658 617
   GraphToEps<T> &undirected(bool b=true) {_undirected=b;return *this;}
659 618

	
660
  ///Sets whether the the graph is directed
619
  ///Sets whether the graph is directed
661 620

	
662
  ///Sets whether the the graph is directed.
621
  ///Sets whether the graph is directed.
663 622
  ///Use it to show the edges as a pair of directed ones.
664 623
  ///
665 624
  ///This setting is the default for digraphs.
... ...
@@ -716,7 +675,6 @@
716 675
    os << "%!PS-Adobe-2.0 EPSF-2.0\n";
717 676
    if(_title.size()>0) os << "%%Title: " << _title << '\n';
718 677
     if(_copyright.size()>0) os << "%%Copyright: " << _copyright << '\n';
719
//        << "%%Copyright: XXXX\n"
720 678
    os << "%%Creator: LEMON, graphToEps()\n";
721 679

	
722 680
    {    
... ...
@@ -748,7 +706,7 @@
748 706
      double max_w=0;
749 707
      for(ArcIt e(g);e!=INVALID;++e)
750 708
	max_w=std::max(double(_arcWidths[e]),max_w);
751
      ///\todo better 'epsilon' would be nice here.
709
      //\todo better 'epsilon' would be nice here.
752 710
      if(max_w>EPSILON) {
753 711
	_arcWidthScale/=max_w;
754 712
      }
... ...
@@ -758,7 +716,7 @@
758 716
      double max_s=0;
759 717
      for(NodeIt n(g);n!=INVALID;++n)
760 718
	max_s=std::max(double(_nodeSizes[n]),max_s);
761
      ///\todo better 'epsilon' would be nice here.
719
      //\todo better 'epsilon' would be nice here.
762 720
      if(max_s>EPSILON) {
763 721
	_nodeScale/=max_s;
764 722
      }
... ...
@@ -1114,18 +1072,12 @@
1114 1072
  ///@{
1115 1073

	
1116 1074
  ///An alias for arcWidths()
1117

	
1118
  ///An alias for arcWidths()
1119
  ///
1120 1075
  template<class X> GraphToEps<ArcWidthsTraits<X> > edgeWidths(const X &x)
1121 1076
  {
1122 1077
    return arcWidths(x);
1123 1078
  }
1124 1079

	
1125 1080
  ///An alias for arcColors()
1126

	
1127
  ///An alias for arcColors()
1128
  ///
1129 1081
  template<class X> GraphToEps<ArcColorsTraits<X> >
1130 1082
  edgeColors(const X &x)
1131 1083
  {
... ...
@@ -1133,39 +1085,24 @@
1133 1085
  }
1134 1086

	
1135 1087
  ///An alias for arcWidthScale()
1136

	
1137
  ///An alias for arcWidthScale()
1138
  ///
1139 1088
  GraphToEps<T> &edgeWidthScale(double d) {return arcWidthScale(d);}
1140 1089

	
1141 1090
  ///An alias for autoArcWidthScale()
1142

	
1143
  ///An alias for autoArcWidthScale()
1144
  ///
1145 1091
  GraphToEps<T> &autoEdgeWidthScale(bool b=true)
1146 1092
  {
1147 1093
    return autoArcWidthScale(b);
1148 1094
  }
1149 1095
  
1150 1096
  ///An alias for absoluteArcWidths()
1151

	
1152
  ///An alias for absoluteArcWidths()
1153
  ///
1154 1097
  GraphToEps<T> &absoluteEdgeWidths(bool b=true)
1155 1098
  {
1156 1099
    return absoluteArcWidths(b);
1157 1100
  }
1158 1101
  
1159 1102
  ///An alias for parArcDist()
1160

	
1161
  ///An alias for parArcDist()
1162
  ///
1163 1103
  GraphToEps<T> &parEdgeDist(double d) {return parArcDist(d);}
1164 1104
  
1165 1105
  ///An alias for hideArcs()
1166
  
1167
  ///An alias for hideArcs()
1168
  ///
1169 1106
  GraphToEps<T> &hideEdges(bool b=true) {return hideArcs(b);}
1170 1107

	
1171 1108
  ///@}
... ...
@@ -1185,9 +1122,9 @@
1185 1122

	
1186 1123
///\ingroup eps_io
1187 1124
///Generates an EPS file from a graph.
1188
///\param g is a reference to the graph to be printed
1189
///\param os is a reference to the output stream.
1190
///By default it is <tt>std::cout</tt>
1125
///\param g Reference to the graph to be printed.
1126
///\param os Reference to the output stream.
1127
///By default it is <tt>std::cout</tt>.
1191 1128
///
1192 1129
///This function also has a lot of
1193 1130
///\ref named-templ-func-param "named parameters",
... ...
@@ -1198,6 +1135,9 @@
1198 1135
///              .nodeScale(2).nodeSizes(sizes)
1199 1136
///              .arcWidthScale(.4).run();
1200 1137
///\endcode
1138
///
1139
///For more detailed examples see the \ref graph_to_eps_demo.cc demo file.
1140
///
1201 1141
///\warning Don't forget to put the \ref GraphToEps::run() "run()"
1202 1142
///to the end of the parameter list.
1203 1143
///\sa GraphToEps
0 comments (0 inline)