GradientBorderSide.lerp constructor

GradientBorderSide.lerp(
  1. GradientBorderSide a,
  2. GradientBorderSide b,
  3. double t
)

Linearly interpolate between two gradient border sides.

The arguments must not be null.

Implementation

factory GradientBorderSide.lerp(
  GradientBorderSide a,
  GradientBorderSide b,
  double t,
) {
  if (identical(a, b)) {
    return a;
  }
  if (t == 0.0) return a;
  if (t == 1.0) return b;
  final width = ui.lerpDouble(a.width, b.width, t)!;
  if (width < 0.0) return GradientBorderSide.none;
  if (a.style == b.style) {
    return GradientBorderSide(
      gradient: Gradient.lerp(a.gradient, b.gradient, t)!,
      width: width,
      style: a.style, // == b.style
    );
  }
  return GradientBorderSide(
    gradient: Gradient.lerp(a.gradient, b.gradient, t)!,
    width: width,
  );
}