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