toRgbColor method
Implementation
RgbColor toRgbColor() {
List<num> rgb = [0, 0, 0];
num hue = h / 360 % 1;
num saturation = s / 100;
num luminance = l / 100;
if (hue < 1 / 6) {
rgb[0] = 1;
rgb[1] = hue * 6;
} else if (hue < 2 / 6) {
rgb[0] = 2 - hue * 6;
rgb[1] = 1;
} else if (hue < 3 / 6) {
rgb[1] = 1;
rgb[2] = hue * 6 - 2;
} else if (hue < 4 / 6) {
rgb[1] = 4 - hue * 6;
rgb[2] = 1;
} else if (hue < 5 / 6) {
rgb[0] = hue * 6 - 4;
rgb[2] = 1;
} else {
rgb[0] = 1;
rgb[2] = 6 - hue * 6;
}
rgb = rgb.map((val) => val + (1 - saturation) * (0.5 - val)).toList();
if (luminance < 0.5) {
rgb = rgb.map((val) => luminance * 2 * val).toList();
} else {
rgb = rgb.map((val) => luminance * 2 * (1 - val) + 2 * val - 1).toList();
}
rgb = rgb.map((val) => (val * 255).round()).toList();
return new RgbColor(rgb[0], rgb[1], rgb[2]);
}