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