lerpDouble function

double? lerpDouble(
  1. double? a,
  2. double? b,
  3. double t
)

Implementation

double? lerpDouble(double? a, double? b, double t) {
  if (a == b) return b;

  a ??= 0.0;
  b ??= 0.0;

  if (a.isInfinite) {
    if (t != 1.0)
         return a;
    else return b;
  }

  if (b.isInfinite) {
    if (t == 0.0)
         return a;
    else return b;
  }

  return a * (1.0 - t) + b * t;
}