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

© 2007-2017 Witold Gantzke and Kirill Lepskiy