X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fcolor.cpp;h=576b212a35449bfc748942d3a62aaf0c2ec822dc;hb=241290ec883794d1579593182b337277f6ef5182;hp=7df6106e423c3cdf9407a3e88e448ce6253ac22c;hpb=e9904990d49499270dfe26a9ae85178a456b30aa;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/color.cpp b/synfig-core/trunk/src/synfig/color.cpp index 7df6106..576b212 100644 --- a/synfig-core/trunk/src/synfig/color.cpp +++ b/synfig-core/trunk/src/synfig/color.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #endif @@ -47,8 +48,6 @@ using namespace std; /* === G L O B A L S ======================================================= */ -String Color::hex_; - /* === P R O C E D U R E S ================================================= */ /* === M E T H O D S ======================================================= */ @@ -84,7 +83,12 @@ Color::set_hex(String& hex) value_type r, g, b; try { - if (hex.size() == 3) + if (hex.size() == 1) + { + r = hex2real(hex.substr(0,1)+hex.substr(0,1)); + r_ = g_ = b_ = r; + } + else if (hex.size() == 3) { r = hex2real(hex.substr(0,1)+hex.substr(0,1)); g = hex2real(hex.substr(1,1)+hex.substr(1,1)); @@ -106,6 +110,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 @@ -371,7 +383,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 neglegable. There is a reason why we use COLOR_EPSILON--we + // really negligible. There is a reason why we use COLOR_EPSILON--we // want the change to be imperceptable. b.set_r(((b.get_r()/(a.get_r()+COLOR_EPSILON))-b.get_r())*(amount)+b.get_r());