43 struct Color :
public std::array<float,4>
65 explicit Color(
const std::array<float,3>& xyz,
Model m_ = Model::RGB);
73 explicit Color(
const std::array<float,4>& xyza,
Model m_ = Model::RGB);
81 explicit Color(
const std::initializer_list<float> xyza,
Model m_ = Model::RGB);
113 codac2::Vector
vec()
const;
143 if (c.m == Model::RGB)
144 os <<
"RGB Color (" << c[0] <<
"," << c[1] <<
"," << c[2] <<
"," << c[3] <<
")";
145 else if (c.m == Model::HSV)
146 os <<
"HSV Color (" << c[0] <<
"," << c[1] <<
"," << c[2] <<
"," << c[3] <<
")";
157 #define DEFINE_COLOR(NAME, R, G, B) \
158 static Color NAME(float alpha = 1.) { \
159 return Color({(float)(R), (float)(G), (float)(B), (float)(alpha * 255.)}); \
164 DEFINE_COLOR(black, 0, 0, 0)
165 DEFINE_COLOR(white, 255, 255, 255)
167 DEFINE_COLOR(light_gray, 217, 217, 217)
168 DEFINE_COLOR(gray, 180, 180, 180)
169 DEFINE_COLOR(dark_gray, 112, 112, 112)
171 DEFINE_COLOR(light_green, 184, 233, 118)
172 DEFINE_COLOR(green, 144, 242, 0)
173 DEFINE_COLOR(dark_green, 94, 158, 0)
175 DEFINE_COLOR(light_blue, 75, 207, 250)
176 DEFINE_COLOR(blue, 45, 152, 218)
177 DEFINE_COLOR(dark_blue, 34, 112, 147)
179 DEFINE_COLOR(light_cyan, 129, 236, 236)
180 DEFINE_COLOR(cyan, 109, 200, 200)
181 DEFINE_COLOR(dark_cyan, 82, 151, 151)
183 DEFINE_COLOR(light_yellow, 255, 250, 101)
184 DEFINE_COLOR(yellow, 255, 211, 42)
185 DEFINE_COLOR(dark_yellow, 225, 177, 44)
187 DEFINE_COLOR(light_orange, 253, 150, 68)
188 DEFINE_COLOR(orange, 255, 159, 26)
189 DEFINE_COLOR(dark_orange, 214, 134, 22)
191 DEFINE_COLOR(light_red, 231, 127, 103)
192 DEFINE_COLOR(red, 209, 59, 0)
193 DEFINE_COLOR(dark_red, 179, 57, 57)
195 DEFINE_COLOR(light_brown, 208, 151, 71)
196 DEFINE_COLOR(brown, 151, 109, 52)
197 DEFINE_COLOR(dark_brown, 99, 72, 34)
199 DEFINE_COLOR(light_purple, 205, 132, 241)
200 DEFINE_COLOR(purple, 154, 0, 170)
201 DEFINE_COLOR(dark_purple, 108, 0, 119)
203 DEFINE_COLOR(light_pink, 253, 167, 223)
204 DEFINE_COLOR(pink, 243, 104, 224)
205 DEFINE_COLOR(dark_pink, 185, 79, 171)