BoxDecoration lerp(BoxDecoration a, BoxDecoration b, double t)

Linearly interpolate between two box decorations.

Interpolates each parameter of the box decoration separately.

See also Decoration.lerp.

Source

static BoxDecoration lerp(BoxDecoration a, BoxDecoration b, double t) {
  if (a == null && b == null)
    return null;
  if (a == null)
    return b.scale(t);
  if (b == null)
    return a.scale(1.0 - t);
  // TODO(abarth): lerp ALL the fields.
  return new BoxDecoration(
    backgroundColor: Color.lerp(a.backgroundColor, b.backgroundColor, t),
    backgroundImage: b.backgroundImage,
    border: Border.lerp(a.border, b.border, t),
    borderRadius: BorderRadius.lerp(a.borderRadius, b.borderRadius, t),
    boxShadow: BoxShadow.lerpList(a.boxShadow, b.boxShadow, t),
    gradient: b.gradient,
    shape: b.shape
  );
}