library/src/Color.cpp

65 lines
1.5 KiB
C++
Raw Normal View History

#include "Color.hpp"
namespace vkvm {
constexpr int maxValue = 255;
Color::Color() noexcept
: red(0), green(0), blue(0) {}
Color::Color(int red, int green, int blue) noexcept {
setRed(red);
setGreen(green);
setBlue(blue);
}
2019-11-21 12:37:52 +01:00
Color::Color(unsigned int hex) noexcept {
red = static_cast<unsigned char>(hex >> 16 & 0xFF);
green = static_cast<unsigned char>(hex >> 8U & 0xFF);
blue = static_cast<unsigned char>((hex & 0xFF));
}
auto Color::getRed() -> unsigned char {
return red;
}
auto Color::getGreen() -> unsigned char {
return green;
}
auto Color::getBlue() -> unsigned char {
return blue;
}
auto Color::setRed(int value) -> void {
if(value > maxValue) {
value = maxValue;
}
red = value;
}
auto Color::setGreen(int value) -> void {
if(value > maxValue) {
value = maxValue;
}
green = value;
}
auto Color::setBlue(int value) -> void {
if(value > maxValue) {
value = maxValue;
}
blue = value;
}
2019-11-21 11:35:54 +01:00
bool Color::operator==(const Color &other) const {
return this->blue == other.blue && this->green == other.green && this->red == other.red;
}
bool Color::operator!=(const Color &other) const {
return this->blue != other.blue || this->green != other.green || this->red != other.red;
}
}