You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

551 lines
35 KiB

/*
This file is part of Magnum.
Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
2020, 2021, 2022 Vladimír Vondruš <mosra@centrum.cz>
Copyright © 2020 janos <janos.meny@googlemail.com>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
*/
#include "ColorMap.h"
#include <Corrade/Containers/ArrayView.h>
#include "Magnum/Math/Color.h"
namespace Magnum { namespace DebugTools { namespace ColorMap {
namespace {
/* https://gist.github.com/mikhailov-work/6a308c20e494d9e0ccc29036b28faa7a */
constexpr UnsignedByte Turbo[][3] = {
{ 48, 18, 59}, { 50, 21, 67}, { 51, 24, 74}, { 52, 27, 81},
{ 53, 30, 88}, { 54, 33, 95}, { 55, 36, 102}, { 56, 39, 109},
{ 57, 42, 115}, { 58, 45, 121}, { 59, 47, 128}, { 60, 50, 134},
{ 61, 53, 139}, { 62, 56, 145}, { 63, 59, 151}, { 63, 62, 156},
{ 64, 64, 162}, { 65, 67, 167}, { 65, 70, 172}, { 66, 73, 177},
{ 66, 75, 181}, { 67, 78, 186}, { 68, 81, 191}, { 68, 84, 195},
{ 68, 86, 199}, { 69, 89, 203}, { 69, 92, 207}, { 69, 94, 211},
{ 70, 97, 214}, { 70, 100, 218}, { 70, 102, 221}, { 70, 105, 224},
{ 70, 107, 227}, { 71, 110, 230}, { 71, 113, 233}, { 71, 115, 235},
{ 71, 118, 238}, { 71, 120, 240}, { 71, 123, 242}, { 70, 125, 244},
{ 70, 128, 246}, { 70, 130, 248}, { 70, 133, 250}, { 70, 135, 251},
{ 69, 138, 252}, { 69, 140, 253}, { 68, 143, 254}, { 67, 145, 254},
{ 66, 148, 255}, { 65, 150, 255}, { 64, 153, 255}, { 62, 155, 254},
{ 61, 158, 254}, { 59, 160, 253}, { 58, 163, 252}, { 56, 165, 251},
{ 55, 168, 250}, { 53, 171, 248}, { 51, 173, 247}, { 49, 175, 245},
{ 47, 178, 244}, { 46, 180, 242}, { 44, 183, 240}, { 42, 185, 238},
{ 40, 188, 235}, { 39, 190, 233}, { 37, 192, 231}, { 35, 195, 228},
{ 34, 197, 226}, { 32, 199, 223}, { 31, 201, 221}, { 30, 203, 218},
{ 28, 205, 216}, { 27, 208, 213}, { 26, 210, 210}, { 26, 212, 208},
{ 25, 213, 205}, { 24, 215, 202}, { 24, 217, 200}, { 24, 219, 197},
{ 24, 221, 194}, { 24, 222, 192}, { 24, 224, 189}, { 25, 226, 187},
{ 25, 227, 185}, { 26, 228, 182}, { 28, 230, 180}, { 29, 231, 178},
{ 31, 233, 175}, { 32, 234, 172}, { 34, 235, 170}, { 37, 236, 167},
{ 39, 238, 164}, { 42, 239, 161}, { 44, 240, 158}, { 47, 241, 155},
{ 50, 242, 152}, { 53, 243, 148}, { 56, 244, 145}, { 60, 245, 142},
{ 63, 246, 138}, { 67, 247, 135}, { 70, 248, 132}, { 74, 248, 128},
{ 78, 249, 125}, { 82, 250, 122}, { 85, 250, 118}, { 89, 251, 115},
{ 93, 252, 111}, { 97, 252, 108}, {101, 253, 105}, {105, 253, 102},
{109, 254, 98}, {113, 254, 95}, {117, 254, 92}, {121, 254, 89},
{125, 255, 86}, {128, 255, 83}, {132, 255, 81}, {136, 255, 78},
{139, 255, 75}, {143, 255, 73}, {146, 255, 71}, {150, 254, 68},
{153, 254, 66}, {156, 254, 64}, {159, 253, 63}, {161, 253, 61},
{164, 252, 60}, {167, 252, 58}, {169, 251, 57}, {172, 251, 56},
{175, 250, 55}, {177, 249, 54}, {180, 248, 54}, {183, 247, 53},
{185, 246, 53}, {188, 245, 52}, {190, 244, 52}, {193, 243, 52},
{195, 241, 52}, {198, 240, 52}, {200, 239, 52}, {203, 237, 52},
{205, 236, 52}, {208, 234, 52}, {210, 233, 53}, {212, 231, 53},
{215, 229, 53}, {217, 228, 54}, {219, 226, 54}, {221, 224, 55},
{223, 223, 55}, {225, 221, 55}, {227, 219, 56}, {229, 217, 56},
{231, 215, 57}, {233, 213, 57}, {235, 211, 57}, {236, 209, 58},
{238, 207, 58}, {239, 205, 58}, {241, 203, 58}, {242, 201, 58},
{244, 199, 58}, {245, 197, 58}, {246, 195, 58}, {247, 193, 58},
{248, 190, 57}, {249, 188, 57}, {250, 186, 57}, {251, 184, 56},
{251, 182, 55}, {252, 179, 54}, {252, 177, 54}, {253, 174, 53},
{253, 172, 52}, {254, 169, 51}, {254, 167, 50}, {254, 164, 49},
{254, 161, 48}, {254, 158, 47}, {254, 155, 45}, {254, 153, 44},
{254, 150, 43}, {254, 147, 42}, {254, 144, 41}, {253, 141, 39},
{253, 138, 38}, {252, 135, 37}, {252, 132, 35}, {251, 129, 34},
{251, 126, 33}, {250, 123, 31}, {249, 120, 30}, {249, 117, 29},
{248, 114, 28}, {247, 111, 26}, {246, 108, 25}, {245, 105, 24},
{244, 102, 23}, {243, 99, 21}, {242, 96, 20}, {241, 93, 19},
{240, 91, 18}, {239, 88, 17}, {237, 85, 16}, {236, 83, 15},
{235, 80, 14}, {234, 78, 13}, {232, 75, 12}, {231, 73, 12},
{229, 71, 11}, {228, 69, 10}, {226, 67, 10}, {225, 65, 9},
{223, 63, 8}, {221, 61, 8}, {220, 59, 7}, {218, 57, 7},
{216, 55, 6}, {214, 53, 6}, {212, 51, 5}, {210, 49, 5},
{208, 47, 5}, {206, 45, 4}, {204, 43, 4}, {202, 42, 4},
{200, 40, 3}, {197, 38, 3}, {195, 37, 3}, {193, 35, 2},
{190, 33, 2}, {188, 32, 2}, {185, 30, 2}, {183, 29, 2},
{180, 27, 1}, {178, 26, 1}, {175, 24, 1}, {172, 23, 1},
{169, 22, 1}, {167, 20, 1}, {164, 19, 1}, {161, 18, 1},
{158, 16, 1}, {155, 15, 1}, {152, 14, 1}, {149, 13, 1},
{146, 11, 1}, {142, 10, 1}, {139, 9, 2}, {136, 8, 2},
{133, 7, 2}, {129, 6, 2}, {126, 5, 2}, {122, 4, 3}
};
/* Generated with Implementation/colormap-to-srgb.py */
constexpr UnsignedByte Magma[][3] = {
{ 0, 0, 3}, { 0, 0, 4}, { 0, 0, 6}, { 1, 0, 7},
{ 1, 1, 9}, { 1, 1, 11}, { 2, 2, 13}, { 2, 2, 15},
{ 3, 3, 17}, { 4, 3, 19}, { 4, 4, 21}, { 5, 4, 23},
{ 6, 5, 25}, { 7, 5, 27}, { 8, 6, 29}, { 9, 7, 31},
{ 10, 7, 34}, { 11, 8, 36}, { 12, 9, 38}, { 13, 10, 40},
{ 14, 10, 42}, { 15, 11, 44}, { 16, 12, 47}, { 17, 12, 49},
{ 18, 13, 51}, { 20, 13, 53}, { 21, 14, 56}, { 22, 14, 58},
{ 23, 15, 60}, { 24, 15, 63}, { 26, 16, 65}, { 27, 16, 68},
{ 28, 16, 70}, { 30, 16, 73}, { 31, 17, 75}, { 32, 17, 77},
{ 34, 17, 80}, { 35, 17, 82}, { 37, 17, 85}, { 38, 17, 87},
{ 40, 17, 89}, { 42, 17, 92}, { 43, 17, 94}, { 45, 16, 96},
{ 47, 16, 98}, { 48, 16, 101}, { 50, 16, 103}, { 52, 16, 104},
{ 53, 15, 106}, { 55, 15, 108}, { 57, 15, 110}, { 59, 15, 111},
{ 60, 15, 113}, { 62, 15, 114}, { 64, 15, 115}, { 66, 15, 116},
{ 67, 15, 117}, { 69, 15, 118}, { 71, 15, 119}, { 72, 16, 120},
{ 74, 16, 121}, { 75, 16, 121}, { 77, 17, 122}, { 79, 17, 123},
{ 80, 18, 123}, { 82, 18, 124}, { 83, 19, 124}, { 85, 19, 125},
{ 87, 20, 125}, { 88, 21, 126}, { 90, 21, 126}, { 91, 22, 126},
{ 93, 23, 126}, { 94, 23, 127}, { 96, 24, 127}, { 97, 24, 127},
{ 99, 25, 127}, {101, 26, 128}, {102, 26, 128}, {104, 27, 128},
{105, 28, 128}, {107, 28, 128}, {108, 29, 128}, {110, 30, 129},
{111, 30, 129}, {113, 31, 129}, {115, 31, 129}, {116, 32, 129},
{118, 33, 129}, {119, 33, 129}, {121, 34, 129}, {122, 34, 129},
{124, 35, 129}, {126, 36, 129}, {127, 36, 129}, {129, 37, 129},
{130, 37, 129}, {132, 38, 129}, {133, 38, 129}, {135, 39, 129},
{137, 40, 129}, {138, 40, 129}, {140, 41, 128}, {141, 41, 128},
{143, 42, 128}, {145, 42, 128}, {146, 43, 128}, {148, 43, 128},
{149, 44, 128}, {151, 44, 127}, {153, 45, 127}, {154, 45, 127},
{156, 46, 127}, {158, 46, 126}, {159, 47, 126}, {161, 47, 126},
{163, 48, 126}, {164, 48, 125}, {166, 49, 125}, {167, 49, 125},
{169, 50, 124}, {171, 51, 124}, {172, 51, 123}, {174, 52, 123},
{176, 52, 123}, {177, 53, 122}, {179, 53, 122}, {181, 54, 121},
{182, 54, 121}, {184, 55, 120}, {185, 55, 120}, {187, 56, 119},
{189, 57, 119}, {190, 57, 118}, {192, 58, 117}, {194, 58, 117},
{195, 59, 116}, {197, 60, 116}, {198, 60, 115}, {200, 61, 114},
{202, 62, 114}, {203, 62, 113}, {205, 63, 112}, {206, 64, 112},
{208, 65, 111}, {209, 66, 110}, {211, 66, 109}, {212, 67, 109},
{214, 68, 108}, {215, 69, 107}, {217, 70, 106}, {218, 71, 105},
{220, 72, 105}, {221, 73, 104}, {222, 74, 103}, {224, 75, 102},
{225, 76, 102}, {226, 77, 101}, {228, 78, 100}, {229, 80, 99},
{230, 81, 98}, {231, 82, 98}, {232, 84, 97}, {234, 85, 96},
{235, 86, 96}, {236, 88, 95}, {237, 89, 95}, {238, 91, 94},
{238, 93, 93}, {239, 94, 93}, {240, 96, 93}, {241, 97, 92},
{242, 99, 92}, {243, 101, 92}, {243, 103, 91}, {244, 104, 91},
{245, 106, 91}, {245, 108, 91}, {246, 110, 91}, {246, 112, 91},
{247, 113, 91}, {247, 115, 92}, {248, 117, 92}, {248, 119, 92},
{249, 121, 92}, {249, 123, 93}, {249, 125, 93}, {250, 127, 94},
{250, 128, 94}, {250, 130, 95}, {251, 132, 96}, {251, 134, 96},
{251, 136, 97}, {251, 138, 98}, {252, 140, 99}, {252, 142, 99},
{252, 144, 100}, {252, 146, 101}, {252, 147, 102}, {253, 149, 103},
{253, 151, 104}, {253, 153, 105}, {253, 155, 106}, {253, 157, 107},
{253, 159, 108}, {253, 161, 110}, {253, 162, 111}, {253, 164, 112},
{254, 166, 113}, {254, 168, 115}, {254, 170, 116}, {254, 172, 117},
{254, 174, 118}, {254, 175, 120}, {254, 177, 121}, {254, 179, 123},
{254, 181, 124}, {254, 183, 125}, {254, 185, 127}, {254, 187, 128},
{254, 188, 130}, {254, 190, 131}, {254, 192, 133}, {254, 194, 134},
{254, 196, 136}, {254, 198, 137}, {254, 199, 139}, {254, 201, 141},
{254, 203, 142}, {253, 205, 144}, {253, 207, 146}, {253, 209, 147},
{253, 210, 149}, {253, 212, 151}, {253, 214, 152}, {253, 216, 154},
{253, 218, 156}, {253, 220, 157}, {253, 221, 159}, {253, 223, 161},
{253, 225, 163}, {252, 227, 165}, {252, 229, 166}, {252, 230, 168},
{252, 232, 170}, {252, 234, 172}, {252, 236, 174}, {252, 238, 176},
{252, 240, 177}, {252, 241, 179}, {252, 243, 181}, {252, 245, 183},
{251, 247, 185}, {251, 249, 187}, {251, 250, 189}, {251, 252, 191}
};
/* Generated with Implementation/colormap-to-srgb.py */
constexpr UnsignedByte Plasma[][3] = {
{ 12, 7, 134}, { 16, 7, 135}, { 19, 6, 137}, { 21, 6, 138},
{ 24, 6, 139}, { 27, 6, 140}, { 29, 6, 141}, { 31, 5, 142},
{ 33, 5, 143}, { 35, 5, 144}, { 37, 5, 145}, { 39, 5, 146},
{ 41, 5, 147}, { 43, 5, 148}, { 45, 4, 148}, { 47, 4, 149},
{ 49, 4, 150}, { 51, 4, 151}, { 52, 4, 152}, { 54, 4, 152},
{ 56, 4, 153}, { 58, 4, 154}, { 59, 3, 154}, { 61, 3, 155},
{ 63, 3, 156}, { 64, 3, 156}, { 66, 3, 157}, { 68, 3, 158},
{ 69, 3, 158}, { 71, 2, 159}, { 73, 2, 159}, { 74, 2, 160},
{ 76, 2, 161}, { 78, 2, 161}, { 79, 2, 162}, { 81, 1, 162},
{ 82, 1, 163}, { 84, 1, 163}, { 86, 1, 163}, { 87, 1, 164},
{ 89, 1, 164}, { 90, 0, 165}, { 92, 0, 165}, { 94, 0, 165},
{ 95, 0, 166}, { 97, 0, 166}, { 98, 0, 166}, {100, 0, 167},
{101, 0, 167}, {103, 0, 167}, {104, 0, 167}, {106, 0, 167},
{108, 0, 168}, {109, 0, 168}, {111, 0, 168}, {112, 0, 168},
{114, 0, 168}, {115, 0, 168}, {117, 0, 168}, {118, 1, 168},
{120, 1, 168}, {121, 1, 168}, {123, 2, 168}, {124, 2, 167},
{126, 3, 167}, {127, 3, 167}, {129, 4, 167}, {130, 4, 167},
{132, 5, 166}, {133, 6, 166}, {134, 7, 166}, {136, 7, 165},
{137, 8, 165}, {139, 9, 164}, {140, 10, 164}, {142, 12, 164},
{143, 13, 163}, {144, 14, 163}, {146, 15, 162}, {147, 16, 161},
{149, 17, 161}, {150, 18, 160}, {151, 19, 160}, {153, 20, 159},
{154, 21, 158}, {155, 23, 158}, {157, 24, 157}, {158, 25, 156},
{159, 26, 155}, {160, 27, 155}, {162, 28, 154}, {163, 29, 153},
{164, 30, 152}, {165, 31, 151}, {167, 33, 151}, {168, 34, 150},
{169, 35, 149}, {170, 36, 148}, {172, 37, 147}, {173, 38, 146},
{174, 39, 145}, {175, 40, 144}, {176, 42, 143}, {177, 43, 143},
{178, 44, 142}, {180, 45, 141}, {181, 46, 140}, {182, 47, 139},
{183, 48, 138}, {184, 50, 137}, {185, 51, 136}, {186, 52, 135},
{187, 53, 134}, {188, 54, 133}, {189, 55, 132}, {190, 56, 131},
{191, 57, 130}, {192, 59, 129}, {193, 60, 128}, {194, 61, 128},
{195, 62, 127}, {196, 63, 126}, {197, 64, 125}, {198, 65, 124},
{199, 66, 123}, {200, 68, 122}, {201, 69, 121}, {202, 70, 120},
{203, 71, 119}, {204, 72, 118}, {205, 73, 117}, {206, 74, 117},
{207, 75, 116}, {208, 77, 115}, {209, 78, 114}, {209, 79, 113},
{210, 80, 112}, {211, 81, 111}, {212, 82, 110}, {213, 83, 109},
{214, 85, 109}, {215, 86, 108}, {215, 87, 107}, {216, 88, 106},
{217, 89, 105}, {218, 90, 104}, {219, 91, 103}, {220, 93, 102},
{220, 94, 102}, {221, 95, 101}, {222, 96, 100}, {223, 97, 99},
{223, 98, 98}, {224, 100, 97}, {225, 101, 96}, {226, 102, 96},
{227, 103, 95}, {227, 104, 94}, {228, 106, 93}, {229, 107, 92},
{229, 108, 91}, {230, 109, 90}, {231, 110, 90}, {232, 112, 89},
{232, 113, 88}, {233, 114, 87}, {234, 115, 86}, {234, 116, 85},
{235, 118, 84}, {236, 119, 84}, {236, 120, 83}, {237, 121, 82},
{237, 123, 81}, {238, 124, 80}, {239, 125, 79}, {239, 126, 78},
{240, 128, 77}, {240, 129, 77}, {241, 130, 76}, {242, 132, 75},
{242, 133, 74}, {243, 134, 73}, {243, 135, 72}, {244, 137, 71},
{244, 138, 71}, {245, 139, 70}, {245, 141, 69}, {246, 142, 68},
{246, 143, 67}, {246, 145, 66}, {247, 146, 65}, {247, 147, 65},
{248, 149, 64}, {248, 150, 63}, {248, 152, 62}, {249, 153, 61},
{249, 154, 60}, {250, 156, 59}, {250, 157, 58}, {250, 159, 58},
{250, 160, 57}, {251, 162, 56}, {251, 163, 55}, {251, 164, 54},
{252, 166, 53}, {252, 167, 53}, {252, 169, 52}, {252, 170, 51},
{252, 172, 50}, {252, 173, 49}, {253, 175, 49}, {253, 176, 48},
{253, 178, 47}, {253, 179, 46}, {253, 181, 45}, {253, 182, 45},
{253, 184, 44}, {253, 185, 43}, {253, 187, 43}, {253, 188, 42},
{253, 190, 41}, {253, 192, 41}, {253, 193, 40}, {253, 195, 40},
{253, 196, 39}, {253, 198, 38}, {252, 199, 38}, {252, 201, 38},
{252, 203, 37}, {252, 204, 37}, {252, 206, 37}, {251, 208, 36},
{251, 209, 36}, {251, 211, 36}, {250, 213, 36}, {250, 214, 36},
{250, 216, 36}, {249, 217, 36}, {249, 219, 36}, {248, 221, 36},
{248, 223, 36}, {247, 224, 36}, {247, 226, 37}, {246, 228, 37},
{246, 229, 37}, {245, 231, 38}, {245, 233, 38}, {244, 234, 38},
{243, 236, 38}, {243, 238, 38}, {242, 240, 38}, {242, 241, 38},
{241, 243, 38}, {240, 245, 37}, {240, 246, 35}, {239, 248, 33}
};
/* Generated with Implementation/colormap-to-srgb.py */
constexpr UnsignedByte Inferno[][3] = {
{ 0, 0, 3}, { 0, 0, 4}, { 0, 0, 6}, { 1, 0, 7},
{ 1, 1, 9}, { 1, 1, 11}, { 2, 1, 14}, { 2, 2, 16},
{ 3, 2, 18}, { 4, 3, 20}, { 4, 3, 22}, { 5, 4, 24},
{ 6, 4, 27}, { 7, 5, 29}, { 8, 6, 31}, { 9, 6, 33},
{ 10, 7, 35}, { 11, 7, 38}, { 13, 8, 40}, { 14, 8, 42},
{ 15, 9, 45}, { 16, 9, 47}, { 18, 10, 50}, { 19, 10, 52},
{ 20, 11, 54}, { 22, 11, 57}, { 23, 11, 59}, { 25, 11, 62},
{ 26, 11, 64}, { 28, 12, 67}, { 29, 12, 69}, { 31, 12, 71},
{ 32, 12, 74}, { 34, 11, 76}, { 36, 11, 78}, { 38, 11, 80},
{ 39, 11, 82}, { 41, 11, 84}, { 43, 10, 86}, { 45, 10, 88},
{ 46, 10, 90}, { 48, 10, 92}, { 50, 9, 93}, { 52, 9, 95},
{ 53, 9, 96}, { 55, 9, 97}, { 57, 9, 98}, { 59, 9, 100},
{ 60, 9, 101}, { 62, 9, 102}, { 64, 9, 102}, { 65, 9, 103},
{ 67, 10, 104}, { 69, 10, 105}, { 70, 10, 105}, { 72, 11, 106},
{ 74, 11, 106}, { 75, 12, 107}, { 77, 12, 107}, { 79, 13, 108},
{ 80, 13, 108}, { 82, 14, 108}, { 83, 14, 109}, { 85, 15, 109},
{ 87, 15, 109}, { 88, 16, 109}, { 90, 17, 109}, { 91, 17, 110},
{ 93, 18, 110}, { 95, 18, 110}, { 96, 19, 110}, { 98, 20, 110},
{ 99, 20, 110}, {101, 21, 110}, {102, 21, 110}, {104, 22, 110},
{106, 23, 110}, {107, 23, 110}, {109, 24, 110}, {110, 24, 110},
{112, 25, 110}, {114, 25, 109}, {115, 26, 109}, {117, 27, 109},
{118, 27, 109}, {120, 28, 109}, {122, 28, 109}, {123, 29, 108},
{125, 29, 108}, {126, 30, 108}, {128, 31, 107}, {129, 31, 107},
{131, 32, 107}, {133, 32, 106}, {134, 33, 106}, {136, 33, 106},
{137, 34, 105}, {139, 34, 105}, {141, 35, 105}, {142, 36, 104},
{144, 36, 104}, {145, 37, 103}, {147, 37, 103}, {149, 38, 102},
{150, 38, 102}, {152, 39, 101}, {153, 40, 100}, {155, 40, 100},
{156, 41, 99}, {158, 41, 99}, {160, 42, 98}, {161, 43, 97},
{163, 43, 97}, {164, 44, 96}, {166, 44, 95}, {167, 45, 95},
{169, 46, 94}, {171, 46, 93}, {172, 47, 92}, {174, 48, 91},
{175, 49, 91}, {177, 49, 90}, {178, 50, 89}, {180, 51, 88},
{181, 51, 87}, {183, 52, 86}, {184, 53, 86}, {186, 54, 85},
{187, 55, 84}, {189, 55, 83}, {190, 56, 82}, {191, 57, 81},
{193, 58, 80}, {194, 59, 79}, {196, 60, 78}, {197, 61, 77},
{199, 62, 76}, {200, 62, 75}, {201, 63, 74}, {203, 64, 73},
{204, 65, 72}, {205, 66, 71}, {207, 68, 70}, {208, 69, 68},
{209, 70, 67}, {210, 71, 66}, {212, 72, 65}, {213, 73, 64},
{214, 74, 63}, {215, 75, 62}, {217, 77, 61}, {218, 78, 59},
{219, 79, 58}, {220, 80, 57}, {221, 82, 56}, {222, 83, 55},
{223, 84, 54}, {224, 86, 52}, {226, 87, 51}, {227, 88, 50},
{228, 90, 49}, {229, 91, 48}, {230, 92, 46}, {230, 94, 45},
{231, 95, 44}, {232, 97, 43}, {233, 98, 42}, {234, 100, 40},
{235, 101, 39}, {236, 103, 38}, {237, 104, 37}, {237, 106, 35},
{238, 108, 34}, {239, 109, 33}, {240, 111, 31}, {240, 112, 30},
{241, 114, 29}, {242, 116, 28}, {242, 117, 26}, {243, 119, 25},
{243, 121, 24}, {244, 122, 22}, {245, 124, 21}, {245, 126, 20},
{246, 128, 18}, {246, 129, 17}, {247, 131, 16}, {247, 133, 14},
{248, 135, 13}, {248, 136, 12}, {248, 138, 11}, {249, 140, 9},
{249, 142, 8}, {249, 144, 8}, {250, 145, 7}, {250, 147, 6},
{250, 149, 6}, {250, 151, 6}, {251, 153, 6}, {251, 155, 6},
{251, 157, 6}, {251, 158, 7}, {251, 160, 7}, {251, 162, 8},
{251, 164, 10}, {251, 166, 11}, {251, 168, 13}, {251, 170, 14},
{251, 172, 16}, {251, 174, 18}, {251, 176, 20}, {251, 177, 22},
{251, 179, 24}, {251, 181, 26}, {251, 183, 28}, {251, 185, 30},
{250, 187, 33}, {250, 189, 35}, {250, 191, 37}, {250, 193, 40},
{249, 195, 42}, {249, 197, 44}, {249, 199, 47}, {248, 201, 49},
{248, 203, 52}, {248, 205, 55}, {247, 207, 58}, {247, 209, 60},
{246, 211, 63}, {246, 213, 66}, {245, 215, 69}, {245, 217, 72},
{244, 219, 75}, {244, 220, 79}, {243, 222, 82}, {243, 224, 86},
{243, 226, 89}, {242, 228, 93}, {242, 230, 96}, {241, 232, 100},
{241, 233, 104}, {241, 235, 108}, {241, 237, 112}, {241, 238, 116},
{241, 240, 121}, {241, 242, 125}, {242, 243, 129}, {242, 244, 133},
{243, 246, 137}, {244, 247, 141}, {245, 248, 145}, {246, 250, 149},
{247, 251, 153}, {249, 252, 157}, {250, 253, 160}, {252, 254, 164}
};
/* Generated with Implementation/colormap-to-srgb.py */
constexpr UnsignedByte Viridis[][3] = {
{ 68, 1, 84}, { 68, 2, 85}, { 68, 3, 87}, { 69, 5, 88},
{ 69, 6, 90}, { 69, 8, 91}, { 70, 9, 92}, { 70, 11, 94},
{ 70, 12, 95}, { 70, 14, 97}, { 71, 15, 98}, { 71, 17, 99},
{ 71, 18, 101}, { 71, 20, 102}, { 71, 21, 103}, { 71, 22, 105},
{ 71, 24, 106}, { 72, 25, 107}, { 72, 26, 108}, { 72, 28, 110},
{ 72, 29, 111}, { 72, 30, 112}, { 72, 32, 113}, { 72, 33, 114},
{ 72, 34, 115}, { 72, 35, 116}, { 71, 37, 117}, { 71, 38, 118},
{ 71, 39, 119}, { 71, 40, 120}, { 71, 42, 121}, { 71, 43, 122},
{ 71, 44, 123}, { 70, 45, 124}, { 70, 47, 124}, { 70, 48, 125},
{ 70, 49, 126}, { 69, 50, 127}, { 69, 52, 127}, { 69, 53, 128},
{ 69, 54, 129}, { 68, 55, 129}, { 68, 57, 130}, { 67, 58, 131},
{ 67, 59, 131}, { 67, 60, 132}, { 66, 61, 132}, { 66, 62, 133},
{ 66, 64, 133}, { 65, 65, 134}, { 65, 66, 134}, { 64, 67, 135},
{ 64, 68, 135}, { 63, 69, 135}, { 63, 71, 136}, { 62, 72, 136},
{ 62, 73, 137}, { 61, 74, 137}, { 61, 75, 137}, { 61, 76, 137},
{ 60, 77, 138}, { 60, 78, 138}, { 59, 80, 138}, { 59, 81, 138},
{ 58, 82, 139}, { 58, 83, 139}, { 57, 84, 139}, { 57, 85, 139},
{ 56, 86, 139}, { 56, 87, 140}, { 55, 88, 140}, { 55, 89, 140},
{ 54, 90, 140}, { 54, 91, 140}, { 53, 92, 140}, { 53, 93, 140},
{ 52, 94, 141}, { 52, 95, 141}, { 51, 96, 141}, { 51, 97, 141},
{ 50, 98, 141}, { 50, 99, 141}, { 49, 100, 141}, { 49, 101, 141},
{ 49, 102, 141}, { 48, 103, 141}, { 48, 104, 141}, { 47, 105, 141},
{ 47, 106, 141}, { 46, 107, 142}, { 46, 108, 142}, { 46, 109, 142},
{ 45, 110, 142}, { 45, 111, 142}, { 44, 112, 142}, { 44, 113, 142},
{ 44, 114, 142}, { 43, 115, 142}, { 43, 116, 142}, { 42, 117, 142},
{ 42, 118, 142}, { 42, 119, 142}, { 41, 120, 142}, { 41, 121, 142},
{ 40, 122, 142}, { 40, 122, 142}, { 40, 123, 142}, { 39, 124, 142},
{ 39, 125, 142}, { 39, 126, 142}, { 38, 127, 142}, { 38, 128, 142},
{ 38, 129, 142}, { 37, 130, 142}, { 37, 131, 141}, { 36, 132, 141},
{ 36, 133, 141}, { 36, 134, 141}, { 35, 135, 141}, { 35, 136, 141},
{ 35, 137, 141}, { 34, 137, 141}, { 34, 138, 141}, { 34, 139, 141},
{ 33, 140, 141}, { 33, 141, 140}, { 33, 142, 140}, { 32, 143, 140},
{ 32, 144, 140}, { 32, 145, 140}, { 31, 146, 140}, { 31, 147, 139},
{ 31, 148, 139}, { 31, 149, 139}, { 31, 150, 139}, { 30, 151, 138},
{ 30, 152, 138}, { 30, 153, 138}, { 30, 153, 138}, { 30, 154, 137},
{ 30, 155, 137}, { 30, 156, 137}, { 30, 157, 136}, { 30, 158, 136},
{ 30, 159, 136}, { 30, 160, 135}, { 31, 161, 135}, { 31, 162, 134},
{ 31, 163, 134}, { 32, 164, 133}, { 32, 165, 133}, { 33, 166, 133},
{ 33, 167, 132}, { 34, 167, 132}, { 35, 168, 131}, { 35, 169, 130},
{ 36, 170, 130}, { 37, 171, 129}, { 38, 172, 129}, { 39, 173, 128},
{ 40, 174, 127}, { 41, 175, 127}, { 42, 176, 126}, { 43, 177, 125},
{ 44, 177, 125}, { 46, 178, 124}, { 47, 179, 123}, { 48, 180, 122},
{ 50, 181, 122}, { 51, 182, 121}, { 53, 183, 120}, { 54, 184, 119},
{ 56, 185, 118}, { 57, 185, 118}, { 59, 186, 117}, { 61, 187, 116},
{ 62, 188, 115}, { 64, 189, 114}, { 66, 190, 113}, { 68, 190, 112},
{ 69, 191, 111}, { 71, 192, 110}, { 73, 193, 109}, { 75, 194, 108},
{ 77, 194, 107}, { 79, 195, 105}, { 81, 196, 104}, { 83, 197, 103},
{ 85, 198, 102}, { 87, 198, 101}, { 89, 199, 100}, { 91, 200, 98},
{ 94, 201, 97}, { 96, 201, 96}, { 98, 202, 95}, {100, 203, 93},
{103, 204, 92}, {105, 204, 91}, {107, 205, 89}, {109, 206, 88},
{112, 206, 86}, {114, 207, 85}, {116, 208, 84}, {119, 208, 82},
{121, 209, 81}, {124, 210, 79}, {126, 210, 78}, {129, 211, 76},
{131, 211, 75}, {134, 212, 73}, {136, 213, 71}, {139, 213, 70},
{141, 214, 68}, {144, 214, 67}, {146, 215, 65}, {149, 215, 63},
{151, 216, 62}, {154, 216, 60}, {157, 217, 58}, {159, 217, 56},
{162, 218, 55}, {165, 218, 53}, {167, 219, 51}, {170, 219, 50},
{173, 220, 48}, {175, 220, 46}, {178, 221, 44}, {181, 221, 43},
{183, 221, 41}, {186, 222, 39}, {189, 222, 38}, {191, 223, 36},
{194, 223, 34}, {197, 223, 33}, {199, 224, 31}, {202, 224, 30},
{205, 224, 29}, {207, 225, 28}, {210, 225, 27}, {212, 225, 26},
{215, 226, 25}, {218, 226, 24}, {220, 226, 24}, {223, 227, 24},
{225, 227, 24}, {228, 227, 24}, {231, 228, 25}, {233, 228, 25},
{236, 228, 26}, {238, 229, 27}, {241, 229, 28}, {243, 229, 30},
{246, 230, 31}, {248, 230, 33}, {250, 230, 34}, {253, 231, 36}
};
/* Generated with Implementation/cool-warm.py */
constexpr UnsignedByte CoolWarmSmooth[][3] = {
{ 85, 72, 193}, { 86, 74, 194}, { 88, 76, 196}, { 89, 78, 198},
{ 90, 79, 199}, { 91, 81, 201}, { 92, 83, 202}, { 93, 85, 204},
{ 94, 87, 205}, { 95, 88, 207}, { 96, 90, 208}, { 97, 92, 209},
{ 98, 94, 211}, { 99, 95, 212}, {100, 97, 214}, {102, 99, 215},
{103, 101, 216}, {104, 102, 218}, {105, 104, 219}, {106, 106, 220},
{107, 107, 221}, {108, 109, 223}, {109, 111, 224}, {110, 113, 225},
{111, 114, 226}, {112, 116, 227}, {113, 118, 228}, {115, 119, 230},
{116, 121, 231}, {117, 123, 232}, {118, 124, 233}, {119, 126, 234},
{120, 127, 235}, {121, 129, 236}, {122, 131, 237}, {123, 132, 238},
{125, 134, 238}, {126, 135, 239}, {127, 137, 240}, {128, 139, 241},
{129, 140, 242}, {130, 142, 243}, {131, 143, 243}, {132, 145, 244},
{133, 146, 245}, {135, 148, 246}, {136, 149, 246}, {137, 151, 247},
{138, 152, 248}, {139, 154, 248}, {140, 155, 249}, {141, 157, 249},
{142, 158, 250}, {144, 160, 250}, {145, 161, 251}, {146, 162, 251},
{147, 164, 252}, {148, 165, 252}, {149, 166, 253}, {150, 168, 253},
{151, 169, 253}, {153, 170, 254}, {154, 172, 254}, {155, 173, 254},
{156, 174, 254}, {157, 176, 255}, {158, 177, 255}, {159, 178, 255},
{160, 179, 255}, {162, 181, 255}, {163, 182, 255}, {164, 183, 255},
{165, 184, 255}, {166, 185, 255}, {167, 186, 255}, {168, 187, 255},
{169, 189, 255}, {171, 190, 255}, {172, 191, 255}, {173, 192, 255},
{174, 193, 255}, {175, 194, 255}, {176, 195, 255}, {177, 196, 254},
{178, 197, 254}, {179, 198, 254}, {180, 199, 253}, {182, 200, 253},
{183, 201, 253}, {184, 201, 252}, {185, 202, 252}, {186, 203, 252},
{187, 204, 251}, {188, 205, 251}, {189, 206, 250}, {190, 206, 250},
{191, 207, 249}, {192, 208, 249}, {193, 209, 248}, {194, 209, 247},
{195, 210, 247}, {196, 211, 246}, {197, 211, 245}, {198, 212, 245},
{199, 212, 244}, {200, 213, 243}, {201, 214, 242}, {202, 214, 242},
{203, 215, 241}, {204, 215, 240}, {205, 216, 239}, {206, 216, 238},
{207, 217, 237}, {208, 217, 236}, {209, 217, 235}, {210, 218, 234},
{211, 218, 233}, {212, 218, 232}, {213, 219, 231}, {214, 219, 230},
{214, 219, 229}, {215, 220, 228}, {216, 220, 227}, {217, 220, 226},
{218, 220, 225}, {219, 220, 224}, {219, 220, 222}, {220, 221, 221},
{221, 220, 220}, {222, 220, 219}, {223, 220, 217}, {224, 219, 216},
{225, 219, 214}, {226, 218, 213}, {227, 217, 211}, {227, 217, 210},
{228, 216, 209}, {229, 216, 207}, {230, 215, 206}, {231, 214, 204},
{231, 214, 203}, {232, 213, 201}, {233, 212, 200}, {233, 211, 198},
{234, 211, 197}, {235, 210, 195}, {235, 209, 194}, {236, 208, 192},
{236, 207, 190}, {237, 207, 189}, {237, 206, 187}, {238, 205, 186},
{238, 204, 184}, {239, 203, 183}, {239, 202, 181}, {240, 201, 180},
{240, 200, 178}, {240, 199, 177}, {241, 198, 175}, {241, 197, 173},
{241, 196, 172}, {242, 195, 170}, {242, 194, 169}, {242, 193, 167},
{242, 191, 166}, {243, 190, 164}, {243, 189, 162}, {243, 188, 161},
{243, 187, 159}, {243, 185, 158}, {243, 184, 156}, {243, 183, 154},
{243, 182, 153}, {243, 180, 151}, {243, 179, 150}, {243, 178, 148},
{243, 176, 147}, {243, 175, 145}, {243, 174, 143}, {243, 172, 142},
{243, 171, 140}, {243, 169, 139}, {243, 168, 137}, {242, 167, 136},
{242, 165, 134}, {242, 164, 133}, {242, 162, 131}, {241, 161, 129},
{241, 159, 128}, {241, 158, 126}, {240, 156, 125}, {240, 154, 123},
{240, 153, 122}, {239, 151, 120}, {239, 150, 119}, {238, 148, 117},
{238, 146, 116}, {237, 145, 114}, {237, 143, 113}, {236, 141, 111},
{236, 140, 110}, {235, 138, 108}, {235, 136, 107}, {234, 134, 105},
{234, 133, 104}, {233, 131, 102}, {232, 129, 101}, {232, 127, 99},
{231, 126, 98}, {230, 124, 97}, {229, 122, 95}, {229, 120, 94},
{228, 118, 92}, {227, 116, 91}, {226, 114, 89}, {225, 112, 88},
{224, 111, 87}, {224, 109, 85}, {223, 107, 84}, {222, 105, 83},
{221, 103, 81}, {220, 101, 80}, {219, 99, 78}, {218, 97, 77},
{217, 95, 76}, {216, 93, 75}, {215, 91, 73}, {214, 88, 72},
{213, 86, 71}, {212, 84, 69}, {210, 82, 68}, {209, 80, 67},
{208, 78, 66}, {207, 75, 64}, {206, 73, 63}, {205, 71, 62},
{203, 68, 61}, {202, 66, 59}, {201, 64, 58}, {200, 61, 57},
{198, 59, 56}, {197, 56, 55}, {196, 54, 54}, {194, 51, 52},
{193, 48, 51}, {192, 45, 50}, {190, 42, 49}, {189, 39, 48},
{187, 36, 47}, {186, 33, 46}, {185, 29, 45}, {183, 25, 44},
{182, 20, 43}, {180, 15, 41}, {179, 8, 40}, {177, 1, 39}
};
/* Generated with Implementation/cool-warm.py */
constexpr UnsignedByte CoolWarmBent[][3] = {
{ 85, 72, 193}, { 86, 74, 194}, { 87, 75, 194}, { 88, 77, 195},
{ 88, 78, 196}, { 89, 79, 196}, { 90, 81, 197}, { 90, 82, 197},
{ 91, 84, 198}, { 92, 85, 199}, { 93, 87, 199}, { 94, 88, 200},
{ 94, 90, 200}, { 95, 91, 201}, { 96, 92, 202}, { 97, 94, 202},
{ 98, 95, 203}, { 98, 97, 203}, { 99, 98, 204}, {100, 99, 204},
{101, 101, 205}, {102, 102, 206}, {103, 104, 206}, {104, 105, 207},
{104, 106, 207}, {105, 108, 208}, {106, 109, 208}, {107, 110, 209},
{108, 112, 209}, {109, 113, 210}, {110, 115, 210}, {111, 116, 211},
{112, 117, 211}, {113, 119, 212}, {114, 120, 212}, {115, 121, 213},
{116, 123, 213}, {117, 124, 214}, {118, 125, 214}, {119, 127, 215},
{120, 128, 215}, {121, 129, 215}, {122, 131, 216}, {123, 132, 216},
{124, 134, 217}, {125, 135, 217}, {126, 136, 218}, {127, 138, 218},
{128, 139, 218}, {129, 140, 219}, {130, 142, 219}, {132, 143, 220},
{133, 144, 220}, {134, 146, 221}, {135, 147, 221}, {136, 148, 221},
{137, 150, 222}, {138, 151, 222}, {140, 152, 222}, {141, 154, 223},
{142, 155, 223}, {143, 156, 224}, {144, 158, 224}, {146, 159, 224},
{147, 160, 225}, {148, 162, 225}, {149, 163, 225}, {151, 164, 226},
{152, 166, 226}, {153, 167, 226}, {154, 168, 227}, {156, 170, 227},
{157, 171, 227}, {158, 172, 228}, {160, 174, 228}, {161, 175, 228},
{162, 176, 229}, {164, 177, 229}, {165, 179, 229}, {166, 180, 230},
{168, 181, 230}, {169, 183, 230}, {170, 184, 230}, {172, 185, 231},
{173, 187, 231}, {175, 188, 231}, {176, 189, 232}, {177, 191, 232},
{179, 192, 232}, {180, 193, 232}, {182, 194, 233}, {183, 196, 233},
{185, 197, 233}, {186, 198, 234}, {188, 200, 234}, {189, 201, 234},
{191, 202, 234}, {192, 204, 235}, {194, 205, 235}, {195, 206, 235},
{197, 207, 235}, {198, 209, 236}, {200, 210, 236}, {201, 211, 236},
{203, 213, 236}, {205, 214, 237}, {206, 215, 237}, {208, 216, 237},
{209, 218, 237}, {211, 219, 238}, {213, 220, 238}, {214, 221, 238},
{216, 223, 238}, {217, 224, 239}, {219, 225, 239}, {221, 227, 239},
{222, 228, 239}, {224, 229, 240}, {226, 230, 240}, {227, 232, 240},
{229, 233, 240}, {231, 234, 241}, {233, 235, 241}, {234, 237, 241},
{236, 238, 241}, {238, 239, 242}, {240, 240, 242}, {241, 242, 242},
{242, 242, 241}, {242, 240, 239}, {241, 239, 237}, {241, 237, 235},
{240, 236, 232}, {240, 234, 230}, {239, 233, 228}, {239, 231, 226},
{239, 230, 224}, {238, 228, 221}, {238, 226, 219}, {237, 225, 217},
{237, 223, 215}, {237, 222, 213}, {236, 220, 211}, {236, 219, 209},
{235, 217, 207}, {235, 216, 205}, {234, 214, 203}, {234, 213, 200},
{234, 211, 198}, {233, 210, 196}, {233, 208, 194}, {232, 207, 192},
{232, 205, 190}, {231, 204, 188}, {231, 202, 186}, {231, 201, 184},
{230, 199, 182}, {230, 198, 180}, {229, 196, 178}, {229, 195, 176},
{228, 193, 175}, {228, 192, 173}, {228, 190, 171}, {227, 188, 169},
{227, 187, 167}, {226, 185, 165}, {226, 184, 163}, {225, 182, 161},
{225, 181, 159}, {224, 179, 158}, {224, 178, 156}, {224, 176, 154},
{223, 175, 152}, {223, 173, 150}, {222, 171, 148}, {222, 170, 147},
{221, 168, 145}, {221, 167, 143}, {220, 165, 141}, {220, 164, 140},
{219, 162, 138}, {219, 161, 136}, {219, 159, 134}, {218, 157, 133},
{218, 156, 131}, {217, 154, 129}, {217, 153, 128}, {216, 151, 126},
{216, 149, 124}, {215, 148, 123}, {215, 146, 121}, {214, 145, 119},
{214, 143, 118}, {213, 141, 116}, {213, 140, 115}, {212, 138, 113},
{212, 137, 111}, {211, 135, 110}, {211, 133, 108}, {210, 132, 107},
{210, 130, 105}, {209, 129, 104}, {209, 127, 102}, {208, 125, 101},
{208, 124, 99}, {207, 122, 98}, {207, 120, 96}, {206, 119, 95},
{206, 117, 93}, {205, 115, 92}, {205, 114, 91}, {204, 112, 89},
{203, 110, 88}, {203, 109, 86}, {202, 107, 85}, {202, 105, 84},
{201, 103, 82}, {201, 102, 81}, {200, 100, 80}, {200, 98, 78},
{199, 96, 77}, {198, 95, 76}, {198, 93, 74}, {197, 91, 73},
{197, 89, 72}, {196, 87, 71}, {196, 86, 69}, {195, 84, 68},
{194, 82, 67}, {194, 80, 66}, {193, 78, 65}, {193, 76, 63},
{192, 74, 62}, {191, 72, 61}, {191, 70, 60}, {190, 68, 59},
{189, 66, 58}, {189, 64, 57}, {188, 62, 56}, {188, 59, 55},
{187, 57, 54}, {186, 55, 53}, {186, 52, 52}, {185, 50, 50},
{184, 47, 49}, {184, 45, 49}, {183, 42, 48}, {182, 39, 47},
{182, 36, 46}, {181, 33, 45}, {181, 29, 44}, {180, 25, 43},
{179, 21, 42}, {178, 15, 41}, {178, 8, 40}, {177, 1, 39}
};
static_assert(sizeof(Turbo) == 256*3, "");
static_assert(sizeof(Magma) == 256*3, "");
static_assert(sizeof(Plasma) == 256*3, "");
static_assert(sizeof(Inferno) == 256*3, "");
static_assert(sizeof(Viridis) == 256*3, "");
static_assert(sizeof(CoolWarmSmooth) == 256*3, "");
static_assert(sizeof(CoolWarmBent) == 256*3, "");
}
Containers::StaticArrayView<256, const Vector3ub> turbo() {
return Containers::StaticArrayView<256, const Vector3ub>{reinterpret_cast<const Vector3ub*>(&Turbo[0][0])};
}
Containers::StaticArrayView<256, const Vector3ub> magma() {
return Containers::StaticArrayView<256, const Vector3ub>{reinterpret_cast<const Vector3ub*>(&Magma[0][0])};
}
Containers::StaticArrayView<256, const Vector3ub> plasma() {
return Containers::StaticArrayView<256, const Vector3ub>{reinterpret_cast<const Vector3ub*>(&Plasma[0][0])};
}
Containers::StaticArrayView<256, const Vector3ub> inferno() {
return Containers::StaticArrayView<256, const Vector3ub>{reinterpret_cast<const Vector3ub*>(&Inferno[0][0])};
}
Containers::StaticArrayView<256, const Vector3ub> viridis() {
return Containers::StaticArrayView<256, const Vector3ub>{reinterpret_cast<const Vector3ub*>(&Viridis[0][0])};
}
Containers::StaticArrayView<256, const Vector3ub> coolWarmSmooth() {
return Containers::StaticArrayView<256, const Vector3ub>{reinterpret_cast<const Vector3ub*>(&CoolWarmSmooth[0][0])};
}
Containers::StaticArrayView<256, const Vector3ub> coolWarmBent() {
return Containers::StaticArrayView<256, const Vector3ub>{reinterpret_cast<const Vector3ub*>(&CoolWarmBent[0][0])};
}
}}}