d2ed01f5679fcf72f32cf6f91aa08be06b02859f
[occt.git] / src / Quantity / Quantity_Color.cxx
1 // Created by: NW,JPB,CAL
2 // Copyright (c) 1991-1999 Matra Datavision
3 // Copyright (c) 1999-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 #define IMP310300       //GG Don't raise in constructor when an HLS color
17 //                      is defined with hue sets to undefined (grey color)
18
19
20 //-Version      
21
22 //-Design       Declaration des variables specifiques aux couleurs
23
24 //-Warning      Une couleur est definie, soit en RGB, soit en HLS,
25 //              soit par un nom predefini extrait des noms X11.
26
27 //-References   
28
29 //-Language     C++ 2.0
30
31 //-Declarations
32
33 // for Test method
34 #include <Standard_ErrorHandler.hxx>
35
36 // for the class
37 #include <Quantity_Color.ixx>
38 #include <Quantity_Color_1.hxx>
39 #include <Standard_OutOfRange.hxx>
40 #include <TCollection_AsciiString.hxx>
41
42 // for Test method (suite et fin)
43 #include <string.h>
44
45 void call_hlsrgb(float h, float l, float s, float& r, float& g, float& b);
46 void call_rgbhls(float r, float g, float b, float& h, float& l, float& s);
47
48 //-Aliases
49
50 //-Global data definitions
51
52 //      -- les composantes RGB
53 //      MyRed           :       Standard_ShortReal;
54 //      MyGreen         :       Standard_ShortReal;
55 //      MyBlue          :       Standard_ShortReal;
56
57 //-Constructors
58
59 //-Destructors
60
61 //-Methods, in order
62
63 Standard_Boolean Quantity_Color::ColorFromName (const Standard_CString theName,
64                                                 Quantity_NameOfColor&  theColor)
65 {
66   TCollection_AsciiString aName (theName);
67   aName.UpperCase();
68   if (aName.Search("QUANTITY_NOC_") == 1)
69   {
70     aName = aName.SubString (14, aName.Length());
71   }
72
73   for (Standard_Integer anIter = Quantity_NOC_BLACK; anIter <= Quantity_NOC_WHITE; ++anIter)
74   {
75     Standard_CString aColorName = Quantity_Color::StringName (Quantity_NameOfColor (anIter));
76     if (aName == aColorName)
77     {
78       theColor = (Quantity_NameOfColor )anIter;
79       return Standard_True;
80     }
81   }
82   return Standard_False;
83 }
84
85 Quantity_Color::Quantity_Color () {
86
87         Quantity_Color::ValuesOf
88                 (Quantity_NOC_YELLOW, Quantity_TOC_RGB, MyRed, MyGreen, MyBlue);
89 }
90
91 Quantity_Color::Quantity_Color (const Quantity_NameOfColor AName) {
92
93         Quantity_Color::ValuesOf
94                 (AName, Quantity_TOC_RGB, MyRed, MyGreen, MyBlue);
95 }
96
97 Quantity_Color::Quantity_Color (const Quantity_Parameter R1, const Quantity_Parameter R2, const Quantity_Parameter R3, const Quantity_TypeOfColor AType) {
98
99         switch (AType) {
100
101                 case Quantity_TOC_RGB :
102                         if ( R1 < 0. || R1 > 1. ||
103                              R2 < 0. || R2 > 1. ||
104                              R3 < 0. || R3 > 1. )
105                                 Standard_OutOfRange::Raise ("Color out");
106                         MyRed   = Standard_ShortReal (R1);
107                         MyGreen = Standard_ShortReal (R2);
108                         MyBlue  = Standard_ShortReal (R3);
109                 break;
110
111                 case Quantity_TOC_HLS :
112 #ifdef IMP310300
113                         if ( (R1 < 0. && R1 != RGBHLS_H_UNDEFINED && R3 != 0.0)
114                           || (R1 > 360.) ||
115 #else
116                         if ( R1 < 0. || R1 > 359. ||
117 #endif
118                              R2 < 0. || R2 > 1. ||
119                              R3 < 0. || R3 > 1. )
120                                 Standard_OutOfRange::Raise ("Color out");
121                         Quantity_Color::hlsrgb
122                                 (Standard_ShortReal (R1),
123                                  Standard_ShortReal (R2),
124                                  Standard_ShortReal (R3),
125                                  MyRed, MyGreen, MyBlue);
126                 break;
127         }
128
129 }
130
131 void Quantity_Color::ChangeContrast (const Quantity_Rate ADelta) {
132
133 Standard_ShortReal MyHue, MyLight, MySaturation;
134
135         Quantity_Color::rgbhls
136                         (MyRed, MyGreen, MyBlue, MyHue, MyLight, MySaturation);
137
138         MySaturation    += MySaturation * Standard_ShortReal (ADelta) / (float ) 100.0;
139
140         if ( !((MySaturation > 1.0) || (MySaturation < 0.0) )) {
141                 Quantity_Color::hlsrgb
142                         (MyHue, MyLight, MySaturation, MyRed, MyGreen, MyBlue);
143         }
144 }
145
146 void Quantity_Color::ChangeIntensity (const Quantity_Rate ADelta) {
147
148 Standard_ShortReal MyHue, MyLight, MySaturation;
149
150         Quantity_Color::rgbhls
151                         (MyRed, MyGreen, MyBlue, MyHue, MyLight, MySaturation);
152
153
154         MyLight         += MyLight * Standard_ShortReal (ADelta) / (float ) 100.0;
155         if ( !((MyLight > 1.0) || (MyLight < 0.0) )) {
156                 Quantity_Color::hlsrgb
157                         (MyHue, MyLight, MySaturation, MyRed, MyGreen, MyBlue);
158         }
159
160 }
161
162 Quantity_Color& Quantity_Color::Assign (const Quantity_Color& Other) {
163
164         MyRed   = Standard_ShortReal (Other.Red ());
165         MyGreen = Standard_ShortReal (Other.Green ());
166         MyBlue  = Standard_ShortReal (Other.Blue ());
167         return (*this);
168
169 }
170
171 void Quantity_Color::SetValues (const Quantity_NameOfColor AName) {
172
173         Quantity_Color::ValuesOf
174                 (AName, Quantity_TOC_RGB, MyRed, MyGreen, MyBlue);
175
176 }
177
178 void Quantity_Color::SetValues (const Quantity_Parameter R1, const Quantity_Parameter R2, const Quantity_Parameter R3, const Quantity_TypeOfColor AType) {
179
180         switch (AType) {
181
182                 case Quantity_TOC_RGB :
183                         if ( R1 < 0. || R1 > 1. ||
184                              R2 < 0. || R2 > 1. ||
185                              R3 < 0. || R3 > 1. )
186                                 Standard_OutOfRange::Raise ("Color out");
187                         else {
188                                 MyRed   = Standard_ShortReal (R1);
189                                 MyGreen = Standard_ShortReal (R2);
190                                 MyBlue  = Standard_ShortReal (R3);
191                         }
192                 break;
193
194                 case Quantity_TOC_HLS :
195 #ifdef IMP310300
196                         if ( R1 < 0. || R1 > 360. ||
197 #else
198                         if ( R1 < 0. || R1 > 359. ||
199 #endif
200                              R2 < 0. || R2 > 1. ||
201                              R3 < 0. || R3 > 1. )
202                                 Standard_OutOfRange::Raise ("Color out");
203                         else {
204                                 Quantity_Color::hlsrgb
205                                         (Standard_ShortReal (R1),
206                                          Standard_ShortReal (R2),
207                                          Standard_ShortReal (R3),
208                                          MyRed, MyGreen, MyBlue);
209                         }
210                 break;
211         }
212
213 }
214
215 Standard_Real Quantity_Color::Distance (const Quantity_Color& AColor) const {
216
217 Standard_Real R1, G1, B1;
218 Standard_Real R2, G2, B2;
219
220         R1      = Standard_Real (MyRed);
221         G1      = Standard_Real (MyGreen);
222         B1      = Standard_Real (MyBlue);
223
224         R2      = Standard_Real (AColor.MyRed);
225         G2      = Standard_Real (AColor.MyGreen);
226         B2      = Standard_Real (AColor.MyBlue);
227
228         return  Sqrt (
229                         ((R1 - R2) * (R1 - R2)) +
230                         ((G1 - G2) * (G1 - G2)) +
231                         ((B1 - B2) * (B1 - B2))
232                      );
233
234 }
235
236 Standard_Real Quantity_Color::SquareDistance (const Quantity_Color& AColor) const {
237
238 Standard_Real R1, G1, B1;
239 Standard_Real R2, G2, B2;
240
241         R1      = Standard_Real (MyRed);
242         G1      = Standard_Real (MyGreen);
243         B1      = Standard_Real (MyBlue);
244
245         R2      = Standard_Real (AColor.MyRed);
246         G2      = Standard_Real (AColor.MyGreen);
247         B2      = Standard_Real (AColor.MyBlue);
248
249         return  (
250                         ((R1 - R2) * (R1 - R2)) +
251                         ((G1 - G2) * (G1 - G2)) +
252                         ((B1 - B2) * (B1 - B2))
253                 );
254
255 }
256
257 void Quantity_Color::Delta (const Quantity_Color& AColor, Quantity_Parameter& DC, Quantity_Parameter& DI) const {
258
259 Standard_ShortReal MyHue, MyLight, MySaturation;
260
261         Quantity_Color::rgbhls
262                         (MyRed, MyGreen, MyBlue, MyHue, MyLight, MySaturation);
263
264         DC      = Quantity_Parameter (MySaturation      - AColor.Saturation ());
265         DI      = Quantity_Parameter (MyLight           - AColor.Light ());
266
267 }
268
269 Standard_Boolean Quantity_Color::IsDifferent (const Quantity_Color& Other) const {
270
271         return (Distance (Other) > Epsilon ());
272
273 }
274
275 Standard_Boolean Quantity_Color::IsEqual (const Quantity_Color& Other) const {
276
277         return (Distance (Other) <= Epsilon ());
278
279 }
280
281 Quantity_NameOfColor Quantity_Color::Name () const {
282
283 Quantity_NameOfColor MyNewName = Quantity_NOC_BLACK;    // Nom courant.
284 Quantity_Color Col;                             // Couleur courante.
285 Standard_Real NewDist = 4.0;                    // Distance courante.
286 Standard_Real Dist = 4.0;                       // Distance la plus courte.
287
288 Standard_Integer Begin, End, Current;
289
290                 //
291                 // Parcours de l'enumeration
292                 //
293                 Begin   = Standard_Integer (Quantity_NOC_BLACK);
294                 End     = Standard_Integer (Quantity_NOC_WHITE);
295
296                 for (Current = Begin;
297                         ((Current <= End) && (NewDist != 0.0)); Current++) {
298
299                         Col.SetValues (Quantity_NameOfColor (Current));
300                         NewDist = 
301                         ((MyRed   - Col.MyRed)   * (MyRed - Col.MyRed))     +
302                         ((MyGreen - Col.MyGreen) * (MyGreen - Col.MyGreen)) +
303                         ((MyBlue  - Col.MyBlue)  * (MyBlue - Col.MyBlue));
304
305                         if (NewDist < Dist) {
306                                 MyNewName = Quantity_NameOfColor (Current);
307                                 Dist = NewDist;
308                         }
309                 } // Fin de boucle for
310
311                 return (MyNewName);
312
313 }
314
315 Quantity_Parameter Quantity_Color::Epsilon () {
316
317         return (TheEpsilon);
318
319 }
320
321 void Quantity_Color::SetEpsilon (const Quantity_Parameter AnEpsilon) {
322
323         TheEpsilon      = AnEpsilon;
324
325 }
326
327 Quantity_NameOfColor Quantity_Color::Name (const Quantity_Parameter R, const Quantity_Parameter G, const Quantity_Parameter B) {
328
329         if ( R < 0. || R > 1. ||
330              G < 0. || G > 1. ||
331              B < 0. || B > 1. )
332                 Standard_OutOfRange::Raise ("Color out");
333
334 Quantity_Color AColor (R, G, B, Quantity_TOC_RGB);      // Couleur definie en RGB.
335
336         return (AColor.Name ());
337
338 }
339
340 Quantity_Parameter Quantity_Color::Red () const {
341
342         return (Standard_Real (MyRed));
343
344 }
345
346 Quantity_Parameter Quantity_Color::Green () const {
347
348         return (Standard_Real (MyGreen));
349
350 }
351
352 Quantity_Parameter Quantity_Color::Blue () const {
353
354         return (Standard_Real (MyBlue));
355
356 }
357
358 Quantity_Parameter Quantity_Color::Hue () const {
359
360 Standard_ShortReal MyHue, MyLight, MySaturation;
361
362         Quantity_Color::rgbhls
363                         (MyRed, MyGreen, MyBlue, MyHue, MyLight, MySaturation);
364
365         return (Standard_Real (MyHue));
366
367 }
368
369 Quantity_Parameter Quantity_Color::Light () const {
370
371 Standard_ShortReal MyHue, MyLight, MySaturation;
372
373         Quantity_Color::rgbhls
374                         (MyRed, MyGreen, MyBlue, MyHue, MyLight, MySaturation);
375
376         return (Standard_Real (MyLight));
377
378 }
379
380 Quantity_Parameter Quantity_Color::Saturation () const {
381
382 Standard_ShortReal MyHue, MyLight, MySaturation;
383
384         Quantity_Color::rgbhls
385                         (MyRed, MyGreen, MyBlue, MyHue, MyLight, MySaturation);
386
387         return (Standard_Real (MySaturation));
388
389 }
390
391 void Quantity_Color::Values (Quantity_Parameter& R1, Quantity_Parameter& R2, Quantity_Parameter& R3, const Quantity_TypeOfColor AType) const {
392
393
394         switch (AType) {
395
396                 case Quantity_TOC_RGB :
397                         R1      = Quantity_Parameter (MyRed);
398                         R2      = Quantity_Parameter (MyGreen);
399                         R3      = Quantity_Parameter (MyBlue);
400                 break;
401
402                 case Quantity_TOC_HLS :
403                       { Standard_ShortReal MyHue, MyLight, MySaturation;
404
405                         Quantity_Color::rgbhls
406                          (MyRed, MyGreen, MyBlue, MyHue, MyLight, MySaturation);
407
408                         R1      = Quantity_Parameter (MyHue);
409                         R2      = Quantity_Parameter (MyLight);
410                         R3      = Quantity_Parameter (MySaturation);
411                       }
412                 break;
413         }
414
415 }
416
417 void Quantity_Color::RgbHls (const Quantity_Parameter R, const Quantity_Parameter G, const Quantity_Parameter B, Quantity_Parameter& H, Quantity_Parameter& L, Quantity_Parameter& S) {
418
419 Standard_ShortReal HH, LL, SS;
420
421         call_rgbhls (Standard_ShortReal (R),
422                         Standard_ShortReal (G),
423                         Standard_ShortReal (B),
424                         HH, LL, SS);
425
426         H       = Quantity_Parameter (HH);
427         L       = Quantity_Parameter (LL);
428         S       = Quantity_Parameter (SS);
429
430 }
431
432 void Quantity_Color::HlsRgb (const Quantity_Parameter H, const Quantity_Parameter L, const Quantity_Parameter S, Quantity_Parameter& R, Quantity_Parameter& G, Quantity_Parameter& B) {
433
434 Standard_ShortReal RR, GG, BB;
435
436         call_hlsrgb (Standard_ShortReal (H),
437                         Standard_ShortReal (L),
438                         Standard_ShortReal (S),
439                         RR, GG, BB);
440
441         R       = Quantity_Parameter (RR);
442         G       = Quantity_Parameter (GG);
443         B       = Quantity_Parameter (BB);
444
445 }
446
447 void Quantity_Color::rgbhls (const Standard_ShortReal R, const Standard_ShortReal G, const Standard_ShortReal B, Standard_ShortReal& H, Standard_ShortReal& L, Standard_ShortReal& S) {
448
449         call_rgbhls (R, G, B, H, L, S);
450
451 }
452
453 void Quantity_Color::hlsrgb (const Standard_ShortReal H, const Standard_ShortReal L, const Standard_ShortReal S, Standard_ShortReal& R, Standard_ShortReal& G, Standard_ShortReal& B) {
454
455         call_hlsrgb (H, L, S, R, G, B);
456
457 }
458
459 //=======================================================================
460 //function : Color2argb
461 //purpose  : 
462 //=======================================================================
463
464 void Quantity_Color::Color2argb (const Quantity_Color& theColor,
465                                  Standard_Integer& theARGB)
466 {
467   const Standard_Integer aColor[3] = {
468     static_cast<Standard_Integer> (255 * theColor.MyRed),
469     static_cast<Standard_Integer> (255 * theColor.MyGreen),
470     static_cast<Standard_Integer> (255 * theColor.MyBlue)
471   };
472   theARGB = (((aColor[0] & 0xff) << 16) |
473              ((aColor[1] & 0xff) << 8)  |
474              (aColor[2] & 0xff));
475 }
476
477 //=======================================================================
478 //function : Argb2color
479 //purpose  : 
480 //=======================================================================
481
482 void Quantity_Color::Argb2color (const Standard_Integer theARGB,
483                                  Quantity_Color& theColor)
484 {
485   const Quantity_Parameter aColor[3] = {
486     static_cast <Quantity_Parameter> ((theARGB & 0xff0000) >> 16),
487     static_cast <Quantity_Parameter> ((theARGB & 0x00ff00) >> 8),
488     static_cast <Quantity_Parameter> ((theARGB & 0x0000ff))
489   };
490   theColor.SetValues(aColor[0] / 255.0, aColor[1] / 255.0, aColor[2] / 255.0,
491                      Quantity_TOC_RGB);
492 }
493
494 void Quantity_Color::ValuesOf (const Quantity_NameOfColor AName, const Quantity_TypeOfColor AType, Standard_ShortReal& R1, Standard_ShortReal& R2, Standard_ShortReal& R3) {
495
496 Standard_ShortReal RR = 0 ;
497 Standard_ShortReal RG = 0 ;
498 Standard_ShortReal RB = 0 ;
499
500 switch (AName) {
501
502         case Quantity_NOC_BLACK :
503                 RR = R1 = 0.000000; RG = R2 = 0.000000; RB = R3 = 0.000000;
504         break;
505         case Quantity_NOC_MATRAGRAY :
506                 RR = R1 = (float ) 0.600000; RG = R2 = (float ) 0.600000; RB = R3 = (float ) 0.600000;
507         break;
508         case Quantity_NOC_MATRABLUE :
509                 RR = R1 = 0.000000; RG = R2 = 0.000000; RB = R3 = 0.750000;
510         break;
511         case Quantity_NOC_ALICEBLUE :
512                 RR = R1 = (float ) 0.941176; RG = R2 = (float ) 0.972549; RB = R3 = 1.000000;
513         break;
514         case Quantity_NOC_ANTIQUEWHITE :
515                 RR = R1 = (float ) 0.980392; RG = R2 = (float ) 0.921569; RB = R3 = (float ) 0.843137;
516         break;
517         case Quantity_NOC_ANTIQUEWHITE1 :
518                 RR = R1 = 1.000000; RG = R2 = (float ) 0.937255; RB = R3 = (float ) 0.858824;
519         break;
520         case Quantity_NOC_ANTIQUEWHITE2 :
521                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.874510; RB = R3 = (float ) 0.800000;
522         break;
523         case Quantity_NOC_ANTIQUEWHITE3 :
524                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.752941; RB = R3 = (float ) 0.690196;
525         break;
526         case Quantity_NOC_ANTIQUEWHITE4 :
527                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.513725; RB = R3 = (float ) 0.470588;
528         break;
529         case Quantity_NOC_AQUAMARINE1 :
530                 RR = R1 = (float ) 0.498039; RG = R2 = 1.000000; RB = R3 = (float ) 0.831373;
531         break;
532         case Quantity_NOC_AQUAMARINE2 :
533                 RR = R1 = (float ) 0.462745; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.776471;
534         break;
535         case Quantity_NOC_AQUAMARINE4 :
536                 RR = R1 = (float ) 0.270588; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.454902;
537         break;
538         case Quantity_NOC_AZURE :
539                 RR = R1 = (float ) 0.941176; RG = R2 = 1.000000; RB = R3 = 1.000000;
540         break;
541         case Quantity_NOC_AZURE2 :
542                 RR = R1 = (float ) 0.878431; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.933333;
543         break;
544         case Quantity_NOC_AZURE3 :
545                 RR = R1 = (float ) 0.756863; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.803922;
546         break;
547         case Quantity_NOC_AZURE4 :
548                 RR = R1 = (float ) 0.513725; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.545098;
549         break;
550         case Quantity_NOC_BEIGE :
551                 RR = R1 = (float ) 0.960784; RG = R2 = (float ) 0.960784; RB = R3 = (float ) 0.862745;
552         break;
553         case Quantity_NOC_BISQUE :
554                 RR = R1 = 1.000000; RG = R2 = (float ) 0.894118; RB = R3 = (float ) 0.768627;
555         break;
556         case Quantity_NOC_BISQUE2 :
557                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.835294; RB = R3 = (float ) 0.717647;
558         break;
559         case Quantity_NOC_BISQUE3 :
560                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.717647; RB = R3 = (float ) 0.619608;
561         break;
562         case Quantity_NOC_BISQUE4 :
563                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.490196; RB = R3 = (float ) 0.419608;
564         break;
565         case Quantity_NOC_BLANCHEDALMOND :
566                 RR = R1 = 1.000000; RG = R2 = (float ) 0.921569; RB = R3 = (float ) 0.803922;
567         break;
568         case Quantity_NOC_BLUE1 :
569                 RR = R1 = 0.000000; RG = R2 = 0.000000; RB = R3 = 1.000000;
570         break;
571         case Quantity_NOC_BLUE2 :
572                 RR = R1 = 0.000000; RG = R2 = 0.000000; RB = R3 = (float ) 0.933333;
573         break;
574         case Quantity_NOC_BLUE3 :
575                 RR = R1 = 0.000000; RG = R2 = 0.000000; RB = R3 = (float ) 0.803922;
576         break;
577         case Quantity_NOC_BLUE4 :
578                 RR = R1 = 0.000000; RG = R2 = 0.000000; RB = R3 = (float ) 0.545098;
579         break;
580         case Quantity_NOC_BLUEVIOLET :
581                 RR = R1 = (float ) 0.541176; RG = R2 = (float ) 0.168627; RB = R3 = (float ) 0.886275;
582         break;
583         case Quantity_NOC_BROWN :
584                 RR = R1 = (float ) 0.647059; RG = R2 = (float ) 0.164706; RB = R3 = (float ) 0.164706;
585         break;
586         case Quantity_NOC_BROWN1 :
587                 RR = R1 = 1.000000; RG = R2 = (float ) 0.250980; RB = R3 = (float ) 0.250980;
588         break;
589         case Quantity_NOC_BROWN2 :
590                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.231373; RB = R3 = (float ) 0.231373;
591         break;
592         case Quantity_NOC_BROWN3 :
593                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.200000; RB = R3 = (float ) 0.200000;
594         break;
595         case Quantity_NOC_BROWN4 :
596                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.137255; RB = R3 = (float ) 0.137255;
597         break;
598         case Quantity_NOC_BURLYWOOD :
599                 RR = R1 = (float ) 0.870588; RG = R2 = (float ) 0.721569; RB = R3 = (float ) 0.529412;
600         break;
601         case Quantity_NOC_BURLYWOOD1 :
602                 RR = R1 = 1.000000; RG = R2 = (float ) 0.827451; RB = R3 = (float ) 0.607843;
603         break;
604         case Quantity_NOC_BURLYWOOD2 :
605                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.772549; RB = R3 = (float ) 0.568627;
606         break;
607         case Quantity_NOC_BURLYWOOD3 :
608                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.666667; RB = R3 = (float ) 0.490196;
609         break;
610         case Quantity_NOC_BURLYWOOD4 :
611                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.450980; RB = R3 = (float ) 0.333333;
612         break;
613         case Quantity_NOC_CADETBLUE :
614                 RR = R1 = (float ) 0.372549; RG = R2 = (float ) 0.619608; RB = R3 = (float ) 0.627451;
615         break;
616         case Quantity_NOC_CADETBLUE1 :
617                 RR = R1 = (float ) 0.596078; RG = R2 = (float ) 0.960784; RB = R3 = 1.000000;
618         break;
619         case Quantity_NOC_CADETBLUE2 :
620                 RR = R1 = (float ) 0.556863; RG = R2 = (float ) 0.898039; RB = R3 = (float ) 0.933333;
621         break;
622         case Quantity_NOC_CADETBLUE3 :
623                 RR = R1 = (float ) 0.478431; RG = R2 = (float ) 0.772549; RB = R3 = (float ) 0.803922;
624         break;
625         case Quantity_NOC_CADETBLUE4 :
626                 RR = R1 = (float ) 0.325490; RG = R2 = (float ) 0.525490; RB = R3 = (float ) 0.545098;
627         break;
628         case Quantity_NOC_CHARTREUSE :
629                 RR = R1 = (float ) 0.498039; RG = R2 = 1.000000; RB = R3 = 0.000000;
630         break;
631         case Quantity_NOC_CHARTREUSE1 :
632                 RR = R1 = (float ) 0.498039; RG = R2 = 1.000000; RB = R3 = 0.000000;
633         break;
634         case Quantity_NOC_CHARTREUSE2 :
635                 RR = R1 = (float ) 0.462745; RG = R2 = (float ) 0.933333; RB = R3 = 0.000000;
636         break;
637         case Quantity_NOC_CHARTREUSE3 :
638                 RR = R1 = (float ) 0.400000; RG = R2 = (float ) 0.803922; RB = R3 = 0.000000;
639         break;
640         case Quantity_NOC_CHARTREUSE4 :
641                 RR = R1 = (float ) 0.270588; RG = R2 = (float ) 0.545098; RB = R3 = 0.000000;
642         break;
643         case Quantity_NOC_CHOCOLATE :
644                 RR = R1 = (float ) 0.823529; RG = R2 = (float ) 0.411765; RB = R3 = (float ) 0.117647;
645         break;
646         case Quantity_NOC_CHOCOLATE1 :
647                 RR = R1 = 1.000000; RG = R2 = (float ) 0.498039; RB = R3 = (float ) 0.141176;
648         break;
649         case Quantity_NOC_CHOCOLATE2 :
650                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.462745; RB = R3 = (float ) 0.129412;
651         break;
652         case Quantity_NOC_CHOCOLATE3 :
653                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.400000; RB = R3 = (float ) 0.113725;
654         break;
655         case Quantity_NOC_CHOCOLATE4 :
656                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.270588; RB = R3 = (float ) 0.074510;
657         break;
658         case Quantity_NOC_CORAL :
659                 RR = R1 = 1.000000; RG = R2 = (float ) 0.498039; RB = R3 = (float ) 0.313725;
660         break;
661         case Quantity_NOC_CORAL1 :
662                 RR = R1 = 1.000000; RG = R2 = (float ) 0.447059; RB = R3 = (float ) 0.337255;
663         break;
664         case Quantity_NOC_CORAL2 :
665                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.415686; RB = R3 = (float ) 0.313725;
666         break;
667         case Quantity_NOC_CORAL3 :
668                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.356863; RB = R3 = (float ) 0.270588;
669         break;
670         case Quantity_NOC_CORAL4 :
671                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.243137; RB = R3 = (float ) 0.184314;
672         break;
673         case Quantity_NOC_CORNFLOWERBLUE :
674                 RR = R1 = (float ) 0.392157; RG = R2 = (float ) 0.584314; RB = R3 = (float ) 0.929412;
675         break;
676         case Quantity_NOC_CORNSILK1 :
677                 RR = R1 = 1.000000; RG = R2 = (float ) 0.972549; RB = R3 = (float ) 0.862745;
678         break;
679         case Quantity_NOC_CORNSILK2 :
680                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.909804; RB = R3 = (float ) 0.803922;
681         break;
682         case Quantity_NOC_CORNSILK3 :
683                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.784314; RB = R3 = (float ) 0.694118;
684         break;
685         case Quantity_NOC_CORNSILK4 :
686                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.533333; RB = R3 = (float ) 0.470588;
687         break;
688         case Quantity_NOC_CYAN1 :
689                 RR = R1 = 0.000000; RG = R2 = 1.000000; RB = R3 = 1.000000;
690         break;
691         case Quantity_NOC_CYAN2 :
692                 RR = R1 = 0.000000; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.933333;
693         break;
694         case Quantity_NOC_CYAN3 :
695                 RR = R1 = 0.000000; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.803922;
696         break;
697         case Quantity_NOC_CYAN4 :
698                 RR = R1 = 0.000000; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.545098;
699         break;
700         case Quantity_NOC_DARKGOLDENROD :
701                 RR = R1 = (float ) 0.721569; RG = R2 = (float ) 0.525490; RB = R3 = (float ) 0.043137;
702         break;
703         case Quantity_NOC_DARKGOLDENROD1 :
704                 RR = R1 = 1.000000; RG = R2 = (float ) 0.725490; RB = R3 = (float ) 0.058824;
705         break;
706         case Quantity_NOC_DARKGOLDENROD2 :
707                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.678431; RB = R3 = (float ) 0.054902;
708         break;
709         case Quantity_NOC_DARKGOLDENROD3 :
710                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.584314; RB = R3 = (float ) 0.047059;
711         break;
712         case Quantity_NOC_DARKGOLDENROD4 :
713                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.396078; RB = R3 = (float ) 0.031373;
714         break;
715         case Quantity_NOC_DARKGREEN :
716                 RR = R1 = 0.000000; RG = R2 = (float ) 0.392157; RB = R3 = 0.000000;
717         break;
718         case Quantity_NOC_DARKKHAKI :
719                 RR = R1 = (float ) 0.741176; RG = R2 = (float ) 0.717647; RB = R3 = (float ) 0.419608;
720         break;
721         case Quantity_NOC_DARKOLIVEGREEN :
722                 RR = R1 = (float ) 0.333333; RG = R2 = (float ) 0.419608; RB = R3 = (float ) 0.184314;
723         break;
724         case Quantity_NOC_DARKOLIVEGREEN1 :
725                 RR = R1 = (float ) 0.792157; RG = R2 = 1.000000; RB = R3 = (float ) 0.439216;
726         break;
727         case Quantity_NOC_DARKOLIVEGREEN2 :
728                 RR = R1 = (float ) 0.737255; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.407843;
729         break;
730         case Quantity_NOC_DARKOLIVEGREEN3 :
731                 RR = R1 = (float ) 0.635294; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.352941;
732         break;
733         case Quantity_NOC_DARKOLIVEGREEN4 :
734                 RR = R1 = (float ) 0.431373; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.239216;
735         break;
736         case Quantity_NOC_DARKORANGE :
737                 RR = R1 = 1.000000; RG = R2 = (float ) 0.549020; RB = R3 = 0.000000;
738         break;
739         case Quantity_NOC_DARKORANGE1 :
740                 RR = R1 = 1.000000; RG = R2 = (float ) 0.498039; RB = R3 = 0.000000;
741         break;
742         case Quantity_NOC_DARKORANGE2 :
743                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.462745; RB = R3 = 0.000000;
744         break;
745         case Quantity_NOC_DARKORANGE3 :
746                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.400000; RB = R3 = 0.000000;
747         break;
748         case Quantity_NOC_DARKORANGE4 :
749                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.270588; RB = R3 = 0.000000;
750         break;
751         case Quantity_NOC_DARKORCHID :
752                 RR = R1 = (float ) 0.600000; RG = R2 = (float ) 0.196078; RB = R3 = (float ) 0.800000;
753         break;
754         case Quantity_NOC_DARKORCHID1 :
755                 RR = R1 = (float ) 0.749020; RG = R2 = (float ) 0.243137; RB = R3 = 1.000000;
756         break;
757         case Quantity_NOC_DARKORCHID2 :
758                 RR = R1 = (float ) 0.698039; RG = R2 = (float ) 0.227451; RB = R3 = (float ) 0.933333;
759         break;
760         case Quantity_NOC_DARKORCHID3 :
761                 RR = R1 = (float ) 0.603922; RG = R2 = (float ) 0.196078; RB = R3 = (float ) 0.803922;
762         break;
763         case Quantity_NOC_DARKORCHID4 :
764                 RR = R1 = (float ) 0.407843; RG = R2 = (float ) 0.133333; RB = R3 = (float ) 0.545098;
765         break;
766         case Quantity_NOC_DARKSALMON :
767                 RR = R1 = (float ) 0.913725; RG = R2 = (float ) 0.588235; RB = R3 = (float ) 0.478431;
768         break;
769         case Quantity_NOC_DARKSEAGREEN :
770                 RR = R1 = (float ) 0.560784; RG = R2 = (float ) 0.737255; RB = R3 = (float ) 0.560784;
771         break;
772         case Quantity_NOC_DARKSEAGREEN1 :
773                 RR = R1 = (float ) 0.756863; RG = R2 = 1.000000; RB = R3 = (float ) 0.756863;
774         break;
775         case Quantity_NOC_DARKSEAGREEN2 :
776                 RR = R1 = (float ) 0.705882; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.705882;
777         break;
778         case Quantity_NOC_DARKSEAGREEN3 :
779                 RR = R1 = (float ) 0.607843; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.607843;
780         break;
781         case Quantity_NOC_DARKSEAGREEN4 :
782                 RR = R1 = (float ) 0.411765; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.411765;
783         break;
784         case Quantity_NOC_DARKSLATEBLUE :
785                 RR = R1 = (float ) 0.282353; RG = R2 = (float ) 0.239216; RB = R3 = (float ) 0.545098;
786         break;
787         case Quantity_NOC_DARKSLATEGRAY1 :
788                 RR = R1 = (float ) 0.592157; RG = R2 = 1.000000; RB = R3 = 1.000000;
789         break;
790         case Quantity_NOC_DARKSLATEGRAY2 :
791                 RR = R1 = (float ) 0.552941; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.933333;
792         break;
793         case Quantity_NOC_DARKSLATEGRAY3 :
794                 RR = R1 = (float ) 0.474510; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.803922;
795         break;
796         case Quantity_NOC_DARKSLATEGRAY4 :
797                 RR = R1 = (float ) 0.321569; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.545098;
798         break;
799         case Quantity_NOC_DARKSLATEGRAY :
800                 RR = R1 = (float ) 0.184314; RG = R2 = (float ) 0.309804; RB = R3 = (float ) 0.309804;
801         break;
802         case Quantity_NOC_DARKTURQUOISE :
803                 RR = R1 = 0.000000; RG = R2 = (float ) 0.807843; RB = R3 = (float ) 0.819608;
804         break;
805         case Quantity_NOC_DARKVIOLET :
806                 RR = R1 = (float ) 0.580392; RG = R2 = 0.000000; RB = R3 = (float ) 0.827451;
807         break;
808         case Quantity_NOC_DEEPPINK :
809                 RR = R1 = 1.000000; RG = R2 = (float ) 0.078431; RB = R3 = (float ) 0.576471;
810         break;
811         case Quantity_NOC_DEEPPINK2 :
812                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.070588; RB = R3 = (float ) 0.537255;
813         break;
814         case Quantity_NOC_DEEPPINK3 :
815                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.062745; RB = R3 = (float ) 0.462745;
816         break;
817         case Quantity_NOC_DEEPPINK4 :
818                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.039216; RB = R3 = (float ) 0.313725;
819         break;
820         case Quantity_NOC_DEEPSKYBLUE1 :
821                 RR = R1 = 0.000000; RG = R2 = (float ) 0.749020; RB = R3 = 1.000000;
822         break;
823         case Quantity_NOC_DEEPSKYBLUE2 :
824                 RR = R1 = 0.000000; RG = R2 = (float ) 0.698039; RB = R3 = (float ) 0.933333;
825         break;
826         case Quantity_NOC_DEEPSKYBLUE3 :
827                 RR = R1 = 0.000000; RG = R2 = (float ) 0.603922; RB = R3 = (float ) 0.803922;
828         break;
829         case Quantity_NOC_DEEPSKYBLUE4 :
830                 RR = R1 = 0.000000; RG = R2 = (float ) 0.407843; RB = R3 = (float ) 0.545098;
831         break;
832         case Quantity_NOC_DODGERBLUE1 :
833                 RR = R1 = (float ) 0.117647; RG = R2 = (float ) 0.564706; RB = R3 = 1.000000;
834         break;
835         case Quantity_NOC_DODGERBLUE2 :
836                 RR = R1 = (float ) 0.109804; RG = R2 = (float ) 0.525490; RB = R3 = (float ) 0.933333;
837         break;
838         case Quantity_NOC_DODGERBLUE3 :
839                 RR = R1 = (float ) 0.094118; RG = R2 = (float ) 0.454902; RB = R3 = (float ) 0.803922;
840         break;
841         case Quantity_NOC_DODGERBLUE4 :
842                 RR = R1 = (float ) 0.062745; RG = R2 = (float ) 0.305882; RB = R3 = (float ) 0.545098;
843         break;
844         case Quantity_NOC_FIREBRICK :
845                 RR = R1 = (float ) 0.698039; RG = R2 = (float ) 0.133333; RB = R3 = (float ) 0.133333;
846         break;
847         case Quantity_NOC_FIREBRICK1 :
848                 RR = R1 = 1.000000; RG = R2 = (float ) 0.188235; RB = R3 = (float ) 0.188235;
849         break;
850         case Quantity_NOC_FIREBRICK2 :
851                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.172549; RB = R3 = (float ) 0.172549;
852         break;
853         case Quantity_NOC_FIREBRICK3 :
854                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.149020; RB = R3 = (float ) 0.149020;
855         break;
856         case Quantity_NOC_FIREBRICK4 :
857                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.101961; RB = R3 = (float ) 0.101961;
858         break;
859         case Quantity_NOC_FLORALWHITE :
860                 RR = R1 = 1.000000; RG = R2 = (float ) 0.980392; RB = R3 = (float ) 0.941176;
861         break;
862         case Quantity_NOC_FORESTGREEN :
863                 RR = R1 = (float ) 0.133333; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.133333;
864         break;
865         case Quantity_NOC_GAINSBORO :
866                 RR = R1 = (float ) 0.862745; RG = R2 = (float ) 0.862745; RB = R3 = (float ) 0.862745;
867         break;
868         case Quantity_NOC_GHOSTWHITE :
869                 RR = R1 = (float ) 0.972549; RG = R2 = (float ) 0.972549; RB = R3 = 1.000000;
870         break;
871         case Quantity_NOC_GOLD :
872                 RR = R1 = 1.000000; RG = R2 = (float ) 0.843137; RB = R3 = 0.000000;
873         break;
874         case Quantity_NOC_GOLD1 :
875                 RR = R1 = 1.000000; RG = R2 = (float ) 0.843137; RB = R3 = 0.000000;
876         break;
877         case Quantity_NOC_GOLD2 :
878                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.788235; RB = R3 = 0.000000;
879         break;
880         case Quantity_NOC_GOLD3 :
881                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.678431; RB = R3 = 0.000000;
882         break;
883         case Quantity_NOC_GOLD4 :
884                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.458824; RB = R3 = 0.000000;
885         break;
886         case Quantity_NOC_GOLDENROD :
887                 RR = R1 = (float ) 0.854902; RG = R2 = (float ) 0.647059; RB = R3 = (float ) 0.125490;
888         break;
889         case Quantity_NOC_GOLDENROD1 :
890                 RR = R1 = 1.000000; RG = R2 = (float ) 0.756863; RB = R3 = (float ) 0.145098;
891         break;
892         case Quantity_NOC_GOLDENROD2 :
893                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.705882; RB = R3 = (float ) 0.133333;
894         break;
895         case Quantity_NOC_GOLDENROD3 :
896                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.607843; RB = R3 = (float ) 0.113725;
897         break;
898         case Quantity_NOC_GOLDENROD4 :
899                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.411765; RB = R3 = (float ) 0.078431;
900         break;
901         case Quantity_NOC_GRAY :
902                 RR = R1 = (float ) 0.752941; RG = R2 = (float ) 0.752941; RB = R3 = (float ) 0.752941;
903         break;
904         case Quantity_NOC_GRAY0 :
905                 RR = R1 = 0.000000; RG = R2 = 0.000000; RB = R3 = 0.000000;
906         break;
907         case Quantity_NOC_GRAY1 :
908                 RR = R1 = (float ) 0.011765; RG = R2 = (float ) 0.011765; RB = R3 = (float ) 0.011765;
909         break;
910         case Quantity_NOC_GRAY10 :
911                 RR = R1 = (float ) 0.101961; RG = R2 = (float ) 0.101961; RB = R3 = (float ) 0.101961;
912         break;
913         case Quantity_NOC_GRAY11 :
914                 RR = R1 = (float ) 0.109804; RG = R2 = (float ) 0.109804; RB = R3 = (float ) 0.109804;
915         break;
916         case Quantity_NOC_GRAY12 :
917                 RR = R1 = (float ) 0.121569; RG = R2 = (float ) 0.121569; RB = R3 = (float ) 0.121569;
918         break;
919         case Quantity_NOC_GRAY13 :
920                 RR = R1 = (float ) 0.129412; RG = R2 = (float ) 0.129412; RB = R3 = (float ) 0.129412;
921         break;
922         case Quantity_NOC_GRAY14 :
923                 RR = R1 = (float ) 0.141176; RG = R2 = (float ) 0.141176; RB = R3 = (float ) 0.141176;
924         break;
925         case Quantity_NOC_GRAY15 :
926                 RR = R1 = (float ) 0.149020; RG = R2 = (float ) 0.149020; RB = R3 = (float ) 0.149020;
927         break;
928         case Quantity_NOC_GRAY16 :
929                 RR = R1 = (float ) 0.160784; RG = R2 = (float ) 0.160784; RB = R3 = (float ) 0.160784;
930         break;
931         case Quantity_NOC_GRAY17 :
932                 RR = R1 = (float ) 0.168627; RG = R2 = (float ) 0.168627; RB = R3 = (float ) 0.168627;
933         break;
934         case Quantity_NOC_GRAY18 :
935                 RR = R1 = (float ) 0.180392; RG = R2 = (float ) 0.180392; RB = R3 = (float ) 0.180392;
936         break;
937         case Quantity_NOC_GRAY19 :
938                 RR = R1 = (float ) 0.188235; RG = R2 = (float ) 0.188235; RB = R3 = (float ) 0.188235;
939         break;
940         case Quantity_NOC_GRAY2 :
941                 RR = R1 = (float ) 0.019608; RG = R2 = (float ) 0.019608; RB = R3 = (float ) 0.019608;
942         break;
943         case Quantity_NOC_GRAY20 :
944                 RR = R1 = (float ) 0.200000; RG = R2 = (float ) 0.200000; RB = R3 = (float ) 0.200000;
945         break;
946         case Quantity_NOC_GRAY21 :
947                 RR = R1 = (float ) 0.211765; RG = R2 = (float ) 0.211765; RB = R3 = (float ) 0.211765;
948         break;
949         case Quantity_NOC_GRAY22 :
950                 RR = R1 = (float ) 0.219608; RG = R2 = (float ) 0.219608; RB = R3 = (float ) 0.219608;
951         break;
952         case Quantity_NOC_GRAY23 :
953                 RR = R1 = (float ) 0.231373; RG = R2 = (float ) 0.231373; RB = R3 = (float ) 0.231373;
954         break;
955         case Quantity_NOC_GRAY24 :
956                 RR = R1 = (float ) 0.239216; RG = R2 = (float ) 0.239216; RB = R3 = (float ) 0.239216;
957         break;
958         case Quantity_NOC_GRAY25 :
959                 RR = R1 = (float ) 0.250980; RG = R2 = (float ) 0.250980; RB = R3 = (float ) 0.250980;
960         break;
961         case Quantity_NOC_GRAY26 :
962                 RR = R1 = (float ) 0.258824; RG = R2 = (float ) 0.258824; RB = R3 = (float ) 0.258824;
963         break;
964         case Quantity_NOC_GRAY27 :
965                 RR = R1 = (float ) 0.270588; RG = R2 = (float ) 0.270588; RB = R3 = (float ) 0.270588;
966         break;
967         case Quantity_NOC_GRAY28 :
968                 RR = R1 = (float ) 0.278431; RG = R2 = (float ) 0.278431; RB = R3 = (float ) 0.278431;
969         break;
970         case Quantity_NOC_GRAY29 :
971                 RR = R1 = (float ) 0.290196; RG = R2 = (float ) 0.290196; RB = R3 = (float ) 0.290196;
972         break;
973         case Quantity_NOC_GRAY3 :
974                 RR = R1 = (float ) 0.031373; RG = R2 = (float ) 0.031373; RB = R3 = (float ) 0.031373;
975         break;
976         case Quantity_NOC_GRAY30 :
977                 RR = R1 = (float ) 0.301961; RG = R2 = (float ) 0.301961; RB = R3 = (float ) 0.301961;
978         break;
979         case Quantity_NOC_GRAY31 :
980                 RR = R1 = (float ) 0.309804; RG = R2 = (float ) 0.309804; RB = R3 = (float ) 0.309804;
981         break;
982         case Quantity_NOC_GRAY32 :
983                 RR = R1 = (float ) 0.321569; RG = R2 = (float ) 0.321569; RB = R3 = (float ) 0.321569;
984         break;
985         case Quantity_NOC_GRAY33 :
986                 RR = R1 = (float ) 0.329412; RG = R2 = (float ) 0.329412; RB = R3 = (float ) 0.329412;
987         break;
988         case Quantity_NOC_GRAY34 :
989                 RR = R1 = (float ) 0.341176; RG = R2 = (float ) 0.341176; RB = R3 = (float ) 0.341176;
990         break;
991         case Quantity_NOC_GRAY35 :
992                 RR = R1 = (float ) 0.349020; RG = R2 = (float ) 0.349020; RB = R3 = (float ) 0.349020;
993         break;
994         case Quantity_NOC_GRAY36 :
995                 RR = R1 = (float ) 0.360784; RG = R2 = (float ) 0.360784; RB = R3 = (float ) 0.360784;
996         break;
997         case Quantity_NOC_GRAY37 :
998                 RR = R1 = (float ) 0.368627; RG = R2 = (float ) 0.368627; RB = R3 = (float ) 0.368627;
999         break;
1000         case Quantity_NOC_GRAY38 :
1001                 RR = R1 = (float ) 0.380392; RG = R2 = (float ) 0.380392; RB = R3 = (float ) 0.380392;
1002         break;
1003         case Quantity_NOC_GRAY39 :
1004                 RR = R1 = (float ) 0.388235; RG = R2 = (float ) 0.388235; RB = R3 = (float ) 0.388235;
1005         break;
1006         case Quantity_NOC_GRAY4 :
1007                 RR = R1 = (float ) 0.039216; RG = R2 = (float ) 0.039216; RB = R3 = (float ) 0.039216;
1008         break;
1009         case Quantity_NOC_GRAY40 :
1010                 RR = R1 = (float ) 0.400000; RG = R2 = (float ) 0.400000; RB = R3 = (float ) 0.400000;
1011         break;
1012         case Quantity_NOC_GRAY41 :
1013                 RR = R1 = (float ) 0.411765; RG = R2 = (float ) 0.411765; RB = R3 = (float ) 0.411765;
1014         break;
1015         case Quantity_NOC_GRAY42 :
1016                 RR = R1 = (float ) 0.419608; RG = R2 = (float ) 0.419608; RB = R3 = (float ) 0.419608;
1017         break;
1018         case Quantity_NOC_GRAY43 :
1019                 RR = R1 = (float ) 0.431373; RG = R2 = (float ) 0.431373; RB = R3 = (float ) 0.431373;
1020         break;
1021         case Quantity_NOC_GRAY44 :
1022                 RR = R1 = (float ) 0.439216; RG = R2 = (float ) 0.439216; RB = R3 = (float ) 0.439216;
1023         break;
1024         case Quantity_NOC_GRAY45 :
1025                 RR = R1 = (float ) 0.450980; RG = R2 = (float ) 0.450980; RB = R3 = (float ) 0.450980;
1026         break;
1027         case Quantity_NOC_GRAY46 :
1028                 RR = R1 = (float ) 0.458824; RG = R2 = (float ) 0.458824; RB = R3 = (float ) 0.458824;
1029         break;
1030         case Quantity_NOC_GRAY47 :
1031                 RR = R1 = (float ) 0.470588; RG = R2 = (float ) 0.470588; RB = R3 = (float ) 0.470588;
1032         break;
1033         case Quantity_NOC_GRAY48 :
1034                 RR = R1 = (float ) 0.478431; RG = R2 = (float ) 0.478431; RB = R3 = (float ) 0.478431;
1035         break;
1036         case Quantity_NOC_GRAY49 :
1037                 RR = R1 = (float ) 0.490196; RG = R2 = (float ) 0.490196; RB = R3 = (float ) 0.490196;
1038         break;
1039         case Quantity_NOC_GRAY5 :
1040                 RR = R1 = (float ) 0.050980; RG = R2 = (float ) 0.050980; RB = R3 = (float ) 0.050980;
1041         break;
1042         case Quantity_NOC_GRAY50 :
1043                 RR = R1 = (float ) 0.498039; RG = R2 = (float ) 0.498039; RB = R3 = (float ) 0.498039;
1044         break;
1045         case Quantity_NOC_GRAY51 :
1046                 RR = R1 = (float ) 0.509804; RG = R2 = (float ) 0.509804; RB = R3 = (float ) 0.509804;
1047         break;
1048         case Quantity_NOC_GRAY52 :
1049                 RR = R1 = (float ) 0.521569; RG = R2 = (float ) 0.521569; RB = R3 = (float ) 0.521569;
1050         break;
1051         case Quantity_NOC_GRAY53 :
1052                 RR = R1 = (float ) 0.529412; RG = R2 = (float ) 0.529412; RB = R3 = (float ) 0.529412;
1053         break;
1054         case Quantity_NOC_GRAY54 :
1055                 RR = R1 = (float ) 0.541176; RG = R2 = (float ) 0.541176; RB = R3 = (float ) 0.541176;
1056         break;
1057         case Quantity_NOC_GRAY55 :
1058                 RR = R1 = (float ) 0.549020; RG = R2 = (float ) 0.549020; RB = R3 = (float ) 0.549020;
1059         break;
1060         case Quantity_NOC_GRAY56 :
1061                 RR = R1 = (float ) 0.560784; RG = R2 = (float ) 0.560784; RB = R3 = (float ) 0.560784;
1062         break;
1063         case Quantity_NOC_GRAY57 :
1064                 RR = R1 = (float ) 0.568627; RG = R2 = (float ) 0.568627; RB = R3 = (float ) 0.568627;
1065         break;
1066         case Quantity_NOC_GRAY58 :
1067                 RR = R1 = (float ) 0.580392; RG = R2 = (float ) 0.580392; RB = R3 = (float ) 0.580392;
1068         break;
1069         case Quantity_NOC_GRAY59 :
1070                 RR = R1 = (float ) 0.588235; RG = R2 = (float ) 0.588235; RB = R3 = (float ) 0.588235;
1071         break;
1072         case Quantity_NOC_GRAY6 :
1073                 RR = R1 = (float ) 0.058824; RG = R2 = (float ) 0.058824; RB = R3 = (float ) 0.058824;
1074         break;
1075         case Quantity_NOC_GRAY60 :
1076                 RR = R1 = (float ) 0.600000; RG = R2 = (float ) 0.600000; RB = R3 = (float ) 0.600000;
1077         break;
1078         case Quantity_NOC_GRAY61 :
1079                 RR = R1 = (float ) 0.611765; RG = R2 = (float ) 0.611765; RB = R3 = (float ) 0.611765;
1080         break;
1081         case Quantity_NOC_GRAY62 :
1082                 RR = R1 = (float ) 0.619608; RG = R2 = (float ) 0.619608; RB = R3 = (float ) 0.619608;
1083         break;
1084         case Quantity_NOC_GRAY63 :
1085                 RR = R1 = (float ) 0.631373; RG = R2 = (float ) 0.631373; RB = R3 = (float ) 0.631373;
1086         break;
1087         case Quantity_NOC_GRAY64 :
1088                 RR = R1 = (float ) 0.639216; RG = R2 = (float ) 0.639216; RB = R3 = (float ) 0.639216;
1089         break;
1090         case Quantity_NOC_GRAY65 :
1091                 RR = R1 = (float ) 0.650980; RG = R2 = (float ) 0.650980; RB = R3 = (float ) 0.650980;
1092         break;
1093         case Quantity_NOC_GRAY66 :
1094                 RR = R1 = (float ) 0.658824; RG = R2 = (float ) 0.658824; RB = R3 = (float ) 0.658824;
1095         break;
1096         case Quantity_NOC_GRAY67 :
1097                 RR = R1 = (float ) 0.670588; RG = R2 = (float ) 0.670588; RB = R3 = (float ) 0.670588;
1098         break;
1099         case Quantity_NOC_GRAY68 :
1100                 RR = R1 = (float ) 0.678431; RG = R2 = (float ) 0.678431; RB = R3 = (float ) 0.678431;
1101         break;
1102         case Quantity_NOC_GRAY69 :
1103                 RR = R1 = (float ) 0.690196; RG = R2 = (float ) 0.690196; RB = R3 = (float ) 0.690196;
1104         break;
1105         case Quantity_NOC_GRAY7 :
1106                 RR = R1 = (float ) 0.070588; RG = R2 = (float ) 0.070588; RB = R3 = (float ) 0.070588;
1107         break;
1108         case Quantity_NOC_GRAY70 :
1109                 RR = R1 = (float ) 0.701961; RG = R2 = (float ) 0.701961; RB = R3 = (float ) 0.701961;
1110         break;
1111         case Quantity_NOC_GRAY71 :
1112                 RR = R1 = (float ) 0.709804; RG = R2 = (float ) 0.709804; RB = R3 = (float ) 0.709804;
1113         break;
1114         case Quantity_NOC_GRAY72 :
1115                 RR = R1 = (float ) 0.721569; RG = R2 = (float ) 0.721569; RB = R3 = (float ) 0.721569;
1116         break;
1117         case Quantity_NOC_GRAY73 :
1118                 RR = R1 = (float ) 0.729412; RG = R2 = (float ) 0.729412; RB = R3 = (float ) 0.729412;
1119         break;
1120         case Quantity_NOC_GRAY74 :
1121                 RR = R1 = (float ) 0.741176; RG = R2 = (float ) 0.741176; RB = R3 = (float ) 0.741176;
1122         break;
1123         case Quantity_NOC_GRAY75 :
1124                 RR = R1 = (float ) 0.749020; RG = R2 = (float ) 0.749020; RB = R3 = (float ) 0.749020;
1125         break;
1126         case Quantity_NOC_GRAY76 :
1127                 RR = R1 = (float ) 0.760784; RG = R2 = (float ) 0.760784; RB = R3 = (float ) 0.760784;
1128         break;
1129         case Quantity_NOC_GRAY77 :
1130                 RR = R1 = (float ) 0.768627; RG = R2 = (float ) 0.768627; RB = R3 = (float ) 0.768627;
1131         break;
1132         case Quantity_NOC_GRAY78 :
1133                 RR = R1 = (float ) 0.780392; RG = R2 = (float ) 0.780392; RB = R3 = (float ) 0.780392;
1134         break;
1135         case Quantity_NOC_GRAY79 :
1136                 RR = R1 = (float ) 0.788235; RG = R2 = (float ) 0.788235; RB = R3 = (float ) 0.788235;
1137         break;
1138         case Quantity_NOC_GRAY8 :
1139                 RR = R1 = (float ) 0.078431; RG = R2 = (float ) 0.078431; RB = R3 = (float ) 0.078431;
1140         break;
1141         case Quantity_NOC_GRAY80 :
1142                 RR = R1 = (float ) 0.800000; RG = R2 = (float ) 0.800000; RB = R3 = (float ) 0.800000;
1143         break;
1144         case Quantity_NOC_GRAY81 :
1145                 RR = R1 = (float ) 0.811765; RG = R2 = (float ) 0.811765; RB = R3 = (float ) 0.811765;
1146         break;
1147         case Quantity_NOC_GRAY82 :
1148                 RR = R1 = (float ) 0.819608; RG = R2 = (float ) 0.819608; RB = R3 = (float ) 0.819608;
1149         break;
1150         case Quantity_NOC_GRAY83 :
1151                 RR = R1 = (float ) 0.831373; RG = R2 = (float ) 0.831373; RB = R3 = (float ) 0.831373;
1152         break;
1153         case Quantity_NOC_GRAY85 :
1154                 RR = R1 = (float ) 0.850980; RG = R2 = (float ) 0.850980; RB = R3 = (float ) 0.850980;
1155         break;
1156         case Quantity_NOC_GRAY86 :
1157                 RR = R1 = (float ) 0.858824; RG = R2 = (float ) 0.858824; RB = R3 = (float ) 0.858824;
1158         break;
1159         case Quantity_NOC_GRAY87 :
1160                 RR = R1 = (float ) 0.870588; RG = R2 = (float ) 0.870588; RB = R3 = (float ) 0.870588;
1161         break;
1162         case Quantity_NOC_GRAY88 :
1163                 RR = R1 = (float ) 0.878431; RG = R2 = (float ) 0.878431; RB = R3 = (float ) 0.878431;
1164         break;
1165         case Quantity_NOC_GRAY89 :
1166                 RR = R1 = (float ) 0.890196; RG = R2 = (float ) 0.890196; RB = R3 = (float ) 0.890196;
1167         break;
1168         case Quantity_NOC_GRAY9 :
1169                 RR = R1 = (float ) 0.090196; RG = R2 = (float ) 0.090196; RB = R3 = (float ) 0.090196;
1170         break;
1171         case Quantity_NOC_GRAY90 :
1172                 RR = R1 = (float ) 0.898039; RG = R2 = (float ) 0.898039; RB = R3 = (float ) 0.898039;
1173         break;
1174         case Quantity_NOC_GRAY91 :
1175                 RR = R1 = (float ) 0.909804; RG = R2 = (float ) 0.909804; RB = R3 = (float ) 0.909804;
1176         break;
1177         case Quantity_NOC_GRAY92 :
1178                 RR = R1 = (float ) 0.921569; RG = R2 = (float ) 0.921569; RB = R3 = (float ) 0.921569;
1179         break;
1180         case Quantity_NOC_GRAY93 :
1181                 RR = R1 = (float ) 0.929412; RG = R2 = (float ) 0.929412; RB = R3 = (float ) 0.929412;
1182         break;
1183         case Quantity_NOC_GRAY94 :
1184                 RR = R1 = (float ) 0.941176; RG = R2 = (float ) 0.941176; RB = R3 = (float ) 0.941176;
1185         break;
1186         case Quantity_NOC_GRAY95 :
1187                 RR = R1 = (float ) 0.949020; RG = R2 = (float ) 0.949020; RB = R3 = (float ) 0.949020;
1188         break;
1189         case Quantity_NOC_GREEN :
1190                 RR = R1 = 0.000000; RG = R2 = 1.000000; RB = R3 = 0.000000;
1191         break;
1192         case Quantity_NOC_GREEN1 :
1193                 RR = R1 = 0.000000; RG = R2 = 1.000000; RB = R3 = 0.000000;
1194         break;
1195         case Quantity_NOC_GREEN2 :
1196                 RR = R1 = 0.000000; RG = R2 = (float ) 0.933333; RB = R3 = 0.000000;
1197         break;
1198         case Quantity_NOC_GREEN3 :
1199                 RR = R1 = 0.000000; RG = R2 = (float ) 0.803922; RB = R3 = 0.000000;
1200         break;
1201         case Quantity_NOC_GREEN4 :
1202                 RR = R1 = 0.000000; RG = R2 = (float ) 0.545098; RB = R3 = 0.000000;
1203         break;
1204         case Quantity_NOC_GREENYELLOW :
1205                 RR = R1 = (float ) 0.678431; RG = R2 = 1.000000; RB = R3 = (float ) 0.184314;
1206         break;
1207         case Quantity_NOC_GRAY97 :
1208                 RR = R1 = (float ) 0.968627; RG = R2 = (float ) 0.968627; RB = R3 = (float ) 0.968627;
1209         break;
1210         case Quantity_NOC_GRAY98 :
1211                 RR = R1 = (float ) 0.980392; RG = R2 = (float ) 0.980392; RB = R3 = (float ) 0.980392;
1212         break;
1213         case Quantity_NOC_GRAY99 :
1214                 RR = R1 = (float ) 0.988235; RG = R2 = (float ) 0.988235; RB = R3 = (float ) 0.988235;
1215         break;
1216         case Quantity_NOC_HONEYDEW :
1217                 RR = R1 = (float ) 0.941176; RG = R2 = 1.000000; RB = R3 = (float ) 0.941176;
1218         break;
1219         case Quantity_NOC_HONEYDEW2 :
1220                 RR = R1 = (float ) 0.878431; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.878431;
1221         break;
1222         case Quantity_NOC_HONEYDEW3 :
1223                 RR = R1 = (float ) 0.756863; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.756863;
1224         break;
1225         case Quantity_NOC_HONEYDEW4 :
1226                 RR = R1 = (float ) 0.513725; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.513725;
1227         break;
1228         case Quantity_NOC_HOTPINK :
1229                 RR = R1 = 1.000000; RG = R2 = (float ) 0.411765; RB = R3 = (float ) 0.705882;
1230         break;
1231         case Quantity_NOC_HOTPINK1 :
1232                 RR = R1 = 1.000000; RG = R2 = (float ) 0.431373; RB = R3 = (float ) 0.705882;
1233         break;
1234         case Quantity_NOC_HOTPINK2 :
1235                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.415686; RB = R3 = (float ) 0.654902;
1236         break;
1237         case Quantity_NOC_HOTPINK3 :
1238                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.376471; RB = R3 = (float ) 0.564706;
1239         break;
1240         case Quantity_NOC_HOTPINK4 :
1241                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.227451; RB = R3 = (float ) 0.384314;
1242         break;
1243         case Quantity_NOC_INDIANRED :
1244                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.360784; RB = R3 = (float ) 0.360784;
1245         break;
1246         case Quantity_NOC_INDIANRED1 :
1247                 RR = R1 = 1.000000; RG = R2 = (float ) 0.415686; RB = R3 = (float ) 0.415686;
1248         break;
1249         case Quantity_NOC_INDIANRED2 :
1250                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.388235; RB = R3 = (float ) 0.388235;
1251         break;
1252         case Quantity_NOC_INDIANRED3 :
1253                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.333333; RB = R3 = (float ) 0.333333;
1254         break;
1255         case Quantity_NOC_INDIANRED4 :
1256                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.227451; RB = R3 = (float ) 0.227451;
1257         break;
1258         case Quantity_NOC_IVORY :
1259                 RR = R1 = 1.000000; RG = R2 = 1.000000; RB = R3 = (float ) 0.941176;
1260         break;
1261         case Quantity_NOC_IVORY2 :
1262                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.878431;
1263         break;
1264         case Quantity_NOC_IVORY3 :
1265                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.756863;
1266         break;
1267         case Quantity_NOC_IVORY4 :
1268                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.513725;
1269         break;
1270         case Quantity_NOC_KHAKI :
1271                 RR = R1 = (float ) 0.941176; RG = R2 = (float ) 0.901961; RB = R3 = (float ) 0.549020;
1272         break;
1273         case Quantity_NOC_KHAKI1 :
1274                 RR = R1 = 1.000000; RG = R2 = (float ) 0.964706; RB = R3 = (float ) 0.560784;
1275         break;
1276         case Quantity_NOC_KHAKI2 :
1277                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.901961; RB = R3 = (float ) 0.521569;
1278         break;
1279         case Quantity_NOC_KHAKI3 :
1280                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.776471; RB = R3 = (float ) 0.450980;
1281         break;
1282         case Quantity_NOC_KHAKI4 :
1283                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.525490; RB = R3 = (float ) 0.305882;
1284         break;
1285         case Quantity_NOC_LAVENDER :
1286                 RR = R1 = (float ) 0.901961; RG = R2 = (float ) 0.901961; RB = R3 = (float ) 0.980392;
1287         break;
1288         case Quantity_NOC_LAVENDERBLUSH1 :
1289                 RR = R1 = 1.000000; RG = R2 = (float ) 0.941176; RB = R3 = (float ) 0.960784;
1290         break;
1291         case Quantity_NOC_LAVENDERBLUSH2 :
1292                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.878431; RB = R3 = (float ) 0.898039;
1293         break;
1294         case Quantity_NOC_LAVENDERBLUSH3 :
1295                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.756863; RB = R3 = (float ) 0.772549;
1296         break;
1297         case Quantity_NOC_LAVENDERBLUSH4 :
1298                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.513725; RB = R3 = (float ) 0.525490;
1299         break;
1300         case Quantity_NOC_LAWNGREEN :
1301                 RR = R1 = (float ) 0.486275; RG = R2 = (float ) 0.988235; RB = R3 = 0.000000;
1302         break;
1303         case Quantity_NOC_LEMONCHIFFON1 :
1304                 RR = R1 = 1.000000; RG = R2 = (float ) 0.980392; RB = R3 = (float ) 0.803922;
1305         break;
1306         case Quantity_NOC_LEMONCHIFFON2 :
1307                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.913725; RB = R3 = (float ) 0.749020;
1308         break;
1309         case Quantity_NOC_LEMONCHIFFON3 :
1310                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.788235; RB = R3 = (float ) 0.647059;
1311         break;
1312         case Quantity_NOC_LEMONCHIFFON4 :
1313                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.537255; RB = R3 = (float ) 0.439216;
1314         break;
1315         case Quantity_NOC_LIGHTBLUE :
1316                 RR = R1 = (float ) 0.678431; RG = R2 = (float ) 0.847059; RB = R3 = (float ) 0.901961;
1317         break;
1318         case Quantity_NOC_LIGHTBLUE1 :
1319                 RR = R1 = (float ) 0.749020; RG = R2 = (float ) 0.937255; RB = R3 = 1.000000;
1320         break;
1321         case Quantity_NOC_LIGHTBLUE2 :
1322                 RR = R1 = (float ) 0.698039; RG = R2 = (float ) 0.874510; RB = R3 = (float ) 0.933333;
1323         break;
1324         case Quantity_NOC_LIGHTBLUE3 :
1325                 RR = R1 = (float ) 0.603922; RG = R2 = (float ) 0.752941; RB = R3 = (float ) 0.803922;
1326         break;
1327         case Quantity_NOC_LIGHTBLUE4 :
1328                 RR = R1 = (float ) 0.407843; RG = R2 = (float ) 0.513725; RB = R3 = (float ) 0.545098;
1329         break;
1330         case Quantity_NOC_LIGHTCORAL :
1331                 RR = R1 = (float ) 0.941176; RG = R2 = (float ) 0.501961; RB = R3 = (float ) 0.501961;
1332         break;
1333         case Quantity_NOC_LIGHTCYAN1 :
1334                 RR = R1 = (float ) 0.878431; RG = R2 = 1.000000; RB = R3 = 1.000000;
1335         break;
1336         case Quantity_NOC_LIGHTCYAN2 :
1337                 RR = R1 = (float ) 0.819608; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.933333;
1338         break;
1339         case Quantity_NOC_LIGHTCYAN3 :
1340                 RR = R1 = (float ) 0.705882; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.803922;
1341         break;
1342         case Quantity_NOC_LIGHTCYAN4 :
1343                 RR = R1 = (float ) 0.478431; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.545098;
1344         break;
1345         case Quantity_NOC_LIGHTGOLDENROD :
1346                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.866667; RB = R3 = (float ) 0.509804;
1347         break;
1348         case Quantity_NOC_LIGHTGOLDENROD1 :
1349                 RR = R1 = 1.000000; RG = R2 = (float ) 0.925490; RB = R3 = (float ) 0.545098;
1350         break;
1351         case Quantity_NOC_LIGHTGOLDENROD2 :
1352                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.862745; RB = R3 = (float ) 0.509804;
1353         break;
1354         case Quantity_NOC_LIGHTGOLDENROD3 :
1355                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.745098; RB = R3 = (float ) 0.439216;
1356         break;
1357         case Quantity_NOC_LIGHTGOLDENROD4 :
1358                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.505882; RB = R3 = (float ) 0.298039;
1359         break;
1360         case Quantity_NOC_LIGHTGOLDENRODYELLOW :
1361                 RR = R1 = (float ) 0.980392; RG = R2 = (float ) 0.980392; RB = R3 = (float ) 0.823529;
1362         break;
1363         case Quantity_NOC_LIGHTGRAY :
1364                 RR = R1 = (float ) 0.827451; RG = R2 = (float ) 0.827451; RB = R3 = (float ) 0.827451;
1365         break;
1366         case Quantity_NOC_LIGHTPINK :
1367                 RR = R1 = 1.000000; RG = R2 = (float ) 0.713725; RB = R3 = (float ) 0.756863;
1368         break;
1369         case Quantity_NOC_LIGHTPINK1 :
1370                 RR = R1 = 1.000000; RG = R2 = (float ) 0.682353; RB = R3 = (float ) 0.725490;
1371         break;
1372         case Quantity_NOC_LIGHTPINK2 :
1373                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.635294; RB = R3 = (float ) 0.678431;
1374         break;
1375         case Quantity_NOC_LIGHTPINK3 :
1376                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.549020; RB = R3 = (float ) 0.584314;
1377         break;
1378         case Quantity_NOC_LIGHTPINK4 :
1379                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.372549; RB = R3 = (float ) 0.396078;
1380         break;
1381         case Quantity_NOC_LIGHTSALMON1 :
1382                 RR = R1 = 1.000000; RG = R2 = (float ) 0.627451; RB = R3 = (float ) 0.478431;
1383         break;
1384         case Quantity_NOC_LIGHTSALMON2 :
1385                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.584314; RB = R3 = (float ) 0.447059;
1386         break;
1387         case Quantity_NOC_LIGHTSALMON3 :
1388                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.505882; RB = R3 = (float ) 0.384314;
1389         break;
1390         case Quantity_NOC_LIGHTSALMON4 :
1391                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.341176; RB = R3 = (float ) 0.258824;
1392         break;
1393         case Quantity_NOC_LIGHTSEAGREEN :
1394                 RR = R1 = (float ) 0.125490; RG = R2 = (float ) 0.698039; RB = R3 = (float ) 0.666667;
1395         break;
1396         case Quantity_NOC_LIGHTSKYBLUE :
1397                 RR = R1 = (float ) 0.529412; RG = R2 = (float ) 0.807843; RB = R3 = (float ) 0.980392;
1398         break;
1399         case Quantity_NOC_LIGHTSKYBLUE1 :
1400                 RR = R1 = (float ) 0.690196; RG = R2 = (float ) 0.886275; RB = R3 = 1.000000;
1401         break;
1402         case Quantity_NOC_LIGHTSKYBLUE2 :
1403                 RR = R1 = (float ) 0.643137; RG = R2 = (float ) 0.827451; RB = R3 = (float ) 0.933333;
1404         break;
1405         case Quantity_NOC_LIGHTSKYBLUE3 :
1406                 RR = R1 = (float ) 0.552941; RG = R2 = (float ) 0.713725; RB = R3 = (float ) 0.803922;
1407         break;
1408         case Quantity_NOC_LIGHTSKYBLUE4 :
1409                 RR = R1 = (float ) 0.376471; RG = R2 = (float ) 0.482353; RB = R3 = (float ) 0.545098;
1410         break;
1411         case Quantity_NOC_LIGHTSLATEBLUE :
1412                 RR = R1 = (float ) 0.517647; RG = R2 = (float ) 0.439216; RB = R3 = 1.000000;
1413         break;
1414         case Quantity_NOC_LIGHTSLATEGRAY :
1415                 RR = R1 = (float ) 0.466667; RG = R2 = (float ) 0.533333; RB = R3 = (float ) 0.600000;
1416         break;
1417         case Quantity_NOC_LIGHTSTEELBLUE :
1418                 RR = R1 = (float ) 0.690196; RG = R2 = (float ) 0.768627; RB = R3 = (float ) 0.870588;
1419         break;
1420         case Quantity_NOC_LIGHTSTEELBLUE1 :
1421                 RR = R1 = (float ) 0.792157; RG = R2 = (float ) 0.882353; RB = R3 = 1.000000;
1422         break;
1423         case Quantity_NOC_LIGHTSTEELBLUE2 :
1424                 RR = R1 = (float ) 0.737255; RG = R2 = (float ) 0.823529; RB = R3 = (float ) 0.933333;
1425         break;
1426         case Quantity_NOC_LIGHTSTEELBLUE3 :
1427                 RR = R1 = (float ) 0.635294; RG = R2 = (float ) 0.709804; RB = R3 = (float ) 0.803922;
1428         break;
1429         case Quantity_NOC_LIGHTSTEELBLUE4 :
1430                 RR = R1 = (float ) 0.431373; RG = R2 = (float ) 0.482353; RB = R3 = (float ) 0.545098;
1431         break;
1432         case Quantity_NOC_LIGHTYELLOW :
1433                 RR = R1 = 1.000000; RG = R2 = 1.000000; RB = R3 = (float ) 0.878431;
1434         break;
1435         case Quantity_NOC_LIGHTYELLOW2 :
1436                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.819608;
1437         break;
1438         case Quantity_NOC_LIGHTYELLOW3 :
1439                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.705882;
1440         break;
1441         case Quantity_NOC_LIGHTYELLOW4 :
1442                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.478431;
1443         break;
1444         case Quantity_NOC_LIMEGREEN :
1445                 RR = R1 = (float ) 0.196078; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.196078;
1446         break;
1447         case Quantity_NOC_LINEN :
1448                 RR = R1 = (float ) 0.980392; RG = R2 = (float ) 0.941176; RB = R3 = (float ) 0.901961;
1449         break;
1450         case Quantity_NOC_MAGENTA1 :
1451                 RR = R1 = 1.000000; RG = R2 = 0.000000; RB = R3 = 1.000000;
1452         break;
1453         case Quantity_NOC_MAGENTA2 :
1454                 RR = R1 = (float ) 0.933333; RG = R2 = 0.000000; RB = R3 = (float ) 0.933333;
1455         break;
1456         case Quantity_NOC_MAGENTA3 :
1457                 RR = R1 = (float ) 0.803922; RG = R2 = 0.000000; RB = R3 = (float ) 0.803922;
1458         break;
1459         case Quantity_NOC_MAGENTA4 :
1460                 RR = R1 = (float ) 0.545098; RG = R2 = 0.000000; RB = R3 = (float ) 0.545098;
1461         break;
1462         case Quantity_NOC_MAROON :
1463                 RR = R1 = (float ) 0.690196; RG = R2 = (float ) 0.188235; RB = R3 = (float ) 0.376471;
1464         break;
1465         case Quantity_NOC_MAROON1 :
1466                 RR = R1 = 1.000000; RG = R2 = (float ) 0.203922; RB = R3 = (float ) 0.701961;
1467         break;
1468         case Quantity_NOC_MAROON2 :
1469                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.188235; RB = R3 = (float ) 0.654902;
1470         break;
1471         case Quantity_NOC_MAROON3 :
1472                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.160784; RB = R3 = (float ) 0.564706;
1473         break;
1474         case Quantity_NOC_MAROON4 :
1475                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.109804; RB = R3 = (float ) 0.384314;
1476         break;
1477         case Quantity_NOC_MEDIUMAQUAMARINE :
1478                 RR = R1 = (float ) 0.400000; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.666667;
1479         break;
1480         case Quantity_NOC_MEDIUMORCHID :
1481                 RR = R1 = (float ) 0.729412; RG = R2 = (float ) 0.333333; RB = R3 = (float ) 0.827451;
1482         break;
1483         case Quantity_NOC_MEDIUMORCHID1 :
1484                 RR = R1 = (float ) 0.878431; RG = R2 = (float ) 0.400000; RB = R3 = 1.000000;
1485         break;
1486         case Quantity_NOC_MEDIUMORCHID2 :
1487                 RR = R1 = (float ) 0.819608; RG = R2 = (float ) 0.372549; RB = R3 = (float ) 0.933333;
1488         break;
1489         case Quantity_NOC_MEDIUMORCHID3 :
1490                 RR = R1 = (float ) 0.705882; RG = R2 = (float ) 0.321569; RB = R3 = (float ) 0.803922;
1491         break;
1492         case Quantity_NOC_MEDIUMORCHID4 :
1493                 RR = R1 = (float ) 0.478431; RG = R2 = (float ) 0.215686; RB = R3 = (float ) 0.545098;
1494         break;
1495         case Quantity_NOC_MEDIUMPURPLE :
1496                 RR = R1 = (float ) 0.576471; RG = R2 = (float ) 0.439216; RB = R3 = (float ) 0.858824;
1497         break;
1498         case Quantity_NOC_MEDIUMPURPLE1 :
1499                 RR = R1 = (float ) 0.670588; RG = R2 = (float ) 0.509804; RB = R3 = 1.000000;
1500         break;
1501         case Quantity_NOC_MEDIUMPURPLE2 :
1502                 RR = R1 = (float ) 0.623529; RG = R2 = (float ) 0.474510; RB = R3 = (float ) 0.933333;
1503         break;
1504         case Quantity_NOC_MEDIUMPURPLE3 :
1505                 RR = R1 = (float ) 0.537255; RG = R2 = (float ) 0.407843; RB = R3 = (float ) 0.803922;
1506         break;
1507         case Quantity_NOC_MEDIUMPURPLE4 :
1508                 RR = R1 = (float ) 0.364706; RG = R2 = (float ) 0.278431; RB = R3 = (float ) 0.545098;
1509         break;
1510         case Quantity_NOC_MEDIUMSEAGREEN :
1511                 RR = R1 = (float ) 0.235294; RG = R2 = (float ) 0.701961; RB = R3 = (float ) 0.443137;
1512         break;
1513         case Quantity_NOC_MEDIUMSLATEBLUE :
1514                 RR = R1 = (float ) 0.482353; RG = R2 = (float ) 0.407843; RB = R3 = (float ) 0.933333;
1515         break;
1516         case Quantity_NOC_MEDIUMSPRINGGREEN :
1517                 RR = R1 = 0.000000; RG = R2 = (float ) 0.980392; RB = R3 = (float ) 0.603922;
1518         break;
1519         case Quantity_NOC_MEDIUMTURQUOISE :
1520                 RR = R1 = (float ) 0.282353; RG = R2 = (float ) 0.819608; RB = R3 = (float ) 0.800000;
1521         break;
1522         case Quantity_NOC_MEDIUMVIOLETRED :
1523                 RR = R1 = (float ) 0.780392; RG = R2 = (float ) 0.082353; RB = R3 = (float ) 0.521569;
1524         break;
1525         case Quantity_NOC_MIDNIGHTBLUE :
1526                 RR = R1 = (float ) 0.098039; RG = R2 = (float ) 0.098039; RB = R3 = (float ) 0.439216;
1527         break;
1528         case Quantity_NOC_MINTCREAM :
1529                 RR = R1 = (float ) 0.960784; RG = R2 = 1.000000; RB = R3 = (float ) 0.980392;
1530         break;
1531         case Quantity_NOC_MISTYROSE :
1532                 RR = R1 = 1.000000; RG = R2 = (float ) 0.894118; RB = R3 = (float ) 0.882353;
1533         break;
1534         case Quantity_NOC_MISTYROSE2 :
1535                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.835294; RB = R3 = (float ) 0.823529;
1536         break;
1537         case Quantity_NOC_MISTYROSE3 :
1538                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.717647; RB = R3 = (float ) 0.709804;
1539         break;
1540         case Quantity_NOC_MISTYROSE4 :
1541                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.490196; RB = R3 = (float ) 0.482353;
1542         break;
1543         case Quantity_NOC_MOCCASIN :
1544                 RR = R1 = 1.000000; RG = R2 = (float ) 0.894118; RB = R3 = (float ) 0.709804;
1545         break;
1546         case Quantity_NOC_NAVAJOWHITE1 :
1547                 RR = R1 = 1.000000; RG = R2 = (float ) 0.870588; RB = R3 = (float ) 0.678431;
1548         break;
1549         case Quantity_NOC_NAVAJOWHITE2 :
1550                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.811765; RB = R3 = (float ) 0.631373;
1551         break;
1552         case Quantity_NOC_NAVAJOWHITE3 :
1553                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.701961; RB = R3 = (float ) 0.545098;
1554         break;
1555         case Quantity_NOC_NAVAJOWHITE4 :
1556                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.474510; RB = R3 = (float ) 0.368627;
1557         break;
1558         case Quantity_NOC_NAVYBLUE :
1559                 RR = R1 = 0.000000; RG = R2 = 0.000000; RB = R3 = (float ) 0.501961;
1560         break;
1561         case Quantity_NOC_OLDLACE :
1562                 RR = R1 = (float ) 0.992157; RG = R2 = (float ) 0.960784; RB = R3 = (float ) 0.901961;
1563         break;
1564         case Quantity_NOC_OLIVEDRAB :
1565                 RR = R1 = (float ) 0.419608; RG = R2 = (float ) 0.556863; RB = R3 = (float ) 0.137255;
1566         break;
1567         case Quantity_NOC_OLIVEDRAB1 :
1568                 RR = R1 = (float ) 0.752941; RG = R2 = 1.000000; RB = R3 = (float ) 0.243137;
1569         break;
1570         case Quantity_NOC_OLIVEDRAB2 :
1571                 RR = R1 = (float ) 0.701961; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.227451;
1572         break;
1573         case Quantity_NOC_OLIVEDRAB3 :
1574                 RR = R1 = (float ) 0.603922; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.196078;
1575         break;
1576         case Quantity_NOC_OLIVEDRAB4 :
1577                 RR = R1 = (float ) 0.411765; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.133333;
1578         break;
1579         case Quantity_NOC_ORANGE :
1580                 RR = R1 = 1.000000; RG = R2 = (float ) 0.647059; RB = R3 = 0.000000;
1581         break;
1582         case Quantity_NOC_ORANGE1 :
1583                 RR = R1 = 1.000000; RG = R2 = (float ) 0.647059; RB = R3 = 0.000000;
1584         break;
1585         case Quantity_NOC_ORANGE2 :
1586                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.603922; RB = R3 = 0.000000;
1587         break;
1588         case Quantity_NOC_ORANGE3 :
1589                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.521569; RB = R3 = 0.000000;
1590         break;
1591         case Quantity_NOC_ORANGE4 :
1592                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.352941; RB = R3 = 0.000000;
1593         break;
1594         case Quantity_NOC_ORANGERED :
1595                 RR = R1 = 1.000000; RG = R2 = (float ) 0.270588; RB = R3 = 0.000000;
1596         break;
1597         case Quantity_NOC_ORANGERED1 :
1598                 RR = R1 = 1.000000; RG = R2 = (float ) 0.270588; RB = R3 = 0.000000;
1599         break;
1600         case Quantity_NOC_ORANGERED2 :
1601                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.250980; RB = R3 = 0.000000;
1602         break;
1603         case Quantity_NOC_ORANGERED3 :
1604                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.215686; RB = R3 = 0.000000;
1605         break;
1606         case Quantity_NOC_ORANGERED4 :
1607                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.145098; RB = R3 = 0.000000;
1608         break;
1609         case Quantity_NOC_ORCHID :
1610                 RR = R1 = (float ) 0.854902; RG = R2 = (float ) 0.439216; RB = R3 = (float ) 0.839216;
1611         break;
1612         case Quantity_NOC_ORCHID1 :
1613                 RR = R1 = 1.000000; RG = R2 = (float ) 0.513725; RB = R3 = (float ) 0.980392;
1614         break;
1615         case Quantity_NOC_ORCHID2 :
1616                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.478431; RB = R3 = (float ) 0.913725;
1617         break;
1618         case Quantity_NOC_ORCHID3 :
1619                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.411765; RB = R3 = (float ) 0.788235;
1620         break;
1621         case Quantity_NOC_ORCHID4 :
1622                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.278431; RB = R3 = (float ) 0.537255;
1623         break;
1624         case Quantity_NOC_PALEGOLDENROD :
1625                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.909804; RB = R3 = (float ) 0.666667;
1626         break;
1627         case Quantity_NOC_PALEGREEN :
1628                 RR = R1 = (float ) 0.596078; RG = R2 = (float ) 0.984314; RB = R3 = (float ) 0.596078;
1629         break;
1630         case Quantity_NOC_PALEGREEN1 :
1631                 RR = R1 = (float ) 0.603922; RG = R2 = 1.000000; RB = R3 = (float ) 0.603922;
1632         break;
1633         case Quantity_NOC_PALEGREEN2 :
1634                 RR = R1 = (float ) 0.564706; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.564706;
1635         break;
1636         case Quantity_NOC_PALEGREEN3 :
1637                 RR = R1 = (float ) 0.486275; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.486275;
1638         break;
1639         case Quantity_NOC_PALEGREEN4 :
1640                 RR = R1 = (float ) 0.329412; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.329412;
1641         break;
1642         case Quantity_NOC_PALETURQUOISE :
1643                 RR = R1 = (float ) 0.686275; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.933333;
1644         break;
1645         case Quantity_NOC_PALETURQUOISE1 :
1646                 RR = R1 = (float ) 0.733333; RG = R2 = 1.000000; RB = R3 = 1.000000;
1647         break;
1648         case Quantity_NOC_PALETURQUOISE2 :
1649                 RR = R1 = (float ) 0.682353; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.933333;
1650         break;
1651         case Quantity_NOC_PALETURQUOISE3 :
1652                 RR = R1 = (float ) 0.588235; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.803922;
1653         break;
1654         case Quantity_NOC_PALETURQUOISE4 :
1655                 RR = R1 = (float ) 0.400000; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.545098;
1656         break;
1657         case Quantity_NOC_PALEVIOLETRED :
1658                 RR = R1 = (float ) 0.858824; RG = R2 = (float ) 0.439216; RB = R3 = (float ) 0.576471;
1659         break;
1660         case Quantity_NOC_PALEVIOLETRED1 :
1661                 RR = R1 = 1.000000; RG = R2 = (float ) 0.509804; RB = R3 = (float ) 0.670588;
1662         break;
1663         case Quantity_NOC_PALEVIOLETRED2 :
1664                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.474510; RB = R3 = (float ) 0.623529;
1665         break;
1666         case Quantity_NOC_PALEVIOLETRED3 :
1667                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.407843; RB = R3 = (float ) 0.537255;
1668         break;
1669         case Quantity_NOC_PALEVIOLETRED4 :
1670                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.278431; RB = R3 = (float ) 0.364706;
1671         break;
1672         case Quantity_NOC_PAPAYAWHIP :
1673                 RR = R1 = 1.000000; RG = R2 = (float ) 0.937255; RB = R3 = (float ) 0.835294;
1674         break;
1675         case Quantity_NOC_PEACHPUFF :
1676                 RR = R1 = 1.000000; RG = R2 = (float ) 0.854902; RB = R3 = (float ) 0.725490;
1677         break;
1678         case Quantity_NOC_PEACHPUFF2 :
1679                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.796078; RB = R3 = (float ) 0.678431;
1680         break;
1681         case Quantity_NOC_PEACHPUFF3 :
1682                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.686275; RB = R3 = (float ) 0.584314;
1683         break;
1684         case Quantity_NOC_PEACHPUFF4 :
1685                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.466667; RB = R3 = (float ) 0.396078;
1686         break;
1687         case Quantity_NOC_PERU :
1688                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.521569; RB = R3 = (float ) 0.247059;
1689         break;
1690         case Quantity_NOC_PINK :
1691                 RR = R1 = 1.000000; RG = R2 = (float ) 0.752941; RB = R3 = (float ) 0.796078;
1692         break;
1693         case Quantity_NOC_PINK1 :
1694                 RR = R1 = 1.000000; RG = R2 = (float ) 0.709804; RB = R3 = (float ) 0.772549;
1695         break;
1696         case Quantity_NOC_PINK2 :
1697                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.662745; RB = R3 = (float ) 0.721569;
1698         break;
1699         case Quantity_NOC_PINK3 :
1700                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.568627; RB = R3 = (float ) 0.619608;
1701         break;
1702         case Quantity_NOC_PINK4 :
1703                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.388235; RB = R3 = (float ) 0.423529;
1704         break;
1705         case Quantity_NOC_PLUM :
1706                 RR = R1 = (float ) 0.866667; RG = R2 = (float ) 0.627451; RB = R3 = (float ) 0.866667;
1707         break;
1708         case Quantity_NOC_PLUM1 :
1709                 RR = R1 = 1.000000; RG = R2 = (float ) 0.733333; RB = R3 = 1.000000;
1710         break;
1711         case Quantity_NOC_PLUM2 :
1712                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.682353; RB = R3 = (float ) 0.933333;
1713         break;
1714         case Quantity_NOC_PLUM3 :
1715                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.588235; RB = R3 = (float ) 0.803922;
1716         break;
1717         case Quantity_NOC_PLUM4 :
1718                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.400000; RB = R3 = (float ) 0.545098;
1719         break;
1720         case Quantity_NOC_POWDERBLUE :
1721                 RR = R1 = (float ) 0.690196; RG = R2 = (float ) 0.878431; RB = R3 = (float ) 0.901961;
1722         break;
1723         case Quantity_NOC_PURPLE :
1724                 RR = R1 = (float ) 0.627451; RG = R2 = (float ) 0.125490; RB = R3 = (float ) 0.941176;
1725         break;
1726         case Quantity_NOC_PURPLE1 :
1727                 RR = R1 = (float ) 0.607843; RG = R2 = (float ) 0.188235; RB = R3 = 1.000000;
1728         break;
1729         case Quantity_NOC_PURPLE2 :
1730                 RR = R1 = (float ) 0.568627; RG = R2 = (float ) 0.172549; RB = R3 = (float ) 0.933333;
1731         break;
1732         case Quantity_NOC_PURPLE3 :
1733                 RR = R1 = (float ) 0.490196; RG = R2 = (float ) 0.149020; RB = R3 = (float ) 0.803922;
1734         break;
1735         case Quantity_NOC_PURPLE4 :
1736                 RR = R1 = (float ) 0.333333; RG = R2 = (float ) 0.101961; RB = R3 = (float ) 0.545098;
1737         break;
1738         case Quantity_NOC_RED :
1739                 RR = R1 = 1.000000; RG = R2 = 0.000000; RB = R3 = 0.000000;
1740         break;
1741         case Quantity_NOC_RED1 :
1742                 RR = R1 = 1.000000; RG = R2 = 0.000000; RB = R3 = 0.000000;
1743         break;
1744         case Quantity_NOC_RED2 :
1745                 RR = R1 = (float ) 0.933333; RG = R2 = 0.000000; RB = R3 = 0.000000;
1746         break;
1747         case Quantity_NOC_RED3 :
1748                 RR = R1 = (float ) 0.803922; RG = R2 = 0.000000; RB = R3 = 0.000000;
1749         break;
1750         case Quantity_NOC_RED4 :
1751                 RR = R1 = (float ) 0.545098; RG = R2 = 0.000000; RB = R3 = 0.000000;
1752         break;
1753         case Quantity_NOC_ROSYBROWN :
1754                 RR = R1 = (float ) 0.737255; RG = R2 = (float ) 0.560784; RB = R3 = (float ) 0.560784;
1755         break;
1756         case Quantity_NOC_ROSYBROWN1 :
1757                 RR = R1 = 1.000000; RG = R2 = (float ) 0.756863; RB = R3 = (float ) 0.756863;
1758         break;
1759         case Quantity_NOC_ROSYBROWN2 :
1760                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.705882; RB = R3 = (float ) 0.705882;
1761         break;
1762         case Quantity_NOC_ROSYBROWN3 :
1763                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.607843; RB = R3 = (float ) 0.607843;
1764         break;
1765         case Quantity_NOC_ROSYBROWN4 :
1766                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.411765; RB = R3 = (float ) 0.411765;
1767         break;
1768         case Quantity_NOC_ROYALBLUE :
1769                 RR = R1 = (float ) 0.254902; RG = R2 = (float ) 0.411765; RB = R3 = (float ) 0.882353;
1770         break;
1771         case Quantity_NOC_ROYALBLUE1 :
1772                 RR = R1 = (float ) 0.282353; RG = R2 = (float ) 0.462745; RB = R3 = 1.000000;
1773         break;
1774         case Quantity_NOC_ROYALBLUE2 :
1775                 RR = R1 = (float ) 0.262745; RG = R2 = (float ) 0.431373; RB = R3 = (float ) 0.933333;
1776         break;
1777         case Quantity_NOC_ROYALBLUE3 :
1778                 RR = R1 = (float ) 0.227451; RG = R2 = (float ) 0.372549; RB = R3 = (float ) 0.803922;
1779         break;
1780         case Quantity_NOC_ROYALBLUE4 :
1781                 RR = R1 = (float ) 0.152941; RG = R2 = (float ) 0.250980; RB = R3 = (float ) 0.545098;
1782         break;
1783         case Quantity_NOC_SADDLEBROWN :
1784                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.270588; RB = R3 = (float ) 0.074510;
1785         break;
1786         case Quantity_NOC_SALMON :
1787                 RR = R1 = (float ) 0.980392; RG = R2 = (float ) 0.501961; RB = R3 = (float ) 0.447059;
1788         break;
1789         case Quantity_NOC_SALMON1 :
1790                 RR = R1 = 1.000000; RG = R2 = (float ) 0.549020; RB = R3 = (float ) 0.411765;
1791         break;
1792         case Quantity_NOC_SALMON2 :
1793                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.509804; RB = R3 = (float ) 0.384314;
1794         break;
1795         case Quantity_NOC_SALMON3 :
1796                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.439216; RB = R3 = (float ) 0.329412;
1797         break;
1798         case Quantity_NOC_SALMON4 :
1799                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.298039; RB = R3 = (float ) 0.223529;
1800         break;
1801         case Quantity_NOC_SANDYBROWN :
1802                 RR = R1 = (float ) 0.956863; RG = R2 = (float ) 0.643137; RB = R3 = (float ) 0.376471;
1803         break;
1804         case Quantity_NOC_SEAGREEN :
1805                 RR = R1 = (float ) 0.180392; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.341176;
1806         break;
1807         case Quantity_NOC_SEAGREEN1 :
1808                 RR = R1 = (float ) 0.329412; RG = R2 = 1.000000; RB = R3 = (float ) 0.623529;
1809         break;
1810         case Quantity_NOC_SEAGREEN2 :
1811                 RR = R1 = (float ) 0.305882; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.580392;
1812         break;
1813         case Quantity_NOC_SEAGREEN3 :
1814                 RR = R1 = (float ) 0.262745; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.501961;
1815         break;
1816         case Quantity_NOC_SEAGREEN4 :
1817                 RR = R1 = (float ) 0.180392; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.341176;
1818         break;
1819         case Quantity_NOC_SEASHELL :
1820                 RR = R1 = 1.000000; RG = R2 = (float ) 0.960784; RB = R3 = (float ) 0.933333;
1821         break;
1822         case Quantity_NOC_SEASHELL2 :
1823                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.898039; RB = R3 = (float ) 0.870588;
1824         break;
1825         case Quantity_NOC_SEASHELL3 :
1826                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.772549; RB = R3 = (float ) 0.749020;
1827         break;
1828         case Quantity_NOC_SEASHELL4 :
1829                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.525490; RB = R3 = (float ) 0.509804;
1830         break;
1831         case Quantity_NOC_BEET :
1832                 RR = R1 = (float ) 0.556863; RG = R2 = (float ) 0.219608; RB = R3 = (float ) 0.556863;
1833         break;
1834         case Quantity_NOC_TEAL :
1835                 RR = R1 = (float ) 0.219608; RG = R2 = (float ) 0.556863; RB = R3 = (float ) 0.556863;
1836         break;
1837         case Quantity_NOC_SIENNA :
1838                 RR = R1 = (float ) 0.627451; RG = R2 = (float ) 0.321569; RB = R3 = (float ) 0.176471;
1839         break;
1840         case Quantity_NOC_SIENNA1 :
1841                 RR = R1 = 1.000000; RG = R2 = (float ) 0.509804; RB = R3 = (float ) 0.278431;
1842         break;
1843         case Quantity_NOC_SIENNA2 :
1844                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.474510; RB = R3 = (float ) 0.258824;
1845         break;
1846         case Quantity_NOC_SIENNA3 :
1847                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.407843; RB = R3 = (float ) 0.223529;
1848         break;
1849         case Quantity_NOC_SIENNA4 :
1850                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.278431; RB = R3 = (float ) 0.149020;
1851         break;
1852         case Quantity_NOC_SKYBLUE :
1853                 RR = R1 = (float ) 0.529412; RG = R2 = (float ) 0.807843; RB = R3 = (float ) 0.921569;
1854         break;
1855         case Quantity_NOC_SKYBLUE1 :
1856                 RR = R1 = (float ) 0.529412; RG = R2 = (float ) 0.807843; RB = R3 = 1.000000;
1857         break;
1858         case Quantity_NOC_SKYBLUE2 :
1859                 RR = R1 = (float ) 0.494118; RG = R2 = (float ) 0.752941; RB = R3 = (float ) 0.933333;
1860         break;
1861         case Quantity_NOC_SKYBLUE3 :
1862                 RR = R1 = (float ) 0.423529; RG = R2 = (float ) 0.650980; RB = R3 = (float ) 0.803922;
1863         break;
1864         case Quantity_NOC_SKYBLUE4 :
1865                 RR = R1 = (float ) 0.290196; RG = R2 = (float ) 0.439216; RB = R3 = (float ) 0.545098;
1866         break;
1867         case Quantity_NOC_SLATEBLUE :
1868                 RR = R1 = (float ) 0.415686; RG = R2 = (float ) 0.352941; RB = R3 = (float ) 0.803922;
1869         break;
1870         case Quantity_NOC_SLATEBLUE1 :
1871                 RR = R1 = (float ) 0.513725; RG = R2 = (float ) 0.435294; RB = R3 = 1.000000;
1872         break;
1873         case Quantity_NOC_SLATEBLUE2 :
1874                 RR = R1 = (float ) 0.478431; RG = R2 = (float ) 0.403922; RB = R3 = (float ) 0.933333;
1875         break;
1876         case Quantity_NOC_SLATEBLUE3 :
1877                 RR = R1 = (float ) 0.411765; RG = R2 = (float ) 0.349020; RB = R3 = (float ) 0.803922;
1878         break;
1879         case Quantity_NOC_SLATEBLUE4 :
1880                 RR = R1 = (float ) 0.278431; RG = R2 = (float ) 0.235294; RB = R3 = (float ) 0.545098;
1881         break;
1882         case Quantity_NOC_SLATEGRAY1 :
1883                 RR = R1 = (float ) 0.776471; RG = R2 = (float ) 0.886275; RB = R3 = 1.000000;
1884         break;
1885         case Quantity_NOC_SLATEGRAY2 :
1886                 RR = R1 = (float ) 0.725490; RG = R2 = (float ) 0.827451; RB = R3 = (float ) 0.933333;
1887         break;
1888         case Quantity_NOC_SLATEGRAY3 :
1889                 RR = R1 = (float ) 0.623529; RG = R2 = (float ) 0.713725; RB = R3 = (float ) 0.803922;
1890         break;
1891         case Quantity_NOC_SLATEGRAY4 :
1892                 RR = R1 = (float ) 0.423529; RG = R2 = (float ) 0.482353; RB = R3 = (float ) 0.545098;
1893         break;
1894         case Quantity_NOC_SLATEGRAY :
1895                 RR = R1 = (float ) 0.439216; RG = R2 = (float ) 0.501961; RB = R3 = (float ) 0.564706;
1896         break;
1897         case Quantity_NOC_SNOW :
1898                 RR = R1 = 1.000000; RG = R2 = (float ) 0.980392; RB = R3 = (float ) 0.980392;
1899         break;
1900         case Quantity_NOC_SNOW2 :
1901                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.913725; RB = R3 = (float ) 0.913725;
1902         break;
1903         case Quantity_NOC_SNOW3 :
1904                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.788235; RB = R3 = (float ) 0.788235;
1905         break;
1906         case Quantity_NOC_SNOW4 :
1907                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.537255; RB = R3 = (float ) 0.537255;
1908         break;
1909         case Quantity_NOC_SPRINGGREEN :
1910                 RR = R1 = 0.000000; RG = R2 = 1.000000; RB = R3 = (float ) 0.498039;
1911         break;
1912         case Quantity_NOC_SPRINGGREEN2 :
1913                 RR = R1 = 0.000000; RG = R2 = (float ) 0.933333; RB = R3 = (float ) 0.462745;
1914         break;
1915         case Quantity_NOC_SPRINGGREEN3 :
1916                 RR = R1 = 0.000000; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.400000;
1917         break;
1918         case Quantity_NOC_SPRINGGREEN4 :
1919                 RR = R1 = 0.000000; RG = R2 = (float ) 0.545098; RB = R3 = (float ) 0.270588;
1920         break;
1921         case Quantity_NOC_STEELBLUE :
1922                 RR = R1 = (float ) 0.274510; RG = R2 = (float ) 0.509804; RB = R3 = (float ) 0.705882;
1923         break;
1924         case Quantity_NOC_STEELBLUE1 :
1925                 RR = R1 = (float ) 0.388235; RG = R2 = (float ) 0.721569; RB = R3 = 1.000000;
1926         break;
1927         case Quantity_NOC_STEELBLUE2 :
1928                 RR = R1 = (float ) 0.360784; RG = R2 = (float ) 0.674510; RB = R3 = (float ) 0.933333;
1929         break;
1930         case Quantity_NOC_STEELBLUE3 :
1931                 RR = R1 = (float ) 0.309804; RG = R2 = (float ) 0.580392; RB = R3 = (float ) 0.803922;
1932         break;
1933         case Quantity_NOC_STEELBLUE4 :
1934                 RR = R1 = (float ) 0.211765; RG = R2 = (float ) 0.392157; RB = R3 = (float ) 0.545098;
1935         break;
1936         case Quantity_NOC_TAN :
1937                 RR = R1 = (float ) 0.823529; RG = R2 = (float ) 0.705882; RB = R3 = (float ) 0.549020;
1938         break;
1939         case Quantity_NOC_TAN1 :
1940                 RR = R1 = 1.000000; RG = R2 = (float ) 0.647059; RB = R3 = (float ) 0.309804;
1941         break;
1942         case Quantity_NOC_TAN2 :
1943                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.603922; RB = R3 = (float ) 0.286275;
1944         break;
1945         case Quantity_NOC_TAN3 :
1946                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.521569; RB = R3 = (float ) 0.247059;
1947         break;
1948         case Quantity_NOC_TAN4 :
1949                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.352941; RB = R3 = (float ) 0.168627;
1950         break;
1951         case Quantity_NOC_THISTLE :
1952                 RR = R1 = (float ) 0.847059; RG = R2 = (float ) 0.749020; RB = R3 = (float ) 0.847059;
1953         break;
1954         case Quantity_NOC_THISTLE1 :
1955                 RR = R1 = 1.000000; RG = R2 = (float ) 0.882353; RB = R3 = 1.000000;
1956         break;
1957         case Quantity_NOC_THISTLE2 :
1958                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.823529; RB = R3 = (float ) 0.933333;
1959         break;
1960         case Quantity_NOC_THISTLE3 :
1961                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.709804; RB = R3 = (float ) 0.803922;
1962         break;
1963         case Quantity_NOC_THISTLE4 :
1964                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.482353; RB = R3 = (float ) 0.545098;
1965         break;
1966         case Quantity_NOC_TOMATO :
1967                 RR = R1 = 1.000000; RG = R2 = (float ) 0.388235; RB = R3 = (float ) 0.278431;
1968         break;
1969         case Quantity_NOC_TOMATO1 :
1970                 RR = R1 = 1.000000; RG = R2 = (float ) 0.388235; RB = R3 = (float ) 0.278431;
1971         break;
1972         case Quantity_NOC_TOMATO2 :
1973                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.360784; RB = R3 = (float ) 0.258824;
1974         break;
1975         case Quantity_NOC_TOMATO3 :
1976                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.309804; RB = R3 = (float ) 0.223529;
1977         break;
1978         case Quantity_NOC_TOMATO4 :
1979                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.211765; RB = R3 = (float ) 0.149020;
1980         break;
1981         case Quantity_NOC_TURQUOISE :
1982                 RR = R1 = (float ) 0.250980; RG = R2 = (float ) 0.878431; RB = R3 = (float ) 0.815686;
1983         break;
1984         case Quantity_NOC_TURQUOISE1 :
1985                 RR = R1 = 0.000000; RG = R2 = (float ) 0.960784; RB = R3 = 1.000000;
1986         break;
1987         case Quantity_NOC_TURQUOISE2 :
1988                 RR = R1 = 0.000000; RG = R2 = (float ) 0.898039; RB = R3 = (float ) 0.933333;
1989         break;
1990         case Quantity_NOC_TURQUOISE3 :
1991                 RR = R1 = 0.000000; RG = R2 = (float ) 0.772549; RB = R3 = (float ) 0.803922;
1992         break;
1993         case Quantity_NOC_TURQUOISE4 :
1994                 RR = R1 = 0.000000; RG = R2 = (float ) 0.525490; RB = R3 = (float ) 0.545098;
1995         break;
1996         case Quantity_NOC_VIOLET :
1997                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.509804; RB = R3 = (float ) 0.933333;
1998         break;
1999         case Quantity_NOC_VIOLETRED :
2000                 RR = R1 = (float ) 0.815686; RG = R2 = (float ) 0.125490; RB = R3 = (float ) 0.564706;
2001         break;
2002         case Quantity_NOC_VIOLETRED1 :
2003                 RR = R1 = 1.000000; RG = R2 = (float ) 0.243137; RB = R3 = (float ) 0.588235;
2004         break;
2005         case Quantity_NOC_VIOLETRED2 :
2006                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.227451; RB = R3 = (float ) 0.549020;
2007         break;
2008         case Quantity_NOC_VIOLETRED3 :
2009                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.196078; RB = R3 = (float ) 0.470588;
2010         break;
2011         case Quantity_NOC_VIOLETRED4 :
2012                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.133333; RB = R3 = (float ) 0.321569;
2013         break;
2014         case Quantity_NOC_WHEAT :
2015                 RR = R1 = (float ) 0.960784; RG = R2 = (float ) 0.870588; RB = R3 = (float ) 0.701961;
2016         break;
2017         case Quantity_NOC_WHEAT1 :
2018                 RR = R1 = 1.000000; RG = R2 = (float ) 0.905882; RB = R3 = (float ) 0.729412;
2019         break;
2020         case Quantity_NOC_WHEAT2 :
2021                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.847059; RB = R3 = (float ) 0.682353;
2022         break;
2023         case Quantity_NOC_WHEAT3 :
2024                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.729412; RB = R3 = (float ) 0.588235;
2025         break;
2026         case Quantity_NOC_WHEAT4 :
2027                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.494118; RB = R3 = (float ) 0.400000;
2028         break;
2029         case Quantity_NOC_WHITE :
2030                 RR = R1 = 1.000000; RG = R2 = 1.000000; RB = R3 = 1.000000;
2031         break;
2032         case Quantity_NOC_WHITESMOKE :
2033                 RR = R1 = (float ) 0.960784; RG = R2 = (float ) 0.960784; RB = R3 = (float ) 0.960784;
2034         break;
2035         case Quantity_NOC_YELLOW :
2036                 RR = R1 = 1.000000; RG = R2 = 1.000000; RB = R3 = 0.000000;
2037         break;
2038         case Quantity_NOC_YELLOW1 :
2039                 RR = R1 = 1.000000; RG = R2 = 1.000000; RB = R3 = 0.000000;
2040         break;
2041         case Quantity_NOC_YELLOW2 :
2042                 RR = R1 = (float ) 0.933333; RG = R2 = (float ) 0.933333; RB = R3 = 0.000000;
2043         break;
2044         case Quantity_NOC_YELLOW3 :
2045                 RR = R1 = (float ) 0.803922; RG = R2 = (float ) 0.803922; RB = R3 = 0.000000;
2046         break;
2047         case Quantity_NOC_YELLOW4 :
2048                 RR = R1 = (float ) 0.545098; RG = R2 = (float ) 0.545098; RB = R3 = 0.000000;
2049         break;
2050         case Quantity_NOC_YELLOWGREEN :
2051                 RR = R1 = (float ) 0.603922; RG = R2 = (float ) 0.803922; RB = R3 = (float ) 0.196078;
2052         break;
2053         default :
2054                 Standard_OutOfRange::Raise ("Bad name");
2055         break;
2056 }
2057         if (AType == Quantity_TOC_HLS)
2058             Quantity_Color::rgbhls (RR, RG, RB, R1, R2, R3);
2059 }
2060
2061 Standard_CString Quantity_Color::StringName (
2062                                  const Quantity_NameOfColor AName) {
2063
2064 Standard_CString TheName;
2065  
2066 switch (AName) {
2067
2068         case Quantity_NOC_BLACK :
2069                 TheName = "BLACK";
2070         break;
2071         case Quantity_NOC_MATRAGRAY :
2072                 TheName = "MATRAGRAY";
2073         break;
2074         case Quantity_NOC_MATRABLUE :
2075                 TheName = "MATRABLUE";
2076         break;
2077         case Quantity_NOC_ALICEBLUE :
2078                 TheName = "ALICEBLUE";
2079         break;
2080         case Quantity_NOC_ANTIQUEWHITE :
2081                 TheName = "ANTIQUEWHITE";
2082         break;
2083         case Quantity_NOC_ANTIQUEWHITE1 :
2084                 TheName = "ANTIQUEWHITE1";
2085         break;
2086         case Quantity_NOC_ANTIQUEWHITE2 :
2087                 TheName = "ANTIQUEWHITE2";
2088         break;
2089         case Quantity_NOC_ANTIQUEWHITE3 :
2090                 TheName = "ANTIQUEWHITE3";
2091         break;
2092         case Quantity_NOC_ANTIQUEWHITE4 :
2093                 TheName = "ANTIQUEWHITE4";
2094         break;
2095         case Quantity_NOC_AQUAMARINE1 :
2096                 TheName = "AQUAMARINE1";
2097         break;
2098         case Quantity_NOC_AQUAMARINE2 :
2099                 TheName = "AQUAMARINE2";
2100         break;
2101         case Quantity_NOC_AQUAMARINE4 :
2102                 TheName = "AQUAMARINE4";
2103         break;
2104         case Quantity_NOC_AZURE :
2105                 TheName = "AZURE";
2106         break;
2107         case Quantity_NOC_AZURE2 :
2108                 TheName = "AZURE2";
2109         break;
2110         case Quantity_NOC_AZURE3 :
2111                 TheName = "AZURE3";
2112         break;
2113         case Quantity_NOC_AZURE4 :
2114                 TheName = "AZURE4";
2115         break;
2116         case Quantity_NOC_BEIGE :
2117                 TheName = "BEIGE";
2118         break;
2119         case Quantity_NOC_BISQUE :
2120                 TheName = "BISQUE";
2121         break;
2122         case Quantity_NOC_BISQUE2 :
2123                 TheName = "BISQUE2";
2124         break;
2125         case Quantity_NOC_BISQUE3 :
2126                 TheName = "BISQUE3";
2127         break;
2128         case Quantity_NOC_BISQUE4 :
2129                 TheName = "BISQUE4";
2130         break;
2131         case Quantity_NOC_BLANCHEDALMOND :
2132                 TheName = "BLANCHEDALMOND";
2133         break;
2134         case Quantity_NOC_BLUE1 :
2135                 TheName = "BLUE1";
2136         break;
2137         case Quantity_NOC_BLUE2 :
2138                 TheName = "BLUE2";
2139         break;
2140         case Quantity_NOC_BLUE3 :
2141                 TheName = "BLUE3";
2142         break;
2143         case Quantity_NOC_BLUE4 :
2144                 TheName = "BLUE4";
2145         break;
2146         case Quantity_NOC_BLUEVIOLET :
2147                 TheName = "BLUEVIOLET";
2148         break;
2149         case Quantity_NOC_BROWN :
2150                 TheName = "BROWN";
2151         break;
2152         case Quantity_NOC_BROWN1 :
2153                 TheName = "BROWN1";
2154         break;
2155         case Quantity_NOC_BROWN2 :
2156                 TheName = "BROWN2";
2157         break;
2158         case Quantity_NOC_BROWN3 :
2159                 TheName = "BROWN3";
2160         break;
2161         case Quantity_NOC_BROWN4 :
2162                 TheName = "BROWN4";
2163         break;
2164         case Quantity_NOC_BURLYWOOD :
2165                 TheName = "BURLYWOOD";
2166         break;
2167         case Quantity_NOC_BURLYWOOD1 :
2168                 TheName = "BURLYWOOD1";
2169         break;
2170         case Quantity_NOC_BURLYWOOD2 :
2171                 TheName = "BURLYWOOD2";
2172         break;
2173         case Quantity_NOC_BURLYWOOD3 :
2174                 TheName = "BURLYWOOD3";
2175         break;
2176         case Quantity_NOC_BURLYWOOD4 :
2177                 TheName = "BURLYWOOD4";
2178         break;
2179         case Quantity_NOC_CADETBLUE :
2180                 TheName = "CADETBLUE";
2181         break;
2182         case Quantity_NOC_CADETBLUE1 :
2183                 TheName = "CADETBLUE1";
2184         break;
2185         case Quantity_NOC_CADETBLUE2 :
2186                 TheName = "CADETBLUE2";
2187         break;
2188         case Quantity_NOC_CADETBLUE3 :
2189                 TheName = "CADETBLUE3";
2190         break;
2191         case Quantity_NOC_CADETBLUE4 :
2192                 TheName = "CADETBLUE4";
2193         break;
2194         case Quantity_NOC_CHARTREUSE :
2195                 TheName = "CHARTREUSE";
2196         break;
2197         case Quantity_NOC_CHARTREUSE1 :
2198                 TheName = "CHARTREUSE1";
2199         break;
2200         case Quantity_NOC_CHARTREUSE2 :
2201                 TheName = "CHARTREUSE2";
2202         break;
2203         case Quantity_NOC_CHARTREUSE3 :
2204                 TheName = "CHARTREUSE3";
2205         break;
2206         case Quantity_NOC_CHARTREUSE4 :
2207                 TheName = "CHARTREUSE4";
2208         break;
2209         case Quantity_NOC_CHOCOLATE :
2210                 TheName = "CHOCOLATE";
2211         break;
2212         case Quantity_NOC_CHOCOLATE1 :
2213                 TheName = "CHOCOLATE1";
2214         break;
2215         case Quantity_NOC_CHOCOLATE2 :
2216                 TheName = "CHOCOLATE2";
2217         break;
2218         case Quantity_NOC_CHOCOLATE3 :
2219                 TheName = "CHOCOLATE3";
2220         break;
2221         case Quantity_NOC_CHOCOLATE4 :
2222                 TheName = "CHOCOLATE4";
2223         break;
2224         case Quantity_NOC_CORAL :
2225                 TheName = "CORAL";
2226         break;
2227         case Quantity_NOC_CORAL1 :
2228                 TheName = "CORAL1";
2229         break;
2230         case Quantity_NOC_CORAL2 :
2231                 TheName = "CORAL2";
2232         break;
2233         case Quantity_NOC_CORAL3 :
2234                 TheName = "CORAL3";
2235         break;
2236         case Quantity_NOC_CORAL4 :
2237                 TheName = "CORAL4";
2238         break;
2239         case Quantity_NOC_CORNFLOWERBLUE :
2240                 TheName = "CORNFLOWERBLUE";
2241         break;
2242         case Quantity_NOC_CORNSILK1 :
2243                 TheName = "CORNSILK1";
2244         break;
2245         case Quantity_NOC_CORNSILK2 :
2246                 TheName = "CORNSILK2";
2247         break;
2248         case Quantity_NOC_CORNSILK3 :
2249                 TheName = "CORNSILK3";
2250         break;
2251         case Quantity_NOC_CORNSILK4 :
2252                 TheName = "CORNSILK4";
2253         break;
2254         case Quantity_NOC_CYAN1 :
2255                 TheName = "CYAN1";
2256         break;
2257         case Quantity_NOC_CYAN2 :
2258                 TheName = "CYAN2";
2259         break;
2260         case Quantity_NOC_CYAN3 :
2261                 TheName = "CYAN3";
2262         break;
2263         case Quantity_NOC_CYAN4 :
2264                 TheName = "CYAN4";
2265         break;
2266         case Quantity_NOC_DARKGOLDENROD :
2267                 TheName = "DARKGOLDENROD";
2268         break;
2269         case Quantity_NOC_DARKGOLDENROD1 :
2270                 TheName = "DARKGOLDENROD1";
2271         break;
2272         case Quantity_NOC_DARKGOLDENROD2 :
2273                 TheName = "DARKGOLDENROD2";
2274         break;
2275         case Quantity_NOC_DARKGOLDENROD3 :
2276                 TheName = "DARKGOLDENROD3";
2277         break;
2278         case Quantity_NOC_DARKGOLDENROD4 :
2279                 TheName = "DARKGOLDENROD4";
2280         break;
2281         case Quantity_NOC_DARKGREEN :
2282                 TheName = "DARKGREEN";
2283         break;
2284         case Quantity_NOC_DARKKHAKI :
2285                 TheName = "DARKKHAKI";
2286         break;
2287         case Quantity_NOC_DARKOLIVEGREEN :
2288                 TheName = "DARKOLIVEGREEN";
2289         break;
2290         case Quantity_NOC_DARKOLIVEGREEN1 :
2291                 TheName = "DARKOLIVEGREEN1";
2292         break;
2293         case Quantity_NOC_DARKOLIVEGREEN2 :
2294                 TheName = "DARKOLIVEGREEN2";
2295         break;
2296         case Quantity_NOC_DARKOLIVEGREEN3 :
2297                 TheName = "DARKOLIVEGREEN3";
2298         break;
2299         case Quantity_NOC_DARKOLIVEGREEN4 :
2300                 TheName = "DARKOLIVEGREEN4";
2301         break;
2302         case Quantity_NOC_DARKORANGE :
2303                 TheName = "DARKORANGE";
2304         break;
2305         case Quantity_NOC_DARKORANGE1 :
2306                 TheName = "DARKORANGE1";
2307         break;
2308         case Quantity_NOC_DARKORANGE2 :
2309                 TheName = "DARKORANGE2";
2310         break;
2311         case Quantity_NOC_DARKORANGE3 :
2312                 TheName = "DARKORANGE3";
2313         break;
2314         case Quantity_NOC_DARKORANGE4 :
2315                 TheName = "DARKORANGE4";
2316         break;
2317         case Quantity_NOC_DARKORCHID :
2318                 TheName = "DARKORCHID";
2319         break;
2320         case Quantity_NOC_DARKORCHID1 :
2321                 TheName = "DARKORCHID1";
2322         break;
2323         case Quantity_NOC_DARKORCHID2 :
2324                 TheName = "DARKORCHID2";
2325         break;
2326         case Quantity_NOC_DARKORCHID3 :
2327                 TheName = "DARKORCHID3";
2328         break;
2329         case Quantity_NOC_DARKORCHID4 :
2330                 TheName = "DARKORCHID4";
2331         break;
2332         case Quantity_NOC_DARKSALMON :
2333                 TheName = "DARKSALMON";
2334         break;
2335         case Quantity_NOC_DARKSEAGREEN :
2336                 TheName = "DARKSEAGREEN";
2337         break;
2338         case Quantity_NOC_DARKSEAGREEN1 :
2339                 TheName = "DARKSEAGREEN1";
2340         break;
2341         case Quantity_NOC_DARKSEAGREEN2 :
2342                 TheName = "DARKSEAGREEN2";
2343         break;
2344         case Quantity_NOC_DARKSEAGREEN3 :
2345                 TheName = "DARKSEAGREEN3";
2346         break;
2347         case Quantity_NOC_DARKSEAGREEN4 :
2348                 TheName = "DARKSEAGREEN4";
2349         break;
2350         case Quantity_NOC_DARKSLATEBLUE :
2351                 TheName = "DARKSLATEBLUE";
2352         break;
2353         case Quantity_NOC_DARKSLATEGRAY1 :
2354                 TheName = "DARKSLATEGRAY1";
2355         break;
2356         case Quantity_NOC_DARKSLATEGRAY2 :
2357                 TheName = "DARKSLATEGRAY2";
2358         break;
2359         case Quantity_NOC_DARKSLATEGRAY3 :
2360                 TheName = "DARKSLATEGRAY3";
2361         break;
2362         case Quantity_NOC_DARKSLATEGRAY4 :
2363                 TheName = "DARKSLATEGRAY4";
2364         break;
2365         case Quantity_NOC_DARKSLATEGRAY :
2366                 TheName = "DARKSLATEGRAY";
2367         break;
2368         case Quantity_NOC_DARKTURQUOISE :
2369                 TheName = "DARKTURQUOISE";
2370         break;
2371         case Quantity_NOC_DARKVIOLET :
2372                 TheName = "DARKVIOLET";
2373         break;
2374         case Quantity_NOC_DEEPPINK :
2375                 TheName = "DEEPPINK";
2376         break;
2377         case Quantity_NOC_DEEPPINK2 :
2378                 TheName = "DEEPPINK2";
2379         break;
2380         case Quantity_NOC_DEEPPINK3 :
2381                 TheName = "DEEPPINK3";
2382         break;
2383         case Quantity_NOC_DEEPPINK4 :
2384                 TheName = "DEEPPINK4";
2385         break;
2386         case Quantity_NOC_DEEPSKYBLUE1 :
2387                 TheName = "DEEPSKYBLUE1";
2388         break;
2389         case Quantity_NOC_DEEPSKYBLUE2 :
2390                 TheName = "DEEPSKYBLUE2";
2391         break;
2392         case Quantity_NOC_DEEPSKYBLUE3 :
2393                 TheName = "DEEPSKYBLUE3";
2394         break;
2395         case Quantity_NOC_DEEPSKYBLUE4 :
2396                 TheName = "DEEPSKYBLUE4";
2397         break;
2398         case Quantity_NOC_DODGERBLUE1 :
2399                 TheName = "DODGERBLUE1";
2400         break;
2401         case Quantity_NOC_DODGERBLUE2 :
2402                 TheName = "DODGERBLUE2";
2403         break;
2404         case Quantity_NOC_DODGERBLUE3 :
2405                 TheName = "DODGERBLUE3";
2406         break;
2407         case Quantity_NOC_DODGERBLUE4 :
2408                 TheName = "DODGERBLUE4";
2409         break;
2410         case Quantity_NOC_FIREBRICK :
2411                 TheName = "FIREBRICK";
2412         break;
2413         case Quantity_NOC_FIREBRICK1 :
2414                 TheName = "FIREBRICK1";
2415         break;
2416         case Quantity_NOC_FIREBRICK2 :
2417                 TheName = "FIREBRICK2";
2418         break;
2419         case Quantity_NOC_FIREBRICK3 :
2420                 TheName = "FIREBRICK3";
2421         break;
2422         case Quantity_NOC_FIREBRICK4 :
2423                 TheName = "FIREBRICK4";
2424         break;
2425         case Quantity_NOC_FLORALWHITE :
2426                 TheName = "FLORALWHITE";
2427         break;
2428         case Quantity_NOC_FORESTGREEN :
2429                 TheName = "FORESTGREEN";
2430         break;
2431         case Quantity_NOC_GAINSBORO :
2432                 TheName = "GAINSBORO";
2433         break;
2434         case Quantity_NOC_GHOSTWHITE :
2435                 TheName = "GHOSTWHITE";
2436         break;
2437         case Quantity_NOC_GOLD :
2438                 TheName = "GOLD";
2439         break;
2440         case Quantity_NOC_GOLD1 :
2441                 TheName = "GOLD1";
2442         break;
2443         case Quantity_NOC_GOLD2 :
2444                 TheName = "GOLD2";
2445         break;
2446         case Quantity_NOC_GOLD3 :
2447                 TheName = "GOLD3";
2448         break;
2449         case Quantity_NOC_GOLD4 :
2450                 TheName = "GOLD4";
2451         break;
2452         case Quantity_NOC_GOLDENROD :
2453                 TheName = "GOLDENROD";
2454         break;
2455         case Quantity_NOC_GOLDENROD1 :
2456                 TheName = "GOLDENROD1";
2457         break;
2458         case Quantity_NOC_GOLDENROD2 :
2459                 TheName = "GOLDENROD2";
2460         break;
2461         case Quantity_NOC_GOLDENROD3 :
2462                 TheName = "GOLDENROD3";
2463         break;
2464         case Quantity_NOC_GOLDENROD4 :
2465                 TheName = "GOLDENROD4";
2466         break;
2467         case Quantity_NOC_GRAY :
2468                 TheName = "GRAY";
2469         break;
2470         case Quantity_NOC_GRAY0 :
2471                 TheName = "GRAY0";
2472         break;
2473         case Quantity_NOC_GRAY1 :
2474                 TheName = "GRAY1";
2475         break;
2476         case Quantity_NOC_GRAY10 :
2477                 TheName = "GRAY10";
2478         break;
2479         case Quantity_NOC_GRAY11 :
2480                 TheName = "GRAY11";
2481         break;
2482         case Quantity_NOC_GRAY12 :
2483                 TheName = "GRAY12";
2484         break;
2485         case Quantity_NOC_GRAY13 :
2486                 TheName = "GRAY13";
2487         break;
2488         case Quantity_NOC_GRAY14 :
2489                 TheName = "GRAY14";
2490         break;
2491         case Quantity_NOC_GRAY15 :
2492                 TheName = "GRAY15";
2493         break;
2494         case Quantity_NOC_GRAY16 :
2495                 TheName = "GRAY16";
2496         break;
2497         case Quantity_NOC_GRAY17 :
2498                 TheName = "GRAY17";
2499         break;
2500         case Quantity_NOC_GRAY18 :
2501                 TheName = "GRAY18";
2502         break;
2503         case Quantity_NOC_GRAY19 :
2504                 TheName = "GRAY19";
2505         break;
2506         case Quantity_NOC_GRAY2 :
2507                 TheName = "GRAY2";
2508         break;
2509         case Quantity_NOC_GRAY20 :
2510                 TheName = "GRAY20";
2511         break;
2512         case Quantity_NOC_GRAY21 :
2513                 TheName = "GRAY21";
2514         break;
2515         case Quantity_NOC_GRAY22 :
2516                 TheName = "GRAY22";
2517         break;
2518         case Quantity_NOC_GRAY23 :
2519                 TheName = "GRAY23";
2520         break;
2521         case Quantity_NOC_GRAY24 :
2522                 TheName = "GRAY24";
2523         break;
2524         case Quantity_NOC_GRAY25 :
2525                 TheName = "GRAY25";
2526         break;
2527         case Quantity_NOC_GRAY26 :
2528                 TheName = "GRAY26";
2529         break;
2530         case Quantity_NOC_GRAY27 :
2531                 TheName = "GRAY27";
2532         break;
2533         case Quantity_NOC_GRAY28 :
2534                 TheName = "GRAY28";
2535         break;
2536         case Quantity_NOC_GRAY29 :
2537                 TheName = "GRAY29";
2538         break;
2539         case Quantity_NOC_GRAY3 :
2540                 TheName = "GRAY3";
2541         break;
2542         case Quantity_NOC_GRAY30 :
2543                 TheName = "GRAY30";
2544         break;
2545         case Quantity_NOC_GRAY31 :
2546                 TheName = "GRAY31";
2547         break;
2548         case Quantity_NOC_GRAY32 :
2549                 TheName = "GRAY32";
2550         break;
2551         case Quantity_NOC_GRAY33 :
2552                 TheName = "GRAY33";
2553         break;
2554         case Quantity_NOC_GRAY34 :
2555                 TheName = "GRAY34";
2556         break;
2557         case Quantity_NOC_GRAY35 :
2558                 TheName = "GRAY35";
2559         break;
2560         case Quantity_NOC_GRAY36 :
2561                 TheName = "GRAY36";
2562         break;
2563         case Quantity_NOC_GRAY37 :
2564                 TheName = "GRAY37";
2565         break;
2566         case Quantity_NOC_GRAY38 :
2567                 TheName = "GRAY38";
2568         break;
2569         case Quantity_NOC_GRAY39 :
2570                 TheName = "GRAY39";
2571         break;
2572         case Quantity_NOC_GRAY4 :
2573                 TheName = "GRAY4";
2574         break;
2575         case Quantity_NOC_GRAY40 :
2576                 TheName = "GRAY40";
2577         break;
2578         case Quantity_NOC_GRAY41 :
2579                 TheName = "GRAY41";
2580         break;
2581         case Quantity_NOC_GRAY42 :
2582                 TheName = "GRAY42";
2583         break;
2584         case Quantity_NOC_GRAY43 :
2585                 TheName = "GRAY43";
2586         break;
2587         case Quantity_NOC_GRAY44 :
2588                 TheName = "GRAY44";
2589         break;
2590         case Quantity_NOC_GRAY45 :
2591                 TheName = "GRAY45";
2592         break;
2593         case Quantity_NOC_GRAY46 :
2594                 TheName = "GRAY46";
2595         break;
2596         case Quantity_NOC_GRAY47 :
2597                 TheName = "GRAY47";
2598         break;
2599         case Quantity_NOC_GRAY48 :
2600                 TheName = "GRAY48";
2601         break;
2602         case Quantity_NOC_GRAY49 :
2603                 TheName = "GRAY49";
2604         break;
2605         case Quantity_NOC_GRAY5 :
2606                 TheName = "GRAY5";
2607         break;
2608         case Quantity_NOC_GRAY50 :
2609                 TheName = "GRAY50";
2610         break;
2611         case Quantity_NOC_GRAY51 :
2612                 TheName = "GRAY51";
2613         break;
2614         case Quantity_NOC_GRAY52 :
2615                 TheName = "GRAY52";
2616         break;
2617         case Quantity_NOC_GRAY53 :
2618                 TheName = "GRAY53";
2619         break;
2620         case Quantity_NOC_GRAY54 :
2621                 TheName = "GRAY54";
2622         break;
2623         case Quantity_NOC_GRAY55 :
2624                 TheName = "GRAY55";
2625         break;
2626         case Quantity_NOC_GRAY56 :
2627                 TheName = "GRAY56";
2628         break;
2629         case Quantity_NOC_GRAY57 :
2630                 TheName = "GRAY57";
2631         break;
2632         case Quantity_NOC_GRAY58 :
2633                 TheName = "GRAY58";
2634         break;
2635         case Quantity_NOC_GRAY59 :
2636                 TheName = "GRAY59";
2637         break;
2638         case Quantity_NOC_GRAY6 :
2639                 TheName = "GRAY6";
2640         break;
2641         case Quantity_NOC_GRAY60 :
2642                 TheName = "GRAY60";
2643         break;
2644         case Quantity_NOC_GRAY61 :
2645                 TheName = "GRAY61";
2646         break;
2647         case Quantity_NOC_GRAY62 :
2648                 TheName = "GRAY62";
2649         break;
2650         case Quantity_NOC_GRAY63 :
2651                 TheName = "GRAY63";
2652         break;
2653         case Quantity_NOC_GRAY64 :
2654                 TheName = "GRAY64";
2655         break;
2656         case Quantity_NOC_GRAY65 :
2657                 TheName = "GRAY65";
2658         break;
2659         case Quantity_NOC_GRAY66 :
2660                 TheName = "GRAY66";
2661         break;
2662         case Quantity_NOC_GRAY67 :
2663                 TheName = "GRAY67";
2664         break;
2665         case Quantity_NOC_GRAY68 :
2666                 TheName = "GRAY68";
2667         break;
2668         case Quantity_NOC_GRAY69 :
2669                 TheName = "GRAY69";
2670         break;
2671         case Quantity_NOC_GRAY7 :
2672                 TheName = "GRAY7";
2673         break;
2674         case Quantity_NOC_GRAY70 :
2675                 TheName = "GRAY70";
2676         break;
2677         case Quantity_NOC_GRAY71 :
2678                 TheName = "GRAY71";
2679         break;
2680         case Quantity_NOC_GRAY72 :
2681                 TheName = "GRAY72";
2682         break;
2683         case Quantity_NOC_GRAY73 :
2684                 TheName = "GRAY73";
2685         break;
2686         case Quantity_NOC_GRAY74 :
2687                 TheName = "GRAY74";
2688         break;
2689         case Quantity_NOC_GRAY75 :
2690                 TheName = "GRAY75";
2691         break;
2692         case Quantity_NOC_GRAY76 :
2693                 TheName = "GRAY76";
2694         break;
2695         case Quantity_NOC_GRAY77 :
2696                 TheName = "GRAY77";
2697         break;
2698         case Quantity_NOC_GRAY78 :
2699                 TheName = "GRAY78";
2700         break;
2701         case Quantity_NOC_GRAY79 :
2702                 TheName = "GRAY79";
2703         break;
2704         case Quantity_NOC_GRAY8 :
2705                 TheName = "GRAY8";
2706         break;
2707         case Quantity_NOC_GRAY80 :
2708                 TheName = "GRAY80";
2709         break;
2710         case Quantity_NOC_GRAY81 :
2711                 TheName = "GRAY81";
2712         break;
2713         case Quantity_NOC_GRAY82 :
2714                 TheName = "GRAY82";
2715         break;
2716         case Quantity_NOC_GRAY83 :
2717                 TheName = "GRAY83";
2718         break;
2719         case Quantity_NOC_GRAY85 :
2720                 TheName = "GRAY85";
2721         break;
2722         case Quantity_NOC_GRAY86 :
2723                 TheName = "GRAY86";
2724         break;
2725         case Quantity_NOC_GRAY87 :
2726                 TheName = "GRAY87";
2727         break;
2728         case Quantity_NOC_GRAY88 :
2729                 TheName = "GRAY88";
2730         break;
2731         case Quantity_NOC_GRAY89 :
2732                 TheName = "GRAY89";
2733         break;
2734         case Quantity_NOC_GRAY9 :
2735                 TheName = "GRAY9";
2736         break;
2737         case Quantity_NOC_GRAY90 :
2738                 TheName = "GRAY90";
2739         break;
2740         case Quantity_NOC_GRAY91 :
2741                 TheName = "GRAY91";
2742         break;
2743         case Quantity_NOC_GRAY92 :
2744                 TheName = "GRAY92";
2745         break;
2746         case Quantity_NOC_GRAY93 :
2747                 TheName = "GRAY93";
2748         break;
2749         case Quantity_NOC_GRAY94 :
2750                 TheName = "GRAY94";
2751         break;
2752         case Quantity_NOC_GRAY95 :
2753                 TheName = "GRAY95";
2754         break;
2755         case Quantity_NOC_GREEN :
2756                 TheName = "GREEN";
2757         break;
2758         case Quantity_NOC_GREEN1 :
2759                 TheName = "GREEN1";
2760         break;
2761         case Quantity_NOC_GREEN2 :
2762                 TheName = "GREEN2";
2763         break;
2764         case Quantity_NOC_GREEN3 :
2765                 TheName = "GREEN3";
2766         break;
2767         case Quantity_NOC_GREEN4 :
2768                 TheName = "GREEN4";
2769         break;
2770         case Quantity_NOC_GREENYELLOW :
2771                 TheName = "GREENYELLOW";
2772         break;
2773         case Quantity_NOC_GRAY97 :
2774                 TheName = "GRAY97";
2775         break;
2776         case Quantity_NOC_GRAY98 :
2777                 TheName = "GRAY98";
2778         break;
2779         case Quantity_NOC_GRAY99 :
2780                 TheName = "GRAY99";
2781         break;
2782         case Quantity_NOC_HONEYDEW :
2783                 TheName = "HONEYDEW";
2784         break;
2785         case Quantity_NOC_HONEYDEW2 :
2786                 TheName = "HONEYDEW2";
2787         break;
2788         case Quantity_NOC_HONEYDEW3 :
2789                 TheName = "HONEYDEW3";
2790         break;
2791         case Quantity_NOC_HONEYDEW4 :
2792                 TheName = "HONEYDEW4";
2793         break;
2794         case Quantity_NOC_HOTPINK :
2795                 TheName = "HOTPINK";
2796         break;
2797         case Quantity_NOC_HOTPINK1 :
2798                 TheName = "HOTPINK1";
2799         break;
2800         case Quantity_NOC_HOTPINK2 :
2801                 TheName = "HOTPINK2";
2802         break;
2803         case Quantity_NOC_HOTPINK3 :
2804                 TheName = "HOTPINK3";
2805         break;
2806         case Quantity_NOC_HOTPINK4 :
2807                 TheName = "HOTPINK4";
2808         break;
2809         case Quantity_NOC_INDIANRED :
2810                 TheName = "INDIANRED";
2811         break;
2812         case Quantity_NOC_INDIANRED1 :
2813                 TheName = "INDIANRED1";
2814         break;
2815         case Quantity_NOC_INDIANRED2 :
2816                 TheName = "INDIANRED2";
2817         break;
2818         case Quantity_NOC_INDIANRED3 :
2819                 TheName = "INDIANRED3";
2820         break;
2821         case Quantity_NOC_INDIANRED4 :
2822                 TheName = "INDIANRED4";
2823         break;
2824         case Quantity_NOC_IVORY :
2825                 TheName = "IVORY";
2826         break;
2827         case Quantity_NOC_IVORY2 :
2828                 TheName = "IVORY2";
2829         break;
2830         case Quantity_NOC_IVORY3 :
2831                 TheName = "IVORY3";
2832         break;
2833         case Quantity_NOC_IVORY4 :
2834                 TheName = "IVORY4";
2835         break;
2836         case Quantity_NOC_KHAKI :
2837                 TheName = "KHAKI";
2838         break;
2839         case Quantity_NOC_KHAKI1 :
2840                 TheName = "KHAKI1";
2841         break;
2842         case Quantity_NOC_KHAKI2 :
2843                 TheName = "KHAKI2";
2844         break;
2845         case Quantity_NOC_KHAKI3 :
2846                 TheName = "KHAKI3";
2847         break;
2848         case Quantity_NOC_KHAKI4 :
2849                 TheName = "KHAKI4";
2850         break;
2851         case Quantity_NOC_LAVENDER :
2852                 TheName = "LAVENDER";
2853         break;
2854         case Quantity_NOC_LAVENDERBLUSH1 :
2855                 TheName = "LAVENDERBLUSH1";
2856         break;
2857         case Quantity_NOC_LAVENDERBLUSH2 :
2858                 TheName = "LAVENDERBLUSH2";
2859         break;
2860         case Quantity_NOC_LAVENDERBLUSH3 :
2861                 TheName = "LAVENDERBLUSH3";
2862         break;
2863         case Quantity_NOC_LAVENDERBLUSH4 :
2864                 TheName = "LAVENDERBLUSH4";
2865         break;
2866         case Quantity_NOC_LAWNGREEN :
2867                 TheName = "LAWNGREEN";
2868         break;
2869         case Quantity_NOC_LEMONCHIFFON1 :
2870                 TheName = "LEMONCHIFFON1";
2871         break;
2872         case Quantity_NOC_LEMONCHIFFON2 :
2873                 TheName = "LEMONCHIFFON2";
2874         break;
2875         case Quantity_NOC_LEMONCHIFFON3 :
2876                 TheName = "LEMONCHIFFON3";
2877         break;
2878         case Quantity_NOC_LEMONCHIFFON4 :
2879                 TheName = "LEMONCHIFFON4";
2880         break;
2881         case Quantity_NOC_LIGHTBLUE :
2882                 TheName = "LIGHTBLUE";
2883         break;
2884         case Quantity_NOC_LIGHTBLUE1 :
2885                 TheName = "LIGHTBLUE1";
2886         break;
2887         case Quantity_NOC_LIGHTBLUE2 :
2888                 TheName = "LIGHTBLUE2";
2889         break;
2890         case Quantity_NOC_LIGHTBLUE3 :
2891                 TheName = "LIGHTBLUE3";
2892         break;
2893         case Quantity_NOC_LIGHTBLUE4 :
2894                 TheName = "LIGHTBLUE4";
2895         break;
2896         case Quantity_NOC_LIGHTCORAL :
2897                 TheName = "LIGHTCORAL";
2898         break;
2899         case Quantity_NOC_LIGHTCYAN1 :
2900                 TheName = "LIGHTCYAN1";
2901         break;
2902         case Quantity_NOC_LIGHTCYAN2 :
2903                 TheName = "LIGHTCYAN2";
2904         break;
2905         case Quantity_NOC_LIGHTCYAN3 :
2906                 TheName = "LIGHTCYAN3";
2907         break;
2908         case Quantity_NOC_LIGHTCYAN4 :
2909                 TheName = "LIGHTCYAN4";
2910         break;
2911         case Quantity_NOC_LIGHTGOLDENROD :
2912                 TheName = "LIGHTGOLDENROD";
2913         break;
2914         case Quantity_NOC_LIGHTGOLDENROD1 :
2915                 TheName = "LIGHTGOLDENROD1";
2916         break;
2917         case Quantity_NOC_LIGHTGOLDENROD2 :
2918                 TheName = "LIGHTGOLDENROD2";
2919         break;
2920         case Quantity_NOC_LIGHTGOLDENROD3 :
2921                 TheName = "LIGHTGOLDENROD3";
2922         break;
2923         case Quantity_NOC_LIGHTGOLDENROD4 :
2924                 TheName = "LIGHTGOLDENROD4";
2925         break;
2926         case Quantity_NOC_LIGHTGOLDENRODYELLOW :
2927                 TheName = "LIGHTGOLDENRODYELLOW";
2928         break;
2929         case Quantity_NOC_LIGHTGRAY :
2930                 TheName = "LIGHTGRAY";
2931         break;
2932         case Quantity_NOC_LIGHTPINK :
2933                 TheName = "LIGHTPINK";
2934         break;
2935         case Quantity_NOC_LIGHTPINK1 :
2936                 TheName = "LIGHTPINK1";
2937         break;
2938         case Quantity_NOC_LIGHTPINK2 :
2939                 TheName = "LIGHTPINK2";
2940         break;
2941         case Quantity_NOC_LIGHTPINK3 :
2942                 TheName = "LIGHTPINK3";
2943         break;
2944         case Quantity_NOC_LIGHTPINK4 :
2945                 TheName = "LIGHTPINK4";
2946         break;
2947         case Quantity_NOC_LIGHTSALMON1 :
2948                 TheName = "LIGHTSALMON1";
2949         break;
2950         case Quantity_NOC_LIGHTSALMON2 :
2951                 TheName = "LIGHTSALMON2";
2952         break;
2953         case Quantity_NOC_LIGHTSALMON3 :
2954                 TheName = "LIGHTSALMON3";
2955         break;
2956         case Quantity_NOC_LIGHTSALMON4 :
2957                 TheName = "LIGHTSALMON4";
2958         break;
2959         case Quantity_NOC_LIGHTSEAGREEN :
2960                 TheName = "LIGHTSEAGREEN";
2961         break;
2962         case Quantity_NOC_LIGHTSKYBLUE :
2963                 TheName = "LIGHTSKYBLUE";
2964         break;
2965         case Quantity_NOC_LIGHTSKYBLUE1 :
2966                 TheName = "LIGHTSKYBLUE1";
2967         break;
2968         case Quantity_NOC_LIGHTSKYBLUE2 :
2969                 TheName = "LIGHTSKYBLUE2";
2970         break;
2971         case Quantity_NOC_LIGHTSKYBLUE3 :
2972                 TheName = "LIGHTSKYBLUE3";
2973         break;
2974         case Quantity_NOC_LIGHTSKYBLUE4 :
2975                 TheName = "LIGHTSKYBLUE4";
2976         break;
2977         case Quantity_NOC_LIGHTSLATEBLUE :
2978                 TheName = "LIGHTSLATEBLUE";
2979         break;
2980         case Quantity_NOC_LIGHTSLATEGRAY :
2981                 TheName = "LIGHTSLATEGRAY";
2982         break;
2983         case Quantity_NOC_LIGHTSTEELBLUE :
2984                 TheName = "LIGHTSTEELBLUE";
2985         break;
2986         case Quantity_NOC_LIGHTSTEELBLUE1 :
2987                 TheName = "LIGHTSTEELBLUE1";
2988         break;
2989         case Quantity_NOC_LIGHTSTEELBLUE2 :
2990                 TheName = "LIGHTSTEELBLUE2";
2991         break;
2992         case Quantity_NOC_LIGHTSTEELBLUE3 :
2993                 TheName = "LIGHTSTEELBLUE3";
2994         break;
2995         case Quantity_NOC_LIGHTSTEELBLUE4 :
2996                 TheName = "LIGHTSTEELBLUE4";
2997         break;
2998         case Quantity_NOC_LIGHTYELLOW :
2999                 TheName = "LIGHTYELLOW";
3000         break;
3001         case Quantity_NOC_LIGHTYELLOW2 :
3002                 TheName = "LIGHTYELLOW2";
3003         break;
3004         case Quantity_NOC_LIGHTYELLOW3 :
3005                 TheName = "LIGHTYELLOW3";
3006         break;
3007         case Quantity_NOC_LIGHTYELLOW4 :
3008                 TheName = "LIGHTYELLOW4";
3009         break;
3010         case Quantity_NOC_LIMEGREEN :
3011                 TheName = "LIMEGREEN";
3012         break;
3013         case Quantity_NOC_LINEN :
3014                 TheName = "LINEN";
3015         break;
3016         case Quantity_NOC_MAGENTA1 :
3017                 TheName = "MAGENTA1";
3018         break;
3019         case Quantity_NOC_MAGENTA2 :
3020                 TheName = "MAGENTA2";
3021         break;
3022         case Quantity_NOC_MAGENTA3 :
3023                 TheName = "MAGENTA3";
3024         break;
3025         case Quantity_NOC_MAGENTA4 :
3026                 TheName = "MAGENTA4";
3027         break;
3028         case Quantity_NOC_MAROON :
3029                 TheName = "MAROON";
3030         break;
3031         case Quantity_NOC_MAROON1 :
3032                 TheName = "MAROON1";
3033         break;
3034         case Quantity_NOC_MAROON2 :
3035                 TheName = "MAROON2";
3036         break;
3037         case Quantity_NOC_MAROON3 :
3038                 TheName = "MAROON3";
3039         break;
3040         case Quantity_NOC_MAROON4 :
3041                 TheName = "MAROON4";
3042         break;
3043         case Quantity_NOC_MEDIUMAQUAMARINE :
3044                 TheName = "MEDIUMAQUAMARINE";
3045         break;
3046         case Quantity_NOC_MEDIUMORCHID :
3047                 TheName = "MEDIUMORCHID";
3048         break;
3049         case Quantity_NOC_MEDIUMORCHID1 :
3050                 TheName = "MEDIUMORCHID1";
3051         break;
3052         case Quantity_NOC_MEDIUMORCHID2 :
3053                 TheName = "MEDIUMORCHID2";
3054         break;
3055         case Quantity_NOC_MEDIUMORCHID3 :
3056                 TheName = "MEDIUMORCHID3";
3057         break;
3058         case Quantity_NOC_MEDIUMORCHID4 :
3059                 TheName = "MEDIUMORCHID4";
3060         break;
3061         case Quantity_NOC_MEDIUMPURPLE :
3062                 TheName = "MEDIUMPURPLE";
3063         break;
3064         case Quantity_NOC_MEDIUMPURPLE1 :
3065                 TheName = "MEDIUMPURPLE1";
3066         break;
3067         case Quantity_NOC_MEDIUMPURPLE2 :
3068                 TheName = "MEDIUMPURPLE2";
3069         break;
3070         case Quantity_NOC_MEDIUMPURPLE3 :
3071                 TheName = "MEDIUMPURPLE3";
3072         break;
3073         case Quantity_NOC_MEDIUMPURPLE4 :
3074                 TheName = "MEDIUMPURPLE4";
3075         break;
3076         case Quantity_NOC_MEDIUMSEAGREEN :
3077                 TheName = "MEDIUMSEAGREEN";
3078         break;
3079         case Quantity_NOC_MEDIUMSLATEBLUE :
3080                 TheName = "MEDIUMSLATEBLUE";
3081         break;
3082         case Quantity_NOC_MEDIUMSPRINGGREEN :
3083                 TheName = "MEDIUMSPRINGGREEN";
3084         break;
3085         case Quantity_NOC_MEDIUMTURQUOISE :
3086                 TheName = "MEDIUMTURQUOISE";
3087         break;
3088         case Quantity_NOC_MEDIUMVIOLETRED :
3089                 TheName = "MEDIUMVIOLETRED";
3090         break;
3091         case Quantity_NOC_MIDNIGHTBLUE :
3092                 TheName = "MIDNIGHTBLUE";
3093         break;
3094         case Quantity_NOC_MINTCREAM :
3095                 TheName = "MINTCREAM";
3096         break;
3097         case Quantity_NOC_MISTYROSE :
3098                 TheName = "MISTYROSE";
3099         break;
3100         case Quantity_NOC_MISTYROSE2 :
3101                 TheName = "MISTYROSE2";
3102         break;
3103         case Quantity_NOC_MISTYROSE3 :
3104                 TheName = "MISTYROSE3";
3105         break;
3106         case Quantity_NOC_MISTYROSE4 :
3107                 TheName = "MISTYROSE4";
3108         break;
3109         case Quantity_NOC_MOCCASIN :
3110                 TheName = "MOCCASIN";
3111         break;
3112         case Quantity_NOC_NAVAJOWHITE1 :
3113                 TheName = "NAVAJOWHITE1";
3114         break;
3115         case Quantity_NOC_NAVAJOWHITE2 :
3116                 TheName = "NAVAJOWHITE2";
3117         break;
3118         case Quantity_NOC_NAVAJOWHITE3 :
3119                 TheName = "NAVAJOWHITE3";
3120         break;
3121         case Quantity_NOC_NAVAJOWHITE4 :
3122                 TheName = "NAVAJOWHITE4";
3123         break;
3124         case Quantity_NOC_NAVYBLUE :
3125                 TheName = "NAVYBLUE";
3126         break;
3127         case Quantity_NOC_OLDLACE :
3128                 TheName = "OLDLACE";
3129         break;
3130         case Quantity_NOC_OLIVEDRAB :
3131                 TheName = "OLIVEDRAB";
3132         break;
3133         case Quantity_NOC_OLIVEDRAB1 :
3134                 TheName = "OLIVEDRAB1";
3135         break;
3136         case Quantity_NOC_OLIVEDRAB2 :
3137                 TheName = "OLIVEDRAB2";
3138         break;
3139         case Quantity_NOC_OLIVEDRAB3 :
3140                 TheName = "OLIVEDRAB3";
3141         break;
3142         case Quantity_NOC_OLIVEDRAB4 :
3143                 TheName = "OLIVEDRAB4";
3144         break;
3145         case Quantity_NOC_ORANGE :
3146                 TheName = "ORANGE";
3147         break;
3148         case Quantity_NOC_ORANGE1 :
3149                 TheName = "ORANGE1";
3150         break;
3151         case Quantity_NOC_ORANGE2 :
3152                 TheName = "ORANGE2";
3153         break;
3154         case Quantity_NOC_ORANGE3 :
3155                 TheName = "ORANGE3";
3156         break;
3157         case Quantity_NOC_ORANGE4 :
3158                 TheName = "ORANGE4";
3159         break;
3160         case Quantity_NOC_ORANGERED :
3161                 TheName = "ORANGERED";
3162         break;
3163         case Quantity_NOC_ORANGERED1 :
3164                 TheName = "ORANGERED1";
3165         break;
3166         case Quantity_NOC_ORANGERED2 :
3167                 TheName = "ORANGERED2";
3168         break;
3169         case Quantity_NOC_ORANGERED3 :
3170                 TheName = "ORANGERED3";
3171         break;
3172         case Quantity_NOC_ORANGERED4 :
3173                 TheName = "ORANGERED4";
3174         break;
3175         case Quantity_NOC_ORCHID :
3176                 TheName = "ORCHID";
3177         break;
3178         case Quantity_NOC_ORCHID1 :
3179                 TheName = "ORCHID1";
3180         break;
3181         case Quantity_NOC_ORCHID2 :
3182                 TheName = "ORCHID2";
3183         break;
3184         case Quantity_NOC_ORCHID3 :
3185                 TheName = "ORCHID3";
3186         break;
3187         case Quantity_NOC_ORCHID4 :
3188                 TheName = "ORCHID4";
3189         break;
3190         case Quantity_NOC_PALEGOLDENROD :
3191                 TheName = "PALEGOLDENROD";
3192         break;
3193         case Quantity_NOC_PALEGREEN :
3194                 TheName = "PALEGREEN";
3195         break;
3196         case Quantity_NOC_PALEGREEN1 :
3197                 TheName = "PALEGREEN1";
3198         break;
3199         case Quantity_NOC_PALEGREEN2 :
3200                 TheName = "PALEGREEN2";
3201         break;
3202         case Quantity_NOC_PALEGREEN3 :
3203                 TheName = "PALEGREEN3";
3204         break;
3205         case Quantity_NOC_PALEGREEN4 :
3206                 TheName = "PALEGREEN4";
3207         break;
3208         case Quantity_NOC_PALETURQUOISE :
3209                 TheName = "PALETURQUOISE";
3210         break;
3211         case Quantity_NOC_PALETURQUOISE1 :
3212                 TheName = "PALETURQUOISE1";
3213         break;
3214         case Quantity_NOC_PALETURQUOISE2 :
3215                 TheName = "PALETURQUOISE2";
3216         break;
3217         case Quantity_NOC_PALETURQUOISE3 :
3218                 TheName = "PALETURQUOISE3";
3219         break;
3220         case Quantity_NOC_PALETURQUOISE4 :
3221                 TheName = "PALETURQUOISE4";
3222         break;
3223         case Quantity_NOC_PALEVIOLETRED :
3224                 TheName = "PALEVIOLETRED";
3225         break;
3226         case Quantity_NOC_PALEVIOLETRED1 :
3227                 TheName = "PALEVIOLETRED1";
3228         break;
3229         case Quantity_NOC_PALEVIOLETRED2 :
3230                 TheName = "PALEVIOLETRED2";
3231         break;
3232         case Quantity_NOC_PALEVIOLETRED3 :
3233                 TheName = "PALEVIOLETRED3";
3234         break;
3235         case Quantity_NOC_PALEVIOLETRED4 :
3236                 TheName = "PALEVIOLETRED4";
3237         break;
3238         case Quantity_NOC_PAPAYAWHIP :
3239                 TheName = "PAPAYAWHIP";
3240         break;
3241         case Quantity_NOC_PEACHPUFF :
3242                 TheName = "PEACHPUFF";
3243         break;
3244         case Quantity_NOC_PEACHPUFF2 :
3245                 TheName = "PEACHPUFF2";
3246         break;
3247         case Quantity_NOC_PEACHPUFF3 :
3248                 TheName = "PEACHPUFF3";
3249         break;
3250         case Quantity_NOC_PEACHPUFF4 :
3251                 TheName = "PEACHPUFF4";
3252         break;
3253         case Quantity_NOC_PERU :
3254                 TheName = "PERU";
3255         break;
3256         case Quantity_NOC_PINK :
3257                 TheName = "PINK";
3258         break;
3259         case Quantity_NOC_PINK1 :
3260                 TheName = "PINK1";
3261         break;
3262         case Quantity_NOC_PINK2 :
3263                 TheName = "PINK2";
3264         break;
3265         case Quantity_NOC_PINK3 :
3266                 TheName = "PINK3";
3267         break;
3268         case Quantity_NOC_PINK4 :
3269                 TheName = "PINK4";
3270         break;
3271         case Quantity_NOC_PLUM :
3272                 TheName = "PLUM";
3273         break;
3274         case Quantity_NOC_PLUM1 :
3275                 TheName = "PLUM1";
3276         break;
3277         case Quantity_NOC_PLUM2 :
3278                 TheName = "PLUM2";
3279         break;
3280         case Quantity_NOC_PLUM3 :
3281                 TheName = "PLUM3";
3282         break;
3283         case Quantity_NOC_PLUM4 :
3284                 TheName = "PLUM4";
3285         break;
3286         case Quantity_NOC_POWDERBLUE :
3287                 TheName = "POWDERBLUE";
3288         break;
3289         case Quantity_NOC_PURPLE :
3290                 TheName = "PURPLE";
3291         break;
3292         case Quantity_NOC_PURPLE1 :
3293                 TheName = "PURPLE1";
3294         break;
3295         case Quantity_NOC_PURPLE2 :
3296                 TheName = "PURPLE2";
3297         break;
3298         case Quantity_NOC_PURPLE3 :
3299                 TheName = "PURPLE3";
3300         break;
3301         case Quantity_NOC_PURPLE4 :
3302                 TheName = "PURPLE4";
3303         break;
3304         case Quantity_NOC_RED :
3305                 TheName = "RED";
3306         break;
3307         case Quantity_NOC_RED1 :
3308                 TheName = "RED1";
3309         break;
3310         case Quantity_NOC_RED2 :
3311                 TheName = "RED2";
3312         break;
3313         case Quantity_NOC_RED3 :
3314                 TheName = "RED3";
3315         break;
3316         case Quantity_NOC_RED4 :
3317                 TheName = "RED4";
3318         break;
3319         case Quantity_NOC_ROSYBROWN :
3320                 TheName = "ROSYBROWN";
3321         break;
3322         case Quantity_NOC_ROSYBROWN1 :
3323                 TheName = "ROSYBROWN1";
3324         break;
3325         case Quantity_NOC_ROSYBROWN2 :
3326                 TheName = "ROSYBROWN2";
3327         break;
3328         case Quantity_NOC_ROSYBROWN3 :
3329                 TheName = "ROSYBROWN3";
3330         break;
3331         case Quantity_NOC_ROSYBROWN4 :
3332                 TheName = "ROSYBROWN4";
3333         break;
3334         case Quantity_NOC_ROYALBLUE :
3335                 TheName = "ROYALBLUE";
3336         break;
3337         case Quantity_NOC_ROYALBLUE1 :
3338                 TheName = "ROYALBLUE1";
3339         break;
3340         case Quantity_NOC_ROYALBLUE2 :
3341                 TheName = "ROYALBLUE2";
3342         break;
3343         case Quantity_NOC_ROYALBLUE3 :
3344                 TheName = "ROYALBLUE3";
3345         break;
3346         case Quantity_NOC_ROYALBLUE4 :
3347                 TheName = "ROYALBLUE4";
3348         break;
3349         case Quantity_NOC_SADDLEBROWN :
3350                 TheName = "SADDLEBROWN";
3351         break;
3352         case Quantity_NOC_SALMON :
3353                 TheName = "SALMON";
3354         break;
3355         case Quantity_NOC_SALMON1 :
3356                 TheName = "SALMON1";
3357         break;
3358         case Quantity_NOC_SALMON2 :
3359                 TheName = "SALMON2";
3360         break;
3361         case Quantity_NOC_SALMON3 :
3362                 TheName = "SALMON3";
3363         break;
3364         case Quantity_NOC_SALMON4 :
3365                 TheName = "SALMON4";
3366         break;
3367         case Quantity_NOC_SANDYBROWN :
3368                 TheName = "SANDYBROWN";
3369         break;
3370         case Quantity_NOC_SEAGREEN :
3371                 TheName = "SEAGREEN";
3372         break;
3373         case Quantity_NOC_SEAGREEN1 :
3374                 TheName = "SEAGREEN1";
3375         break;
3376         case Quantity_NOC_SEAGREEN2 :
3377                 TheName = "SEAGREEN2";
3378         break;
3379         case Quantity_NOC_SEAGREEN3 :
3380                 TheName = "SEAGREEN3";
3381         break;
3382         case Quantity_NOC_SEAGREEN4 :
3383                 TheName = "SEAGREEN4";
3384         break;
3385         case Quantity_NOC_SEASHELL :
3386                 TheName = "SEASHELL";
3387         break;
3388         case Quantity_NOC_SEASHELL2 :
3389                 TheName = "SEASHELL2";
3390         break;
3391         case Quantity_NOC_SEASHELL3 :
3392                 TheName = "SEASHELL3";
3393         break;
3394         case Quantity_NOC_SEASHELL4 :
3395                 TheName = "SEASHELL4";
3396         break;
3397         case Quantity_NOC_BEET :
3398                 TheName = "BEET";
3399         break;
3400         case Quantity_NOC_TEAL :
3401                 TheName = "TEAL";
3402         break;
3403         case Quantity_NOC_SIENNA :
3404                 TheName = "SIENNA";
3405         break;
3406         case Quantity_NOC_SIENNA1 :
3407                 TheName = "SIENNA1";
3408         break;
3409         case Quantity_NOC_SIENNA2 :
3410                 TheName = "SIENNA2";
3411         break;
3412         case Quantity_NOC_SIENNA3 :
3413                 TheName = "SIENNA3";
3414         break;
3415         case Quantity_NOC_SIENNA4 :
3416                 TheName = "SIENNA4";
3417         break;
3418         case Quantity_NOC_SKYBLUE :
3419                 TheName = "SKYBLUE";
3420         break;
3421         case Quantity_NOC_SKYBLUE1 :
3422                 TheName = "SKYBLUE1";
3423         break;
3424         case Quantity_NOC_SKYBLUE2 :
3425                 TheName = "SKYBLUE2";
3426         break;
3427         case Quantity_NOC_SKYBLUE3 :
3428                 TheName = "SKYBLUE3";
3429         break;
3430         case Quantity_NOC_SKYBLUE4 :
3431                 TheName = "SKYBLUE4";
3432         break;
3433         case Quantity_NOC_SLATEBLUE :
3434                 TheName = "SLATEBLUE";
3435         break;
3436         case Quantity_NOC_SLATEBLUE1 :
3437                 TheName = "SLATEBLUE1";
3438         break;
3439         case Quantity_NOC_SLATEBLUE2 :
3440                 TheName = "SLATEBLUE2";
3441         break;
3442         case Quantity_NOC_SLATEBLUE3 :
3443                 TheName = "SLATEBLUE3";
3444         break;
3445         case Quantity_NOC_SLATEBLUE4 :
3446                 TheName = "SLATEBLUE4";
3447         break;
3448         case Quantity_NOC_SLATEGRAY1 :
3449                 TheName = "SLATEGRAY1";
3450         break;
3451         case Quantity_NOC_SLATEGRAY2 :
3452                 TheName = "SLATEGRAY2";
3453         break;
3454         case Quantity_NOC_SLATEGRAY3 :
3455                 TheName = "SLATEGRAY3";
3456         break;
3457         case Quantity_NOC_SLATEGRAY4 :
3458                 TheName = "SLATEGRAY4";
3459         break;
3460         case Quantity_NOC_SLATEGRAY :
3461                 TheName = "SLATEGRAY";
3462         break;
3463         case Quantity_NOC_SNOW :
3464                 TheName = "SNOW";
3465         break;
3466         case Quantity_NOC_SNOW2 :
3467                 TheName = "SNOW2";
3468         break;
3469         case Quantity_NOC_SNOW3 :
3470                 TheName = "SNOW3";
3471         break;
3472         case Quantity_NOC_SNOW4 :
3473                 TheName = "SNOW4";
3474         break;
3475         case Quantity_NOC_SPRINGGREEN :
3476                 TheName = "SPRINGGREEN";
3477         break;
3478         case Quantity_NOC_SPRINGGREEN2 :
3479                 TheName = "SPRINGGREEN2";
3480         break;
3481         case Quantity_NOC_SPRINGGREEN3 :
3482                 TheName = "SPRINGGREEN3";
3483         break;
3484         case Quantity_NOC_SPRINGGREEN4 :
3485                 TheName = "SPRINGGREEN4";
3486         break;
3487         case Quantity_NOC_STEELBLUE :
3488                 TheName = "STEELBLUE";
3489         break;
3490         case Quantity_NOC_STEELBLUE1 :
3491                 TheName = "STEELBLUE1";
3492         break;
3493         case Quantity_NOC_STEELBLUE2 :
3494                 TheName = "STEELBLUE2";
3495         break;
3496         case Quantity_NOC_STEELBLUE3 :
3497                 TheName = "STEELBLUE3";
3498         break;
3499         case Quantity_NOC_STEELBLUE4 :
3500                 TheName = "STEELBLUE4";
3501         break;
3502         case Quantity_NOC_TAN :
3503                 TheName = "TAN";
3504         break;
3505         case Quantity_NOC_TAN1 :
3506                 TheName = "TAN1";
3507         break;
3508         case Quantity_NOC_TAN2 :
3509                 TheName = "TAN2";
3510         break;
3511         case Quantity_NOC_TAN3 :
3512                 TheName = "TAN3";
3513         break;
3514         case Quantity_NOC_TAN4 :
3515                 TheName = "TAN4";
3516         break;
3517         case Quantity_NOC_THISTLE :
3518                 TheName = "THISTLE";
3519         break;
3520         case Quantity_NOC_THISTLE1 :
3521                 TheName = "THISTLE1";
3522         break;
3523         case Quantity_NOC_THISTLE2 :
3524                 TheName = "THISTLE2";
3525         break;
3526         case Quantity_NOC_THISTLE3 :
3527                 TheName = "THISTLE3";
3528         break;
3529         case Quantity_NOC_THISTLE4 :
3530                 TheName = "THISTLE4";
3531         break;
3532         case Quantity_NOC_TOMATO :
3533                 TheName = "TOMATO";
3534         break;
3535         case Quantity_NOC_TOMATO1 :
3536                 TheName = "TOMATO1";
3537         break;
3538         case Quantity_NOC_TOMATO2 :
3539                 TheName = "TOMATO2";
3540         break;
3541         case Quantity_NOC_TOMATO3 :
3542                 TheName = "TOMATO3";
3543         break;
3544         case Quantity_NOC_TOMATO4 :
3545                 TheName = "TOMATO4";
3546         break;
3547         case Quantity_NOC_TURQUOISE :
3548                 TheName = "TURQUOISE";
3549         break;
3550         case Quantity_NOC_TURQUOISE1 :
3551                 TheName = "TURQUOISE1";
3552         break;
3553         case Quantity_NOC_TURQUOISE2 :
3554                 TheName = "TURQUOISE2";
3555         break;
3556         case Quantity_NOC_TURQUOISE3 :
3557                 TheName = "TURQUOISE3";
3558         break;
3559         case Quantity_NOC_TURQUOISE4 :
3560                 TheName = "TURQUOISE4";
3561         break;
3562         case Quantity_NOC_VIOLET :
3563                 TheName = "VIOLET";
3564         break;
3565         case Quantity_NOC_VIOLETRED :
3566                 TheName = "VIOLETRED";
3567         break;
3568         case Quantity_NOC_VIOLETRED1 :
3569                 TheName = "VIOLETRED1";
3570         break;
3571         case Quantity_NOC_VIOLETRED2 :
3572                 TheName = "VIOLETRED2";
3573         break;
3574         case Quantity_NOC_VIOLETRED3 :
3575                 TheName = "VIOLETRED3";
3576         break;
3577         case Quantity_NOC_VIOLETRED4 :
3578                 TheName = "VIOLETRED4";
3579         break;
3580         case Quantity_NOC_WHEAT :
3581                 TheName = "WHEAT";
3582         break;
3583         case Quantity_NOC_WHEAT1 :
3584                 TheName = "WHEAT1";
3585         break;
3586         case Quantity_NOC_WHEAT2 :
3587                 TheName = "WHEAT2";
3588         break;
3589         case Quantity_NOC_WHEAT3 :
3590                 TheName = "WHEAT3";
3591         break;
3592         case Quantity_NOC_WHEAT4 :
3593                 TheName = "WHEAT4";
3594         break;
3595         case Quantity_NOC_WHITE :
3596                 TheName = "WHITE";
3597         break;
3598         case Quantity_NOC_WHITESMOKE :
3599                 TheName = "WHITESMOKE";
3600         break;
3601         case Quantity_NOC_YELLOW :
3602                 TheName = "YELLOW";
3603         break;
3604         case Quantity_NOC_YELLOW1 :
3605                 TheName = "YELLOW1";
3606         break;
3607         case Quantity_NOC_YELLOW2 :
3608                 TheName = "YELLOW2";
3609         break;
3610         case Quantity_NOC_YELLOW3 :
3611                 TheName = "YELLOW3";
3612         break;
3613         case Quantity_NOC_YELLOW4 :
3614                 TheName = "YELLOW4";
3615         break;
3616         case Quantity_NOC_YELLOWGREEN :
3617                 TheName = "YELLOWGREEN";
3618         break;
3619         default :
3620                 TheName = "UNDEFINED";
3621                 Standard_OutOfRange::Raise ("Bad name");
3622         break;
3623 }
3624 return (TheName);
3625 }
3626
3627 //\f
3628 ///////////////////////////////////////////////////////////////////////////////
3629 //////////////////////////////////// TESTS ////////////////////////////////////
3630 ///////////////////////////////////////////////////////////////////////////////
3631
3632 void Quantity_Color::Test () {
3633
3634 void TestOfColor ();
3635
3636         try {
3637           OCC_CATCH_SIGNALS
3638                 TestOfColor ();
3639         }
3640
3641         catch (Standard_Failure) {
3642                 Handle(Standard_Failure) E = Standard_Failure::Caught();
3643                 cout << E << endl;
3644         }
3645
3646 }
3647
3648 void TestOfColor () {
3649
3650 Quantity_Parameter H, L, S;
3651 Quantity_Parameter R, G, B;
3652 Quantity_Parameter DC, DI;
3653 Standard_Integer i;
3654
3655 cout << "definition color tests\n----------------------\n";
3656
3657 Quantity_Color C1;
3658 Quantity_Color C2 (Quantity_NOC_ROYALBLUE2);
3659 Quantity_Color C3 (Quantity_NOC_SANDYBROWN);
3660
3661 // An Introduction to Standard_Object-Oriented Programming and C++ p43
3662 // a comment for the "const char *const" declaration
3663 const char *const cyan = "YELLOW";
3664 const char *const blue = "ROYALBLUE2";
3665 const char *const brown = "SANDYBROWN";
3666
3667 Quantity_Parameter RR, GG, BB;
3668
3669 const Standard_Real DELTA = 1.0e-4;
3670
3671 cout << "Get values and names of color tests\n-----------------------------------\n";
3672
3673         C1.Values (R, G, B, Quantity_TOC_RGB);
3674         if ( (R!=1.0) || (G!=1.0) || (B!=0.0) ) {
3675                 cout << "TEST_ERROR : Values () bad default color\n";
3676                 cout << "R, G, B values: " << R << " " << G << " " << B << "\n";
3677         }
3678         if ( (C1.Red ()!=1.0) || (C1.Green ()!=1.0) || (C1.Blue ()!=0.0) ) {
3679                 cout << "TEST_ERROR : Values () bad default color\n";
3680                 cout << "R, G, B values: " << C1.Red () << " " << C1.Green ()
3681                         << " " << C1.Blue () << "\n";
3682         }
3683         if (strcmp (Quantity_Color::StringName (C1.Name()), cyan) != 0)
3684                 cout << "TEST_ERROR : StringName () " <<
3685                         Quantity_Color::StringName (C1.Name()) << 
3686                                         " != YELLOW\n";
3687
3688         RR=0.262745; GG=0.431373; BB=0.933333;
3689         C1.SetValues (RR, GG, BB, Quantity_TOC_RGB);
3690         C2.Values (R, G, B, Quantity_TOC_RGB);
3691         if ( (Abs (RR-R) > DELTA) ||
3692              (Abs (GG-G) > DELTA) ||
3693              (Abs (BB-B) > DELTA) ) {
3694                 cout << "TEST_ERROR : Values () bad default color\n";
3695                 cout << "R, G, B values: " << R << " " << G << " " << B << "\n";
3696         }
3697
3698         if (C2 != C1) {
3699                 cout << "TEST_ERROR : IsDifferent ()\n";
3700         }
3701         if (C3 == C1) {
3702                 cout << "TEST_ERROR : IsEqual ()\n";
3703         }
3704
3705         cout << "Distance C1,C2 " << C1.Distance (C2) << "\n";
3706         cout << "Distance C1,C3 " << C1.Distance (C3) << "\n";
3707         cout << "Distance C2,C3 " << C2.Distance (C3) << "\n";
3708         cout << "SquareDistance C1,C2 " << C1.SquareDistance (C2) << "\n";
3709         cout << "SquareDistance C1,C3 " << C1.SquareDistance (C3) << "\n";
3710         cout << "SquareDistance C2,C3 " << C2.SquareDistance (C3) << "\n";
3711
3712         if (strcmp (Quantity_Color::StringName (C2.Name()), blue) != 0)
3713                 cout << "TEST_ERROR : StringName () " <<
3714                         Quantity_Color::StringName (C2.Name()) << 
3715                         " != ROYALBLUE2\n";
3716
3717 cout << "conversion rgbhls tests\n-----------------------\n";
3718         Quantity_Color::RgbHls (R, G, B, H, L, S);
3719         Quantity_Color::HlsRgb (H, L, S, R, G, B);
3720         RR=0.262745; GG=0.431373; BB=0.933333;
3721         if ( (Abs (RR-R) > DELTA) ||
3722              (Abs (GG-G) > DELTA) ||
3723              (Abs (BB-B) > DELTA) ) {
3724                 cout << "TEST_ERROR : RgbHls or HlsRgb bad conversion\n";
3725                 cout << "RGB init : " << RR << " " << GG << " " << BB << "\n";
3726                 cout << "RGB values : " << R << " " << G << " " << B << "\n";
3727                 cout << "Difference RGB : "
3728                         << RR-R << " " << GG-G << " " << BB-B << "\n";
3729         }
3730
3731 cout << "distance tests\n--------------\n";
3732         R = (float ) 0.9568631; G = (float ) 0.6431371; B = (float ) 0.3764711;
3733         C2.SetValues (R, G, B, Quantity_TOC_RGB);
3734         if (C2.Distance (C3) > DELTA) {
3735                 cout << "TEST_ERROR : Distance () bad result\n";
3736                 cout << "Distance C2 and C3 : " << C2.Distance (C3) << "\n";
3737         }
3738
3739         C2.Delta (C3, DC, DI);
3740         if (Abs (DC) > DELTA)
3741                 cout << "TEST_ERROR : Delta () bad result for DC\n";
3742         if (Abs (DI) > DELTA)
3743                 cout << "TEST_ERROR : Delta () bad result for DI\n";
3744
3745 cout << "name tests\n----------\n";
3746         R = (float ) 0.9568631; G = (float ) 0.6431371; B = (float ) 0.3764711;
3747         C2.SetValues (R, G, B, Quantity_TOC_RGB);
3748         if (strcmp (Quantity_Color::StringName (C2.Name()), brown) != 0)
3749                 cout << "TEST_ERROR : StringName () " <<
3750                         Quantity_Color::StringName (C2.Name()) << 
3751                         " != SANDYBROWN\n";
3752
3753 cout << "contrast change tests\n---------------------\n";
3754         for (i=1; i<=10; i++) {
3755                 C2.ChangeContrast (10.);
3756                 C2.ChangeContrast (-9.09090909);
3757         }
3758         C2.Values (R, G, B, Quantity_TOC_RGB);
3759         RR=0.956863; GG=0.6431371; BB=0.3764711;
3760         if ( (Abs (RR-R) > DELTA) ||
3761              (Abs (GG-G) > DELTA) ||
3762              (Abs (BB-B) > DELTA) ) {
3763                 cout << "TEST_ERROR : ChangeContrast () bad values\n";
3764                 cout << "RGB init : " << RR << " " << GG << " " << BB << "\n";
3765                 cout << "RGB values : " << R << " " << G << " " << B << "\n";
3766         }
3767
3768 }
3769
3770 /*
3771  *
3772  * Objet        :       Algorithme de conversion HLS vers RGB
3773  *
3774  * Rappels      :       RGB et HLS sont 2 modeles de representation
3775  *                      des couleurs
3776  *
3777  * Parametres   :       h, l, s connus avec h dans [0,360] et l et s dans [0,1]
3778  *                      r, g, b dans [0,1]
3779  *
3780  * Reference    :       La synthese d'images, Collection Hermes
3781  *
3782  * Adaptation   :       Cal     07 fevrier 1992
3783  *
3784  * Modification :       ?
3785  */
3786
3787 void call_hlsrgb (float h, float l, float s, float& r, float& g, float& b)
3788 /* parametres d'entree : h, l, s connus avec h dans [0,360]
3789  * et l et s dans [0,1] */
3790 /* parametres de sortie : r, g, b dans [0,1] */
3791 {
3792
3793         float hcopy;
3794         float lmuls;
3795         int hi;
3796
3797         hcopy = h;
3798         lmuls = l * s;
3799
3800 #ifdef IMP310300
3801         if (s == 0.0 && h == RGBHLS_H_UNDEFINED) {
3802 #else
3803         if (s == 0.0) {
3804            if (h == RGBHLS_H_UNDEFINED)
3805               /* cas teinte indefinie */
3806               h = RGBHLS_H_UNDEFINED;
3807            else
3808 #endif
3809               /* cas achromatique */
3810               r = g = b = l;
3811         }
3812         else {
3813            /* cas chromatique */
3814            if (hcopy == 360.0) {
3815               hcopy = 0.0;
3816               hi = 0;
3817            }
3818            else {
3819               hcopy /= 60.0;
3820               hi = (int)hcopy;
3821            }
3822
3823            switch (hi) {
3824               case 0 :
3825                         /*
3826                            r = l;
3827                            g = l * (1 - (s * (1 - (hcopy - hi))));
3828                            b = l * (1 - s);
3829                          */
3830                         r = l;
3831                         b = l - lmuls;
3832                         g = b + lmuls * hcopy;
3833               break;
3834               case 1 :
3835                         /*
3836                            r = l * (1 - (s * (hcopy - hi)));
3837                            g = l;
3838                            b = l * (1 - s);
3839                          */
3840                         r = l + lmuls - lmuls * hcopy;
3841                         g = l;
3842                         b = l - lmuls;
3843               break;
3844               case 2 :
3845                         /*
3846                            r = l * (1 - s);
3847                            g = l;
3848                            b = l * (1 - (s * (1 - (hcopy - hi))));
3849                          */
3850                         r = l - lmuls;
3851                         g = l;
3852                         b = l - 3 * lmuls + lmuls * hcopy;
3853               break;
3854               case 3 :
3855                         /*
3856                            r = l * (1 - s);
3857                            g = l * (1 - (s * (hcopy - hi)));
3858                            b = l;
3859                          */
3860                         r = l - lmuls;
3861                         g = l + 3 * lmuls - lmuls * hcopy;
3862                         b = l;
3863               break;
3864               case 4 :
3865                         /*
3866                            r = l * (1 - (s * (1 - (hcopy - hi))));
3867                            g = l * (1 - s);
3868                            b = l;
3869                          */
3870                         r = l - 5 * lmuls + lmuls * hcopy;
3871                         g = l - lmuls;
3872                         b = l;
3873               break;
3874               case 5 :
3875                         /*
3876                            r = l;
3877                            g = l * (1 - s);
3878                            b = l * (1 - (s * (hcopy - hi)));
3879                          */
3880                         r = l;
3881                         g = l - lmuls;
3882                         b = l + 5 * lmuls - lmuls * hcopy;
3883               break;
3884            }
3885         }
3886 }
3887
3888 /*
3889  * Objet        :       Algorithme de conversion RGB vers HLS
3890  *
3891  * Rappels      :       RGB et HLS sont 2 modeles de representation
3892  *                      des couleurs
3893  *
3894  * Parametres   :       r, g, b connus dans [0,1]
3895  *                      h, l, s avec h dans [0,360] et l et s dans [0,1]
3896  *
3897  * Reference    :       La synthese d'images, Collection Hermes
3898  *
3899  * Creation     :       Cal     04 fevrier 1992
3900  *
3901  * Modification :       ?
3902  */
3903
3904 void call_rgbhls (float r, float g, float b, float& h, float& l, float& s)
3905 /* parametres d'entree : r, g, b connus dans [0,1] */
3906 /* parametres de sortie : h, l, s avec h dans [0,360] et l et s dans [0,1] */
3907 {
3908
3909         float max, min;
3910         float plus, diff;
3911         float delta;
3912
3913         /* calcul du max entre r, g et b */
3914                      { plus = 0.0; diff = g - b; max = r; }
3915         if (g > max) { plus = 2.0; diff = b - r; max = g; }
3916         if (b > max) { plus = 4.0; diff = r - g; max = b; }
3917
3918         /* calcul du min entre r, g et b */
3919         min = r;
3920         if (g < min) min = g;
3921         if (b < min) min = b;
3922
3923         delta = max - min;
3924
3925         /* calcul de la luminance */
3926         l = max;
3927
3928         /* calcul de la saturation */
3929         s = 0.0;
3930         if (max != 0.0) s = delta / max;
3931
3932         /* calcul de la teinte */
3933         if (s == 0.0)
3934            /* cas des gris */
3935            h = RGBHLS_H_UNDEFINED;
3936         else {
3937            h = (float ) 60.0 * ( plus + diff / delta );
3938            if (h < 0.0) h += 360.0;
3939         }
3940 }