diff options
author | Stijn Buys <ingar@osirion.org> | 2008-01-30 17:30:10 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-01-30 17:30:10 +0000 |
commit | 4fd8d5c71365e58e6dff36fc756d8e2e55204db7 (patch) | |
tree | 851c86f497ce3bfa7050ae5634f50f888d6d80f8 /src/math/color.h | |
parent | 28180e6b6763e4ce5d65c02e4df5380f11e6d10a (diff) |
math module
Diffstat (limited to 'src/math/color.h')
-rw-r--r-- | src/math/color.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/math/color.h b/src/math/color.h new file mode 100644 index 0000000..2c69b9b --- /dev/null +++ b/src/math/color.h @@ -0,0 +1,51 @@ +/* + 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 <iostream> + +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__ + |