CCmy.h
Go to the documentation of this file.
1 #ifndef icmm_CCmy_included
2 #define icmm_CCmy_included
3 
4 
5 #include <iser/IArchive.h>
6 
7 #include <icmm/TComposedColor.h>
8 
9 
10 namespace icmm
11 {
12 
13 
18 class CCmy: public TComposedColor<3>
19 {
20 public:
22 
24  {
29  };
30 
31  CCmy(double c = 0.0, double m = 0.0, double y = 0.0);
32  CCmy(const CCmy& color);
33 
34  // access to component values
35  double GetC() const;
36  void SetC(double value);
37  double GetM() const;
38  void SetM(double value);
39  double GetY() const;
40  void SetY(double value);
41 
42  bool Serialize(iser::IArchive& archive);
43 
44  // operators
45  CCmy operator+(const CCmy& color) const;
46  CCmy operator-(const CCmy& color) const;
47  CCmy operator*(const CCmy& color) const;
48  CCmy operator/(const CCmy& color) const;
49 
50  CCmy operator*(double value) const;
51  CCmy operator/(double value) const;
52 
53  CCmy& operator=(const CCmy& color);
54 
55  const CCmy& operator+=(const CCmy& color);
56  const CCmy& operator-=(const CCmy& color);
57  const CCmy& operator*=(const CCmy& color);
58  const CCmy& operator/=(const CCmy& color);
59 
60  const CCmy& operator*=(double value);
61  const CCmy& operator/=(double value);
62 };
63 
64 
65 // inline methods
66 
67 inline CCmy::CCmy(double c, double m, double y)
68 {
69  SetElement(CI_CYAN, c);
72 }
73 
74 
75 inline CCmy::CCmy(const CCmy& color)
76 : istd::IPolymorphic(),
77  istd::IChangeable(),
78  iser::ISerializable(),
79  BaseClass(color)
80 {
81 }
82 
83 
84 // access to components
85 
86 inline double CCmy::GetC() const
87 {
88  return GetElement(CI_CYAN);
89 }
90 
91 
92 inline void CCmy::SetC(double value)
93 {
94  SetElement(CI_CYAN, value);
95 }
96 
97 
98 inline double CCmy::GetM() const
99 {
100  return GetElement(CI_MAGENTA);
101 }
102 
103 
104 inline void CCmy::SetM(double value)
105 {
106  SetElement(CI_MAGENTA, value);
107 }
108 
109 
110 inline double CCmy::GetY() const
111 {
112  return GetElement(CI_YELLOW);
113 }
114 
115 
116 inline void CCmy::SetY(double value)
117 {
118  SetElement(CI_YELLOW, value);
119 }
120 
121 
122 // operators
123 
124 inline CCmy& CCmy::operator=(const CCmy& color)
125 {
126  BaseClass::operator=(color);
127 
128  return *this;
129 }
130 
131 
132 inline const CCmy& CCmy::operator+=(const CCmy& color)
133 {
134  BaseClass::operator+=(color);
135 
136  return *this;
137 }
138 
139 
140 inline const CCmy& CCmy::operator-=(const CCmy& color)
141 {
142  BaseClass::operator-=(color);
143 
144  return *this;
145 }
146 
147 
148 inline const CCmy& CCmy::operator*=(const CCmy& color)
149 {
150  BaseClass::operator*=(color);
151 
152  return *this;
153 }
154 
155 
156 inline const CCmy& CCmy::operator/=(const CCmy& color)
157 {
158  BaseClass::operator/=(color);
159 
160  return *this;
161 }
162 
163 
164 inline const CCmy& CCmy::operator*=(double value)
165 {
166  BaseClass::operator*=(value);
167 
168  return *this;
169 }
170 
171 
172 inline const CCmy& CCmy::operator/=(double value)
173 {
174  BaseClass::operator/=(value);
175 
176  return *this;
177 }
178 
179 
180 } // namespace icmm
181 
182 
183 #endif // !icmm_CCmy_included
184 
185 
CCmy operator/(const CCmy &color) const
const CCmy & operator+=(const CCmy &color)
Definition: CCmy.h:132
TComposedColor< 3 > BaseClass
Definition: CCmy.h:21
const TComposedColor< Size > & operator/=(const TComposedColor< Size > &color)
double GetM() const
Definition: CCmy.h:98
const CCmy & operator/=(const CCmy &color)
Definition: CCmy.h:156
void SetY(double value)
Definition: CCmy.h:116
double GetC() const
Definition: CCmy.h:86
CCmy operator+(const CCmy &color) const
TVector< Size, double > operator-() const
void SetElement(int i, const double &value)
Set element at specified i.
void SetC(double value)
Definition: CCmy.h:92
CCmy operator*(const CCmy &color) const
Generic color implementation.
const TComposedColor< Size > & operator=(const TComposedColor< Size > &color)
Represent input/output persistence archive.
Definition: IArchive.h:30
const TComposedColor< Size > & operator*=(const TComposedColor< Size > &color)
const TComposedColor< Size > & operator-=(const TComposedColor< Size > &color)
CCmy(double c=0.0, double m=0.0, double y=0.0)
Definition: CCmy.h:67
const CCmy & operator*=(const CCmy &color)
Definition: CCmy.h:148
const double & GetElement(int i) const
Get element at specified i.
ComponentIndex
Definition: CCmy.h:23
bool Serialize(iser::IArchive &archive)
Load or store state of this object as a archive stream.
CCmy & operator=(const CCmy &color)
Definition: CCmy.h:124
const TComposedColor< Size > & operator+=(const TComposedColor< Size > &color)
double GetY() const
Definition: CCmy.h:110
const CCmy & operator-=(const CCmy &color)
Definition: CCmy.h:140
void SetM(double value)
Definition: CCmy.h:104
Primitive for representation of CMY color value.
Definition: CCmy.h:18

© 2007-2017 Witold Gantzke and Kirill Lepskiy