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

Linearly interpolate between two rectangles.

If either rect is null, Rect.zero is used as a substitute.

Source

static Rect lerp(Rect a, Rect b, double t) {
  if (a == null && b == null)
    return null;
  if (a == null)
    return new Rect.fromLTRB(b.left * t, b.top * t, b.right * t, b.bottom * t);
  if (b == null) {
    double k = 1.0 - t;
    return new Rect.fromLTRB(a.left * k, a.top * k, a.right * k, a.bottom * k);
  }
  return new Rect.fromLTRB(
    lerpDouble(a.left, b.left, t),
    lerpDouble(a.top, b.top, t),
    lerpDouble(a.right, b.right, t),
    lerpDouble(a.bottom, b.bottom, t)
  );
}