1 |
jakw |
1 |
/*
|
|
|
2 |
***************************************************************************
|
|
|
3 |
* *
|
|
|
4 |
* Platform Independent *
|
|
|
5 |
* Bitmap Image Reader Writer Library *
|
|
|
6 |
* *
|
|
|
7 |
* Author: Arash Partow - 2002 *
|
|
|
8 |
* URL: http://www.partow.net *
|
|
|
9 |
* *
|
|
|
10 |
* Note: This library only supports 24-bits per pixel bitmap format files. *
|
|
|
11 |
* *
|
|
|
12 |
* Copyright notice: *
|
|
|
13 |
* Free use of the Platform Independent Bitmap Image Reader Writer Library *
|
|
|
14 |
* is permitted under the guidelines and in accordance with the most *
|
|
|
15 |
* current version of the Common Public License. *
|
|
|
16 |
* http://www.opensource.org/licenses/cpl1.0.php *
|
|
|
17 |
* *
|
|
|
18 |
***************************************************************************
|
|
|
19 |
*/
|
|
|
20 |
|
|
|
21 |
|
|
|
22 |
#ifndef INCLUDE_BITMAP_IMAGE_HPP
|
|
|
23 |
#define INCLUDE_BITMAP_IMAGE_HPP
|
|
|
24 |
|
|
|
25 |
#include <iostream>
|
|
|
26 |
#include <string>
|
|
|
27 |
#include <fstream>
|
|
|
28 |
#include <iterator>
|
|
|
29 |
#include <limits>
|
|
|
30 |
#include <cmath>
|
|
|
31 |
#include <cstdlib>
|
|
|
32 |
|
|
|
33 |
|
|
|
34 |
class bitmap_image
|
|
|
35 |
{
|
|
|
36 |
public:
|
|
|
37 |
|
|
|
38 |
enum channel_mode {
|
|
|
39 |
rgb_mode = 0,
|
|
|
40 |
bgr_mode = 1
|
|
|
41 |
};
|
|
|
42 |
|
|
|
43 |
enum color_plane {
|
|
|
44 |
blue_plane = 0,
|
|
|
45 |
green_plane = 1,
|
|
|
46 |
red_plane = 2
|
|
|
47 |
};
|
|
|
48 |
|
|
|
49 |
|
|
|
50 |
bitmap_image()
|
|
|
51 |
: file_name_(""),
|
|
|
52 |
data_(0),
|
|
|
53 |
bytes_per_pixel_(3),
|
|
|
54 |
length_(0),
|
|
|
55 |
width_(0),
|
|
|
56 |
height_(0),
|
|
|
57 |
row_increment_(0),
|
|
|
58 |
channel_mode_(bgr_mode)
|
|
|
59 |
{}
|
|
|
60 |
|
|
|
61 |
bitmap_image(const std::string& filename)
|
|
|
62 |
: file_name_(filename),
|
|
|
63 |
data_(0),
|
|
|
64 |
bytes_per_pixel_(0),
|
|
|
65 |
length_(0),
|
|
|
66 |
width_(0),
|
|
|
67 |
height_(0),
|
|
|
68 |
row_increment_(0),
|
|
|
69 |
channel_mode_(bgr_mode)
|
|
|
70 |
{
|
|
|
71 |
load_bitmap();
|
|
|
72 |
}
|
|
|
73 |
|
|
|
74 |
bitmap_image(const unsigned int width, const unsigned int height)
|
|
|
75 |
: file_name_(""),
|
|
|
76 |
data_(0),
|
|
|
77 |
bytes_per_pixel_(3),
|
|
|
78 |
length_(0),
|
|
|
79 |
width_(width),
|
|
|
80 |
height_(height),
|
|
|
81 |
row_increment_(0),
|
|
|
82 |
channel_mode_(bgr_mode)
|
|
|
83 |
{
|
|
|
84 |
create_bitmap();
|
|
|
85 |
}
|
|
|
86 |
|
|
|
87 |
bitmap_image(const bitmap_image& image)
|
|
|
88 |
: file_name_(image.file_name_),
|
|
|
89 |
data_(0),
|
|
|
90 |
bytes_per_pixel_(3),
|
|
|
91 |
width_(image.width_),
|
|
|
92 |
height_(image.height_),
|
|
|
93 |
row_increment_(0),
|
|
|
94 |
channel_mode_(bgr_mode)
|
|
|
95 |
{
|
|
|
96 |
create_bitmap();
|
|
|
97 |
std::copy(image.data_, image.data_ + image.length_, data_);
|
|
|
98 |
}
|
|
|
99 |
|
|
|
100 |
~bitmap_image()
|
|
|
101 |
{
|
|
|
102 |
delete [] data_;
|
|
|
103 |
}
|
|
|
104 |
|
|
|
105 |
bitmap_image& operator=(const bitmap_image& image)
|
|
|
106 |
{
|
|
|
107 |
if (this != &image)
|
|
|
108 |
{
|
|
|
109 |
file_name_ = image.file_name_;
|
|
|
110 |
bytes_per_pixel_ = image.bytes_per_pixel_;
|
|
|
111 |
width_ = image.width_;
|
|
|
112 |
height_ = image.height_;
|
|
|
113 |
row_increment_ = 0;
|
|
|
114 |
channel_mode_ = image.channel_mode_;
|
|
|
115 |
create_bitmap();
|
|
|
116 |
std::copy(image.data_, image.data_ + image.length_, data_);
|
|
|
117 |
}
|
|
|
118 |
return *this;
|
|
|
119 |
}
|
|
|
120 |
|
|
|
121 |
inline void clear(const unsigned char v = 0x00)
|
|
|
122 |
{
|
|
|
123 |
std::fill(data_,data_ + length_,v);
|
|
|
124 |
}
|
|
|
125 |
|
|
|
126 |
inline unsigned char red_channel(const unsigned int x, const unsigned int y) const
|
|
|
127 |
{
|
|
|
128 |
return data_[(y * row_increment_) + (x * bytes_per_pixel_ + 2)];
|
|
|
129 |
}
|
|
|
130 |
|
|
|
131 |
inline unsigned char green_channel(const unsigned int x, const unsigned int y) const
|
|
|
132 |
{
|
|
|
133 |
return data_[(y * row_increment_) + (x * bytes_per_pixel_ + 1)];
|
|
|
134 |
}
|
|
|
135 |
|
|
|
136 |
inline unsigned char blue_channel (const unsigned int x, const unsigned int y) const
|
|
|
137 |
{
|
|
|
138 |
return data_[(y * row_increment_) + (x * bytes_per_pixel_ + 0)];
|
|
|
139 |
}
|
|
|
140 |
|
|
|
141 |
inline void red_channel(const unsigned int x, const unsigned int y, const unsigned char value)
|
|
|
142 |
{
|
|
|
143 |
data_[(y * row_increment_) + (x * bytes_per_pixel_ + 2)] = value;
|
|
|
144 |
}
|
|
|
145 |
|
|
|
146 |
inline void green_channel(const unsigned int x, const unsigned int y, const unsigned char value)
|
|
|
147 |
{
|
|
|
148 |
data_[(y * row_increment_) + (x * bytes_per_pixel_ + 1)] = value;
|
|
|
149 |
}
|
|
|
150 |
|
|
|
151 |
inline void blue_channel (const unsigned int x, const unsigned int y, const unsigned char value)
|
|
|
152 |
{
|
|
|
153 |
data_[(y * row_increment_) + (x * bytes_per_pixel_ + 0)] = value;
|
|
|
154 |
}
|
|
|
155 |
|
|
|
156 |
inline unsigned char* row(unsigned int row_index) const
|
|
|
157 |
{
|
|
|
158 |
return data_ + (row_index * row_increment_);
|
|
|
159 |
}
|
|
|
160 |
|
|
|
161 |
inline void get_pixel(const unsigned int x, const unsigned int y,
|
|
|
162 |
unsigned char& red,
|
|
|
163 |
unsigned char& green,
|
|
|
164 |
unsigned char& blue)
|
|
|
165 |
{
|
|
|
166 |
blue = data_[(y * row_increment_) + (x * bytes_per_pixel_ + 0)];
|
|
|
167 |
green = data_[(y * row_increment_) + (x * bytes_per_pixel_ + 1)];
|
|
|
168 |
red = data_[(y * row_increment_) + (x * bytes_per_pixel_ + 2)];
|
|
|
169 |
}
|
|
|
170 |
|
|
|
171 |
inline void set_pixel(const unsigned int x, const unsigned int y,
|
|
|
172 |
const unsigned char red,
|
|
|
173 |
const unsigned char green,
|
|
|
174 |
const unsigned char blue)
|
|
|
175 |
{
|
|
|
176 |
data_[(y * row_increment_) + (x * bytes_per_pixel_ + 0)] = blue;
|
|
|
177 |
data_[(y * row_increment_) + (x * bytes_per_pixel_ + 1)] = green;
|
|
|
178 |
data_[(y * row_increment_) + (x * bytes_per_pixel_ + 2)] = red;
|
|
|
179 |
}
|
|
|
180 |
|
|
|
181 |
inline bool copy_from(const bitmap_image& image)
|
|
|
182 |
{
|
|
|
183 |
if ((image.height_ != height_) ||
|
|
|
184 |
(image.width_ != width_))
|
|
|
185 |
{
|
|
|
186 |
return false;
|
|
|
187 |
}
|
|
|
188 |
std::copy(image.data_,image.data_ + image.length_,data_);
|
|
|
189 |
return true;
|
|
|
190 |
}
|
|
|
191 |
|
|
|
192 |
inline bool copy_from(const bitmap_image& source_image,
|
|
|
193 |
const unsigned int& x_offset,
|
|
|
194 |
const unsigned int& y_offset)
|
|
|
195 |
{
|
|
|
196 |
if ((x_offset + source_image.width_) > width_) { return false; }
|
|
|
197 |
if ((y_offset + source_image.height_) > height_) { return false; }
|
|
|
198 |
|
|
|
199 |
for (unsigned int y = 0; y < source_image.height_; ++y)
|
|
|
200 |
{
|
|
|
201 |
unsigned char* itr1 = row(y + y_offset) + x_offset * bytes_per_pixel_;
|
|
|
202 |
const unsigned char* itr2 = source_image.row(y);
|
|
|
203 |
const unsigned char* itr2_end = itr2 + source_image.width_ * bytes_per_pixel_;
|
|
|
204 |
std::copy(itr2,itr2_end,itr1);
|
|
|
205 |
}
|
|
|
206 |
return true;
|
|
|
207 |
}
|
|
|
208 |
|
|
|
209 |
inline bool region(const unsigned int& x,
|
|
|
210 |
const unsigned int& y,
|
|
|
211 |
const unsigned int& width,
|
|
|
212 |
const unsigned int& height,
|
|
|
213 |
bitmap_image& dest_image)
|
|
|
214 |
{
|
|
|
215 |
if ((x + width) > width_) { return false; }
|
|
|
216 |
if ((y + height) > height_) { return false; }
|
|
|
217 |
|
|
|
218 |
if ((dest_image.width_ < width_ ) ||
|
|
|
219 |
(dest_image.height_ < height_))
|
|
|
220 |
{
|
|
|
221 |
dest_image.setwidth_height(width,height);
|
|
|
222 |
}
|
|
|
223 |
|
|
|
224 |
for (unsigned int r = 0; r < height; ++r)
|
|
|
225 |
{
|
|
|
226 |
unsigned char* itr1 = row(r + y) + x * bytes_per_pixel_;
|
|
|
227 |
unsigned char* itr1_end = itr1 + (width * bytes_per_pixel_);
|
|
|
228 |
unsigned char* itr2 = dest_image.row(r);
|
|
|
229 |
std::copy(itr1,itr1_end,itr2);
|
|
|
230 |
}
|
|
|
231 |
return true;
|
|
|
232 |
}
|
|
|
233 |
|
|
|
234 |
inline bool set_region(const unsigned int& x,
|
|
|
235 |
const unsigned int& y,
|
|
|
236 |
const unsigned int& width,
|
|
|
237 |
const unsigned int& height,
|
|
|
238 |
const unsigned char& value)
|
|
|
239 |
{
|
|
|
240 |
if ((x + width) > width_) { return false; }
|
|
|
241 |
if ((y + height) > height_) { return false; }
|
|
|
242 |
|
|
|
243 |
for (unsigned int r = 0; r < height; ++r)
|
|
|
244 |
{
|
|
|
245 |
unsigned char* itr = row(r + y) + x * bytes_per_pixel_;
|
|
|
246 |
unsigned char* itr_end = itr + (width * bytes_per_pixel_);
|
|
|
247 |
std::fill(itr,itr_end,value);
|
|
|
248 |
}
|
|
|
249 |
return true;
|
|
|
250 |
}
|
|
|
251 |
|
|
|
252 |
inline bool set_region(const unsigned int& x,
|
|
|
253 |
const unsigned int& y,
|
|
|
254 |
const unsigned int& width,
|
|
|
255 |
const unsigned int& height,
|
|
|
256 |
const color_plane color,
|
|
|
257 |
const unsigned char& value)
|
|
|
258 |
{
|
|
|
259 |
if ((x + width) > width_) { return false; }
|
|
|
260 |
if ((y + height) > height_) { return false; }
|
|
|
261 |
|
|
|
262 |
for (unsigned int r = 0; r < height; ++r)
|
|
|
263 |
{
|
|
|
264 |
unsigned char* itr = row(r + y) + x * bytes_per_pixel_ + offset(color);
|
|
|
265 |
unsigned char* itr_end = itr + (width * bytes_per_pixel_);
|
|
|
266 |
|
|
|
267 |
while (itr != itr_end)
|
|
|
268 |
{
|
|
|
269 |
*itr = value;
|
|
|
270 |
itr += bytes_per_pixel_;
|
|
|
271 |
}
|
|
|
272 |
}
|
|
|
273 |
return true;
|
|
|
274 |
}
|
|
|
275 |
|
|
|
276 |
inline bool set_region(const unsigned int& x,
|
|
|
277 |
const unsigned int& y,
|
|
|
278 |
const unsigned int& width,
|
|
|
279 |
const unsigned int& height,
|
|
|
280 |
const unsigned char& red,
|
|
|
281 |
const unsigned char& green,
|
|
|
282 |
const unsigned char& blue)
|
|
|
283 |
{
|
|
|
284 |
if ((x + width) > width_) { return false; }
|
|
|
285 |
if ((y + height) > height_) { return false; }
|
|
|
286 |
|
|
|
287 |
for (unsigned int r = 0; r < height; ++r)
|
|
|
288 |
{
|
|
|
289 |
unsigned char* itr = row(r + y) + x * bytes_per_pixel_;
|
|
|
290 |
unsigned char* itr_end = itr + (width * bytes_per_pixel_);
|
|
|
291 |
|
|
|
292 |
while (itr != itr_end)
|
|
|
293 |
{
|
|
|
294 |
*(itr++) = blue;
|
|
|
295 |
*(itr++) = green;
|
|
|
296 |
*(itr++) = red;
|
|
|
297 |
}
|
|
|
298 |
}
|
|
|
299 |
return true;
|
|
|
300 |
}
|
|
|
301 |
|
|
|
302 |
void reflective_image(bitmap_image& image)
|
|
|
303 |
{
|
|
|
304 |
image.setwidth_height(3 * width_, 3 * height_,true);
|
|
|
305 |
image.copy_from(*this,width_,height_);
|
|
|
306 |
vertical_flip();
|
|
|
307 |
image.copy_from(*this,width_,0);
|
|
|
308 |
image.copy_from(*this,width_,2 * height_);
|
|
|
309 |
vertical_flip();
|
|
|
310 |
horizontal_flip();
|
|
|
311 |
image.copy_from(*this,0,height_);
|
|
|
312 |
image.copy_from(*this,2 * width_,height_);
|
|
|
313 |
horizontal_flip();
|
|
|
314 |
}
|
|
|
315 |
|
|
|
316 |
inline unsigned int width() const
|
|
|
317 |
{
|
|
|
318 |
return width_;
|
|
|
319 |
}
|
|
|
320 |
|
|
|
321 |
inline unsigned int height() const
|
|
|
322 |
{
|
|
|
323 |
return height_;
|
|
|
324 |
}
|
|
|
325 |
|
|
|
326 |
inline unsigned int bytes_per_pixel() const
|
|
|
327 |
{
|
|
|
328 |
return bytes_per_pixel_;
|
|
|
329 |
}
|
|
|
330 |
|
|
|
331 |
inline unsigned int pixel_count() const
|
|
|
332 |
{
|
|
|
333 |
return width_ * height_;
|
|
|
334 |
}
|
|
|
335 |
|
|
|
336 |
inline void setwidth_height(const unsigned int width,
|
|
|
337 |
const unsigned int height,
|
|
|
338 |
const bool clear = false)
|
|
|
339 |
{
|
|
|
340 |
delete[] data_;
|
|
|
341 |
width_ = width;
|
|
|
342 |
height_ = height;
|
|
|
343 |
create_bitmap();
|
|
|
344 |
if (clear)
|
|
|
345 |
{
|
|
|
346 |
std::fill(data_,data_ + length_,0x00);
|
|
|
347 |
}
|
|
|
348 |
}
|
|
|
349 |
|
|
|
350 |
void save_image(const std::string& file_name)
|
|
|
351 |
{
|
|
|
352 |
std::ofstream stream(file_name.c_str(),std::ios::binary);
|
|
|
353 |
|
|
|
354 |
if (!stream)
|
|
|
355 |
{
|
|
|
356 |
std::cout << "bitmap_image::save_image(): Error - Could not open file " << file_name << " for writing!" << std::endl;
|
|
|
357 |
return;
|
|
|
358 |
}
|
|
|
359 |
|
|
|
360 |
bitmap_file_header bfh;
|
|
|
361 |
bitmap_information_header bih;
|
|
|
362 |
|
|
|
363 |
bih.width = width_;
|
|
|
364 |
bih.height = height_;
|
|
|
365 |
bih.bit_count = static_cast<unsigned short>(bytes_per_pixel_ << 3);
|
|
|
366 |
bih.clr_important = 0;
|
|
|
367 |
bih.clr_used = 0;
|
|
|
368 |
bih.compression = 0;
|
|
|
369 |
bih.planes = 1;
|
|
|
370 |
bih.size = 40;
|
|
|
371 |
bih.x_pels_per_meter = 0;
|
|
|
372 |
bih.y_pels_per_meter = 0;
|
|
|
373 |
bih.size_image = (((bih.width * bytes_per_pixel_) + 3) & 0xFFFC) * bih.height;
|
|
|
374 |
|
|
|
375 |
bfh.type = 19778;
|
|
|
376 |
bfh.size = 55 + bih.size_image;
|
|
|
377 |
bfh.reserved1 = 0;
|
|
|
378 |
bfh.reserved2 = 0;
|
|
|
379 |
bfh.off_bits = bih.struct_size() + bfh.struct_size();
|
|
|
380 |
|
|
|
381 |
write_bfh(stream,bfh);
|
|
|
382 |
write_bih(stream,bih);
|
|
|
383 |
|
|
|
384 |
unsigned int padding = (4 - ((3 * width_) % 4)) % 4;
|
|
|
385 |
char padding_data[4] = {0x0,0x0,0x0,0x0};
|
|
|
386 |
for (unsigned int i = 0; i < height_; ++i)
|
|
|
387 |
{
|
|
|
388 |
unsigned char* data_ptr = data_ + (row_increment_ * (height_ - i - 1));
|
|
|
389 |
stream.write(reinterpret_cast<char*>(data_ptr),sizeof(unsigned char) * bytes_per_pixel_ * width_);
|
|
|
390 |
stream.write(padding_data,padding);
|
|
|
391 |
}
|
|
|
392 |
stream.close();
|
|
|
393 |
}
|
|
|
394 |
|
|
|
395 |
inline void set_all_ith_bits_low(const unsigned int bitr_index)
|
|
|
396 |
{
|
|
|
397 |
unsigned char mask = static_cast<unsigned char>(~(1 << bitr_index));
|
|
|
398 |
for (unsigned char* itr = data_; itr != data_ + length_; ++itr) { *itr &= mask; }
|
|
|
399 |
}
|
|
|
400 |
|
|
|
401 |
inline void set_all_ith_bits_high(const unsigned int bitr_index)
|
|
|
402 |
{
|
|
|
403 |
unsigned char mask = static_cast<unsigned char>(1 << bitr_index);
|
|
|
404 |
for (unsigned char* itr = data_; itr != data_ + length_; ++itr) { *itr |= mask; }
|
|
|
405 |
}
|
|
|
406 |
|
|
|
407 |
inline void set_all_ith_channels(const unsigned int& channel, const unsigned char& value)
|
|
|
408 |
{
|
|
|
409 |
for (unsigned char* itr = (data_ + channel); itr < (data_ + length_); itr += bytes_per_pixel_)
|
|
|
410 |
{
|
|
|
411 |
*itr = value;
|
|
|
412 |
}
|
|
|
413 |
}
|
|
|
414 |
|
|
|
415 |
inline void set_channel(const color_plane color,const unsigned char& value)
|
|
|
416 |
{
|
|
|
417 |
for (unsigned char* itr = (data_ + offset(color)); itr < (data_ + length_); itr += bytes_per_pixel_)
|
|
|
418 |
{
|
|
|
419 |
*itr = value;
|
|
|
420 |
}
|
|
|
421 |
}
|
|
|
422 |
|
|
|
423 |
inline void ror_channel(const color_plane color, const unsigned int& ror)
|
|
|
424 |
{
|
|
|
425 |
for (unsigned char* itr = (data_ + offset(color)); itr < (data_ + length_); itr += bytes_per_pixel_)
|
|
|
426 |
{
|
|
|
427 |
*itr = static_cast<unsigned char>(((*itr) >> ror) | ((*itr) << (8 - ror)));
|
|
|
428 |
}
|
|
|
429 |
}
|
|
|
430 |
|
|
|
431 |
inline void set_all_channels(const unsigned char& value)
|
|
|
432 |
{
|
|
|
433 |
for (unsigned char* itr = data_; itr < (data_ + length_); )
|
|
|
434 |
{
|
|
|
435 |
*(itr++) = value;
|
|
|
436 |
}
|
|
|
437 |
}
|
|
|
438 |
|
|
|
439 |
inline void set_all_channels(const unsigned char& r_value,
|
|
|
440 |
const unsigned char& g_value,
|
|
|
441 |
const unsigned char& b_value)
|
|
|
442 |
{
|
|
|
443 |
for (unsigned char* itr = (data_ + 0); itr < (data_ + length_); itr += bytes_per_pixel_)
|
|
|
444 |
{
|
|
|
445 |
*(itr + 0) = b_value;
|
|
|
446 |
*(itr + 1) = g_value;
|
|
|
447 |
*(itr + 2) = r_value;
|
|
|
448 |
}
|
|
|
449 |
}
|
|
|
450 |
|
|
|
451 |
inline void invert_color_planes()
|
|
|
452 |
{
|
|
|
453 |
for (unsigned char* itr = data_; itr < (data_ + length_); *itr = ~(*itr), ++itr);
|
|
|
454 |
}
|
|
|
455 |
|
|
|
456 |
inline void add_to_color_plane(const color_plane color,const unsigned char& value)
|
|
|
457 |
{
|
|
|
458 |
for (unsigned char* itr = (data_ + offset(color)); itr < (data_ + length_); (*itr) += value, itr += bytes_per_pixel_);
|
|
|
459 |
}
|
|
|
460 |
|
|
|
461 |
inline void convert_to_grayscale()
|
|
|
462 |
{
|
|
|
463 |
double r_scaler = 0.299;
|
|
|
464 |
double g_scaler = 0.587;
|
|
|
465 |
double b_scaler = 0.114;
|
|
|
466 |
|
|
|
467 |
if (rgb_mode == channel_mode_)
|
|
|
468 |
{
|
|
|
469 |
double tmp = r_scaler;
|
|
|
470 |
r_scaler = b_scaler;
|
|
|
471 |
b_scaler = tmp;
|
|
|
472 |
}
|
|
|
473 |
|
|
|
474 |
for (unsigned char* itr = data_; itr < (data_ + length_);)
|
|
|
475 |
{
|
|
|
476 |
unsigned char gray_value = static_cast<unsigned char>(
|
|
|
477 |
(r_scaler * (*(itr + 2))) +
|
|
|
478 |
(g_scaler * (*(itr + 1))) +
|
|
|
479 |
(b_scaler * (*(itr + 0))) );
|
|
|
480 |
*(itr++) = gray_value;
|
|
|
481 |
*(itr++) = gray_value;
|
|
|
482 |
*(itr++) = gray_value;
|
|
|
483 |
}
|
|
|
484 |
}
|
|
|
485 |
|
|
|
486 |
inline const unsigned char* data()
|
|
|
487 |
{
|
|
|
488 |
return data_;
|
|
|
489 |
}
|
|
|
490 |
|
|
|
491 |
inline void bgr_to_rgb()
|
|
|
492 |
{
|
|
|
493 |
if ((bgr_mode == channel_mode_) && (3 == bytes_per_pixel_))
|
|
|
494 |
{
|
|
|
495 |
reverse_channels();
|
|
|
496 |
channel_mode_ = rgb_mode;
|
|
|
497 |
}
|
|
|
498 |
}
|
|
|
499 |
|
|
|
500 |
inline void rgb_to_bgr()
|
|
|
501 |
{
|
|
|
502 |
if ((rgb_mode == channel_mode_) && (3 == bytes_per_pixel_))
|
|
|
503 |
{
|
|
|
504 |
reverse_channels();
|
|
|
505 |
channel_mode_ = bgr_mode;
|
|
|
506 |
}
|
|
|
507 |
}
|
|
|
508 |
|
|
|
509 |
inline void reverse()
|
|
|
510 |
{
|
|
|
511 |
unsigned char* itr1 = data_;
|
|
|
512 |
unsigned char* itr2 = (data_ + length_) - bytes_per_pixel_;
|
|
|
513 |
|
|
|
514 |
while (itr1 < itr2)
|
|
|
515 |
{
|
|
|
516 |
for (std::size_t i = 0; i < bytes_per_pixel_; ++i)
|
|
|
517 |
{
|
|
|
518 |
unsigned char* citr1 = itr1 + i;
|
|
|
519 |
unsigned char* citr2 = itr2 + i;
|
|
|
520 |
unsigned char tmp = *citr1;
|
|
|
521 |
*citr1 = *citr2;
|
|
|
522 |
*citr2 = tmp;
|
|
|
523 |
}
|
|
|
524 |
itr1 += bytes_per_pixel_;
|
|
|
525 |
itr2 -= bytes_per_pixel_;
|
|
|
526 |
}
|
|
|
527 |
}
|
|
|
528 |
|
|
|
529 |
inline void horizontal_flip()
|
|
|
530 |
{
|
|
|
531 |
for (unsigned int y = 0; y < height_; ++y)
|
|
|
532 |
{
|
|
|
533 |
unsigned char* itr1 = row(y);
|
|
|
534 |
unsigned char* itr2 = itr1 + row_increment_ - bytes_per_pixel_;
|
|
|
535 |
|
|
|
536 |
while (itr1 < itr2)
|
|
|
537 |
{
|
|
|
538 |
for (unsigned int i = 0; i < bytes_per_pixel_; ++i)
|
|
|
539 |
{
|
|
|
540 |
unsigned char* p1 = (itr1 + i);
|
|
|
541 |
unsigned char* p2 = (itr2 + i);
|
|
|
542 |
unsigned char tmp = *p1;
|
|
|
543 |
*p1 = *p2;
|
|
|
544 |
*p2 = tmp;
|
|
|
545 |
}
|
|
|
546 |
itr1 += bytes_per_pixel_;
|
|
|
547 |
itr2 -= bytes_per_pixel_;
|
|
|
548 |
}
|
|
|
549 |
}
|
|
|
550 |
}
|
|
|
551 |
|
|
|
552 |
inline void vertical_flip()
|
|
|
553 |
{
|
|
|
554 |
for (unsigned int y = 0; y < (height_ / 2); ++y)
|
|
|
555 |
{
|
|
|
556 |
unsigned char* itr1 = row(y);
|
|
|
557 |
unsigned char* itr2 = row(height_ - y - 1);
|
|
|
558 |
|
|
|
559 |
for (std::size_t x = 0; x < row_increment_; ++x)
|
|
|
560 |
{
|
|
|
561 |
unsigned char tmp = *(itr1 + x);
|
|
|
562 |
*(itr1 + x) = *(itr2 + x);
|
|
|
563 |
*(itr2 + x) = tmp;
|
|
|
564 |
}
|
|
|
565 |
}
|
|
|
566 |
}
|
|
|
567 |
|
|
|
568 |
inline void export_color_plane(const color_plane color, unsigned char* image)
|
|
|
569 |
{
|
|
|
570 |
for (unsigned char* itr = (data_ + offset(color)); itr < (data_ + length_); ++image, itr += bytes_per_pixel_)
|
|
|
571 |
{
|
|
|
572 |
(*image) = (*itr);
|
|
|
573 |
}
|
|
|
574 |
}
|
|
|
575 |
|
|
|
576 |
inline void export_color_plane(const color_plane color, bitmap_image& image)
|
|
|
577 |
{
|
|
|
578 |
if ((width_ != image.width_) || (height_ != image.height_))
|
|
|
579 |
{
|
|
|
580 |
image.setwidth_height(width_,height_);
|
|
|
581 |
}
|
|
|
582 |
|
|
|
583 |
image.clear();
|
|
|
584 |
unsigned char* itr1 = (data_ + offset(color));
|
|
|
585 |
unsigned char* itr1_end = (data_ + length_);
|
|
|
586 |
unsigned char* itr2 = (image.data_ + offset(color));
|
|
|
587 |
|
|
|
588 |
while (itr1 < itr1_end)
|
|
|
589 |
{
|
|
|
590 |
(*itr2) = (*itr1);
|
|
|
591 |
itr1 += bytes_per_pixel_;
|
|
|
592 |
itr2 += bytes_per_pixel_;
|
|
|
593 |
}
|
|
|
594 |
}
|
|
|
595 |
|
|
|
596 |
inline void export_response_image(const color_plane color, double* response_image)
|
|
|
597 |
{
|
|
|
598 |
for (unsigned char* itr = (data_ + offset(color)); itr < (data_ + length_); ++response_image, itr += bytes_per_pixel_)
|
|
|
599 |
{
|
|
|
600 |
(*response_image) = (1.0 * (*itr)) / 256.0;
|
|
|
601 |
}
|
|
|
602 |
}
|
|
|
603 |
|
|
|
604 |
inline void export_gray_scale_response_image(double* response_image)
|
|
|
605 |
{
|
|
|
606 |
for (unsigned char* itr = data_; itr < (data_ + length_); itr += bytes_per_pixel_)
|
|
|
607 |
{
|
|
|
608 |
unsigned char gray_value = static_cast<unsigned char>((0.299 * (*(itr + 2))) +
|
|
|
609 |
(0.587 * (*(itr + 1))) +
|
|
|
610 |
(0.114 * (*(itr + 0))));
|
|
|
611 |
(*response_image) = (1.0 * gray_value) / 256.0;
|
|
|
612 |
}
|
|
|
613 |
}
|
|
|
614 |
|
|
|
615 |
inline void export_rgb(double* red, double* green, double* blue) const
|
|
|
616 |
{
|
|
|
617 |
if (bgr_mode != channel_mode_) return;
|
|
|
618 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
619 |
{
|
|
|
620 |
(*blue) = (1.0 * (*(itr++))) / 256.0;
|
|
|
621 |
(*green) = (1.0 * (*(itr++))) / 256.0;
|
|
|
622 |
(*red) = (1.0 * (*(itr++))) / 256.0;
|
|
|
623 |
}
|
|
|
624 |
}
|
|
|
625 |
|
|
|
626 |
inline void export_rgb(float* red, float* green, float* blue) const
|
|
|
627 |
{
|
|
|
628 |
if (bgr_mode != channel_mode_) return;
|
|
|
629 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
630 |
{
|
|
|
631 |
(*blue) = (1.0f * (*(itr++))) / 256.0f;
|
|
|
632 |
(*green) = (1.0f * (*(itr++))) / 256.0f;
|
|
|
633 |
(*red) = (1.0f * (*(itr++))) / 256.0f;
|
|
|
634 |
}
|
|
|
635 |
}
|
|
|
636 |
|
|
|
637 |
inline void export_rgb(unsigned char* red, unsigned char* green, unsigned char* blue) const
|
|
|
638 |
{
|
|
|
639 |
if (bgr_mode != channel_mode_) return;
|
|
|
640 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
641 |
{
|
|
|
642 |
(*blue) = *(itr++);
|
|
|
643 |
(*green) = *(itr++);
|
|
|
644 |
(*red) = *(itr++);
|
|
|
645 |
}
|
|
|
646 |
}
|
|
|
647 |
|
|
|
648 |
inline void export_ycbcr(double* y, double* cb, double* cr)
|
|
|
649 |
{
|
|
|
650 |
if (bgr_mode != channel_mode_) return;
|
|
|
651 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++y, ++cb, ++cr)
|
|
|
652 |
{
|
|
|
653 |
double blue = (1.0 * (*(itr++)));
|
|
|
654 |
double green = (1.0 * (*(itr++)));
|
|
|
655 |
double red = (1.0 * (*(itr++)));
|
|
|
656 |
( *y) = clamp<double>( 16.0 + (1.0/256.0) * ( 65.738 * red + 129.057 * green + 25.064 * blue),1.0,254);
|
|
|
657 |
(*cb) = clamp<double>(128.0 + (1.0/256.0) * (- 37.945 * red - 74.494 * green + 112.439 * blue),1.0,254);
|
|
|
658 |
(*cr) = clamp<double>(128.0 + (1.0/256.0) * ( 112.439 * red - 94.154 * green - 18.285 * blue),1.0,254);
|
|
|
659 |
}
|
|
|
660 |
}
|
|
|
661 |
|
|
|
662 |
inline void export_rgb_normal(double* red, double* green, double* blue) const
|
|
|
663 |
{
|
|
|
664 |
if (bgr_mode != channel_mode_) return;
|
|
|
665 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
666 |
{
|
|
|
667 |
(*blue) = (1.0 * (*(itr++)));
|
|
|
668 |
(*green) = (1.0 * (*(itr++)));
|
|
|
669 |
(*red) = (1.0 * (*(itr++)));
|
|
|
670 |
}
|
|
|
671 |
}
|
|
|
672 |
|
|
|
673 |
inline void export_rgb_normal(float* red, float* green, float* blue) const
|
|
|
674 |
{
|
|
|
675 |
if (bgr_mode != channel_mode_) return;
|
|
|
676 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
677 |
{
|
|
|
678 |
(*blue) = (1.0f * (*(itr++)));
|
|
|
679 |
(*green) = (1.0f * (*(itr++)));
|
|
|
680 |
(*red) = (1.0f * (*(itr++)));
|
|
|
681 |
}
|
|
|
682 |
}
|
|
|
683 |
|
|
|
684 |
inline void import_rgb(double* red, double* green, double* blue)
|
|
|
685 |
{
|
|
|
686 |
if (bgr_mode != channel_mode_) return;
|
|
|
687 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
688 |
{
|
|
|
689 |
*(itr++) = static_cast<unsigned char>(256.0 * (*blue) );
|
|
|
690 |
*(itr++) = static_cast<unsigned char>(256.0 * (*green));
|
|
|
691 |
*(itr++) = static_cast<unsigned char>(256.0 * (*red) );
|
|
|
692 |
}
|
|
|
693 |
}
|
|
|
694 |
|
|
|
695 |
inline void import_rgb(float* red, float* green, float* blue)
|
|
|
696 |
{
|
|
|
697 |
if (bgr_mode != channel_mode_) return;
|
|
|
698 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
699 |
{
|
|
|
700 |
*(itr++) = static_cast<unsigned char>(256.0f * (*blue) );
|
|
|
701 |
*(itr++) = static_cast<unsigned char>(256.0f * (*green));
|
|
|
702 |
*(itr++) = static_cast<unsigned char>(256.0f * (*red) );
|
|
|
703 |
}
|
|
|
704 |
}
|
|
|
705 |
|
|
|
706 |
inline void import_rgb(unsigned char* red, unsigned char* green, unsigned char* blue)
|
|
|
707 |
{
|
|
|
708 |
if (bgr_mode != channel_mode_) return;
|
|
|
709 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
710 |
{
|
|
|
711 |
*(itr++) = (*blue );
|
|
|
712 |
*(itr++) = (*green);
|
|
|
713 |
*(itr++) = (*red );
|
|
|
714 |
}
|
|
|
715 |
}
|
|
|
716 |
|
|
|
717 |
inline void import_ycbcr(double* y, double* cb, double* cr)
|
|
|
718 |
{
|
|
|
719 |
if (bgr_mode != channel_mode_) return;
|
|
|
720 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++y, ++cb, ++cr)
|
|
|
721 |
{
|
|
|
722 |
double y_ = (*y);
|
|
|
723 |
double cb_ = (*cb);
|
|
|
724 |
double cr_ = (*cr);
|
|
|
725 |
*(itr++) = static_cast<unsigned char>(clamp((298.082 * y_ + 516.412 * cb_ ) / 256.000 - 276.836,0.0,255.0));
|
|
|
726 |
*(itr++) = static_cast<unsigned char>(clamp((298.082 * y_ - 100.291 * cb_ - 208.120 * cr_ ) / 256.000 + 135.576,0.0,255.0));
|
|
|
727 |
*(itr++) = static_cast<unsigned char>(clamp((298.082 * y_ + 408.583 * cr_ ) / 256.000 - 222.921,0.0,255.0));
|
|
|
728 |
}
|
|
|
729 |
}
|
|
|
730 |
|
|
|
731 |
inline void import_rgb_clamped(double* red, double* green, double* blue)
|
|
|
732 |
{
|
|
|
733 |
if (bgr_mode != channel_mode_) return;
|
|
|
734 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
735 |
{
|
|
|
736 |
*(itr++) = static_cast<unsigned char>(clamp<double>(256.0 * (*blue) ,0.0,255.0));
|
|
|
737 |
*(itr++) = static_cast<unsigned char>(clamp<double>(256.0 * (*green),0.0,255.0));
|
|
|
738 |
*(itr++) = static_cast<unsigned char>(clamp<double>(256.0 * (*red) ,0.0,255.0));
|
|
|
739 |
}
|
|
|
740 |
}
|
|
|
741 |
|
|
|
742 |
inline void import_rgb_clamped(float* red, float* green, float* blue)
|
|
|
743 |
{
|
|
|
744 |
if (bgr_mode != channel_mode_) return;
|
|
|
745 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
746 |
{
|
|
|
747 |
*(itr++) = static_cast<unsigned char>(clamp<double>(256.0f * (*blue) ,0.0,255.0));
|
|
|
748 |
*(itr++) = static_cast<unsigned char>(clamp<double>(256.0f * (*green),0.0,255.0));
|
|
|
749 |
*(itr++) = static_cast<unsigned char>(clamp<double>(256.0f * (*red) ,0.0,255.0));
|
|
|
750 |
}
|
|
|
751 |
}
|
|
|
752 |
|
|
|
753 |
inline void import_rgb_normal(double* red, double* green, double* blue)
|
|
|
754 |
{
|
|
|
755 |
if (bgr_mode != channel_mode_) return;
|
|
|
756 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
757 |
{
|
|
|
758 |
*(itr++) = static_cast<unsigned char>(*blue );
|
|
|
759 |
*(itr++) = static_cast<unsigned char>(*green);
|
|
|
760 |
*(itr++) = static_cast<unsigned char>(*red );
|
|
|
761 |
}
|
|
|
762 |
}
|
|
|
763 |
|
|
|
764 |
inline void import_rgb_normal(float* red, float* green, float* blue)
|
|
|
765 |
{
|
|
|
766 |
if (bgr_mode != channel_mode_) return;
|
|
|
767 |
for (unsigned char* itr = data_; itr < (data_ + length_); ++red, ++green, ++blue)
|
|
|
768 |
{
|
|
|
769 |
*(itr++) = static_cast<unsigned char>(*blue );
|
|
|
770 |
*(itr++) = static_cast<unsigned char>(*green);
|
|
|
771 |
*(itr++) = static_cast<unsigned char>(*red );
|
|
|
772 |
}
|
|
|
773 |
}
|
|
|
774 |
|
|
|
775 |
inline void subsample(bitmap_image& dest)
|
|
|
776 |
{
|
|
|
777 |
/*
|
|
|
778 |
Half sub-sample of original image.
|
|
|
779 |
*/
|
|
|
780 |
unsigned int w = 0;
|
|
|
781 |
unsigned int h = 0;
|
|
|
782 |
|
|
|
783 |
bool odd_width = false;
|
|
|
784 |
bool odd_height = false;
|
|
|
785 |
|
|
|
786 |
if (0 == (width_ % 2))
|
|
|
787 |
w = width_ / 2;
|
|
|
788 |
else
|
|
|
789 |
{
|
|
|
790 |
w = 1 + (width_ / 2);
|
|
|
791 |
odd_width = true;
|
|
|
792 |
}
|
|
|
793 |
|
|
|
794 |
if (0 == (height_ % 2))
|
|
|
795 |
h = height_ / 2;
|
|
|
796 |
else
|
|
|
797 |
{
|
|
|
798 |
h = 1 + (height_ / 2);
|
|
|
799 |
odd_height = true;
|
|
|
800 |
}
|
|
|
801 |
|
|
|
802 |
unsigned int horizontal_upper = (odd_width) ? w - 1 : w;
|
|
|
803 |
unsigned int vertical_upper = (odd_height) ? h - 1 : h;
|
|
|
804 |
|
|
|
805 |
dest.setwidth_height(w,h);
|
|
|
806 |
dest.clear();
|
|
|
807 |
|
|
|
808 |
unsigned char* s_itr[3];
|
|
|
809 |
const unsigned char* itr1[3];
|
|
|
810 |
const unsigned char* itr2[3];
|
|
|
811 |
|
|
|
812 |
s_itr[0] = dest.data_ + 0;
|
|
|
813 |
s_itr[1] = dest.data_ + 1;
|
|
|
814 |
s_itr[2] = dest.data_ + 2;
|
|
|
815 |
|
|
|
816 |
itr1[0] = data_ + 0;
|
|
|
817 |
itr1[1] = data_ + 1;
|
|
|
818 |
itr1[2] = data_ + 2;
|
|
|
819 |
|
|
|
820 |
itr2[0] = data_ + row_increment_ + 0;
|
|
|
821 |
itr2[1] = data_ + row_increment_ + 1;
|
|
|
822 |
itr2[2] = data_ + row_increment_ + 2;
|
|
|
823 |
|
|
|
824 |
unsigned int total = 0;
|
|
|
825 |
for (unsigned int j = 0; j < vertical_upper; ++j)
|
|
|
826 |
{
|
|
|
827 |
for (unsigned int i = 0; i < horizontal_upper; ++i)
|
|
|
828 |
{
|
|
|
829 |
for (unsigned int k = 0; k < bytes_per_pixel_; s_itr[k] += bytes_per_pixel_, ++k)
|
|
|
830 |
{
|
|
|
831 |
total = 0;
|
|
|
832 |
total += *(itr1[k]); itr1[k] += bytes_per_pixel_;
|
|
|
833 |
total += *(itr1[k]); itr1[k] += bytes_per_pixel_;
|
|
|
834 |
total += *(itr2[k]); itr2[k] += bytes_per_pixel_;
|
|
|
835 |
total += *(itr2[k]); itr2[k] += bytes_per_pixel_;
|
|
|
836 |
*(s_itr[k]) = static_cast<unsigned char>(total >> 2);
|
|
|
837 |
}
|
|
|
838 |
}
|
|
|
839 |
if (odd_width)
|
|
|
840 |
{
|
|
|
841 |
for (unsigned int k = 0; k < bytes_per_pixel_; s_itr[k] += bytes_per_pixel_, ++k)
|
|
|
842 |
{
|
|
|
843 |
total = 0;
|
|
|
844 |
total += *(itr1[k]); itr1[k] += bytes_per_pixel_;
|
|
|
845 |
total += *(itr2[k]); itr2[k] += bytes_per_pixel_;
|
|
|
846 |
*(s_itr[k]) = static_cast<unsigned char>(total >> 1);
|
|
|
847 |
}
|
|
|
848 |
}
|
|
|
849 |
|
|
|
850 |
for (unsigned int k = 0; k < bytes_per_pixel_; itr1[k] += row_increment_, ++k);
|
|
|
851 |
|
|
|
852 |
if (j != (vertical_upper - 1))
|
|
|
853 |
{
|
|
|
854 |
for (unsigned int k = 0; k < bytes_per_pixel_; itr2[k] += row_increment_, ++k);
|
|
|
855 |
}
|
|
|
856 |
}
|
|
|
857 |
if (odd_height)
|
|
|
858 |
{
|
|
|
859 |
for (unsigned int i = 0; i < horizontal_upper; ++i)
|
|
|
860 |
{
|
|
|
861 |
for (unsigned int k = 0; k < bytes_per_pixel_; s_itr[k] += bytes_per_pixel_, ++k)
|
|
|
862 |
{
|
|
|
863 |
total = 0;
|
|
|
864 |
total += *(itr1[k]); itr1[k] += bytes_per_pixel_;
|
|
|
865 |
total += *(itr2[k]); itr2[k] += bytes_per_pixel_;
|
|
|
866 |
*(s_itr[k]) = static_cast<unsigned char>(total >> 1);
|
|
|
867 |
}
|
|
|
868 |
}
|
|
|
869 |
if (odd_width)
|
|
|
870 |
{
|
|
|
871 |
for (unsigned int k = 0; k < bytes_per_pixel_; ++k)
|
|
|
872 |
{
|
|
|
873 |
(*(s_itr[k])) = *(itr1[k]);
|
|
|
874 |
}
|
|
|
875 |
}
|
|
|
876 |
}
|
|
|
877 |
}
|
|
|
878 |
|
|
|
879 |
inline void upsample(bitmap_image& dest)
|
|
|
880 |
{
|
|
|
881 |
/*
|
|
|
882 |
2x up-sample of original image.
|
|
|
883 |
*/
|
|
|
884 |
|
|
|
885 |
dest.setwidth_height(2 * width_ ,2 * height_);
|
|
|
886 |
dest.clear();
|
|
|
887 |
|
|
|
888 |
const unsigned char* s_itr[3];
|
|
|
889 |
unsigned char* itr1[3];
|
|
|
890 |
unsigned char* itr2[3];
|
|
|
891 |
|
|
|
892 |
s_itr[0] = data_ + 0;
|
|
|
893 |
s_itr[1] = data_ + 1;
|
|
|
894 |
s_itr[2] = data_ + 2;
|
|
|
895 |
|
|
|
896 |
itr1[0] = dest.data_ + 0;
|
|
|
897 |
itr1[1] = dest.data_ + 1;
|
|
|
898 |
itr1[2] = dest.data_ + 2;
|
|
|
899 |
|
|
|
900 |
itr2[0] = dest.data_ + dest.row_increment_ + 0;
|
|
|
901 |
itr2[1] = dest.data_ + dest.row_increment_ + 1;
|
|
|
902 |
itr2[2] = dest.data_ + dest.row_increment_ + 2;
|
|
|
903 |
|
|
|
904 |
for (unsigned int j = 0; j < height_; ++j)
|
|
|
905 |
{
|
|
|
906 |
for (unsigned int i = 0; i < width_; ++i)
|
|
|
907 |
{
|
|
|
908 |
for (unsigned int k = 0; k < bytes_per_pixel_; s_itr[k] += bytes_per_pixel_, ++k)
|
|
|
909 |
{
|
|
|
910 |
*(itr1[k]) = *(s_itr[k]); itr1[k] += bytes_per_pixel_;
|
|
|
911 |
*(itr1[k]) = *(s_itr[k]); itr1[k] += bytes_per_pixel_;
|
|
|
912 |
|
|
|
913 |
*(itr2[k]) = *(s_itr[k]); itr2[k] += bytes_per_pixel_;
|
|
|
914 |
*(itr2[k]) = *(s_itr[k]); itr2[k] += bytes_per_pixel_;
|
|
|
915 |
}
|
|
|
916 |
}
|
|
|
917 |
for (unsigned int k = 0; k < bytes_per_pixel_; ++k)
|
|
|
918 |
{
|
|
|
919 |
itr1[k] += dest.row_increment_;
|
|
|
920 |
itr2[k] += dest.row_increment_;
|
|
|
921 |
}
|
|
|
922 |
}
|
|
|
923 |
}
|
|
|
924 |
|
|
|
925 |
inline void alpha_blend(const double& alpha, const bitmap_image& image)
|
|
|
926 |
{
|
|
|
927 |
if ((image.width_ != width_) || (image.height_ != height_))
|
|
|
928 |
{
|
|
|
929 |
return;
|
|
|
930 |
}
|
|
|
931 |
|
|
|
932 |
if ((alpha < 0.0) || (alpha > 1.0))
|
|
|
933 |
{
|
|
|
934 |
return;
|
|
|
935 |
}
|
|
|
936 |
|
|
|
937 |
unsigned char* itr1 = data_;
|
|
|
938 |
unsigned char* itr1_end = data_ + length_;
|
|
|
939 |
unsigned char* itr2 = image.data_;
|
|
|
940 |
|
|
|
941 |
double alpha_compliment = 1.0 - alpha;
|
|
|
942 |
|
|
|
943 |
while (itr1 != itr1_end)
|
|
|
944 |
{
|
|
|
945 |
*(itr1) = static_cast<unsigned char>((alpha * (*itr2)) + (alpha_compliment * (*itr1)));
|
|
|
946 |
++itr1;
|
|
|
947 |
++itr2;
|
|
|
948 |
}
|
|
|
949 |
}
|
|
|
950 |
|
|
|
951 |
inline double psnr(const bitmap_image& image)
|
|
|
952 |
{
|
|
|
953 |
if ((image.width_ != width_) || (image.height_ != height_))
|
|
|
954 |
{
|
|
|
955 |
return 0.0;
|
|
|
956 |
}
|
|
|
957 |
|
|
|
958 |
unsigned char* itr1 = data_;
|
|
|
959 |
unsigned char* itr2 = image.data_;
|
|
|
960 |
|
|
|
961 |
double mse = 0.0;
|
|
|
962 |
|
|
|
963 |
while (itr1 != (data_ + length_))
|
|
|
964 |
{
|
|
|
965 |
double v = (static_cast<double>(*itr1) - static_cast<double>(*itr2));
|
|
|
966 |
mse += v * v;
|
|
|
967 |
++itr1;
|
|
|
968 |
++itr2;
|
|
|
969 |
}
|
|
|
970 |
if (mse <= 0.0000001)
|
|
|
971 |
{
|
|
|
972 |
return 1000000.0;
|
|
|
973 |
}
|
|
|
974 |
else
|
|
|
975 |
{
|
|
|
976 |
mse /= (3.0 * width_ * height_);
|
|
|
977 |
return 20.0 * std::log10(255.0 / std::sqrt(mse));
|
|
|
978 |
}
|
|
|
979 |
}
|
|
|
980 |
|
|
|
981 |
inline double psnr(const unsigned int& x,
|
|
|
982 |
const unsigned int& y,
|
|
|
983 |
const bitmap_image& image)
|
|
|
984 |
{
|
|
|
985 |
if ((x + image.width()) > width_) { return 0.0; }
|
|
|
986 |
if ((y + image.height()) > height_) { return 0.0; }
|
|
|
987 |
|
|
|
988 |
double mse = 0.0;
|
|
|
989 |
|
|
|
990 |
for (unsigned int r = 0; r < image.height(); ++r)
|
|
|
991 |
{
|
|
|
992 |
unsigned char* itr1 = row(r + y) + x * bytes_per_pixel_;
|
|
|
993 |
unsigned char* itr1_end = itr1 + (image.width() * bytes_per_pixel_);
|
|
|
994 |
const unsigned char* itr2 = image.row(r);
|
|
|
995 |
while (itr1 != itr1_end)
|
|
|
996 |
{
|
|
|
997 |
double v = (static_cast<double>(*itr1) - static_cast<double>(*itr2));
|
|
|
998 |
mse += v * v;
|
|
|
999 |
++itr1;
|
|
|
1000 |
++itr2;
|
|
|
1001 |
}
|
|
|
1002 |
}
|
|
|
1003 |
if (mse <= 0.0000001)
|
|
|
1004 |
{
|
|
|
1005 |
return 1000000.0;
|
|
|
1006 |
}
|
|
|
1007 |
else
|
|
|
1008 |
{
|
|
|
1009 |
mse /= (3.0 * image.width() * image.height());
|
|
|
1010 |
return 20.0 * std::log10(255.0 / std::sqrt(mse));
|
|
|
1011 |
}
|
|
|
1012 |
}
|
|
|
1013 |
|
|
|
1014 |
inline void histogram(const color_plane color, double hist[256])
|
|
|
1015 |
{
|
|
|
1016 |
std::fill(hist,hist + 256,0.0);
|
|
|
1017 |
for (unsigned char* itr = (data_ + offset(color)); itr < (data_ + length_); itr += bytes_per_pixel_)
|
|
|
1018 |
{
|
|
|
1019 |
++hist[(*itr)];
|
|
|
1020 |
}
|
|
|
1021 |
}
|
|
|
1022 |
|
|
|
1023 |
inline void histogram_normalized(const color_plane color, double hist[256])
|
|
|
1024 |
{
|
|
|
1025 |
histogram(color,hist);
|
|
|
1026 |
double* h_itr = hist;
|
|
|
1027 |
const double* h_end = hist + 256;
|
|
|
1028 |
const double pixel_count = static_cast<double>(width_ * height_);
|
|
|
1029 |
while (h_end != h_itr) { *(h_itr++) /= pixel_count; }
|
|
|
1030 |
}
|
|
|
1031 |
|
|
|
1032 |
inline unsigned int offset(const color_plane color)
|
|
|
1033 |
{
|
|
|
1034 |
switch(channel_mode_)
|
|
|
1035 |
{
|
|
|
1036 |
case rgb_mode : {
|
|
|
1037 |
switch (color)
|
|
|
1038 |
{
|
|
|
1039 |
case red_plane : return 0;
|
|
|
1040 |
case green_plane : return 1;
|
|
|
1041 |
case blue_plane : return 2;
|
|
|
1042 |
default : return std::numeric_limits<unsigned int>::max();
|
|
|
1043 |
}
|
|
|
1044 |
}
|
|
|
1045 |
|
|
|
1046 |
case bgr_mode : {
|
|
|
1047 |
switch (color)
|
|
|
1048 |
{
|
|
|
1049 |
case red_plane : return 2;
|
|
|
1050 |
case green_plane : return 1;
|
|
|
1051 |
case blue_plane : return 0;
|
|
|
1052 |
default : return std::numeric_limits<unsigned int>::max();
|
|
|
1053 |
}
|
|
|
1054 |
}
|
|
|
1055 |
default : return std::numeric_limits<unsigned int>::max();
|
|
|
1056 |
}
|
|
|
1057 |
}
|
|
|
1058 |
|
|
|
1059 |
inline void incremental()
|
|
|
1060 |
{
|
|
|
1061 |
unsigned char current_color = 0;
|
|
|
1062 |
for (unsigned char* itr = data_; itr < (data_ + length_);)
|
|
|
1063 |
{
|
|
|
1064 |
(*itr++) = (current_color);
|
|
|
1065 |
(*itr++) = (current_color);
|
|
|
1066 |
(*itr++) = (current_color);
|
|
|
1067 |
++current_color;
|
|
|
1068 |
}
|
|
|
1069 |
}
|
|
|
1070 |
|
|
|
1071 |
private:
|
|
|
1072 |
|
|
|
1073 |
struct bitmap_file_header
|
|
|
1074 |
{
|
|
|
1075 |
unsigned short type;
|
|
|
1076 |
unsigned int size;
|
|
|
1077 |
unsigned short reserved1;
|
|
|
1078 |
unsigned short reserved2;
|
|
|
1079 |
unsigned int off_bits;
|
|
|
1080 |
|
|
|
1081 |
unsigned int struct_size()
|
|
|
1082 |
{
|
|
|
1083 |
return sizeof(type) +
|
|
|
1084 |
sizeof(size) +
|
|
|
1085 |
sizeof(reserved1) +
|
|
|
1086 |
sizeof(reserved2) +
|
|
|
1087 |
sizeof(off_bits);
|
|
|
1088 |
}
|
|
|
1089 |
};
|
|
|
1090 |
|
|
|
1091 |
struct bitmap_information_header
|
|
|
1092 |
{
|
|
|
1093 |
unsigned int size;
|
|
|
1094 |
unsigned int width;
|
|
|
1095 |
unsigned int height;
|
|
|
1096 |
unsigned short planes;
|
|
|
1097 |
unsigned short bit_count;
|
|
|
1098 |
unsigned int compression;
|
|
|
1099 |
unsigned int size_image;
|
|
|
1100 |
unsigned int x_pels_per_meter;
|
|
|
1101 |
unsigned int y_pels_per_meter;
|
|
|
1102 |
unsigned int clr_used;
|
|
|
1103 |
unsigned int clr_important;
|
|
|
1104 |
|
|
|
1105 |
unsigned int struct_size()
|
|
|
1106 |
{
|
|
|
1107 |
return sizeof(size) +
|
|
|
1108 |
sizeof(width) +
|
|
|
1109 |
sizeof(height) +
|
|
|
1110 |
sizeof(planes) +
|
|
|
1111 |
sizeof(bit_count) +
|
|
|
1112 |
sizeof(compression) +
|
|
|
1113 |
sizeof(size_image) +
|
|
|
1114 |
sizeof(x_pels_per_meter) +
|
|
|
1115 |
sizeof(y_pels_per_meter) +
|
|
|
1116 |
sizeof(clr_used) +
|
|
|
1117 |
sizeof(clr_important);
|
|
|
1118 |
}
|
|
|
1119 |
};
|
|
|
1120 |
|
|
|
1121 |
inline bool big_endian()
|
|
|
1122 |
{
|
|
|
1123 |
unsigned int v = 0x01;
|
|
|
1124 |
return (1 != reinterpret_cast<char*>(&v)[0]);
|
|
|
1125 |
}
|
|
|
1126 |
|
|
|
1127 |
inline unsigned short flip(const unsigned short& v)
|
|
|
1128 |
{
|
|
|
1129 |
return ((v >> 8) | (v << 8));
|
|
|
1130 |
}
|
|
|
1131 |
|
|
|
1132 |
inline unsigned int flip(const unsigned int& v)
|
|
|
1133 |
{
|
|
|
1134 |
return (((v & 0xFF000000) >> 0x18) |
|
|
|
1135 |
((v & 0x000000FF) << 0x18) |
|
|
|
1136 |
((v & 0x00FF0000) >> 0x08) |
|
|
|
1137 |
((v & 0x0000FF00) << 0x08));
|
|
|
1138 |
}
|
|
|
1139 |
|
|
|
1140 |
template<typename T>
|
|
|
1141 |
inline void read_from_stream(std::ifstream& stream,T& t)
|
|
|
1142 |
{
|
|
|
1143 |
stream.read(reinterpret_cast<char*>(&t),sizeof(T));
|
|
|
1144 |
}
|
|
|
1145 |
|
|
|
1146 |
template<typename T>
|
|
|
1147 |
inline void write_to_stream(std::ofstream& stream,const T& t)
|
|
|
1148 |
{
|
|
|
1149 |
stream.write(reinterpret_cast<const char*>(&t),sizeof(T));
|
|
|
1150 |
}
|
|
|
1151 |
|
|
|
1152 |
inline void read_bfh(std::ifstream& stream, bitmap_file_header& bfh)
|
|
|
1153 |
{
|
|
|
1154 |
read_from_stream(stream,bfh.type);
|
|
|
1155 |
read_from_stream(stream,bfh.size);
|
|
|
1156 |
read_from_stream(stream,bfh.reserved1);
|
|
|
1157 |
read_from_stream(stream,bfh.reserved2);
|
|
|
1158 |
read_from_stream(stream,bfh.off_bits);
|
|
|
1159 |
|
|
|
1160 |
if (big_endian())
|
|
|
1161 |
{
|
|
|
1162 |
bfh.type = flip(bfh.type);
|
|
|
1163 |
bfh.size = flip(bfh.size);
|
|
|
1164 |
bfh.reserved1 = flip(bfh.reserved1);
|
|
|
1165 |
bfh.reserved2 = flip(bfh.reserved2);
|
|
|
1166 |
bfh.off_bits = flip(bfh.off_bits);
|
|
|
1167 |
}
|
|
|
1168 |
}
|
|
|
1169 |
|
|
|
1170 |
inline void write_bfh(std::ofstream& stream, const bitmap_file_header& bfh)
|
|
|
1171 |
{
|
|
|
1172 |
if (big_endian())
|
|
|
1173 |
{
|
|
|
1174 |
write_to_stream(stream,flip(bfh.type));
|
|
|
1175 |
write_to_stream(stream,flip(bfh.size));
|
|
|
1176 |
write_to_stream(stream,flip(bfh.reserved1));
|
|
|
1177 |
write_to_stream(stream,flip(bfh.reserved2));
|
|
|
1178 |
write_to_stream(stream,flip(bfh.off_bits));
|
|
|
1179 |
}
|
|
|
1180 |
else
|
|
|
1181 |
{
|
|
|
1182 |
write_to_stream(stream,bfh.type);
|
|
|
1183 |
write_to_stream(stream,bfh.size);
|
|
|
1184 |
write_to_stream(stream,bfh.reserved1);
|
|
|
1185 |
write_to_stream(stream,bfh.reserved2);
|
|
|
1186 |
write_to_stream(stream,bfh.off_bits);
|
|
|
1187 |
}
|
|
|
1188 |
}
|
|
|
1189 |
|
|
|
1190 |
inline void read_bih(std::ifstream& stream,bitmap_information_header& bih)
|
|
|
1191 |
{
|
|
|
1192 |
read_from_stream(stream,bih.size);
|
|
|
1193 |
read_from_stream(stream,bih.width);
|
|
|
1194 |
read_from_stream(stream,bih.height);
|
|
|
1195 |
read_from_stream(stream,bih.planes);
|
|
|
1196 |
read_from_stream(stream,bih.bit_count);
|
|
|
1197 |
read_from_stream(stream,bih.compression);
|
|
|
1198 |
read_from_stream(stream,bih.size_image);
|
|
|
1199 |
read_from_stream(stream,bih.x_pels_per_meter);
|
|
|
1200 |
read_from_stream(stream,bih.y_pels_per_meter);
|
|
|
1201 |
read_from_stream(stream,bih.clr_used);
|
|
|
1202 |
read_from_stream(stream,bih.clr_important);
|
|
|
1203 |
|
|
|
1204 |
if (big_endian())
|
|
|
1205 |
{
|
|
|
1206 |
bih.size = flip(bih.size);
|
|
|
1207 |
bih.width = flip(bih.width);
|
|
|
1208 |
bih.height = flip(bih.height);
|
|
|
1209 |
bih.planes = flip(bih.planes);
|
|
|
1210 |
bih.bit_count = flip(bih.bit_count);
|
|
|
1211 |
bih.compression = flip(bih.compression);
|
|
|
1212 |
bih.size_image = flip(bih.size_image);
|
|
|
1213 |
bih.x_pels_per_meter = flip(bih.x_pels_per_meter);
|
|
|
1214 |
bih.y_pels_per_meter = flip(bih.y_pels_per_meter);
|
|
|
1215 |
bih.clr_used = flip(bih.clr_used);
|
|
|
1216 |
bih.clr_important = flip(bih.clr_important);
|
|
|
1217 |
}
|
|
|
1218 |
}
|
|
|
1219 |
|
|
|
1220 |
inline void write_bih(std::ofstream& stream, const bitmap_information_header& bih)
|
|
|
1221 |
{
|
|
|
1222 |
if (big_endian())
|
|
|
1223 |
{
|
|
|
1224 |
write_to_stream(stream,flip(bih.size));
|
|
|
1225 |
write_to_stream(stream,flip(bih.width));
|
|
|
1226 |
write_to_stream(stream,flip(bih.height));
|
|
|
1227 |
write_to_stream(stream,flip(bih.planes));
|
|
|
1228 |
write_to_stream(stream,flip(bih.bit_count));
|
|
|
1229 |
write_to_stream(stream,flip(bih.compression));
|
|
|
1230 |
write_to_stream(stream,flip(bih.size_image));
|
|
|
1231 |
write_to_stream(stream,flip(bih.x_pels_per_meter));
|
|
|
1232 |
write_to_stream(stream,flip(bih.y_pels_per_meter));
|
|
|
1233 |
write_to_stream(stream,flip(bih.clr_used));
|
|
|
1234 |
write_to_stream(stream,flip(bih.clr_important));
|
|
|
1235 |
}
|
|
|
1236 |
else
|
|
|
1237 |
{
|
|
|
1238 |
write_to_stream(stream,bih.size);
|
|
|
1239 |
write_to_stream(stream,bih.width);
|
|
|
1240 |
write_to_stream(stream,bih.height);
|
|
|
1241 |
write_to_stream(stream,bih.planes);
|
|
|
1242 |
write_to_stream(stream,bih.bit_count);
|
|
|
1243 |
write_to_stream(stream,bih.compression);
|
|
|
1244 |
write_to_stream(stream,bih.size_image);
|
|
|
1245 |
write_to_stream(stream,bih.x_pels_per_meter);
|
|
|
1246 |
write_to_stream(stream,bih.y_pels_per_meter);
|
|
|
1247 |
write_to_stream(stream,bih.clr_used);
|
|
|
1248 |
write_to_stream(stream,bih.clr_important);
|
|
|
1249 |
}
|
|
|
1250 |
}
|
|
|
1251 |
void create_bitmap()
|
|
|
1252 |
{
|
|
|
1253 |
length_ = width_ * height_ * bytes_per_pixel_;
|
|
|
1254 |
row_increment_ = width_ * bytes_per_pixel_;
|
|
|
1255 |
if (0 != data_)
|
|
|
1256 |
{
|
|
|
1257 |
delete[] data_;
|
|
|
1258 |
}
|
|
|
1259 |
data_ = new unsigned char[length_];
|
|
|
1260 |
}
|
|
|
1261 |
|
|
|
1262 |
void load_bitmap()
|
|
|
1263 |
{
|
|
|
1264 |
std::ifstream stream(file_name_.c_str(),std::ios::binary);
|
|
|
1265 |
if (!stream)
|
|
|
1266 |
{
|
|
|
1267 |
std::cerr << "bitmap_image::load_bitmap() ERROR: bitmap_image - file " << file_name_ << " not found!" << std::endl;
|
|
|
1268 |
return;
|
|
|
1269 |
}
|
|
|
1270 |
|
|
|
1271 |
bitmap_file_header bfh;
|
|
|
1272 |
bitmap_information_header bih;
|
|
|
1273 |
|
|
|
1274 |
read_bfh(stream,bfh);
|
|
|
1275 |
read_bih(stream,bih);
|
|
|
1276 |
|
|
|
1277 |
if (bfh.type != 19778)
|
|
|
1278 |
{
|
|
|
1279 |
stream.close();
|
|
|
1280 |
std::cerr << "bitmap_image::load_bitmap() ERROR: bitmap_image - Invalid type value " << bfh.type << " expected 19778." << std::endl;
|
|
|
1281 |
return;
|
|
|
1282 |
}
|
|
|
1283 |
|
|
|
1284 |
if (bih.bit_count != 24)
|
|
|
1285 |
{
|
|
|
1286 |
stream.close();
|
|
|
1287 |
std::cerr << "bitmap_image::load_bitmap() ERROR: bitmap_image - Invalid bit depth " << bih.bit_count << " expected 24." << std::endl;
|
|
|
1288 |
return;
|
|
|
1289 |
}
|
|
|
1290 |
|
|
|
1291 |
height_ = bih.height;
|
|
|
1292 |
width_ = bih.width;
|
|
|
1293 |
|
|
|
1294 |
bytes_per_pixel_ = bih.bit_count >> 3;
|
|
|
1295 |
|
|
|
1296 |
unsigned int padding = (4 - ((3 * width_) % 4)) % 4;
|
|
|
1297 |
char padding_data[4] = {0,0,0,0};
|
|
|
1298 |
|
|
|
1299 |
create_bitmap();
|
|
|
1300 |
|
|
|
1301 |
for (unsigned int i = 0; i < height_; ++i)
|
|
|
1302 |
{
|
|
|
1303 |
unsigned char* data_ptr = row(height_ - i - 1); // read in inverted row order
|
|
|
1304 |
stream.read(reinterpret_cast<char*>(data_ptr),sizeof(char) * bytes_per_pixel_ * width_);
|
|
|
1305 |
stream.read(padding_data,padding);
|
|
|
1306 |
}
|
|
|
1307 |
}
|
|
|
1308 |
|
|
|
1309 |
inline void reverse_channels()
|
|
|
1310 |
{
|
|
|
1311 |
if (3 != bytes_per_pixel_) return;
|
|
|
1312 |
for (unsigned char* itr = data_; itr < (data_ + length_); itr += bytes_per_pixel_)
|
|
|
1313 |
{
|
|
|
1314 |
unsigned char tmp = *(itr + 0);
|
|
|
1315 |
*(itr + 0) = *(itr + 2);
|
|
|
1316 |
*(itr + 2) = tmp;
|
|
|
1317 |
}
|
|
|
1318 |
}
|
|
|
1319 |
|
|
|
1320 |
template<typename T>
|
|
|
1321 |
T clamp(const T& v, const T& lower_range, const T& upper_range)
|
|
|
1322 |
{
|
|
|
1323 |
if (v < lower_range)
|
|
|
1324 |
return lower_range;
|
|
|
1325 |
else if (v > upper_range)
|
|
|
1326 |
return upper_range;
|
|
|
1327 |
else
|
|
|
1328 |
return v;
|
|
|
1329 |
}
|
|
|
1330 |
|
|
|
1331 |
std::string file_name_;
|
|
|
1332 |
unsigned char* data_;
|
|
|
1333 |
unsigned int bytes_per_pixel_;
|
|
|
1334 |
unsigned int length_;
|
|
|
1335 |
unsigned int width_;
|
|
|
1336 |
unsigned int height_;
|
|
|
1337 |
unsigned int row_increment_;
|
|
|
1338 |
channel_mode channel_mode_;
|
|
|
1339 |
};
|
|
|
1340 |
|
|
|
1341 |
|
|
|
1342 |
struct rgb_store
|
|
|
1343 |
{
|
|
|
1344 |
unsigned char red;
|
|
|
1345 |
unsigned char green;
|
|
|
1346 |
unsigned char blue;
|
|
|
1347 |
};
|
|
|
1348 |
|
|
|
1349 |
inline void rgb_to_ycbcr(const unsigned int& length, double* red, double* green, double* blue,
|
|
|
1350 |
double* y, double* cb, double* cr)
|
|
|
1351 |
{
|
|
|
1352 |
unsigned int i = 0;
|
|
|
1353 |
while (i < length)
|
|
|
1354 |
{
|
|
|
1355 |
( *y) = 16.0 + ( 65.481 * (*red) + 128.553 * (*green) + 24.966 * (*blue));
|
|
|
1356 |
(*cb) = 128.0 + ( -37.797 * (*red) + -74.203 * (*green) + 112.000 * (*blue));
|
|
|
1357 |
(*cr) = 128.0 + ( 112.000 * (*red) + -93.786 * (*green) - 18.214 * (*blue));
|
|
|
1358 |
++i;
|
|
|
1359 |
++red; ++green; ++blue;
|
|
|
1360 |
++y; ++cb; ++cr;
|
|
|
1361 |
}
|
|
|
1362 |
}
|
|
|
1363 |
|
|
|
1364 |
inline void ycbcr_to_rgb(const unsigned int& length, double* y, double* cb, double* cr,
|
|
|
1365 |
double* red, double* green, double* blue)
|
|
|
1366 |
{
|
|
|
1367 |
unsigned int i = 0;
|
|
|
1368 |
while (i < length)
|
|
|
1369 |
{
|
|
|
1370 |
double y_ = (*y) - 16.0;
|
|
|
1371 |
double cb_ = (*cb) - 128.0;
|
|
|
1372 |
double cr_ = (*cr) - 128.0;
|
|
|
1373 |
|
|
|
1374 |
(*red) = 0.000456621 * y_ + 0.00625893 * cr_;
|
|
|
1375 |
(*green) = 0.000456621 * y_ - 0.00153632 * cb_ - 0.00318811 * cr_;
|
|
|
1376 |
(*blue) = 0.000456621 * y_ + 0.00791071 * cb_;
|
|
|
1377 |
|
|
|
1378 |
++i;
|
|
|
1379 |
++red; ++green; ++blue;
|
|
|
1380 |
++y; ++cb; ++cr;
|
|
|
1381 |
}
|
|
|
1382 |
}
|
|
|
1383 |
|
|
|
1384 |
inline void subsample(const unsigned int& width,
|
|
|
1385 |
const unsigned int& height,
|
|
|
1386 |
const double* source,
|
|
|
1387 |
unsigned int& w,
|
|
|
1388 |
unsigned int& h,
|
|
|
1389 |
double** dest)
|
|
|
1390 |
{
|
|
|
1391 |
/* Single channel. */
|
|
|
1392 |
|
|
|
1393 |
w = 0;
|
|
|
1394 |
h = 0;
|
|
|
1395 |
|
|
|
1396 |
bool odd_width = false;
|
|
|
1397 |
bool odd_height = false;
|
|
|
1398 |
|
|
|
1399 |
if (0 == (width % 2))
|
|
|
1400 |
w = width / 2;
|
|
|
1401 |
else
|
|
|
1402 |
{
|
|
|
1403 |
w = 1 + (width / 2);
|
|
|
1404 |
odd_width = true;
|
|
|
1405 |
}
|
|
|
1406 |
|
|
|
1407 |
if (0 == (height % 2))
|
|
|
1408 |
h = height / 2;
|
|
|
1409 |
else
|
|
|
1410 |
{
|
|
|
1411 |
h = 1 + (height / 2);
|
|
|
1412 |
odd_height = true;
|
|
|
1413 |
}
|
|
|
1414 |
unsigned int horizontal_upper = (odd_width) ? w - 1 : w;
|
|
|
1415 |
unsigned int vertical_upper = (odd_height) ? h - 1 : h;
|
|
|
1416 |
|
|
|
1417 |
*dest = new double[w * h];
|
|
|
1418 |
|
|
|
1419 |
double* s_itr = *dest;
|
|
|
1420 |
const double* itr1 = source;
|
|
|
1421 |
const double* itr2 = source + width;
|
|
|
1422 |
|
|
|
1423 |
for (unsigned int j = 0; j < vertical_upper; ++j)
|
|
|
1424 |
{
|
|
|
1425 |
for (unsigned int i = 0; i < horizontal_upper; ++i, ++s_itr)
|
|
|
1426 |
{
|
|
|
1427 |
(*s_itr) = *(itr1++);
|
|
|
1428 |
(*s_itr) += *(itr1++);
|
|
|
1429 |
(*s_itr) += *(itr2++);
|
|
|
1430 |
(*s_itr) += *(itr2++);
|
|
|
1431 |
(*s_itr) /= 4.0;
|
|
|
1432 |
}
|
|
|
1433 |
if (odd_width)
|
|
|
1434 |
{
|
|
|
1435 |
(*(s_itr++)) = ( (*itr1++) + (*itr2++) ) / 2.0;
|
|
|
1436 |
}
|
|
|
1437 |
|
|
|
1438 |
itr1 += width;
|
|
|
1439 |
if (j != (vertical_upper -1))
|
|
|
1440 |
{
|
|
|
1441 |
itr2 += width;
|
|
|
1442 |
}
|
|
|
1443 |
}
|
|
|
1444 |
if (odd_height)
|
|
|
1445 |
{
|
|
|
1446 |
for (unsigned int i = 0; i < horizontal_upper; ++i, ++s_itr)
|
|
|
1447 |
{
|
|
|
1448 |
(*s_itr) += (*(itr1++));
|
|
|
1449 |
(*s_itr) += (*(itr1++));
|
|
|
1450 |
(*s_itr) /= 2.0;
|
|
|
1451 |
}
|
|
|
1452 |
if (odd_width)
|
|
|
1453 |
{
|
|
|
1454 |
(*(s_itr++)) = (*itr1);
|
|
|
1455 |
}
|
|
|
1456 |
}
|
|
|
1457 |
}
|
|
|
1458 |
|
|
|
1459 |
inline void upsample(const unsigned int& width,
|
|
|
1460 |
const unsigned int& height,
|
|
|
1461 |
const double* source,
|
|
|
1462 |
unsigned int& w,
|
|
|
1463 |
unsigned int& h,
|
|
|
1464 |
double** dest)
|
|
|
1465 |
{
|
|
|
1466 |
/* Single channel. */
|
|
|
1467 |
|
|
|
1468 |
w = 2 * width;
|
|
|
1469 |
h = 2 * height;
|
|
|
1470 |
|
|
|
1471 |
*dest = new double[w * h];
|
|
|
1472 |
|
|
|
1473 |
const double* s_itr = source;
|
|
|
1474 |
double* itr1 = *dest;
|
|
|
1475 |
double* itr2 = *dest + w;
|
|
|
1476 |
|
|
|
1477 |
for (unsigned int j = 0; j < height; ++j)
|
|
|
1478 |
{
|
|
|
1479 |
for (unsigned int i = 0; i < width; ++i, ++s_itr)
|
|
|
1480 |
{
|
|
|
1481 |
*(itr1++) = (*s_itr);
|
|
|
1482 |
*(itr1++) = (*s_itr);
|
|
|
1483 |
*(itr2++) = (*s_itr);
|
|
|
1484 |
*(itr2++) = (*s_itr);
|
|
|
1485 |
}
|
|
|
1486 |
itr1 += w;
|
|
|
1487 |
itr2 += w;
|
|
|
1488 |
}
|
|
|
1489 |
}
|
|
|
1490 |
|
|
|
1491 |
inline void checkered_pattern(const unsigned int x_width,
|
|
|
1492 |
const unsigned int y_width,
|
|
|
1493 |
const unsigned char value,
|
|
|
1494 |
const bitmap_image::color_plane color,
|
|
|
1495 |
bitmap_image& image)
|
|
|
1496 |
{
|
|
|
1497 |
if ((x_width >= image.width()) || (y_width >= image.height()))
|
|
|
1498 |
{
|
|
|
1499 |
return;
|
|
|
1500 |
}
|
|
|
1501 |
|
|
|
1502 |
bool setter_x = false;
|
|
|
1503 |
bool setter_y = true;
|
|
|
1504 |
|
|
|
1505 |
for (unsigned int y = 0; y < image.height(); ++y)
|
|
|
1506 |
{
|
|
|
1507 |
if (0 == (y % y_width)) setter_y = !setter_y;
|
|
|
1508 |
|
|
|
1509 |
unsigned char* row = image.row(y) + image.offset(color);
|
|
|
1510 |
for (unsigned int x = 0; x < image.width(); ++x, row += image.bytes_per_pixel())
|
|
|
1511 |
{
|
|
|
1512 |
if (0 == (x % x_width)) setter_x = !setter_x;
|
|
|
1513 |
if (setter_x && !setter_y)
|
|
|
1514 |
{
|
|
|
1515 |
*row = value;
|
|
|
1516 |
}
|
|
|
1517 |
}
|
|
|
1518 |
}
|
|
|
1519 |
}
|
|
|
1520 |
|
|
|
1521 |
inline void plasma(bitmap_image& image,
|
|
|
1522 |
const double& x, const double& y,
|
|
|
1523 |
const double& width, const double& height,
|
|
|
1524 |
const double& c1, const double& c2,
|
|
|
1525 |
const double& c3, const double& c4,
|
|
|
1526 |
const double& roughness = 3.0,
|
|
|
1527 |
const rgb_store colormap[] = 0)
|
|
|
1528 |
{
|
|
|
1529 |
// Note: c1,c2,c3,c4 -> [0.0,1.0]
|
|
|
1530 |
|
|
|
1531 |
double half_width = ( width / 2.0);
|
|
|
1532 |
double half_height = (height / 2.0);
|
|
|
1533 |
|
|
|
1534 |
if ((width >= 1.0) || (height >= 1.0))
|
|
|
1535 |
{
|
|
|
1536 |
double corner1 = (c1 + c2) / 2.0;
|
|
|
1537 |
double corner2 = (c2 + c3) / 2.0;
|
|
|
1538 |
double corner3 = (c3 + c4) / 2.0;
|
|
|
1539 |
double corner4 = (c4 + c1) / 2.0;
|
|
|
1540 |
double center = (c1 + c2 + c3 + c4) / 4.0 +
|
|
|
1541 |
((1.0 * ::rand() /(1.0 * RAND_MAX)) - 0.5) * // should use a better rng
|
|
|
1542 |
((1.0 * half_width + half_height) / (image.width() + image.height()) * roughness);
|
|
|
1543 |
|
|
|
1544 |
center = std::min<double>(std::max<double>(0.0,center),1.0);
|
|
|
1545 |
|
|
|
1546 |
plasma(image, x, y, half_width, half_height, c1, corner1, center, corner4,roughness,colormap);
|
|
|
1547 |
plasma(image, x + half_width, y, half_width, half_height, corner1, c2, corner2, center,roughness,colormap);
|
|
|
1548 |
plasma(image, x + half_width, y + half_height, half_width, half_height, center, corner2, c3, corner3,roughness,colormap);
|
|
|
1549 |
plasma(image, x, y + half_height, half_width, half_height, corner4, center, corner3, c4,roughness,colormap);
|
|
|
1550 |
}
|
|
|
1551 |
else
|
|
|
1552 |
{
|
|
|
1553 |
rgb_store color = colormap[static_cast<unsigned int>(1000.0 * ((c1 + c2 + c3 + c4) / 4.0)) % 1000];
|
|
|
1554 |
image.set_pixel(static_cast<unsigned int>(x),static_cast<unsigned int>(y),color.red,color.green,color.blue);
|
|
|
1555 |
}
|
|
|
1556 |
}
|
|
|
1557 |
|
|
|
1558 |
inline double psnr_region(const unsigned int& x, const unsigned int& y,
|
|
|
1559 |
const unsigned int& width, const unsigned int& height,
|
|
|
1560 |
const bitmap_image& image1, const bitmap_image& image2)
|
|
|
1561 |
{
|
|
|
1562 |
if ((image1.width() != image2.width()) ||
|
|
|
1563 |
(image1.height() != image2.height()))
|
|
|
1564 |
{
|
|
|
1565 |
return 0.0;
|
|
|
1566 |
}
|
|
|
1567 |
|
|
|
1568 |
if ((x + width) > image1.width()) { return 0.0; }
|
|
|
1569 |
if ((y + height) > image1.height()) { return 0.0; }
|
|
|
1570 |
|
|
|
1571 |
double mse = 0.0;
|
|
|
1572 |
|
|
|
1573 |
for (unsigned int r = 0; r < height; ++r)
|
|
|
1574 |
{
|
|
|
1575 |
const unsigned char* itr1 = image1.row(r + y) + x * image1.bytes_per_pixel();
|
|
|
1576 |
const unsigned char* itr1_end = itr1 + (width * image1.bytes_per_pixel());
|
|
|
1577 |
const unsigned char* itr2 = image2.row(r + y) + x * image2.bytes_per_pixel();
|
|
|
1578 |
while (itr1 != itr1_end)
|
|
|
1579 |
{
|
|
|
1580 |
double v = (static_cast<double>(*itr1) - static_cast<double>(*itr2));
|
|
|
1581 |
mse += v * v;
|
|
|
1582 |
++itr1;
|
|
|
1583 |
++itr2;
|
|
|
1584 |
}
|
|
|
1585 |
}
|
|
|
1586 |
if (mse <= 0.0000001)
|
|
|
1587 |
{
|
|
|
1588 |
return 1000000.0;
|
|
|
1589 |
}
|
|
|
1590 |
else
|
|
|
1591 |
{
|
|
|
1592 |
mse /= (3.0 * width * height);
|
|
|
1593 |
return 20.0 * std::log10(255.0 / std::sqrt(mse));
|
|
|
1594 |
}
|
|
|
1595 |
}
|
|
|
1596 |
|
|
|
1597 |
inline void hierarchical_psnr_r(const double& x, const double& y,
|
|
|
1598 |
const double& width, const double& height,
|
|
|
1599 |
const bitmap_image& image1, bitmap_image& image2, const double& threshold,
|
|
|
1600 |
const rgb_store colormap[])
|
|
|
1601 |
{
|
|
|
1602 |
if ((width <= 4.0) || (height <= 4.0))
|
|
|
1603 |
{
|
|
|
1604 |
double psnr = psnr_region(static_cast<unsigned int>(x),static_cast<unsigned int>(y),
|
|
|
1605 |
static_cast<unsigned int>(width),static_cast<unsigned int>(height),image1,image2);
|
|
|
1606 |
if (psnr < threshold)
|
|
|
1607 |
{
|
|
|
1608 |
rgb_store c = colormap[static_cast<unsigned int>(1000.0 * (1.0 - (psnr / threshold)))];
|
|
|
1609 |
image2.set_region(static_cast<unsigned int>(x),static_cast<unsigned int>(y),
|
|
|
1610 |
static_cast<unsigned int>(width + 1),static_cast<unsigned int>(height + 1),c.red,c.green,c.blue);
|
|
|
1611 |
}
|
|
|
1612 |
}
|
|
|
1613 |
else
|
|
|
1614 |
{
|
|
|
1615 |
double half_width = ( width / 2.0);
|
|
|
1616 |
double half_height = (height / 2.0);
|
|
|
1617 |
hierarchical_psnr_r(x , y , half_width, half_height,image1,image2,threshold,colormap);
|
|
|
1618 |
hierarchical_psnr_r(x + half_width, y , half_width, half_height,image1,image2,threshold,colormap);
|
|
|
1619 |
hierarchical_psnr_r(x + half_width, y + half_height, half_width, half_height,image1,image2,threshold,colormap);
|
|
|
1620 |
hierarchical_psnr_r(x , y + half_height, half_width, half_height,image1,image2,threshold,colormap);
|
|
|
1621 |
}
|
|
|
1622 |
}
|
|
|
1623 |
|
|
|
1624 |
inline void hierarchical_psnr(bitmap_image& image1,bitmap_image& image2, const double threshold, const rgb_store colormap[])
|
|
|
1625 |
{
|
|
|
1626 |
if ((image1.width() != image2.width()) ||
|
|
|
1627 |
(image1.height() != image2.height()))
|
|
|
1628 |
{
|
|
|
1629 |
return;
|
|
|
1630 |
}
|
|
|
1631 |
double psnr = psnr_region(0,0,image1.width(),image1.height(),image1,image2);
|
|
|
1632 |
if (psnr < threshold)
|
|
|
1633 |
{
|
|
|
1634 |
hierarchical_psnr_r(0,0, image1.width(), image1.height(),image1,image2,threshold,colormap);
|
|
|
1635 |
}
|
|
|
1636 |
}
|
|
|
1637 |
|
|
|
1638 |
class image_drawer
|
|
|
1639 |
{
|
|
|
1640 |
public:
|
|
|
1641 |
|
|
|
1642 |
image_drawer(bitmap_image& image)
|
|
|
1643 |
: image_(image),
|
|
|
1644 |
pen_width_(1),
|
|
|
1645 |
pen_color_red_(0),
|
|
|
1646 |
pen_color_green_(0),
|
|
|
1647 |
pen_color_blue_(0)
|
|
|
1648 |
{}
|
|
|
1649 |
|
|
|
1650 |
void rectangle(int x1, int y1, int x2, int y2)
|
|
|
1651 |
{
|
|
|
1652 |
line_segment(x1,y1,x2,y1);
|
|
|
1653 |
line_segment(x2,y1,x2,y2);
|
|
|
1654 |
line_segment(x2,y2,x1,y2);
|
|
|
1655 |
line_segment(x1,y2,x1,y1);
|
|
|
1656 |
}
|
|
|
1657 |
|
|
|
1658 |
void triangle(int x1, int y1, int x2, int y2,int x3, int y3)
|
|
|
1659 |
{
|
|
|
1660 |
line_segment(x1,y1,x2,y2);
|
|
|
1661 |
line_segment(x2,y2,x3,y3);
|
|
|
1662 |
line_segment(x3,y3,x1,y1);
|
|
|
1663 |
}
|
|
|
1664 |
|
|
|
1665 |
void quadix(int x1, int y1, int x2, int y2,int x3, int y3, int x4, int y4)
|
|
|
1666 |
{
|
|
|
1667 |
line_segment(x1,y1,x2,y2);
|
|
|
1668 |
line_segment(x2,y2,x3,y3);
|
|
|
1669 |
line_segment(x3,y3,x4,y4);
|
|
|
1670 |
line_segment(x4,y4,x1,y1);
|
|
|
1671 |
}
|
|
|
1672 |
|
|
|
1673 |
void line_segment(int x1, int y1, int x2, int y2)
|
|
|
1674 |
{
|
|
|
1675 |
int steep = 0;
|
|
|
1676 |
int sx = ((x2 - x1) > 0) ? 1 : -1;
|
|
|
1677 |
int sy = ((y2 - y1) > 0) ? 1 : -1;
|
|
|
1678 |
int dx = abs(x2 - x1);
|
|
|
1679 |
int dy = abs(y2 - y1);
|
|
|
1680 |
|
|
|
1681 |
if (dy > dx)
|
|
|
1682 |
{
|
|
|
1683 |
steep = x1; x1 = y1; y1 = steep; /* swap x1 and y1 */
|
|
|
1684 |
steep = dx; dx = dy; dy = steep; /* swap dx and dy */
|
|
|
1685 |
steep = sx; sx = sy; sy = steep; /* swap sx and sy */
|
|
|
1686 |
steep = 1;
|
|
|
1687 |
}
|
|
|
1688 |
|
|
|
1689 |
int e = 2 * dy - dx;
|
|
|
1690 |
|
|
|
1691 |
for (int i = 0; i < dx; ++i)
|
|
|
1692 |
{
|
|
|
1693 |
if (steep)
|
|
|
1694 |
plot_pen_pixel(y1,x1);
|
|
|
1695 |
else
|
|
|
1696 |
plot_pen_pixel(x1,y1);
|
|
|
1697 |
|
|
|
1698 |
while (e >= 0)
|
|
|
1699 |
{
|
|
|
1700 |
y1 += sy;
|
|
|
1701 |
e -= (dx << 1);
|
|
|
1702 |
}
|
|
|
1703 |
x1 += sx;
|
|
|
1704 |
e += (dy << 1);
|
|
|
1705 |
}
|
|
|
1706 |
plot_pen_pixel(x2,y2);
|
|
|
1707 |
}
|
|
|
1708 |
|
|
|
1709 |
void horiztonal_line_segment(int x1, int x2, int y)
|
|
|
1710 |
{
|
|
|
1711 |
if (x1 > x2)
|
|
|
1712 |
{
|
|
|
1713 |
std::swap(x1,x2);
|
|
|
1714 |
}
|
|
|
1715 |
|
|
|
1716 |
for (int i = 0; i < (x2 - x1); ++i)
|
|
|
1717 |
{
|
|
|
1718 |
plot_pen_pixel(x1 + i,y);
|
|
|
1719 |
}
|
|
|
1720 |
}
|
|
|
1721 |
|
|
|
1722 |
void vertical_line_segment(int y1, int y2, int x)
|
|
|
1723 |
{
|
|
|
1724 |
if (y1 > y2)
|
|
|
1725 |
{
|
|
|
1726 |
std::swap(y1,y2);
|
|
|
1727 |
}
|
|
|
1728 |
|
|
|
1729 |
for (int i = 0; i < (y2 - y1); ++i)
|
|
|
1730 |
{
|
|
|
1731 |
plot_pen_pixel(x, y1 + i);
|
|
|
1732 |
}
|
|
|
1733 |
}
|
|
|
1734 |
|
|
|
1735 |
void ellipse(int centerx, int centery, int a, int b)
|
|
|
1736 |
{
|
|
|
1737 |
int t1 = a * a;
|
|
|
1738 |
int t2 = t1 << 1;
|
|
|
1739 |
int t3 = t2 << 1;
|
|
|
1740 |
int t4 = b * b;
|
|
|
1741 |
int t5 = t4 << 1;
|
|
|
1742 |
int t6 = t5 << 1;
|
|
|
1743 |
int t7 = a * t5;
|
|
|
1744 |
int t8 = t7 << 1;
|
|
|
1745 |
int t9 = 0;
|
|
|
1746 |
|
|
|
1747 |
int d1 = t2 - t7 + (t4 >> 1);
|
|
|
1748 |
int d2 = (t1 >> 1) - t8 + t5;
|
|
|
1749 |
int x = a;
|
|
|
1750 |
int y = 0;
|
|
|
1751 |
|
|
|
1752 |
int negative_tx = centerx - x;
|
|
|
1753 |
int positive_tx = centerx + x;
|
|
|
1754 |
int negative_ty = centery - y;
|
|
|
1755 |
int positive_ty = centery + y;
|
|
|
1756 |
|
|
|
1757 |
while (d2 < 0)
|
|
|
1758 |
{
|
|
|
1759 |
plot_pen_pixel(positive_tx,positive_ty);
|
|
|
1760 |
plot_pen_pixel(positive_tx,negative_ty);
|
|
|
1761 |
plot_pen_pixel(negative_tx,positive_ty);
|
|
|
1762 |
plot_pen_pixel(negative_tx,negative_ty);
|
|
|
1763 |
|
|
|
1764 |
++y;
|
|
|
1765 |
|
|
|
1766 |
t9 = t9 + t3;
|
|
|
1767 |
|
|
|
1768 |
if (d1 < 0)
|
|
|
1769 |
{
|
|
|
1770 |
d1 = d1 + t9 + t2;
|
|
|
1771 |
d2 = d2 + t9;
|
|
|
1772 |
}
|
|
|
1773 |
else
|
|
|
1774 |
{
|
|
|
1775 |
x--;
|
|
|
1776 |
t8 = t8 - t6;
|
|
|
1777 |
d1 = d1 + (t9 + t2 - t8);
|
|
|
1778 |
d2 = d2 + (t9 + t5 - t8);
|
|
|
1779 |
negative_tx = centerx - x;
|
|
|
1780 |
positive_tx = centerx + x;
|
|
|
1781 |
}
|
|
|
1782 |
|
|
|
1783 |
negative_ty = centery - y;
|
|
|
1784 |
positive_ty = centery + y;
|
|
|
1785 |
}
|
|
|
1786 |
|
|
|
1787 |
do
|
|
|
1788 |
{
|
|
|
1789 |
plot_pen_pixel(positive_tx,positive_ty);
|
|
|
1790 |
plot_pen_pixel(positive_tx,negative_ty);
|
|
|
1791 |
plot_pen_pixel(negative_tx,positive_ty);
|
|
|
1792 |
plot_pen_pixel(negative_tx,negative_ty);
|
|
|
1793 |
|
|
|
1794 |
x--;
|
|
|
1795 |
t8 = t8 - t6;
|
|
|
1796 |
|
|
|
1797 |
if (d2 < 0)
|
|
|
1798 |
{
|
|
|
1799 |
++y;
|
|
|
1800 |
t9 = t9 + t3;
|
|
|
1801 |
d2 = d2 + (t9 + t5 - t8);
|
|
|
1802 |
negative_ty = centery - y;
|
|
|
1803 |
positive_ty = centery + y;
|
|
|
1804 |
}
|
|
|
1805 |
else
|
|
|
1806 |
d2 = d2 + (t5 - t8);
|
|
|
1807 |
|
|
|
1808 |
negative_tx = centerx - x;
|
|
|
1809 |
positive_tx = centerx + x;
|
|
|
1810 |
}
|
|
|
1811 |
while (x >= 0);
|
|
|
1812 |
}
|
|
|
1813 |
|
|
|
1814 |
void circle(int centerx, int centery, int radius)
|
|
|
1815 |
{
|
|
|
1816 |
int x = 0;
|
|
|
1817 |
int d = (1 - radius) << 1;
|
|
|
1818 |
|
|
|
1819 |
while (radius >= 0)
|
|
|
1820 |
{
|
|
|
1821 |
plot_pen_pixel(centerx + x,centery + radius);
|
|
|
1822 |
plot_pen_pixel(centerx + x,centery - radius);
|
|
|
1823 |
plot_pen_pixel(centerx - x,centery + radius);
|
|
|
1824 |
plot_pen_pixel(centerx - x,centery - radius);
|
|
|
1825 |
|
|
|
1826 |
if ((d + radius) > 0)
|
|
|
1827 |
d -= ((--radius) << 1) - 1;
|
|
|
1828 |
if (x > d)
|
|
|
1829 |
d += ((++x) << 1) + 1;
|
|
|
1830 |
}
|
|
|
1831 |
}
|
|
|
1832 |
|
|
|
1833 |
void plot_pen_pixel(int x, int y)
|
|
|
1834 |
{
|
|
|
1835 |
switch (pen_width_)
|
|
|
1836 |
{
|
|
|
1837 |
case 1 : plot_pixel(x,y);
|
|
|
1838 |
break;
|
|
|
1839 |
|
|
|
1840 |
case 2 : {
|
|
|
1841 |
plot_pixel(x , y );
|
|
|
1842 |
plot_pixel(x + 1, y );
|
|
|
1843 |
plot_pixel(x + 1, y + 1);
|
|
|
1844 |
plot_pixel(x , y + 1);
|
|
|
1845 |
}
|
|
|
1846 |
break;
|
|
|
1847 |
|
|
|
1848 |
case 3 : {
|
|
|
1849 |
plot_pixel(x , y - 1);
|
|
|
1850 |
plot_pixel(x - 1, y - 1);
|
|
|
1851 |
plot_pixel(x + 1, y - 1);
|
|
|
1852 |
|
|
|
1853 |
plot_pixel(x , y );
|
|
|
1854 |
plot_pixel(x - 1, y );
|
|
|
1855 |
plot_pixel(x + 1, y );
|
|
|
1856 |
|
|
|
1857 |
plot_pixel(x , y + 1);
|
|
|
1858 |
plot_pixel(x - 1, y + 1);
|
|
|
1859 |
plot_pixel(x + 1, y + 1);
|
|
|
1860 |
}
|
|
|
1861 |
break;
|
|
|
1862 |
|
|
|
1863 |
default : plot_pixel(x,y);
|
|
|
1864 |
break;
|
|
|
1865 |
}
|
|
|
1866 |
}
|
|
|
1867 |
|
|
|
1868 |
void plot_pixel(int x, int y)
|
|
|
1869 |
{
|
|
|
1870 |
image_.set_pixel(x,y,pen_color_red_,pen_color_green_,pen_color_blue_);
|
|
|
1871 |
}
|
|
|
1872 |
|
|
|
1873 |
void pen_width(const unsigned int& width)
|
|
|
1874 |
{
|
|
|
1875 |
if ((width > 0) && (width < 4))
|
|
|
1876 |
{
|
|
|
1877 |
pen_width_ = width;
|
|
|
1878 |
}
|
|
|
1879 |
}
|
|
|
1880 |
|
|
|
1881 |
void pen_color(const unsigned char& red,
|
|
|
1882 |
const unsigned char& green,
|
|
|
1883 |
const unsigned char& blue)
|
|
|
1884 |
{
|
|
|
1885 |
pen_color_red_ = red;
|
|
|
1886 |
pen_color_green_ = green;
|
|
|
1887 |
pen_color_blue_ = blue;
|
|
|
1888 |
}
|
|
|
1889 |
|
|
|
1890 |
private:
|
|
|
1891 |
|
|
|
1892 |
image_drawer(const image_drawer& id);
|
|
|
1893 |
image_drawer& operator =(const image_drawer& id);
|
|
|
1894 |
|
|
|
1895 |
bitmap_image& image_;
|
|
|
1896 |
unsigned int pen_width_;
|
|
|
1897 |
unsigned char pen_color_red_;
|
|
|
1898 |
unsigned char pen_color_green_;
|
|
|
1899 |
unsigned char pen_color_blue_;
|
|
|
1900 |
};
|
|
|
1901 |
|
|
|
1902 |
const rgb_store autumn_colormap[1000] = {
|
|
|
1903 |
{255, 0, 0}, {255, 0, 0}, {255, 1, 0}, {255, 1, 0}, {255, 1, 0},
|
|
|
1904 |
{255, 1, 0}, {255, 2, 0}, {255, 2, 0}, {255, 2, 0}, {255, 2, 0},
|
|
|
1905 |
{255, 3, 0}, {255, 3, 0}, {255, 3, 0}, {255, 3, 0}, {255, 4, 0},
|
|
|
1906 |
{255, 4, 0}, {255, 4, 0}, {255, 4, 0}, {255, 5, 0}, {255, 5, 0},
|
|
|
1907 |
{255, 5, 0}, {255, 5, 0}, {255, 6, 0}, {255, 6, 0}, {255, 6, 0},
|
|
|
1908 |
{255, 6, 0}, {255, 7, 0}, {255, 7, 0}, {255, 7, 0}, {255, 7, 0},
|
|
|
1909 |
{255, 8, 0}, {255, 8, 0}, {255, 8, 0}, {255, 8, 0}, {255, 9, 0},
|
|
|
1910 |
{255, 9, 0}, {255, 9, 0}, {255, 9, 0}, {255, 10, 0}, {255, 10, 0},
|
|
|
1911 |
{255, 10, 0}, {255, 10, 0}, {255, 11, 0}, {255, 11, 0}, {255, 11, 0},
|
|
|
1912 |
{255, 11, 0}, {255, 12, 0}, {255, 12, 0}, {255, 12, 0}, {255, 13, 0},
|
|
|
1913 |
{255, 13, 0}, {255, 13, 0}, {255, 13, 0}, {255, 14, 0}, {255, 14, 0},
|
|
|
1914 |
{255, 14, 0}, {255, 14, 0}, {255, 15, 0}, {255, 15, 0}, {255, 15, 0},
|
|
|
1915 |
{255, 15, 0}, {255, 16, 0}, {255, 16, 0}, {255, 16, 0}, {255, 16, 0},
|
|
|
1916 |
{255, 17, 0}, {255, 17, 0}, {255, 17, 0}, {255, 17, 0}, {255, 18, 0},
|
|
|
1917 |
{255, 18, 0}, {255, 18, 0}, {255, 18, 0}, {255, 19, 0}, {255, 19, 0},
|
|
|
1918 |
{255, 19, 0}, {255, 19, 0}, {255, 20, 0}, {255, 20, 0}, {255, 20, 0},
|
|
|
1919 |
{255, 20, 0}, {255, 21, 0}, {255, 21, 0}, {255, 21, 0}, {255, 21, 0},
|
|
|
1920 |
{255, 22, 0}, {255, 22, 0}, {255, 22, 0}, {255, 22, 0}, {255, 23, 0},
|
|
|
1921 |
{255, 23, 0}, {255, 23, 0}, {255, 23, 0}, {255, 24, 0}, {255, 24, 0},
|
|
|
1922 |
{255, 24, 0}, {255, 25, 0}, {255, 25, 0}, {255, 25, 0}, {255, 25, 0},
|
|
|
1923 |
{255, 26, 0}, {255, 26, 0}, {255, 26, 0}, {255, 26, 0}, {255, 27, 0},
|
|
|
1924 |
{255, 27, 0}, {255, 27, 0}, {255, 27, 0}, {255, 28, 0}, {255, 28, 0},
|
|
|
1925 |
{255, 28, 0}, {255, 28, 0}, {255, 29, 0}, {255, 29, 0}, {255, 29, 0},
|
|
|
1926 |
{255, 29, 0}, {255, 30, 0}, {255, 30, 0}, {255, 30, 0}, {255, 30, 0},
|
|
|
1927 |
{255, 31, 0}, {255, 31, 0}, {255, 31, 0}, {255, 31, 0}, {255, 32, 0},
|
|
|
1928 |
{255, 32, 0}, {255, 32, 0}, {255, 32, 0}, {255, 33, 0}, {255, 33, 0},
|
|
|
1929 |
{255, 33, 0}, {255, 33, 0}, {255, 34, 0}, {255, 34, 0}, {255, 34, 0},
|
|
|
1930 |
{255, 34, 0}, {255, 35, 0}, {255, 35, 0}, {255, 35, 0}, {255, 35, 0},
|
|
|
1931 |
{255, 36, 0}, {255, 36, 0}, {255, 36, 0}, {255, 37, 0}, {255, 37, 0},
|
|
|
1932 |
{255, 37, 0}, {255, 37, 0}, {255, 38, 0}, {255, 38, 0}, {255, 38, 0},
|
|
|
1933 |
{255, 38, 0}, {255, 39, 0}, {255, 39, 0}, {255, 39, 0}, {255, 39, 0},
|
|
|
1934 |
{255, 40, 0}, {255, 40, 0}, {255, 40, 0}, {255, 40, 0}, {255, 41, 0},
|
|
|
1935 |
{255, 41, 0}, {255, 41, 0}, {255, 41, 0}, {255, 42, 0}, {255, 42, 0},
|
|
|
1936 |
{255, 42, 0}, {255, 42, 0}, {255, 43, 0}, {255, 43, 0}, {255, 43, 0},
|
|
|
1937 |
{255, 43, 0}, {255, 44, 0}, {255, 44, 0}, {255, 44, 0}, {255, 44, 0},
|
|
|
1938 |
{255, 45, 0}, {255, 45, 0}, {255, 45, 0}, {255, 45, 0}, {255, 46, 0},
|
|
|
1939 |
{255, 46, 0}, {255, 46, 0}, {255, 46, 0}, {255, 47, 0}, {255, 47, 0},
|
|
|
1940 |
{255, 47, 0}, {255, 47, 0}, {255, 48, 0}, {255, 48, 0}, {255, 48, 0},
|
|
|
1941 |
{255, 48, 0}, {255, 49, 0}, {255, 49, 0}, {255, 49, 0}, {255, 50, 0},
|
|
|
1942 |
{255, 50, 0}, {255, 50, 0}, {255, 50, 0}, {255, 51, 0}, {255, 51, 0},
|
|
|
1943 |
{255, 51, 0}, {255, 51, 0}, {255, 52, 0}, {255, 52, 0}, {255, 52, 0},
|
|
|
1944 |
{255, 52, 0}, {255, 53, 0}, {255, 53, 0}, {255, 53, 0}, {255, 53, 0},
|
|
|
1945 |
{255, 54, 0}, {255, 54, 0}, {255, 54, 0}, {255, 54, 0}, {255, 55, 0},
|
|
|
1946 |
{255, 55, 0}, {255, 55, 0}, {255, 55, 0}, {255, 56, 0}, {255, 56, 0},
|
|
|
1947 |
{255, 56, 0}, {255, 56, 0}, {255, 57, 0}, {255, 57, 0}, {255, 57, 0},
|
|
|
1948 |
{255, 57, 0}, {255, 58, 0}, {255, 58, 0}, {255, 58, 0}, {255, 58, 0},
|
|
|
1949 |
{255, 59, 0}, {255, 59, 0}, {255, 59, 0}, {255, 59, 0}, {255, 60, 0},
|
|
|
1950 |
{255, 60, 0}, {255, 60, 0}, {255, 60, 0}, {255, 61, 0}, {255, 61, 0},
|
|
|
1951 |
{255, 61, 0}, {255, 62, 0}, {255, 62, 0}, {255, 62, 0}, {255, 62, 0},
|
|
|
1952 |
{255, 63, 0}, {255, 63, 0}, {255, 63, 0}, {255, 63, 0}, {255, 64, 0},
|
|
|
1953 |
{255, 64, 0}, {255, 64, 0}, {255, 64, 0}, {255, 65, 0}, {255, 65, 0},
|
|
|
1954 |
{255, 65, 0}, {255, 65, 0}, {255, 66, 0}, {255, 66, 0}, {255, 66, 0},
|
|
|
1955 |
{255, 66, 0}, {255, 67, 0}, {255, 67, 0}, {255, 67, 0}, {255, 67, 0},
|
|
|
1956 |
{255, 68, 0}, {255, 68, 0}, {255, 68, 0}, {255, 68, 0}, {255, 69, 0},
|
|
|
1957 |
{255, 69, 0}, {255, 69, 0}, {255, 69, 0}, {255, 70, 0}, {255, 70, 0},
|
|
|
1958 |
{255, 70, 0}, {255, 70, 0}, {255, 71, 0}, {255, 71, 0}, {255, 71, 0},
|
|
|
1959 |
{255, 71, 0}, {255, 72, 0}, {255, 72, 0}, {255, 72, 0}, {255, 72, 0},
|
|
|
1960 |
{255, 73, 0}, {255, 73, 0}, {255, 73, 0}, {255, 74, 0}, {255, 74, 0},
|
|
|
1961 |
{255, 74, 0}, {255, 74, 0}, {255, 75, 0}, {255, 75, 0}, {255, 75, 0},
|
|
|
1962 |
{255, 75, 0}, {255, 76, 0}, {255, 76, 0}, {255, 76, 0}, {255, 76, 0},
|
|
|
1963 |
{255, 77, 0}, {255, 77, 0}, {255, 77, 0}, {255, 77, 0}, {255, 78, 0},
|
|
|
1964 |
{255, 78, 0}, {255, 78, 0}, {255, 78, 0}, {255, 79, 0}, {255, 79, 0},
|
|
|
1965 |
{255, 79, 0}, {255, 79, 0}, {255, 80, 0}, {255, 80, 0}, {255, 80, 0},
|
|
|
1966 |
{255, 80, 0}, {255, 81, 0}, {255, 81, 0}, {255, 81, 0}, {255, 81, 0},
|
|
|
1967 |
{255, 82, 0}, {255, 82, 0}, {255, 82, 0}, {255, 82, 0}, {255, 83, 0},
|
|
|
1968 |
{255, 83, 0}, {255, 83, 0}, {255, 83, 0}, {255, 84, 0}, {255, 84, 0},
|
|
|
1969 |
{255, 84, 0}, {255, 84, 0}, {255, 85, 0}, {255, 85, 0}, {255, 85, 0},
|
|
|
1970 |
{255, 86, 0}, {255, 86, 0}, {255, 86, 0}, {255, 86, 0}, {255, 87, 0},
|
|
|
1971 |
{255, 87, 0}, {255, 87, 0}, {255, 87, 0}, {255, 88, 0}, {255, 88, 0},
|
|
|
1972 |
{255, 88, 0}, {255, 88, 0}, {255, 89, 0}, {255, 89, 0}, {255, 89, 0},
|
|
|
1973 |
{255, 89, 0}, {255, 90, 0}, {255, 90, 0}, {255, 90, 0}, {255, 90, 0},
|
|
|
1974 |
{255, 91, 0}, {255, 91, 0}, {255, 91, 0}, {255, 91, 0}, {255, 92, 0},
|
|
|
1975 |
{255, 92, 0}, {255, 92, 0}, {255, 92, 0}, {255, 93, 0}, {255, 93, 0},
|
|
|
1976 |
{255, 93, 0}, {255, 93, 0}, {255, 94, 0}, {255, 94, 0}, {255, 94, 0},
|
|
|
1977 |
{255, 94, 0}, {255, 95, 0}, {255, 95, 0}, {255, 95, 0}, {255, 95, 0},
|
|
|
1978 |
{255, 96, 0}, {255, 96, 0}, {255, 96, 0}, {255, 96, 0}, {255, 97, 0},
|
|
|
1979 |
{255, 97, 0}, {255, 97, 0}, {255, 98, 0}, {255, 98, 0}, {255, 98, 0},
|
|
|
1980 |
{255, 98, 0}, {255, 99, 0}, {255, 99, 0}, {255, 99, 0}, {255, 99, 0},
|
|
|
1981 |
{255, 100, 0}, {255, 100, 0}, {255, 100, 0}, {255, 100, 0}, {255, 101, 0},
|
|
|
1982 |
{255, 101, 0}, {255, 101, 0}, {255, 101, 0}, {255, 102, 0}, {255, 102, 0},
|
|
|
1983 |
{255, 102, 0}, {255, 102, 0}, {255, 103, 0}, {255, 103, 0}, {255, 103, 0},
|
|
|
1984 |
{255, 103, 0}, {255, 104, 0}, {255, 104, 0}, {255, 104, 0}, {255, 104, 0},
|
|
|
1985 |
{255, 105, 0}, {255, 105, 0}, {255, 105, 0}, {255, 105, 0}, {255, 106, 0},
|
|
|
1986 |
{255, 106, 0}, {255, 106, 0}, {255, 106, 0}, {255, 107, 0}, {255, 107, 0},
|
|
|
1987 |
{255, 107, 0}, {255, 107, 0}, {255, 108, 0}, {255, 108, 0}, {255, 108, 0},
|
|
|
1988 |
{255, 108, 0}, {255, 109, 0}, {255, 109, 0}, {255, 109, 0}, {255, 110, 0},
|
|
|
1989 |
{255, 110, 0}, {255, 110, 0}, {255, 110, 0}, {255, 111, 0}, {255, 111, 0},
|
|
|
1990 |
{255, 111, 0}, {255, 111, 0}, {255, 112, 0}, {255, 112, 0}, {255, 112, 0},
|
|
|
1991 |
{255, 112, 0}, {255, 113, 0}, {255, 113, 0}, {255, 113, 0}, {255, 113, 0},
|
|
|
1992 |
{255, 114, 0}, {255, 114, 0}, {255, 114, 0}, {255, 114, 0}, {255, 115, 0},
|
|
|
1993 |
{255, 115, 0}, {255, 115, 0}, {255, 115, 0}, {255, 116, 0}, {255, 116, 0},
|
|
|
1994 |
{255, 116, 0}, {255, 116, 0}, {255, 117, 0}, {255, 117, 0}, {255, 117, 0},
|
|
|
1995 |
{255, 117, 0}, {255, 118, 0}, {255, 118, 0}, {255, 118, 0}, {255, 118, 0},
|
|
|
1996 |
{255, 119, 0}, {255, 119, 0}, {255, 119, 0}, {255, 119, 0}, {255, 120, 0},
|
|
|
1997 |
{255, 120, 0}, {255, 120, 0}, {255, 120, 0}, {255, 121, 0}, {255, 121, 0},
|
|
|
1998 |
{255, 121, 0}, {255, 122, 0}, {255, 122, 0}, {255, 122, 0}, {255, 122, 0},
|
|
|
1999 |
{255, 123, 0}, {255, 123, 0}, {255, 123, 0}, {255, 123, 0}, {255, 124, 0},
|
|
|
2000 |
{255, 124, 0}, {255, 124, 0}, {255, 124, 0}, {255, 125, 0}, {255, 125, 0},
|
|
|
2001 |
{255, 125, 0}, {255, 125, 0}, {255, 126, 0}, {255, 126, 0}, {255, 126, 0},
|
|
|
2002 |
{255, 126, 0}, {255, 127, 0}, {255, 127, 0}, {255, 127, 0}, {255, 127, 0},
|
|
|
2003 |
{255, 128, 0}, {255, 128, 0}, {255, 128, 0}, {255, 128, 0}, {255, 129, 0},
|
|
|
2004 |
{255, 129, 0}, {255, 129, 0}, {255, 129, 0}, {255, 130, 0}, {255, 130, 0},
|
|
|
2005 |
{255, 130, 0}, {255, 130, 0}, {255, 131, 0}, {255, 131, 0}, {255, 131, 0},
|
|
|
2006 |
{255, 131, 0}, {255, 132, 0}, {255, 132, 0}, {255, 132, 0}, {255, 132, 0},
|
|
|
2007 |
{255, 133, 0}, {255, 133, 0}, {255, 133, 0}, {255, 133, 0}, {255, 134, 0},
|
|
|
2008 |
{255, 134, 0}, {255, 134, 0}, {255, 135, 0}, {255, 135, 0}, {255, 135, 0},
|
|
|
2009 |
{255, 135, 0}, {255, 136, 0}, {255, 136, 0}, {255, 136, 0}, {255, 136, 0},
|
|
|
2010 |
{255, 137, 0}, {255, 137, 0}, {255, 137, 0}, {255, 137, 0}, {255, 138, 0},
|
|
|
2011 |
{255, 138, 0}, {255, 138, 0}, {255, 138, 0}, {255, 139, 0}, {255, 139, 0},
|
|
|
2012 |
{255, 139, 0}, {255, 139, 0}, {255, 140, 0}, {255, 140, 0}, {255, 140, 0},
|
|
|
2013 |
{255, 140, 0}, {255, 141, 0}, {255, 141, 0}, {255, 141, 0}, {255, 141, 0},
|
|
|
2014 |
{255, 142, 0}, {255, 142, 0}, {255, 142, 0}, {255, 142, 0}, {255, 143, 0},
|
|
|
2015 |
{255, 143, 0}, {255, 143, 0}, {255, 143, 0}, {255, 144, 0}, {255, 144, 0},
|
|
|
2016 |
{255, 144, 0}, {255, 144, 0}, {255, 145, 0}, {255, 145, 0}, {255, 145, 0},
|
|
|
2017 |
{255, 145, 0}, {255, 146, 0}, {255, 146, 0}, {255, 146, 0}, {255, 147, 0},
|
|
|
2018 |
{255, 147, 0}, {255, 147, 0}, {255, 147, 0}, {255, 148, 0}, {255, 148, 0},
|
|
|
2019 |
{255, 148, 0}, {255, 148, 0}, {255, 149, 0}, {255, 149, 0}, {255, 149, 0},
|
|
|
2020 |
{255, 149, 0}, {255, 150, 0}, {255, 150, 0}, {255, 150, 0}, {255, 150, 0},
|
|
|
2021 |
{255, 151, 0}, {255, 151, 0}, {255, 151, 0}, {255, 151, 0}, {255, 152, 0},
|
|
|
2022 |
{255, 152, 0}, {255, 152, 0}, {255, 152, 0}, {255, 153, 0}, {255, 153, 0},
|
|
|
2023 |
{255, 153, 0}, {255, 153, 0}, {255, 154, 0}, {255, 154, 0}, {255, 154, 0},
|
|
|
2024 |
{255, 154, 0}, {255, 155, 0}, {255, 155, 0}, {255, 155, 0}, {255, 155, 0},
|
|
|
2025 |
{255, 156, 0}, {255, 156, 0}, {255, 156, 0}, {255, 156, 0}, {255, 157, 0},
|
|
|
2026 |
{255, 157, 0}, {255, 157, 0}, {255, 157, 0}, {255, 158, 0}, {255, 158, 0},
|
|
|
2027 |
{255, 158, 0}, {255, 159, 0}, {255, 159, 0}, {255, 159, 0}, {255, 159, 0},
|
|
|
2028 |
{255, 160, 0}, {255, 160, 0}, {255, 160, 0}, {255, 160, 0}, {255, 161, 0},
|
|
|
2029 |
{255, 161, 0}, {255, 161, 0}, {255, 161, 0}, {255, 162, 0}, {255, 162, 0},
|
|
|
2030 |
{255, 162, 0}, {255, 162, 0}, {255, 163, 0}, {255, 163, 0}, {255, 163, 0},
|
|
|
2031 |
{255, 163, 0}, {255, 164, 0}, {255, 164, 0}, {255, 164, 0}, {255, 164, 0},
|
|
|
2032 |
{255, 165, 0}, {255, 165, 0}, {255, 165, 0}, {255, 165, 0}, {255, 166, 0},
|
|
|
2033 |
{255, 166, 0}, {255, 166, 0}, {255, 166, 0}, {255, 167, 0}, {255, 167, 0},
|
|
|
2034 |
{255, 167, 0}, {255, 167, 0}, {255, 168, 0}, {255, 168, 0}, {255, 168, 0},
|
|
|
2035 |
{255, 168, 0}, {255, 169, 0}, {255, 169, 0}, {255, 169, 0}, {255, 169, 0},
|
|
|
2036 |
{255, 170, 0}, {255, 170, 0}, {255, 170, 0}, {255, 171, 0}, {255, 171, 0},
|
|
|
2037 |
{255, 171, 0}, {255, 171, 0}, {255, 172, 0}, {255, 172, 0}, {255, 172, 0},
|
|
|
2038 |
{255, 172, 0}, {255, 173, 0}, {255, 173, 0}, {255, 173, 0}, {255, 173, 0},
|
|
|
2039 |
{255, 174, 0}, {255, 174, 0}, {255, 174, 0}, {255, 174, 0}, {255, 175, 0},
|
|
|
2040 |
{255, 175, 0}, {255, 175, 0}, {255, 175, 0}, {255, 176, 0}, {255, 176, 0},
|
|
|
2041 |
{255, 176, 0}, {255, 176, 0}, {255, 177, 0}, {255, 177, 0}, {255, 177, 0},
|
|
|
2042 |
{255, 177, 0}, {255, 178, 0}, {255, 178, 0}, {255, 178, 0}, {255, 178, 0},
|
|
|
2043 |
{255, 179, 0}, {255, 179, 0}, {255, 179, 0}, {255, 179, 0}, {255, 180, 0},
|
|
|
2044 |
{255, 180, 0}, {255, 180, 0}, {255, 180, 0}, {255, 181, 0}, {255, 181, 0},
|
|
|
2045 |
{255, 181, 0}, {255, 181, 0}, {255, 182, 0}, {255, 182, 0}, {255, 182, 0},
|
|
|
2046 |
{255, 183, 0}, {255, 183, 0}, {255, 183, 0}, {255, 183, 0}, {255, 184, 0},
|
|
|
2047 |
{255, 184, 0}, {255, 184, 0}, {255, 184, 0}, {255, 185, 0}, {255, 185, 0},
|
|
|
2048 |
{255, 185, 0}, {255, 185, 0}, {255, 186, 0}, {255, 186, 0}, {255, 186, 0},
|
|
|
2049 |
{255, 186, 0}, {255, 187, 0}, {255, 187, 0}, {255, 187, 0}, {255, 187, 0},
|
|
|
2050 |
{255, 188, 0}, {255, 188, 0}, {255, 188, 0}, {255, 188, 0}, {255, 189, 0},
|
|
|
2051 |
{255, 189, 0}, {255, 189, 0}, {255, 189, 0}, {255, 190, 0}, {255, 190, 0},
|
|
|
2052 |
{255, 190, 0}, {255, 190, 0}, {255, 191, 0}, {255, 191, 0}, {255, 191, 0},
|
|
|
2053 |
{255, 191, 0}, {255, 192, 0}, {255, 192, 0}, {255, 192, 0}, {255, 192, 0},
|
|
|
2054 |
{255, 193, 0}, {255, 193, 0}, {255, 193, 0}, {255, 193, 0}, {255, 194, 0},
|
|
|
2055 |
{255, 194, 0}, {255, 194, 0}, {255, 195, 0}, {255, 195, 0}, {255, 195, 0},
|
|
|
2056 |
{255, 195, 0}, {255, 196, 0}, {255, 196, 0}, {255, 196, 0}, {255, 196, 0},
|
|
|
2057 |
{255, 197, 0}, {255, 197, 0}, {255, 197, 0}, {255, 197, 0}, {255, 198, 0},
|
|
|
2058 |
{255, 198, 0}, {255, 198, 0}, {255, 198, 0}, {255, 199, 0}, {255, 199, 0},
|
|
|
2059 |
{255, 199, 0}, {255, 199, 0}, {255, 200, 0}, {255, 200, 0}, {255, 200, 0},
|
|
|
2060 |
{255, 200, 0}, {255, 201, 0}, {255, 201, 0}, {255, 201, 0}, {255, 201, 0},
|
|
|
2061 |
{255, 202, 0}, {255, 202, 0}, {255, 202, 0}, {255, 202, 0}, {255, 203, 0},
|
|
|
2062 |
{255, 203, 0}, {255, 203, 0}, {255, 203, 0}, {255, 204, 0}, {255, 204, 0},
|
|
|
2063 |
{255, 204, 0}, {255, 204, 0}, {255, 205, 0}, {255, 205, 0}, {255, 205, 0},
|
|
|
2064 |
{255, 205, 0}, {255, 206, 0}, {255, 206, 0}, {255, 206, 0}, {255, 207, 0},
|
|
|
2065 |
{255, 207, 0}, {255, 207, 0}, {255, 207, 0}, {255, 208, 0}, {255, 208, 0},
|
|
|
2066 |
{255, 208, 0}, {255, 208, 0}, {255, 209, 0}, {255, 209, 0}, {255, 209, 0},
|
|
|
2067 |
{255, 209, 0}, {255, 210, 0}, {255, 210, 0}, {255, 210, 0}, {255, 210, 0},
|
|
|
2068 |
{255, 211, 0}, {255, 211, 0}, {255, 211, 0}, {255, 211, 0}, {255, 212, 0},
|
|
|
2069 |
{255, 212, 0}, {255, 212, 0}, {255, 212, 0}, {255, 213, 0}, {255, 213, 0},
|
|
|
2070 |
{255, 213, 0}, {255, 213, 0}, {255, 214, 0}, {255, 214, 0}, {255, 214, 0},
|
|
|
2071 |
{255, 214, 0}, {255, 215, 0}, {255, 215, 0}, {255, 215, 0}, {255, 215, 0},
|
|
|
2072 |
{255, 216, 0}, {255, 216, 0}, {255, 216, 0}, {255, 216, 0}, {255, 217, 0},
|
|
|
2073 |
{255, 217, 0}, {255, 217, 0}, {255, 217, 0}, {255, 218, 0}, {255, 218, 0},
|
|
|
2074 |
{255, 218, 0}, {255, 218, 0}, {255, 219, 0}, {255, 219, 0}, {255, 219, 0},
|
|
|
2075 |
{255, 220, 0}, {255, 220, 0}, {255, 220, 0}, {255, 220, 0}, {255, 221, 0},
|
|
|
2076 |
{255, 221, 0}, {255, 221, 0}, {255, 221, 0}, {255, 222, 0}, {255, 222, 0},
|
|
|
2077 |
{255, 222, 0}, {255, 222, 0}, {255, 223, 0}, {255, 223, 0}, {255, 223, 0},
|
|
|
2078 |
{255, 223, 0}, {255, 224, 0}, {255, 224, 0}, {255, 224, 0}, {255, 224, 0},
|
|
|
2079 |
{255, 225, 0}, {255, 225, 0}, {255, 225, 0}, {255, 225, 0}, {255, 226, 0},
|
|
|
2080 |
{255, 226, 0}, {255, 226, 0}, {255, 226, 0}, {255, 227, 0}, {255, 227, 0},
|
|
|
2081 |
{255, 227, 0}, {255, 227, 0}, {255, 228, 0}, {255, 228, 0}, {255, 228, 0},
|
|
|
2082 |
{255, 228, 0}, {255, 229, 0}, {255, 229, 0}, {255, 229, 0}, {255, 229, 0},
|
|
|
2083 |
{255, 230, 0}, {255, 230, 0}, {255, 230, 0}, {255, 230, 0}, {255, 231, 0},
|
|
|
2084 |
{255, 231, 0}, {255, 231, 0}, {255, 232, 0}, {255, 232, 0}, {255, 232, 0},
|
|
|
2085 |
{255, 232, 0}, {255, 233, 0}, {255, 233, 0}, {255, 233, 0}, {255, 233, 0},
|
|
|
2086 |
{255, 234, 0}, {255, 234, 0}, {255, 234, 0}, {255, 234, 0}, {255, 235, 0},
|
|
|
2087 |
{255, 235, 0}, {255, 235, 0}, {255, 235, 0}, {255, 236, 0}, {255, 236, 0},
|
|
|
2088 |
{255, 236, 0}, {255, 236, 0}, {255, 237, 0}, {255, 237, 0}, {255, 237, 0},
|
|
|
2089 |
{255, 237, 0}, {255, 238, 0}, {255, 238, 0}, {255, 238, 0}, {255, 238, 0},
|
|
|
2090 |
{255, 239, 0}, {255, 239, 0}, {255, 239, 0}, {255, 239, 0}, {255, 240, 0},
|
|
|
2091 |
{255, 240, 0}, {255, 240, 0}, {255, 240, 0}, {255, 241, 0}, {255, 241, 0},
|
|
|
2092 |
{255, 241, 0}, {255, 241, 0}, {255, 242, 0}, {255, 242, 0}, {255, 242, 0},
|
|
|
2093 |
{255, 242, 0}, {255, 243, 0}, {255, 243, 0}, {255, 243, 0}, {255, 244, 0},
|
|
|
2094 |
{255, 244, 0}, {255, 244, 0}, {255, 244, 0}, {255, 245, 0}, {255, 245, 0},
|
|
|
2095 |
{255, 245, 0}, {255, 245, 0}, {255, 246, 0}, {255, 246, 0}, {255, 246, 0},
|
|
|
2096 |
{255, 246, 0}, {255, 247, 0}, {255, 247, 0}, {255, 247, 0}, {255, 247, 0},
|
|
|
2097 |
{255, 248, 0}, {255, 248, 0}, {255, 248, 0}, {255, 248, 0}, {255, 249, 0},
|
|
|
2098 |
{255, 249, 0}, {255, 249, 0}, {255, 249, 0}, {255, 250, 0}, {255, 250, 0},
|
|
|
2099 |
{255, 250, 0}, {255, 250, 0}, {255, 251, 0}, {255, 251, 0}, {255, 251, 0},
|
|
|
2100 |
{255, 251, 0}, {255, 252, 0}, {255, 252, 0}, {255, 252, 0}, {255, 252, 0},
|
|
|
2101 |
{255, 253, 0}, {255, 253, 0}, {255, 253, 0}, {255, 253, 0}, {255, 254, 0},
|
|
|
2102 |
{255, 254, 0}, {255, 254, 0}, {255, 254, 0}, {255, 255, 0}, {255, 255, 0}
|
|
|
2103 |
};
|
|
|
2104 |
|
|
|
2105 |
const rgb_store copper_colormap[1000] = {
|
|
|
2106 |
{ 0, 0, 0}, { 0, 0, 0}, { 1, 0, 0}, { 1, 1, 0}, { 1, 1, 1},
|
|
|
2107 |
{ 2, 1, 1}, { 2, 1, 1}, { 2, 1, 1}, { 3, 2, 1}, { 3, 2, 1},
|
|
|
2108 |
{ 3, 2, 1}, { 4, 2, 1}, { 4, 2, 2}, { 4, 3, 2}, { 4, 3, 2},
|
|
|
2109 |
{ 5, 3, 2}, { 5, 3, 2}, { 5, 3, 2}, { 6, 4, 2}, { 6, 4, 2},
|
|
|
2110 |
{ 6, 4, 3}, { 7, 4, 3}, { 7, 4, 3}, { 7, 5, 3}, { 8, 5, 3},
|
|
|
2111 |
{ 8, 5, 3}, { 8, 5, 3}, { 9, 5, 3}, { 9, 6, 4}, { 9, 6, 4},
|
|
|
2112 |
{ 10, 6, 4}, { 10, 6, 4}, { 10, 6, 4}, { 11, 7, 4}, { 11, 7, 4},
|
|
|
2113 |
{ 11, 7, 4}, { 11, 7, 5}, { 12, 7, 5}, { 12, 8, 5}, { 12, 8, 5},
|
|
|
2114 |
{ 13, 8, 5}, { 13, 8, 5}, { 13, 8, 5}, { 14, 9, 5}, { 14, 9, 6},
|
|
|
2115 |
{ 14, 9, 6}, { 15, 9, 6}, { 15, 9, 6}, { 15, 10, 6}, { 16, 10, 6},
|
|
|
2116 |
{ 16, 10, 6}, { 16, 10, 6}, { 17, 10, 7}, { 17, 11, 7}, { 17, 11, 7},
|
|
|
2117 |
{ 18, 11, 7}, { 18, 11, 7}, { 18, 11, 7}, { 19, 12, 7}, { 19, 12, 7},
|
|
|
2118 |
{ 19, 12, 8}, { 19, 12, 8}, { 20, 12, 8}, { 20, 13, 8}, { 20, 13, 8},
|
|
|
2119 |
{ 21, 13, 8}, { 21, 13, 8}, { 21, 13, 9}, { 22, 14, 9}, { 22, 14, 9},
|
|
|
2120 |
{ 22, 14, 9}, { 23, 14, 9}, { 23, 14, 9}, { 23, 15, 9}, { 24, 15, 9},
|
|
|
2121 |
{ 24, 15, 10}, { 24, 15, 10}, { 25, 15, 10}, { 25, 16, 10}, { 25, 16, 10},
|
|
|
2122 |
{ 26, 16, 10}, { 26, 16, 10}, { 26, 16, 10}, { 26, 17, 11}, { 27, 17, 11},
|
|
|
2123 |
{ 27, 17, 11}, { 27, 17, 11}, { 28, 17, 11}, { 28, 18, 11}, { 28, 18, 11},
|
|
|
2124 |
{ 29, 18, 11}, { 29, 18, 12}, { 29, 18, 12}, { 30, 19, 12}, { 30, 19, 12},
|
|
|
2125 |
{ 30, 19, 12}, { 31, 19, 12}, { 31, 19, 12}, { 31, 20, 12}, { 32, 20, 13},
|
|
|
2126 |
{ 32, 20, 13}, { 32, 20, 13}, { 33, 20, 13}, { 33, 21, 13}, { 33, 21, 13},
|
|
|
2127 |
{ 34, 21, 13}, { 34, 21, 13}, { 34, 21, 14}, { 34, 22, 14}, { 35, 22, 14},
|
|
|
2128 |
{ 35, 22, 14}, { 35, 22, 14}, { 36, 22, 14}, { 36, 23, 14}, { 36, 23, 14},
|
|
|
2129 |
{ 37, 23, 15}, { 37, 23, 15}, { 37, 23, 15}, { 38, 24, 15}, { 38, 24, 15},
|
|
|
2130 |
{ 38, 24, 15}, { 39, 24, 15}, { 39, 24, 15}, { 39, 25, 16}, { 40, 25, 16},
|
|
|
2131 |
{ 40, 25, 16}, { 40, 25, 16}, { 41, 25, 16}, { 41, 26, 16}, { 41, 26, 16},
|
|
|
2132 |
{ 41, 26, 17}, { 42, 26, 17}, { 42, 26, 17}, { 42, 27, 17}, { 43, 27, 17},
|
|
|
2133 |
{ 43, 27, 17}, { 43, 27, 17}, { 44, 27, 17}, { 44, 28, 18}, { 44, 28, 18},
|
|
|
2134 |
{ 45, 28, 18}, { 45, 28, 18}, { 45, 28, 18}, { 46, 29, 18}, { 46, 29, 18},
|
|
|
2135 |
{ 46, 29, 18}, { 47, 29, 19}, { 47, 29, 19}, { 47, 30, 19}, { 48, 30, 19},
|
|
|
2136 |
{ 48, 30, 19}, { 48, 30, 19}, { 48, 30, 19}, { 49, 31, 19}, { 49, 31, 20},
|
|
|
2137 |
{ 49, 31, 20}, { 50, 31, 20}, { 50, 31, 20}, { 50, 32, 20}, { 51, 32, 20},
|
|
|
2138 |
{ 51, 32, 20}, { 51, 32, 20}, { 52, 32, 21}, { 52, 33, 21}, { 52, 33, 21},
|
|
|
2139 |
{ 53, 33, 21}, { 53, 33, 21}, { 53, 33, 21}, { 54, 34, 21}, { 54, 34, 21},
|
|
|
2140 |
{ 54, 34, 22}, { 55, 34, 22}, { 55, 34, 22}, { 55, 34, 22}, { 56, 35, 22},
|
|
|
2141 |
{ 56, 35, 22}, { 56, 35, 22}, { 56, 35, 22}, { 57, 35, 23}, { 57, 36, 23},
|
|
|
2142 |
{ 57, 36, 23}, { 58, 36, 23}, { 58, 36, 23}, { 58, 36, 23}, { 59, 37, 23},
|
|
|
2143 |
{ 59, 37, 23}, { 59, 37, 24}, { 60, 37, 24}, { 60, 37, 24}, { 60, 38, 24},
|
|
|
2144 |
{ 61, 38, 24}, { 61, 38, 24}, { 61, 38, 24}, { 62, 38, 25}, { 62, 39, 25},
|
|
|
2145 |
{ 62, 39, 25}, { 63, 39, 25}, { 63, 39, 25}, { 63, 39, 25}, { 63, 40, 25},
|
|
|
2146 |
{ 64, 40, 25}, { 64, 40, 26}, { 64, 40, 26}, { 65, 40, 26}, { 65, 41, 26},
|
|
|
2147 |
{ 65, 41, 26}, { 66, 41, 26}, { 66, 41, 26}, { 66, 41, 26}, { 67, 42, 27},
|
|
|
2148 |
{ 67, 42, 27}, { 67, 42, 27}, { 68, 42, 27}, { 68, 42, 27}, { 68, 43, 27},
|
|
|
2149 |
{ 69, 43, 27}, { 69, 43, 27}, { 69, 43, 28}, { 70, 43, 28}, { 70, 44, 28},
|
|
|
2150 |
{ 70, 44, 28}, { 71, 44, 28}, { 71, 44, 28}, { 71, 44, 28}, { 71, 45, 28},
|
|
|
2151 |
{ 72, 45, 29}, { 72, 45, 29}, { 72, 45, 29}, { 73, 45, 29}, { 73, 46, 29},
|
|
|
2152 |
{ 73, 46, 29}, { 74, 46, 29}, { 74, 46, 29}, { 74, 46, 30}, { 75, 47, 30},
|
|
|
2153 |
{ 75, 47, 30}, { 75, 47, 30}, { 76, 47, 30}, { 76, 47, 30}, { 76, 48, 30},
|
|
|
2154 |
{ 77, 48, 30}, { 77, 48, 31}, { 77, 48, 31}, { 78, 48, 31}, { 78, 49, 31},
|
|
|
2155 |
{ 78, 49, 31}, { 78, 49, 31}, { 79, 49, 31}, { 79, 49, 31}, { 79, 50, 32},
|
|
|
2156 |
{ 80, 50, 32}, { 80, 50, 32}, { 80, 50, 32}, { 81, 50, 32}, { 81, 51, 32},
|
|
|
2157 |
{ 81, 51, 32}, { 82, 51, 33}, { 82, 51, 33}, { 82, 51, 33}, { 83, 52, 33},
|
|
|
2158 |
{ 83, 52, 33}, { 83, 52, 33}, { 84, 52, 33}, { 84, 52, 33}, { 84, 53, 34},
|
|
|
2159 |
{ 85, 53, 34}, { 85, 53, 34}, { 85, 53, 34}, { 86, 53, 34}, { 86, 54, 34},
|
|
|
2160 |
{ 86, 54, 34}, { 86, 54, 34}, { 87, 54, 35}, { 87, 54, 35}, { 87, 55, 35},
|
|
|
2161 |
{ 88, 55, 35}, { 88, 55, 35}, { 88, 55, 35}, { 89, 55, 35}, { 89, 56, 35},
|
|
|
2162 |
{ 89, 56, 36}, { 90, 56, 36}, { 90, 56, 36}, { 90, 56, 36}, { 91, 57, 36},
|
|
|
2163 |
{ 91, 57, 36}, { 91, 57, 36}, { 92, 57, 36}, { 92, 57, 37}, { 92, 58, 37},
|
|
|
2164 |
{ 93, 58, 37}, { 93, 58, 37}, { 93, 58, 37}, { 93, 58, 37}, { 94, 59, 37},
|
|
|
2165 |
{ 94, 59, 37}, { 94, 59, 38}, { 95, 59, 38}, { 95, 59, 38}, { 95, 60, 38},
|
|
|
2166 |
{ 96, 60, 38}, { 96, 60, 38}, { 96, 60, 38}, { 97, 60, 38}, { 97, 61, 39},
|
|
|
2167 |
{ 97, 61, 39}, { 98, 61, 39}, { 98, 61, 39}, { 98, 61, 39}, { 99, 62, 39},
|
|
|
2168 |
{ 99, 62, 39}, { 99, 62, 39}, {100, 62, 40}, {100, 62, 40}, {100, 63, 40},
|
|
|
2169 |
{101, 63, 40}, {101, 63, 40}, {101, 63, 40}, {101, 63, 40}, {102, 64, 41},
|
|
|
2170 |
{102, 64, 41}, {102, 64, 41}, {103, 64, 41}, {103, 64, 41}, {103, 65, 41},
|
|
|
2171 |
{104, 65, 41}, {104, 65, 41}, {104, 65, 42}, {105, 65, 42}, {105, 66, 42},
|
|
|
2172 |
{105, 66, 42}, {106, 66, 42}, {106, 66, 42}, {106, 66, 42}, {107, 67, 42},
|
|
|
2173 |
{107, 67, 43}, {107, 67, 43}, {108, 67, 43}, {108, 67, 43}, {108, 68, 43},
|
|
|
2174 |
{108, 68, 43}, {109, 68, 43}, {109, 68, 43}, {109, 68, 44}, {110, 69, 44},
|
|
|
2175 |
{110, 69, 44}, {110, 69, 44}, {111, 69, 44}, {111, 69, 44}, {111, 70, 44},
|
|
|
2176 |
{112, 70, 44}, {112, 70, 45}, {112, 70, 45}, {113, 70, 45}, {113, 71, 45},
|
|
|
2177 |
{113, 71, 45}, {114, 71, 45}, {114, 71, 45}, {114, 71, 45}, {115, 72, 46},
|
|
|
2178 |
{115, 72, 46}, {115, 72, 46}, {116, 72, 46}, {116, 72, 46}, {116, 73, 46},
|
|
|
2179 |
{116, 73, 46}, {117, 73, 46}, {117, 73, 47}, {117, 73, 47}, {118, 74, 47},
|
|
|
2180 |
{118, 74, 47}, {118, 74, 47}, {119, 74, 47}, {119, 74, 47}, {119, 75, 47},
|
|
|
2181 |
{120, 75, 48}, {120, 75, 48}, {120, 75, 48}, {121, 75, 48}, {121, 76, 48},
|
|
|
2182 |
{121, 76, 48}, {122, 76, 48}, {122, 76, 49}, {122, 76, 49}, {123, 77, 49},
|
|
|
2183 |
{123, 77, 49}, {123, 77, 49}, {123, 77, 49}, {124, 77, 49}, {124, 78, 49},
|
|
|
2184 |
{124, 78, 50}, {125, 78, 50}, {125, 78, 50}, {125, 78, 50}, {126, 79, 50},
|
|
|
2185 |
{126, 79, 50}, {126, 79, 50}, {127, 79, 50}, {127, 79, 51}, {127, 80, 51},
|
|
|
2186 |
{128, 80, 51}, {128, 80, 51}, {128, 80, 51}, {129, 80, 51}, {129, 81, 51},
|
|
|
2187 |
{129, 81, 51}, {130, 81, 52}, {130, 81, 52}, {130, 81, 52}, {130, 82, 52},
|
|
|
2188 |
{131, 82, 52}, {131, 82, 52}, {131, 82, 52}, {132, 82, 52}, {132, 83, 53},
|
|
|
2189 |
{132, 83, 53}, {133, 83, 53}, {133, 83, 53}, {133, 83, 53}, {134, 84, 53},
|
|
|
2190 |
{134, 84, 53}, {134, 84, 53}, {135, 84, 54}, {135, 84, 54}, {135, 85, 54},
|
|
|
2191 |
{136, 85, 54}, {136, 85, 54}, {136, 85, 54}, {137, 85, 54}, {137, 86, 54},
|
|
|
2192 |
{137, 86, 55}, {138, 86, 55}, {138, 86, 55}, {138, 86, 55}, {138, 87, 55},
|
|
|
2193 |
{139, 87, 55}, {139, 87, 55}, {139, 87, 55}, {140, 87, 56}, {140, 88, 56},
|
|
|
2194 |
{140, 88, 56}, {141, 88, 56}, {141, 88, 56}, {141, 88, 56}, {142, 89, 56},
|
|
|
2195 |
{142, 89, 57}, {142, 89, 57}, {143, 89, 57}, {143, 89, 57}, {143, 90, 57},
|
|
|
2196 |
{144, 90, 57}, {144, 90, 57}, {144, 90, 57}, {145, 90, 58}, {145, 91, 58},
|
|
|
2197 |
{145, 91, 58}, {145, 91, 58}, {146, 91, 58}, {146, 91, 58}, {146, 92, 58},
|
|
|
2198 |
{147, 92, 58}, {147, 92, 59}, {147, 92, 59}, {148, 92, 59}, {148, 93, 59},
|
|
|
2199 |
{148, 93, 59}, {149, 93, 59}, {149, 93, 59}, {149, 93, 59}, {150, 94, 60},
|
|
|
2200 |
{150, 94, 60}, {150, 94, 60}, {151, 94, 60}, {151, 94, 60}, {151, 95, 60},
|
|
|
2201 |
{152, 95, 60}, {152, 95, 60}, {152, 95, 61}, {153, 95, 61}, {153, 96, 61},
|
|
|
2202 |
{153, 96, 61}, {153, 96, 61}, {154, 96, 61}, {154, 96, 61}, {154, 97, 61},
|
|
|
2203 |
{155, 97, 62}, {155, 97, 62}, {155, 97, 62}, {156, 97, 62}, {156, 98, 62},
|
|
|
2204 |
{156, 98, 62}, {157, 98, 62}, {157, 98, 62}, {157, 98, 63}, {158, 99, 63},
|
|
|
2205 |
{158, 99, 63}, {158, 99, 63}, {159, 99, 63}, {159, 99, 63}, {159, 100, 63},
|
|
|
2206 |
{160, 100, 63}, {160, 100, 64}, {160, 100, 64}, {160, 100, 64}, {161, 101, 64},
|
|
|
2207 |
{161, 101, 64}, {161, 101, 64}, {162, 101, 64}, {162, 101, 65}, {162, 101, 65},
|
|
|
2208 |
{163, 102, 65}, {163, 102, 65}, {163, 102, 65}, {164, 102, 65}, {164, 102, 65},
|
|
|
2209 |
{164, 103, 65}, {165, 103, 66}, {165, 103, 66}, {165, 103, 66}, {166, 103, 66},
|
|
|
2210 |
{166, 104, 66}, {166, 104, 66}, {167, 104, 66}, {167, 104, 66}, {167, 104, 67},
|
|
|
2211 |
{168, 105, 67}, {168, 105, 67}, {168, 105, 67}, {168, 105, 67}, {169, 105, 67},
|
|
|
2212 |
{169, 106, 67}, {169, 106, 67}, {170, 106, 68}, {170, 106, 68}, {170, 106, 68},
|
|
|
2213 |
{171, 107, 68}, {171, 107, 68}, {171, 107, 68}, {172, 107, 68}, {172, 107, 68},
|
|
|
2214 |
{172, 108, 69}, {173, 108, 69}, {173, 108, 69}, {173, 108, 69}, {174, 108, 69},
|
|
|
2215 |
{174, 109, 69}, {174, 109, 69}, {175, 109, 69}, {175, 109, 70}, {175, 109, 70},
|
|
|
2216 |
{175, 110, 70}, {176, 110, 70}, {176, 110, 70}, {176, 110, 70}, {177, 110, 70},
|
|
|
2217 |
{177, 111, 70}, {177, 111, 71}, {178, 111, 71}, {178, 111, 71}, {178, 111, 71},
|
|
|
2218 |
{179, 112, 71}, {179, 112, 71}, {179, 112, 71}, {180, 112, 71}, {180, 112, 72},
|
|
|
2219 |
{180, 113, 72}, {181, 113, 72}, {181, 113, 72}, {181, 113, 72}, {182, 113, 72},
|
|
|
2220 |
{182, 114, 72}, {182, 114, 73}, {183, 114, 73}, {183, 114, 73}, {183, 114, 73},
|
|
|
2221 |
{183, 115, 73}, {184, 115, 73}, {184, 115, 73}, {184, 115, 73}, {185, 115, 74},
|
|
|
2222 |
{185, 116, 74}, {185, 116, 74}, {186, 116, 74}, {186, 116, 74}, {186, 116, 74},
|
|
|
2223 |
{187, 117, 74}, {187, 117, 74}, {187, 117, 75}, {188, 117, 75}, {188, 117, 75},
|
|
|
2224 |
{188, 118, 75}, {189, 118, 75}, {189, 118, 75}, {189, 118, 75}, {190, 118, 75},
|
|
|
2225 |
{190, 119, 76}, {190, 119, 76}, {190, 119, 76}, {191, 119, 76}, {191, 119, 76},
|
|
|
2226 |
{191, 120, 76}, {192, 120, 76}, {192, 120, 76}, {192, 120, 77}, {193, 120, 77},
|
|
|
2227 |
{193, 121, 77}, {193, 121, 77}, {194, 121, 77}, {194, 121, 77}, {194, 121, 77},
|
|
|
2228 |
{195, 122, 77}, {195, 122, 78}, {195, 122, 78}, {196, 122, 78}, {196, 122, 78},
|
|
|
2229 |
{196, 123, 78}, {197, 123, 78}, {197, 123, 78}, {197, 123, 78}, {198, 123, 79},
|
|
|
2230 |
{198, 124, 79}, {198, 124, 79}, {198, 124, 79}, {199, 124, 79}, {199, 124, 79},
|
|
|
2231 |
{199, 125, 79}, {200, 125, 79}, {200, 125, 80}, {200, 125, 80}, {201, 125, 80},
|
|
|
2232 |
{201, 126, 80}, {201, 126, 80}, {202, 126, 80}, {202, 126, 80}, {202, 126, 81},
|
|
|
2233 |
{203, 127, 81}, {203, 127, 81}, {203, 127, 81}, {204, 127, 81}, {204, 127, 81},
|
|
|
2234 |
{204, 128, 81}, {205, 128, 81}, {205, 128, 82}, {205, 128, 82}, {205, 128, 82},
|
|
|
2235 |
{206, 129, 82}, {206, 129, 82}, {206, 129, 82}, {207, 129, 82}, {207, 129, 82},
|
|
|
2236 |
{207, 130, 83}, {208, 130, 83}, {208, 130, 83}, {208, 130, 83}, {209, 130, 83},
|
|
|
2237 |
{209, 131, 83}, {209, 131, 83}, {210, 131, 83}, {210, 131, 84}, {210, 131, 84},
|
|
|
2238 |
{211, 132, 84}, {211, 132, 84}, {211, 132, 84}, {212, 132, 84}, {212, 132, 84},
|
|
|
2239 |
{212, 133, 84}, {212, 133, 85}, {213, 133, 85}, {213, 133, 85}, {213, 133, 85},
|
|
|
2240 |
{214, 134, 85}, {214, 134, 85}, {214, 134, 85}, {215, 134, 85}, {215, 134, 86},
|
|
|
2241 |
{215, 135, 86}, {216, 135, 86}, {216, 135, 86}, {216, 135, 86}, {217, 135, 86},
|
|
|
2242 |
{217, 136, 86}, {217, 136, 86}, {218, 136, 87}, {218, 136, 87}, {218, 136, 87},
|
|
|
2243 |
{219, 137, 87}, {219, 137, 87}, {219, 137, 87}, {220, 137, 87}, {220, 137, 87},
|
|
|
2244 |
{220, 138, 88}, {220, 138, 88}, {221, 138, 88}, {221, 138, 88}, {221, 138, 88},
|
|
|
2245 |
{222, 139, 88}, {222, 139, 88}, {222, 139, 89}, {223, 139, 89}, {223, 139, 89},
|
|
|
2246 |
{223, 140, 89}, {224, 140, 89}, {224, 140, 89}, {224, 140, 89}, {225, 140, 89},
|
|
|
2247 |
{225, 141, 90}, {225, 141, 90}, {226, 141, 90}, {226, 141, 90}, {226, 141, 90},
|
|
|
2248 |
{227, 142, 90}, {227, 142, 90}, {227, 142, 90}, {227, 142, 91}, {228, 142, 91},
|
|
|
2249 |
{228, 143, 91}, {228, 143, 91}, {229, 143, 91}, {229, 143, 91}, {229, 143, 91},
|
|
|
2250 |
{230, 144, 91}, {230, 144, 92}, {230, 144, 92}, {231, 144, 92}, {231, 144, 92},
|
|
|
2251 |
{231, 145, 92}, {232, 145, 92}, {232, 145, 92}, {232, 145, 92}, {233, 145, 93},
|
|
|
2252 |
{233, 146, 93}, {233, 146, 93}, {234, 146, 93}, {234, 146, 93}, {234, 146, 93},
|
|
|
2253 |
{235, 147, 93}, {235, 147, 93}, {235, 147, 94}, {235, 147, 94}, {236, 147, 94},
|
|
|
2254 |
{236, 148, 94}, {236, 148, 94}, {237, 148, 94}, {237, 148, 94}, {237, 148, 94},
|
|
|
2255 |
{238, 149, 95}, {238, 149, 95}, {238, 149, 95}, {239, 149, 95}, {239, 149, 95},
|
|
|
2256 |
{239, 150, 95}, {240, 150, 95}, {240, 150, 95}, {240, 150, 96}, {241, 150, 96},
|
|
|
2257 |
{241, 151, 96}, {241, 151, 96}, {242, 151, 96}, {242, 151, 96}, {242, 151, 96},
|
|
|
2258 |
{242, 152, 97}, {243, 152, 97}, {243, 152, 97}, {243, 152, 97}, {244, 152, 97},
|
|
|
2259 |
{244, 153, 97}, {244, 153, 97}, {245, 153, 97}, {245, 153, 98}, {245, 153, 98},
|
|
|
2260 |
{246, 154, 98}, {246, 154, 98}, {246, 154, 98}, {247, 154, 98}, {247, 154, 98},
|
|
|
2261 |
{247, 155, 98}, {248, 155, 99}, {248, 155, 99}, {248, 155, 99}, {249, 155, 99},
|
|
|
2262 |
{249, 156, 99}, {249, 156, 99}, {250, 156, 99}, {250, 156, 99}, {250, 156, 100},
|
|
|
2263 |
{250, 157, 100}, {251, 157, 100}, {251, 157, 100}, {251, 157, 100}, {252, 157, 100},
|
|
|
2264 |
{252, 158, 100}, {252, 158, 100}, {253, 158, 101}, {253, 158, 101}, {253, 158, 101},
|
|
|
2265 |
{253, 159, 101}, {253, 159, 101}, {254, 159, 101}, {254, 159, 101}, {254, 159, 101},
|
|
|
2266 |
{254, 160, 102}, {254, 160, 102}, {254, 160, 102}, {254, 160, 102}, {254, 160, 102},
|
|
|
2267 |
{255, 161, 102}, {255, 161, 102}, {255, 161, 102}, {255, 161, 103}, {255, 161, 103},
|
|
|
2268 |
{255, 162, 103}, {255, 162, 103}, {255, 162, 103}, {255, 162, 103}, {255, 162, 103},
|
|
|
2269 |
{255, 163, 103}, {255, 163, 104}, {255, 163, 104}, {255, 163, 104}, {255, 163, 104},
|
|
|
2270 |
{255, 164, 104}, {255, 164, 104}, {255, 164, 104}, {255, 164, 105}, {255, 164, 105},
|
|
|
2271 |
{255, 165, 105}, {255, 165, 105}, {255, 165, 105}, {255, 165, 105}, {255, 165, 105},
|
|
|
2272 |
{255, 166, 105}, {255, 166, 106}, {255, 166, 106}, {255, 166, 106}, {255, 166, 106},
|
|
|
2273 |
{255, 167, 106}, {255, 167, 106}, {255, 167, 106}, {255, 167, 106}, {255, 167, 107},
|
|
|
2274 |
{255, 168, 107}, {255, 168, 107}, {255, 168, 107}, {255, 168, 107}, {255, 168, 107},
|
|
|
2275 |
{255, 168, 107}, {255, 169, 107}, {255, 169, 108}, {255, 169, 108}, {255, 169, 108},
|
|
|
2276 |
{255, 169, 108}, {255, 170, 108}, {255, 170, 108}, {255, 170, 108}, {255, 170, 108},
|
|
|
2277 |
{255, 170, 109}, {255, 171, 109}, {255, 171, 109}, {255, 171, 109}, {255, 171, 109},
|
|
|
2278 |
{255, 171, 109}, {255, 172, 109}, {255, 172, 109}, {255, 172, 110}, {255, 172, 110},
|
|
|
2279 |
{255, 172, 110}, {255, 173, 110}, {255, 173, 110}, {255, 173, 110}, {255, 173, 110},
|
|
|
2280 |
{255, 173, 110}, {255, 174, 111}, {255, 174, 111}, {255, 174, 111}, {255, 174, 111},
|
|
|
2281 |
{255, 174, 111}, {255, 175, 111}, {255, 175, 111}, {255, 175, 111}, {255, 175, 112},
|
|
|
2282 |
{255, 175, 112}, {255, 176, 112}, {255, 176, 112}, {255, 176, 112}, {255, 176, 112},
|
|
|
2283 |
{255, 176, 112}, {255, 177, 113}, {255, 177, 113}, {255, 177, 113}, {255, 177, 113},
|
|
|
2284 |
{255, 177, 113}, {255, 178, 113}, {255, 178, 113}, {255, 178, 113}, {255, 178, 114},
|
|
|
2285 |
{255, 178, 114}, {255, 179, 114}, {255, 179, 114}, {255, 179, 114}, {255, 179, 114},
|
|
|
2286 |
{255, 179, 114}, {255, 180, 114}, {255, 180, 115}, {255, 180, 115}, {255, 180, 115},
|
|
|
2287 |
{255, 180, 115}, {255, 181, 115}, {255, 181, 115}, {255, 181, 115}, {255, 181, 115},
|
|
|
2288 |
{255, 181, 116}, {255, 182, 116}, {255, 182, 116}, {255, 182, 116}, {255, 182, 116},
|
|
|
2289 |
{255, 182, 116}, {255, 183, 116}, {255, 183, 116}, {255, 183, 117}, {255, 183, 117},
|
|
|
2290 |
{255, 183, 117}, {255, 184, 117}, {255, 184, 117}, {255, 184, 117}, {255, 184, 117},
|
|
|
2291 |
{255, 184, 117}, {255, 185, 118}, {255, 185, 118}, {255, 185, 118}, {255, 185, 118},
|
|
|
2292 |
{255, 185, 118}, {255, 186, 118}, {255, 186, 118}, {255, 186, 118}, {255, 186, 119},
|
|
|
2293 |
{255, 186, 119}, {255, 187, 119}, {255, 187, 119}, {255, 187, 119}, {255, 187, 119},
|
|
|
2294 |
{255, 187, 119}, {255, 188, 119}, {255, 188, 120}, {255, 188, 120}, {255, 188, 120},
|
|
|
2295 |
{255, 188, 120}, {255, 189, 120}, {255, 189, 120}, {255, 189, 120}, {255, 189, 121},
|
|
|
2296 |
{255, 189, 121}, {255, 190, 121}, {255, 190, 121}, {255, 190, 121}, {255, 190, 121},
|
|
|
2297 |
{255, 190, 121}, {255, 191, 121}, {255, 191, 122}, {255, 191, 122}, {255, 191, 122},
|
|
|
2298 |
{255, 191, 122}, {255, 192, 122}, {255, 192, 122}, {255, 192, 122}, {255, 192, 122},
|
|
|
2299 |
{255, 192, 123}, {255, 193, 123}, {255, 193, 123}, {255, 193, 123}, {255, 193, 123},
|
|
|
2300 |
{255, 193, 123}, {255, 194, 123}, {255, 194, 123}, {255, 194, 124}, {255, 194, 124},
|
|
|
2301 |
{255, 194, 124}, {255, 195, 124}, {255, 195, 124}, {255, 195, 124}, {255, 195, 124},
|
|
|
2302 |
{255, 195, 124}, {255, 196, 125}, {255, 196, 125}, {255, 196, 125}, {255, 196, 125},
|
|
|
2303 |
{255, 196, 125}, {255, 197, 125}, {255, 197, 125}, {255, 197, 125}, {255, 197, 126},
|
|
|
2304 |
{255, 197, 126}, {255, 198, 126}, {255, 198, 126}, {255, 198, 126}, {255, 198, 126},
|
|
|
2305 |
{255, 198, 126}, {255, 199, 126}, {255, 199, 127}, {255, 199, 127}, {255, 199, 127}
|
|
|
2306 |
};
|
|
|
2307 |
|
|
|
2308 |
const rgb_store gray_colormap[1000] = {
|
|
|
2309 |
{255, 255, 255}, {255, 255, 255}, {254, 254, 254}, {254, 254, 254}, {254, 254, 254},
|
|
|
2310 |
{254, 254, 254}, {253, 253, 253}, {253, 253, 253}, {253, 253, 253}, {253, 253, 253},
|
|
|
2311 |
{252, 252, 252}, {252, 252, 252}, {252, 252, 252}, {252, 252, 252}, {251, 251, 251},
|
|
|
2312 |
{251, 251, 251}, {251, 251, 251}, {251, 251, 251}, {250, 250, 250}, {250, 250, 250},
|
|
|
2313 |
{250, 250, 250}, {250, 250, 250}, {249, 249, 249}, {249, 249, 249}, {249, 249, 249},
|
|
|
2314 |
{249, 249, 249}, {248, 248, 248}, {248, 248, 248}, {248, 248, 248}, {248, 248, 248},
|
|
|
2315 |
{247, 247, 247}, {247, 247, 247}, {247, 247, 247}, {247, 247, 247}, {246, 246, 246},
|
|
|
2316 |
{246, 246, 246}, {246, 246, 246}, {246, 246, 246}, {245, 245, 245}, {245, 245, 245},
|
|
|
2317 |
{245, 245, 245}, {245, 245, 245}, {244, 244, 244}, {244, 244, 244}, {244, 244, 244},
|
|
|
2318 |
{244, 244, 244}, {243, 243, 243}, {243, 243, 243}, {243, 243, 243}, {242, 242, 242},
|
|
|
2319 |
{242, 242, 242}, {242, 242, 242}, {242, 242, 242}, {241, 241, 241}, {241, 241, 241},
|
|
|
2320 |
{241, 241, 241}, {241, 241, 241}, {240, 240, 240}, {240, 240, 240}, {240, 240, 240},
|
|
|
2321 |
{240, 240, 240}, {239, 239, 239}, {239, 239, 239}, {239, 239, 239}, {239, 239, 239},
|
|
|
2322 |
{238, 238, 238}, {238, 238, 238}, {238, 238, 238}, {238, 238, 238}, {237, 237, 237},
|
|
|
2323 |
{237, 237, 237}, {237, 237, 237}, {237, 237, 237}, {236, 236, 236}, {236, 236, 236},
|
|
|
2324 |
{236, 236, 236}, {236, 236, 236}, {235, 235, 235}, {235, 235, 235}, {235, 235, 235},
|
|
|
2325 |
{235, 235, 235}, {234, 234, 234}, {234, 234, 234}, {234, 234, 234}, {234, 234, 234},
|
|
|
2326 |
{233, 233, 233}, {233, 233, 233}, {233, 233, 233}, {233, 233, 233}, {232, 232, 232},
|
|
|
2327 |
{232, 232, 232}, {232, 232, 232}, {232, 232, 232}, {231, 231, 231}, {231, 231, 231},
|
|
|
2328 |
{231, 231, 231}, {230, 230, 230}, {230, 230, 230}, {230, 230, 230}, {230, 230, 230},
|
|
|
2329 |
{229, 229, 229}, {229, 229, 229}, {229, 229, 229}, {229, 229, 229}, {228, 228, 228},
|
|
|
2330 |
{228, 228, 228}, {228, 228, 228}, {228, 228, 228}, {227, 227, 227}, {227, 227, 227},
|
|
|
2331 |
{227, 227, 227}, {227, 227, 227}, {226, 226, 226}, {226, 226, 226}, {226, 226, 226},
|
|
|
2332 |
{226, 226, 226}, {225, 225, 225}, {225, 225, 225}, {225, 225, 225}, {225, 225, 225},
|
|
|
2333 |
{224, 224, 224}, {224, 224, 224}, {224, 224, 224}, {224, 224, 224}, {223, 223, 223},
|
|
|
2334 |
{223, 223, 223}, {223, 223, 223}, {223, 223, 223}, {222, 222, 222}, {222, 222, 222},
|
|
|
2335 |
{222, 222, 222}, {222, 222, 222}, {221, 221, 221}, {221, 221, 221}, {221, 221, 221},
|
|
|
2336 |
{221, 221, 221}, {220, 220, 220}, {220, 220, 220}, {220, 220, 220}, {220, 220, 220},
|
|
|
2337 |
{219, 219, 219}, {219, 219, 219}, {219, 219, 219}, {218, 218, 218}, {218, 218, 218},
|
|
|
2338 |
{218, 218, 218}, {218, 218, 218}, {217, 217, 217}, {217, 217, 217}, {217, 217, 217},
|
|
|
2339 |
{217, 217, 217}, {216, 216, 216}, {216, 216, 216}, {216, 216, 216}, {216, 216, 216},
|
|
|
2340 |
{215, 215, 215}, {215, 215, 215}, {215, 215, 215}, {215, 215, 215}, {214, 214, 214},
|
|
|
2341 |
{214, 214, 214}, {214, 214, 214}, {214, 214, 214}, {213, 213, 213}, {213, 213, 213},
|
|
|
2342 |
{213, 213, 213}, {213, 213, 213}, {212, 212, 212}, {212, 212, 212}, {212, 212, 212},
|
|
|
2343 |
{212, 212, 212}, {211, 211, 211}, {211, 211, 211}, {211, 211, 211}, {211, 211, 211},
|
|
|
2344 |
{210, 210, 210}, {210, 210, 210}, {210, 210, 210}, {210, 210, 210}, {209, 209, 209},
|
|
|
2345 |
{209, 209, 209}, {209, 209, 209}, {209, 209, 209}, {208, 208, 208}, {208, 208, 208},
|
|
|
2346 |
{208, 208, 208}, {208, 208, 208}, {207, 207, 207}, {207, 207, 207}, {207, 207, 207},
|
|
|
2347 |
{207, 207, 207}, {206, 206, 206}, {206, 206, 206}, {206, 206, 206}, {205, 205, 205},
|
|
|
2348 |
{205, 205, 205}, {205, 205, 205}, {205, 205, 205}, {204, 204, 204}, {204, 204, 204},
|
|
|
2349 |
{204, 204, 204}, {204, 204, 204}, {203, 203, 203}, {203, 203, 203}, {203, 203, 203},
|
|
|
2350 |
{203, 203, 203}, {202, 202, 202}, {202, 202, 202}, {202, 202, 202}, {202, 202, 202},
|
|
|
2351 |
{201, 201, 201}, {201, 201, 201}, {201, 201, 201}, {201, 201, 201}, {200, 200, 200},
|
|
|
2352 |
{200, 200, 200}, {200, 200, 200}, {200, 200, 200}, {199, 199, 199}, {199, 199, 199},
|
|
|
2353 |
{199, 199, 199}, {199, 199, 199}, {198, 198, 198}, {198, 198, 198}, {198, 198, 198},
|
|
|
2354 |
{198, 198, 198}, {197, 197, 197}, {197, 197, 197}, {197, 197, 197}, {197, 197, 197},
|
|
|
2355 |
{196, 196, 196}, {196, 196, 196}, {196, 196, 196}, {196, 196, 196}, {195, 195, 195},
|
|
|
2356 |
{195, 195, 195}, {195, 195, 195}, {195, 195, 195}, {194, 194, 194}, {194, 194, 194},
|
|
|
2357 |
{194, 194, 194}, {193, 193, 193}, {193, 193, 193}, {193, 193, 193}, {193, 193, 193},
|
|
|
2358 |
{192, 192, 192}, {192, 192, 192}, {192, 192, 192}, {192, 192, 192}, {191, 191, 191},
|
|
|
2359 |
{191, 191, 191}, {191, 191, 191}, {191, 191, 191}, {190, 190, 190}, {190, 190, 190},
|
|
|
2360 |
{190, 190, 190}, {190, 190, 190}, {189, 189, 189}, {189, 189, 189}, {189, 189, 189},
|
|
|
2361 |
{189, 189, 189}, {188, 188, 188}, {188, 188, 188}, {188, 188, 188}, {188, 188, 188},
|
|
|
2362 |
{187, 187, 187}, {187, 187, 187}, {187, 187, 187}, {187, 187, 187}, {186, 186, 186},
|
|
|
2363 |
{186, 186, 186}, {186, 186, 186}, {186, 186, 186}, {185, 185, 185}, {185, 185, 185},
|
|
|
2364 |
{185, 185, 185}, {185, 185, 185}, {184, 184, 184}, {184, 184, 184}, {184, 184, 184},
|
|
|
2365 |
{184, 184, 184}, {183, 183, 183}, {183, 183, 183}, {183, 183, 183}, {183, 183, 183},
|
|
|
2366 |
{182, 182, 182}, {182, 182, 182}, {182, 182, 182}, {181, 181, 181}, {181, 181, 181},
|
|
|
2367 |
{181, 181, 181}, {181, 181, 181}, {180, 180, 180}, {180, 180, 180}, {180, 180, 180},
|
|
|
2368 |
{180, 180, 180}, {179, 179, 179}, {179, 179, 179}, {179, 179, 179}, {179, 179, 179},
|
|
|
2369 |
{178, 178, 178}, {178, 178, 178}, {178, 178, 178}, {178, 178, 178}, {177, 177, 177},
|
|
|
2370 |
{177, 177, 177}, {177, 177, 177}, {177, 177, 177}, {176, 176, 176}, {176, 176, 176},
|
|
|
2371 |
{176, 176, 176}, {176, 176, 176}, {175, 175, 175}, {175, 175, 175}, {175, 175, 175},
|
|
|
2372 |
{175, 175, 175}, {174, 174, 174}, {174, 174, 174}, {174, 174, 174}, {174, 174, 174},
|
|
|
2373 |
{173, 173, 173}, {173, 173, 173}, {173, 173, 173}, {173, 173, 173}, {172, 172, 172},
|
|
|
2374 |
{172, 172, 172}, {172, 172, 172}, {172, 172, 172}, {171, 171, 171}, {171, 171, 171},
|
|
|
2375 |
{171, 171, 171}, {171, 171, 171}, {170, 170, 170}, {170, 170, 170}, {170, 170, 170},
|
|
|
2376 |
{169, 169, 169}, {169, 169, 169}, {169, 169, 169}, {169, 169, 169}, {168, 168, 168},
|
|
|
2377 |
{168, 168, 168}, {168, 168, 168}, {168, 168, 168}, {167, 167, 167}, {167, 167, 167},
|
|
|
2378 |
{167, 167, 167}, {167, 167, 167}, {166, 166, 166}, {166, 166, 166}, {166, 166, 166},
|
|
|
2379 |
{166, 166, 166}, {165, 165, 165}, {165, 165, 165}, {165, 165, 165}, {165, 165, 165},
|
|
|
2380 |
{164, 164, 164}, {164, 164, 164}, {164, 164, 164}, {164, 164, 164}, {163, 163, 163},
|
|
|
2381 |
{163, 163, 163}, {163, 163, 163}, {163, 163, 163}, {162, 162, 162}, {162, 162, 162},
|
|
|
2382 |
{162, 162, 162}, {162, 162, 162}, {161, 161, 161}, {161, 161, 161}, {161, 161, 161},
|
|
|
2383 |
{161, 161, 161}, {160, 160, 160}, {160, 160, 160}, {160, 160, 160}, {160, 160, 160},
|
|
|
2384 |
{159, 159, 159}, {159, 159, 159}, {159, 159, 159}, {159, 159, 159}, {158, 158, 158},
|
|
|
2385 |
{158, 158, 158}, {158, 158, 158}, {157, 157, 157}, {157, 157, 157}, {157, 157, 157},
|
|
|
2386 |
{157, 157, 157}, {156, 156, 156}, {156, 156, 156}, {156, 156, 156}, {156, 156, 156},
|
|
|
2387 |
{155, 155, 155}, {155, 155, 155}, {155, 155, 155}, {155, 155, 155}, {154, 154, 154},
|
|
|
2388 |
{154, 154, 154}, {154, 154, 154}, {154, 154, 154}, {153, 153, 153}, {153, 153, 153},
|
|
|
2389 |
{153, 153, 153}, {153, 153, 153}, {152, 152, 152}, {152, 152, 152}, {152, 152, 152},
|
|
|
2390 |
{152, 152, 152}, {151, 151, 151}, {151, 151, 151}, {151, 151, 151}, {151, 151, 151},
|
|
|
2391 |
{150, 150, 150}, {150, 150, 150}, {150, 150, 150}, {150, 150, 150}, {149, 149, 149},
|
|
|
2392 |
{149, 149, 149}, {149, 149, 149}, {149, 149, 149}, {148, 148, 148}, {148, 148, 148},
|
|
|
2393 |
{148, 148, 148}, {148, 148, 148}, {147, 147, 147}, {147, 147, 147}, {147, 147, 147},
|
|
|
2394 |
{147, 147, 147}, {146, 146, 146}, {146, 146, 146}, {146, 146, 146}, {145, 145, 145},
|
|
|
2395 |
{145, 145, 145}, {145, 145, 145}, {145, 145, 145}, {144, 144, 144}, {144, 144, 144},
|
|
|
2396 |
{144, 144, 144}, {144, 144, 144}, {143, 143, 143}, {143, 143, 143}, {143, 143, 143},
|
|
|
2397 |
{143, 143, 143}, {142, 142, 142}, {142, 142, 142}, {142, 142, 142}, {142, 142, 142},
|
|
|
2398 |
{141, 141, 141}, {141, 141, 141}, {141, 141, 141}, {141, 141, 141}, {140, 140, 140},
|
|
|
2399 |
{140, 140, 140}, {140, 140, 140}, {140, 140, 140}, {139, 139, 139}, {139, 139, 139},
|
|
|
2400 |
{139, 139, 139}, {139, 139, 139}, {138, 138, 138}, {138, 138, 138}, {138, 138, 138},
|
|
|
2401 |
{138, 138, 138}, {137, 137, 137}, {137, 137, 137}, {137, 137, 137}, {137, 137, 137},
|
|
|
2402 |
{136, 136, 136}, {136, 136, 136}, {136, 136, 136}, {136, 136, 136}, {135, 135, 135},
|
|
|
2403 |
{135, 135, 135}, {135, 135, 135}, {135, 135, 135}, {134, 134, 134}, {134, 134, 134},
|
|
|
2404 |
{134, 134, 134}, {133, 133, 133}, {133, 133, 133}, {133, 133, 133}, {133, 133, 133},
|
|
|
2405 |
{132, 132, 132}, {132, 132, 132}, {132, 132, 132}, {132, 132, 132}, {131, 131, 131},
|
|
|
2406 |
{131, 131, 131}, {131, 131, 131}, {131, 131, 131}, {130, 130, 130}, {130, 130, 130},
|
|
|
2407 |
{130, 130, 130}, {130, 130, 130}, {129, 129, 129}, {129, 129, 129}, {129, 129, 129},
|
|
|
2408 |
{129, 129, 129}, {128, 128, 128}, {128, 128, 128}, {128, 128, 128}, {128, 128, 128},
|
|
|
2409 |
{127, 127, 127}, {127, 127, 127}, {127, 127, 127}, {127, 127, 127}, {126, 126, 126},
|
|
|
2410 |
{126, 126, 126}, {126, 126, 126}, {126, 126, 126}, {125, 125, 125}, {125, 125, 125},
|
|
|
2411 |
{125, 125, 125}, {125, 125, 125}, {124, 124, 124}, {124, 124, 124}, {124, 124, 124},
|
|
|
2412 |
{124, 124, 124}, {123, 123, 123}, {123, 123, 123}, {123, 123, 123}, {123, 123, 123},
|
|
|
2413 |
{122, 122, 122}, {122, 122, 122}, {122, 122, 122}, {122, 122, 122}, {121, 121, 121},
|
|
|
2414 |
{121, 121, 121}, {121, 121, 121}, {120, 120, 120}, {120, 120, 120}, {120, 120, 120},
|
|
|
2415 |
{120, 120, 120}, {119, 119, 119}, {119, 119, 119}, {119, 119, 119}, {119, 119, 119},
|
|
|
2416 |
{118, 118, 118}, {118, 118, 118}, {118, 118, 118}, {118, 118, 118}, {117, 117, 117},
|
|
|
2417 |
{117, 117, 117}, {117, 117, 117}, {117, 117, 117}, {116, 116, 116}, {116, 116, 116},
|
|
|
2418 |
{116, 116, 116}, {116, 116, 116}, {115, 115, 115}, {115, 115, 115}, {115, 115, 115},
|
|
|
2419 |
{115, 115, 115}, {114, 114, 114}, {114, 114, 114}, {114, 114, 114}, {114, 114, 114},
|
|
|
2420 |
{113, 113, 113}, {113, 113, 113}, {113, 113, 113}, {113, 113, 113}, {112, 112, 112},
|
|
|
2421 |
{112, 112, 112}, {112, 112, 112}, {112, 112, 112}, {111, 111, 111}, {111, 111, 111},
|
|
|
2422 |
{111, 111, 111}, {111, 111, 111}, {110, 110, 110}, {110, 110, 110}, {110, 110, 110},
|
|
|
2423 |
{110, 110, 110}, {109, 109, 109}, {109, 109, 109}, {109, 109, 109}, {108, 108, 108},
|
|
|
2424 |
{108, 108, 108}, {108, 108, 108}, {108, 108, 108}, {107, 107, 107}, {107, 107, 107},
|
|
|
2425 |
{107, 107, 107}, {107, 107, 107}, {106, 106, 106}, {106, 106, 106}, {106, 106, 106},
|
|
|
2426 |
{106, 106, 106}, {105, 105, 105}, {105, 105, 105}, {105, 105, 105}, {105, 105, 105},
|
|
|
2427 |
{104, 104, 104}, {104, 104, 104}, {104, 104, 104}, {104, 104, 104}, {103, 103, 103},
|
|
|
2428 |
{103, 103, 103}, {103, 103, 103}, {103, 103, 103}, {102, 102, 102}, {102, 102, 102},
|
|
|
2429 |
{102, 102, 102}, {102, 102, 102}, {101, 101, 101}, {101, 101, 101}, {101, 101, 101},
|
|
|
2430 |
{101, 101, 101}, {100, 100, 100}, {100, 100, 100}, {100, 100, 100}, {100, 100, 100},
|
|
|
2431 |
{ 99, 99, 99}, { 99, 99, 99}, { 99, 99, 99}, { 99, 99, 99}, { 98, 98, 98},
|
|
|
2432 |
{ 98, 98, 98}, { 98, 98, 98}, { 98, 98, 98}, { 97, 97, 97}, { 97, 97, 97},
|
|
|
2433 |
{ 97, 97, 97}, { 96, 96, 96}, { 96, 96, 96}, { 96, 96, 96}, { 96, 96, 96},
|
|
|
2434 |
{ 95, 95, 95}, { 95, 95, 95}, { 95, 95, 95}, { 95, 95, 95}, { 94, 94, 94},
|
|
|
2435 |
{ 94, 94, 94}, { 94, 94, 94}, { 94, 94, 94}, { 93, 93, 93}, { 93, 93, 93},
|
|
|
2436 |
{ 93, 93, 93}, { 93, 93, 93}, { 92, 92, 92}, { 92, 92, 92}, { 92, 92, 92},
|
|
|
2437 |
{ 92, 92, 92}, { 91, 91, 91}, { 91, 91, 91}, { 91, 91, 91}, { 91, 91, 91},
|
|
|
2438 |
{ 90, 90, 90}, { 90, 90, 90}, { 90, 90, 90}, { 90, 90, 90}, { 89, 89, 89},
|
|
|
2439 |
{ 89, 89, 89}, { 89, 89, 89}, { 89, 89, 89}, { 88, 88, 88}, { 88, 88, 88},
|
|
|
2440 |
{ 88, 88, 88}, { 88, 88, 88}, { 87, 87, 87}, { 87, 87, 87}, { 87, 87, 87},
|
|
|
2441 |
{ 87, 87, 87}, { 86, 86, 86}, { 86, 86, 86}, { 86, 86, 86}, { 86, 86, 86},
|
|
|
2442 |
{ 85, 85, 85}, { 85, 85, 85}, { 85, 85, 85}, { 84, 84, 84}, { 84, 84, 84},
|
|
|
2443 |
{ 84, 84, 84}, { 84, 84, 84}, { 83, 83, 83}, { 83, 83, 83}, { 83, 83, 83},
|
|
|
2444 |
{ 83, 83, 83}, { 82, 82, 82}, { 82, 82, 82}, { 82, 82, 82}, { 82, 82, 82},
|
|
|
2445 |
{ 81, 81, 81}, { 81, 81, 81}, { 81, 81, 81}, { 81, 81, 81}, { 80, 80, 80},
|
|
|
2446 |
{ 80, 80, 80}, { 80, 80, 80}, { 80, 80, 80}, { 79, 79, 79}, { 79, 79, 79},
|
|
|
2447 |
{ 79, 79, 79}, { 79, 79, 79}, { 78, 78, 78}, { 78, 78, 78}, { 78, 78, 78},
|
|
|
2448 |
{ 78, 78, 78}, { 77, 77, 77}, { 77, 77, 77}, { 77, 77, 77}, { 77, 77, 77},
|
|
|
2449 |
{ 76, 76, 76}, { 76, 76, 76}, { 76, 76, 76}, { 76, 76, 76}, { 75, 75, 75},
|
|
|
2450 |
{ 75, 75, 75}, { 75, 75, 75}, { 75, 75, 75}, { 74, 74, 74}, { 74, 74, 74},
|
|
|
2451 |
{ 74, 74, 74}, { 74, 74, 74}, { 73, 73, 73}, { 73, 73, 73}, { 73, 73, 73},
|
|
|
2452 |
{ 72, 72, 72}, { 72, 72, 72}, { 72, 72, 72}, { 72, 72, 72}, { 71, 71, 71},
|
|
|
2453 |
{ 71, 71, 71}, { 71, 71, 71}, { 71, 71, 71}, { 70, 70, 70}, { 70, 70, 70},
|
|
|
2454 |
{ 70, 70, 70}, { 70, 70, 70}, { 69, 69, 69}, { 69, 69, 69}, { 69, 69, 69},
|
|
|
2455 |
{ 69, 69, 69}, { 68, 68, 68}, { 68, 68, 68}, { 68, 68, 68}, { 68, 68, 68},
|
|
|
2456 |
{ 67, 67, 67}, { 67, 67, 67}, { 67, 67, 67}, { 67, 67, 67}, { 66, 66, 66},
|
|
|
2457 |
{ 66, 66, 66}, { 66, 66, 66}, { 66, 66, 66}, { 65, 65, 65}, { 65, 65, 65},
|
|
|
2458 |
{ 65, 65, 65}, { 65, 65, 65}, { 64, 64, 64}, { 64, 64, 64}, { 64, 64, 64},
|
|
|
2459 |
{ 64, 64, 64}, { 63, 63, 63}, { 63, 63, 63}, { 63, 63, 63}, { 63, 63, 63},
|
|
|
2460 |
{ 62, 62, 62}, { 62, 62, 62}, { 62, 62, 62}, { 62, 62, 62}, { 61, 61, 61},
|
|
|
2461 |
{ 61, 61, 61}, { 61, 61, 61}, { 60, 60, 60}, { 60, 60, 60}, { 60, 60, 60},
|
|
|
2462 |
{ 60, 60, 60}, { 59, 59, 59}, { 59, 59, 59}, { 59, 59, 59}, { 59, 59, 59},
|
|
|
2463 |
{ 58, 58, 58}, { 58, 58, 58}, { 58, 58, 58}, { 58, 58, 58}, { 57, 57, 57},
|
|
|
2464 |
{ 57, 57, 57}, { 57, 57, 57}, { 57, 57, 57}, { 56, 56, 56}, { 56, 56, 56},
|
|
|
2465 |
{ 56, 56, 56}, { 56, 56, 56}, { 55, 55, 55}, { 55, 55, 55}, { 55, 55, 55},
|
|
|
2466 |
{ 55, 55, 55}, { 54, 54, 54}, { 54, 54, 54}, { 54, 54, 54}, { 54, 54, 54},
|
|
|
2467 |
{ 53, 53, 53}, { 53, 53, 53}, { 53, 53, 53}, { 53, 53, 53}, { 52, 52, 52},
|
|
|
2468 |
{ 52, 52, 52}, { 52, 52, 52}, { 52, 52, 52}, { 51, 51, 51}, { 51, 51, 51},
|
|
|
2469 |
{ 51, 51, 51}, { 51, 51, 51}, { 50, 50, 50}, { 50, 50, 50}, { 50, 50, 50},
|
|
|
2470 |
{ 50, 50, 50}, { 49, 49, 49}, { 49, 49, 49}, { 49, 49, 49}, { 48, 48, 48},
|
|
|
2471 |
{ 48, 48, 48}, { 48, 48, 48}, { 48, 48, 48}, { 47, 47, 47}, { 47, 47, 47},
|
|
|
2472 |
{ 47, 47, 47}, { 47, 47, 47}, { 46, 46, 46}, { 46, 46, 46}, { 46, 46, 46},
|
|
|
2473 |
{ 46, 46, 46}, { 45, 45, 45}, { 45, 45, 45}, { 45, 45, 45}, { 45, 45, 45},
|
|
|
2474 |
{ 44, 44, 44}, { 44, 44, 44}, { 44, 44, 44}, { 44, 44, 44}, { 43, 43, 43},
|
|
|
2475 |
{ 43, 43, 43}, { 43, 43, 43}, { 43, 43, 43}, { 42, 42, 42}, { 42, 42, 42},
|
|
|
2476 |
{ 42, 42, 42}, { 42, 42, 42}, { 41, 41, 41}, { 41, 41, 41}, { 41, 41, 41},
|
|
|
2477 |
{ 41, 41, 41}, { 40, 40, 40}, { 40, 40, 40}, { 40, 40, 40}, { 40, 40, 40},
|
|
|
2478 |
{ 39, 39, 39}, { 39, 39, 39}, { 39, 39, 39}, { 39, 39, 39}, { 38, 38, 38},
|
|
|
2479 |
{ 38, 38, 38}, { 38, 38, 38}, { 38, 38, 38}, { 37, 37, 37}, { 37, 37, 37},
|
|
|
2480 |
{ 37, 37, 37}, { 37, 37, 37}, { 36, 36, 36}, { 36, 36, 36}, { 36, 36, 36},
|
|
|
2481 |
{ 35, 35, 35}, { 35, 35, 35}, { 35, 35, 35}, { 35, 35, 35}, { 34, 34, 34},
|
|
|
2482 |
{ 34, 34, 34}, { 34, 34, 34}, { 34, 34, 34}, { 33, 33, 33}, { 33, 33, 33},
|
|
|
2483 |
{ 33, 33, 33}, { 33, 33, 33}, { 32, 32, 32}, { 32, 32, 32}, { 32, 32, 32},
|
|
|
2484 |
{ 32, 32, 32}, { 31, 31, 31}, { 31, 31, 31}, { 31, 31, 31}, { 31, 31, 31},
|
|
|
2485 |
{ 30, 30, 30}, { 30, 30, 30}, { 30, 30, 30}, { 30, 30, 30}, { 29, 29, 29},
|
|
|
2486 |
{ 29, 29, 29}, { 29, 29, 29}, { 29, 29, 29}, { 28, 28, 28}, { 28, 28, 28},
|
|
|
2487 |
{ 28, 28, 28}, { 28, 28, 28}, { 27, 27, 27}, { 27, 27, 27}, { 27, 27, 27},
|
|
|
2488 |
{ 27, 27, 27}, { 26, 26, 26}, { 26, 26, 26}, { 26, 26, 26}, { 26, 26, 26},
|
|
|
2489 |
{ 25, 25, 25}, { 25, 25, 25}, { 25, 25, 25}, { 25, 25, 25}, { 24, 24, 24},
|
|
|
2490 |
{ 24, 24, 24}, { 24, 24, 24}, { 23, 23, 23}, { 23, 23, 23}, { 23, 23, 23},
|
|
|
2491 |
{ 23, 23, 23}, { 22, 22, 22}, { 22, 22, 22}, { 22, 22, 22}, { 22, 22, 22},
|
|
|
2492 |
{ 21, 21, 21}, { 21, 21, 21}, { 21, 21, 21}, { 21, 21, 21}, { 20, 20, 20},
|
|
|
2493 |
{ 20, 20, 20}, { 20, 20, 20}, { 20, 20, 20}, { 19, 19, 19}, { 19, 19, 19},
|
|
|
2494 |
{ 19, 19, 19}, { 19, 19, 19}, { 18, 18, 18}, { 18, 18, 18}, { 18, 18, 18},
|
|
|
2495 |
{ 18, 18, 18}, { 17, 17, 17}, { 17, 17, 17}, { 17, 17, 17}, { 17, 17, 17},
|
|
|
2496 |
{ 16, 16, 16}, { 16, 16, 16}, { 16, 16, 16}, { 16, 16, 16}, { 15, 15, 15},
|
|
|
2497 |
{ 15, 15, 15}, { 15, 15, 15}, { 15, 15, 15}, { 14, 14, 14}, { 14, 14, 14},
|
|
|
2498 |
{ 14, 14, 14}, { 14, 14, 14}, { 13, 13, 13}, { 13, 13, 13}, { 13, 13, 13},
|
|
|
2499 |
{ 13, 13, 13}, { 12, 12, 12}, { 12, 12, 12}, { 12, 12, 12}, { 11, 11, 11},
|
|
|
2500 |
{ 11, 11, 11}, { 11, 11, 11}, { 11, 11, 11}, { 10, 10, 10}, { 10, 10, 10},
|
|
|
2501 |
{ 10, 10, 10}, { 10, 10, 10}, { 9, 9, 9}, { 9, 9, 9}, { 9, 9, 9},
|
|
|
2502 |
{ 9, 9, 9}, { 8, 8, 8}, { 8, 8, 8}, { 8, 8, 8}, { 8, 8, 8},
|
|
|
2503 |
{ 7, 7, 7}, { 7, 7, 7}, { 7, 7, 7}, { 7, 7, 7}, { 6, 6, 6},
|
|
|
2504 |
{ 6, 6, 6}, { 6, 6, 6}, { 6, 6, 6}, { 5, 5, 5}, { 5, 5, 5},
|
|
|
2505 |
{ 5, 5, 5}, { 5, 5, 5}, { 4, 4, 4}, { 4, 4, 4}, { 4, 4, 4},
|
|
|
2506 |
{ 4, 4, 4}, { 3, 3, 3}, { 3, 3, 3}, { 3, 3, 3}, { 3, 3, 3},
|
|
|
2507 |
{ 2, 2, 2}, { 2, 2, 2}, { 2, 2, 2}, { 2, 2, 2}, { 1, 1, 1},
|
|
|
2508 |
{ 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1}, { 0, 0, 0}, { 0, 0, 0}
|
|
|
2509 |
};
|
|
|
2510 |
|
|
|
2511 |
const rgb_store hot_colormap[1000] = {
|
|
|
2512 |
{ 11, 0, 0}, { 11, 0, 0}, { 12, 0, 0}, { 13, 0, 0}, { 13, 0, 0},
|
|
|
2513 |
{ 14, 0, 0}, { 15, 0, 0}, { 15, 0, 0}, { 16, 0, 0}, { 17, 0, 0},
|
|
|
2514 |
{ 17, 0, 0}, { 18, 0, 0}, { 19, 0, 0}, { 19, 0, 0}, { 20, 0, 0},
|
|
|
2515 |
{ 21, 0, 0}, { 21, 0, 0}, { 22, 0, 0}, { 23, 0, 0}, { 23, 0, 0},
|
|
|
2516 |
{ 24, 0, 0}, { 25, 0, 0}, { 25, 0, 0}, { 26, 0, 0}, { 27, 0, 0},
|
|
|
2517 |
{ 27, 0, 0}, { 28, 0, 0}, { 29, 0, 0}, { 29, 0, 0}, { 30, 0, 0},
|
|
|
2518 |
{ 31, 0, 0}, { 31, 0, 0}, { 32, 0, 0}, { 33, 0, 0}, { 33, 0, 0},
|
|
|
2519 |
{ 34, 0, 0}, { 35, 0, 0}, { 35, 0, 0}, { 36, 0, 0}, { 37, 0, 0},
|
|
|
2520 |
{ 37, 0, 0}, { 38, 0, 0}, { 39, 0, 0}, { 39, 0, 0}, { 40, 0, 0},
|
|
|
2521 |
{ 41, 0, 0}, { 41, 0, 0}, { 42, 0, 0}, { 43, 0, 0}, { 43, 0, 0},
|
|
|
2522 |
{ 44, 0, 0}, { 45, 0, 0}, { 45, 0, 0}, { 46, 0, 0}, { 47, 0, 0},
|
|
|
2523 |
{ 47, 0, 0}, { 48, 0, 0}, { 49, 0, 0}, { 49, 0, 0}, { 50, 0, 0},
|
|
|
2524 |
{ 51, 0, 0}, { 51, 0, 0}, { 52, 0, 0}, { 53, 0, 0}, { 54, 0, 0},
|
|
|
2525 |
{ 54, 0, 0}, { 55, 0, 0}, { 56, 0, 0}, { 56, 0, 0}, { 57, 0, 0},
|
|
|
2526 |
{ 58, 0, 0}, { 58, 0, 0}, { 59, 0, 0}, { 60, 0, 0}, { 60, 0, 0},
|
|
|
2527 |
{ 61, 0, 0}, { 62, 0, 0}, { 62, 0, 0}, { 63, 0, 0}, { 64, 0, 0},
|
|
|
2528 |
{ 64, 0, 0}, { 65, 0, 0}, { 66, 0, 0}, { 66, 0, 0}, { 67, 0, 0},
|
|
|
2529 |
{ 68, 0, 0}, { 68, 0, 0}, { 69, 0, 0}, { 70, 0, 0}, { 70, 0, 0},
|
|
|
2530 |
{ 71, 0, 0}, { 72, 0, 0}, { 72, 0, 0}, { 73, 0, 0}, { 74, 0, 0},
|
|
|
2531 |
{ 74, 0, 0}, { 75, 0, 0}, { 76, 0, 0}, { 76, 0, 0}, { 77, 0, 0},
|
|
|
2532 |
{ 78, 0, 0}, { 78, 0, 0}, { 79, 0, 0}, { 80, 0, 0}, { 80, 0, 0},
|
|
|
2533 |
{ 81, 0, 0}, { 82, 0, 0}, { 82, 0, 0}, { 83, 0, 0}, { 84, 0, 0},
|
|
|
2534 |
{ 84, 0, 0}, { 85, 0, 0}, { 86, 0, 0}, { 86, 0, 0}, { 87, 0, 0},
|
|
|
2535 |
{ 88, 0, 0}, { 88, 0, 0}, { 89, 0, 0}, { 90, 0, 0}, { 90, 0, 0},
|
|
|
2536 |
{ 91, 0, 0}, { 92, 0, 0}, { 92, 0, 0}, { 93, 0, 0}, { 94, 0, 0},
|
|
|
2537 |
{ 94, 0, 0}, { 95, 0, 0}, { 96, 0, 0}, { 96, 0, 0}, { 97, 0, 0},
|
|
|
2538 |
{ 98, 0, 0}, { 98, 0, 0}, { 99, 0, 0}, {100, 0, 0}, {100, 0, 0},
|
|
|
2539 |
{101, 0, 0}, {102, 0, 0}, {102, 0, 0}, {103, 0, 0}, {104, 0, 0},
|
|
|
2540 |
{104, 0, 0}, {105, 0, 0}, {106, 0, 0}, {106, 0, 0}, {107, 0, 0},
|
|
|
2541 |
{108, 0, 0}, {108, 0, 0}, {109, 0, 0}, {110, 0, 0}, {110, 0, 0},
|
|
|
2542 |
{111, 0, 0}, {112, 0, 0}, {112, 0, 0}, {113, 0, 0}, {114, 0, 0},
|
|
|
2543 |
{114, 0, 0}, {115, 0, 0}, {116, 0, 0}, {116, 0, 0}, {117, 0, 0},
|
|
|
2544 |
{118, 0, 0}, {119, 0, 0}, {119, 0, 0}, {120, 0, 0}, {121, 0, 0},
|
|
|
2545 |
{121, 0, 0}, {122, 0, 0}, {123, 0, 0}, {123, 0, 0}, {124, 0, 0},
|
|
|
2546 |
{125, 0, 0}, {125, 0, 0}, {126, 0, 0}, {127, 0, 0}, {127, 0, 0},
|
|
|
2547 |
{128, 0, 0}, {129, 0, 0}, {129, 0, 0}, {130, 0, 0}, {131, 0, 0},
|
|
|
2548 |
{131, 0, 0}, {132, 0, 0}, {133, 0, 0}, {133, 0, 0}, {134, 0, 0},
|
|
|
2549 |
{135, 0, 0}, {135, 0, 0}, {136, 0, 0}, {137, 0, 0}, {137, 0, 0},
|
|
|
2550 |
{138, 0, 0}, {139, 0, 0}, {139, 0, 0}, {140, 0, 0}, {141, 0, 0},
|
|
|
2551 |
{141, 0, 0}, {142, 0, 0}, {143, 0, 0}, {143, 0, 0}, {144, 0, 0},
|
|
|
2552 |
{145, 0, 0}, {145, 0, 0}, {146, 0, 0}, {147, 0, 0}, {147, 0, 0},
|
|
|
2553 |
{148, 0, 0}, {149, 0, 0}, {149, 0, 0}, {150, 0, 0}, {151, 0, 0},
|
|
|
2554 |
{151, 0, 0}, {152, 0, 0}, {153, 0, 0}, {153, 0, 0}, {154, 0, 0},
|
|
|
2555 |
{155, 0, 0}, {155, 0, 0}, {156, 0, 0}, {157, 0, 0}, {157, 0, 0},
|
|
|
2556 |
{158, 0, 0}, {159, 0, 0}, {159, 0, 0}, {160, 0, 0}, {161, 0, 0},
|
|
|
2557 |
{161, 0, 0}, {162, 0, 0}, {163, 0, 0}, {163, 0, 0}, {164, 0, 0},
|
|
|
2558 |
{165, 0, 0}, {165, 0, 0}, {166, 0, 0}, {167, 0, 0}, {167, 0, 0},
|
|
|
2559 |
{168, 0, 0}, {169, 0, 0}, {169, 0, 0}, {170, 0, 0}, {171, 0, 0},
|
|
|
2560 |
{171, 0, 0}, {172, 0, 0}, {173, 0, 0}, {173, 0, 0}, {174, 0, 0},
|
|
|
2561 |
{175, 0, 0}, {175, 0, 0}, {176, 0, 0}, {177, 0, 0}, {177, 0, 0},
|
|
|
2562 |
{178, 0, 0}, {179, 0, 0}, {179, 0, 0}, {180, 0, 0}, {181, 0, 0},
|
|
|
2563 |
{181, 0, 0}, {182, 0, 0}, {183, 0, 0}, {183, 0, 0}, {184, 0, 0},
|
|
|
2564 |
{185, 0, 0}, {186, 0, 0}, {186, 0, 0}, {187, 0, 0}, {188, 0, 0},
|
|
|
2565 |
{188, 0, 0}, {189, 0, 0}, {190, 0, 0}, {190, 0, 0}, {191, 0, 0},
|
|
|
2566 |
{192, 0, 0}, {192, 0, 0}, {193, 0, 0}, {194, 0, 0}, {194, 0, 0},
|
|
|
2567 |
{195, 0, 0}, {196, 0, 0}, {196, 0, 0}, {197, 0, 0}, {198, 0, 0},
|
|
|
2568 |
{198, 0, 0}, {199, 0, 0}, {200, 0, 0}, {200, 0, 0}, {201, 0, 0},
|
|
|
2569 |
{202, 0, 0}, {202, 0, 0}, {203, 0, 0}, {204, 0, 0}, {204, 0, 0},
|
|
|
2570 |
{205, 0, 0}, {206, 0, 0}, {206, 0, 0}, {207, 0, 0}, {208, 0, 0},
|
|
|
2571 |
{208, 0, 0}, {209, 0, 0}, {210, 0, 0}, {210, 0, 0}, {211, 0, 0},
|
|
|
2572 |
{212, 0, 0}, {212, 0, 0}, {213, 0, 0}, {214, 0, 0}, {214, 0, 0},
|
|
|
2573 |
{215, 0, 0}, {216, 0, 0}, {216, 0, 0}, {217, 0, 0}, {218, 0, 0},
|
|
|
2574 |
{218, 0, 0}, {219, 0, 0}, {220, 0, 0}, {220, 0, 0}, {221, 0, 0},
|
|
|
2575 |
{222, 0, 0}, {222, 0, 0}, {223, 0, 0}, {224, 0, 0}, {224, 0, 0},
|
|
|
2576 |
{225, 0, 0}, {226, 0, 0}, {226, 0, 0}, {227, 0, 0}, {228, 0, 0},
|
|
|
2577 |
{228, 0, 0}, {229, 0, 0}, {230, 0, 0}, {230, 0, 0}, {231, 0, 0},
|
|
|
2578 |
{232, 0, 0}, {232, 0, 0}, {233, 0, 0}, {234, 0, 0}, {234, 0, 0},
|
|
|
2579 |
{235, 0, 0}, {236, 0, 0}, {236, 0, 0}, {237, 0, 0}, {238, 0, 0},
|
|
|
2580 |
{238, 0, 0}, {239, 0, 0}, {240, 0, 0}, {240, 0, 0}, {241, 0, 0},
|
|
|
2581 |
{242, 0, 0}, {242, 0, 0}, {243, 0, 0}, {244, 0, 0}, {244, 0, 0},
|
|
|
2582 |
{245, 0, 0}, {246, 0, 0}, {246, 0, 0}, {247, 0, 0}, {248, 0, 0},
|
|
|
2583 |
{248, 0, 0}, {249, 0, 0}, {250, 0, 0}, {251, 0, 0}, {251, 0, 0},
|
|
|
2584 |
{252, 0, 0}, {253, 0, 0}, {253, 0, 0}, {254, 0, 0}, {255, 0, 0},
|
|
|
2585 |
{255, 0, 0}, {255, 1, 0}, {255, 2, 0}, {255, 2, 0}, {255, 3, 0},
|
|
|
2586 |
{255, 4, 0}, {255, 4, 0}, {255, 5, 0}, {255, 6, 0}, {255, 6, 0},
|
|
|
2587 |
{255, 7, 0}, {255, 8, 0}, {255, 8, 0}, {255, 9, 0}, {255, 10, 0},
|
|
|
2588 |
{255, 10, 0}, {255, 11, 0}, {255, 12, 0}, {255, 12, 0}, {255, 13, 0},
|
|
|
2589 |
{255, 14, 0}, {255, 14, 0}, {255, 15, 0}, {255, 16, 0}, {255, 16, 0},
|
|
|
2590 |
{255, 17, 0}, {255, 18, 0}, {255, 18, 0}, {255, 19, 0}, {255, 20, 0},
|
|
|
2591 |
{255, 20, 0}, {255, 21, 0}, {255, 22, 0}, {255, 22, 0}, {255, 23, 0},
|
|
|
2592 |
{255, 24, 0}, {255, 24, 0}, {255, 25, 0}, {255, 26, 0}, {255, 26, 0},
|
|
|
2593 |
{255, 27, 0}, {255, 28, 0}, {255, 28, 0}, {255, 29, 0}, {255, 30, 0},
|
|
|
2594 |
{255, 30, 0}, {255, 31, 0}, {255, 32, 0}, {255, 32, 0}, {255, 33, 0},
|
|
|
2595 |
{255, 34, 0}, {255, 34, 0}, {255, 35, 0}, {255, 36, 0}, {255, 36, 0},
|
|
|
2596 |
{255, 37, 0}, {255, 38, 0}, {255, 38, 0}, {255, 39, 0}, {255, 40, 0},
|
|
|
2597 |
{255, 40, 0}, {255, 41, 0}, {255, 42, 0}, {255, 42, 0}, {255, 43, 0},
|
|
|
2598 |
{255, 44, 0}, {255, 44, 0}, {255, 45, 0}, {255, 46, 0}, {255, 46, 0},
|
|
|
2599 |
{255, 47, 0}, {255, 48, 0}, {255, 48, 0}, {255, 49, 0}, {255, 50, 0},
|
|
|
2600 |
{255, 50, 0}, {255, 51, 0}, {255, 52, 0}, {255, 52, 0}, {255, 53, 0},
|
|
|
2601 |
{255, 54, 0}, {255, 54, 0}, {255, 55, 0}, {255, 56, 0}, {255, 56, 0},
|
|
|
2602 |
{255, 57, 0}, {255, 58, 0}, {255, 58, 0}, {255, 59, 0}, {255, 60, 0},
|
|
|
2603 |
{255, 60, 0}, {255, 61, 0}, {255, 62, 0}, {255, 63, 0}, {255, 63, 0},
|
|
|
2604 |
{255, 64, 0}, {255, 65, 0}, {255, 65, 0}, {255, 66, 0}, {255, 67, 0},
|
|
|
2605 |
{255, 67, 0}, {255, 68, 0}, {255, 69, 0}, {255, 69, 0}, {255, 70, 0},
|
|
|
2606 |
{255, 71, 0}, {255, 71, 0}, {255, 72, 0}, {255, 73, 0}, {255, 73, 0},
|
|
|
2607 |
{255, 74, 0}, {255, 75, 0}, {255, 75, 0}, {255, 76, 0}, {255, 77, 0},
|
|
|
2608 |
{255, 77, 0}, {255, 78, 0}, {255, 79, 0}, {255, 79, 0}, {255, 80, 0},
|
|
|
2609 |
{255, 81, 0}, {255, 81, 0}, {255, 82, 0}, {255, 83, 0}, {255, 83, 0},
|
|
|
2610 |
{255, 84, 0}, {255, 85, 0}, {255, 85, 0}, {255, 86, 0}, {255, 87, 0},
|
|
|
2611 |
{255, 87, 0}, {255, 88, 0}, {255, 89, 0}, {255, 89, 0}, {255, 90, 0},
|
|
|
2612 |
{255, 91, 0}, {255, 91, 0}, {255, 92, 0}, {255, 93, 0}, {255, 93, 0},
|
|
|
2613 |
{255, 94, 0}, {255, 95, 0}, {255, 95, 0}, {255, 96, 0}, {255, 97, 0},
|
|
|
2614 |
{255, 97, 0}, {255, 98, 0}, {255, 99, 0}, {255, 99, 0}, {255, 100, 0},
|
|
|
2615 |
{255, 101, 0}, {255, 101, 0}, {255, 102, 0}, {255, 103, 0}, {255, 103, 0},
|
|
|
2616 |
{255, 104, 0}, {255, 105, 0}, {255, 105, 0}, {255, 106, 0}, {255, 107, 0},
|
|
|
2617 |
{255, 107, 0}, {255, 108, 0}, {255, 109, 0}, {255, 109, 0}, {255, 110, 0},
|
|
|
2618 |
{255, 111, 0}, {255, 111, 0}, {255, 112, 0}, {255, 113, 0}, {255, 113, 0},
|
|
|
2619 |
{255, 114, 0}, {255, 115, 0}, {255, 115, 0}, {255, 116, 0}, {255, 117, 0},
|
|
|
2620 |
{255, 117, 0}, {255, 118, 0}, {255, 119, 0}, {255, 119, 0}, {255, 120, 0},
|
|
|
2621 |
{255, 121, 0}, {255, 121, 0}, {255, 122, 0}, {255, 123, 0}, {255, 123, 0},
|
|
|
2622 |
{255, 124, 0}, {255, 125, 0}, {255, 125, 0}, {255, 126, 0}, {255, 127, 0},
|
|
|
2623 |
{255, 128, 0}, {255, 128, 0}, {255, 129, 0}, {255, 130, 0}, {255, 130, 0},
|
|
|
2624 |
{255, 131, 0}, {255, 132, 0}, {255, 132, 0}, {255, 133, 0}, {255, 134, 0},
|
|
|
2625 |
{255, 134, 0}, {255, 135, 0}, {255, 136, 0}, {255, 136, 0}, {255, 137, 0},
|
|
|
2626 |
{255, 138, 0}, {255, 138, 0}, {255, 139, 0}, {255, 140, 0}, {255, 140, 0},
|
|
|
2627 |
{255, 141, 0}, {255, 142, 0}, {255, 142, 0}, {255, 143, 0}, {255, 144, 0},
|
|
|
2628 |
{255, 144, 0}, {255, 145, 0}, {255, 146, 0}, {255, 146, 0}, {255, 147, 0},
|
|
|
2629 |
{255, 148, 0}, {255, 148, 0}, {255, 149, 0}, {255, 150, 0}, {255, 150, 0},
|
|
|
2630 |
{255, 151, 0}, {255, 152, 0}, {255, 152, 0}, {255, 153, 0}, {255, 154, 0},
|
|
|
2631 |
{255, 154, 0}, {255, 155, 0}, {255, 156, 0}, {255, 156, 0}, {255, 157, 0},
|
|
|
2632 |
{255, 158, 0}, {255, 158, 0}, {255, 159, 0}, {255, 160, 0}, {255, 160, 0},
|
|
|
2633 |
{255, 161, 0}, {255, 162, 0}, {255, 162, 0}, {255, 163, 0}, {255, 164, 0},
|
|
|
2634 |
{255, 164, 0}, {255, 165, 0}, {255, 166, 0}, {255, 166, 0}, {255, 167, 0},
|
|
|
2635 |
{255, 168, 0}, {255, 168, 0}, {255, 169, 0}, {255, 170, 0}, {255, 170, 0},
|
|
|
2636 |
{255, 171, 0}, {255, 172, 0}, {255, 172, 0}, {255, 173, 0}, {255, 174, 0},
|
|
|
2637 |
{255, 174, 0}, {255, 175, 0}, {255, 176, 0}, {255, 176, 0}, {255, 177, 0},
|
|
|
2638 |
{255, 178, 0}, {255, 178, 0}, {255, 179, 0}, {255, 180, 0}, {255, 180, 0},
|
|
|
2639 |
{255, 181, 0}, {255, 182, 0}, {255, 182, 0}, {255, 183, 0}, {255, 184, 0},
|
|
|
2640 |
{255, 184, 0}, {255, 185, 0}, {255, 186, 0}, {255, 186, 0}, {255, 187, 0},
|
|
|
2641 |
{255, 188, 0}, {255, 188, 0}, {255, 189, 0}, {255, 190, 0}, {255, 190, 0},
|
|
|
2642 |
{255, 191, 0}, {255, 192, 0}, {255, 192, 0}, {255, 193, 0}, {255, 194, 0},
|
|
|
2643 |
{255, 195, 0}, {255, 195, 0}, {255, 196, 0}, {255, 197, 0}, {255, 197, 0},
|
|
|
2644 |
{255, 198, 0}, {255, 199, 0}, {255, 199, 0}, {255, 200, 0}, {255, 201, 0},
|
|
|
2645 |
{255, 201, 0}, {255, 202, 0}, {255, 203, 0}, {255, 203, 0}, {255, 204, 0},
|
|
|
2646 |
{255, 205, 0}, {255, 205, 0}, {255, 206, 0}, {255, 207, 0}, {255, 207, 0},
|
|
|
2647 |
{255, 208, 0}, {255, 209, 0}, {255, 209, 0}, {255, 210, 0}, {255, 211, 0},
|
|
|
2648 |
{255, 211, 0}, {255, 212, 0}, {255, 213, 0}, {255, 213, 0}, {255, 214, 0},
|
|
|
2649 |
{255, 215, 0}, {255, 215, 0}, {255, 216, 0}, {255, 217, 0}, {255, 217, 0},
|
|
|
2650 |
{255, 218, 0}, {255, 219, 0}, {255, 219, 0}, {255, 220, 0}, {255, 221, 0},
|
|
|
2651 |
{255, 221, 0}, {255, 222, 0}, {255, 223, 0}, {255, 223, 0}, {255, 224, 0},
|
|
|
2652 |
{255, 225, 0}, {255, 225, 0}, {255, 226, 0}, {255, 227, 0}, {255, 227, 0},
|
|
|
2653 |
{255, 228, 0}, {255, 229, 0}, {255, 229, 0}, {255, 230, 0}, {255, 231, 0},
|
|
|
2654 |
{255, 231, 0}, {255, 232, 0}, {255, 233, 0}, {255, 233, 0}, {255, 234, 0},
|
|
|
2655 |
{255, 235, 0}, {255, 235, 0}, {255, 236, 0}, {255, 237, 0}, {255, 237, 0},
|
|
|
2656 |
{255, 238, 0}, {255, 239, 0}, {255, 239, 0}, {255, 240, 0}, {255, 241, 0},
|
|
|
2657 |
{255, 241, 0}, {255, 242, 0}, {255, 243, 0}, {255, 243, 0}, {255, 244, 0},
|
|
|
2658 |
{255, 245, 0}, {255, 245, 0}, {255, 246, 0}, {255, 247, 0}, {255, 247, 0},
|
|
|
2659 |
{255, 248, 0}, {255, 249, 0}, {255, 249, 0}, {255, 250, 0}, {255, 251, 0},
|
|
|
2660 |
{255, 251, 0}, {255, 252, 0}, {255, 253, 0}, {255, 253, 0}, {255, 254, 0},
|
|
|
2661 |
{255, 255, 0}, {255, 255, 1}, {255, 255, 2}, {255, 255, 3}, {255, 255, 4},
|
|
|
2662 |
{255, 255, 5}, {255, 255, 6}, {255, 255, 7}, {255, 255, 8}, {255, 255, 9},
|
|
|
2663 |
{255, 255, 10}, {255, 255, 11}, {255, 255, 12}, {255, 255, 13}, {255, 255, 14},
|
|
|
2664 |
{255, 255, 15}, {255, 255, 16}, {255, 255, 17}, {255, 255, 18}, {255, 255, 19},
|
|
|
2665 |
{255, 255, 20}, {255, 255, 21}, {255, 255, 22}, {255, 255, 23}, {255, 255, 24},
|
|
|
2666 |
{255, 255, 25}, {255, 255, 26}, {255, 255, 27}, {255, 255, 28}, {255, 255, 29},
|
|
|
2667 |
{255, 255, 30}, {255, 255, 31}, {255, 255, 32}, {255, 255, 33}, {255, 255, 34},
|
|
|
2668 |
{255, 255, 35}, {255, 255, 36}, {255, 255, 37}, {255, 255, 38}, {255, 255, 39},
|
|
|
2669 |
{255, 255, 40}, {255, 255, 41}, {255, 255, 42}, {255, 255, 43}, {255, 255, 44},
|
|
|
2670 |
{255, 255, 45}, {255, 255, 46}, {255, 255, 47}, {255, 255, 48}, {255, 255, 49},
|
|
|
2671 |
{255, 255, 50}, {255, 255, 51}, {255, 255, 52}, {255, 255, 53}, {255, 255, 54},
|
|
|
2672 |
{255, 255, 55}, {255, 255, 56}, {255, 255, 57}, {255, 255, 58}, {255, 255, 59},
|
|
|
2673 |
{255, 255, 60}, {255, 255, 61}, {255, 255, 62}, {255, 255, 63}, {255, 255, 64},
|
|
|
2674 |
{255, 255, 65}, {255, 255, 66}, {255, 255, 67}, {255, 255, 68}, {255, 255, 69},
|
|
|
2675 |
{255, 255, 70}, {255, 255, 71}, {255, 255, 72}, {255, 255, 73}, {255, 255, 74},
|
|
|
2676 |
{255, 255, 75}, {255, 255, 76}, {255, 255, 77}, {255, 255, 78}, {255, 255, 79},
|
|
|
2677 |
{255, 255, 80}, {255, 255, 81}, {255, 255, 82}, {255, 255, 83}, {255, 255, 84},
|
|
|
2678 |
{255, 255, 85}, {255, 255, 86}, {255, 255, 87}, {255, 255, 88}, {255, 255, 89},
|
|
|
2679 |
{255, 255, 90}, {255, 255, 91}, {255, 255, 92}, {255, 255, 93}, {255, 255, 94},
|
|
|
2680 |
{255, 255, 95}, {255, 255, 96}, {255, 255, 97}, {255, 255, 98}, {255, 255, 99},
|
|
|
2681 |
{255, 255, 100}, {255, 255, 101}, {255, 255, 102}, {255, 255, 103}, {255, 255, 104},
|
|
|
2682 |
{255, 255, 105}, {255, 255, 106}, {255, 255, 107}, {255, 255, 108}, {255, 255, 109},
|
|
|
2683 |
{255, 255, 110}, {255, 255, 111}, {255, 255, 112}, {255, 255, 113}, {255, 255, 114},
|
|
|
2684 |
{255, 255, 115}, {255, 255, 116}, {255, 255, 117}, {255, 255, 118}, {255, 255, 119},
|
|
|
2685 |
{255, 255, 120}, {255, 255, 121}, {255, 255, 122}, {255, 255, 123}, {255, 255, 124},
|
|
|
2686 |
{255, 255, 125}, {255, 255, 126}, {255, 255, 127}, {255, 255, 128}, {255, 255, 129},
|
|
|
2687 |
{255, 255, 130}, {255, 255, 131}, {255, 255, 132}, {255, 255, 133}, {255, 255, 134},
|
|
|
2688 |
{255, 255, 135}, {255, 255, 136}, {255, 255, 137}, {255, 255, 138}, {255, 255, 139},
|
|
|
2689 |
{255, 255, 140}, {255, 255, 141}, {255, 255, 142}, {255, 255, 143}, {255, 255, 144},
|
|
|
2690 |
{255, 255, 145}, {255, 255, 146}, {255, 255, 147}, {255, 255, 148}, {255, 255, 149},
|
|
|
2691 |
{255, 255, 150}, {255, 255, 151}, {255, 255, 152}, {255, 255, 153}, {255, 255, 154},
|
|
|
2692 |
{255, 255, 155}, {255, 255, 157}, {255, 255, 158}, {255, 255, 159}, {255, 255, 160},
|
|
|
2693 |
{255, 255, 161}, {255, 255, 162}, {255, 255, 163}, {255, 255, 164}, {255, 255, 165},
|
|
|
2694 |
{255, 255, 166}, {255, 255, 167}, {255, 255, 168}, {255, 255, 169}, {255, 255, 170},
|
|
|
2695 |
{255, 255, 171}, {255, 255, 172}, {255, 255, 173}, {255, 255, 174}, {255, 255, 175},
|
|
|
2696 |
{255, 255, 176}, {255, 255, 177}, {255, 255, 178}, {255, 255, 179}, {255, 255, 180},
|
|
|
2697 |
{255, 255, 181}, {255, 255, 182}, {255, 255, 183}, {255, 255, 184}, {255, 255, 185},
|
|
|
2698 |
{255, 255, 186}, {255, 255, 187}, {255, 255, 188}, {255, 255, 189}, {255, 255, 190},
|
|
|
2699 |
{255, 255, 191}, {255, 255, 192}, {255, 255, 193}, {255, 255, 194}, {255, 255, 195},
|
|
|
2700 |
{255, 255, 196}, {255, 255, 197}, {255, 255, 198}, {255, 255, 199}, {255, 255, 200},
|
|
|
2701 |
{255, 255, 201}, {255, 255, 202}, {255, 255, 203}, {255, 255, 204}, {255, 255, 205},
|
|
|
2702 |
{255, 255, 206}, {255, 255, 207}, {255, 255, 208}, {255, 255, 209}, {255, 255, 210},
|
|
|
2703 |
{255, 255, 211}, {255, 255, 212}, {255, 255, 213}, {255, 255, 214}, {255, 255, 215},
|
|
|
2704 |
{255, 255, 216}, {255, 255, 217}, {255, 255, 218}, {255, 255, 219}, {255, 255, 220},
|
|
|
2705 |
{255, 255, 221}, {255, 255, 222}, {255, 255, 223}, {255, 255, 224}, {255, 255, 225},
|
|
|
2706 |
{255, 255, 226}, {255, 255, 227}, {255, 255, 228}, {255, 255, 229}, {255, 255, 230},
|
|
|
2707 |
{255, 255, 231}, {255, 255, 232}, {255, 255, 233}, {255, 255, 234}, {255, 255, 235},
|
|
|
2708 |
{255, 255, 236}, {255, 255, 237}, {255, 255, 238}, {255, 255, 239}, {255, 255, 240},
|
|
|
2709 |
{255, 255, 241}, {255, 255, 242}, {255, 255, 243}, {255, 255, 244}, {255, 255, 245},
|
|
|
2710 |
{255, 255, 246}, {255, 255, 247}, {255, 255, 248}, {255, 255, 249}, {255, 255, 250},
|
|
|
2711 |
{255, 255, 251}, {255, 255, 252}, {255, 255, 253}, {255, 255, 254}, {255, 255, 255}
|
|
|
2712 |
};
|
|
|
2713 |
|
|
|
2714 |
const rgb_store hsv_colormap[1000] = {
|
|
|
2715 |
{255, 0, 0}, {255, 2, 0}, {255, 3, 0}, {255, 5, 0}, {255, 6, 0},
|
|
|
2716 |
{255, 8, 0}, {255, 9, 0}, {255, 11, 0}, {255, 12, 0}, {255, 14, 0},
|
|
|
2717 |
{255, 15, 0}, {255, 17, 0}, {255, 18, 0}, {255, 20, 0}, {255, 21, 0},
|
|
|
2718 |
{255, 23, 0}, {255, 24, 0}, {255, 26, 0}, {255, 27, 0}, {255, 29, 0},
|
|
|
2719 |
{255, 30, 0}, {255, 32, 0}, {255, 33, 0}, {255, 35, 0}, {255, 36, 0},
|
|
|
2720 |
{255, 38, 0}, {255, 39, 0}, {255, 41, 0}, {255, 42, 0}, {255, 44, 0},
|
|
|
2721 |
{255, 45, 0}, {255, 47, 0}, {255, 48, 0}, {255, 50, 0}, {255, 51, 0},
|
|
|
2722 |
{255, 53, 0}, {255, 54, 0}, {255, 56, 0}, {255, 57, 0}, {255, 59, 0},
|
|
|
2723 |
{255, 60, 0}, {255, 62, 0}, {255, 63, 0}, {255, 65, 0}, {255, 66, 0},
|
|
|
2724 |
{255, 68, 0}, {255, 69, 0}, {255, 71, 0}, {255, 72, 0}, {255, 74, 0},
|
|
|
2725 |
{255, 75, 0}, {255, 77, 0}, {255, 78, 0}, {255, 80, 0}, {255, 81, 0},
|
|
|
2726 |
{255, 83, 0}, {255, 84, 0}, {255, 86, 0}, {255, 87, 0}, {255, 89, 0},
|
|
|
2727 |
{255, 90, 0}, {255, 92, 0}, {255, 93, 0}, {255, 95, 0}, {255, 96, 0},
|
|
|
2728 |
{255, 98, 0}, {255, 100, 0}, {255, 101, 0}, {255, 103, 0}, {255, 104, 0},
|
|
|
2729 |
{255, 106, 0}, {255, 107, 0}, {255, 109, 0}, {255, 110, 0}, {255, 112, 0},
|
|
|
2730 |
{255, 113, 0}, {255, 115, 0}, {255, 116, 0}, {255, 118, 0}, {255, 119, 0},
|
|
|
2731 |
{255, 121, 0}, {255, 122, 0}, {255, 124, 0}, {255, 125, 0}, {255, 127, 0},
|
|
|
2732 |
{255, 128, 0}, {255, 130, 0}, {255, 131, 0}, {255, 133, 0}, {255, 134, 0},
|
|
|
2733 |
{255, 136, 0}, {255, 137, 0}, {255, 139, 0}, {255, 140, 0}, {255, 142, 0},
|
|
|
2734 |
{255, 143, 0}, {255, 145, 0}, {255, 146, 0}, {255, 148, 0}, {255, 149, 0},
|
|
|
2735 |
{255, 151, 0}, {255, 152, 0}, {255, 154, 0}, {255, 155, 0}, {255, 157, 0},
|
|
|
2736 |
{255, 158, 0}, {255, 160, 0}, {255, 161, 0}, {255, 163, 0}, {255, 164, 0},
|
|
|
2737 |
{255, 166, 0}, {255, 167, 0}, {255, 169, 0}, {255, 170, 0}, {255, 172, 0},
|
|
|
2738 |
{255, 173, 0}, {255, 175, 0}, {255, 176, 0}, {255, 178, 0}, {255, 179, 0},
|
|
|
2739 |
{255, 181, 0}, {255, 182, 0}, {255, 184, 0}, {255, 185, 0}, {255, 187, 0},
|
|
|
2740 |
{255, 188, 0}, {255, 190, 0}, {255, 191, 0}, {255, 193, 0}, {255, 194, 0},
|
|
|
2741 |
{255, 196, 0}, {255, 197, 0}, {255, 199, 0}, {255, 201, 0}, {255, 202, 0},
|
|
|
2742 |
{255, 204, 0}, {255, 205, 0}, {255, 207, 0}, {255, 208, 0}, {255, 210, 0},
|
|
|
2743 |
{255, 211, 0}, {255, 213, 0}, {255, 214, 0}, {255, 216, 0}, {255, 217, 0},
|
|
|
2744 |
{255, 219, 0}, {255, 220, 0}, {255, 222, 0}, {255, 223, 0}, {255, 225, 0},
|
|
|
2745 |
{255, 226, 0}, {255, 228, 0}, {255, 229, 0}, {255, 231, 0}, {255, 232, 0},
|
|
|
2746 |
{255, 234, 0}, {255, 235, 0}, {255, 237, 0}, {255, 238, 0}, {255, 239, 0},
|
|
|
2747 |
{254, 240, 0}, {254, 242, 0}, {253, 243, 0}, {253, 244, 0}, {252, 245, 0},
|
|
|
2748 |
{252, 246, 0}, {251, 247, 0}, {251, 248, 0}, {250, 249, 0}, {250, 250, 0},
|
|
|
2749 |
{249, 251, 0}, {249, 252, 0}, {248, 253, 0}, {248, 254, 0}, {247, 255, 0},
|
|
|
2750 |
{246, 255, 0}, {245, 255, 0}, {243, 255, 0}, {242, 255, 0}, {240, 255, 0},
|
|
|
2751 |
{239, 255, 0}, {237, 255, 0}, {236, 255, 0}, {234, 255, 0}, {233, 255, 0},
|
|
|
2752 |
{231, 255, 0}, {230, 255, 0}, {228, 255, 0}, {227, 255, 0}, {225, 255, 0},
|
|
|
2753 |
{224, 255, 0}, {222, 255, 0}, {221, 255, 0}, {219, 255, 0}, {218, 255, 0},
|
|
|
2754 |
{216, 255, 0}, {215, 255, 0}, {213, 255, 0}, {211, 255, 0}, {210, 255, 0},
|
|
|
2755 |
{208, 255, 0}, {207, 255, 0}, {205, 255, 0}, {204, 255, 0}, {202, 255, 0},
|
|
|
2756 |
{201, 255, 0}, {199, 255, 0}, {198, 255, 0}, {196, 255, 0}, {195, 255, 0},
|
|
|
2757 |
{193, 255, 0}, {192, 255, 0}, {190, 255, 0}, {189, 255, 0}, {187, 255, 0},
|
|
|
2758 |
{186, 255, 0}, {184, 255, 0}, {183, 255, 0}, {181, 255, 0}, {180, 255, 0},
|
|
|
2759 |
{178, 255, 0}, {177, 255, 0}, {175, 255, 0}, {174, 255, 0}, {172, 255, 0},
|
|
|
2760 |
{171, 255, 0}, {169, 255, 0}, {168, 255, 0}, {166, 255, 0}, {165, 255, 0},
|
|
|
2761 |
{163, 255, 0}, {162, 255, 0}, {160, 255, 0}, {159, 255, 0}, {157, 255, 0},
|
|
|
2762 |
{156, 255, 0}, {154, 255, 0}, {153, 255, 0}, {151, 255, 0}, {150, 255, 0},
|
|
|
2763 |
{148, 255, 0}, {147, 255, 0}, {145, 255, 0}, {144, 255, 0}, {142, 255, 0},
|
|
|
2764 |
{141, 255, 0}, {139, 255, 0}, {138, 255, 0}, {136, 255, 0}, {135, 255, 0},
|
|
|
2765 |
{133, 255, 0}, {132, 255, 0}, {130, 255, 0}, {129, 255, 0}, {127, 255, 0},
|
|
|
2766 |
{126, 255, 0}, {124, 255, 0}, {123, 255, 0}, {121, 255, 0}, {120, 255, 0},
|
|
|
2767 |
{118, 255, 0}, {117, 255, 0}, {115, 255, 0}, {114, 255, 0}, {112, 255, 0},
|
|
|
2768 |
{110, 255, 0}, {109, 255, 0}, {107, 255, 0}, {106, 255, 0}, {104, 255, 0},
|
|
|
2769 |
{103, 255, 0}, {101, 255, 0}, {100, 255, 0}, { 98, 255, 0}, { 97, 255, 0},
|
|
|
2770 |
{ 95, 255, 0}, { 94, 255, 0}, { 92, 255, 0}, { 91, 255, 0}, { 89, 255, 0},
|
|
|
2771 |
{ 88, 255, 0}, { 86, 255, 0}, { 85, 255, 0}, { 83, 255, 0}, { 82, 255, 0},
|
|
|
2772 |
{ 80, 255, 0}, { 79, 255, 0}, { 77, 255, 0}, { 76, 255, 0}, { 74, 255, 0},
|
|
|
2773 |
{ 73, 255, 0}, { 71, 255, 0}, { 70, 255, 0}, { 68, 255, 0}, { 67, 255, 0},
|
|
|
2774 |
{ 65, 255, 0}, { 64, 255, 0}, { 62, 255, 0}, { 61, 255, 0}, { 59, 255, 0},
|
|
|
2775 |
{ 58, 255, 0}, { 56, 255, 0}, { 55, 255, 0}, { 53, 255, 0}, { 52, 255, 0},
|
|
|
2776 |
{ 50, 255, 0}, { 49, 255, 0}, { 47, 255, 0}, { 46, 255, 0}, { 44, 255, 0},
|
|
|
2777 |
{ 43, 255, 0}, { 41, 255, 0}, { 40, 255, 0}, { 38, 255, 0}, { 37, 255, 0},
|
|
|
2778 |
{ 35, 255, 0}, { 34, 255, 0}, { 32, 255, 0}, { 31, 255, 0}, { 29, 255, 0},
|
|
|
2779 |
{ 28, 255, 0}, { 26, 255, 0}, { 25, 255, 0}, { 23, 255, 0}, { 22, 255, 0},
|
|
|
2780 |
{ 20, 255, 0}, { 19, 255, 0}, { 17, 255, 0}, { 16, 255, 0}, { 14, 255, 0},
|
|
|
2781 |
{ 12, 255, 0}, { 11, 255, 0}, { 9, 255, 0}, { 8, 255, 0}, { 7, 255, 1},
|
|
|
2782 |
{ 7, 255, 2}, { 6, 255, 3}, { 6, 255, 4}, { 5, 255, 5}, { 5, 255, 6},
|
|
|
2783 |
{ 4, 255, 7}, { 4, 255, 8}, { 3, 255, 9}, { 3, 255, 10}, { 2, 255, 11},
|
|
|
2784 |
{ 2, 255, 12}, { 1, 255, 13}, { 1, 255, 14}, { 0, 255, 15}, { 0, 255, 16},
|
|
|
2785 |
{ 0, 255, 18}, { 0, 255, 19}, { 0, 255, 21}, { 0, 255, 22}, { 0, 255, 24},
|
|
|
2786 |
{ 0, 255, 25}, { 0, 255, 27}, { 0, 255, 28}, { 0, 255, 30}, { 0, 255, 31},
|
|
|
2787 |
{ 0, 255, 33}, { 0, 255, 34}, { 0, 255, 36}, { 0, 255, 37}, { 0, 255, 39},
|
|
|
2788 |
{ 0, 255, 40}, { 0, 255, 42}, { 0, 255, 43}, { 0, 255, 45}, { 0, 255, 46},
|
|
|
2789 |
{ 0, 255, 48}, { 0, 255, 49}, { 0, 255, 51}, { 0, 255, 52}, { 0, 255, 54},
|
|
|
2790 |
{ 0, 255, 55}, { 0, 255, 57}, { 0, 255, 58}, { 0, 255, 60}, { 0, 255, 61},
|
|
|
2791 |
{ 0, 255, 63}, { 0, 255, 64}, { 0, 255, 66}, { 0, 255, 67}, { 0, 255, 69},
|
|
|
2792 |
{ 0, 255, 70}, { 0, 255, 72}, { 0, 255, 73}, { 0, 255, 75}, { 0, 255, 76},
|
|
|
2793 |
{ 0, 255, 78}, { 0, 255, 79}, { 0, 255, 81}, { 0, 255, 82}, { 0, 255, 84},
|
|
|
2794 |
{ 0, 255, 86}, { 0, 255, 87}, { 0, 255, 89}, { 0, 255, 90}, { 0, 255, 92},
|
|
|
2795 |
{ 0, 255, 93}, { 0, 255, 95}, { 0, 255, 96}, { 0, 255, 98}, { 0, 255, 99},
|
|
|
2796 |
{ 0, 255, 101}, { 0, 255, 102}, { 0, 255, 104}, { 0, 255, 105}, { 0, 255, 107},
|
|
|
2797 |
{ 0, 255, 108}, { 0, 255, 110}, { 0, 255, 111}, { 0, 255, 113}, { 0, 255, 114},
|
|
|
2798 |
{ 0, 255, 116}, { 0, 255, 117}, { 0, 255, 119}, { 0, 255, 120}, { 0, 255, 122},
|
|
|
2799 |
{ 0, 255, 123}, { 0, 255, 125}, { 0, 255, 126}, { 0, 255, 128}, { 0, 255, 129},
|
|
|
2800 |
{ 0, 255, 131}, { 0, 255, 132}, { 0, 255, 134}, { 0, 255, 135}, { 0, 255, 137},
|
|
|
2801 |
{ 0, 255, 138}, { 0, 255, 140}, { 0, 255, 141}, { 0, 255, 143}, { 0, 255, 144},
|
|
|
2802 |
{ 0, 255, 146}, { 0, 255, 147}, { 0, 255, 149}, { 0, 255, 150}, { 0, 255, 152},
|
|
|
2803 |
{ 0, 255, 153}, { 0, 255, 155}, { 0, 255, 156}, { 0, 255, 158}, { 0, 255, 159},
|
|
|
2804 |
{ 0, 255, 161}, { 0, 255, 162}, { 0, 255, 164}, { 0, 255, 165}, { 0, 255, 167},
|
|
|
2805 |
{ 0, 255, 168}, { 0, 255, 170}, { 0, 255, 171}, { 0, 255, 173}, { 0, 255, 174},
|
|
|
2806 |
{ 0, 255, 176}, { 0, 255, 177}, { 0, 255, 179}, { 0, 255, 180}, { 0, 255, 182},
|
|
|
2807 |
{ 0, 255, 183}, { 0, 255, 185}, { 0, 255, 187}, { 0, 255, 188}, { 0, 255, 190},
|
|
|
2808 |
{ 0, 255, 191}, { 0, 255, 193}, { 0, 255, 194}, { 0, 255, 196}, { 0, 255, 197},
|
|
|
2809 |
{ 0, 255, 199}, { 0, 255, 200}, { 0, 255, 202}, { 0, 255, 203}, { 0, 255, 205},
|
|
|
2810 |
{ 0, 255, 206}, { 0, 255, 208}, { 0, 255, 209}, { 0, 255, 211}, { 0, 255, 212},
|
|
|
2811 |
{ 0, 255, 214}, { 0, 255, 215}, { 0, 255, 217}, { 0, 255, 218}, { 0, 255, 220},
|
|
|
2812 |
{ 0, 255, 221}, { 0, 255, 223}, { 0, 255, 224}, { 0, 255, 226}, { 0, 255, 227},
|
|
|
2813 |
{ 0, 255, 229}, { 0, 255, 230}, { 0, 255, 232}, { 0, 255, 233}, { 0, 255, 235},
|
|
|
2814 |
{ 0, 255, 236}, { 0, 255, 238}, { 0, 255, 239}, { 0, 255, 241}, { 0, 255, 242},
|
|
|
2815 |
{ 0, 255, 244}, { 0, 255, 245}, { 0, 255, 247}, { 0, 255, 248}, { 0, 255, 250},
|
|
|
2816 |
{ 0, 255, 251}, { 0, 255, 253}, { 0, 255, 254}, { 0, 254, 255}, { 0, 253, 255},
|
|
|
2817 |
{ 0, 251, 255}, { 0, 250, 255}, { 0, 248, 255}, { 0, 247, 255}, { 0, 245, 255},
|
|
|
2818 |
{ 0, 244, 255}, { 0, 242, 255}, { 0, 241, 255}, { 0, 239, 255}, { 0, 238, 255},
|
|
|
2819 |
{ 0, 236, 255}, { 0, 235, 255}, { 0, 233, 255}, { 0, 232, 255}, { 0, 230, 255},
|
|
|
2820 |
{ 0, 229, 255}, { 0, 227, 255}, { 0, 225, 255}, { 0, 224, 255}, { 0, 222, 255},
|
|
|
2821 |
{ 0, 221, 255}, { 0, 219, 255}, { 0, 218, 255}, { 0, 216, 255}, { 0, 215, 255},
|
|
|
2822 |
{ 0, 213, 255}, { 0, 212, 255}, { 0, 210, 255}, { 0, 209, 255}, { 0, 207, 255},
|
|
|
2823 |
{ 0, 206, 255}, { 0, 204, 255}, { 0, 203, 255}, { 0, 201, 255}, { 0, 200, 255},
|
|
|
2824 |
{ 0, 198, 255}, { 0, 197, 255}, { 0, 195, 255}, { 0, 194, 255}, { 0, 192, 255},
|
|
|
2825 |
{ 0, 191, 255}, { 0, 189, 255}, { 0, 188, 255}, { 0, 186, 255}, { 0, 185, 255},
|
|
|
2826 |
{ 0, 183, 255}, { 0, 182, 255}, { 0, 180, 255}, { 0, 179, 255}, { 0, 177, 255},
|
|
|
2827 |
{ 0, 176, 255}, { 0, 174, 255}, { 0, 173, 255}, { 0, 171, 255}, { 0, 170, 255},
|
|
|
2828 |
{ 0, 168, 255}, { 0, 167, 255}, { 0, 165, 255}, { 0, 164, 255}, { 0, 162, 255},
|
|
|
2829 |
{ 0, 161, 255}, { 0, 159, 255}, { 0, 158, 255}, { 0, 156, 255}, { 0, 155, 255},
|
|
|
2830 |
{ 0, 153, 255}, { 0, 152, 255}, { 0, 150, 255}, { 0, 149, 255}, { 0, 147, 255},
|
|
|
2831 |
{ 0, 146, 255}, { 0, 144, 255}, { 0, 143, 255}, { 0, 141, 255}, { 0, 140, 255},
|
|
|
2832 |
{ 0, 138, 255}, { 0, 137, 255}, { 0, 135, 255}, { 0, 134, 255}, { 0, 132, 255},
|
|
|
2833 |
{ 0, 131, 255}, { 0, 129, 255}, { 0, 128, 255}, { 0, 126, 255}, { 0, 124, 255},
|
|
|
2834 |
{ 0, 123, 255}, { 0, 121, 255}, { 0, 120, 255}, { 0, 118, 255}, { 0, 117, 255},
|
|
|
2835 |
{ 0, 115, 255}, { 0, 114, 255}, { 0, 112, 255}, { 0, 111, 255}, { 0, 109, 255},
|
|
|
2836 |
{ 0, 108, 255}, { 0, 106, 255}, { 0, 105, 255}, { 0, 103, 255}, { 0, 102, 255},
|
|
|
2837 |
{ 0, 100, 255}, { 0, 99, 255}, { 0, 97, 255}, { 0, 96, 255}, { 0, 94, 255},
|
|
|
2838 |
{ 0, 93, 255}, { 0, 91, 255}, { 0, 90, 255}, { 0, 88, 255}, { 0, 87, 255},
|
|
|
2839 |
{ 0, 85, 255}, { 0, 84, 255}, { 0, 82, 255}, { 0, 81, 255}, { 0, 79, 255},
|
|
|
2840 |
{ 0, 78, 255}, { 0, 76, 255}, { 0, 75, 255}, { 0, 73, 255}, { 0, 72, 255},
|
|
|
2841 |
{ 0, 70, 255}, { 0, 69, 255}, { 0, 67, 255}, { 0, 66, 255}, { 0, 64, 255},
|
|
|
2842 |
{ 0, 63, 255}, { 0, 61, 255}, { 0, 60, 255}, { 0, 58, 255}, { 0, 57, 255},
|
|
|
2843 |
{ 0, 55, 255}, { 0, 54, 255}, { 0, 52, 255}, { 0, 51, 255}, { 0, 49, 255},
|
|
|
2844 |
{ 0, 48, 255}, { 0, 46, 255}, { 0, 45, 255}, { 0, 43, 255}, { 0, 42, 255},
|
|
|
2845 |
{ 0, 40, 255}, { 0, 39, 255}, { 0, 37, 255}, { 0, 36, 255}, { 0, 34, 255},
|
|
|
2846 |
{ 0, 33, 255}, { 0, 31, 255}, { 0, 30, 255}, { 0, 28, 255}, { 0, 26, 255},
|
|
|
2847 |
{ 0, 25, 255}, { 0, 23, 255}, { 0, 22, 255}, { 0, 20, 255}, { 0, 19, 255},
|
|
|
2848 |
{ 0, 17, 255}, { 0, 16, 255}, { 1, 15, 255}, { 1, 14, 255}, { 2, 13, 255},
|
|
|
2849 |
{ 2, 12, 255}, { 3, 11, 255}, { 3, 10, 255}, { 4, 9, 255}, { 4, 8, 255},
|
|
|
2850 |
{ 5, 7, 255}, { 5, 6, 255}, { 6, 5, 255}, { 6, 4, 255}, { 7, 3, 255},
|
|
|
2851 |
{ 7, 2, 255}, { 8, 1, 255}, { 8, 0, 255}, { 10, 0, 255}, { 11, 0, 255},
|
|
|
2852 |
{ 13, 0, 255}, { 14, 0, 255}, { 16, 0, 255}, { 17, 0, 255}, { 19, 0, 255},
|
|
|
2853 |
{ 20, 0, 255}, { 22, 0, 255}, { 23, 0, 255}, { 25, 0, 255}, { 26, 0, 255},
|
|
|
2854 |
{ 28, 0, 255}, { 29, 0, 255}, { 31, 0, 255}, { 32, 0, 255}, { 34, 0, 255},
|
|
|
2855 |
{ 35, 0, 255}, { 37, 0, 255}, { 38, 0, 255}, { 40, 0, 255}, { 41, 0, 255},
|
|
|
2856 |
{ 43, 0, 255}, { 44, 0, 255}, { 46, 0, 255}, { 47, 0, 255}, { 49, 0, 255},
|
|
|
2857 |
{ 50, 0, 255}, { 52, 0, 255}, { 53, 0, 255}, { 55, 0, 255}, { 56, 0, 255},
|
|
|
2858 |
{ 58, 0, 255}, { 59, 0, 255}, { 61, 0, 255}, { 62, 0, 255}, { 64, 0, 255},
|
|
|
2859 |
{ 65, 0, 255}, { 67, 0, 255}, { 68, 0, 255}, { 70, 0, 255}, { 72, 0, 255},
|
|
|
2860 |
{ 73, 0, 255}, { 75, 0, 255}, { 76, 0, 255}, { 78, 0, 255}, { 79, 0, 255},
|
|
|
2861 |
{ 81, 0, 255}, { 82, 0, 255}, { 84, 0, 255}, { 85, 0, 255}, { 87, 0, 255},
|
|
|
2862 |
{ 88, 0, 255}, { 90, 0, 255}, { 91, 0, 255}, { 93, 0, 255}, { 94, 0, 255},
|
|
|
2863 |
{ 96, 0, 255}, { 97, 0, 255}, { 99, 0, 255}, {100, 0, 255}, {102, 0, 255},
|
|
|
2864 |
{103, 0, 255}, {105, 0, 255}, {106, 0, 255}, {108, 0, 255}, {109, 0, 255},
|
|
|
2865 |
{111, 0, 255}, {112, 0, 255}, {114, 0, 255}, {115, 0, 255}, {117, 0, 255},
|
|
|
2866 |
{118, 0, 255}, {120, 0, 255}, {121, 0, 255}, {123, 0, 255}, {124, 0, 255},
|
|
|
2867 |
{126, 0, 255}, {127, 0, 255}, {129, 0, 255}, {130, 0, 255}, {132, 0, 255},
|
|
|
2868 |
{133, 0, 255}, {135, 0, 255}, {136, 0, 255}, {138, 0, 255}, {139, 0, 255},
|
|
|
2869 |
{141, 0, 255}, {142, 0, 255}, {144, 0, 255}, {145, 0, 255}, {147, 0, 255},
|
|
|
2870 |
{148, 0, 255}, {150, 0, 255}, {151, 0, 255}, {153, 0, 255}, {154, 0, 255},
|
|
|
2871 |
{156, 0, 255}, {157, 0, 255}, {159, 0, 255}, {160, 0, 255}, {162, 0, 255},
|
|
|
2872 |
{163, 0, 255}, {165, 0, 255}, {166, 0, 255}, {168, 0, 255}, {169, 0, 255},
|
|
|
2873 |
{171, 0, 255}, {173, 0, 255}, {174, 0, 255}, {176, 0, 255}, {177, 0, 255},
|
|
|
2874 |
{179, 0, 255}, {180, 0, 255}, {182, 0, 255}, {183, 0, 255}, {185, 0, 255},
|
|
|
2875 |
{186, 0, 255}, {188, 0, 255}, {189, 0, 255}, {191, 0, 255}, {192, 0, 255},
|
|
|
2876 |
{194, 0, 255}, {195, 0, 255}, {197, 0, 255}, {198, 0, 255}, {200, 0, 255},
|
|
|
2877 |
{201, 0, 255}, {203, 0, 255}, {204, 0, 255}, {206, 0, 255}, {207, 0, 255},
|
|
|
2878 |
{209, 0, 255}, {210, 0, 255}, {212, 0, 255}, {213, 0, 255}, {215, 0, 255},
|
|
|
2879 |
{216, 0, 255}, {218, 0, 255}, {219, 0, 255}, {221, 0, 255}, {222, 0, 255},
|
|
|
2880 |
{224, 0, 255}, {225, 0, 255}, {227, 0, 255}, {228, 0, 255}, {230, 0, 255},
|
|
|
2881 |
{231, 0, 255}, {233, 0, 255}, {234, 0, 255}, {236, 0, 255}, {237, 0, 255},
|
|
|
2882 |
{239, 0, 255}, {240, 0, 255}, {242, 0, 255}, {243, 0, 255}, {245, 0, 255},
|
|
|
2883 |
{246, 0, 255}, {247, 0, 254}, {248, 0, 253}, {248, 0, 252}, {249, 0, 251},
|
|
|
2884 |
{249, 0, 250}, {250, 0, 249}, {250, 0, 248}, {251, 0, 247}, {251, 0, 246},
|
|
|
2885 |
{252, 0, 245}, {252, 0, 244}, {253, 0, 243}, {253, 0, 242}, {254, 0, 241},
|
|
|
2886 |
{254, 0, 240}, {255, 0, 239}, {255, 0, 238}, {255, 0, 236}, {255, 0, 235},
|
|
|
2887 |
{255, 0, 233}, {255, 0, 232}, {255, 0, 230}, {255, 0, 229}, {255, 0, 227},
|
|
|
2888 |
{255, 0, 226}, {255, 0, 224}, {255, 0, 223}, {255, 0, 221}, {255, 0, 220},
|
|
|
2889 |
{255, 0, 218}, {255, 0, 217}, {255, 0, 215}, {255, 0, 214}, {255, 0, 212},
|
|
|
2890 |
{255, 0, 211}, {255, 0, 209}, {255, 0, 208}, {255, 0, 206}, {255, 0, 205},
|
|
|
2891 |
{255, 0, 203}, {255, 0, 202}, {255, 0, 200}, {255, 0, 199}, {255, 0, 197},
|
|
|
2892 |
{255, 0, 196}, {255, 0, 194}, {255, 0, 193}, {255, 0, 191}, {255, 0, 190},
|
|
|
2893 |
{255, 0, 188}, {255, 0, 187}, {255, 0, 185}, {255, 0, 184}, {255, 0, 182},
|
|
|
2894 |
{255, 0, 181}, {255, 0, 179}, {255, 0, 178}, {255, 0, 176}, {255, 0, 175},
|
|
|
2895 |
{255, 0, 173}, {255, 0, 172}, {255, 0, 170}, {255, 0, 169}, {255, 0, 167},
|
|
|
2896 |
{255, 0, 166}, {255, 0, 164}, {255, 0, 163}, {255, 0, 161}, {255, 0, 160},
|
|
|
2897 |
{255, 0, 158}, {255, 0, 157}, {255, 0, 155}, {255, 0, 154}, {255, 0, 152},
|
|
|
2898 |
{255, 0, 151}, {255, 0, 149}, {255, 0, 148}, {255, 0, 146}, {255, 0, 145},
|
|
|
2899 |
{255, 0, 143}, {255, 0, 141}, {255, 0, 140}, {255, 0, 138}, {255, 0, 137},
|
|
|
2900 |
{255, 0, 135}, {255, 0, 134}, {255, 0, 132}, {255, 0, 131}, {255, 0, 129},
|
|
|
2901 |
{255, 0, 128}, {255, 0, 126}, {255, 0, 125}, {255, 0, 123}, {255, 0, 122},
|
|
|
2902 |
{255, 0, 120}, {255, 0, 119}, {255, 0, 117}, {255, 0, 116}, {255, 0, 114},
|
|
|
2903 |
{255, 0, 113}, {255, 0, 111}, {255, 0, 110}, {255, 0, 108}, {255, 0, 107},
|
|
|
2904 |
{255, 0, 105}, {255, 0, 104}, {255, 0, 102}, {255, 0, 101}, {255, 0, 99},
|
|
|
2905 |
{255, 0, 98}, {255, 0, 96}, {255, 0, 95}, {255, 0, 93}, {255, 0, 92},
|
|
|
2906 |
{255, 0, 90}, {255, 0, 89}, {255, 0, 87}, {255, 0, 86}, {255, 0, 84},
|
|
|
2907 |
{255, 0, 83}, {255, 0, 81}, {255, 0, 80}, {255, 0, 78}, {255, 0, 77},
|
|
|
2908 |
{255, 0, 75}, {255, 0, 74}, {255, 0, 72}, {255, 0, 71}, {255, 0, 69},
|
|
|
2909 |
{255, 0, 68}, {255, 0, 66}, {255, 0, 65}, {255, 0, 63}, {255, 0, 62},
|
|
|
2910 |
{255, 0, 60}, {255, 0, 59}, {255, 0, 57}, {255, 0, 56}, {255, 0, 54},
|
|
|
2911 |
{255, 0, 53}, {255, 0, 51}, {255, 0, 50}, {255, 0, 48}, {255, 0, 47},
|
|
|
2912 |
{255, 0, 45}, {255, 0, 44}, {255, 0, 42}, {255, 0, 40}, {255, 0, 39},
|
|
|
2913 |
{255, 0, 37}, {255, 0, 36}, {255, 0, 34}, {255, 0, 33}, {255, 0, 31},
|
|
|
2914 |
{255, 0, 30}, {255, 0, 28}, {255, 0, 27}, {255, 0, 25}, {255, 0, 24}
|
|
|
2915 |
};
|
|
|
2916 |
|
|
|
2917 |
const rgb_store jet_colormap[1000] = {
|
|
|
2918 |
{ 29, 0, 102}, { 23, 0, 107}, { 17, 0, 112}, { 12, 0, 117}, { 6, 0, 122},
|
|
|
2919 |
{ 0, 0, 127}, { 0, 0, 128}, { 0, 0, 129}, { 0, 0, 129}, { 0, 0, 130},
|
|
|
2920 |
{ 0, 0, 131}, { 0, 0, 132}, { 0, 0, 133}, { 0, 0, 133}, { 0, 0, 134},
|
|
|
2921 |
{ 0, 0, 135}, { 0, 0, 136}, { 0, 0, 137}, { 0, 0, 138}, { 0, 0, 140},
|
|
|
2922 |
{ 0, 0, 141}, { 0, 0, 142}, { 0, 0, 143}, { 0, 0, 145}, { 0, 0, 146},
|
|
|
2923 |
{ 0, 0, 147}, { 0, 0, 148}, { 0, 0, 150}, { 0, 0, 151}, { 0, 0, 152},
|
|
|
2924 |
{ 0, 0, 153}, { 0, 0, 154}, { 0, 0, 156}, { 0, 0, 157}, { 0, 0, 158},
|
|
|
2925 |
{ 0, 0, 159}, { 0, 0, 160}, { 0, 0, 161}, { 0, 0, 163}, { 0, 0, 164},
|
|
|
2926 |
{ 0, 0, 165}, { 0, 0, 166}, { 0, 0, 168}, { 0, 0, 169}, { 0, 0, 170},
|
|
|
2927 |
{ 0, 0, 171}, { 0, 0, 173}, { 0, 0, 174}, { 0, 0, 175}, { 0, 0, 176},
|
|
|
2928 |
{ 0, 0, 178}, { 0, 0, 179}, { 0, 0, 180}, { 0, 0, 181}, { 0, 0, 183},
|
|
|
2929 |
{ 0, 0, 184}, { 0, 0, 185}, { 0, 0, 186}, { 0, 0, 188}, { 0, 0, 189},
|
|
|
2930 |
{ 0, 0, 190}, { 0, 0, 191}, { 0, 0, 193}, { 0, 0, 194}, { 0, 0, 195},
|
|
|
2931 |
{ 0, 0, 196}, { 0, 0, 197}, { 0, 0, 198}, { 0, 0, 200}, { 0, 0, 201},
|
|
|
2932 |
{ 0, 0, 202}, { 0, 0, 203}, { 0, 0, 204}, { 0, 0, 206}, { 0, 0, 207},
|
|
|
2933 |
{ 0, 0, 208}, { 0, 0, 209}, { 0, 0, 211}, { 0, 0, 212}, { 0, 0, 213},
|
|
|
2934 |
{ 0, 0, 214}, { 0, 0, 216}, { 0, 0, 217}, { 0, 0, 218}, { 0, 0, 219},
|
|
|
2935 |
{ 0, 0, 221}, { 0, 0, 222}, { 0, 0, 223}, { 0, 0, 225}, { 0, 0, 226},
|
|
|
2936 |
{ 0, 0, 227}, { 0, 0, 228}, { 0, 0, 230}, { 0, 0, 231}, { 0, 0, 232},
|
|
|
2937 |
{ 0, 0, 233}, { 0, 0, 234}, { 0, 0, 234}, { 0, 0, 235}, { 0, 0, 236},
|
|
|
2938 |
{ 0, 0, 237}, { 0, 0, 238}, { 0, 0, 239}, { 0, 0, 239}, { 0, 0, 240},
|
|
|
2939 |
{ 0, 0, 241}, { 0, 0, 242}, { 0, 0, 243}, { 0, 0, 244}, { 0, 0, 246},
|
|
|
2940 |
{ 0, 0, 247}, { 0, 0, 248}, { 0, 0, 249}, { 0, 0, 250}, { 0, 0, 251},
|
|
|
2941 |
{ 0, 0, 253}, { 0, 0, 254}, { 0, 0, 254}, { 0, 0, 254}, { 0, 0, 254},
|
|
|
2942 |
{ 0, 0, 254}, { 0, 0, 254}, { 0, 0, 255}, { 0, 0, 255}, { 0, 0, 255},
|
|
|
2943 |
{ 0, 0, 255}, { 0, 0, 255}, { 0, 0, 255}, { 0, 1, 255}, { 0, 1, 255},
|
|
|
2944 |
{ 0, 2, 255}, { 0, 3, 255}, { 0, 3, 255}, { 0, 4, 255}, { 0, 5, 255},
|
|
|
2945 |
{ 0, 6, 255}, { 0, 6, 255}, { 0, 7, 255}, { 0, 8, 255}, { 0, 9, 255},
|
|
|
2946 |
{ 0, 10, 255}, { 0, 11, 255}, { 0, 12, 255}, { 0, 13, 255}, { 0, 14, 255},
|
|
|
2947 |
{ 0, 15, 255}, { 0, 16, 255}, { 0, 17, 255}, { 0, 18, 255}, { 0, 19, 255},
|
|
|
2948 |
{ 0, 21, 255}, { 0, 22, 255}, { 0, 23, 255}, { 0, 24, 255}, { 0, 25, 255},
|
|
|
2949 |
{ 0, 26, 255}, { 0, 27, 255}, { 0, 28, 255}, { 0, 29, 255}, { 0, 30, 255},
|
|
|
2950 |
{ 0, 31, 255}, { 0, 32, 255}, { 0, 34, 255}, { 0, 35, 255}, { 0, 36, 255},
|
|
|
2951 |
{ 0, 37, 255}, { 0, 38, 255}, { 0, 39, 255}, { 0, 40, 255}, { 0, 41, 255},
|
|
|
2952 |
{ 0, 42, 255}, { 0, 43, 255}, { 0, 44, 255}, { 0, 45, 255}, { 0, 46, 255},
|
|
|
2953 |
{ 0, 48, 255}, { 0, 49, 255}, { 0, 50, 255}, { 0, 51, 255}, { 0, 52, 255},
|
|
|
2954 |
{ 0, 53, 255}, { 0, 54, 255}, { 0, 55, 255}, { 0, 56, 255}, { 0, 57, 255},
|
|
|
2955 |
{ 0, 58, 255}, { 0, 58, 255}, { 0, 59, 255}, { 0, 60, 255}, { 0, 60, 255},
|
|
|
2956 |
{ 0, 61, 255}, { 0, 62, 255}, { 0, 63, 255}, { 0, 63, 255}, { 0, 64, 255},
|
|
|
2957 |
{ 0, 65, 255}, { 0, 66, 255}, { 0, 67, 255}, { 0, 68, 255}, { 0, 69, 255},
|
|
|
2958 |
{ 0, 71, 255}, { 0, 72, 255}, { 0, 73, 255}, { 0, 74, 255}, { 0, 75, 255},
|
|
|
2959 |
{ 0, 76, 255}, { 0, 77, 255}, { 0, 78, 255}, { 0, 79, 255}, { 0, 80, 255},
|
|
|
2960 |
{ 0, 81, 255}, { 0, 82, 255}, { 0, 84, 255}, { 0, 85, 255}, { 0, 86, 255},
|
|
|
2961 |
{ 0, 87, 255}, { 0, 88, 255}, { 0, 89, 255}, { 0, 90, 255}, { 0, 91, 255},
|
|
|
2962 |
{ 0, 92, 255}, { 0, 93, 255}, { 0, 94, 255}, { 0, 95, 255}, { 0, 96, 255},
|
|
|
2963 |
{ 0, 98, 255}, { 0, 99, 255}, { 0, 100, 255}, { 0, 101, 255}, { 0, 102, 255},
|
|
|
2964 |
{ 0, 103, 255}, { 0, 104, 255}, { 0, 105, 255}, { 0, 106, 255}, { 0, 107, 255},
|
|
|
2965 |
{ 0, 108, 255}, { 0, 109, 255}, { 0, 111, 255}, { 0, 112, 255}, { 0, 113, 255},
|
|
|
2966 |
{ 0, 114, 255}, { 0, 115, 255}, { 0, 116, 255}, { 0, 117, 255}, { 0, 118, 255},
|
|
|
2967 |
{ 0, 119, 255}, { 0, 120, 255}, { 0, 121, 255}, { 0, 122, 255}, { 0, 123, 255},
|
|
|
2968 |
{ 0, 125, 255}, { 0, 126, 255}, { 0, 127, 255}, { 0, 128, 255}, { 0, 129, 255},
|
|
|
2969 |
{ 0, 130, 255}, { 0, 131, 255}, { 0, 132, 255}, { 0, 133, 255}, { 0, 134, 255},
|
|
|
2970 |
{ 0, 135, 255}, { 0, 136, 255}, { 0, 138, 255}, { 0, 139, 255}, { 0, 140, 255},
|
|
|
2971 |
{ 0, 141, 255}, { 0, 142, 255}, { 0, 143, 255}, { 0, 144, 255}, { 0, 145, 255},
|
|
|
2972 |
{ 0, 146, 255}, { 0, 147, 255}, { 0, 148, 255}, { 0, 149, 255}, { 0, 150, 255},
|
|
|
2973 |
{ 0, 150, 255}, { 0, 151, 255}, { 0, 152, 255}, { 0, 153, 255}, { 0, 153, 255},
|
|
|
2974 |
{ 0, 154, 255}, { 0, 155, 255}, { 0, 155, 255}, { 0, 156, 255}, { 0, 157, 255},
|
|
|
2975 |
{ 0, 158, 255}, { 0, 159, 255}, { 0, 161, 255}, { 0, 162, 255}, { 0, 163, 255},
|
|
|
2976 |
{ 0, 164, 255}, { 0, 165, 255}, { 0, 166, 255}, { 0, 167, 255}, { 0, 168, 255},
|
|
|
2977 |
{ 0, 169, 255}, { 0, 170, 255}, { 0, 171, 255}, { 0, 172, 255}, { 0, 173, 255},
|
|
|
2978 |
{ 0, 175, 255}, { 0, 176, 255}, { 0, 177, 255}, { 0, 178, 255}, { 0, 179, 255},
|
|
|
2979 |
{ 0, 180, 255}, { 0, 181, 255}, { 0, 182, 255}, { 0, 183, 255}, { 0, 184, 255},
|
|
|
2980 |
{ 0, 185, 255}, { 0, 186, 255}, { 0, 188, 255}, { 0, 189, 255}, { 0, 190, 255},
|
|
|
2981 |
{ 0, 191, 255}, { 0, 192, 255}, { 0, 193, 255}, { 0, 194, 255}, { 0, 195, 255},
|
|
|
2982 |
{ 0, 196, 255}, { 0, 197, 255}, { 0, 198, 255}, { 0, 199, 255}, { 0, 200, 255},
|
|
|
2983 |
{ 0, 202, 255}, { 0, 203, 255}, { 0, 204, 255}, { 0, 205, 255}, { 0, 206, 255},
|
|
|
2984 |
{ 0, 207, 255}, { 0, 208, 255}, { 0, 209, 255}, { 0, 210, 255}, { 0, 211, 255},
|
|
|
2985 |
{ 0, 212, 255}, { 0, 213, 255}, { 0, 215, 255}, { 0, 216, 255}, { 0, 217, 255},
|
|
|
2986 |
{ 0, 218, 254}, { 0, 219, 253}, { 0, 220, 252}, { 0, 221, 252}, { 0, 222, 251},
|
|
|
2987 |
{ 0, 223, 250}, { 0, 224, 250}, { 0, 225, 249}, { 0, 226, 248}, { 0, 227, 247},
|
|
|
2988 |
{ 0, 229, 247}, { 1, 230, 246}, { 2, 231, 245}, { 3, 232, 244}, { 3, 233, 243},
|
|
|
2989 |
{ 4, 234, 242}, { 5, 235, 241}, { 5, 236, 240}, { 6, 237, 239}, { 7, 238, 238},
|
|
|
2990 |
{ 8, 239, 238}, { 8, 240, 237}, { 9, 241, 236}, { 10, 242, 236}, { 10, 242, 235},
|
|
|
2991 |
{ 11, 243, 235}, { 11, 244, 234}, { 12, 245, 234}, { 13, 245, 233}, { 13, 246, 232},
|
|
|
2992 |
{ 14, 247, 232}, { 15, 247, 231}, { 15, 248, 231}, { 16, 249, 230}, { 17, 249, 229},
|
|
|
2993 |
{ 18, 250, 228}, { 18, 251, 227}, { 19, 251, 226}, { 20, 252, 225}, { 21, 253, 224},
|
|
|
2994 |
{ 22, 253, 224}, { 23, 254, 223}, { 23, 254, 222}, { 24, 255, 221}, { 25, 255, 220},
|
|
|
2995 |
{ 26, 255, 219}, { 27, 255, 218}, { 28, 255, 218}, { 29, 255, 217}, { 30, 255, 216},
|
|
|
2996 |
{ 30, 255, 215}, { 31, 255, 214}, { 32, 255, 214}, { 33, 255, 213}, { 34, 255, 212},
|
|
|
2997 |
{ 35, 255, 211}, { 36, 255, 210}, { 37, 255, 209}, { 38, 255, 208}, { 39, 255, 207},
|
|
|
2998 |
{ 39, 255, 207}, { 40, 255, 206}, { 41, 255, 205}, { 42, 255, 204}, { 43, 255, 203},
|
|
|
2999 |
{ 44, 255, 202}, { 45, 255, 201}, { 46, 255, 200}, { 47, 255, 199}, { 48, 255, 198},
|
|
|
3000 |
{ 48, 255, 198}, { 49, 255, 197}, { 50, 255, 196}, { 51, 255, 195}, { 52, 255, 194},
|
|
|
3001 |
{ 53, 255, 193}, { 54, 255, 192}, { 55, 255, 191}, { 55, 255, 191}, { 56, 255, 190},
|
|
|
3002 |
{ 57, 255, 189}, { 58, 255, 188}, { 59, 255, 187}, { 60, 255, 186}, { 60, 255, 186},
|
|
|
3003 |
{ 61, 255, 185}, { 62, 255, 184}, { 63, 255, 183}, { 64, 255, 182}, { 65, 255, 181},
|
|
|
3004 |
{ 65, 255, 181}, { 66, 255, 180}, { 67, 255, 179}, { 68, 255, 178}, { 69, 255, 177},
|
|
|
3005 |
{ 70, 255, 176}, { 71, 255, 175}, { 72, 255, 174}, { 73, 255, 173}, { 74, 255, 172},
|
|
|
3006 |
{ 74, 255, 172}, { 75, 255, 171}, { 76, 255, 170}, { 77, 255, 169}, { 78, 255, 168},
|
|
|
3007 |
{ 79, 255, 167}, { 80, 255, 166}, { 81, 255, 165}, { 82, 255, 164}, { 83, 255, 163},
|
|
|
3008 |
{ 83, 255, 163}, { 84, 255, 162}, { 84, 255, 162}, { 85, 255, 161}, { 85, 255, 161},
|
|
|
3009 |
{ 86, 255, 160}, { 87, 255, 159}, { 87, 255, 159}, { 88, 255, 158}, { 88, 255, 158},
|
|
|
3010 |
{ 89, 255, 157}, { 89, 255, 157}, { 90, 255, 156}, { 91, 255, 155}, { 92, 255, 154},
|
|
|
3011 |
{ 93, 255, 153}, { 94, 255, 152}, { 95, 255, 151}, { 96, 255, 150}, { 97, 255, 149},
|
|
|
3012 |
{ 97, 255, 149}, { 98, 255, 148}, { 99, 255, 147}, {100, 255, 146}, {101, 255, 145},
|
|
|
3013 |
{102, 255, 144}, {102, 255, 143}, {103, 255, 142}, {104, 255, 141}, {105, 255, 140},
|
|
|
3014 |
{106, 255, 140}, {107, 255, 139}, {107, 255, 138}, {108, 255, 137}, {109, 255, 136},
|
|
|
3015 |
{110, 255, 135}, {111, 255, 134}, {112, 255, 134}, {113, 255, 133}, {114, 255, 132},
|
|
|
3016 |
{114, 255, 131}, {115, 255, 130}, {116, 255, 130}, {117, 255, 129}, {118, 255, 128},
|
|
|
3017 |
{119, 255, 127}, {120, 255, 126}, {121, 255, 125}, {122, 255, 124}, {123, 255, 123},
|
|
|
3018 |
{123, 255, 123}, {124, 255, 122}, {125, 255, 121}, {126, 255, 120}, {127, 255, 119},
|
|
|
3019 |
{128, 255, 118}, {129, 255, 117}, {130, 255, 116}, {130, 255, 115}, {131, 255, 114},
|
|
|
3020 |
{132, 255, 114}, {133, 255, 113}, {134, 255, 112}, {134, 255, 111}, {135, 255, 110},
|
|
|
3021 |
{136, 255, 109}, {137, 255, 108}, {138, 255, 107}, {139, 255, 107}, {140, 255, 106},
|
|
|
3022 |
{140, 255, 105}, {141, 255, 104}, {142, 255, 103}, {143, 255, 102}, {144, 255, 102},
|
|
|
3023 |
{145, 255, 101}, {146, 255, 100}, {147, 255, 99}, {148, 255, 98}, {149, 255, 97},
|
|
|
3024 |
{149, 255, 97}, {150, 255, 96}, {151, 255, 95}, {152, 255, 94}, {153, 255, 93},
|
|
|
3025 |
{154, 255, 92}, {155, 255, 91}, {156, 255, 90}, {157, 255, 89}, {157, 255, 89},
|
|
|
3026 |
{158, 255, 88}, {158, 255, 88}, {159, 255, 87}, {159, 255, 87}, {160, 255, 86},
|
|
|
3027 |
{161, 255, 85}, {161, 255, 85}, {162, 255, 84}, {162, 255, 84}, {163, 255, 83},
|
|
|
3028 |
{163, 255, 83}, {164, 255, 82}, {165, 255, 81}, {166, 255, 80}, {167, 255, 79},
|
|
|
3029 |
{168, 255, 78}, {169, 255, 77}, {170, 255, 76}, {171, 255, 75}, {172, 255, 74},
|
|
|
3030 |
{172, 255, 74}, {173, 255, 73}, {174, 255, 72}, {175, 255, 71}, {176, 255, 70},
|
|
|
3031 |
{177, 255, 69}, {178, 255, 68}, {179, 255, 67}, {180, 255, 66}, {181, 255, 65},
|
|
|
3032 |
{181, 255, 65}, {182, 255, 64}, {183, 255, 63}, {184, 255, 62}, {185, 255, 61},
|
|
|
3033 |
{186, 255, 60}, {186, 255, 60}, {187, 255, 59}, {188, 255, 58}, {189, 255, 57},
|
|
|
3034 |
{190, 255, 56}, {191, 255, 55}, {191, 255, 55}, {192, 255, 54}, {193, 255, 53},
|
|
|
3035 |
{194, 255, 52}, {195, 255, 51}, {196, 255, 50}, {197, 255, 49}, {198, 255, 48},
|
|
|
3036 |
{198, 255, 48}, {199, 255, 47}, {200, 255, 46}, {201, 255, 45}, {202, 255, 44},
|
|
|
3037 |
{203, 255, 43}, {204, 255, 42}, {205, 255, 41}, {206, 255, 40}, {207, 255, 39},
|
|
|
3038 |
{207, 255, 39}, {208, 255, 38}, {209, 255, 37}, {210, 255, 36}, {211, 255, 35},
|
|
|
3039 |
{212, 255, 34}, {213, 255, 33}, {214, 255, 32}, {214, 255, 31}, {215, 255, 30},
|
|
|
3040 |
{216, 255, 30}, {217, 255, 29}, {218, 255, 28}, {218, 255, 27}, {219, 255, 26},
|
|
|
3041 |
{220, 255, 25}, {221, 255, 24}, {222, 255, 23}, {223, 255, 23}, {224, 255, 22},
|
|
|
3042 |
{224, 255, 21}, {225, 255, 20}, {226, 255, 19}, {227, 255, 18}, {228, 255, 18},
|
|
|
3043 |
{229, 255, 17}, {230, 255, 16}, {231, 255, 15}, {231, 255, 15}, {232, 255, 14},
|
|
|
3044 |
{232, 255, 13}, {233, 255, 13}, {234, 255, 12}, {234, 255, 11}, {235, 255, 11},
|
|
|
3045 |
{235, 255, 10}, {236, 255, 10}, {236, 255, 9}, {237, 255, 8}, {238, 254, 8},
|
|
|
3046 |
{238, 253, 7}, {239, 252, 6}, {240, 251, 5}, {241, 250, 5}, {242, 249, 4},
|
|
|
3047 |
{243, 248, 3}, {244, 247, 3}, {245, 246, 2}, {246, 246, 1}, {247, 245, 0},
|
|
|
3048 |
{247, 243, 0}, {248, 242, 0}, {249, 242, 0}, {250, 241, 0}, {250, 240, 0},
|
|
|
3049 |
{251, 239, 0}, {252, 238, 0}, {252, 237, 0}, {253, 236, 0}, {254, 235, 0},
|
|
|
3050 |
{255, 234, 0}, {255, 233, 0}, {255, 232, 0}, {255, 231, 0}, {255, 230, 0},
|
|
|
3051 |
{255, 229, 0}, {255, 228, 0}, {255, 227, 0}, {255, 226, 0}, {255, 225, 0},
|
|
|
3052 |
{255, 224, 0}, {255, 223, 0}, {255, 222, 0}, {255, 221, 0}, {255, 220, 0},
|
|
|
3053 |
{255, 219, 0}, {255, 218, 0}, {255, 217, 0}, {255, 216, 0}, {255, 215, 0},
|
|
|
3054 |
{255, 214, 0}, {255, 213, 0}, {255, 212, 0}, {255, 211, 0}, {255, 210, 0},
|
|
|
3055 |
{255, 209, 0}, {255, 208, 0}, {255, 207, 0}, {255, 206, 0}, {255, 205, 0},
|
|
|
3056 |
{255, 204, 0}, {255, 203, 0}, {255, 202, 0}, {255, 201, 0}, {255, 200, 0},
|
|
|
3057 |
{255, 199, 0}, {255, 198, 0}, {255, 197, 0}, {255, 196, 0}, {255, 195, 0},
|
|
|
3058 |
{255, 194, 0}, {255, 193, 0}, {255, 192, 0}, {255, 191, 0}, {255, 190, 0},
|
|
|
3059 |
{255, 189, 0}, {255, 188, 0}, {255, 187, 0}, {255, 186, 0}, {255, 185, 0},
|
|
|
3060 |
{255, 184, 0}, {255, 183, 0}, {255, 182, 0}, {255, 180, 0}, {255, 179, 0},
|
|
|
3061 |
{255, 178, 0}, {255, 177, 0}, {255, 176, 0}, {255, 176, 0}, {255, 175, 0},
|
|
|
3062 |
{255, 175, 0}, {255, 174, 0}, {255, 173, 0}, {255, 173, 0}, {255, 172, 0},
|
|
|
3063 |
{255, 171, 0}, {255, 171, 0}, {255, 170, 0}, {255, 169, 0}, {255, 168, 0},
|
|
|
3064 |
{255, 167, 0}, {255, 166, 0}, {255, 165, 0}, {255, 164, 0}, {255, 163, 0},
|
|
|
3065 |
{255, 162, 0}, {255, 161, 0}, {255, 160, 0}, {255, 159, 0}, {255, 158, 0},
|
|
|
3066 |
{255, 157, 0}, {255, 156, 0}, {255, 155, 0}, {255, 154, 0}, {255, 153, 0},
|
|
|
3067 |
{255, 152, 0}, {255, 151, 0}, {255, 150, 0}, {255, 150, 0}, {255, 149, 0},
|
|
|
3068 |
{255, 147, 0}, {255, 146, 0}, {255, 146, 0}, {255, 145, 0}, {255, 144, 0},
|
|
|
3069 |
{255, 143, 0}, {255, 142, 0}, {255, 141, 0}, {255, 140, 0}, {255, 139, 0},
|
|
|
3070 |
{255, 138, 0}, {255, 137, 0}, {255, 136, 0}, {255, 135, 0}, {255, 134, 0},
|
|
|
3071 |
{255, 133, 0}, {255, 132, 0}, {255, 131, 0}, {255, 130, 0}, {255, 129, 0},
|
|
|
3072 |
{255, 128, 0}, {255, 127, 0}, {255, 126, 0}, {255, 125, 0}, {255, 124, 0},
|
|
|
3073 |
{255, 123, 0}, {255, 122, 0}, {255, 121, 0}, {255, 120, 0}, {255, 119, 0},
|
|
|
3074 |
{255, 118, 0}, {255, 117, 0}, {255, 116, 0}, {255, 115, 0}, {255, 114, 0},
|
|
|
3075 |
{255, 113, 0}, {255, 112, 0}, {255, 111, 0}, {255, 109, 0}, {255, 108, 0},
|
|
|
3076 |
{255, 107, 0}, {255, 106, 0}, {255, 105, 0}, {255, 104, 0}, {255, 103, 0},
|
|
|
3077 |
{255, 102, 0}, {255, 101, 0}, {255, 100, 0}, {255, 99, 0}, {255, 98, 0},
|
|
|
3078 |
{255, 97, 0}, {255, 96, 0}, {255, 95, 0}, {255, 94, 0}, {255, 93, 0},
|
|
|
3079 |
{255, 92, 0}, {255, 91, 0}, {255, 91, 0}, {255, 90, 0}, {255, 90, 0},
|
|
|
3080 |
{255, 89, 0}, {255, 88, 0}, {255, 88, 0}, {255, 87, 0}, {255, 86, 0},
|
|
|
3081 |
{255, 86, 0}, {255, 85, 0}, {255, 84, 0}, {255, 83, 0}, {255, 82, 0},
|
|
|
3082 |
{255, 81, 0}, {255, 80, 0}, {255, 79, 0}, {255, 78, 0}, {255, 77, 0},
|
|
|
3083 |
{255, 76, 0}, {255, 75, 0}, {255, 74, 0}, {255, 73, 0}, {255, 72, 0},
|
|
|
3084 |
{255, 71, 0}, {255, 70, 0}, {255, 69, 0}, {255, 68, 0}, {255, 67, 0},
|
|
|
3085 |
{255, 66, 0}, {255, 65, 0}, {255, 64, 0}, {255, 63, 0}, {255, 62, 0},
|
|
|
3086 |
{255, 61, 0}, {255, 60, 0}, {255, 59, 0}, {255, 58, 0}, {255, 57, 0},
|
|
|
3087 |
{255, 56, 0}, {255, 55, 0}, {255, 54, 0}, {255, 54, 0}, {255, 53, 0},
|
|
|
3088 |
{255, 51, 0}, {255, 50, 0}, {255, 49, 0}, {255, 48, 0}, {255, 47, 0},
|
|
|
3089 |
{255, 46, 0}, {255, 45, 0}, {255, 44, 0}, {255, 43, 0}, {255, 42, 0},
|
|
|
3090 |
{255, 41, 0}, {255, 40, 0}, {255, 39, 0}, {255, 38, 0}, {255, 37, 0},
|
|
|
3091 |
{255, 36, 0}, {255, 35, 0}, {255, 34, 0}, {255, 33, 0}, {255, 32, 0},
|
|
|
3092 |
{255, 31, 0}, {255, 30, 0}, {255, 29, 0}, {255, 28, 0}, {255, 27, 0},
|
|
|
3093 |
{255, 26, 0}, {255, 25, 0}, {255, 24, 0}, {254, 23, 0}, {254, 22, 0},
|
|
|
3094 |
{254, 21, 0}, {254, 20, 0}, {254, 19, 0}, {254, 18, 0}, {253, 17, 0},
|
|
|
3095 |
{251, 16, 0}, {250, 15, 0}, {249, 14, 0}, {248, 13, 0}, {247, 12, 0},
|
|
|
3096 |
{246, 11, 0}, {244, 10, 0}, {243, 9, 0}, {242, 8, 0}, {241, 7, 0},
|
|
|
3097 |
{240, 6, 0}, {239, 6, 0}, {239, 5, 0}, {238, 4, 0}, {237, 4, 0},
|
|
|
3098 |
{236, 3, 0}, {235, 3, 0}, {234, 2, 0}, {234, 1, 0}, {233, 1, 0},
|
|
|
3099 |
{232, 0, 0}, {231, 0, 0}, {230, 0, 0}, {228, 0, 0}, {227, 0, 0},
|
|
|
3100 |
{226, 0, 0}, {225, 0, 0}, {223, 0, 0}, {222, 0, 0}, {221, 0, 0},
|
|
|
3101 |
{219, 0, 0}, {218, 0, 0}, {217, 0, 0}, {216, 0, 0}, {214, 0, 0},
|
|
|
3102 |
{213, 0, 0}, {212, 0, 0}, {211, 0, 0}, {209, 0, 0}, {208, 0, 0},
|
|
|
3103 |
{207, 0, 0}, {206, 0, 0}, {204, 0, 0}, {203, 0, 0}, {202, 0, 0},
|
|
|
3104 |
{201, 0, 0}, {200, 0, 0}, {198, 0, 0}, {197, 0, 0}, {196, 0, 0},
|
|
|
3105 |
{195, 0, 0}, {194, 0, 0}, {193, 0, 0}, {191, 0, 0}, {190, 0, 0},
|
|
|
3106 |
{189, 0, 0}, {188, 0, 0}, {186, 0, 0}, {185, 0, 0}, {184, 0, 0},
|
|
|
3107 |
{183, 0, 0}, {181, 0, 0}, {180, 0, 0}, {179, 0, 0}, {178, 0, 0},
|
|
|
3108 |
{176, 0, 0}, {175, 0, 0}, {174, 0, 0}, {173, 0, 0}, {171, 0, 0},
|
|
|
3109 |
{170, 0, 0}, {169, 0, 0}, {168, 0, 0}, {166, 0, 0}, {165, 0, 0},
|
|
|
3110 |
{164, 0, 0}, {163, 0, 0}, {161, 0, 0}, {160, 0, 0}, {159, 0, 0},
|
|
|
3111 |
{158, 0, 0}, {157, 0, 0}, {156, 0, 0}, {154, 0, 0}, {153, 0, 0},
|
|
|
3112 |
{152, 0, 0}, {151, 0, 0}, {150, 0, 0}, {148, 0, 0}, {147, 0, 0},
|
|
|
3113 |
{146, 0, 0}, {145, 0, 0}, {143, 0, 0}, {142, 0, 0}, {141, 0, 0},
|
|
|
3114 |
{140, 0, 0}, {138, 0, 0}, {137, 0, 0}, {136, 0, 0}, {135, 0, 0},
|
|
|
3115 |
{134, 0, 0}, {133, 0, 0}, {133, 0, 0}, {132, 0, 0}, {131, 0, 0},
|
|
|
3116 |
{130, 0, 0}, {129, 0, 0}, {129, 0, 0}, {128, 0, 0}, {127, 0, 0},
|
|
|
3117 |
{122, 0, 9}, {117, 0, 18}, {112, 0, 27}, {107, 0, 36}, {102, 0, 45}
|
|
|
3118 |
};
|
|
|
3119 |
|
|
|
3120 |
const rgb_store prism_colormap[1000] = {
|
|
|
3121 |
{255, 0, 0}, {255, 2, 0}, {255, 4, 0}, {255, 6, 0}, {255, 8, 0},
|
|
|
3122 |
{255, 10, 0}, {255, 11, 0}, {255, 13, 0}, {255, 15, 0}, {255, 17, 0},
|
|
|
3123 |
{255, 19, 0}, {255, 21, 0}, {255, 23, 0}, {255, 25, 0}, {255, 27, 0},
|
|
|
3124 |
{255, 29, 0}, {255, 31, 0}, {255, 33, 0}, {255, 34, 0}, {255, 36, 0},
|
|
|
3125 |
{255, 38, 0}, {255, 40, 0}, {255, 42, 0}, {255, 44, 0}, {255, 46, 0},
|
|
|
3126 |
{255, 48, 0}, {255, 50, 0}, {255, 52, 0}, {255, 54, 0}, {255, 56, 0},
|
|
|
3127 |
{255, 57, 0}, {255, 59, 0}, {255, 61, 0}, {255, 63, 0}, {255, 65, 0},
|
|
|
3128 |
{255, 67, 0}, {255, 69, 0}, {255, 71, 0}, {255, 73, 0}, {255, 75, 0},
|
|
|
3129 |
{255, 77, 0}, {255, 78, 0}, {255, 80, 0}, {255, 82, 0}, {255, 84, 0},
|
|
|
3130 |
{255, 86, 0}, {255, 88, 0}, {255, 90, 0}, {255, 92, 0}, {255, 94, 0},
|
|
|
3131 |
{255, 96, 0}, {255, 98, 0}, {255, 100, 0}, {255, 101, 0}, {255, 103, 0},
|
|
|
3132 |
{255, 105, 0}, {255, 107, 0}, {255, 109, 0}, {255, 111, 0}, {255, 113, 0},
|
|
|
3133 |
{255, 115, 0}, {255, 117, 0}, {255, 119, 0}, {255, 121, 0}, {255, 123, 0},
|
|
|
3134 |
{255, 124, 0}, {255, 126, 0}, {255, 128, 0}, {255, 130, 0}, {255, 132, 0},
|
|
|
3135 |
{255, 134, 0}, {255, 136, 0}, {255, 138, 0}, {255, 140, 0}, {255, 142, 0},
|
|
|
3136 |
{255, 144, 0}, {255, 145, 0}, {255, 147, 0}, {255, 149, 0}, {255, 151, 0},
|
|
|
3137 |
{255, 153, 0}, {255, 155, 0}, {255, 157, 0}, {255, 159, 0}, {255, 161, 0},
|
|
|
3138 |
{255, 163, 0}, {255, 165, 0}, {255, 167, 0}, {255, 168, 0}, {255, 170, 0},
|
|
|
3139 |
{255, 172, 0}, {255, 174, 0}, {255, 176, 0}, {255, 178, 0}, {255, 180, 0},
|
|
|
3140 |
{255, 182, 0}, {255, 184, 0}, {255, 186, 0}, {255, 188, 0}, {255, 190, 0},
|
|
|
3141 |
{255, 191, 0}, {255, 193, 0}, {255, 195, 0}, {255, 197, 0}, {255, 199, 0},
|
|
|
3142 |
{255, 201, 0}, {255, 203, 0}, {255, 205, 0}, {255, 207, 0}, {255, 209, 0},
|
|
|
3143 |
{255, 211, 0}, {255, 212, 0}, {255, 214, 0}, {255, 216, 0}, {255, 218, 0},
|
|
|
3144 |
{255, 220, 0}, {255, 222, 0}, {255, 224, 0}, {255, 226, 0}, {255, 228, 0},
|
|
|
3145 |
{255, 230, 0}, {255, 232, 0}, {255, 234, 0}, {255, 235, 0}, {255, 237, 0},
|
|
|
3146 |
{255, 239, 0}, {255, 241, 0}, {255, 243, 0}, {255, 245, 0}, {255, 247, 0},
|
|
|
3147 |
{255, 249, 0}, {255, 251, 0}, {255, 253, 0}, {255, 255, 0}, {252, 255, 0},
|
|
|
3148 |
{248, 255, 0}, {244, 255, 0}, {240, 255, 0}, {237, 255, 0}, {233, 255, 0},
|
|
|
3149 |
{229, 255, 0}, {225, 255, 0}, {221, 255, 0}, {217, 255, 0}, {214, 255, 0},
|
|
|
3150 |
{210, 255, 0}, {206, 255, 0}, {202, 255, 0}, {198, 255, 0}, {195, 255, 0},
|
|
|
3151 |
{191, 255, 0}, {187, 255, 0}, {183, 255, 0}, {179, 255, 0}, {175, 255, 0},
|
|
|
3152 |
{172, 255, 0}, {168, 255, 0}, {164, 255, 0}, {160, 255, 0}, {156, 255, 0},
|
|
|
3153 |
{152, 255, 0}, {149, 255, 0}, {145, 255, 0}, {141, 255, 0}, {137, 255, 0},
|
|
|
3154 |
{133, 255, 0}, {129, 255, 0}, {126, 255, 0}, {122, 255, 0}, {118, 255, 0},
|
|
|
3155 |
{114, 255, 0}, {110, 255, 0}, {106, 255, 0}, {103, 255, 0}, { 99, 255, 0},
|
|
|
3156 |
{ 95, 255, 0}, { 91, 255, 0}, { 87, 255, 0}, { 83, 255, 0}, { 80, 255, 0},
|
|
|
3157 |
{ 76, 255, 0}, { 72, 255, 0}, { 68, 255, 0}, { 64, 255, 0}, { 60, 255, 0},
|
|
|
3158 |
{ 57, 255, 0}, { 53, 255, 0}, { 49, 255, 0}, { 45, 255, 0}, { 41, 255, 0},
|
|
|
3159 |
{ 38, 255, 0}, { 34, 255, 0}, { 30, 255, 0}, { 26, 255, 0}, { 22, 255, 0},
|
|
|
3160 |
{ 18, 255, 0}, { 15, 255, 0}, { 11, 255, 0}, { 7, 255, 0}, { 3, 255, 0},
|
|
|
3161 |
{ 0, 254, 1}, { 0, 250, 5}, { 0, 247, 8}, { 0, 243, 12}, { 0, 239, 16},
|
|
|
3162 |
{ 0, 235, 20}, { 0, 231, 24}, { 0, 227, 28}, { 0, 224, 31}, { 0, 220, 35},
|
|
|
3163 |
{ 0, 216, 39}, { 0, 212, 43}, { 0, 208, 47}, { 0, 204, 51}, { 0, 201, 54},
|
|
|
3164 |
{ 0, 197, 58}, { 0, 193, 62}, { 0, 189, 66}, { 0, 185, 70}, { 0, 181, 74},
|
|
|
3165 |
{ 0, 178, 77}, { 0, 174, 81}, { 0, 170, 85}, { 0, 166, 89}, { 0, 162, 93},
|
|
|
3166 |
{ 0, 159, 96}, { 0, 155, 100}, { 0, 151, 104}, { 0, 147, 108}, { 0, 143, 112},
|
|
|
3167 |
{ 0, 139, 116}, { 0, 136, 119}, { 0, 132, 123}, { 0, 128, 127}, { 0, 124, 131},
|
|
|
3168 |
{ 0, 120, 135}, { 0, 116, 139}, { 0, 113, 142}, { 0, 109, 146}, { 0, 105, 150},
|
|
|
3169 |
{ 0, 101, 154}, { 0, 97, 158}, { 0, 93, 162}, { 0, 90, 165}, { 0, 86, 169},
|
|
|
3170 |
{ 0, 82, 173}, { 0, 78, 177}, { 0, 74, 181}, { 0, 70, 185}, { 0, 67, 188},
|
|
|
3171 |
{ 0, 63, 192}, { 0, 59, 196}, { 0, 55, 200}, { 0, 51, 204}, { 0, 47, 208},
|
|
|
3172 |
{ 0, 44, 211}, { 0, 40, 215}, { 0, 36, 219}, { 0, 32, 223}, { 0, 28, 227},
|
|
|
3173 |
{ 0, 25, 230}, { 0, 21, 234}, { 0, 17, 238}, { 0, 13, 242}, { 0, 9, 246},
|
|
|
3174 |
{ 0, 5, 250}, { 0, 2, 253}, { 2, 0, 255}, { 4, 0, 255}, { 7, 0, 255},
|
|
|
3175 |
{ 9, 0, 255}, { 12, 0, 255}, { 14, 0, 255}, { 17, 0, 255}, { 19, 0, 255},
|
|
|
3176 |
{ 22, 0, 255}, { 25, 0, 255}, { 27, 0, 255}, { 30, 0, 255}, { 32, 0, 255},
|
|
|
3177 |
{ 35, 0, 255}, { 37, 0, 255}, { 40, 0, 255}, { 42, 0, 255}, { 45, 0, 255},
|
|
|
3178 |
{ 47, 0, 255}, { 50, 0, 255}, { 53, 0, 255}, { 55, 0, 255}, { 58, 0, 255},
|
|
|
3179 |
{ 60, 0, 255}, { 63, 0, 255}, { 65, 0, 255}, { 68, 0, 255}, { 70, 0, 255},
|
|
|
3180 |
{ 73, 0, 255}, { 76, 0, 255}, { 78, 0, 255}, { 81, 0, 255}, { 83, 0, 255},
|
|
|
3181 |
{ 86, 0, 255}, { 88, 0, 255}, { 91, 0, 255}, { 93, 0, 255}, { 96, 0, 255},
|
|
|
3182 |
{ 99, 0, 255}, {101, 0, 255}, {104, 0, 255}, {106, 0, 255}, {109, 0, 255},
|
|
|
3183 |
{111, 0, 255}, {114, 0, 255}, {116, 0, 255}, {119, 0, 255}, {122, 0, 255},
|
|
|
3184 |
{124, 0, 255}, {127, 0, 255}, {129, 0, 255}, {132, 0, 255}, {134, 0, 255},
|
|
|
3185 |
{137, 0, 255}, {139, 0, 255}, {142, 0, 255}, {144, 0, 255}, {147, 0, 255},
|
|
|
3186 |
{150, 0, 255}, {152, 0, 255}, {155, 0, 255}, {157, 0, 255}, {160, 0, 255},
|
|
|
3187 |
{162, 0, 255}, {165, 0, 255}, {167, 0, 255}, {170, 0, 255}, {171, 0, 251},
|
|
|
3188 |
{173, 0, 247}, {174, 0, 244}, {175, 0, 240}, {176, 0, 236}, {178, 0, 232},
|
|
|
3189 |
{179, 0, 228}, {180, 0, 224}, {181, 0, 221}, {183, 0, 217}, {184, 0, 213},
|
|
|
3190 |
{185, 0, 209}, {187, 0, 205}, {188, 0, 201}, {189, 0, 198}, {190, 0, 194},
|
|
|
3191 |
{192, 0, 190}, {193, 0, 186}, {194, 0, 182}, {196, 0, 178}, {197, 0, 175},
|
|
|
3192 |
{198, 0, 171}, {199, 0, 167}, {201, 0, 163}, {202, 0, 159}, {203, 0, 155},
|
|
|
3193 |
{204, 0, 152}, {206, 0, 148}, {207, 0, 144}, {208, 0, 140}, {210, 0, 136},
|
|
|
3194 |
{211, 0, 132}, {212, 0, 129}, {213, 0, 125}, {215, 0, 121}, {216, 0, 117},
|
|
|
3195 |
{217, 0, 113}, {218, 0, 110}, {220, 0, 106}, {221, 0, 102}, {222, 0, 98},
|
|
|
3196 |
{224, 0, 94}, {225, 0, 90}, {226, 0, 87}, {227, 0, 83}, {229, 0, 79},
|
|
|
3197 |
{230, 0, 75}, {231, 0, 71}, {233, 0, 67}, {234, 0, 64}, {235, 0, 60},
|
|
|
3198 |
{236, 0, 56}, {238, 0, 52}, {239, 0, 48}, {240, 0, 44}, {241, 0, 41},
|
|
|
3199 |
{243, 0, 37}, {244, 0, 33}, {245, 0, 29}, {247, 0, 25}, {248, 0, 21},
|
|
|
3200 |
{249, 0, 18}, {250, 0, 14}, {252, 0, 10}, {253, 0, 6}, {254, 0, 2},
|
|
|
3201 |
{255, 1, 0}, {255, 3, 0}, {255, 5, 0}, {255, 7, 0}, {255, 8, 0},
|
|
|
3202 |
{255, 10, 0}, {255, 12, 0}, {255, 14, 0}, {255, 16, 0}, {255, 18, 0},
|
|
|
3203 |
{255, 20, 0}, {255, 22, 0}, {255, 24, 0}, {255, 26, 0}, {255, 28, 0},
|
|
|
3204 |
{255, 29, 0}, {255, 31, 0}, {255, 33, 0}, {255, 35, 0}, {255, 37, 0},
|
|
|
3205 |
{255, 39, 0}, {255, 41, 0}, {255, 43, 0}, {255, 45, 0}, {255, 47, 0},
|
|
|
3206 |
{255, 49, 0}, {255, 51, 0}, {255, 52, 0}, {255, 54, 0}, {255, 56, 0},
|
|
|
3207 |
{255, 58, 0}, {255, 60, 0}, {255, 62, 0}, {255, 64, 0}, {255, 66, 0},
|
|
|
3208 |
{255, 68, 0}, {255, 70, 0}, {255, 72, 0}, {255, 74, 0}, {255, 75, 0},
|
|
|
3209 |
{255, 77, 0}, {255, 79, 0}, {255, 81, 0}, {255, 83, 0}, {255, 85, 0},
|
|
|
3210 |
{255, 87, 0}, {255, 89, 0}, {255, 91, 0}, {255, 93, 0}, {255, 95, 0},
|
|
|
3211 |
{255, 96, 0}, {255, 98, 0}, {255, 100, 0}, {255, 102, 0}, {255, 104, 0},
|
|
|
3212 |
{255, 106, 0}, {255, 108, 0}, {255, 110, 0}, {255, 112, 0}, {255, 114, 0},
|
|
|
3213 |
{255, 116, 0}, {255, 118, 0}, {255, 119, 0}, {255, 121, 0}, {255, 123, 0},
|
|
|
3214 |
{255, 125, 0}, {255, 127, 0}, {255, 129, 0}, {255, 131, 0}, {255, 133, 0},
|
|
|
3215 |
{255, 135, 0}, {255, 137, 0}, {255, 139, 0}, {255, 141, 0}, {255, 142, 0},
|
|
|
3216 |
{255, 144, 0}, {255, 146, 0}, {255, 148, 0}, {255, 150, 0}, {255, 152, 0},
|
|
|
3217 |
{255, 154, 0}, {255, 156, 0}, {255, 158, 0}, {255, 160, 0}, {255, 162, 0},
|
|
|
3218 |
{255, 163, 0}, {255, 165, 0}, {255, 167, 0}, {255, 169, 0}, {255, 171, 0},
|
|
|
3219 |
{255, 173, 0}, {255, 175, 0}, {255, 177, 0}, {255, 179, 0}, {255, 181, 0},
|
|
|
3220 |
{255, 183, 0}, {255, 185, 0}, {255, 186, 0}, {255, 188, 0}, {255, 190, 0},
|
|
|
3221 |
{255, 192, 0}, {255, 194, 0}, {255, 196, 0}, {255, 198, 0}, {255, 200, 0},
|
|
|
3222 |
{255, 202, 0}, {255, 204, 0}, {255, 206, 0}, {255, 208, 0}, {255, 209, 0},
|
|
|
3223 |
{255, 211, 0}, {255, 213, 0}, {255, 215, 0}, {255, 217, 0}, {255, 219, 0},
|
|
|
3224 |
{255, 221, 0}, {255, 223, 0}, {255, 225, 0}, {255, 227, 0}, {255, 229, 0},
|
|
|
3225 |
{255, 230, 0}, {255, 232, 0}, {255, 234, 0}, {255, 236, 0}, {255, 238, 0},
|
|
|
3226 |
{255, 240, 0}, {255, 242, 0}, {255, 244, 0}, {255, 246, 0}, {255, 248, 0},
|
|
|
3227 |
{255, 250, 0}, {255, 252, 0}, {255, 253, 0}, {254, 255, 0}, {250, 255, 0},
|
|
|
3228 |
{247, 255, 0}, {243, 255, 0}, {239, 255, 0}, {235, 255, 0}, {231, 255, 0},
|
|
|
3229 |
{227, 255, 0}, {224, 255, 0}, {220, 255, 0}, {216, 255, 0}, {212, 255, 0},
|
|
|
3230 |
{208, 255, 0}, {204, 255, 0}, {201, 255, 0}, {197, 255, 0}, {193, 255, 0},
|
|
|
3231 |
{189, 255, 0}, {185, 255, 0}, {181, 255, 0}, {178, 255, 0}, {174, 255, 0},
|
|
|
3232 |
{170, 255, 0}, {166, 255, 0}, {162, 255, 0}, {159, 255, 0}, {155, 255, 0},
|
|
|
3233 |
{151, 255, 0}, {147, 255, 0}, {143, 255, 0}, {139, 255, 0}, {136, 255, 0},
|
|
|
3234 |
{132, 255, 0}, {128, 255, 0}, {124, 255, 0}, {120, 255, 0}, {116, 255, 0},
|
|
|
3235 |
{113, 255, 0}, {109, 255, 0}, {105, 255, 0}, {101, 255, 0}, { 97, 255, 0},
|
|
|
3236 |
{ 93, 255, 0}, { 90, 255, 0}, { 86, 255, 0}, { 82, 255, 0}, { 78, 255, 0},
|
|
|
3237 |
{ 74, 255, 0}, { 70, 255, 0}, { 67, 255, 0}, { 63, 255, 0}, { 59, 255, 0},
|
|
|
3238 |
{ 55, 255, 0}, { 51, 255, 0}, { 47, 255, 0}, { 44, 255, 0}, { 40, 255, 0},
|
|
|
3239 |
{ 36, 255, 0}, { 32, 255, 0}, { 28, 255, 0}, { 25, 255, 0}, { 21, 255, 0},
|
|
|
3240 |
{ 17, 255, 0}, { 13, 255, 0}, { 9, 255, 0}, { 5, 255, 0}, { 2, 255, 0},
|
|
|
3241 |
{ 0, 253, 2}, { 0, 249, 6}, { 0, 245, 10}, { 0, 241, 14}, { 0, 237, 18},
|
|
|
3242 |
{ 0, 234, 21}, { 0, 230, 25}, { 0, 226, 29}, { 0, 222, 33}, { 0, 218, 37},
|
|
|
3243 |
{ 0, 214, 41}, { 0, 211, 44}, { 0, 207, 48}, { 0, 203, 52}, { 0, 199, 56},
|
|
|
3244 |
{ 0, 195, 60}, { 0, 191, 64}, { 0, 188, 67}, { 0, 184, 71}, { 0, 180, 75},
|
|
|
3245 |
{ 0, 176, 79}, { 0, 172, 83}, { 0, 168, 87}, { 0, 165, 90}, { 0, 161, 94},
|
|
|
3246 |
{ 0, 157, 98}, { 0, 153, 102}, { 0, 149, 106}, { 0, 145, 110}, { 0, 142, 113},
|
|
|
3247 |
{ 0, 138, 117}, { 0, 134, 121}, { 0, 130, 125}, { 0, 126, 129}, { 0, 123, 132},
|
|
|
3248 |
{ 0, 119, 136}, { 0, 115, 140}, { 0, 111, 144}, { 0, 107, 148}, { 0, 103, 152},
|
|
|
3249 |
{ 0, 100, 155}, { 0, 96, 159}, { 0, 92, 163}, { 0, 88, 167}, { 0, 84, 171},
|
|
|
3250 |
{ 0, 80, 175}, { 0, 77, 178}, { 0, 73, 182}, { 0, 69, 186}, { 0, 65, 190},
|
|
|
3251 |
{ 0, 61, 194}, { 0, 57, 198}, { 0, 54, 201}, { 0, 50, 205}, { 0, 46, 209},
|
|
|
3252 |
{ 0, 42, 213}, { 0, 38, 217}, { 0, 34, 221}, { 0, 31, 224}, { 0, 27, 228},
|
|
|
3253 |
{ 0, 23, 232}, { 0, 19, 236}, { 0, 15, 240}, { 0, 11, 244}, { 0, 8, 247},
|
|
|
3254 |
{ 0, 4, 251}, { 0, 0, 255}, { 3, 0, 255}, { 5, 0, 255}, { 8, 0, 255},
|
|
|
3255 |
{ 10, 0, 255}, { 13, 0, 255}, { 15, 0, 255}, { 18, 0, 255}, { 20, 0, 255},
|
|
|
3256 |
{ 23, 0, 255}, { 26, 0, 255}, { 28, 0, 255}, { 31, 0, 255}, { 33, 0, 255},
|
|
|
3257 |
{ 36, 0, 255}, { 38, 0, 255}, { 41, 0, 255}, { 43, 0, 255}, { 46, 0, 255},
|
|
|
3258 |
{ 48, 0, 255}, { 51, 0, 255}, { 54, 0, 255}, { 56, 0, 255}, { 59, 0, 255},
|
|
|
3259 |
{ 61, 0, 255}, { 64, 0, 255}, { 66, 0, 255}, { 69, 0, 255}, { 71, 0, 255},
|
|
|
3260 |
{ 74, 0, 255}, { 77, 0, 255}, { 79, 0, 255}, { 82, 0, 255}, { 84, 0, 255},
|
|
|
3261 |
{ 87, 0, 255}, { 89, 0, 255}, { 92, 0, 255}, { 94, 0, 255}, { 97, 0, 255},
|
|
|
3262 |
{100, 0, 255}, {102, 0, 255}, {105, 0, 255}, {107, 0, 255}, {110, 0, 255},
|
|
|
3263 |
{112, 0, 255}, {115, 0, 255}, {117, 0, 255}, {120, 0, 255}, {123, 0, 255},
|
|
|
3264 |
{125, 0, 255}, {128, 0, 255}, {130, 0, 255}, {133, 0, 255}, {135, 0, 255},
|
|
|
3265 |
{138, 0, 255}, {140, 0, 255}, {143, 0, 255}, {145, 0, 255}, {148, 0, 255},
|
|
|
3266 |
{151, 0, 255}, {153, 0, 255}, {156, 0, 255}, {158, 0, 255}, {161, 0, 255},
|
|
|
3267 |
{163, 0, 255}, {166, 0, 255}, {168, 0, 255}, {171, 0, 253}, {172, 0, 250},
|
|
|
3268 |
{173, 0, 246}, {174, 0, 242}, {176, 0, 238}, {177, 0, 234}, {178, 0, 230},
|
|
|
3269 |
{179, 0, 227}, {181, 0, 223}, {182, 0, 219}, {183, 0, 215}, {185, 0, 211},
|
|
|
3270 |
{186, 0, 208}, {187, 0, 204}, {188, 0, 200}, {190, 0, 196}, {191, 0, 192},
|
|
|
3271 |
{192, 0, 188}, {193, 0, 185}, {195, 0, 181}, {196, 0, 177}, {197, 0, 173},
|
|
|
3272 |
{199, 0, 169}, {200, 0, 165}, {201, 0, 162}, {202, 0, 158}, {204, 0, 154},
|
|
|
3273 |
{205, 0, 150}, {206, 0, 146}, {208, 0, 142}, {209, 0, 139}, {210, 0, 135},
|
|
|
3274 |
{211, 0, 131}, {213, 0, 127}, {214, 0, 123}, {215, 0, 119}, {216, 0, 116},
|
|
|
3275 |
{218, 0, 112}, {219, 0, 108}, {220, 0, 104}, {222, 0, 100}, {223, 0, 96},
|
|
|
3276 |
{224, 0, 93}, {225, 0, 89}, {227, 0, 85}, {228, 0, 81}, {229, 0, 77},
|
|
|
3277 |
{230, 0, 74}, {232, 0, 70}, {233, 0, 66}, {234, 0, 62}, {236, 0, 58},
|
|
|
3278 |
{237, 0, 54}, {238, 0, 51}, {239, 0, 47}, {241, 0, 43}, {242, 0, 39},
|
|
|
3279 |
{243, 0, 35}, {245, 0, 31}, {246, 0, 28}, {247, 0, 24}, {248, 0, 20},
|
|
|
3280 |
{250, 0, 16}, {251, 0, 12}, {252, 0, 8}, {253, 0, 5}, {255, 0, 1},
|
|
|
3281 |
{255, 2, 0}, {255, 3, 0}, {255, 5, 0}, {255, 7, 0}, {255, 9, 0},
|
|
|
3282 |
{255, 11, 0}, {255, 13, 0}, {255, 15, 0}, {255, 17, 0}, {255, 19, 0},
|
|
|
3283 |
{255, 21, 0}, {255, 23, 0}, {255, 25, 0}, {255, 26, 0}, {255, 28, 0},
|
|
|
3284 |
{255, 30, 0}, {255, 32, 0}, {255, 34, 0}, {255, 36, 0}, {255, 38, 0},
|
|
|
3285 |
{255, 40, 0}, {255, 42, 0}, {255, 44, 0}, {255, 46, 0}, {255, 47, 0},
|
|
|
3286 |
{255, 49, 0}, {255, 51, 0}, {255, 53, 0}, {255, 55, 0}, {255, 57, 0},
|
|
|
3287 |
{255, 59, 0}, {255, 61, 0}, {255, 63, 0}, {255, 65, 0}, {255, 67, 0},
|
|
|
3288 |
{255, 69, 0}, {255, 70, 0}, {255, 72, 0}, {255, 74, 0}, {255, 76, 0},
|
|
|
3289 |
{255, 78, 0}, {255, 80, 0}, {255, 82, 0}, {255, 84, 0}, {255, 86, 0},
|
|
|
3290 |
{255, 88, 0}, {255, 90, 0}, {255, 92, 0}, {255, 93, 0}, {255, 95, 0},
|
|
|
3291 |
{255, 97, 0}, {255, 99, 0}, {255, 101, 0}, {255, 103, 0}, {255, 105, 0},
|
|
|
3292 |
{255, 107, 0}, {255, 109, 0}, {255, 111, 0}, {255, 113, 0}, {255, 114, 0},
|
|
|
3293 |
{255, 116, 0}, {255, 118, 0}, {255, 120, 0}, {255, 122, 0}, {255, 124, 0},
|
|
|
3294 |
{255, 126, 0}, {255, 128, 0}, {255, 130, 0}, {255, 132, 0}, {255, 134, 0},
|
|
|
3295 |
{255, 136, 0}, {255, 137, 0}, {255, 139, 0}, {255, 141, 0}, {255, 143, 0},
|
|
|
3296 |
{255, 145, 0}, {255, 147, 0}, {255, 149, 0}, {255, 151, 0}, {255, 153, 0},
|
|
|
3297 |
{255, 155, 0}, {255, 157, 0}, {255, 159, 0}, {255, 160, 0}, {255, 162, 0},
|
|
|
3298 |
{255, 164, 0}, {255, 166, 0}, {255, 168, 0}, {255, 170, 0}, {255, 172, 0},
|
|
|
3299 |
{255, 174, 0}, {255, 176, 0}, {255, 178, 0}, {255, 180, 0}, {255, 181, 0},
|
|
|
3300 |
{255, 183, 0}, {255, 185, 0}, {255, 187, 0}, {255, 189, 0}, {255, 191, 0},
|
|
|
3301 |
{255, 193, 0}, {255, 195, 0}, {255, 197, 0}, {255, 199, 0}, {255, 201, 0},
|
|
|
3302 |
{255, 203, 0}, {255, 204, 0}, {255, 206, 0}, {255, 208, 0}, {255, 210, 0},
|
|
|
3303 |
{255, 212, 0}, {255, 214, 0}, {255, 216, 0}, {255, 218, 0}, {255, 220, 0},
|
|
|
3304 |
{255, 222, 0}, {255, 224, 0}, {255, 226, 0}, {255, 227, 0}, {255, 229, 0},
|
|
|
3305 |
{255, 231, 0}, {255, 233, 0}, {255, 235, 0}, {255, 237, 0}, {255, 239, 0},
|
|
|
3306 |
{255, 241, 0}, {255, 243, 0}, {255, 245, 0}, {255, 247, 0}, {255, 248, 0},
|
|
|
3307 |
{255, 250, 0}, {255, 252, 0}, {255, 254, 0}, {253, 255, 0}, {249, 255, 0},
|
|
|
3308 |
{245, 255, 0}, {241, 255, 0}, {237, 255, 0}, {234, 255, 0}, {230, 255, 0},
|
|
|
3309 |
{226, 255, 0}, {222, 255, 0}, {218, 255, 0}, {214, 255, 0}, {211, 255, 0},
|
|
|
3310 |
{207, 255, 0}, {203, 255, 0}, {199, 255, 0}, {195, 255, 0}, {191, 255, 0},
|
|
|
3311 |
{188, 255, 0}, {184, 255, 0}, {180, 255, 0}, {176, 255, 0}, {172, 255, 0},
|
|
|
3312 |
{168, 255, 0}, {165, 255, 0}, {161, 255, 0}, {157, 255, 0}, {153, 255, 0},
|
|
|
3313 |
{149, 255, 0}, {145, 255, 0}, {142, 255, 0}, {138, 255, 0}, {134, 255, 0},
|
|
|
3314 |
{130, 255, 0}, {126, 255, 0}, {123, 255, 0}, {119, 255, 0}, {115, 255, 0},
|
|
|
3315 |
{111, 255, 0}, {107, 255, 0}, {103, 255, 0}, {100, 255, 0}, { 96, 255, 0},
|
|
|
3316 |
{ 92, 255, 0}, { 88, 255, 0}, { 84, 255, 0}, { 80, 255, 0}, { 77, 255, 0},
|
|
|
3317 |
{ 73, 255, 0}, { 69, 255, 0}, { 65, 255, 0}, { 61, 255, 0}, { 57, 255, 0},
|
|
|
3318 |
{ 54, 255, 0}, { 50, 255, 0}, { 46, 255, 0}, { 42, 255, 0}, { 38, 255, 0},
|
|
|
3319 |
{ 34, 255, 0}, { 31, 255, 0}, { 27, 255, 0}, { 23, 255, 0}, { 19, 255, 0},
|
|
|
3320 |
{ 15, 255, 0}, { 11, 255, 0}, { 8, 255, 0}, { 4, 255, 0}, { 0, 255, 0}
|
|
|
3321 |
};
|
|
|
3322 |
|
|
|
3323 |
const rgb_store vga_colormap[1000] = {
|
|
|
3324 |
{255, 255, 255}, {254, 254, 254}, {253, 253, 253}, {252, 252, 252}, {251, 251, 251},
|
|
|
3325 |
{250, 250, 250}, {249, 249, 249}, {248, 248, 248}, {247, 247, 247}, {246, 246, 246},
|
|
|
3326 |
{245, 245, 245}, {244, 244, 244}, {244, 244, 244}, {243, 243, 243}, {242, 242, 242},
|
|
|
3327 |
{241, 241, 241}, {240, 240, 240}, {239, 239, 239}, {238, 238, 238}, {237, 237, 237},
|
|
|
3328 |
{236, 236, 236}, {235, 235, 235}, {234, 234, 234}, {233, 233, 233}, {232, 232, 232},
|
|
|
3329 |
{231, 231, 231}, {230, 230, 230}, {229, 229, 229}, {228, 228, 228}, {227, 227, 227},
|
|
|
3330 |
{226, 226, 226}, {225, 225, 225}, {224, 224, 224}, {223, 223, 223}, {222, 222, 222},
|
|
|
3331 |
{221, 221, 221}, {221, 221, 221}, {220, 220, 220}, {219, 219, 219}, {218, 218, 218},
|
|
|
3332 |
{217, 217, 217}, {216, 216, 216}, {215, 215, 215}, {214, 214, 214}, {213, 213, 213},
|
|
|
3333 |
{212, 212, 212}, {211, 211, 211}, {210, 210, 210}, {209, 209, 209}, {208, 208, 208},
|
|
|
3334 |
{207, 207, 207}, {206, 206, 206}, {205, 205, 205}, {204, 204, 204}, {203, 203, 203},
|
|
|
3335 |
{202, 202, 202}, {201, 201, 201}, {200, 200, 200}, {199, 199, 199}, {199, 199, 199},
|
|
|
3336 |
{198, 198, 198}, {197, 197, 197}, {196, 196, 196}, {195, 195, 195}, {194, 194, 194},
|
|
|
3337 |
{193, 193, 193}, {192, 192, 192}, {192, 190, 190}, {193, 187, 187}, {194, 184, 184},
|
|
|
3338 |
{195, 181, 181}, {195, 179, 179}, {196, 176, 176}, {197, 173, 173}, {198, 170, 170},
|
|
|
3339 |
{199, 167, 167}, {200, 164, 164}, {201, 161, 161}, {202, 159, 159}, {203, 156, 156},
|
|
|
3340 |
{204, 153, 153}, {205, 150, 150}, {206, 147, 147}, {207, 144, 144}, {208, 141, 141},
|
|
|
3341 |
{209, 138, 138}, {210, 136, 136}, {211, 133, 133}, {212, 130, 130}, {213, 127, 127},
|
|
|
3342 |
{214, 124, 124}, {215, 121, 121}, {216, 118, 118}, {217, 115, 115}, {217, 113, 113},
|
|
|
3343 |
{218, 110, 110}, {219, 107, 107}, {220, 104, 104}, {221, 101, 101}, {222, 98, 98},
|
|
|
3344 |
{223, 95, 95}, {224, 92, 92}, {225, 90, 90}, {226, 87, 87}, {227, 84, 84},
|
|
|
3345 |
{228, 81, 81}, {229, 78, 78}, {230, 75, 75}, {231, 72, 72}, {232, 69, 69},
|
|
|
3346 |
{233, 67, 67}, {234, 64, 64}, {235, 61, 61}, {236, 58, 58}, {237, 55, 55},
|
|
|
3347 |
{238, 52, 52}, {239, 49, 49}, {239, 47, 47}, {240, 44, 44}, {241, 41, 41},
|
|
|
3348 |
{242, 38, 38}, {243, 35, 35}, {244, 32, 32}, {245, 29, 29}, {246, 26, 26},
|
|
|
3349 |
{247, 24, 24}, {248, 21, 21}, {249, 18, 18}, {250, 15, 15}, {251, 12, 12},
|
|
|
3350 |
{252, 9, 9}, {253, 6, 6}, {254, 3, 3}, {255, 1, 1}, {255, 3, 0},
|
|
|
3351 |
{255, 7, 0}, {255, 11, 0}, {255, 15, 0}, {255, 18, 0}, {255, 22, 0},
|
|
|
3352 |
{255, 26, 0}, {255, 30, 0}, {255, 34, 0}, {255, 38, 0}, {255, 41, 0},
|
|
|
3353 |
{255, 45, 0}, {255, 49, 0}, {255, 53, 0}, {255, 57, 0}, {255, 60, 0},
|
|
|
3354 |
{255, 64, 0}, {255, 68, 0}, {255, 72, 0}, {255, 76, 0}, {255, 80, 0},
|
|
|
3355 |
{255, 83, 0}, {255, 87, 0}, {255, 91, 0}, {255, 95, 0}, {255, 99, 0},
|
|
|
3356 |
{255, 103, 0}, {255, 106, 0}, {255, 110, 0}, {255, 114, 0}, {255, 118, 0},
|
|
|
3357 |
{255, 122, 0}, {255, 126, 0}, {255, 129, 0}, {255, 133, 0}, {255, 137, 0},
|
|
|
3358 |
{255, 141, 0}, {255, 145, 0}, {255, 149, 0}, {255, 152, 0}, {255, 156, 0},
|
|
|
3359 |
{255, 160, 0}, {255, 164, 0}, {255, 168, 0}, {255, 172, 0}, {255, 175, 0},
|
|
|
3360 |
{255, 179, 0}, {255, 183, 0}, {255, 187, 0}, {255, 191, 0}, {255, 195, 0},
|
|
|
3361 |
{255, 198, 0}, {255, 202, 0}, {255, 206, 0}, {255, 210, 0}, {255, 214, 0},
|
|
|
3362 |
{255, 217, 0}, {255, 221, 0}, {255, 225, 0}, {255, 229, 0}, {255, 233, 0},
|
|
|
3363 |
{255, 237, 0}, {255, 240, 0}, {255, 244, 0}, {255, 248, 0}, {255, 252, 0},
|
|
|
3364 |
{254, 255, 0}, {250, 255, 0}, {247, 255, 0}, {243, 255, 0}, {239, 255, 0},
|
|
|
3365 |
{235, 255, 0}, {231, 255, 0}, {227, 255, 0}, {224, 255, 0}, {220, 255, 0},
|
|
|
3366 |
{216, 255, 0}, {212, 255, 0}, {208, 255, 0}, {204, 255, 0}, {201, 255, 0},
|
|
|
3367 |
{197, 255, 0}, {193, 255, 0}, {189, 255, 0}, {185, 255, 0}, {181, 255, 0},
|
|
|
3368 |
{178, 255, 0}, {174, 255, 0}, {170, 255, 0}, {166, 255, 0}, {162, 255, 0},
|
|
|
3369 |
{159, 255, 0}, {155, 255, 0}, {151, 255, 0}, {147, 255, 0}, {143, 255, 0},
|
|
|
3370 |
{139, 255, 0}, {136, 255, 0}, {132, 255, 0}, {128, 255, 0}, {124, 255, 0},
|
|
|
3371 |
{120, 255, 0}, {116, 255, 0}, {113, 255, 0}, {109, 255, 0}, {105, 255, 0},
|
|
|
3372 |
{101, 255, 0}, { 97, 255, 0}, { 93, 255, 0}, { 90, 255, 0}, { 86, 255, 0},
|
|
|
3373 |
{ 82, 255, 0}, { 78, 255, 0}, { 74, 255, 0}, { 70, 255, 0}, { 67, 255, 0},
|
|
|
3374 |
{ 63, 255, 0}, { 59, 255, 0}, { 55, 255, 0}, { 51, 255, 0}, { 47, 255, 0},
|
|
|
3375 |
{ 44, 255, 0}, { 40, 255, 0}, { 36, 255, 0}, { 32, 255, 0}, { 28, 255, 0},
|
|
|
3376 |
{ 25, 255, 0}, { 21, 255, 0}, { 17, 255, 0}, { 13, 255, 0}, { 9, 255, 0},
|
|
|
3377 |
{ 5, 255, 0}, { 2, 255, 0}, { 0, 255, 2}, { 0, 255, 6}, { 0, 255, 10},
|
|
|
3378 |
{ 0, 255, 14}, { 0, 255, 18}, { 0, 255, 21}, { 0, 255, 25}, { 0, 255, 29},
|
|
|
3379 |
{ 0, 255, 33}, { 0, 255, 37}, { 0, 255, 41}, { 0, 255, 44}, { 0, 255, 48},
|
|
|
3380 |
{ 0, 255, 52}, { 0, 255, 56}, { 0, 255, 60}, { 0, 255, 64}, { 0, 255, 67},
|
|
|
3381 |
{ 0, 255, 71}, { 0, 255, 75}, { 0, 255, 79}, { 0, 255, 83}, { 0, 255, 87},
|
|
|
3382 |
{ 0, 255, 90}, { 0, 255, 94}, { 0, 255, 98}, { 0, 255, 102}, { 0, 255, 106},
|
|
|
3383 |
{ 0, 255, 110}, { 0, 255, 113}, { 0, 255, 117}, { 0, 255, 121}, { 0, 255, 125},
|
|
|
3384 |
{ 0, 255, 129}, { 0, 255, 132}, { 0, 255, 136}, { 0, 255, 140}, { 0, 255, 144},
|
|
|
3385 |
{ 0, 255, 148}, { 0, 255, 152}, { 0, 255, 155}, { 0, 255, 159}, { 0, 255, 163},
|
|
|
3386 |
{ 0, 255, 167}, { 0, 255, 171}, { 0, 255, 175}, { 0, 255, 178}, { 0, 255, 182},
|
|
|
3387 |
{ 0, 255, 186}, { 0, 255, 190}, { 0, 255, 194}, { 0, 255, 198}, { 0, 255, 201},
|
|
|
3388 |
{ 0, 255, 205}, { 0, 255, 209}, { 0, 255, 213}, { 0, 255, 217}, { 0, 255, 221},
|
|
|
3389 |
{ 0, 255, 224}, { 0, 255, 228}, { 0, 255, 232}, { 0, 255, 236}, { 0, 255, 240},
|
|
|
3390 |
{ 0, 255, 244}, { 0, 255, 247}, { 0, 255, 251}, { 0, 255, 255}, { 0, 251, 255},
|
|
|
3391 |
{ 0, 247, 255}, { 0, 244, 255}, { 0, 240, 255}, { 0, 236, 255}, { 0, 232, 255},
|
|
|
3392 |
{ 0, 228, 255}, { 0, 224, 255}, { 0, 221, 255}, { 0, 217, 255}, { 0, 213, 255},
|
|
|
3393 |
{ 0, 209, 255}, { 0, 205, 255}, { 0, 201, 255}, { 0, 198, 255}, { 0, 194, 255},
|
|
|
3394 |
{ 0, 190, 255}, { 0, 186, 255}, { 0, 182, 255}, { 0, 178, 255}, { 0, 175, 255},
|
|
|
3395 |
{ 0, 171, 255}, { 0, 167, 255}, { 0, 163, 255}, { 0, 159, 255}, { 0, 155, 255},
|
|
|
3396 |
{ 0, 152, 255}, { 0, 148, 255}, { 0, 144, 255}, { 0, 140, 255}, { 0, 136, 255},
|
|
|
3397 |
{ 0, 132, 255}, { 0, 129, 255}, { 0, 125, 255}, { 0, 121, 255}, { 0, 117, 255},
|
|
|
3398 |
{ 0, 113, 255}, { 0, 110, 255}, { 0, 106, 255}, { 0, 102, 255}, { 0, 98, 255},
|
|
|
3399 |
{ 0, 94, 255}, { 0, 90, 255}, { 0, 87, 255}, { 0, 83, 255}, { 0, 79, 255},
|
|
|
3400 |
{ 0, 75, 255}, { 0, 71, 255}, { 0, 67, 255}, { 0, 64, 255}, { 0, 60, 255},
|
|
|
3401 |
{ 0, 56, 255}, { 0, 52, 255}, { 0, 48, 255}, { 0, 44, 255}, { 0, 41, 255},
|
|
|
3402 |
{ 0, 37, 255}, { 0, 33, 255}, { 0, 29, 255}, { 0, 25, 255}, { 0, 21, 255},
|
|
|
3403 |
{ 0, 18, 255}, { 0, 14, 255}, { 0, 10, 255}, { 0, 6, 255}, { 0, 2, 255},
|
|
|
3404 |
{ 2, 0, 255}, { 5, 0, 255}, { 9, 0, 255}, { 13, 0, 255}, { 17, 0, 255},
|
|
|
3405 |
{ 21, 0, 255}, { 25, 0, 255}, { 28, 0, 255}, { 32, 0, 255}, { 36, 0, 255},
|
|
|
3406 |
{ 40, 0, 255}, { 44, 0, 255}, { 47, 0, 255}, { 51, 0, 255}, { 55, 0, 255},
|
|
|
3407 |
{ 59, 0, 255}, { 63, 0, 255}, { 67, 0, 255}, { 70, 0, 255}, { 74, 0, 255},
|
|
|
3408 |
{ 78, 0, 255}, { 82, 0, 255}, { 86, 0, 255}, { 90, 0, 255}, { 93, 0, 255},
|
|
|
3409 |
{ 97, 0, 255}, {101, 0, 255}, {105, 0, 255}, {109, 0, 255}, {113, 0, 255},
|
|
|
3410 |
{116, 0, 255}, {120, 0, 255}, {124, 0, 255}, {128, 0, 255}, {132, 0, 255},
|
|
|
3411 |
{136, 0, 255}, {139, 0, 255}, {143, 0, 255}, {147, 0, 255}, {151, 0, 255},
|
|
|
3412 |
{155, 0, 255}, {159, 0, 255}, {162, 0, 255}, {166, 0, 255}, {170, 0, 255},
|
|
|
3413 |
{174, 0, 255}, {178, 0, 255}, {181, 0, 255}, {185, 0, 255}, {189, 0, 255},
|
|
|
3414 |
{193, 0, 255}, {197, 0, 255}, {201, 0, 255}, {204, 0, 255}, {208, 0, 255},
|
|
|
3415 |
{212, 0, 255}, {216, 0, 255}, {220, 0, 255}, {224, 0, 255}, {227, 0, 255},
|
|
|
3416 |
{231, 0, 255}, {235, 0, 255}, {239, 0, 255}, {243, 0, 255}, {247, 0, 255},
|
|
|
3417 |
{250, 0, 255}, {254, 0, 255}, {252, 0, 252}, {248, 0, 248}, {244, 0, 244},
|
|
|
3418 |
{240, 0, 240}, {237, 0, 237}, {233, 0, 233}, {229, 0, 229}, {225, 0, 225},
|
|
|
3419 |
{221, 0, 221}, {217, 0, 217}, {214, 0, 214}, {210, 0, 210}, {206, 0, 206},
|
|
|
3420 |
{202, 0, 202}, {198, 0, 198}, {195, 0, 195}, {191, 0, 191}, {187, 0, 187},
|
|
|
3421 |
{183, 0, 183}, {179, 0, 179}, {175, 0, 175}, {172, 0, 172}, {168, 0, 168},
|
|
|
3422 |
{164, 0, 164}, {160, 0, 160}, {156, 0, 156}, {152, 0, 152}, {149, 0, 149},
|
|
|
3423 |
{145, 0, 145}, {141, 0, 141}, {137, 0, 137}, {133, 0, 133}, {129, 0, 129},
|
|
|
3424 |
{126, 0, 126}, {122, 0, 122}, {118, 0, 118}, {114, 0, 114}, {110, 0, 110},
|
|
|
3425 |
{106, 0, 106}, {103, 0, 103}, { 99, 0, 99}, { 95, 0, 95}, { 91, 0, 91},
|
|
|
3426 |
{ 87, 0, 87}, { 83, 0, 83}, { 80, 0, 80}, { 76, 0, 76}, { 72, 0, 72},
|
|
|
3427 |
{ 68, 0, 68}, { 64, 0, 64}, { 60, 0, 60}, { 57, 0, 57}, { 53, 0, 53},
|
|
|
3428 |
{ 49, 0, 49}, { 45, 0, 45}, { 41, 0, 41}, { 38, 0, 38}, { 34, 0, 34},
|
|
|
3429 |
{ 30, 0, 30}, { 26, 0, 26}, { 22, 0, 22}, { 18, 0, 18}, { 15, 0, 15},
|
|
|
3430 |
{ 11, 0, 11}, { 7, 0, 7}, { 3, 0, 3}, { 0, 0, 0}, { 2, 2, 2},
|
|
|
3431 |
{ 4, 4, 4}, { 6, 6, 6}, { 8, 8, 8}, { 10, 10, 10}, { 12, 12, 12},
|
|
|
3432 |
{ 14, 14, 14}, { 16, 16, 16}, { 18, 18, 18}, { 20, 20, 20}, { 21, 21, 21},
|
|
|
3433 |
{ 23, 23, 23}, { 25, 25, 25}, { 27, 27, 27}, { 29, 29, 29}, { 31, 31, 31},
|
|
|
3434 |
{ 33, 33, 33}, { 35, 35, 35}, { 37, 37, 37}, { 39, 39, 39}, { 41, 41, 41},
|
|
|
3435 |
{ 43, 43, 43}, { 44, 44, 44}, { 46, 46, 46}, { 48, 48, 48}, { 50, 50, 50},
|
|
|
3436 |
{ 52, 52, 52}, { 54, 54, 54}, { 56, 56, 56}, { 58, 58, 58}, { 60, 60, 60},
|
|
|
3437 |
{ 62, 62, 62}, { 64, 64, 64}, { 65, 65, 65}, { 67, 67, 67}, { 69, 69, 69},
|
|
|
3438 |
{ 71, 71, 71}, { 73, 73, 73}, { 75, 75, 75}, { 77, 77, 77}, { 79, 79, 79},
|
|
|
3439 |
{ 81, 81, 81}, { 83, 83, 83}, { 85, 85, 85}, { 87, 87, 87}, { 88, 88, 88},
|
|
|
3440 |
{ 90, 90, 90}, { 92, 92, 92}, { 94, 94, 94}, { 96, 96, 96}, { 98, 98, 98},
|
|
|
3441 |
{100, 100, 100}, {102, 102, 102}, {104, 104, 104}, {106, 106, 106}, {108, 108, 108},
|
|
|
3442 |
{110, 110, 110}, {111, 111, 111}, {113, 113, 113}, {115, 115, 115}, {117, 117, 117},
|
|
|
3443 |
{119, 119, 119}, {121, 121, 121}, {123, 123, 123}, {125, 125, 125}, {127, 127, 127},
|
|
|
3444 |
{128, 126, 126}, {128, 124, 124}, {128, 123, 123}, {128, 121, 121}, {128, 119, 119},
|
|
|
3445 |
{128, 117, 117}, {128, 115, 115}, {128, 113, 113}, {128, 111, 111}, {128, 109, 109},
|
|
|
3446 |
{128, 107, 107}, {128, 105, 105}, {128, 103, 103}, {128, 101, 101}, {128, 100, 100},
|
|
|
3447 |
{128, 98, 98}, {128, 96, 96}, {128, 94, 94}, {128, 92, 92}, {128, 90, 90},
|
|
|
3448 |
{128, 88, 88}, {128, 86, 86}, {128, 84, 84}, {128, 82, 82}, {128, 80, 80},
|
|
|
3449 |
{128, 78, 78}, {128, 77, 77}, {128, 75, 75}, {128, 73, 73}, {128, 71, 71},
|
|
|
3450 |
{128, 69, 69}, {128, 67, 67}, {128, 65, 65}, {128, 63, 63}, {128, 61, 61},
|
|
|
3451 |
{128, 59, 59}, {128, 57, 57}, {128, 56, 56}, {128, 54, 54}, {128, 52, 52},
|
|
|
3452 |
{128, 50, 50}, {128, 48, 48}, {128, 46, 46}, {128, 44, 44}, {128, 42, 42},
|
|
|
3453 |
{128, 40, 40}, {128, 38, 38}, {128, 36, 36}, {128, 34, 34}, {128, 33, 33},
|
|
|
3454 |
{128, 31, 31}, {128, 29, 29}, {128, 27, 27}, {128, 25, 25}, {128, 23, 23},
|
|
|
3455 |
{128, 21, 21}, {128, 19, 19}, {128, 17, 17}, {128, 15, 15}, {128, 13, 13},
|
|
|
3456 |
{128, 11, 11}, {128, 10, 10}, {128, 8, 8}, {128, 6, 6}, {128, 4, 4},
|
|
|
3457 |
{128, 2, 2}, {128, 0, 0}, {128, 2, 0}, {128, 4, 0}, {128, 6, 0},
|
|
|
3458 |
{128, 8, 0}, {128, 10, 0}, {128, 11, 0}, {128, 13, 0}, {128, 15, 0},
|
|
|
3459 |
{128, 17, 0}, {128, 19, 0}, {128, 21, 0}, {128, 23, 0}, {128, 25, 0},
|
|
|
3460 |
{128, 27, 0}, {128, 29, 0}, {128, 31, 0}, {128, 33, 0}, {128, 34, 0},
|
|
|
3461 |
{128, 36, 0}, {128, 38, 0}, {128, 40, 0}, {128, 42, 0}, {128, 44, 0},
|
|
|
3462 |
{128, 46, 0}, {128, 48, 0}, {128, 50, 0}, {128, 52, 0}, {128, 54, 0},
|
|
|
3463 |
{128, 56, 0}, {128, 57, 0}, {128, 59, 0}, {128, 61, 0}, {128, 63, 0},
|
|
|
3464 |
{128, 65, 0}, {128, 67, 0}, {128, 69, 0}, {128, 71, 0}, {128, 73, 0},
|
|
|
3465 |
{128, 75, 0}, {128, 77, 0}, {128, 78, 0}, {128, 80, 0}, {128, 82, 0},
|
|
|
3466 |
{128, 84, 0}, {128, 86, 0}, {128, 88, 0}, {128, 90, 0}, {128, 92, 0},
|
|
|
3467 |
{128, 94, 0}, {128, 96, 0}, {128, 98, 0}, {128, 100, 0}, {128, 101, 0},
|
|
|
3468 |
{128, 103, 0}, {128, 105, 0}, {128, 107, 0}, {128, 109, 0}, {128, 111, 0},
|
|
|
3469 |
{128, 113, 0}, {128, 115, 0}, {128, 117, 0}, {128, 119, 0}, {128, 121, 0},
|
|
|
3470 |
{128, 123, 0}, {128, 124, 0}, {128, 126, 0}, {127, 128, 0}, {125, 128, 0},
|
|
|
3471 |
{123, 128, 0}, {121, 128, 0}, {119, 128, 0}, {117, 128, 0}, {115, 128, 0},
|
|
|
3472 |
{113, 128, 0}, {111, 128, 0}, {110, 128, 0}, {108, 128, 0}, {106, 128, 0},
|
|
|
3473 |
{104, 128, 0}, {102, 128, 0}, {100, 128, 0}, { 98, 128, 0}, { 96, 128, 0},
|
|
|
3474 |
{ 94, 128, 0}, { 92, 128, 0}, { 90, 128, 0}, { 88, 128, 0}, { 87, 128, 0},
|
|
|
3475 |
{ 85, 128, 0}, { 83, 128, 0}, { 81, 128, 0}, { 79, 128, 0}, { 77, 128, 0},
|
|
|
3476 |
{ 75, 128, 0}, { 73, 128, 0}, { 71, 128, 0}, { 69, 128, 0}, { 67, 128, 0},
|
|
|
3477 |
{ 65, 128, 0}, { 64, 128, 0}, { 62, 128, 0}, { 60, 128, 0}, { 58, 128, 0},
|
|
|
3478 |
{ 56, 128, 0}, { 54, 128, 0}, { 52, 128, 0}, { 50, 128, 0}, { 48, 128, 0},
|
|
|
3479 |
{ 46, 128, 0}, { 44, 128, 0}, { 43, 128, 0}, { 41, 128, 0}, { 39, 128, 0},
|
|
|
3480 |
{ 37, 128, 0}, { 35, 128, 0}, { 33, 128, 0}, { 31, 128, 0}, { 29, 128, 0},
|
|
|
3481 |
{ 27, 128, 0}, { 25, 128, 0}, { 23, 128, 0}, { 21, 128, 0}, { 20, 128, 0},
|
|
|
3482 |
{ 18, 128, 0}, { 16, 128, 0}, { 14, 128, 0}, { 12, 128, 0}, { 10, 128, 0},
|
|
|
3483 |
{ 8, 128, 0}, { 6, 128, 0}, { 4, 128, 0}, { 2, 128, 0}, { 0, 128, 0},
|
|
|
3484 |
{ 0, 128, 2}, { 0, 128, 3}, { 0, 128, 5}, { 0, 128, 7}, { 0, 128, 9},
|
|
|
3485 |
{ 0, 128, 11}, { 0, 128, 13}, { 0, 128, 15}, { 0, 128, 17}, { 0, 128, 19},
|
|
|
3486 |
{ 0, 128, 21}, { 0, 128, 23}, { 0, 128, 25}, { 0, 128, 26}, { 0, 128, 28},
|
|
|
3487 |
{ 0, 128, 30}, { 0, 128, 32}, { 0, 128, 34}, { 0, 128, 36}, { 0, 128, 38},
|
|
|
3488 |
{ 0, 128, 40}, { 0, 128, 42}, { 0, 128, 44}, { 0, 128, 46}, { 0, 128, 47},
|
|
|
3489 |
{ 0, 128, 49}, { 0, 128, 51}, { 0, 128, 53}, { 0, 128, 55}, { 0, 128, 57},
|
|
|
3490 |
{ 0, 128, 59}, { 0, 128, 61}, { 0, 128, 63}, { 0, 128, 65}, { 0, 128, 67},
|
|
|
3491 |
{ 0, 128, 69}, { 0, 128, 70}, { 0, 128, 72}, { 0, 128, 74}, { 0, 128, 76},
|
|
|
3492 |
{ 0, 128, 78}, { 0, 128, 80}, { 0, 128, 82}, { 0, 128, 84}, { 0, 128, 86},
|
|
|
3493 |
{ 0, 128, 88}, { 0, 128, 90}, { 0, 128, 92}, { 0, 128, 93}, { 0, 128, 95},
|
|
|
3494 |
{ 0, 128, 97}, { 0, 128, 99}, { 0, 128, 101}, { 0, 128, 103}, { 0, 128, 105},
|
|
|
3495 |
{ 0, 128, 107}, { 0, 128, 109}, { 0, 128, 111}, { 0, 128, 113}, { 0, 128, 114},
|
|
|
3496 |
{ 0, 128, 116}, { 0, 128, 118}, { 0, 128, 120}, { 0, 128, 122}, { 0, 128, 124},
|
|
|
3497 |
{ 0, 128, 126}, { 0, 127, 128}, { 0, 125, 128}, { 0, 123, 128}, { 0, 121, 128},
|
|
|
3498 |
{ 0, 119, 128}, { 0, 118, 128}, { 0, 116, 128}, { 0, 114, 128}, { 0, 112, 128},
|
|
|
3499 |
{ 0, 110, 128}, { 0, 108, 128}, { 0, 106, 128}, { 0, 104, 128}, { 0, 102, 128},
|
|
|
3500 |
{ 0, 100, 128}, { 0, 98, 128}, { 0, 96, 128}, { 0, 95, 128}, { 0, 93, 128},
|
|
|
3501 |
{ 0, 91, 128}, { 0, 89, 128}, { 0, 87, 128}, { 0, 85, 128}, { 0, 83, 128},
|
|
|
3502 |
{ 0, 81, 128}, { 0, 79, 128}, { 0, 77, 128}, { 0, 75, 128}, { 0, 74, 128},
|
|
|
3503 |
{ 0, 72, 128}, { 0, 70, 128}, { 0, 68, 128}, { 0, 66, 128}, { 0, 64, 128},
|
|
|
3504 |
{ 0, 62, 128}, { 0, 60, 128}, { 0, 58, 128}, { 0, 56, 128}, { 0, 54, 128},
|
|
|
3505 |
{ 0, 52, 128}, { 0, 51, 128}, { 0, 49, 128}, { 0, 47, 128}, { 0, 45, 128},
|
|
|
3506 |
{ 0, 43, 128}, { 0, 41, 128}, { 0, 39, 128}, { 0, 37, 128}, { 0, 35, 128},
|
|
|
3507 |
{ 0, 33, 128}, { 0, 31, 128}, { 0, 29, 128}, { 0, 28, 128}, { 0, 26, 128},
|
|
|
3508 |
{ 0, 24, 128}, { 0, 22, 128}, { 0, 20, 128}, { 0, 18, 128}, { 0, 16, 128},
|
|
|
3509 |
{ 0, 14, 128}, { 0, 12, 128}, { 0, 10, 128}, { 0, 8, 128}, { 0, 7, 128},
|
|
|
3510 |
{ 0, 5, 128}, { 0, 3, 128}, { 0, 1, 128}, { 1, 0, 128}, { 3, 0, 128},
|
|
|
3511 |
{ 5, 0, 128}, { 7, 0, 128}, { 9, 0, 128}, { 11, 0, 128}, { 13, 0, 128},
|
|
|
3512 |
{ 15, 0, 128}, { 16, 0, 128}, { 18, 0, 128}, { 20, 0, 128}, { 22, 0, 128},
|
|
|
3513 |
{ 24, 0, 128}, { 26, 0, 128}, { 28, 0, 128}, { 30, 0, 128}, { 32, 0, 128},
|
|
|
3514 |
{ 34, 0, 128}, { 36, 0, 128}, { 38, 0, 128}, { 39, 0, 128}, { 41, 0, 128},
|
|
|
3515 |
{ 43, 0, 128}, { 45, 0, 128}, { 47, 0, 128}, { 49, 0, 128}, { 51, 0, 128},
|
|
|
3516 |
{ 53, 0, 128}, { 55, 0, 128}, { 57, 0, 128}, { 59, 0, 128}, { 60, 0, 128},
|
|
|
3517 |
{ 62, 0, 128}, { 64, 0, 128}, { 66, 0, 128}, { 68, 0, 128}, { 70, 0, 128},
|
|
|
3518 |
{ 72, 0, 128}, { 74, 0, 128}, { 76, 0, 128}, { 78, 0, 128}, { 80, 0, 128},
|
|
|
3519 |
{ 82, 0, 128}, { 83, 0, 128}, { 85, 0, 128}, { 87, 0, 128}, { 89, 0, 128},
|
|
|
3520 |
{ 91, 0, 128}, { 93, 0, 128}, { 95, 0, 128}, { 97, 0, 128}, { 99, 0, 128},
|
|
|
3521 |
{101, 0, 128}, {103, 0, 128}, {105, 0, 128}, {106, 0, 128}, {108, 0, 128},
|
|
|
3522 |
{110, 0, 128}, {112, 0, 128}, {114, 0, 128}, {116, 0, 128}, {118, 0, 128},
|
|
|
3523 |
{120, 0, 128}, {122, 0, 128}, {124, 0, 128}, {126, 0, 128}, {128, 0, 128}
|
|
|
3524 |
};
|
|
|
3525 |
|
|
|
3526 |
const rgb_store yarg_colormap[1000] = {
|
|
|
3527 |
{ 0, 0, 0}, { 0, 0, 0}, { 1, 1, 1}, { 1, 1, 1}, { 1, 1, 1},
|
|
|
3528 |
{ 1, 1, 1}, { 2, 2, 2}, { 2, 2, 2}, { 2, 2, 2}, { 2, 2, 2},
|
|
|
3529 |
{ 3, 3, 3}, { 3, 3, 3}, { 3, 3, 3}, { 3, 3, 3}, { 4, 4, 4},
|
|
|
3530 |
{ 4, 4, 4}, { 4, 4, 4}, { 4, 4, 4}, { 5, 5, 5}, { 5, 5, 5},
|
|
|
3531 |
{ 5, 5, 5}, { 5, 5, 5}, { 6, 6, 6}, { 6, 6, 6}, { 6, 6, 6},
|
|
|
3532 |
{ 6, 6, 6}, { 7, 7, 7}, { 7, 7, 7}, { 7, 7, 7}, { 7, 7, 7},
|
|
|
3533 |
{ 8, 8, 8}, { 8, 8, 8}, { 8, 8, 8}, { 8, 8, 8}, { 9, 9, 9},
|
|
|
3534 |
{ 9, 9, 9}, { 9, 9, 9}, { 9, 9, 9}, { 10, 10, 10}, { 10, 10, 10},
|
|
|
3535 |
{ 10, 10, 10}, { 10, 10, 10}, { 11, 11, 11}, { 11, 11, 11}, { 11, 11, 11},
|
|
|
3536 |
{ 11, 11, 11}, { 12, 12, 12}, { 12, 12, 12}, { 12, 12, 12}, { 13, 13, 13},
|
|
|
3537 |
{ 13, 13, 13}, { 13, 13, 13}, { 13, 13, 13}, { 14, 14, 14}, { 14, 14, 14},
|
|
|
3538 |
{ 14, 14, 14}, { 14, 14, 14}, { 15, 15, 15}, { 15, 15, 15}, { 15, 15, 15},
|
|
|
3539 |
{ 15, 15, 15}, { 16, 16, 16}, { 16, 16, 16}, { 16, 16, 16}, { 16, 16, 16},
|
|
|
3540 |
{ 17, 17, 17}, { 17, 17, 17}, { 17, 17, 17}, { 17, 17, 17}, { 18, 18, 18},
|
|
|
3541 |
{ 18, 18, 18}, { 18, 18, 18}, { 18, 18, 18}, { 19, 19, 19}, { 19, 19, 19},
|
|
|
3542 |
{ 19, 19, 19}, { 19, 19, 19}, { 20, 20, 20}, { 20, 20, 20}, { 20, 20, 20},
|
|
|
3543 |
{ 20, 20, 20}, { 21, 21, 21}, { 21, 21, 21}, { 21, 21, 21}, { 21, 21, 21},
|
|
|
3544 |
{ 22, 22, 22}, { 22, 22, 22}, { 22, 22, 22}, { 22, 22, 22}, { 23, 23, 23},
|
|
|
3545 |
{ 23, 23, 23}, { 23, 23, 23}, { 23, 23, 23}, { 24, 24, 24}, { 24, 24, 24},
|
|
|
3546 |
{ 24, 24, 24}, { 25, 25, 25}, { 25, 25, 25}, { 25, 25, 25}, { 25, 25, 25},
|
|
|
3547 |
{ 26, 26, 26}, { 26, 26, 26}, { 26, 26, 26}, { 26, 26, 26}, { 27, 27, 27},
|
|
|
3548 |
{ 27, 27, 27}, { 27, 27, 27}, { 27, 27, 27}, { 28, 28, 28}, { 28, 28, 28},
|
|
|
3549 |
{ 28, 28, 28}, { 28, 28, 28}, { 29, 29, 29}, { 29, 29, 29}, { 29, 29, 29},
|
|
|
3550 |
{ 29, 29, 29}, { 30, 30, 30}, { 30, 30, 30}, { 30, 30, 30}, { 30, 30, 30},
|
|
|
3551 |
{ 31, 31, 31}, { 31, 31, 31}, { 31, 31, 31}, { 31, 31, 31}, { 32, 32, 32},
|
|
|
3552 |
{ 32, 32, 32}, { 32, 32, 32}, { 32, 32, 32}, { 33, 33, 33}, { 33, 33, 33},
|
|
|
3553 |
{ 33, 33, 33}, { 33, 33, 33}, { 34, 34, 34}, { 34, 34, 34}, { 34, 34, 34},
|
|
|
3554 |
{ 34, 34, 34}, { 35, 35, 35}, { 35, 35, 35}, { 35, 35, 35}, { 35, 35, 35},
|
|
|
3555 |
{ 36, 36, 36}, { 36, 36, 36}, { 36, 36, 36}, { 37, 37, 37}, { 37, 37, 37},
|
|
|
3556 |
{ 37, 37, 37}, { 37, 37, 37}, { 38, 38, 38}, { 38, 38, 38}, { 38, 38, 38},
|
|
|
3557 |
{ 38, 38, 38}, { 39, 39, 39}, { 39, 39, 39}, { 39, 39, 39}, { 39, 39, 39},
|
|
|
3558 |
{ 40, 40, 40}, { 40, 40, 40}, { 40, 40, 40}, { 40, 40, 40}, { 41, 41, 41},
|
|
|
3559 |
{ 41, 41, 41}, { 41, 41, 41}, { 41, 41, 41}, { 42, 42, 42}, { 42, 42, 42},
|
|
|
3560 |
{ 42, 42, 42}, { 42, 42, 42}, { 43, 43, 43}, { 43, 43, 43}, { 43, 43, 43},
|
|
|
3561 |
{ 43, 43, 43}, { 44, 44, 44}, { 44, 44, 44}, { 44, 44, 44}, { 44, 44, 44},
|
|
|
3562 |
{ 45, 45, 45}, { 45, 45, 45}, { 45, 45, 45}, { 45, 45, 45}, { 46, 46, 46},
|
|
|
3563 |
{ 46, 46, 46}, { 46, 46, 46}, { 46, 46, 46}, { 47, 47, 47}, { 47, 47, 47},
|
|
|
3564 |
{ 47, 47, 47}, { 47, 47, 47}, { 48, 48, 48}, { 48, 48, 48}, { 48, 48, 48},
|
|
|
3565 |
{ 48, 48, 48}, { 49, 49, 49}, { 49, 49, 49}, { 49, 49, 49}, { 50, 50, 50},
|
|
|
3566 |
{ 50, 50, 50}, { 50, 50, 50}, { 50, 50, 50}, { 51, 51, 51}, { 51, 51, 51},
|
|
|
3567 |
{ 51, 51, 51}, { 51, 51, 51}, { 52, 52, 52}, { 52, 52, 52}, { 52, 52, 52},
|
|
|
3568 |
{ 52, 52, 52}, { 53, 53, 53}, { 53, 53, 53}, { 53, 53, 53}, { 53, 53, 53},
|
|
|
3569 |
{ 54, 54, 54}, { 54, 54, 54}, { 54, 54, 54}, { 54, 54, 54}, { 55, 55, 55},
|
|
|
3570 |
{ 55, 55, 55}, { 55, 55, 55}, { 55, 55, 55}, { 56, 56, 56}, { 56, 56, 56},
|
|
|
3571 |
{ 56, 56, 56}, { 56, 56, 56}, { 57, 57, 57}, { 57, 57, 57}, { 57, 57, 57},
|
|
|
3572 |
{ 57, 57, 57}, { 58, 58, 58}, { 58, 58, 58}, { 58, 58, 58}, { 58, 58, 58},
|
|
|
3573 |
{ 59, 59, 59}, { 59, 59, 59}, { 59, 59, 59}, { 59, 59, 59}, { 60, 60, 60},
|
|
|
3574 |
{ 60, 60, 60}, { 60, 60, 60}, { 60, 60, 60}, { 61, 61, 61}, { 61, 61, 61},
|
|
|
3575 |
{ 61, 61, 61}, { 62, 62, 62}, { 62, 62, 62}, { 62, 62, 62}, { 62, 62, 62},
|
|
|
3576 |
{ 63, 63, 63}, { 63, 63, 63}, { 63, 63, 63}, { 63, 63, 63}, { 64, 64, 64},
|
|
|
3577 |
{ 64, 64, 64}, { 64, 64, 64}, { 64, 64, 64}, { 65, 65, 65}, { 65, 65, 65},
|
|
|
3578 |
{ 65, 65, 65}, { 65, 65, 65}, { 66, 66, 66}, { 66, 66, 66}, { 66, 66, 66},
|
|
|
3579 |
{ 66, 66, 66}, { 67, 67, 67}, { 67, 67, 67}, { 67, 67, 67}, { 67, 67, 67},
|
|
|
3580 |
{ 68, 68, 68}, { 68, 68, 68}, { 68, 68, 68}, { 68, 68, 68}, { 69, 69, 69},
|
|
|
3581 |
{ 69, 69, 69}, { 69, 69, 69}, { 69, 69, 69}, { 70, 70, 70}, { 70, 70, 70},
|
|
|
3582 |
{ 70, 70, 70}, { 70, 70, 70}, { 71, 71, 71}, { 71, 71, 71}, { 71, 71, 71},
|
|
|
3583 |
{ 71, 71, 71}, { 72, 72, 72}, { 72, 72, 72}, { 72, 72, 72}, { 72, 72, 72},
|
|
|
3584 |
{ 73, 73, 73}, { 73, 73, 73}, { 73, 73, 73}, { 74, 74, 74}, { 74, 74, 74},
|
|
|
3585 |
{ 74, 74, 74}, { 74, 74, 74}, { 75, 75, 75}, { 75, 75, 75}, { 75, 75, 75},
|
|
|
3586 |
{ 75, 75, 75}, { 76, 76, 76}, { 76, 76, 76}, { 76, 76, 76}, { 76, 76, 76},
|
|
|
3587 |
{ 77, 77, 77}, { 77, 77, 77}, { 77, 77, 77}, { 77, 77, 77}, { 78, 78, 78},
|
|
|
3588 |
{ 78, 78, 78}, { 78, 78, 78}, { 78, 78, 78}, { 79, 79, 79}, { 79, 79, 79},
|
|
|
3589 |
{ 79, 79, 79}, { 79, 79, 79}, { 80, 80, 80}, { 80, 80, 80}, { 80, 80, 80},
|
|
|
3590 |
{ 80, 80, 80}, { 81, 81, 81}, { 81, 81, 81}, { 81, 81, 81}, { 81, 81, 81},
|
|
|
3591 |
{ 82, 82, 82}, { 82, 82, 82}, { 82, 82, 82}, { 82, 82, 82}, { 83, 83, 83},
|
|
|
3592 |
{ 83, 83, 83}, { 83, 83, 83}, { 83, 83, 83}, { 84, 84, 84}, { 84, 84, 84},
|
|
|
3593 |
{ 84, 84, 84}, { 84, 84, 84}, { 85, 85, 85}, { 85, 85, 85}, { 85, 85, 85},
|
|
|
3594 |
{ 86, 86, 86}, { 86, 86, 86}, { 86, 86, 86}, { 86, 86, 86}, { 87, 87, 87},
|
|
|
3595 |
{ 87, 87, 87}, { 87, 87, 87}, { 87, 87, 87}, { 88, 88, 88}, { 88, 88, 88},
|
|
|
3596 |
{ 88, 88, 88}, { 88, 88, 88}, { 89, 89, 89}, { 89, 89, 89}, { 89, 89, 89},
|
|
|
3597 |
{ 89, 89, 89}, { 90, 90, 90}, { 90, 90, 90}, { 90, 90, 90}, { 90, 90, 90},
|
|
|
3598 |
{ 91, 91, 91}, { 91, 91, 91}, { 91, 91, 91}, { 91, 91, 91}, { 92, 92, 92},
|
|
|
3599 |
{ 92, 92, 92}, { 92, 92, 92}, { 92, 92, 92}, { 93, 93, 93}, { 93, 93, 93},
|
|
|
3600 |
{ 93, 93, 93}, { 93, 93, 93}, { 94, 94, 94}, { 94, 94, 94}, { 94, 94, 94},
|
|
|
3601 |
{ 94, 94, 94}, { 95, 95, 95}, { 95, 95, 95}, { 95, 95, 95}, { 95, 95, 95},
|
|
|
3602 |
{ 96, 96, 96}, { 96, 96, 96}, { 96, 96, 96}, { 96, 96, 96}, { 97, 97, 97},
|
|
|
3603 |
{ 97, 97, 97}, { 97, 97, 97}, { 98, 98, 98}, { 98, 98, 98}, { 98, 98, 98},
|
|
|
3604 |
{ 98, 98, 98}, { 99, 99, 99}, { 99, 99, 99}, { 99, 99, 99}, { 99, 99, 99},
|
|
|
3605 |
{100, 100, 100}, {100, 100, 100}, {100, 100, 100}, {100, 100, 100}, {101, 101, 101},
|
|
|
3606 |
{101, 101, 101}, {101, 101, 101}, {101, 101, 101}, {102, 102, 102}, {102, 102, 102},
|
|
|
3607 |
{102, 102, 102}, {102, 102, 102}, {103, 103, 103}, {103, 103, 103}, {103, 103, 103},
|
|
|
3608 |
{103, 103, 103}, {104, 104, 104}, {104, 104, 104}, {104, 104, 104}, {104, 104, 104},
|
|
|
3609 |
{105, 105, 105}, {105, 105, 105}, {105, 105, 105}, {105, 105, 105}, {106, 106, 106},
|
|
|
3610 |
{106, 106, 106}, {106, 106, 106}, {106, 106, 106}, {107, 107, 107}, {107, 107, 107},
|
|
|
3611 |
{107, 107, 107}, {107, 107, 107}, {108, 108, 108}, {108, 108, 108}, {108, 108, 108},
|
|
|
3612 |
{108, 108, 108}, {109, 109, 109}, {109, 109, 109}, {109, 109, 109}, {110, 110, 110},
|
|
|
3613 |
{110, 110, 110}, {110, 110, 110}, {110, 110, 110}, {111, 111, 111}, {111, 111, 111},
|
|
|
3614 |
{111, 111, 111}, {111, 111, 111}, {112, 112, 112}, {112, 112, 112}, {112, 112, 112},
|
|
|
3615 |
{112, 112, 112}, {113, 113, 113}, {113, 113, 113}, {113, 113, 113}, {113, 113, 113},
|
|
|
3616 |
{114, 114, 114}, {114, 114, 114}, {114, 114, 114}, {114, 114, 114}, {115, 115, 115},
|
|
|
3617 |
{115, 115, 115}, {115, 115, 115}, {115, 115, 115}, {116, 116, 116}, {116, 116, 116},
|
|
|
3618 |
{116, 116, 116}, {116, 116, 116}, {117, 117, 117}, {117, 117, 117}, {117, 117, 117},
|
|
|
3619 |
{117, 117, 117}, {118, 118, 118}, {118, 118, 118}, {118, 118, 118}, {118, 118, 118},
|
|
|
3620 |
{119, 119, 119}, {119, 119, 119}, {119, 119, 119}, {119, 119, 119}, {120, 120, 120},
|
|
|
3621 |
{120, 120, 120}, {120, 120, 120}, {120, 120, 120}, {121, 121, 121}, {121, 121, 121},
|
|
|
3622 |
{121, 121, 121}, {122, 122, 122}, {122, 122, 122}, {122, 122, 122}, {122, 122, 122},
|
|
|
3623 |
{123, 123, 123}, {123, 123, 123}, {123, 123, 123}, {123, 123, 123}, {124, 124, 124},
|
|
|
3624 |
{124, 124, 124}, {124, 124, 124}, {124, 124, 124}, {125, 125, 125}, {125, 125, 125},
|
|
|
3625 |
{125, 125, 125}, {125, 125, 125}, {126, 126, 126}, {126, 126, 126}, {126, 126, 126},
|
|
|
3626 |
{126, 126, 126}, {127, 127, 127}, {127, 127, 127}, {127, 127, 127}, {127, 127, 127},
|
|
|
3627 |
{128, 128, 128}, {128, 128, 128}, {128, 128, 128}, {128, 128, 128}, {129, 129, 129},
|
|
|
3628 |
{129, 129, 129}, {129, 129, 129}, {129, 129, 129}, {130, 130, 130}, {130, 130, 130},
|
|
|
3629 |
{130, 130, 130}, {130, 130, 130}, {131, 131, 131}, {131, 131, 131}, {131, 131, 131},
|
|
|
3630 |
{131, 131, 131}, {132, 132, 132}, {132, 132, 132}, {132, 132, 132}, {132, 132, 132},
|
|
|
3631 |
{133, 133, 133}, {133, 133, 133}, {133, 133, 133}, {133, 133, 133}, {134, 134, 134},
|
|
|
3632 |
{134, 134, 134}, {134, 134, 134}, {135, 135, 135}, {135, 135, 135}, {135, 135, 135},
|
|
|
3633 |
{135, 135, 135}, {136, 136, 136}, {136, 136, 136}, {136, 136, 136}, {136, 136, 136},
|
|
|
3634 |
{137, 137, 137}, {137, 137, 137}, {137, 137, 137}, {137, 137, 137}, {138, 138, 138},
|
|
|
3635 |
{138, 138, 138}, {138, 138, 138}, {138, 138, 138}, {139, 139, 139}, {139, 139, 139},
|
|
|
3636 |
{139, 139, 139}, {139, 139, 139}, {140, 140, 140}, {140, 140, 140}, {140, 140, 140},
|
|
|
3637 |
{140, 140, 140}, {141, 141, 141}, {141, 141, 141}, {141, 141, 141}, {141, 141, 141},
|
|
|
3638 |
{142, 142, 142}, {142, 142, 142}, {142, 142, 142}, {142, 142, 142}, {143, 143, 143},
|
|
|
3639 |
{143, 143, 143}, {143, 143, 143}, {143, 143, 143}, {144, 144, 144}, {144, 144, 144},
|
|
|
3640 |
{144, 144, 144}, {144, 144, 144}, {145, 145, 145}, {145, 145, 145}, {145, 145, 145},
|
|
|
3641 |
{145, 145, 145}, {146, 146, 146}, {146, 146, 146}, {146, 146, 146}, {147, 147, 147},
|
|
|
3642 |
{147, 147, 147}, {147, 147, 147}, {147, 147, 147}, {148, 148, 148}, {148, 148, 148},
|
|
|
3643 |
{148, 148, 148}, {148, 148, 148}, {149, 149, 149}, {149, 149, 149}, {149, 149, 149},
|
|
|
3644 |
{149, 149, 149}, {150, 150, 150}, {150, 150, 150}, {150, 150, 150}, {150, 150, 150},
|
|
|
3645 |
{151, 151, 151}, {151, 151, 151}, {151, 151, 151}, {151, 151, 151}, {152, 152, 152},
|
|
|
3646 |
{152, 152, 152}, {152, 152, 152}, {152, 152, 152}, {153, 153, 153}, {153, 153, 153},
|
|
|
3647 |
{153, 153, 153}, {153, 153, 153}, {154, 154, 154}, {154, 154, 154}, {154, 154, 154},
|
|
|
3648 |
{154, 154, 154}, {155, 155, 155}, {155, 155, 155}, {155, 155, 155}, {155, 155, 155},
|
|
|
3649 |
{156, 156, 156}, {156, 156, 156}, {156, 156, 156}, {156, 156, 156}, {157, 157, 157},
|
|
|
3650 |
{157, 157, 157}, {157, 157, 157}, {157, 157, 157}, {158, 158, 158}, {158, 158, 158},
|
|
|
3651 |
{158, 158, 158}, {159, 159, 159}, {159, 159, 159}, {159, 159, 159}, {159, 159, 159},
|
|
|
3652 |
{160, 160, 160}, {160, 160, 160}, {160, 160, 160}, {160, 160, 160}, {161, 161, 161},
|
|
|
3653 |
{161, 161, 161}, {161, 161, 161}, {161, 161, 161}, {162, 162, 162}, {162, 162, 162},
|
|
|
3654 |
{162, 162, 162}, {162, 162, 162}, {163, 163, 163}, {163, 163, 163}, {163, 163, 163},
|
|
|
3655 |
{163, 163, 163}, {164, 164, 164}, {164, 164, 164}, {164, 164, 164}, {164, 164, 164},
|
|
|
3656 |
{165, 165, 165}, {165, 165, 165}, {165, 165, 165}, {165, 165, 165}, {166, 166, 166},
|
|
|
3657 |
{166, 166, 166}, {166, 166, 166}, {166, 166, 166}, {167, 167, 167}, {167, 167, 167},
|
|
|
3658 |
{167, 167, 167}, {167, 167, 167}, {168, 168, 168}, {168, 168, 168}, {168, 168, 168},
|
|
|
3659 |
{168, 168, 168}, {169, 169, 169}, {169, 169, 169}, {169, 169, 169}, {169, 169, 169},
|
|
|
3660 |
{170, 170, 170}, {170, 170, 170}, {170, 170, 170}, {171, 171, 171}, {171, 171, 171},
|
|
|
3661 |
{171, 171, 171}, {171, 171, 171}, {172, 172, 172}, {172, 172, 172}, {172, 172, 172},
|
|
|
3662 |
{172, 172, 172}, {173, 173, 173}, {173, 173, 173}, {173, 173, 173}, {173, 173, 173},
|
|
|
3663 |
{174, 174, 174}, {174, 174, 174}, {174, 174, 174}, {174, 174, 174}, {175, 175, 175},
|
|
|
3664 |
{175, 175, 175}, {175, 175, 175}, {175, 175, 175}, {176, 176, 176}, {176, 176, 176},
|
|
|
3665 |
{176, 176, 176}, {176, 176, 176}, {177, 177, 177}, {177, 177, 177}, {177, 177, 177},
|
|
|
3666 |
{177, 177, 177}, {178, 178, 178}, {178, 178, 178}, {178, 178, 178}, {178, 178, 178},
|
|
|
3667 |
{179, 179, 179}, {179, 179, 179}, {179, 179, 179}, {179, 179, 179}, {180, 180, 180},
|
|
|
3668 |
{180, 180, 180}, {180, 180, 180}, {180, 180, 180}, {181, 181, 181}, {181, 181, 181},
|
|
|
3669 |
{181, 181, 181}, {181, 181, 181}, {182, 182, 182}, {182, 182, 182}, {182, 182, 182},
|
|
|
3670 |
{183, 183, 183}, {183, 183, 183}, {183, 183, 183}, {183, 183, 183}, {184, 184, 184},
|
|
|
3671 |
{184, 184, 184}, {184, 184, 184}, {184, 184, 184}, {185, 185, 185}, {185, 185, 185},
|
|
|
3672 |
{185, 185, 185}, {185, 185, 185}, {186, 186, 186}, {186, 186, 186}, {186, 186, 186},
|
|
|
3673 |
{186, 186, 186}, {187, 187, 187}, {187, 187, 187}, {187, 187, 187}, {187, 187, 187},
|
|
|
3674 |
{188, 188, 188}, {188, 188, 188}, {188, 188, 188}, {188, 188, 188}, {189, 189, 189},
|
|
|
3675 |
{189, 189, 189}, {189, 189, 189}, {189, 189, 189}, {190, 190, 190}, {190, 190, 190},
|
|
|
3676 |
{190, 190, 190}, {190, 190, 190}, {191, 191, 191}, {191, 191, 191}, {191, 191, 191},
|
|
|
3677 |
{191, 191, 191}, {192, 192, 192}, {192, 192, 192}, {192, 192, 192}, {192, 192, 192},
|
|
|
3678 |
{193, 193, 193}, {193, 193, 193}, {193, 193, 193}, {193, 193, 193}, {194, 194, 194},
|
|
|
3679 |
{194, 194, 194}, {194, 194, 194}, {195, 195, 195}, {195, 195, 195}, {195, 195, 195},
|
|
|
3680 |
{195, 195, 195}, {196, 196, 196}, {196, 196, 196}, {196, 196, 196}, {196, 196, 196},
|
|
|
3681 |
{197, 197, 197}, {197, 197, 197}, {197, 197, 197}, {197, 197, 197}, {198, 198, 198},
|
|
|
3682 |
{198, 198, 198}, {198, 198, 198}, {198, 198, 198}, {199, 199, 199}, {199, 199, 199},
|
|
|
3683 |
{199, 199, 199}, {199, 199, 199}, {200, 200, 200}, {200, 200, 200}, {200, 200, 200},
|
|
|
3684 |
{200, 200, 200}, {201, 201, 201}, {201, 201, 201}, {201, 201, 201}, {201, 201, 201},
|
|
|
3685 |
{202, 202, 202}, {202, 202, 202}, {202, 202, 202}, {202, 202, 202}, {203, 203, 203},
|
|
|
3686 |
{203, 203, 203}, {203, 203, 203}, {203, 203, 203}, {204, 204, 204}, {204, 204, 204},
|
|
|
3687 |
{204, 204, 204}, {204, 204, 204}, {205, 205, 205}, {205, 205, 205}, {205, 205, 205},
|
|
|
3688 |
{205, 205, 205}, {206, 206, 206}, {206, 206, 206}, {206, 206, 206}, {207, 207, 207},
|
|
|
3689 |
{207, 207, 207}, {207, 207, 207}, {207, 207, 207}, {208, 208, 208}, {208, 208, 208},
|
|
|
3690 |
{208, 208, 208}, {208, 208, 208}, {209, 209, 209}, {209, 209, 209}, {209, 209, 209},
|
|
|
3691 |
{209, 209, 209}, {210, 210, 210}, {210, 210, 210}, {210, 210, 210}, {210, 210, 210},
|
|
|
3692 |
{211, 211, 211}, {211, 211, 211}, {211, 211, 211}, {211, 211, 211}, {212, 212, 212},
|
|
|
3693 |
{212, 212, 212}, {212, 212, 212}, {212, 212, 212}, {213, 213, 213}, {213, 213, 213},
|
|
|
3694 |
{213, 213, 213}, {213, 213, 213}, {214, 214, 214}, {214, 214, 214}, {214, 214, 214},
|
|
|
3695 |
{214, 214, 214}, {215, 215, 215}, {215, 215, 215}, {215, 215, 215}, {215, 215, 215},
|
|
|
3696 |
{216, 216, 216}, {216, 216, 216}, {216, 216, 216}, {216, 216, 216}, {217, 217, 217},
|
|
|
3697 |
{217, 217, 217}, {217, 217, 217}, {217, 217, 217}, {218, 218, 218}, {218, 218, 218},
|
|
|
3698 |
{218, 218, 218}, {218, 218, 218}, {219, 219, 219}, {219, 219, 219}, {219, 219, 219},
|
|
|
3699 |
{220, 220, 220}, {220, 220, 220}, {220, 220, 220}, {220, 220, 220}, {221, 221, 221},
|
|
|
3700 |
{221, 221, 221}, {221, 221, 221}, {221, 221, 221}, {222, 222, 222}, {222, 222, 222},
|
|
|
3701 |
{222, 222, 222}, {222, 222, 222}, {223, 223, 223}, {223, 223, 223}, {223, 223, 223},
|
|
|
3702 |
{223, 223, 223}, {224, 224, 224}, {224, 224, 224}, {224, 224, 224}, {224, 224, 224},
|
|
|
3703 |
{225, 225, 225}, {225, 225, 225}, {225, 225, 225}, {225, 225, 225}, {226, 226, 226},
|
|
|
3704 |
{226, 226, 226}, {226, 226, 226}, {226, 226, 226}, {227, 227, 227}, {227, 227, 227},
|
|
|
3705 |
{227, 227, 227}, {227, 227, 227}, {228, 228, 228}, {228, 228, 228}, {228, 228, 228},
|
|
|
3706 |
{228, 228, 228}, {229, 229, 229}, {229, 229, 229}, {229, 229, 229}, {229, 229, 229},
|
|
|
3707 |
{230, 230, 230}, {230, 230, 230}, {230, 230, 230}, {230, 230, 230}, {231, 231, 231},
|
|
|
3708 |
{231, 231, 231}, {231, 231, 231}, {232, 232, 232}, {232, 232, 232}, {232, 232, 232},
|
|
|
3709 |
{232, 232, 232}, {233, 233, 233}, {233, 233, 233}, {233, 233, 233}, {233, 233, 233},
|
|
|
3710 |
{234, 234, 234}, {234, 234, 234}, {234, 234, 234}, {234, 234, 234}, {235, 235, 235},
|
|
|
3711 |
{235, 235, 235}, {235, 235, 235}, {235, 235, 235}, {236, 236, 236}, {236, 236, 236},
|
|
|
3712 |
{236, 236, 236}, {236, 236, 236}, {237, 237, 237}, {237, 237, 237}, {237, 237, 237},
|
|
|
3713 |
{237, 237, 237}, {238, 238, 238}, {238, 238, 238}, {238, 238, 238}, {238, 238, 238},
|
|
|
3714 |
{239, 239, 239}, {239, 239, 239}, {239, 239, 239}, {239, 239, 239}, {240, 240, 240},
|
|
|
3715 |
{240, 240, 240}, {240, 240, 240}, {240, 240, 240}, {241, 241, 241}, {241, 241, 241},
|
|
|
3716 |
{241, 241, 241}, {241, 241, 241}, {242, 242, 242}, {242, 242, 242}, {242, 242, 242},
|
|
|
3717 |
{242, 242, 242}, {243, 243, 243}, {243, 243, 243}, {243, 243, 243}, {244, 244, 244},
|
|
|
3718 |
{244, 244, 244}, {244, 244, 244}, {244, 244, 244}, {245, 245, 245}, {245, 245, 245},
|
|
|
3719 |
{245, 245, 245}, {245, 245, 245}, {246, 246, 246}, {246, 246, 246}, {246, 246, 246},
|
|
|
3720 |
{246, 246, 246}, {247, 247, 247}, {247, 247, 247}, {247, 247, 247}, {247, 247, 247},
|
|
|
3721 |
{248, 248, 248}, {248, 248, 248}, {248, 248, 248}, {248, 248, 248}, {249, 249, 249},
|
|
|
3722 |
{249, 249, 249}, {249, 249, 249}, {249, 249, 249}, {250, 250, 250}, {250, 250, 250},
|
|
|
3723 |
{250, 250, 250}, {250, 250, 250}, {251, 251, 251}, {251, 251, 251}, {251, 251, 251},
|
|
|
3724 |
{251, 251, 251}, {252, 252, 252}, {252, 252, 252}, {252, 252, 252}, {252, 252, 252},
|
|
|
3725 |
{253, 253, 253}, {253, 253, 253}, {253, 253, 253}, {253, 253, 253}, {254, 254, 254},
|
|
|
3726 |
{254, 254, 254}, {254, 254, 254}, {254, 254, 254}, {255, 255, 255}, {255, 255, 255}
|
|
|
3727 |
};
|
|
|
3728 |
|
|
|
3729 |
#endif
|