Templates -- Meow  1.1.4
A C++ template contains kinds of interesting classes and functions
RGB.h
Go to the documentation of this file.
1 #ifndef RGB_H_
2 #define RGB_H_
3 
4 namespace meow{
5  template<class T> class RGB{
6  protected:
7  T rgb_[3];
8  RGB();
9  RGB(T const& r, T const& g, T const& b);
10  RGB(T const* rgb);
11  public:
12  virtual ~RGB() { }
14  virtual T rMax() const = 0;
15  virtual T rMin() const = 0;
16  virtual T gMax() const = 0;
17  virtual T gMin() const = 0;
18  virtual T bMax() const = 0;
19  virtual T bMin() const = 0;
21  T r() const;
22  T g() const;
23  T b() const;
24  T rgb(size_t i) const;
25  T bgr(size_t i) const;
27  T r(T const& val);
28  T g(T const& val);
29  T b(T const& val);
30  T rgb(size_t i, T const& val);
31  T bgr(size_t i, T const& val);
32  };
33 
34  class RGBf: public RGB<double>{
35  public:
36  RGBf();
37  RGBf(double const&r,double const&g,double const&b);
38  RGBf(double const* rgb);
39  ~RGBf();
40  double rMin() const;
41  double rMax() const;
42  double gMin() const;
43  double gMax() const;
44  double bMin() const;
45  double bMax() const;
46  };
47 
48  class RGBi: public RGB<int32_t>{
49  public:
50  RGBi();
51  RGBi(int32_t const&r,int32_t const&g,int32_t const&b);
52  RGBi(int32_t const* rgb);
53  ~RGBi();
54  int32_t rMin() const;
55  int32_t rMax() const;
56  int32_t gMin() const;
57  int32_t gMax() const;
58  int32_t bMin() const;
59  int32_t bMax() const;
60  };
61 }
62 
63 #include "RGB.hpp"
64 
65 #endif // RGB_H_
virtual T rMax() const =0
virtual ~RGB()
Definition: RGB.h:12
double gMax() const
Definition: RGB.hpp:42
RGBf()
Definition: RGB.hpp:35
double gMin() const
Definition: RGB.hpp:41
double rMax() const
Definition: RGB.hpp:40
int32_t bMin() const
Definition: RGB.hpp:57
virtual T bMax() const =0
Definition: RGB.h:5
double bMin() const
Definition: RGB.hpp:43
int32_t rMin() const
Definition: RGB.hpp:53
T r() const
Definition: RGB.hpp:14
virtual T bMin() const =0
Definition: RGB.h:34
double rMin() const
Definition: RGB.hpp:39
RGBi()
Definition: RGB.hpp:49
T rgb_[3]
Definition: RGB.h:7
double bMax() const
Definition: RGB.hpp:44
RGB()
Definition: RGB.hpp:5
~RGBf()
Definition: RGB.hpp:36
virtual T gMax() const =0
int32_t gMax() const
Definition: RGB.hpp:56
virtual T rMin() const =0
~RGBi()
Definition: RGB.hpp:50
T g() const
Definition: RGB.hpp:15
virtual T gMin() const =0
T b() const
Definition: RGB.hpp:16
T bgr(size_t i) const
Definition: RGB.hpp:20
T rgb(size_t i) const
Definition: RGB.hpp:17
int32_t gMin() const
Definition: RGB.hpp:55
int32_t bMax() const
Definition: RGB.hpp:58
int32_t rMax() const
Definition: RGB.hpp:54
Definition: RGB.h:48