COIN-OR::LEMON - Graph Library

Changeset 206:4e22275a2b52 in lemon for lemon/graph_to_eps.h


Ignore:
Timestamp:
07/13/08 17:34:27 (11 years ago)
Author:
Peter Kovacs <kpeter@…>
Branch:
default
Phase:
public
Message:

Improvements related to graphToEps()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/graph_to_eps.h

    r184 r206  
    6464///Default traits class of \ref GraphToEps
    6565
    66 ///Default traits class of \ref GraphToEps
     66///Default traits class of \ref GraphToEps.
    6767///
    6868///\c G is the type of the underlying graph.
     
    141141
    142142  ///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>.
    146146  ///\param _pros If it is \c true, then the \c ostream referenced by \c _os
    147147  ///will be explicitly deallocated by the destructor.
    148   ///By default it is <tt>std::cout</tt>
    149148  DefaultGraphToEpsTraits(const G &_g,std::ostream& _os=std::cout,
    150149                          bool _pros=false) :
     
    174173///Auxiliary class to implement the named parameters of \ref graphToEps()
    175174
    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.
    177178template<class T> class GraphToEps : public T
    178179{
     
    259260  ///Node shapes
    260261
    261   ///Node shapes
     262  ///Node shapes.
    262263  ///
    263264  enum NodeShapes {
     
    336337
    337338  ///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
    339340  ///\ref dim2::Point "dim2::Point<int>" values.
    340341  template<class X> GraphToEps<CoordsTraits<X> > coords(const X &x) {
     
    348349  ///Sets the map of the node sizes
    349350
    350   ///Sets the map of the node sizes
     351  ///Sets the map of the node sizes.
    351352  ///\param x must be a node map with \c double (or convertible) values.
    352353  template<class X> GraphToEps<NodeSizesTraits<X> > nodeSizes(const X &x)
     
    377378  ///Sets the text printed on the nodes
    378379
    379   ///Sets the text printed on the nodes
     380  ///Sets the text printed on the nodes.
    380381  ///\param x must be a node map with type that can be pushed to a standard
    381   ///ostream.
     382  ///\c ostream.
    382383  template<class X> GraphToEps<NodeTextsTraits<X> > nodeTexts(const X &x)
    383384  {
     
    394395  ///With this command it is possible to insert a verbatim PostScript
    395396  ///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
    397398  ///the PostScript block inserted.
    398399  ///
     
    401402  ///
    402403  ///\param x must be a node map with type that can be pushed to a standard
    403   ///ostream.
     404  ///\c ostream.
    404405  ///
    405406  ///\sa nodePsTextsPreamble()
     
    416417  ///Sets the map of the arc widths
    417418
    418   ///Sets the map of the arc widths
     419  ///Sets the map of the arc widths.
    419420  ///\param x must be an arc map with \c double (or convertible) values.
    420421  template<class X> GraphToEps<ArcWidthsTraits<X> > arcWidths(const X &x)
     
    430431  ///Sets the map of the node colors
    431432
    432   ///Sets the map of the node colors
     433  ///Sets the map of the node colors.
    433434  ///\param x must be a node map with \ref Color values.
    434435  ///
     
    446447  ///Sets the map of the node text colors
    447448
    448   ///Sets the map of the node text colors
     449  ///Sets the map of the node text colors.
    449450  ///\param x must be a node map with \ref Color values.
    450451  ///
     
    464465  ///Sets the map of the arc colors
    465466
    466   ///Sets the map of the arc colors
     467  ///Sets the map of the arc colors.
    467468  ///\param x must be an arc map with \ref Color values.
    468469  ///
     
    488489  /// \sa autoNodeScale()
    489490  GraphToEps<T> &nodeScale(double d=.01) {_nodeScale=d;return *this;}
    490   ///Turns on/off the automatic node width scaling.
    491 
    492   ///Turns on/off the automatic node width scaling.
     491  ///Turns on/off the automatic node size scaling.
     492
     493  ///Turns on/off the automatic node size scaling.
    493494  ///
    494495  ///\sa nodeScale()
     
    498499  }
    499500
    500   ///Turns on/off the absolutematic node width scaling.
    501 
    502   ///Turns on/off the absolutematic node width scaling.
     501  ///Turns on/off the absolutematic node size scaling.
     502
     503  ///Turns on/off the absolutematic node size scaling.
    503504  ///
    504505  ///\sa nodeScale()
     
    509510
    510511  ///Negates the Y coordinates.
    511 
    512   ///Negates the Y coordinates.
    513   ///
    514512  GraphToEps<T> &negateY(bool b=true) {
    515513    _negY=b;return *this;
     
    558556  }
    559557  ///Sets a global scale factor for the whole picture
    560 
    561   ///Sets a global scale factor for the whole picture
    562   ///
    563 
    564558  GraphToEps<T> &scale(double d) {_scale=d;return *this;}
    565559  ///Sets the width of the border around the picture
    566 
    567   ///Sets the width of the border around the picture
    568   ///
    569560  GraphToEps<T> &border(double b=10) {_xBorder=_yBorder=b;return *this;}
    570561  ///Sets the width of the border around the picture
    571 
    572   ///Sets the width of the border around the picture
    573   ///
    574562  GraphToEps<T> &border(double x, double y) {
    575563    _xBorder=x;_yBorder=y;return *this;
    576564  }
    577565  ///Sets whether to draw arrows
    578 
    579   ///Sets whether to draw arrows
    580   ///
    581566  GraphToEps<T> &drawArrows(bool b=true) {_drawArrows=b;return *this;}
    582567  ///Sets the length of the arrowheads
    583 
    584   ///Sets the length of the arrowheads
    585   ///
    586568  GraphToEps<T> &arrowLength(double d=1.0) {_arrowLength*=d;return *this;}
    587569  ///Sets the width of the arrowheads
    588 
    589   ///Sets the width of the arrowheads
    590   ///
    591570  GraphToEps<T> &arrowWidth(double d=.3) {_arrowWidth*=d;return *this;}
    592571 
    593572  ///Scales the drawing to fit to A4 page
    594 
    595   ///Scales the drawing to fit to A4 page
    596   ///
    597573  GraphToEps<T> &scaleToA4() {_scaleToA4=true;return *this;}
    598574 
    599   ///Enables parallel arcs
    600 
    601575  ///Enables parallel arcs
    602576  GraphToEps<T> &enableParallel(bool b=true) {_enableParallel=b;return *this;}
    603577 
    604   ///Sets the distance
    605  
    606   ///Sets the distance
    607   ///
     578  ///Sets the distance between parallel arcs
    608579  GraphToEps<T> &parArcDist(double d) {_parArcDist*=d;return *this;}
    609580 
    610581  ///Hides the arcs
    611  
    612   ///Hides the arcs
    613   ///
    614582  GraphToEps<T> &hideArcs(bool b=true) {_showArcs=!b;return *this;}
    615583  ///Hides the nodes
    616  
    617   ///Hides the nodes
    618   ///
    619584  GraphToEps<T> &hideNodes(bool b=true) {_showNodes=!b;return *this;}
    620585 
    621586  ///Sets the size of the node texts
    622  
    623   ///Sets the size of the node texts
    624   ///
    625587  GraphToEps<T> &nodeTextSize(double d) {_nodeTextSize=d;return *this;}
    626588
     
    628590
    629591  ///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.
    632593  GraphToEps<T> &distantColorNodeTexts()
    633594  {_nodeTextColorType=DIST_COL;return *this;}
     
    635596
    636597  ///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.
    640599  GraphToEps<T> &distantBWNodeTexts()
    641600  {_nodeTextColorType=DIST_BW;return *this;}
     
    649608    _nodePsTextsPreamble=str ;return *this;
    650609  }
    651   ///Sets whether the the graph is undirected
    652 
    653   ///Sets whether the the graph is undirected.
     610  ///Sets whether the graph is undirected
     611
     612  ///Sets whether the graph is undirected.
    654613  ///
    655614  ///This setting is the default for undirected graphs.
     
    658617   GraphToEps<T> &undirected(bool b=true) {_undirected=b;return *this;}
    659618
    660   ///Sets whether the the graph is directed
    661 
    662   ///Sets whether the the graph is directed.
     619  ///Sets whether the graph is directed
     620
     621  ///Sets whether the graph is directed.
    663622  ///Use it to show the edges as a pair of directed ones.
    664623  ///
     
    717676    if(_title.size()>0) os << "%%Title: " << _title << '\n';
    718677     if(_copyright.size()>0) os << "%%Copyright: " << _copyright << '\n';
    719 //        << "%%Copyright: XXXX\n"
    720678    os << "%%Creator: LEMON, graphToEps()\n";
    721679
     
    749707      for(ArcIt e(g);e!=INVALID;++e)
    750708        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.
    752710      if(max_w>EPSILON) {
    753711        _arcWidthScale/=max_w;
     
    759717      for(NodeIt n(g);n!=INVALID;++n)
    760718        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.
    762720      if(max_s>EPSILON) {
    763721        _nodeScale/=max_s;
     
    11151073
    11161074  ///An alias for arcWidths()
    1117 
    1118   ///An alias for arcWidths()
    1119   ///
    11201075  template<class X> GraphToEps<ArcWidthsTraits<X> > edgeWidths(const X &x)
    11211076  {
     
    11241079
    11251080  ///An alias for arcColors()
    1126 
    1127   ///An alias for arcColors()
    1128   ///
    11291081  template<class X> GraphToEps<ArcColorsTraits<X> >
    11301082  edgeColors(const X &x)
     
    11341086
    11351087  ///An alias for arcWidthScale()
    1136 
    1137   ///An alias for arcWidthScale()
    1138   ///
    11391088  GraphToEps<T> &edgeWidthScale(double d) {return arcWidthScale(d);}
    11401089
    11411090  ///An alias for autoArcWidthScale()
    1142 
    1143   ///An alias for autoArcWidthScale()
    1144   ///
    11451091  GraphToEps<T> &autoEdgeWidthScale(bool b=true)
    11461092  {
     
    11491095 
    11501096  ///An alias for absoluteArcWidths()
    1151 
    1152   ///An alias for absoluteArcWidths()
    1153   ///
    11541097  GraphToEps<T> &absoluteEdgeWidths(bool b=true)
    11551098  {
     
    11581101 
    11591102  ///An alias for parArcDist()
    1160 
    1161   ///An alias for parArcDist()
    1162   ///
    11631103  GraphToEps<T> &parEdgeDist(double d) {return parArcDist(d);}
    11641104 
    11651105  ///An alias for hideArcs()
    1166  
    1167   ///An alias for hideArcs()
    1168   ///
    11691106  GraphToEps<T> &hideEdges(bool b=true) {return hideArcs(b);}
    11701107
     
    11861123///\ingroup eps_io
    11871124///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>.
    11911128///
    11921129///This function also has a lot of
     
    11991136///              .arcWidthScale(.4).run();
    12001137///\endcode
     1138///
     1139///For more detailed examples see the \ref graph_to_eps_demo.cc demo file.
     1140///
    12011141///\warning Don't forget to put the \ref GraphToEps::run() "run()"
    12021142///to the end of the parameter list.
Note: See TracChangeset for help on using the changeset viewer.