diff -r bd88ea06ab69 -r 9a59a6cacfd9 lemon/graph_to_eps.h --- a/lemon/graph_to_eps.h Mon Feb 20 06:38:18 2006 +0000 +++ b/lemon/graph_to_eps.h Mon Feb 20 06:41:12 2006 +0000 @@ -33,6 +33,7 @@ #include #include #include +#include #include @@ -44,133 +45,6 @@ namespace lemon { -///Data structure representing RGB colors. - -///Data structure representing RGB colors. -///\ingroup misc -class Color -{ - double _r,_g,_b; -public: - ///Default constructor - Color() {} - ///Constructor - Color(double r,double g,double b) :_r(r),_g(g),_b(b) {}; - ///Returns the red component - double & red() {return _r;} - ///Returns the red component - const double & red() const {return _r;} - ///Returns the green component - double & green() {return _g;} - ///Returns the green component - const double & green() const {return _g;} - ///Returns the blue component - double & blue() {return _b;} - ///Returns the blue component - const double & blue() const {return _b;} - ///Set the color components - void set(double r,double g,double b) { _r=r;_g=g;_b=b; }; -}; - -///Maps ints to different \ref Color "Color"s - -///This map assigns one of the predefined \ref Color "Color"s -///to each int. It is possible to change the colors as well as their -///number. The integer range is cyclically mapped to the provided set of colors. -/// -///This is a true \ref concept::ReferenceMap "reference map", so you can also -///change the actual colors. - -class ColorSet : public MapBase -{ - std::vector colors; -public: - ///Constructor - - ///Constructor - ///\param have_white indicates whether white is - ///amongst the provided color (\c true) or not (\c false). If it is true, - ///white will be assigned to \c 0. - ///\param num the number of the allocated colors. If it is \c 0 - ///the default color configuration is set up (26 color plus the while). - ///If \c num is less then 26/27 then the default color list is cut. Otherwise - ///the color list is filled repeatedly with the default color list. - ///(The colors can be changed later on.) - ColorSet(bool have_white=false,int num=0) - { - do { - if(have_white) colors.push_back(Color(1,1,1)); - - colors.push_back(Color(0,0,0)); - colors.push_back(Color(1,0,0)); - colors.push_back(Color(0,1,0)); - colors.push_back(Color(0,0,1)); - colors.push_back(Color(1,1,0)); - colors.push_back(Color(1,0,1)); - colors.push_back(Color(0,1,1)); - - colors.push_back(Color(.5,0,0)); - colors.push_back(Color(0,.5,0)); - colors.push_back(Color(0,0,.5)); - colors.push_back(Color(.5,.5,0)); - colors.push_back(Color(.5,0,.5)); - colors.push_back(Color(0,.5,.5)); - - colors.push_back(Color(.5,.5,.5)); - colors.push_back(Color(1,.5,.5)); - colors.push_back(Color(.5,1,.5)); - colors.push_back(Color(.5,.5,1)); - colors.push_back(Color(1,1,.5)); - colors.push_back(Color(1,.5,1)); - colors.push_back(Color(.5,1,1)); - - colors.push_back(Color(1,.5,0)); - colors.push_back(Color(.5,1,0)); - colors.push_back(Color(1,0,.5)); - colors.push_back(Color(0,1,.5)); - colors.push_back(Color(0,.5,1)); - colors.push_back(Color(.5,0,1)); - } while(int(colors.size())0) colors.resize(num); - } - ///\e - Color &operator[](int i) - { - return colors[i%colors.size()]; - } - ///\e - const Color &operator[](int i) const - { - return colors[i%colors.size()]; - } - ///\e - void set(int i,const Color &c) - { - colors[i%colors.size()]=c; - } - ///Sets the number of the exiting colors. - void resize(int s) { colors.resize(s);} - ///Returns the number of the existing colors. - std::size_t size() const { return colors.size();} -}; - -///Returns a visible distinct \ref Color - -///Returns a \ref Color which is as different from the given parameter -///as it is possible. -inline Color distantColor(const Color &c) -{ - return Color(c.red()<.5?1:0,c.green()<.5?1:0,c.blue()<.5?1:0); -} -///Returns black for light colors and white for the dark ones. - -///Returns black for light colors and white for the dark ones. -inline Color distantBW(const Color &c){ - double v=(.2125*c.red()+.7154*c.green()+.0721*c.blue())<.5?1:0; - return Color(v,v,v); -} - template class _NegY { public: