summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorBastiaan Olij <mux213@gmail.com>2020-06-02 20:31:24 +1000
committerGitHub <noreply@github.com>2020-06-02 20:31:24 +1000
commite2a5fdee3bbd7223ba7e7013e90486723a7de15c (patch)
tree54a97da55050726761810f8b0855f92fea82deb7 /src/core
parente97e86648355cbe61c6249483c6f2a5d1b41714f (diff)
parent0f4ea6cc35b4c653a156d9025b3125952dd04ae4 (diff)
downloadredot-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.cpp118
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