toHex method

  1. @override
String toHex()

Implementation

@override
String toHex() {
  var _r, _g, _b, _i, _f, _p, _q, _t;
  final _h = h / 360;
  final _s = s / 100;
  final _v = b / 100;
  _i = (_h * 6).floor();
  _f = _h * 6 - _i;
  _p = _v * (1 - _s);
  _q = _v * (1 - _f * _s);
  _t = _v * (1 - (1 - _f) * _s);
  switch (_i % 6) {
    case 0:
      _r = _v;
      _g = _t;
      _b = _p;
      break;
    case 1:
      _r = _q;
      _g = _v;
      _b = _p;
      break;
    case 2:
      _r = _p;
      _g = _v;
      _b = _t;
      break;
    case 3:
      _r = _p;
      _g = _q;
      _b = _v;
      break;
    case 4:
      _r = _t;
      _g = _p;
      _b = _v;
      break;
    case 5:
      _r = _v;
      _g = _p;
      _b = _q;
      break;
  }
  Function toHex = (double x) {
    var hex = (x * 255).round().toRadixString(16);
    return hex.length == 1 ? '0' + hex : hex;
  };
  return "#" + toHex(_r) + toHex(_g) + toHex(_b);
}