added castledoor background, worked on door entry level, added small clover to doodads
[supertux.git] / src / video / color.hpp
1 #ifndef __COLOR_HPP__
2 #define __COLOR_HPP__
3
4 #include <vector>
5
6 class Color
7 {
8 public:
9   Color()
10     : red(0), green(0), blue(0), alpha(1.0)
11   { }
12   Color(float red, float green, float blue, float alpha = 1.0)
13     : red(red), green(green), blue(blue), alpha(alpha)
14   {
15 #ifdef DEBUG
16     check_color_ranges();
17 #endif
18   }
19   Color(const std::vector<float>& vals)
20   {
21     red = vals[0];
22     green = vals[1];
23     blue = vals[2];
24     if(vals.size() > 3)
25       alpha = vals[3];
26     else
27       alpha = 1.0;
28 #ifdef DEBUG
29     check_color_ranges();
30 #endif
31   }
32
33   void check_color_ranges()
34   {
35     if(red < 0 || red > 1.0 || green < 0 || green > 1.0
36             || blue < 0 || blue > 1.0
37             || alpha < 0 || alpha > 1.0)
38       printf("Warning: color value out of range: %f %f %f %f\n",
39               red, green, blue, alpha);
40   }
41
42   float red, green, blue, alpha;
43 };
44
45 #endif
46