/* common/color.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_MATH_COLOR_H__ #define __INCLUDED_MATH_COLOR_H__ #include namespace math { /// 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); } // namespace math #endif // __INCLUDED_MATH_COLOR_H__