00001 #include "stdafx.h" 00002 #include "color.h" 00003 00004 Color::Color(rgb col) 00005 { 00006 r = (float)col.r; 00007 g = (float)col.g; 00008 b = (float)col.b; 00009 } 00010 00011 Color::Color(float rf, float gf, float bf) 00012 { 00013 if(rf > 255.0) rf = 255.0; 00014 if(gf > 255.0) gf = 255.0; 00015 if(bf > 255.0) bf = 255.0; 00016 if(rf < 0.0) rf = 0.0; 00017 if(gf < 0.0) gf = 0.0; 00018 if(bf < 0.0) bf = 0.0; 00019 r = rf; 00020 b = bf; 00021 g = gf; 00022 } 00023 00024 const Color Color::operator + (const Color& col) const 00025 { 00026 return Color(r + col.r, g + col.g, b + col.b); 00027 } 00028 00029 const Color Color::operator += (const Color& col) 00030 { 00031 r += col.r; 00032 g += col.g; 00033 b += col.b; 00034 return *this; 00035 } 00036 00037 const Color Color::operator * (const float& alpha) const 00038 { 00039 return Color(r * alpha, g * alpha, b * alpha); 00040 } 00041 00042 const Color Color::operator / (const float& scalar) const 00043 { 00044 return Color(r / scalar, g / scalar, b / scalar); 00045 } 00046 00047 const Color Color::operator = (const Color& col) 00048 { 00049 r = col.r; 00050 g = col.g; 00051 b = col.b; 00052 return *this; 00053 } 00054 00055 rgb 00056 Color::toRGB() 00057 { 00058 rgb col; 00059 col.b = (unsigned char) b; 00060 col.g = (unsigned char) g; 00061 col.r = (unsigned char) r; 00062 return col; 00063 }