-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRGBColor.h
57 lines (42 loc) · 1.21 KB
/
RGBColor.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef RGBCOLOR_H
#define RGBCOLOR_H
#include "common.h"
class RGBColor {
public:
// constructor
RGBColor();
RGBColor(const RTdouble&);
RGBColor(const RTdouble&, const RTdouble&, const RTdouble&);
RGBColor(const RTdouble []);
// copy constructor
RGBColor(const RGBColor &);
// =
RGBColor & operator=(const RGBColor &);
// add
RGBColor operator +(const RGBColor &) const;
RGBColor & operator +=(const RGBColor &);
// subtract
RGBColor operator -(const RGBColor &) const;
RGBColor & operator -=(const RGBColor &);
// multiply (scale)
RGBColor operator *(const RTdouble &) const;
friend RGBColor operator *(const RTdouble &, const RGBColor &);
RGBColor & operator *=(const RTdouble &);
// multiply (mixing)
RGBColor operator *(const RGBColor &) const;
// divide (scale)
RGBColor operator /(const RTdouble &) const;
RGBColor & operator /=(const RTdouble &);
// power
RGBColor operator ^(const RTdouble &) const;
//int A() const;
RTdouble R() const;
RTdouble G() const;
RTdouble B() const;
void print(const string &) const;
string to_rep() const;
private:
RTdouble val[3]; // RGB, scale in [0, 1]
static const int RGB_len = 3;
};
#endif