lerpGradientWithColor function

Gradient? lerpGradientWithColor(
  1. Gradient? beginGradient,
  2. Gradient? endGradient,
  3. Color? beginColor,
  4. Color? endColor,
  5. double t,
)

Implementation

Gradient? lerpGradientWithColor(Gradient? beginGradient, Gradient? endGradient,
    Color? beginColor, Color? endColor, double t) {
  if (beginGradient == null) {
    if (endGradient == null) {
      return null;
    } else {
      if (beginColor != null) {
        if (endGradient is LinearGradient) {
          return Gradient.lerp(
              LinearGradient(colors: [beginColor, beginColor]), endGradient, t);
        }
        if (endGradient is RadialGradient) {
          return Gradient.lerp(
              RadialGradient(colors: [beginColor, beginColor]), endGradient, t);
        }
        if (endGradient is SweepGradient) {
          return Gradient.lerp(
              SweepGradient(colors: [beginColor, beginColor]), endGradient, t);
        }
      } else {
        return Gradient.lerp(null, endGradient, t);
      }
    }
  } else {
    if (endGradient == null) {
      if (endColor != null) {
        if (beginGradient is LinearGradient) {
          return Gradient.lerp(
              beginGradient, LinearGradient(colors: [endColor, endColor]), t);
        }
        if (beginGradient is RadialGradient) {
          return Gradient.lerp(
              beginGradient, RadialGradient(colors: [endColor, endColor]), t);
        }
        if (beginGradient is SweepGradient) {
          return Gradient.lerp(
              beginGradient, SweepGradient(colors: [endColor, endColor]), t);
        }
      } else {
        return Gradient.lerp(beginGradient, null, t);
      }
    } else {
      return Gradient.lerp(beginGradient, endGradient, t);
    }
  }
}