diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-03-01 19:37:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-01 19:37:58 +0100 |
commit | 8fbe644b6e6548dc2c9f9d675bc17f13b74e747b (patch) | |
tree | 73d7ac786f9261e7bff5596bc1fec71566a7a6bd | |
parent | da8eef486baad0e394cc66e9e9a5aff1452363b0 (diff) | |
parent | b59a06da25dcd10e40e368a850cd6370796a0336 (diff) |
Merge pull request #46423 from kleonc/color_from_hsv_fix
Make Color::from_hsv use Color::set_hsv
-rw-r--r-- | core/math/color.cpp | 53 |
1 files changed, 3 insertions, 50 deletions
diff --git a/core/math/color.cpp b/core/math/color.cpp index e1b45cac9c..8affb07e8c 100644 --- a/core/math/color.cpp +++ b/core/math/color.cpp @@ -452,56 +452,9 @@ String Color::to_html(bool p_alpha) const { } Color Color::from_hsv(float p_h, float p_s, float p_v, float p_a) const { - p_h = Math::fmod(p_h * 360.0f, 360.0f); - if (p_h < 0.0) { - p_h += 360.0f; - } - - const float h_ = p_h / 60.0f; - const float c = p_v * p_s; - const float x = c * (1.0f - Math::abs(Math::fmod(h_, 2.0f) - 1.0f)); - float r, g, b; - - switch ((int)h_) { - case 0: { - r = c; - g = x; - b = 0; - } break; - case 1: { - r = x; - g = c; - b = 0; - } break; - case 2: { - r = 0; - g = c; - b = x; - } break; - case 3: { - r = 0; - g = x; - b = c; - } break; - case 4: { - r = x; - g = 0; - b = c; - } break; - case 5: { - r = c; - g = 0; - b = x; - } break; - default: { - r = 0; - g = 0; - b = 0; - } break; - } - - const float m = p_v - c; - return Color(m + r, m + g, m + b, p_a); + Color c; + c.set_hsv(p_h, p_s, p_v, p_a); + return c; } Color::operator String() const { |