1 /*******************************************************************************
2 * Project: libopencad
3 * Purpose: OpenSource CAD formats support library
4 * Author: Dmitry Baryshnikov, bishop.dev@gmail.com
5 * Language: C++
6 *******************************************************************************
7 * The MIT License (MIT)
8 *
9 * Copyright (c) 2016 NextGIS, <info@nextgis.com>
10 *
11 * Permission is hereby granted, free of charge, to any person obtaining a copy
12 * of this software and associated documentation files (the "Software"), to deal
13 * in the Software without restriction, including without limitation the rights
14 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 * copies of the Software, and to permit persons to whom the Software is
16 * furnished to do so, subject to the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be included in all
19 * copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27 * SOFTWARE.
28 *******************************************************************************/
29 #include "cadcolors.h"
30
31 const RGBColor CADACIColors[]
32 {
33 { 0, 0, 0 },
34 { 255, 0, 0 },
35 { 255, 255, 0 },
36 { 0, 255, 0 },
37 { 0, 255, 255 },
38 { 0, 0, 255 },
39 { 255, 0, 255 },
40 { 255, 255, 255 },
41 { 65, 65, 65 },
42 { 128, 128, 128 },
43 { 255, 0, 0 },
44 { 255, 170, 170 },
45 { 189, 0, 0 },
46 { 189, 126, 126 },
47 { 129, 0, 0 },
48 { 129, 86, 86 },
49 { 104, 0, 0 },
50 { 104, 69, 69 },
51 { 79, 0, 0 },
52 { 79, 53, 53 },
53 { 255, 63, 0 },
54 { 255, 191, 170 },
55 { 189, 46, 0 },
56 { 189, 141, 126 },
57 { 129, 31, 0 },
58 { 129, 96, 86 },
59 { 104, 25, 0 },
60 { 104, 78, 69 },
61 { 79, 19, 0 },
62 { 79, 59, 53 },
63 { 255, 127, 0 },
64 { 255, 212, 170 },
65 { 189, 94, 0 },
66 { 189, 157, 126 },
67 { 129, 64, 0 },
68 { 129, 107, 86 },
69 { 104, 52, 0 },
70 { 104, 86, 69 },
71 { 79, 39, 0 },
72 { 79, 66, 53 },
73 { 255, 191, 0 },
74 { 255, 234, 170 },
75 { 189, 141, 0 },
76 { 189, 173, 126 },
77 { 129, 96, 0 },
78 { 129, 118, 86 },
79 { 104, 78, 0 },
80 { 104, 95, 69 },
81 { 79, 59, 0 },
82 { 79, 73, 53 },
83 { 255, 255, 0 },
84 { 255, 255, 170 },
85 { 189, 189, 0 },
86 { 189, 189, 126 },
87 { 129, 129, 0 },
88 { 129, 129, 86 },
89 { 104, 104, 0 },
90 { 104, 104, 69 },
91 { 79, 79, 0 },
92 { 79, 79, 53 },
93 { 191, 255, 0 },
94 { 234, 255, 170 },
95 { 141, 189, 0 },
96 { 173, 189, 126 },
97 { 96, 129, 0 },
98 { 118, 129, 86 },
99 { 78, 104, 0 },
100 { 95, 104, 69 },
101 { 59, 79, 0 },
102 { 73, 79, 53 },
103 { 127, 255, 0 },
104 { 212, 255, 170 },
105 { 94, 189, 0 },
106 { 157, 189, 126 },
107 { 64, 129, 0 },
108 { 107, 129, 86 },
109 { 52, 104, 0 },
110 { 86, 104, 69 },
111 { 39, 79, 0 },
112 { 66, 79, 53 },
113 { 63, 255, 0 },
114 { 191, 255, 170 },
115 { 46, 189, 0 },
116 { 141, 189, 126 },
117 { 31, 129, 0 },
118 { 96, 129, 86 },
119 { 25, 104, 0 },
120 { 78, 104, 69 },
121 { 19, 79, 0 },
122 { 59, 79, 53 },
123 { 0, 255, 0 },
124 { 170, 255, 170 },
125 { 0, 189, 0 },
126 { 126, 189, 126 },
127 { 0, 129, 0 },
128 { 86, 129, 86 },
129 { 0, 104, 0 },
130 { 69, 104, 69 },
131 { 0, 79, 0 },
132 { 53, 79, 53 },
133 { 0, 255, 63 },
134 { 170, 255, 191 },
135 { 0, 189, 46 },
136 { 126, 189, 141 },
137 { 0, 129, 31 },
138 { 86, 129, 96 },
139 { 0, 104, 25 },
140 { 69, 104, 78 },
141 { 0, 79, 19 },
142 { 53, 79, 59 },
143 { 0, 255, 127 },
144 { 170, 255, 212 },
145 { 0, 189, 94 },
146 { 126, 189, 157 },
147 { 0, 129, 64 },
148 { 86, 129, 107 },
149 { 0, 104, 52 },
150 { 69, 104, 86 },
151 { 0, 79, 39 },
152 { 53, 79, 66 },
153 { 0, 255, 191 },
154 { 170, 255, 234 },
155 { 0, 189, 141 },
156 { 126, 189, 173 },
157 { 0, 129, 96 },
158 { 86, 129, 118 },
159 { 0, 104, 78 },
160 { 69, 104, 95 },
161 { 0, 79, 59 },
162 { 53, 79, 73 },
163 { 0, 255, 255 },
164 { 170, 255, 255 },
165 { 0, 189, 189 },
166 { 126, 189, 189 },
167 { 0, 129, 129 },
168 { 86, 129, 129 },
169 { 0, 104, 104 },
170 { 69, 104, 104 },
171 { 0, 79, 79 },
172 { 53, 79, 79 },
173 { 0, 191, 255 },
174 { 170, 234, 255 },
175 { 0, 141, 189 },
176 { 126, 173, 189 },
177 { 0, 96, 129 },
178 { 86, 118, 129 },
179 { 0, 78, 104 },
180 { 69, 95, 104 },
181 { 0, 59, 79 },
182 { 53, 73, 79 },
183 { 0, 127, 255 },
184 { 170, 212, 255 },
185 { 0, 94, 189 },
186 { 126, 157, 189 },
187 { 0, 64, 129 },
188 { 86, 107, 129 },
189 { 0, 52, 104 },
190 { 69, 86, 104 },
191 { 0, 39, 79 },
192 { 53, 66, 79 },
193 { 0, 63, 255 },
194 { 170, 191, 255 },
195 { 0, 46, 189 },
196 { 126, 141, 189 },
197 { 0, 31, 129 },
198 { 86, 96, 129 },
199 { 0, 25, 104 },
200 { 69, 78, 104 },
201 { 0, 19, 79 },
202 { 53, 59, 79 },
203 { 0, 0, 255 },
204 { 170, 170, 255 },
205 { 0, 0, 189 },
206 { 126, 126, 189 },
207 { 0, 0, 129 },
208 { 86, 86, 129 },
209 { 0, 0, 104 },
210 { 69, 69, 104 },
211 { 0, 0, 79 },
212 { 53, 53, 79 },
213 { 63, 0, 255 },
214 { 191, 170, 255 },
215 { 46, 0, 189 },
216 { 141, 126, 189 },
217 { 31, 0, 129 },
218 { 96, 86, 129 },
219 { 25, 0, 104 },
220 { 78, 69, 104 },
221 { 19, 0, 79 },
222 { 59, 53, 79 },
223 { 127, 0, 255 },
224 { 212, 170, 255 },
225 { 94, 0, 189 },
226 { 157, 126, 189 },
227 { 64, 0, 129 },
228 { 107, 86, 129 },
229 { 52, 0, 104 },
230 { 86, 69, 104 },
231 { 39, 0, 79 },
232 { 66, 53, 79 },
233 { 191, 0, 255 },
234 { 234, 170, 255 },
235 { 141, 0, 189 },
236 { 173, 126, 189 },
237 { 96, 0, 129 },
238 { 118, 86, 129 },
239 { 78, 0, 104 },
240 { 95, 69, 104 },
241 { 59, 0, 79 },
242 { 73, 53, 79 },
243 { 255, 0, 255 },
244 { 255, 170, 255 },
245 { 189, 0, 189 },
246 { 189, 126, 189 },
247 { 129, 0, 129 },
248 { 129, 86, 129 },
249 { 104, 0, 104 },
250 { 104, 69, 104 },
251 { 79, 0, 79 },
252 { 79, 53, 79 },
253 { 255, 0, 191 },
254 { 255, 170, 234 },
255 { 189, 0, 141 },
256 { 189, 126, 173 },
257 { 129, 0, 96 },
258 { 129, 86, 118 },
259 { 104, 0, 78 },
260 { 104, 69, 95 },
261 { 79, 0, 59 },
262 { 79, 53, 73 },
263 { 255, 0, 127 },
264 { 255, 170, 212 },
265 { 189, 0, 94 },
266 { 189, 126, 157 },
267 { 129, 0, 64 },
268 { 129, 86, 107 },
269 { 104, 0, 52 },
270 { 104, 69, 86 },
271 { 79, 0, 39 },
272 { 79, 53, 66 },
273 { 255, 0, 63 },
274 { 255, 170, 191 },
275 { 189, 0, 46 },
276 { 189, 126, 141 },
277 { 129, 0, 31 },
278 { 129, 86, 96 },
279 { 104, 0, 25 },
280 { 104, 69, 78 },
281 { 79, 0, 19 },
282 { 79, 53, 59 },
283 { 51, 51, 51 },
284 { 80, 80, 80 },
285 { 105, 105, 105 },
286 { 130, 130, 130 },
287 { 190, 190, 190 },
288 { 255, 255, 255 }
289 };
290
getCADACIColor(short index)291 const RGBColor getCADACIColor(short index)
292 {
293 if(index < 0 || index > 255)
294 return {255, 255, 255};
295 return CADACIColors[index];
296 }
297