520 changes: 520 additions & 0 deletions src/libkstmath/builtinpalettes.h
Original file line number Diff line number Diff line change
Expand Up @@ -1324,6 +1324,526 @@ static unsigned char RedTemp[257][3] = {
{255, 255, 255}
};

static const int HotColdCount = 514;
static const QString HotColdName = "Hot Cold";

static unsigned char HotCold[514][3] = {
{255, 255, 255},
{251, 253, 255},
{247, 251, 255},
{243, 249, 255},
{239, 247, 255},
{235, 245, 255},
{231, 243, 255},
{227, 241, 255},
{223, 239, 255},
{219, 238, 255},
{215, 236, 255},
{211, 234, 255},
{207, 232, 255},
{204, 230, 255},
{200, 228, 255},
{196, 226, 255},
{192, 224, 255},
{188, 222, 255},
{184, 221, 255},
{180, 219, 255},
{176, 217, 255},
{172, 215, 255},
{168, 213, 255},
{164, 211, 255},
{160, 209, 255},
{156, 207, 255},
{153, 205, 255},
{149, 204, 255},
{145, 202, 255},
{141, 200, 255},
{137, 198, 255},
{133, 196, 255},
{129, 194, 255},
{125, 192, 255},
{121, 190, 255},
{117, 188, 255},
{113, 187, 255},
{109, 185, 255},
{105, 183, 255},
{102, 181, 255},
{98, 179, 255},
{94, 177, 255},
{90, 175, 255},
{86, 173, 255},
{82, 171, 255},
{78, 170, 255},
{74, 168, 255},
{70, 166, 255},
{66, 164, 255},
{62, 162, 255},
{58, 160, 255},
{54, 158, 255},
{51, 156, 255},
{47, 154, 255},
{43, 153, 255},
{39, 151, 255},
{35, 149, 255},
{31, 147, 255},
{27, 145, 255},
{23, 143, 255},
{19, 141, 255},
{15, 139, 255},
{11, 137, 255},
{7, 136, 255},
{3, 134, 255},
{0, 132, 255},
{0, 130, 255},
{0, 128, 255},
{0, 126, 255},
{0, 124, 255},
{0, 122, 255},
{0, 120, 255},
{0, 119, 255},
{0, 117, 255},
{0, 115, 255},
{0, 113, 255},
{0, 111, 255},
{0, 109, 255},
{0, 107, 255},
{0, 105, 255},
{0, 103, 253},
{0, 102, 252},
{0, 100, 250},
{0, 98, 249},
{0, 96, 247},
{0, 94, 246},
{0, 92, 244},
{0, 90, 243},
{0, 88, 241},
{0, 86, 240},
{0, 85, 239},
{0, 83, 237},
{0, 81, 236},
{0, 79, 234},
{0, 77, 233},
{0, 75, 231},
{0, 73, 230},
{0, 71, 228},
{0, 69, 227},
{0, 68, 226},
{0, 66, 224},
{0, 64, 223},
{0, 62, 221},
{0, 60, 220},
{0, 58, 218},
{0, 56, 217},
{0, 54, 215},
{0, 52, 214},
{0, 51, 212},
{0, 49, 211},
{0, 47, 210},
{0, 45, 208},
{0, 43, 207},
{0, 41, 205},
{0, 39, 204},
{0, 37, 202},
{0, 35, 201},
{0, 34, 199},
{0, 32, 198},
{0, 30, 197},
{0, 28, 195},
{0, 26, 194},
{0, 24, 192},
{0, 22, 191},
{0, 20, 189},
{0, 18, 188},
{0, 17, 186},
{0, 15, 185},
{0, 13, 184},
{0, 11, 182},
{0, 9, 181},
{0, 7, 179},
{0, 5, 178},
{0, 3, 176},
{0, 1, 175},
{0, 0, 173},
{0, 0, 172},
{0, 0, 170},
{0, 0, 169},
{0, 0, 168},
{0, 0, 166},
{0, 0, 165},
{0, 0, 163},
{0, 0, 162},
{0, 0, 160},
{0, 0, 159},
{0, 0, 157},
{0, 0, 156},
{0, 0, 155},
{0, 0, 153},
{0, 0, 152},
{0, 0, 150},
{0, 0, 149},
{0, 0, 147},
{0, 0, 146},
{0, 0, 144},
{0, 0, 143},
{0, 0, 141},
{0, 0, 140},
{0, 0, 139},
{0, 0, 137},
{0, 0, 136},
{0, 0, 134},
{0, 0, 133},
{0, 0, 131},
{0, 0, 130},
{0, 0, 128},
{0, 0, 127},
{0, 0, 126},
{0, 0, 124},
{0, 0, 123},
{0, 0, 121},
{0, 0, 120},
{0, 0, 118},
{0, 0, 117},
{0, 0, 115},
{0, 0, 114},
{0, 0, 113},
{0, 0, 111},
{0, 0, 110},
{0, 0, 108},
{0, 0, 107},
{0, 0, 105},
{0, 0, 104},
{0, 0, 102},
{0, 0, 101},
{0, 0, 99},
{0, 0, 98},
{0, 0, 97},
{0, 0, 95},
{0, 0, 94},
{0, 0, 92},
{0, 0, 91},
{0, 0, 89},
{0, 0, 88},
{0, 0, 86},
{0, 0, 85},
{0, 0, 84},
{0, 0, 82},
{0, 0, 81},
{0, 0, 79},
{0, 0, 78},
{0, 0, 76},
{0, 0, 75},
{0, 0, 73},
{0, 0, 72},
{0, 0, 70},
{0, 0, 69},
{0, 0, 68},
{0, 0, 66},
{0, 0, 65},
{0, 0, 63},
{0, 0, 62},
{0, 0, 60},
{0, 0, 59},
{0, 0, 57},
{0, 0, 56},
{0, 0, 55},
{0, 0, 53},
{0, 0, 52},
{0, 0, 50},
{0, 0, 49},
{0, 0, 47},
{0, 0, 46},
{0, 0, 44},
{0, 0, 43},
{0, 0, 42},
{0, 0, 40},
{0, 0, 39},
{0, 0, 37},
{0, 0, 36},
{0, 0, 34},
{0, 0, 33},
{0, 0, 31},
{0, 0, 30},
{0, 0, 28},
{0, 0, 27},
{0, 0, 26},
{0, 0, 24},
{0, 0, 23},
{0, 0, 21},
{0, 0, 20},
{0, 0, 18},
{0, 0, 17},
{0, 0, 15},
{0, 0, 14},
{0, 0, 13},
{0, 0, 11},
{0, 0, 10},
{0, 0, 8},
{0, 0, 7},
{0, 0, 5},
{0, 0, 4},
{0, 0, 2},
{0, 0, 1},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0},
{1, 0, 0},
{2, 0, 0},
{4, 0, 0},
{5, 0, 0},
{7, 0, 0},
{8, 0, 0},
{10, 0, 0},
{11, 0, 0},
{13, 0, 0},
{14, 0, 0},
{15, 0, 0},
{17, 0, 0},
{18, 0, 0},
{20, 0, 0},
{21, 0, 0},
{23, 0, 0},
{24, 0, 0},
{26, 0, 0},
{27, 0, 0},
{28, 0, 0},
{30, 0, 0},
{31, 0, 0},
{33, 0, 0},
{34, 0, 0},
{36, 0, 0},
{37, 0, 0},
{39, 0, 0},
{40, 0, 0},
{42, 0, 0},
{43, 0, 0},
{44, 0, 0},
{46, 0, 0},
{47, 0, 0},
{49, 0, 0},
{50, 0, 0},
{52, 0, 0},
{53, 0, 0},
{55, 0, 0},
{56, 0, 0},
{57, 0, 0},
{59, 0, 0},
{60, 0, 0},
{62, 0, 0},
{63, 0, 0},
{65, 0, 0},
{66, 0, 0},
{68, 0, 0},
{69, 0, 0},
{70, 0, 0},
{72, 0, 0},
{73, 0, 0},
{75, 0, 0},
{76, 0, 0},
{78, 0, 0},
{79, 0, 0},
{81, 0, 0},
{82, 0, 0},
{84, 0, 0},
{85, 0, 0},
{86, 0, 0},
{88, 0, 0},
{89, 0, 0},
{91, 0, 0},
{92, 0, 0},
{94, 0, 0},
{95, 0, 0},
{97, 0, 0},
{98, 0, 0},
{99, 0, 0},
{101, 0, 0},
{102, 0, 0},
{104, 0, 0},
{105, 0, 0},
{107, 0, 0},
{108, 0, 0},
{110, 0, 0},
{111, 0, 0},
{113, 0, 0},
{114, 0, 0},
{115, 0, 0},
{117, 0, 0},
{118, 0, 0},
{120, 0, 0},
{121, 0, 0},
{123, 0, 0},
{124, 0, 0},
{126, 0, 0},
{127, 0, 0},
{128, 0, 0},
{130, 0, 0},
{131, 0, 0},
{133, 0, 0},
{134, 0, 0},
{136, 0, 0},
{137, 0, 0},
{139, 0, 0},
{140, 0, 0},
{141, 0, 0},
{143, 0, 0},
{144, 0, 0},
{146, 0, 0},
{147, 0, 0},
{149, 0, 0},
{150, 0, 0},
{152, 0, 0},
{153, 0, 0},
{155, 0, 0},
{156, 0, 0},
{157, 0, 0},
{159, 0, 0},
{160, 0, 0},
{162, 0, 0},
{163, 0, 0},
{165, 0, 0},
{166, 0, 0},
{168, 0, 0},
{169, 0, 0},
{170, 0, 0},
{172, 0, 0},
{173, 0, 0},
{175, 1, 0},
{176, 3, 0},
{178, 5, 0},
{179, 7, 0},
{181, 9, 0},
{182, 11, 0},
{184, 13, 0},
{185, 15, 0},
{186, 17, 0},
{188, 18, 0},
{189, 20, 0},
{191, 22, 0},
{192, 24, 0},
{194, 26, 0},
{195, 28, 0},
{197, 30, 0},
{198, 32, 0},
{199, 34, 0},
{201, 35, 0},
{202, 37, 0},
{204, 39, 0},
{205, 41, 0},
{207, 43, 0},
{208, 45, 0},
{210, 47, 0},
{211, 49, 0},
{212, 51, 0},
{214, 52, 0},
{215, 54, 0},
{217, 56, 0},
{218, 58, 0},
{220, 60, 0},
{221, 62, 0},
{223, 64, 0},
{224, 66, 0},
{226, 68, 0},
{227, 69, 0},
{228, 71, 0},
{230, 73, 0},
{231, 75, 0},
{233, 77, 0},
{234, 79, 0},
{236, 81, 0},
{237, 83, 0},
{239, 85, 0},
{240, 86, 0},
{241, 88, 0},
{243, 90, 0},
{244, 92, 0},
{246, 94, 0},
{247, 96, 0},
{249, 98, 0},
{250, 100, 0},
{252, 102, 0},
{253, 103, 0},
{255, 105, 0},
{255, 107, 0},
{255, 109, 0},
{255, 111, 0},
{255, 113, 0},
{255, 115, 0},
{255, 117, 0},
{255, 119, 0},
{255, 120, 0},
{255, 122, 0},
{255, 124, 0},
{255, 126, 0},
{255, 128, 0},
{255, 130, 0},
{255, 132, 0},
{255, 134, 3},
{255, 136, 7},
{255, 137, 11},
{255, 139, 15},
{255, 141, 19},
{255, 143, 23},
{255, 145, 27},
{255, 147, 31},
{255, 149, 35},
{255, 151, 39},
{255, 153, 43},
{255, 154, 47},
{255, 156, 51},
{255, 158, 54},
{255, 160, 58},
{255, 162, 62},
{255, 164, 66},
{255, 166, 70},
{255, 168, 74},
{255, 170, 78},
{255, 171, 82},
{255, 173, 86},
{255, 175, 90},
{255, 177, 94},
{255, 179, 98},
{255, 181, 102},
{255, 183, 105},
{255, 185, 109},
{255, 187, 113},
{255, 188, 117},
{255, 190, 121},
{255, 192, 125},
{255, 194, 129},
{255, 196, 133},
{255, 198, 137},
{255, 200, 141},
{255, 202, 145},
{255, 204, 149},
{255, 205, 153},
{255, 207, 156},
{255, 209, 160},
{255, 211, 164},
{255, 213, 168},
{255, 215, 172},
{255, 217, 176},
{255, 219, 180},
{255, 221, 184},
{255, 222, 188},
{255, 224, 192},
{255, 226, 196},
{255, 228, 200},
{255, 230, 204},
{255, 232, 207},
{255, 234, 211},
{255, 236, 215},
{255, 238, 219},
{255, 239, 223},
{255, 241, 227},
{255, 243, 231},
{255, 245, 235},
{255, 247, 239},
{255, 249, 243},
{255, 251, 247},
{255, 253, 251},
{255, 255, 255}
};

static const int SpectrumCount = 1021;
static const QString SpectrumName = "Spectrum";
static unsigned char Spectrum[1022][3] = {
Expand Down
7 changes: 7 additions & 0 deletions src/libkstmath/palette.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ QStringList Palette::getPaletteList() {
paletteList.append(EosBName);
paletteList.append(KstColorsName);
paletteList.append(CycleName);
paletteList.append(HotColdName);

//TODO: support loading palettes from disk.

Expand Down Expand Up @@ -77,6 +78,12 @@ void Palette::changePaletteName(const QString &paletteName) {
_rgb[i] = _colors[i].rgb();
}
_count = RedTempCount;
} else if (_paletteName == HotColdName) {
for (int i = 0; i < HotColdCount; i++) {
_colors[i] = QColor(HotCold[i][0], HotCold[i][1], HotCold[i][2]);
_rgb[i] = _colors[i].rgb();
}
_count = HotColdCount;
} else if (_paletteName == SpectrumName) {
for (int i = 0; i < SpectrumCount; i++) {
_colors[i] = QColor(Spectrum[i][0], Spectrum[i][1], Spectrum[i][2]);
Expand Down