Skip to content

Studio/Visualization/ColorSchemes.h

Classes

Name
class ColorScheme
struct ColorScheme::rgb
class ColorSchemes

Source code

```cpp

pragma once

include

include

class ColorScheme { public: struct rgb { rgb() : r(1.0), g(1.0), b(1.0) {} rgb(float l, float m, float n) { float q = 255.0; // sqrt(ll + mm + n*n) + 1.0e-6; r = l / q; g = m / q; b = n / q; }

float r;
float g;
float b;

};

rgb foreground; rgb background; rgb alt;

//----------------------------------------------------------------------------- QColor background_qcolor(int alpha) { return QColor(background.r * 255, background.g * 255, background.b * 255, alpha); }

//----------------------------------------------------------------------------- QColor foreground_qcolor() { return QColor(foreground.r * 255, foreground.g * 255, foreground.b * 255, 255); }

//----------------------------------------------------------------------------- QColor get_text_color() { double average = (background.r + background.g + background.b) / 3.0;

double color = 255;
if (average > 0.5) {
  color = 0;
}
return QColor(color, color, color);

}

double get_text_intensity() { auto color = get_text_color(); if (color.red() == 0) { return 0; } return 1; }

ColorScheme() {} ~ColorScheme() {} };

class ColorSchemes : public std::vector { public: ColorSchemes() { ColorScheme a;

// orange on grey
a.foreground = ColorScheme::rgb(255, 191, 0);
a.background = ColorScheme::rgb(25, 25, 25);
a.alt = ColorScheme::rgb(245, 245, 220);
this->push_back(a);

// purple on grey
a.foreground = ColorScheme::rgb(128, 0, 32.0);
a.background = ColorScheme::rgb(25, 25, 25);
a.alt = ColorScheme::rgb(245, 245, 220);
this->push_back(a);

// blue on white
a.foreground = ColorScheme::rgb(0, 71, 171);
a.background = ColorScheme::rgb(245, 245, 245);
a.alt = ColorScheme::rgb(175, 64, 53);
this->push_back(a);

// orange on white
a.foreground = ColorScheme::rgb(255, 191, 0);
a.background = ColorScheme::rgb(255, 255, 255);
a.alt = ColorScheme::rgb(0, 223, 22);
this->push_back(a);

// grey on white
// For Black and White figures
a.foreground = ColorScheme::rgb(200, 200, 200);
a.background = ColorScheme::rgb(255, 255, 255);
a.alt = ColorScheme::rgb(80, 80, 80);
this->push_back(a);

// orange on blue
a.foreground = ColorScheme::rgb(255, 219, 88);
a.background = ColorScheme::rgb(0, 0, 128);
a.alt = ColorScheme::rgb(173, 255, 47);
this->push_back(a);

// yellow on grey
a.foreground = ColorScheme::rgb(240, 220, 130);
a.background = ColorScheme::rgb(25, 25, 25);
a.alt = ColorScheme::rgb(0, 223, 22);
this->push_back(a);

// grey on black
a.foreground = ColorScheme::rgb(200, 200, 200);
a.background = ColorScheme::rgb(0, 0, 0);
a.alt = ColorScheme::rgb(100, 100, 100);
this->push_back(a);

// blue on black
a.foreground = ColorScheme::rgb(0, 191, 255);
a.background = ColorScheme::rgb(0, 0, 0);
a.alt = ColorScheme::rgb(175, 64, 53);
this->push_back(a);

// green on black
a.foreground = ColorScheme::rgb(137, 232, 148);
a.background = ColorScheme::rgb(0, 0, 0);
a.alt = ColorScheme::rgb(175, 64, 53);
this->push_back(a);

} ~ColorSchemes() {} }; ```


Updated on 2026-03-31 at 16:02:11 +0000