hsvToRgb method

void hsvToRgb (Vector4 hsvColor, Vector4 rgbColor)

Convert hsvColor from hue, saturation, and value (HSV) color model to the RGB color model and store it in rgbColor.

Implementation

static void hsvToRgb(Vector4 hsvColor, Vector4 rgbColor) {
  final int i = (hsvColor.x * 6.0).floor();
  final double f = hsvColor.x * 6.0 - i.toDouble();
  final double p = hsvColor.z * (1.0 - hsvColor.y);
  final double q = hsvColor.z * (1.0 - f * hsvColor.y);
  final double t = hsvColor.z * (1.0 - (1.0 - f) * hsvColor.y);

  switch (i % 6) {
    case 0:
      rgbColor.setValues(hsvColor.z, t, p, hsvColor.a);
      break;
    case 1:
      rgbColor.setValues(q, hsvColor.z, p, hsvColor.a);
      break;
    case 2:
      rgbColor.setValues(p, hsvColor.z, t, hsvColor.a);
      break;
    case 3:
      rgbColor.setValues(p, q, hsvColor.z, hsvColor.a);
      break;
    case 4:
      rgbColor.setValues(t, p, hsvColor.z, hsvColor.a);
      break;
    case 5:
      rgbColor.setValues(hsvColor.z, p, q, hsvColor.a);
      break;
  }
}