From 8d7e8ce2464bf9e42aa0cbb6a793b638f045f3a4 Mon Sep 17 00:00:00 2001 From: Marco Biasini <marco.biasini@unibas.ch> Date: Thu, 28 Oct 2010 15:35:16 +0200 Subject: [PATCH] remove tabs; reindent and add missing DLLEXPORT --- modules/gfx/src/color.cc | 176 +++++++++++++++++++-------------------- modules/gfx/src/color.hh | 4 +- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/modules/gfx/src/color.cc b/modules/gfx/src/color.cc index a1de8265e..4b0c2f785 100644 --- a/modules/gfx/src/color.cc +++ b/modules/gfx/src/color.cc @@ -26,97 +26,97 @@ namespace ost { namespace gfx { - namespace { - // maps hsv to rgb (0-1) - geom::Vec3 HSVtoRGB(const geom::Vec3& hsv) - { - geom::Vec3 rgb; - if (hsv[1]<1e-9){ - rgb[0]=hsv[2]; - rgb[1]=hsv[2]; - rgb[2]=hsv[2]; - } else { - double var_h=hsv[0]*6.0<6.0?hsv[0]*6.0:0.0; - int var_i =static_cast<int>(var_h); - double var_1 = hsv[2]*(1-hsv[1]); - double var_2 = hsv[2]*(1-hsv[1]*( var_h -var_i)); - double var_3 = hsv[2]*(1-hsv[1]*(1-(var_h-var_i))); - switch(var_i){ - case 0: - rgb[0]=hsv[2]; - rgb[1]=var_3; - rgb[2]=var_1; - break; - case 1: - rgb[0] = var_2; - rgb[1] = hsv[2]; - rgb[2] = var_1; - break; - case 2: - rgb[0] = var_1; - rgb[1] = hsv[2]; - rgb[2] = var_3; - break; - case 3: - rgb[0] = var_1 ; - rgb[1] = var_2 ; - rgb[2] = hsv[2]; - break; - case 4: - rgb[0] = var_3 ; - rgb[1] = var_1 ; - rgb[2] = hsv[2]; - break; - case 5: - rgb[0] = hsv[2] ; - rgb[1] = var_1 ; - rgb[2] = var_2; - break; - } - } - return rgb; +namespace { +// maps hsv to rgb (0-1) +geom::Vec3 HSVtoRGB(const geom::Vec3& hsv) +{ + geom::Vec3 rgb; + if (hsv[1]<1e-9){ + rgb[0]=hsv[2]; + rgb[1]=hsv[2]; + rgb[2]=hsv[2]; + } else { + double var_h=hsv[0]*6.0<6.0?hsv[0]*6.0:0.0; + int var_i =static_cast<int>(var_h); + double var_1 = hsv[2]*(1-hsv[1]); + double var_2 = hsv[2]*(1-hsv[1]*( var_h -var_i)); + double var_3 = hsv[2]*(1-hsv[1]*(1-(var_h-var_i))); + switch(var_i){ + case 0: + rgb[0]=hsv[2]; + rgb[1]=var_3; + rgb[2]=var_1; + break; + case 1: + rgb[0] = var_2; + rgb[1] = hsv[2]; + rgb[2] = var_1; + break; + case 2: + rgb[0] = var_1; + rgb[1] = hsv[2]; + rgb[2] = var_3; + break; + case 3: + rgb[0] = var_1 ; + rgb[1] = var_2 ; + rgb[2] = hsv[2]; + break; + case 4: + rgb[0] = var_3 ; + rgb[1] = var_1 ; + rgb[2] = hsv[2]; + break; + case 5: + rgb[0] = hsv[2]; + rgb[1] = var_1 ; + rgb[2] = var_2; + break; } + } + return rgb; +} - // maps rgb (0-1) to hsv - geom::Vec3 RGBtoHSV(const geom::Vec3& rgb) - { - geom::Vec3 hsv; - double var_R = ( rgb[0] / 255.0 ); - double var_G = ( rgb[1] / 255.0 ); - double var_B = ( rgb[2] / 255.0 ); - - double var_Min = std::min(std::min( var_R, var_G), var_B ); - double var_Max = std::max(std::max( var_R, var_G), var_B ); - double del_Max = var_Max - var_Min; - - hsv[2] = var_Max; - - if ( del_Max < 1.0e-9 ){ - hsv[0] = 0.0; - hsv[1] = 0.0; - } else { - hsv[1] = del_Max / var_Max; - double del_R = ( ( ( var_Max - var_R ) / 6.0 ) + ( del_Max / 2.0 ) ) / del_Max; - double del_G = ( ( ( var_Max - var_G ) / 6.0 ) + ( del_Max / 2.0 ) ) / del_Max; - double del_B = ( ( ( var_Max - var_B ) / 6.0 ) + ( del_Max / 2.0 ) ) / del_Max; - - if ( var_R == var_Max ){ - hsv[0] = del_B - del_G; - } else if ( var_G == var_Max ){ - hsv[0] = ( 1.0 / 3.0 ) + del_R - del_B; - } else if ( var_B == var_Max ){ - hsv[0] = ( 2.0 / 3.0 ) + del_G - del_R; - } - if ( hsv[0] < 0 ){ - hsv[0] += 1; - } - if ( hsv[0] > 1 ){ - hsv[0] -= 1; - } - } - return hsv; +// maps rgb (0-1) to hsv +geom::Vec3 RGBtoHSV(const geom::Vec3& rgb) +{ + geom::Vec3 hsv; + double var_R = ( rgb[0] / 255.0 ); + double var_G = ( rgb[1] / 255.0 ); + double var_B = ( rgb[2] / 255.0 ); + + double var_Min = std::min(std::min( var_R, var_G), var_B ); + double var_Max = std::max(std::max( var_R, var_G), var_B ); + double del_Max = var_Max - var_Min; + + hsv[2] = var_Max; + + if ( del_Max < 1.0e-9 ){ + hsv[0] = 0.0; + hsv[1] = 0.0; + } else { + hsv[1] = del_Max / var_Max; + double del_R = ( ( ( var_Max - var_R ) / 6.0 ) + ( del_Max / 2.0 ) ) / del_Max; + double del_G = ( ( ( var_Max - var_G ) / 6.0 ) + ( del_Max / 2.0 ) ) / del_Max; + double del_B = ( ( ( var_Max - var_B ) / 6.0 ) + ( del_Max / 2.0 ) ) / del_Max; + + if ( var_R == var_Max ){ + hsv[0] = del_B - del_G; + } else if ( var_G == var_Max ){ + hsv[0] = ( 1.0 / 3.0 ) + del_R - del_B; + } else if ( var_B == var_Max ){ + hsv[0] = ( 2.0 / 3.0 ) + del_G - del_R; } - } // anon ns + if ( hsv[0] < 0 ){ + hsv[0] += 1; + } + if ( hsv[0] > 1 ){ + hsv[0] -= 1; + } + } + return hsv; +} +} // anon ns geom::Vec3 Color::ToHSV() { diff --git a/modules/gfx/src/color.hh b/modules/gfx/src/color.hh index 6592311f6..9357a1687 100644 --- a/modules/gfx/src/color.hh +++ b/modules/gfx/src/color.hh @@ -65,7 +65,7 @@ public: unsigned char b, unsigned char a = 0xff) { static float f=1.0/255.0; return Color(f*static_cast<float>(r),f*static_cast<float>(g), - f*static_cast<float>(b),f*static_cast<float>(a)); + f*static_cast<float>(b),f*static_cast<float>(a)); } geom::Vec3 ToHSV(); @@ -85,7 +85,7 @@ private: float rgba[4]; }; -Color HSV(double h, double s, double v); +Color DLLEXPORT_OST_GFX HSV(double h, double s, double v); DLLEXPORT_OST_GFX std::ostream& operator<<(std::ostream&, const Color& c); -- GitLab