44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
#include <VulcanoLE/Colors/ColorHelper.h>
|
|
|
|
namespace Color {
|
|
rgba Generator::rgbFromRatio(double ratio, int16_t alpha = 255) {
|
|
int normalized = int(ratio * 256 * 6);
|
|
int x = normalized % 256;
|
|
|
|
int16_t red = 0, green = 0, blue = 0;
|
|
switch (normalized / 256) {
|
|
case 0:
|
|
red = 255;
|
|
green = x;
|
|
blue = 0;
|
|
break;
|
|
case 1:
|
|
red = 255 - x;
|
|
green = 255;
|
|
blue = 0;
|
|
break;
|
|
case 2:
|
|
red = 0;
|
|
green = 255;
|
|
blue = x;
|
|
break;
|
|
case 3:
|
|
red = 0;
|
|
green = 255 - x;
|
|
blue = 255;
|
|
break;
|
|
case 4:
|
|
red = x;
|
|
green = 0;
|
|
blue = 255;
|
|
break;
|
|
case 5:
|
|
red = 255;
|
|
green = 0;
|
|
blue = 255 - x;
|
|
break;
|
|
}
|
|
|
|
return { red, green, blue, alpha };
|
|
}
|
|
} |