/* *************************************************************************** * Copyright (C) 2004 by Stijn Buys * * stijn.buys@pandora.be * * * * This software is redistributed under the terms of the * * GNU General Public License. Please read LICENSE.txt. * *************************************************************************** */ #ifndef __COLOR_HEADER__ #define __COLOR_HEADER__ #include /// a class representing an RGBA color value class Color { public: Color(); Color(const float, float const, const float, const float=1.0f); Color(const float, const float=1.0f); Color(const Color &); float red() const; float green() const; float blue() const; float alpha() const; const Color &operator=(const Color &); Color operator*(const float scalar) const; // Some default colors static const Color Black() { return Color(0.0f); }; static const Color White() { return Color(1.0f); }; static const Color Red() { return Color(1.0f,0.0f,0.0f); }; static const Color Green() { return Color(0.0f,1.0f,0.0f); }; static const Color Blue() { return Color(0.0f, 0.0f, 1.0f); }; static const Color Yellow() { return Color(1.0f, 1.0f, 0.0f); }; private: void normalize(); float _r, _g, _b, _a; }; std::ostream &operator<<(std::ostream &os, const Color &c); Color operator*(const float scalar, const Color& color); #endif // ___HEADER__