65 constexpr double FACTOR = 1.0 / ((1 << 20) - 1);
76 static constexpr double HSVHue(
double r,
double g,
double b) {
77 double maxVal = std::max(r, std::max(g, b));
78 double minVal = std::min(r, std::min(g, b));
79 double chroma = maxVal - minVal;
81 if (chroma == 0.0)
return 0.0;
82 if (maxVal == r) {
return std::fmod(((g - b) / chroma), 6.0) / 6.0; }
83 if (maxVal == g) {
return (((b - r) / chroma) + 2) / 6.0; }
84 if (maxVal == b) {
return (((r - g) / chroma) + 4) / 6.0; }
96 double maxVal = std::max(r, std::max(g, b));
97 double minVal = std::min(r, std::min(g, b));
99 if (maxVal == 0)
return 0;
100 return (maxVal - minVal) / maxVal;
110 static constexpr double HSVValue(
double r,
double g,
double b) {
111 return std::max(r, std::max(g, b));
Definition Canandcolor.h:19
Definition ColorData.h:18
constexpr double GetHSVHue() const
Definition ColorData.h:39
static constexpr double HSVHue(double r, double g, double b)
Definition ColorData.h:76
double red
Definition ColorData.h:29
constexpr double GetHSVValue() const
Definition ColorData.h:55
double blue
Definition ColorData.h:33
double green
Definition ColorData.h:31
static constexpr double HSVSaturation(double r, double g, double b)
Definition ColorData.h:95
constexpr ColorData(double red, double green, double blue)
Definition ColorData.h:25
static constexpr double HSVValue(double r, double g, double b)
Definition ColorData.h:110
static constexpr ColorData FromColorMessage(details::msg::ColorOutput data)
Definition ColorData.h:64
constexpr double GetHSVSaturation() const
Definition ColorData.h:47
Definition CanandcolorDetails.h:1067
uint32_t green
Definition CanandcolorDetails.h:1073
uint32_t red
Definition CanandcolorDetails.h:1070
uint32_t blue
Definition CanandcolorDetails.h:1076