voxelTerrain
 All Classes Functions Variables Typedefs Enumerations Pages
colour.hpp
1 #ifndef BLUB_MATH_COLOUR_HPP
2 #define BLUB_MATH_COLOUR_HPP
3 
4 #include "blub/core/globals.hpp"
5 
6 
7 namespace Ogre
8 {
9  class ColourValue;
10 }
11 
12 
13 namespace blub
14 {
15 
16 
17 class colour
18 {
19 public:
20 #ifndef BLUB_NO_OGRE3D
21  colour(const Ogre::ColourValue &vec);
22  operator Ogre::ColourValue() const;
23 #endif
24 
25  colour()
26  : r(0.)
27  , g(0.)
28  , b(0.)
29  , a(1.)
30  {;}
31  colour(const colour& other)
32  : r(other.r)
33  , g(other.g)
34  , b(other.b)
35  , a(other.a)
36  {;}
37  colour(const real& r_, const real& g_, const real& b_, const real& a_ = 1.)
38  : r(r_)
39  , g(g_)
40  , b(b_)
41  , a(a_)
42  {;}
43 
44  bool operator ==(const colour& toCompare) const
45  {
46  return toCompare.a == a &&
47  toCompare.b == b &&
48  toCompare.g == g &&
49  toCompare.r == r;
50  }
51  bool operator !=(const colour& toCompare) const
52  {
53  return toCompare.a != a ||
54  toCompare.b != b ||
55  toCompare.g != g ||
56  toCompare.r != r;
57  }
58  inline colour operator + (const colour& toAdd) const
59  {
60  colour kSum;
61 
62  kSum.r = r + toAdd.r;
63  kSum.g = g + toAdd.g;
64  kSum.b = b + toAdd.b;
65  kSum.a = a + toAdd.a;
66 
67  return kSum;
68  }
69  inline colour operator - (const colour& toSub) const
70  {
71  colour kDiff;
72 
73  kDiff.r = r - toSub.r;
74  kDiff.g = g - toSub.g;
75  kDiff.b = b - toSub.b;
76  kDiff.a = a - toSub.a;
77 
78  return kDiff;
79  }
80  inline colour operator / (const real scalar) const
81  {
82  BASSERT(scalar != 0.0);
83 
84  colour kDiv;
85 
86  real fInv = 1.0f / scalar;
87  kDiv.r = r * fInv;
88  kDiv.g = g * fInv;
89  kDiv.b = b * fInv;
90  kDiv.a = a * fInv;
91 
92  return kDiv;
93  }
94 public:
95  real r, g, b, a;
96 
97 };
98 
99 
100 std::ostream& operator<< (std::ostream& ostr, const colour& toCast);
101 
102 
103 }
104 
105 #endif // BLUB_MATH_COLOUR_HPP
Definition: colour.hpp:17
Definition: deadlineTimer.hpp:10
Definition: axisAlignedBox.hpp:10