diff options
| author | Bastiaan Olij <mux213@gmail.com> | 2020-06-02 20:31:24 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-02 20:31:24 +1000 |
| commit | e2a5fdee3bbd7223ba7e7013e90486723a7de15c (patch) | |
| tree | 54a97da55050726761810f8b0855f92fea82deb7 /src/core | |
| parent | e97e86648355cbe61c6249483c6f2a5d1b41714f (diff) | |
| parent | 0f4ea6cc35b4c653a156d9025b3125952dd04ae4 (diff) | |
| download | redot-cpp-e2a5fdee3bbd7223ba7e7013e90486723a7de15c.tar.gz | |
Merge pull request #406 from Zylann/color_operators
Added missing Color operators
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/Color.cpp | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/src/core/Color.cpp b/src/core/Color.cpp index f6a061a..23b77eb 100644 --- a/src/core/Color.cpp +++ b/src/core/Color.cpp @@ -527,4 +527,122 @@ bool Color::operator<(const Color &p_color) const { return r < p_color.r; } +Color Color::operator+(const Color &p_color) const { + + return Color( + r + p_color.r, + g + p_color.g, + b + p_color.b, + a + p_color.a); +} + +void Color::operator+=(const Color &p_color) { + + r = r + p_color.r; + g = g + p_color.g; + b = b + p_color.b; + a = a + p_color.a; +} + +Color Color::operator-(const Color &p_color) const { + + return Color( + r - p_color.r, + g - p_color.g, + b - p_color.b, + a - p_color.a); +} + +void Color::operator-=(const Color &p_color) { + + r = r - p_color.r; + g = g - p_color.g; + b = b - p_color.b; + a = a - p_color.a; +} + +Color Color::operator*(const Color &p_color) const { + + return Color( + r * p_color.r, + g * p_color.g, + b * p_color.b, + a * p_color.a); +} + +Color Color::operator*(const real_t &rvalue) const { + + return Color( + r * rvalue, + g * rvalue, + b * rvalue, + a * rvalue); +} + +void Color::operator*=(const Color &p_color) { + + r = r * p_color.r; + g = g * p_color.g; + b = b * p_color.b; + a = a * p_color.a; +} + +void Color::operator*=(const real_t &rvalue) { + + r = r * rvalue; + g = g * rvalue; + b = b * rvalue; + a = a * rvalue; +} + +Color Color::operator/(const Color &p_color) const { + + return Color( + r / p_color.r, + g / p_color.g, + b / p_color.b, + a / p_color.a); +} + +Color Color::operator/(const real_t &rvalue) const { + + return Color( + r / rvalue, + g / rvalue, + b / rvalue, + a / rvalue); +} + +void Color::operator/=(const Color &p_color) { + + r = r / p_color.r; + g = g / p_color.g; + b = b / p_color.b; + a = a / p_color.a; +} + +void Color::operator/=(const real_t &rvalue) { + + if (rvalue == 0) { + r = 1.0; + g = 1.0; + b = 1.0; + a = 1.0; + } else { + r = r / rvalue; + g = g / rvalue; + b = b / rvalue; + a = a / rvalue; + } +} + +Color Color::operator-() const { + + return Color( + 1.0 - r, + 1.0 - g, + 1.0 - b, + 1.0 - a); +} + } // namespace godot |
