X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fcolor.cpp;h=81be9ebd838ad998ce2a603076c35eb71db38e9b;hb=82f8b521a55c8985cd0189c9c71940a7312eccaa;hp=3305eb45f517f1b1ee4a61d74603ab2440551e9c;hpb=215f2742c34cedf77a8cd0ffdef8f8b6e95efdfe;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/color.cpp b/synfig-core/trunk/src/synfig/color.cpp index 3305eb4..81be9eb 100644 --- a/synfig-core/trunk/src/synfig/color.cpp +++ b/synfig-core/trunk/src/synfig/color.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -34,6 +35,7 @@ #include #include #include +#include #endif @@ -109,6 +111,14 @@ Color::set_hex(String& hex) } } +const String +Color::get_string(void)const +{ + std::ostringstream o; + o << std::fixed << std::setprecision(3) << "#" << get_hex() << " : " << std::setw(6) << a_; + return String(o.str().c_str()); +} + #if 0 Color& Color::rotate_uv(const Angle& theta)const @@ -375,7 +385,7 @@ blendfunc_DIVIDE(Color &a,Color &b,float amount) // We add COLOR_EPSILON in order to avoid a divide-by-zero condition. // This causes DIVIDE to bias toward positive values, but the effect is // really negligible. There is a reason why we use COLOR_EPSILON--we - // want the change to be imperceptable. + // want the change to be imperceptible. b.set_r(((b.get_r()/(a.get_r()+COLOR_EPSILON))-b.get_r())*(amount)+b.get_r()); b.set_g(((b.get_g()/(a.get_g()+COLOR_EPSILON))-b.get_g())*(amount)+b.get_g()); @@ -419,7 +429,7 @@ blendfunc_LUMINANCE(Color &a,Color &b,float amount) static Color blendfunc_BEHIND(Color &a,Color &b,float amount) { - if(a.get_a()==0)a.set_a(COLOR_EPSILON); //!< \hack + if(a.get_a()==0)a.set_a(COLOR_EPSILON); //!< \todo this is a hack a.set_a(a.get_a()*amount); return blendfunc_COMPOSITE(b,a,1.0); }