toGradient method

Gradient toGradient()

Convert to Flutter Gradient object.

Implementation

Gradient toGradient() {
  final sorted = List<NiceGradientStop>.from(stops)
    ..sort((a, b) => a.position.compareTo(b.position));
  final colors = sorted.map((s) => s.color).toList();
  final positions = sorted.map((s) => s.position).toList();

  if (colors.isEmpty) {
    return const LinearGradient(colors: [Colors.white, Colors.black]);
  }

  switch (type) {
    case NiceGradientType.linear:
      final rad = angle * math.pi / 180;
      return LinearGradient(
        begin: Alignment(-math.cos(rad), -math.sin(rad)),
        end: Alignment(math.cos(rad), math.sin(rad)),
        colors: colors,
        stops: positions,
      );
    case NiceGradientType.radial:
      return RadialGradient(colors: colors, stops: positions);
    case NiceGradientType.conic:
      return SweepGradient(colors: colors, stops: positions);
  }
}