toColour method

  1. @override
Colour toColour()
override

Converts this colour to its Colour (ARGB) representation.

Implementation

@override
Colour toColour() {
  double red, green, blue;

  if (saturation == 0) {
    red = green = blue = value;
  } else {
    final double sector = hue / 60;
    final int i = sector.floor();
    final double f = sector - i;
    final double p = value * (1 - saturation);
    final double q = value * (1 - saturation * f);
    final double t = value * (1 - saturation * (1 - f));

    switch (i % 6) {
      case 0:
        red = value;
        green = t;
        blue = p;
        break;
      case 1:
        red = q;
        green = value;
        blue = p;
        break;
      case 2:
        red = p;
        green = value;
        blue = t;
        break;
      case 3:
        red = p;
        green = q;
        blue = value;
        break;
      case 4:
        red = t;
        green = p;
        blue = value;
        break;
      case 5:
        red = value;
        green = p;
        blue = q;
        break;
      default:
        red = green = blue = 0;
    }
  }

  return Colour(
    alpha: (alpha * 255).round(),
    red: (red * 255).round(),
    green: (green * 255).round(),
    blue: (blue * 255).round(),
  );
}