diff options
author | Stijn Buys <ingar@osirion.org> | 2007-10-20 10:02:51 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2007-10-20 10:02:51 +0000 |
commit | 3866f2b33313d891347f454537843befd295b78f (patch) | |
tree | ba748f4bf021605cc8e1488e7e14a4085f81a9ae /src/common/color.h |
Initial import.
Diffstat (limited to 'src/common/color.h')
-rw-r--r-- | src/common/color.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/common/color.h b/src/common/color.h new file mode 100644 index 0000000..d84d1a3 --- /dev/null +++ b/src/common/color.h @@ -0,0 +1,50 @@ +/* + *************************************************************************** + * 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 <iostream> + +/// 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__ |