Add operator overloads for Color taking Color references
This commit is contained in:
parent
cae8b21068
commit
dea1967344
2 changed files with 87 additions and 0 deletions
|
@ -391,3 +391,78 @@ Color::operator=(const Color &rhs)
|
||||||
alpha = rhs.alpha;
|
alpha = rhs.alpha;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Color &
|
||||||
|
Color::operator*=(const Color &rhs)
|
||||||
|
{
|
||||||
|
red *= rhs.red;
|
||||||
|
green *= rhs.green;
|
||||||
|
blue *= rhs.blue;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Color &
|
||||||
|
Color::operator/=(const Color &rhs)
|
||||||
|
{
|
||||||
|
red *= (1.0 / rhs.red);
|
||||||
|
green *= (1.0 / rhs.green);
|
||||||
|
blue *= (1.0 / rhs.blue);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Color &
|
||||||
|
Color::operator+=(const Color &rhs)
|
||||||
|
{
|
||||||
|
red += rhs.red;
|
||||||
|
green += rhs.green;
|
||||||
|
blue += rhs.blue;
|
||||||
|
alpha += rhs.alpha;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Color &
|
||||||
|
Color::operator-=(const Color &rhs)
|
||||||
|
{
|
||||||
|
red -= rhs.red;
|
||||||
|
green -= rhs.green;
|
||||||
|
blue -= rhs.blue;
|
||||||
|
alpha -= rhs.alpha;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Color
|
||||||
|
Color::operator*(const Color &rhs)
|
||||||
|
const
|
||||||
|
{
|
||||||
|
return Color(*this) *= rhs;
|
||||||
|
}
|
||||||
|
|
||||||
|
Color
|
||||||
|
Color::operator/(const Color &rhs)
|
||||||
|
const
|
||||||
|
{
|
||||||
|
return Color(*this) /= rhs;
|
||||||
|
}
|
||||||
|
|
||||||
|
Color
|
||||||
|
Color::operator+(const Color &rhs)
|
||||||
|
const
|
||||||
|
{
|
||||||
|
return Color(*this) += rhs;
|
||||||
|
}
|
||||||
|
|
||||||
|
Color
|
||||||
|
Color::operator-(const Color &rhs)
|
||||||
|
const
|
||||||
|
{
|
||||||
|
return Color(*this) -= rhs;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const Color
|
||||||
|
operator*(const float &lhs, const Color &rhs)
|
||||||
|
{
|
||||||
|
return rhs * lhs;
|
||||||
|
}
|
||||||
|
|
12
src/basics.h
12
src/basics.h
|
@ -72,6 +72,16 @@ struct Color
|
||||||
|
|
||||||
Color &operator=(const Color &rhs);
|
Color &operator=(const Color &rhs);
|
||||||
|
|
||||||
|
// These operators blend the two colors.
|
||||||
|
Color &operator*=(const Color &rhs);
|
||||||
|
Color &operator/=(const Color &rhs);
|
||||||
|
Color &operator+=(const Color &rhs);
|
||||||
|
Color &operator-=(const Color &rhs);
|
||||||
|
Color operator*(const Color &rhs) const;
|
||||||
|
Color operator/(const Color &rhs) const;
|
||||||
|
Color operator+(const Color &rhs) const;
|
||||||
|
Color operator-(const Color &rhs) const;
|
||||||
|
|
||||||
static const Color Black;
|
static const Color Black;
|
||||||
static const Color White;
|
static const Color White;
|
||||||
static const Color Red;
|
static const Color Red;
|
||||||
|
@ -81,4 +91,6 @@ struct Color
|
||||||
float red, green, blue, alpha;
|
float red, green, blue, alpha;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const Color operator*(const float &lhs, const Color &rhs);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue