fixed compile errors
This commit is contained in:
parent
3934329c76
commit
c3e89e6e7d
16
Color.cpp
16
Color.cpp
@ -16,11 +16,11 @@ Color::Color(const HSB& hsb) {
|
|||||||
if (hsb.s == 0) {
|
if (hsb.s == 0) {
|
||||||
_rgb.r = _rgb.g = _rgb.b = hsb.b;
|
_rgb.r = _rgb.g = _rgb.b = hsb.b;
|
||||||
} else {
|
} else {
|
||||||
hi = fabs(hsb.h / 60);
|
int hi = static_cast<int>(round(fabs(hsb.h / 60)));
|
||||||
f = hsb.h / 60 - hi;
|
double f = hsb.h / 60 - hi;
|
||||||
p = hsb.b * (1 - hsb.s);
|
double p = hsb.b * (1 - hsb.s);
|
||||||
q = hsb.b * (1 - f * hsb.s);
|
double q = hsb.b * (1 - f * hsb.s);
|
||||||
t = hsb.b * (1- (1 - f) * s);
|
double t = hsb.b * (1- (1 - f) * hsb.s);
|
||||||
switch (hi) {
|
switch (hi) {
|
||||||
case 0:
|
case 0:
|
||||||
_rgb.r = hsb.b;
|
_rgb.r = hsb.b;
|
||||||
@ -60,10 +60,8 @@ Color::Color(const HSB& hsb) {
|
|||||||
|
|
||||||
Color::operator HSB() const {
|
Color::operator HSB() const {
|
||||||
HSB hsb;
|
HSB hsb;
|
||||||
bool r_is_max {_rgb.r > _rgb.g && _rgb.r > _rgb.b};
|
double rgb_max = std::max<double>({_rgb.r, _rgb.g, _rgb.b});
|
||||||
bool g_is_max {_rgb.g > _rgb.r && _rgb.g > _rgb.b};
|
double rgb_min = std::min<double>({_rgb.r, _rgb.g, _rgb.b});
|
||||||
double rgb_max = std::max<double>(_rgb.r, _rgb.g, _rgb.b);
|
|
||||||
double rgb_min = std::min<double>(_rgb.r, _rgb.g, _rgb.b);
|
|
||||||
double delta = rgb_max - rgb_min;
|
double delta = rgb_max - rgb_min;
|
||||||
if (_rgb.r > _rgb.g && _rgb.r > _rgb.b) { // red is max
|
if (_rgb.r > _rgb.g && _rgb.r > _rgb.b) { // red is max
|
||||||
hsb.h = ((_rgb.g - _rgb.b) / delta) * 60;
|
hsb.h = ((_rgb.g - _rgb.b) / delta) * 60;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user