was just mentioned. It compiles in the table, although it should be an easy matter
for it to soft-code in the tables.
Code: Select all
--- render.cpp 23 Dec 2002 06:58:58 -0000 1.91
+++ render.cpp 2 Jan 2003 01:22:37 -0000
@@ -3103,41 +3107,15 @@
Color sunColor(1.0f, 1.0f, 1.0f);
{
- // If the star is sufficiently cool, change the light color
- // from white. Though our sun appears yellow, we still make
- // it and all hotter stars emit white light, as this is the
- // 'natural' light to which our eyes are accustomed. We also
- // assign a slight bluish tint to light from O and B type stars,
- // though these will almost never have planets for their light
- // to shine upon.
PlanetarySystem* system = body.getSystem();
if (system != NULL)
{
+ // Now that we are using realistic star colors
+ // we do not need to special code the planetary stellar
+ // colors
const Star* sun = system->getStar();
- switch (sun->getStellarClass().getSpectralClass())
- {
- case StellarClass::Spectral_O:
- sunColor = Color(0.8f, 0.8f, 1.0f);
- break;
- case StellarClass::Spectral_B:
- sunColor = Color(0.9f, 0.9f, 1.0f);
- break;
- case StellarClass::Spectral_K:
- sunColor = Color(1.0f, 0.9f, 0.8f);
- break;
- case StellarClass::Spectral_M:
- sunColor = Color(1.0f, 0.7f, 0.7f);
- break;
- case StellarClass::Spectral_R:
- case StellarClass::Spectral_S:
- case StellarClass::Spectral_N:
- sunColor = Color(1.0f, 0.4f, 0.4f);
- break;
- default:
- // Default case to keep gcc from compaining about unhandled
- // switch values.
- break;
- }
+ sunColor =
+ sun->getStellarClass().getApparentColor();
}
}
Index: stellarclass.cpp
===================================================================
RCS file: /cvsroot/celestia/celestia/src/celengine/stellarclass.cpp,v
retrieving revision 1.6
diff -u -r1.6 stellarclass.cpp
--- stellarclass.cpp 13 Dec 2002 18:43:48 -0000 1.6
+++ stellarclass.cpp 2 Jan 2003 01:23:01 -0000
@@ -10,45 +10,1159 @@
#include <cstring>
#include <cstdio>
#include <cassert>
+#include <map>
#include "celestia.h"
#include "stellarclass.h"
using namespace std;
+// This color table comes from http://www.spacegear.org/
+// Someone should recode this so that it is loaded via the file
+// directly - 20021228
-Color StellarClass::getApparentColor() const
+// TODO. This class doesn't have proper classes for white dwarves
+
+struct lt
{
- return getApparentColor(getSpectralClass());
-}
+ bool operator()(int s1, int s2) const
+ {
+ return s1 < s2;
+ }
+};
+
-Color StellarClass::getApparentColor(StellarClass::SpectralClass sc) const
-{
- switch (sc)
- {
- case Spectral_O:
- return Color(0.7f, 0.8f, 1.0f);
- case Spectral_B:
- return Color(0.8f, 0.9f, 1.0f);
- case Spectral_A:
- return Color(1.0f, 1.0f, 1.0f);
- case Spectral_F:
- return Color(1.0f, 1.0f, 0.88f);
- case Spectral_G:
- return Color(1.0f, 1.0f, 0.75f);
- case StellarClass::Spectral_K:
- return Color(1.0f, 0.9f, 0.7f);
- case StellarClass::Spectral_M:
- return Color(1.0f, 0.7f, 0.7f);
- case StellarClass::Spectral_R:
- case StellarClass::Spectral_S:
- case StellarClass::Spectral_N:
- return Color(1.0f, 0.4f, 0.4f);
- default:
- // TODO: Figure out reasonable colors for Wolf-Rayet stars,
- // white dwarfs, and other oddities
- return Color(1.0f, 1.0f, 1.0f);
+struct ColorTable {
+ char *spectral_class;
+ float abs_mag;
+ unsigned int red, green, blue;
+};
+
+static int color_table_init = 0;
+static map <int, Color, lt> mapped_color_table;
+
+static ColorTable color_table [] = {
+ {"O0 Ia0",-9.5,144,166,255},
+ {"O1 Ia0",-9.4,146,168,255},
+ {"O2 Ia0",-9.3,148,170,255},
+ {"O3 Ia0",-9.2,151,172,255},
+ {"O4 Ia0",-9.1,153,174,255},
+ {"O5 Ia0",-9.0,155,176,255},
+ {"O6 Ia0",-8.9,157,178,255},
+ {"O7 Ia0",-8.8,160,181,255},
+ {"O8 Ia0",-8.7,162,183,255},
+ {"O9 Ia0",-8.6,164,185,255},
+ {"B0 Ia0",-8.5,161,189,255},
+ {"B1 Ia0",-8.5,168,193,255},
+ {"B2 Ia0",-8.4,177,196,255},
+ {"B3 Ia0",-8.4,175,194,255},
+ {"B4 Ia0",-8.4,187,203,255},
+ {"B5 Ia0",-8.3,179,202,255},
+ {"B6 Ia0",-8.3,191,207,255},
+ {"B7 Ia0",-8.2,195,209,255},
+ {"B8 Ia0",-8.1,182,206,255},
+ {"B9 Ia0",-8.1,204,216,255},
+ {"A0 Ia0",-8.0,187,206,255},
+ {"A1 Ia0",-8.1,214,223,255},
+ {"A2 Ia0",-8.2,199,214,255},
+ {"A3 Ia0",-8.3,207,219,255},
+ {"A4 Ia0",-8.4,215,224,255},
+ {"A5 Ia0",-8.5,223,229,255},
+ {"A6 Ia0",-8.5,219,226,255},
+ {"A7 Ia0",-8.6,215,223,255},
+ {"A8 Ia0",-8.6,210,221,255},
+ {"A9 Ia0",-8.7,206,218,255},
+ {"F0 Ia0",-8.7,202,215,255},
+ {"F1 Ia0",-8.8,223,229,255},
+ {"F2 Ia0",-8.8,244,243,255},
+ {"F3 Ia0",-8.9,236,237,255},
+ {"F4 Ia0",-9.0,227,231,255},
+ {"F5 Ia0",-9.1,219,225,255},
+ {"F6 Ia0",-9.1,255,234,252},
+ {"F7 Ia0",-9.2,255,243,250},
+ {"F8 Ia0",-9.2,255,252,247},
+ {"F9 Ia0",-9.3,255,246,233},
+ {"G0 Ia0",-9.3,255,239,219},
+ {"G1 Ia0",-9.3,255,238,212},
+ {"G2 Ia0",-9.3,255,236,205},
+ {"G3 Ia0",-9.4,255,231,203},
+ {"G4 Ia0",-9.4,255,231,193},
+ {"G5 Ia0",-9.5,255,230,183},
+ {"G6 Ia0",-9.5,255,227,178},
+ {"G7 Ia0",-9.5,255,223,172},
+ {"G8 Ia0",-9.4,255,220,167},
+ {"G9 Ia0",-9.4,255,221,174},
+ {"K0 Ia0",-9.4,255,221,181},
+ {"K1 Ia0",-9.3,255,220,177},
+ {"K2 Ia0",-9.3,255,211,135},
+ {"K3 Ia0",-9.3,255,204,128},
+ {"K4 Ia0",-9.3,255,201,118},
+ {"K5 Ia0",-9.3,255,209,154},
+ {"K6 Ia0",-9.3,255,208,152},
+ {"K7 Ia0",-9.3,255,207,150},
+ {"K8 Ia0",-9.3,255,206,147},
+ {"K9 Ia0",-9.3,255,205,145},
+ {"M0 Ia0",-9.3,255,204,143},
+ {"M1 Ia0",-9.3,255,202,138},
+ {"M2 Ia0",-9.3,255,193,104},
+ {"M3 Ia0",-9.2,255,192,118},
+ {"M4 Ia0",-9.2,255,185,104},
+ {"M5 Ia0",-9.2,255,178,78},
+ {"M6 Ia0",-9.1,255,171,52},
+ {"M7 Ia0",-9.1,255,164,26},
+ {"M8 Ia0",-9.1,255,157,0},
+ {"M9 Ia0",-9.0,255,157,0},
+ {"R0 Ia0",-9.4,255,231,193},
+ {"R1 Ia0",-9.4,255,228,187},
+ {"R2 Ia0",-9.4,255,225,182},
+ {"R3 Ia0",-9.3,255,222,176},
+ {"R4 Ia0",-9.3,255,219,171},
+ {"R5 Ia0",-9.3,255,216,165},
+ {"R6 Ia0",-9.3,255,213,160},
+ {"R7 Ia0",-9.3,255,210,154},
+ {"R8 Ia0",-9.3,255,207,149},
+ {"R9 Ia0",-9.3,255,204,143},
+ {"S0 Ia0",-9.3,255,204,143},
+ {"S1 Ia0",-9.3,255,202,138},
+ {"S2 Ia0",-9.3,255,193,104},
+ {"S3 Ia0",-9.2,255,192,118},
+ {"S4 Ia0",-9.2,255,185,104},
+ {"S5 Ia0",-9.2,255,178,78},
+ {"S6 Ia0",-9.1,255,171,52},
+ {"S7 Ia0",-9.1,255,164,26},
+ {"S8 Ia0",-9.1,255,157,0},
+ {"S9 Ia0",-9.0,255,157,0},
+ {"N0 Ia0",-9.3,255,204,143},
+ {"N1 Ia0",-9.3,255,202,138},
+ {"N2 Ia0",-9.3,255,193,104},
+ {"N3 Ia0",-9.2,255,192,118},
+ {"N4 Ia0",-9.2,255,185,104},
+ {"N5 Ia0",-9.2,255,178,78},
+ {"N6 Ia0",-9.1,255,171,52},
+ {"N7 Ia0",-9.1,255,164,26},
+ {"N8 Ia0",-9.1,255,157,0},
+ {"N9 Ia0",-9.0,255,157,0},
+ {"C0 Ia0",-9.4,255,231,193},
+ {"C1 Ia0",-9.5,255,222,172},
+ {"C2 Ia0",-9.4,255,214,150},
+ {"C3 Ia0",-9.3,255,206,129},
+ {"C4 Ia0",-9.3,255,198,107},
+ {"C5 Ia0",-9.3,255,190,86},
+ {"C6 Ia0",-9.3,255,182,64},
+ {"C7 Ia0",-9.2,255,173,43},
+ {"C8 Ia0",-9.1,255,165,21},
+ {"C9 Ia0",-9.0,255,157,0},
+ {"WC0 Ia0",-9.5,144,166,255},
+ {"WC1 Ia0",-9.4,146,168,255},
+ {"WC2 Ia0",-9.3,148,170,255},
+ {"WC3 Ia0",-9.2,151,172,255},
+ {"WC4 Ia0",-9.1,153,174,255},
+ {"WC5 Ia0",-9.0,155,176,255},
+ {"WC6 Ia0",-8.9,157,178,255},
+ {"WC7 Ia0",-8.8,160,181,255},
+ {"WC8 Ia0",-8.7,162,183,255},
+ {"WC9 Ia0",-8.6,164,185,255},
+ {"WN0 Ia0",-9.5,144,166,255},
+ {"WN1 Ia0",-9.4,146,168,255},
+ {"WN2 Ia0",-9.3,148,170,255},
+ {"WN3 Ia0",-9.2,151,172,255},
+ {"WN4 Ia0",-9.1,153,174,255},
+ {"WN5 Ia0",-9.0,155,176,255},
+ {"WN6 Ia0",-8.9,157,178,255},
+ {"WN7 Ia0",-8.8,160,181,255},
+ {"WN8 Ia0",-8.7,162,183,255},
+ {"WN9 Ia0",-8.6,164,185,255},
+ {"O0 Ia",-6.7,144,166,255},
+ {"O1 Ia",-6.7,146,168,255},
+ {"O2 Ia",-6.8,148,170,255},
+ {"O3 Ia",-6.8,151,172,255},
+ {"O4 Ia",-6.9,153,174,255},
+ {"O5 Ia",-6.9,155,176,255},
+ {"O6 Ia",-7.0,157,178,255},
+ {"O7 Ia",-7.0,160,181,255},
+ {"O8 Ia",-7.0,162,183,255},
+ {"O9 Ia",-7.0,164,185,255},
+ {"B0 Ia",-7.0,161,189,255},
+ {"B1 Ia",-7.0,168,193,255},
+ {"B2 Ia",-7.0,177,196,255},
+ {"B3 Ia",-7.1,175,194,255},
+ {"B4 Ia",-7.0,187,203,255},
+ {"B5 Ia",-7.0,179,202,255},
+ {"B6 Ia",-7.0,191,207,255},
+ {"B7 Ia",-7.1,195,209,255},
+ {"B8 Ia",-7.2,182,206,255},
+ {"B9 Ia",-7.3,204,216,255},
+ {"A0 Ia",-7.4,187,206,255},
+ {"A1 Ia",-7.5,214,223,255},
+ {"A2 Ia",-7.6,199,214,255},
+ {"A3 Ia",-7.7,207,219,255},
+ {"A4 Ia",-7.8,215,224,255},
+ {"A5 Ia",-8.0,223,229,255},
+ {"A6 Ia",-8.2,219,226,255},
+ {"A7 Ia",-8.4,215,223,255},
+ {"A8 Ia",-8.5,210,221,255},
+ {"A9 Ia",-8.5,206,218,255},
+ {"F0 Ia",-8.5,202,215,255},
+ {"F1 Ia",-8.5,223,229,255},
+ {"F2 Ia",-8.4,244,243,255},
+ {"F3 Ia",-8.4,236,237,255},
+ {"F4 Ia",-8.3,227,231,255},
+ {"F5 Ia",-8.2,219,225,255},
+ {"F6 Ia",-8.1,255,234,252},
+ {"F7 Ia",-8.0,255,243,250},
+ {"F8 Ia",-7.9,255,252,247},
+ {"F9 Ia",-7.9,255,246,233},
+ {"G0 Ia",-7.8,255,239,219},
+ {"G1 Ia",-7.8,255,238,212},
+ {"G2 Ia",-7.7,255,236,205},
+ {"G3 Ia",-7.7,255,231,203},
+ {"G4 Ia",-7.7,255,231,193},
+ {"G5 Ia",-7.6,255,230,183},
+ {"G6 Ia",-7.6,255,227,178},
+ {"G7 Ia",-7.6,255,223,172},
+ {"G8 Ia",-7.5,255,220,167},
+ {"G9 Ia",-7.5,255,221,174},
+ {"K0 Ia",-7.5,255,221,181},
+ {"K1 Ia",-7.4,255,220,177},
+ {"K2 Ia",-7.4,255,211,135},
+ {"K3 Ia",-7.4,255,204,128},
+ {"K4 Ia",-7.3,255,201,118},
+ {"K5 Ia",-7.3,255,209,154},
+ {"K6 Ia",-7.3,255,208,152},
+ {"K7 Ia",-7.2,255,207,150},
+ {"K8 Ia",-7.2,255,206,147},
+ {"K9 Ia",-7.2,255,205,145},
+ {"M0 Ia",-7.2,255,204,143},
+ {"M1 Ia",-7.1,255,202,138},
+ {"M2 Ia",-7.1,255,193,104},
+ {"M3 Ia",-7.1,255,192,118},
+ {"M4 Ia",-7.0,255,185,104},
+ {"M5 Ia",-7.0,255,178,78},
+ {"M6 Ia",-7.0,255,171,52},
+ {"M7 Ia",-6.9,255,164,26},
+ {"M8 Ia",-6.9,255,157,0},
+ {"M9 Ia",-6.9,255,157,0},
+ {"R0 Ia",-7.7,255,231,193},
+ {"R1 Ia",-7.6,255,228,187},
+ {"R2 Ia",-7.6,255,225,182},
+ {"R3 Ia",-7.5,255,222,176},
+ {"R4 Ia",-7.5,255,219,171},
+ {"R5 Ia",-7.4,255,216,165},
+ {"R6 Ia",-7.4,255,213,160},
+ {"R7 Ia",-7.3,255,210,154},
+ {"R8 Ia",-7.3,255,207,149},
+ {"R9 Ia",-7.2,255,204,143},
+ {"S0 Ia",-7.2,255,204,143},
+ {"S1 Ia",-7.1,255,202,138},
+ {"S2 Ia",-7.1,255,193,104},
+ {"S3 Ia",-7.1,255,192,118},
+ {"S4 Ia",-7.0,255,185,104},
+ {"S5 Ia",-7.0,255,178,78},
+ {"S6 Ia",-7.0,255,171,52},
+ {"S7 Ia",-6.9,255,164,26},
+ {"S8 Ia",-6.9,255,157,0},
+ {"S9 Ia",-6.9,255,157,0},
+ {"N0 Ia",-7.2,255,204,143},
+ {"N1 Ia",-7.1,255,202,138},
+ {"N2 Ia",-7.1,255,193,104},
+ {"N3 Ia",-7.1,255,192,118},
+ {"N4 Ia",-7.0,255,185,104},
+ {"N5 Ia",-7.0,255,178,78},
+ {"N6 Ia",-7.0,255,171,52},
+ {"N7 Ia",-6.9,255,164,26},
+ {"N8 Ia",-6.9,255,157,0},
+ {"N9 Ia",-6.9,255,157,0},
+ {"C0 Ia",-7.7,255,231,193},
+ {"C1 Ia",-7.6,255,222,172},
+ {"C2 Ia",-7.5,255,214,150},
+ {"C3 Ia",-7.4,255,206,129},
+ {"C4 Ia",-7.3,255,198,107},
+ {"C5 Ia",-7.3,255,190,86},
+ {"C6 Ia",-7.2,255,182,64},
+ {"C7 Ia",-7.1,255,173,43},
+ {"C8 Ia",-7.0,255,165,21},
+ {"C9 Ia",-6.9,255,157,0},
+ {"WC0 Ia",-6.7,144,166,255},
+ {"WC1 Ia",-6.7,146,168,255},
+ {"WC2 Ia",-6.8,148,170,255},
+ {"WC3 Ia",-6.8,151,172,255},
+ {"WC4 Ia",-6.9,153,174,255},
+ {"WC5 Ia",-6.9,155,176,255},
+ {"WC6 Ia",-7.0,157,178,255},
+ {"WC7 Ia",-7.0,160,181,255},
+ {"WC8 Ia",-7.0,162,183,255},
+ {"WC9 Ia",-7.0,164,185,255},
+ {"WN0 Ia",-6.7,144,166,255},
+ {"WN1 Ia",-6.7,146,168,255},
+ {"WN2 Ia",-6.8,148,170,255},
+ {"WN3 Ia",-6.8,151,172,255},
+ {"WN4 Ia",-6.9,153,174,255},
+ {"WN5 Ia",-6.9,155,176,255},
+ {"WN6 Ia",-7.0,157,178,255},
+ {"WN7 Ia",-7.0,160,181,255},
+ {"WN8 Ia",-7.0,162,183,255},
+ {"WN9 Ia",-7.0,164,185,255},
+ {"O0 Ib",-6.5,144,166,255},
+ {"O1 Ib",-6.5,146,168,255},
+ {"O2 Ib",-6.5,148,170,255},
+ {"O3 Ib",-6.5,151,172,255},
+ {"O4 Ib",-6.5,153,174,255},
+ {"O5 Ib",-6.5,155,176,255},
+ {"O6 Ib",-6.4,157,178,255},
+ {"O7 Ib",-6.3,160,181,255},
+ {"O8 Ib",-6.2,162,183,255},
+ {"O9 Ib",-6.1,164,185,255},
+ {"B0 Ib",-6.0,161,189,255},
+ {"B1 Ib",-5.9,168,193,255},
+ {"B2 Ib",-5.9,177,196,255},
+ {"B3 Ib",-5.8,175,194,255},
+ {"B4 Ib",-5.8,187,203,255},
+ {"B5 Ib",-5.7,179,202,255},
+ {"B6 Ib",-5.6,191,207,255},
+ {"B7 Ib",-5.5,195,209,255},
+ {"B8 Ib",-5.5,182,206,255},
+ {"B9 Ib",-5.4,204,216,255},
+ {"A0 Ib",-5.3,187,206,255},
+ {"A1 Ib",-5.3,214,223,255},
+ {"A2 Ib",-5.2,199,214,255},
+ {"A3 Ib",-5.2,207,219,255},
+ {"A4 Ib",-5.1,215,224,255},
+ {"A5 Ib",-5.1,223,229,255},
+ {"A6 Ib",-5.1,219,226,255},
+ {"A7 Ib",-5.1,215,223,255},
+ {"A8 Ib",-5.1,210,221,255},
+ {"A9 Ib",-5.1,206,218,255},
+ {"F0 Ib",-5.1,202,215,255},
+ {"F1 Ib",-5.1,223,229,255},
+ {"F2 Ib",-5.0,244,243,255},
+ {"F3 Ib",-5.0,236,237,255},
+ {"F4 Ib",-4.9,227,231,255},
+ {"F5 Ib",-4.9,219,225,255},
+ {"F6 Ib",-4.9,255,234,252},
+ {"F7 Ib",-4.8,255,243,250},
+ {"F8 Ib",-4.8,255,252,247},
+ {"F9 Ib",-4.7,255,246,233},
+ {"G0 Ib",-4.7,255,239,219},
+ {"G1 Ib",-4.7,255,238,212},
+ {"G2 Ib",-4.7,255,236,205},
+ {"G3 Ib",-4.6,255,231,203},
+ {"G4 Ib",-4.6,255,231,193},
+ {"G5 Ib",-4.6,255,230,183},
+ {"G6 Ib",-4.6,255,227,178},
+ {"G7 Ib",-4.6,255,223,172},
+ {"G8 Ib",-4.7,255,220,167},
+ {"G9 Ib",-4.7,255,221,174},
+ {"K0 Ib",-4.7,255,221,181},
+ {"K1 Ib",-4.7,255,220,177},
+ {"K2 Ib",-4.8,255,211,135},
+ {"K3 Ib",-4.9,255,204,128},
+ {"K4 Ib",-5.0,255,201,118},
+ {"K5 Ib",-5.1,255,209,154},
+ {"K6 Ib",-5.2,255,208,152},
+ {"K7 Ib",-5.3,255,207,150},
+ {"K8 Ib",-5.3,255,206,147},
+ {"K9 Ib",-5.4,255,205,145},
+ {"M0 Ib",-5.5,255,204,143},
+ {"M1 Ib",-5.5,255,202,138},
+ {"M2 Ib",-5.5,255,193,104},
+ {"M3 Ib",-5.5,255,192,118},
+ {"M4 Ib",-5.5,255,185,104},
+ {"M5 Ib",-5.5,255,178,78},
+ {"M6 Ib",-5.4,255,171,52},
+ {"M7 Ib",-5.3,255,164,26},
+ {"M8 Ib",-5.1,255,157,0},
+ {"M9 Ib",-5.0,255,157,0},
+ {"R0 Ib",-4.6,255,231,193},
+ {"R1 Ib",-4.6,255,228,187},
+ {"R2 Ib",-4.7,255,225,182},
+ {"R3 Ib",-4.7,255,222,176},
+ {"R4 Ib",-4.8,255,219,171},
+ {"R5 Ib",-5.0,255,216,165},
+ {"R6 Ib",-5.3,255,213,160},
+ {"R7 Ib",-5.4,255,210,154},
+ {"R8 Ib",-5.4,255,207,149},
+ {"R9 Ib",-5.5,255,204,143},
+ {"S0 Ib",-5.5,255,204,143},
+ {"S1 Ib",-5.5,255,202,138},
+ {"S2 Ib",-5.5,255,193,104},
+ {"S3 Ib",-5.5,255,192,118},
+ {"S4 Ib",-5.5,255,185,104},
+ {"S5 Ib",-5.5,255,178,78},
+ {"S6 Ib",-5.4,255,171,52},
+ {"S7 Ib",-5.3,255,164,26},
+ {"S8 Ib",-5.1,255,157,0},
+ {"S9 Ib",-5.0,255,157,0},
+ {"N0 Ib",-5.5,255,204,143},
+ {"N1 Ib",-5.5,255,202,138},
+ {"N2 Ib",-5.5,255,193,104},
+ {"N3 Ib",-5.5,255,192,118},
+ {"N4 Ib",-5.5,255,185,104},
+ {"N5 Ib",-5.5,255,178,78},
+ {"N6 Ib",-5.4,255,171,52},
+ {"N7 Ib",-5.3,255,164,26},
+ {"N8 Ib",-5.1,255,157,0},
+ {"N9 Ib",-5.0,255,157,0},
+ {"C0 Ib",-4.6,255,231,193},
+ {"C1 Ib",-4.6,255,222,172},
+ {"C2 Ib",-4.7,255,214,150},
+ {"C3 Ib",-4.7,255,206,129},
+ {"C4 Ib",-4.8,255,198,107},
+ {"C5 Ib",-5.0,255,190,86},
+ {"C6 Ib",-5.3,255,182,64},
+ {"C7 Ib",-5.4,255,173,43},
+ {"C8 Ib",-5.3,255,165,21},
+ {"C9 Ib",-5.2,255,157,0},
+ {"WC0 Ib",-6.5,144,166,255},
+ {"WC1 Ib",-6.5,146,168,255},
+ {"WC2 Ib",-6.5,148,170,255},
+ {"WC3 Ib",-6.5,151,172,255},
+ {"WC4 Ib",-6.5,153,174,255},
+ {"WC5 Ib",-6.5,155,176,255},
+ {"WC6 Ib",-6.4,157,178,255},
+ {"WC7 Ib",-6.3,160,181,255},
+ {"WC8 Ib",-6.2,162,183,255},
+ {"WC9 Ib",-6.1,164,185,255},
+ {"WN0 Ib",-6.5,144,166,255},
+ {"WN1 Ib",-6.5,146,168,255},
+ {"WN2 Ib",-6.5,148,170,255},
+ {"WN3 Ib",-6.5,151,172,255},
+ {"WN4 Ib",-6.5,153,174,255},
+ {"WN5 Ib",-6.5,155,176,255},
+ {"WN6 Ib",-6.4,157,178,255},
+ {"WN7 Ib",-6.3,160,181,255},
+ {"WN8 Ib",-6.2,162,183,255},
+ {"WN9 Ib",-6.1,164,185,255},
+ {"O0 II",-6.5,144,166,255},
+ {"O1 II",-6.4,146,168,255},
+ {"O2 II",-6.4,148,170,255},
+ {"O3 II",-6.3,149,173,255},
+ {"O4 II",-6.2,151,175,255},
+ {"O5 II",-6.1,153,177,255},
+ {"O6 II",-6.1,155,179,255},
+ {"O7 II",-6.0,156,181,255},
+ {"O8 II",-5.8,158,183,255},
+ {"O9 II",-5.7,160,186,255},
+ {"B0 II",-5.5,162,188,255},
+ {"B1 II",-5.3,163,190,255},
+ {"B2 II",-5.1,165,192,255},
+ {"B3 II",-4.9,168,193,255},
+ {"B4 II",-4.7,172,194,255},
+ {"B5 II",-4.5,175,195,255},
+ {"B6 II",-4.2,177,196,255},
+ {"B7 II",-4.0,179,198,255},
+ {"B8 II",-3.8,181,199,255},
+ {"B9 II",-3.6,182,201,255},
+ {"A0 II",-3.4,184,202,255},
+ {"A1 II",-3.3,186,204,255},
+ {"A2 II",-3.2,188,205,255},
+ {"A3 II",-3.0,190,207,255},
+ {"A4 II",-2.9,192,208,255},
+ {"A5 II",-2.8,194,210,255},
+ {"A6 II",-2.7,196,211,255},
+ {"A7 II",-2.7,197,213,255},
+ {"A8 II",-2.6,199,214,255},
+ {"A9 II",-2.6,201,216,255},
+ {"F0 II",-2.5,203,217,255},
+ {"F1 II",-2.5,216,225,255},
+ {"F2 II",-2.5,229,233,255},
+ {"F3 II",-2.4,235,237,255},
+ {"F4 II",-2.4,241,241,255},
+ {"F5 II",-2.4,247,242,255},
+ {"F6 II",-2.4,253,249,255},
+ {"F7 II",-2.4,255,250,251},
+ {"F8 II",-2.3,255,248,245},
+ {"F9 II",-2.3,255,246,239},
+ {"G0 II",-2.3,255,244,233},
+ {"G1 II",-2.3,255,243,227},
+ {"G2 II",-2.3,255,241,221},
+ {"G3 II",-2.4,255,239,215},
+ {"G4 II",-2.4,255,237,209},
+ {"G5 II",-2.4,255,235,203},
+ {"G6 II",-2.4,255,233,198},
+ {"G7 II",-2.4,255,231,194},
+ {"G8 II",-2.5,255,229,189},
+ {"G9 II",-2.5,255,227,184},
+ {"K0 II",-2.5,255,226,180},
+ {"K1 II",-2.5,255,224,175},
+ {"K2 II",-2.5,255,222,170},
+ {"K3 II",-2.5,255,220,166},
+ {"K4 II",-2.5,255,218,161},
+ {"K5 II",-2.5,255,216,156},
+ {"K6 II",-2.5,255,214,152},
+ {"K7 II",-2.5,255,212,147},
+ {"K8 II",-2.6,255,210,142},
+ {"K9 II",-2.6,255,209,138},
+ {"M0 II",-2.6,255,207,133},
+ {"M1 II",-2.7,255,205,128},
+ {"M2 II",-2.7,255,203,124},
+ {"M3 II",-2.8,255,201,119},
+ {"M4 II",-2.8,255,199,114},
+ {"M5 II",-2.9,255,197,110},
+ {"M6 II",-2.9,255,195,105},
+ {"M7 II",-3.0,255,193,100},
+ {"M8 II",-3.0,255,192,96},
+ {"M9 II",-3.0,255,190,91},
+ {"R0 II",-2.4,255,237,209},
+ {"R1 II",-2.4,255,234,201},
+ {"R2 II",-2.4,255,230,192},
+ {"R3 II",-2.5,255,227,184},
+ {"R4 II",-2.5,255,223,175},
+ {"R5 II",-2.5,255,220,167},
+ {"R6 II",-2.5,255,217,158},
+ {"R7 II",-2.6,255,213,150},
+ {"R8 II",-2.6,255,210,141},
+ {"R9 II",-2.6,255,207,133},
+ {"S0 II",-2.6,255,207,133},
+ {"S1 II",-2.7,255,205,128},
+ {"S2 II",-2.7,255,203,124},
+ {"S3 II",-2.8,255,201,119},
+ {"S4 II",-2.8,255,199,114},
+ {"S5 II",-2.9,255,197,110},
+ {"S6 II",-2.9,255,195,105},
+ {"S7 II",-3.0,255,193,100},
+ {"S8 II",-3.0,255,192,96},
+ {"S9 II",-3.0,255,190,91},
+ {"N0 II",-2.6,255,207,133},
+ {"N1 II",-2.7,255,205,128},
+ {"N2 II",-2.7,255,203,124},
+ {"N3 II",-2.8,255,201,119},
+ {"N4 II",-2.8,255,199,114},
+ {"N5 II",-2.9,255,197,110},
+ {"N6 II",-2.9,255,195,105},
+ {"N7 II",-3.0,255,193,100},
+ {"N8 II",-3.0,255,192,96},
+ {"N9 II",-3.0,255,190,91},
+ {"C0 II",-2.4,255,237,209},
+ {"C1 II",-2.4,255,232,196},
+ {"C2 II",-2.5,255,226,183},
+ {"C3 II",-2.6,255,221,170},
+ {"C4 II",-2.7,255,216,157},
+ {"C5 II",-2.7,255,211,143},
+ {"C6 II",-2.8,255,205,130},
+ {"C7 II",-2.9,255,200,117},
+ {"C8 II",-2.9,255,195,104},
+ {"C9 II",-3.0,255,190,91},
+ {"WC0 II",-6.5,144,166,255},
+ {"WC1 II",-6.4,146,168,255},
+ {"WC2 II",-6.4,148,170,255},
+ {"WC3 II",-6.3,149,173,255},
+ {"WC4 II",-6.2,151,175,255},
+ {"WC5 II",-6.1,153,177,255},
+ {"WC6 II",-6.1,155,179,255},
+ {"WC7 II",-6.0,156,181,255},
+ {"WC8 II",-5.8,158,183,255},
+ {"WC9 II",-5.7,160,186,255},
+ {"WN0 II",-6.5,144,166,255},
+ {"WN1 II",-6.4,146,168,255},
+ {"WN2 II",-6.4,148,170,255},
+ {"WN3 II",-6.3,149,173,255},
+ {"WN4 II",-6.2,151,175,255},
+ {"WN5 II",-6.1,153,177,255},
+ {"WN6 II",-6.1,155,179,255},
+ {"WN7 II",-6.0,156,181,255},
+ {"WN8 II",-5.8,158,183,255},
+ {"WN9 II",-5.7,160,186,255},
+ {"O0 III",-6.5,144,166,255},
+ {"O1 III",-6.3,146,168,255},
+ {"O2 III",-6.2,148,169,255},
+ {"O3 III",-6.0,150,171,255},
+ {"O4 III",-5.9,152,172,255},
+ {"O5 III",-5.7,154,174,255},
+ {"O6 III",-5.5,156,175,255},
+ {"O7 III",-5.4,158,177,255},
+ {"O8 III",-5.2,157,178,255},
+ {"O9 III",-5.1,158,177,255},
+ {"B0 III",-4.9,158,177,255},
+ {"B1 III",-4.3,158,177,255},
+ {"B2 III",-3.8,159,180,255},
+ {"B3 III",-3.2,163,187,255},
+ {"B4 III",-2.7,166,188,255},
+ {"B5 III",-2.1,168,189,255},
+ {"B6 III",-1.7,170,190,255},
+ {"B7 III",-1.4,171,191,255},
+ {"B8 III",-1.0,175,193,255},
+ {"B9 III",-0.7,178,195,255},
+ {"A0 III",-0.3,188,205,255},
+ {"A1 III",-0.1,188,204,255},
+ {"A2 III",0.1,189,204,255},
+ {"A3 III",0.2,189,203,255},
+ {"A4 III",0.4,196,209,255},
+ {"A5 III",0.6,202,215,255},
+ {"A6 III",0.8,209,219,255},
+ {"A7 III",1.0,210,219,255},
+ {"A8 III",1.1,209,219,255},
+ {"A9 III",1.3,209,219,255},
+ {"F0 III",1.5,213,222,255},
+ {"F1 III",1.5,227,232,255},
+ {"F2 III",1.6,241,241,255},
+ {"F3 III",1.6,241,241,255},
+ {"F4 III",1.6,241,240,255},
+ {"F5 III",1.5,242,240,255},
+ {"F6 III",1.4,241,240,255},
+ {"F7 III",1.3,241,240,255},
+ {"F8 III",1.2,252,248,255},
+ {"F9 III",1.1,255,246,245},
+ {"G0 III",1.0,255,242,233},
+ {"G1 III",0.9,255,243,233},
+ {"G2 III",0.8,255,243,233},
+ {"G3 III",0.6,255,243,233},
+ {"G4 III",0.5,255,243,233},
+ {"G5 III",0.4,255,236,211},
+ {"G6 III",0.4,255,236,215},
+ {"G7 III",0.4,255,234,207},
+ {"G8 III",0.5,255,231,199},
+ {"G9 III",0.5,255,231,196},
+ {"K0 III",0.5,255,227,190},
+ {"K1 III",0.4,255,223,181},
+ {"K2 III",0.2,255,221,175},
+ {"K3 III",0.1,255,216,167},
+ {"K4 III",-0.1,255,211,146},
+ {"K5 III",-0.2,255,204,138},
+ {"K6 III",-0.3,255,206,140},
+ {"K7 III",-0.4,255,208,142},
+ {"K8 III",-0.5,255,206,139},
+ {"K9 III",-0.6,255,205,135},
+ {"M0 III",-0.7,255,203,132},
+ {"M1 III",-0.7,255,200,121},
+ {"M2 III",-0.6,255,198,118},
+ {"M3 III",-0.6,255,200,119},
+ {"M4 III",-0.5,255,206,127},
+ {"M5 III",-0.5,255,197,124},
+ {"M6 III",-0.4,255,178,121},
+ {"M7 III",-0.3,255,165,97},
+ {"M8 III",-0.1,255,167,97},
+ {"M9 III",0.0,255,233,154},
+ {"R0 III",0.5,255,243,233},
+ {"R1 III",0.4,255,239,222},
+ {"R2 III",0.2,255,234,211},
+ {"R3 III",0.1,255,230,199},
+ {"R4 III",0.0,255,225,188},
+ {"R5 III",-0.2,255,221,177},
+ {"R6 III",-0.3,255,216,166},
+ {"R7 III",-0.4,255,212,154},
+ {"R8 III",-0.6,255,207,143},
+ {"R9 III",-0.7,255,203,132},
+ {"S0 III",-0.7,255,203,132},
+ {"S1 III",-0.7,255,200,121},
+ {"S2 III",-0.6,255,198,118},
+ {"S3 III",-0.6,255,200,119},
+ {"S4 III",-0.5,255,206,127},
+ {"S5 III",-0.5,255,197,124},
+ {"S6 III",-0.4,255,178,121},
+ {"S7 III",-0.3,255,165,97},
+ {"S8 III",-0.1,255,167,97},
+ {"S9 III",0.0,255,233,154},
+ {"N0 III",-0.7,255,203,132},
+ {"N1 III",-0.7,255,200,121},
+ {"N2 III",-0.6,255,198,118},
+ {"N3 III",-0.6,255,200,119},
+ {"N4 III",-0.5,255,206,127},
+ {"N5 III",-0.5,255,197,124},
+ {"N6 III",-0.4,255,178,121},
+ {"N7 III",-0.3,255,165,97},
+ {"N8 III",-0.1,255,167,97},
+ {"N9 III",0.0,255,233,154},
+ {"C0 III",0.5,255,243,233},
+ {"C1 III",0.3,255,242,224},
+ {"C2 III",0.1,255,241,215},
+ {"C3 III",-0.1,255,240,207},
+ {"C4 III",-0.3,255,239,198},
+ {"C5 III",-0.5,255,237,189},
+ {"C6 III",-0.7,255,236,180},
+ {"C7 III",-0.5,255,235,172},
+ {"C8 III",-0.2,255,234,163},
+ {"C9 III",0.0,255,233,154},
+ {"WC0 III",-6.5,144,166,255},
+ {"WC1 III",-6.3,146,168,255},
+ {"WC2 III",-6.2,148,169,255},
+ {"WC3 III",-6.0,150,171,255},
+ {"WC4 III",-5.9,152,172,255},
+ {"WC5 III",-5.7,154,174,255},
+ {"WC6 III",-5.5,156,175,255},
+ {"WC7 III",-5.4,158,177,255},
+ {"WC8 III",-5.2,157,178,255},
+ {"WC9 III",-5.1,158,177,255},
+ {"WN0 III",-6.5,144,166,255},
+ {"WN1 III",-6.3,146,168,255},
+ {"WN2 III",-6.2,148,169,255},
+ {"WN3 III",-6.0,150,171,255},
+ {"WN4 III",-5.9,152,172,255},
+ {"WN5 III",-5.7,154,174,255},
+ {"WN6 III",-5.5,156,175,255},
+ {"WN7 III",-5.4,158,177,255},
+ {"WN8 III",-5.2,157,178,255},
+ {"WN9 III",-5.1,158,177,255},
+ {"O0 IV",-6.0,144,166,255},
+ {"O1 IV",-5.9,145,167,255},
+ {"O2 IV",-5.8,146,169,255},
+ {"O3 IV",-5.7,148,170,255},
+ {"O4 IV",-5.6,149,171,255},
+ {"O5 IV",-5.5,150,172,255},
+ {"O6 IV",-5.3,151,174,255},
+ {"O7 IV",-5.1,152,175,255},
+ {"O8 IV",-4.9,153,176,255},
+ {"O9 IV",-4.7,155,177,255},
+ {"B0 IV",-4.5,156,179,255},
+ {"B1 IV",-3.9,157,180,255},
+ {"B2 IV",-3.4,159,179,255},
+ {"B3 IV",-2.8,166,188,255},
+ {"B4 IV",-2.3,169,190,255},
+ {"B5 IV",-1.7,172,192,255},
+ {"B6 IV",-1.3,175,194,255},
+ {"B7 IV",-0.9,170,189,255},
+ {"B8 IV",-0.5,175,193,255},
+ {"B9 IV",-0.1,180,197,255},
+ {"A0 IV",0.3,179,197,255},
+ {"A1 IV",0.5,183,200,255},
+ {"A2 IV",0.7,186,202,255},
+ {"A3 IV",1.0,190,205,255},
+ {"A4 IV",1.2,195,210,255},
+ {"A5 IV",1.4,212,220,255},
+ {"A6 IV",1.6,202,214,255},
+ {"A7 IV",1.7,192,207,255},
+ {"A8 IV",1.9,208,217,255},
+ {"A9 IV",2.0,224,227,255},
+ {"F0 IV",2.2,218,224,255},
+ {"F1 IV",2.1,223,227,255},
+ {"F2 IV",1.9,227,230,255},
+ {"F3 IV",1.8,227,230,255},
+ {"F4 IV",1.6,234,235,255},
+ {"F5 IV",1.5,241,239,255},
+ {"F6 IV",1.8,241,239,255},
+ {"F7 IV",2.1,240,239,255},
+ {"F8 IV",2.3,255,252,253},
+ {"F9 IV",2.6,255,250,249},
+ {"G0 IV",2.9,255,248,245},
+ {"G1 IV",2.9,255,246,244},
+ {"G2 IV",2.9,255,244,242},
+ {"G3 IV",3.0,255,238,226},
+ {"G4 IV",3.0,255,245,238},
+ {"G5 IV",3.0,255,235,213},
+ {"G6 IV",3.0,255,242,234},
+ {"G7 IV",3.0,255,231,205},
+ {"G8 IV",3.1,255,233,211},
+ {"G9 IV",3.1,255,229,200},
+ {"K0 IV",3.1,255,225,189},
+ {"K1 IV",3.1,255,216,171},
+ {"K2 IV",3.1,255,229,202},
+ {"K3 IV",3.1,255,219,167},
+ {"K4 IV",3.1,255,218,166},
+ {"K5 IV",3.2,255,217,165},
+ {"K6 IV",3.2,255,216,164},
+ {"K7 IV",3.2,255,216,163},
+ {"K8 IV",3.2,255,215,162},
+ {"K9 IV",3.2,255,214,161},
+ {"M0 IV",3.2,255,213,160},
+ {"M1 IV",3.2,255,212,159},
+ {"M2 IV",3.2,255,211,157},
+ {"M3 IV",3.2,255,210,156},
+ {"M4 IV",3.2,255,209,155},
+ {"M5 IV",3.3,255,209,154},
+ {"M6 IV",3.3,255,208,153},
+ {"M7 IV",3.3,255,207,152},
+ {"M8 IV",3.3,255,206,151},
+ {"M9 IV",3.3,255,205,150},
+ {"R0 IV",3.0,255,245,238},
+ {"R1 IV",3.0,255,241,229},
+ {"R2 IV",3.0,255,238,221},
+ {"R3 IV",3.1,255,234,212},
+ {"R4 IV",3.1,255,231,203},
+ {"R5 IV",3.1,255,227,194},
+ {"R6 IV",3.1,255,224,186},
+ {"R7 IV",3.2,255,220,177},
+ {"R8 IV",3.2,255,216,168},
+ {"R9 IV",3.2,255,213,160},
+ {"S0 IV",3.2,255,213,160},
+ {"S1 IV",3.2,255,212,159},
+ {"S2 IV",3.2,255,211,157},
+ {"S3 IV",3.2,255,210,156},
+ {"S4 IV",3.2,255,209,155},
+ {"S5 IV",3.3,255,209,154},
+ {"S6 IV",3.3,255,208,153},
+ {"S7 IV",3.3,255,207,152},
+ {"S8 IV",3.3,255,206,151},
+ {"S9 IV",3.3,255,205,150},
+ {"N0 IV",3.2,255,213,160},
+ {"N1 IV",3.2,255,212,159},
+ {"N2 IV",3.2,255,211,157},
+ {"N3 IV",3.2,255,210,156},
+ {"N4 IV",3.2,255,209,155},
+ {"N5 IV",3.3,255,209,154},
+ {"N6 IV",3.3,255,208,153},
+ {"N7 IV",3.3,255,207,152},
+ {"N8 IV",3.3,255,206,151},
+ {"N9 IV",3.3,255,205,150},
+ {"C0 IV",3.0,255,245,238},
+ {"C1 IV",3.0,255,241,228},
+ {"C2 IV",3.1,255,236,218},
+ {"C3 IV",3.1,255,232,209},
+ {"C4 IV",3.1,255,227,199},
+ {"C5 IV",3.2,255,223,189},
+ {"C6 IV",3.2,255,218,179},
+ {"C7 IV",3.2,255,214,170},
+ {"C8 IV",3.3,255,209,160},
+ {"C9 IV",3.3,255,205,150},
+ {"WC0 IV",-6.0,144,166,255},
+ {"WC1 IV",-5.9,145,167,255},
+ {"WC2 IV",-5.8,146,169,255},
+ {"WC3 IV",-5.7,148,170,255},
+ {"WC4 IV",-5.6,149,171,255},
+ {"WC5 IV",-5.5,150,172,255},
+ {"WC6 IV",-5.3,151,174,255},
+ {"WC7 IV",-5.1,152,175,255},
+ {"WC8 IV",-4.9,153,176,255},
+ {"WC9 IV",-4.7,155,177,255},
+ {"WN0 IV",-6.0,144,166,255},
+ {"WN1 IV",-5.9,145,167,255},
+ {"WN2 IV",-5.8,146,169,255},
+ {"WN3 IV",-5.7,148,170,255},
+ {"WN4 IV",-5.6,149,171,255},
+ {"WN5 IV",-5.5,150,172,255},
+ {"WN6 IV",-5.3,151,174,255},
+ {"WN7 IV",-5.1,152,175,255},
+ {"WN8 IV",-4.9,153,176,255},
+ {"WN9 IV",-4.7,155,177,255},
+ {"O0 V",-5.9,144,166,255},
+ {"O1 V",-5.8,146,168,255},
+ {"O2 V",-5.7,148,170,255},
+ {"O3 V",-5.6,151,172,255},
+ {"O4 V",-5.5,153,174,255},
+ {"O5 V",-5.4,155,176,255},
+ {"O6 V",-5.1,162,184,255},
+ {"O7 V",-4.7,157,177,255},
+ {"O8 V",-4.4,157,177,255},
+ {"O9 V",-4.0,154,178,255},
+ {"B0 V",-3.7,156,178,255},
+ {"B1 V",-3.2,160,182,255},
+ {"B2 V",-2.6,160,180,255},
+ {"B3 V",-2.1,165,185,255},
+ {"B4 V",-1.5,164,184,255},
+ {"B5 V",-1.0,170,191,255},
+ {"B6 V",-0.7,172,189,255},
+ {"B7 V",-0.4,173,191,255},
+ {"B8 V",0.0,177,195,255},
+ {"B9 V",0.3,181,198,255},
+ {"A0 V",0.6,185,201,255},
+ {"A1 V",0.9,181,199,255},
+ {"A2 V",1.1,187,203,255},
+ {"A3 V",1.4,191,207,255},
+ {"A4 V",1.6,197,211,255},
+ {"A5 V",1.9,202,215,255},
+ {"A6 V",2.0,199,212,255},
+ {"A7 V",2.2,200,213,255},
+ {"A8 V",2.3,213,222,255},
+ {"A9 V",2.5,219,224,255},
+ {"F0 V",2.6,224,229,255},
+ {"F1 V",2.8,230,234,255},
+ {"F2 V",2.9,236,239,255},
+ {"F3 V",3.1,230,233,255},
+ {"F4 V",3.2,224,226,255},
+ {"F5 V",3.4,248,247,255},
+ {"F6 V",3.6,244,241,255},
+ {"F7 V",3.8,246,243,255},
+ {"F8 V",3.9,255,247,252},
+ {"F9 V",4.1,255,247,252},
+ {"G0 V",4.3,255,248,252},
+ {"G1 V",4.5,255,247,248},
+ {"G2 V",4.7,255,245,242},
+ {"G3 V",4.8,255,243,236},
+ {"G4 V",5.0,255,241,229},
+ {"G5 V",5.2,255,244,234},
+ {"G6 V",5.3,255,244,235},
+ {"G7 V",5.5,255,244,235},
+ {"G8 V",5.6,255,237,222},
+ {"G9 V",5.8,255,239,221},
+ {"K0 V",5.9,255,238,221},
+ {"K1 V",6.2,255,224,188},
+ {"K2 V",6.4,255,227,196},
+ {"K3 V",6.7,255,222,195},
+ {"K4 V",6.9,255,216,181},
+ {"K5 V",7.2,255,210,161},
+ {"K6 V",7.6,255,205,152},
+ {"K7 V",7.9,255,199,142},
+ {"K8 V",8.3,255,209,174},
+ {"K9 V",8.6,255,202,157},
+ {"M0 V",9.0,255,195,139},
+ {"M1 V",10.1,255,204,142},
+ {"M2 V",11.2,255,196,131},
+ {"M3 V",12.3,255,206,129},
+ {"M4 V",13.4,255,201,127},
+ {"M5 V",14.6,255,204,111},
+ {"M6 V",15.7,255,195,112},
+ {"M7 V",16.8,255,197,111},
+ {"M8 V",17.9,255,198,109},
+ {"M9 V",19.0,255,198,108},
+ {"R0 V",5.0,255,241,229},
+ {"R1 V",5.3,255,238,222},
+ {"R2 V",5.6,255,235,216},
+ {"R3 V",5.9,255,233,209},
+ {"R4 V",6.1,255,230,203},
+ {"R5 V",6.4,255,227,196},
+ {"R6 V",6.7,255,219,182},
+ {"R7 V",7.5,255,211,168},
+ {"R8 V",8.2,255,203,153},
+ {"R9 V",9.0,255,195,139},
+ {"S0 V",9.0,255,195,139},
+ {"S1 V",10.1,255,204,142},
+ {"S2 V",11.2,255,196,131},
+ {"S3 V",12.3,255,206,129},
+ {"S4 V",13.4,255,201,127},
+ {"S5 V",14.6,255,204,111},
+ {"S6 V",15.7,255,195,112},
+ {"S7 V",16.8,255,197,111},
+ {"S8 V",17.9,255,198,109},
+ {"S9 V",19.0,255,198,108},
+ {"N0 V",9.0,255,195,139},
+ {"N1 V",10.1,255,204,142},
+ {"N2 V",11.2,255,196,131},
+ {"N3 V",12.3,255,206,129},
+ {"N4 V",13.4,255,201,127},
+ {"N5 V",14.6,255,204,111},
+ {"N6 V",15.7,255,195,112},
+ {"N7 V",16.8,255,197,111},
+ {"N8 V",17.9,255,198,109},
+ {"N9 V",19.0,255,198,108},
+ {"C0 V",5.0,255,241,229},
+ {"C1 V",5.6,255,235,218},
+ {"C2 V",6.7,255,228,207},
+ {"C3 V",7.9,255,222,196},
+ {"C4 V",9.0,255,215,185},
+ {"C5 V",12.3,255,209,174},
+ {"C6 V",14.6,255,206,158},
+ {"C7 V",16.8,255,204,141},
+ {"C8 V",17.9,255,201,125},
+ {"C9 V",19.0,255,198,108},
+ {"WC0 V",-5.9,144,166,255},
+ {"WC1 V",-5.8,146,168,255},
+ {"WC2 V",-5.7,148,170,255},
+ {"WC3 V",-5.6,151,172,255},
+ {"WC4 V",-5.5,153,174,255},
+ {"WC5 V",-5.4,155,176,255},
+ {"WC6 V",-5.1,162,184,255},
+ {"WC7 V",-4.7,157,177,255},
+ {"WC8 V",-4.4,157,177,255},
+ {"WC9 V",-4.0,154,178,255},
+ {"WN0 V",-5.9,144,166,255},
+ {"WN1 V",-5.8,146,168,255},
+ {"WN2 V",-5.7,148,170,255},
+ {"WN3 V",-5.6,151,172,255},
+ {"WN4 V",-5.5,153,174,255},
+ {"WN5 V",-5.4,155,176,255},
+ {"WN6 V",-5.1,162,184,255},
+ {"WN7 V",-4.7,157,177,255},
+ {"WN8 V",-4.4,157,177,255},
+ {"WN9 V",-4.0,154,178,255},
+ {"O0 VI",-5.6,144,166,255},
+ {"O1 VI",-5.5,146,168,255},
+ {"O2 VI",-5.4,148,170,255},
+ {"O3 VI",-5.3,151,172,255},
+ {"O4 VI",-5.2,153,174,255},
+ {"O5 VI",-5.1,155,176,255},
+ {"O6 VI",-4.7,162,184,255},
+ {"O7 VI",-4.3,157,177,255},
+ {"O8 VI",-3.8,157,177,255},
+ {"O9 VI",-3.4,154,178,255},
+ {"B0 VI",-3.0,156,178,255},
+ {"B1 VI",-2.5,160,182,255},
+ {"B2 VI",-2.0,160,180,255},
+ {"B3 VI",-1.4,165,185,255},
+ {"B4 VI",-0.9,164,184,255},
+ {"B5 VI",-0.4,170,191,255},
+ {"B6 VI",0.0,172,189,255},
+ {"B7 VI",0.4,173,191,255},
+ {"B8 VI",0.8,177,195,255},
+ {"B9 VI",1.2,181,198,255},
+ {"A0 VI",1.6,185,201,255},
+ {"A1 VI",1.9,181,199,255},
+ {"A2 VI",2.1,187,203,255},
+ {"A3 VI",2.4,191,207,255},
+ {"A4 VI",2.6,197,211,255},
+ {"A5 VI",2.9,202,215,255},
+ {"A6 VI",3.1,199,212,255},
+ {"A7 VI",3.3,200,213,255},
+ {"A8 VI",3.5,213,222,255},
+ {"A9 VI",3.7,219,224,255},
+ {"F0 VI",3.9,224,229,255},
+ {"F1 VI",4.1,230,234,255},
+ {"F2 VI",4.3,236,239,255},
+ {"F3 VI",4.4,230,233,255},
+ {"F4 VI",4.6,224,226,255},
+ {"F5 VI",4.8,248,247,255},
+ {"F6 VI",5.0,244,241,255},
+ {"F7 VI",5.1,246,243,255},
+ {"F8 VI",5.3,255,247,252},
+ {"F9 VI",5.4,255,247,252},
+ {"G0 VI",5.6,255,248,252},
+ {"G1 VI",5.8,255,247,248},
+ {"G2 VI",6.0,255,245,242},
+ {"G3 VI",6.1,255,243,236},
+ {"G4 VI",6.3,255,241,229},
+ {"G5 VI",6.5,255,244,234},
+ {"G6 VI",6.7,255,244,235},
+ {"G7 VI",6.8,255,244,235},
+ {"G8 VI",7.0,255,237,222},
+ {"G9 VI",7.1,255,239,221},
+ {"K0 VI",7.3,255,238,221},
+ {"K1 VI",7.5,255,224,188},
+ {"K2 VI",7.7,255,227,196},
+ {"K3 VI",8.0,255,222,195},
+ {"K4 VI",8.2,255,216,181},
+ {"K5 VI",8.4,255,210,161},
+ {"K6 VI",8.7,255,205,152},
+ {"K7 VI",9.0,255,199,142},
+ {"K8 VI",9.4,255,209,174},
+ {"K9 VI",9.9,255,202,157},
+ {"M0 VI",10.3,255,195,139},
+ {"M1 VI",11.4,255,204,142},
+ {"M2 VI",12.6,255,196,131},
+ {"M3 VI",13.7,255,206,129},
+ {"M4 VI",14.9,255,201,127},
+ {"M5 VI",16.0,255,204,111},
+ {"M6 VI",16.8,255,195,112},
+ {"M7 VI",17.5,255,197,111},
+ {"M8 VI",18.3,255,198,109},
+ {"M9 VI",19.0,255,198,108},
+ {"R0 VI",6.3,255,241,229},
+ {"R1 VI",6.7,255,238,222},
+ {"R2 VI",7.0,255,235,216},
+ {"R3 VI",7.3,255,233,209},
+ {"R4 VI",7.7,255,230,203},
+ {"R5 VI",8.2,255,227,196},
+ {"R6 VI",8.7,255,219,182},
+ {"R7 VI",9.4,255,211,168},
+ {"R8 VI",9.9,255,203,153},
+ {"R9 VI",10.3,255,195,139},
+ {"S0 VI",10.3,255,195,139},
+ {"S1 VI",11.4,255,204,142},
+ {"S2 VI",12.6,255,196,131},
+ {"S3 VI",13.7,255,206,129},
+ {"S4 VI",14.9,255,201,127},
+ {"S5 VI",16.0,255,204,111},
+ {"S6 VI",16.8,255,195,112},
+ {"S7 VI",17.5,255,197,111},
+ {"S8 VI",18.3,255,198,109},
+ {"S9 VI",19.0,255,198,108},
+ {"N0 VI",10.3,255,195,139},
+ {"N1 VI",11.4,255,204,142},
+ {"N2 VI",12.6,255,196,131},
+ {"N3 VI",13.7,255,206,129},
+ {"N4 VI",14.9,255,201,127},
+ {"N5 VI",16.0,255,204,111},
+ {"N6 VI",16.8,255,195,112},
+ {"N7 VI",17.5,255,197,111},
+ {"N8 VI",18.3,255,198,109},
+ {"N9 VI",19.0,255,198,108},
+ {"C0 VI",6.3,255,241,229},
+ {"C1 VI",7.0,255,235,218},
+ {"C2 VI",7.5,255,228,207},
+ {"C3 VI",8.2,255,222,196},
+ {"C4 VI",9.0,255,215,185},
+ {"C5 VI",10.3,255,209,174},
+ {"C6 VI",13.7,255,206,158},
+ {"C7 VI",16.8,255,204,141},
+ {"C8 VI",18.3,255,201,125},
+ {"C9 VI",19.0,255,198,108},
+ {"WC0 VI",-5.6,144,166,255},
+ {"WC1 VI",-5.5,146,168,255},
+ {"WC2 VI",-5.4,148,170,255},
+ {"WC3 VI",-5.3,151,172,255},
+ {"WC4 VI",-5.2,153,174,255},
+ {"WC5 VI",-5.1,155,176,255},
+ {"WC6 VI",-4.7,162,184,255},
+ {"WC7 VI",-4.3,157,177,255},
+ {"WC8 VI",-3.8,157,177,255},
+ {"WC9 VI",-3.4,154,178,255},
+ {"WN0 VI",-5.6,144,166,255},
+ {"WN1 VI",-5.5,146,168,255},
+ {"WN2 VI",-5.4,148,170,255},
+ {"WN3 VI",-5.3,151,172,255},
+ {"WN4 VI",-5.2,153,174,255},
+ {"WN5 VI",-5.1,155,176,255},
+ {"WN6 VI",-4.7,162,184,255},
+ {"WN7 VI",-4.3,157,177,255},
+ {"WN8 VI",-3.8,157,177,255},
+ {"WN9 VI",-3.4,154,178,255},
+ {"DA0",10.2,155,178,255},
+ {"DA1",10.8,159,181,255},
+ {"DA2",11.4,168,189,255},
+ {"DA3",11.9,179,197,255},
+ {"DA4",12.5,192,207,255},
+ {"DA5",13.1,207,218,255},
+ {"DA6",13.7,224,230,255},
+ {"DA7",14.2,243,243,255},
+ {"DA8",14.8,255,247,245},
+ {"DA9",15.4,255,239,225},
+ {"DB0",10.2,155,178,255},
+ {"DB1",10.8,159,181,255},
+ {"DB2",11.4,168,189,255},
+ {"DB3",11.9,179,197,255},
+ {"DB4",12.5,192,207,255},
+ {"DB5",13.1,207,218,255},
+ {"DB6",13.7,224,230,255},
+ {"DB7",14.2,243,243,255},
+ {"DB8",14.8,255,247,245},
+ {"DB9",15.4,255,239,225},
+ {"DC0",10.2,155,178,255},
+ {"DC1",10.8,159,181,255},
+ {"DC2",11.4,168,189,255},
+ {"DC3",11.9,179,197,255},
+ {"DC4",12.5,192,207,255},
+ {"DC5",13.1,207,218,255},
+ {"DC6",13.7,224,230,255},
+ {"DC7",14.2,243,243,255},
+ {"DC8",14.8,255,247,245},
+ {"DC9",15.4,255,239,225},
+ {"DO0",10.2,155,178,255},
+ {"DO1",10.8,159,181,255},
+ {"DO2",11.4,168,189,255},
+ {"DO3",11.9,179,197,255},
+ {"DO4",12.5,192,207,255},
+ {"DO5",13.1,207,218,255},
+ {"DO6",13.7,224,230,255},
+ {"DO7",14.2,243,243,255},
+ {"DO8",14.8,255,247,245},
+ {"DO9",15.4,255,239,225},
+ {"DZ0",10.2,155,178,255},
+ {"DZ1",10.8,159,181,255},
+ {"DZ2",11.4,168,189,255},
+ {"DZ3",11.9,179,197,255},
+ {"DZ4",12.5,192,207,255},
+ {"DZ5",13.1,207,218,255},
+ {"DZ6",13.7,224,230,255},
+ {"DZ7",14.2,243,243,255},
+ {"DZ8",14.8,255,247,245},
+ {"DZ9",15.4,255,239,225},
+ {"DQ0",10.2,155,178,255},
+ {"DQ1",10.8,159,181,255},
+ {"DQ2",11.4,168,189,255},
+ {"DQ3",11.9,179,197,255},
+ {"DQ4",12.5,192,207,255},
+ {"DQ5",13.1,207,218,255},
+ {"DQ6",13.7,224,230,255},
+ {"DQ7",14.2,243,243,255},
+ {"DQ8",14.8,255,247,245},
+ {"DQ9",15.4,255,239,225},
+ {NULL, 0,0,0,0},
+};
+
+const Color StellarClass::getApparentColor() const {
+ if (!color_table_init) {
+ for (int i=0; color_table[i].spectral_class != NULL; i++) {
+ StellarClass sc = parse(color_table[i].spectral_class);
+ if (sc.getSpectralClass() != StellarClass::Spectral_Unknown) {
+ mapped_color_table[sc.data] =
+ Color((unsigned char) (color_table[i].red),
+ (unsigned char) (color_table[i].green),
+ (unsigned char) (color_table[i].blue));
+ }
}
+ color_table_init = 1;
+ }
+
+ if (mapped_color_table[data] == Color::Black) {
+ mapped_color_table[data] = Color::White;
+ }
+ return mapped_color_table[data];
}
@@ -70,7 +1184,7 @@
if (st == StellarClass::WhiteDwarf)
{
- strcpy(s0, "WD");
+ strcpy(s0, "D");
}
else if (st == StellarClass::NeutronStar)
{
@@ -89,13 +1203,13 @@
switch (getLuminosityClass())
{
case StellarClass::Lum_Ia0:
- s2 = " I-a0";
+ s2 = " Ia0";
break;
case StellarClass::Lum_Ia:
- s2 = " I-a";
+ s2 = " Ia";
break;
case StellarClass::Lum_Ib:
- s2 = " I-b";
+ s2 = " Ib";
break;
case StellarClass::Lum_II:
s2 = " II";
Index: stellarclass.h
===================================================================
RCS file: /cvsroot/celestia/celestia/src/celengine/stellarclass.h,v
retrieving revision 1.4
diff -u -r1.4 stellarclass.h
--- stellarclass.h 8 May 2002 07:02:27 -0000 1.4
+++ stellarclass.h 2 Jan 2003 01:23:01 -0000
@@ -58,17 +58,16 @@
inline StellarClass();
inline StellarClass(StarType,
- SpectralClass,
- unsigned int,
- LuminosityClass);
+ SpectralClass,
+ unsigned int,
+ LuminosityClass);
inline StarType getStarType() const;
inline SpectralClass getSpectralClass() const;
inline unsigned int getSpectralSubclass() const;
inline LuminosityClass getLuminosityClass() const;
- Color getApparentColor() const;
- Color getApparentColor(StellarClass::SpectralClass sc) const;
+ const Color getApparentColor() const;
char* str(char* buf, unsigned int buflen) const;
std::string str() const;
@@ -83,13 +82,6 @@
uint16 data;
};
-
-std::ostream& operator<<(std::ostream& s, const StellarClass& sc);
-
-// A rough ordering of stellar classes, from 'early' to 'late' . . .
-// Useful for organizing a list of stars by spectral class.
-bool operator<(const StellarClass& sc0, const StellarClass& sc1);
-
StellarClass::StellarClass(StarType t,
SpectralClass sc,
unsigned int ssub,
@@ -106,6 +98,12 @@
data = 0;
}
+std::ostream& operator<<(std::ostream& s, const StellarClass& sc);
+
+// A rough ordering of stellar classes, from 'early' to 'late' . . .
+// Useful for organizing a list of stars by spectral class.
+bool operator<(const StellarClass& sc0, const StellarClass& sc1);
+
StellarClass::StarType StellarClass::getStarType() const
{
return (StarType) (data >> 12);
@@ -125,5 +123,7 @@
{
return (LuminosityClass) (data & 0xf);
}
+
+
#endif // _STELLARCLASS_H_