# HG changeset patch # User jwe # Date 1177451061 0 # Node ID 9520d1004a7319eb11e8009abb508523bd23370e # Parent e82cb026b89391bd2d8323fa15582bb697f1983b [project @ 2007-04-24 21:44:21 by jwe] diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2007-04-24 Shai Ayal + + * graphics.cc (color_property): Eliminate alpha channel from RGB + color spec. + 2007-04-23 Shai Ayal * src/graphics.cc (color_property::color_property): diff --git a/src/graphics.cc b/src/graphics.cc --- a/src/graphics.cc +++ b/src/graphics.cc @@ -63,19 +63,18 @@ class color_property { public: - color_property (double r = 0, double g = 0, double b = 1, double a = 1) + color_property (double r = 0, double g = 0, double b = 1) { - xrgba[0] = r; - xrgba[1] = g; - xrgba[2] = b; - xrgba[3] = a; + xrgb[0] = r; + xrgb[1] = g; + xrgb[2] = b; validate (); } color_property (char c) { - c2rgba (c); + c2rgb (c); } color_property (const octave_value& val) @@ -84,10 +83,10 @@ Matrix m = val.matrix_value (); - if (! error_state && m.numel () >= 3 && m.numel () <= 4) + if (! error_state && m.numel () == 3) { for (int i = 0; i < m.numel (); i++) - xrgba[i] = m(i); + xrgb[i] = m(i); validate (); } @@ -96,7 +95,7 @@ std::string c = val.string_value (); if (! error_state && c.length () == 1) - c2rgba (c[0]); + c2rgb (c[0]); else error ("invalid color specification"); } @@ -104,9 +103,9 @@ void validate (void) const { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 3; i++) { - if (xrgba[i] < 0 || xrgba[i] > 1) + if (xrgb[i] < 0 || xrgb[i] > 1) { error ("invalid RGB color specification"); break; @@ -119,51 +118,51 @@ Matrix retval (1, 3); for (int i = 0; i < 3 ; i++) - retval(i) = xrgba[i]; + retval(i) = xrgb[i]; return retval; } - const double* rgba (void) const + const double* rgb (void) const { - return xrgba; + return xrgb; } private: - double xrgba[4]; - - void c2rgba (char c) + double xrgb[3]; + + void c2rgb (char c) { - double tmp_rgba[4] = {0,0,0,1}; + double tmp_rgb[4] = {0, 0, 0}; switch(c) { case 'r': - tmp_rgba[0] = 1; + tmp_rgb[0] = 1; break; case 'g': - tmp_rgba[1] = 1; + tmp_rgb[1] = 1; break; case 'b': - tmp_rgba[2] = 1; + tmp_rgb[2] = 1; break; case 'c': - tmp_rgba[1] = tmp_rgba[2] = 1; + tmp_rgb[1] = tmp_rgb[2] = 1; break; case 'm': - tmp_rgba[0] = tmp_rgba[2] = 1; + tmp_rgb[0] = tmp_rgb[2] = 1; break; case 'y': - tmp_rgba[0] = tmp_rgba[1] = 1; + tmp_rgb[0] = tmp_rgb[1] = 1; break; case 'w': - tmp_rgba[0] = tmp_rgba[1] = tmp_rgba[2] = 1; + tmp_rgb[0] = tmp_rgb[1] = tmp_rgb[2] = 1; break; default: @@ -173,7 +172,7 @@ if (! error_state) { for (int i = 0; i < 4; i++) - xrgba[i] = tmp_rgba[i]; + xrgb[i] = tmp_rgb[i]; } } };