toGradient method
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);
}
}