lerpFrom method

  1. @override
PrettyQrDotsSymbol? lerpFrom(
  1. PrettyQrShape? a,
  2. double t
)
override

Linearly interpolates from another PrettyQrShape (which may be of a different class) to this.

Instead of calling this directly, use PrettyQrShape.lerp.

Implementation

@override
PrettyQrDotsSymbol? lerpFrom(PrettyQrShape? a, double t) {
  if (identical(a, this)) {
    return this;
  }

  if (a == null) return this;
  if (a is! PrettyQrDotsSymbol) return null;

  if (t == 0.0) return a;
  if (t == 1.0) return this;

  return PrettyQrDotsSymbol(
    color: PrettyQrBrush.lerp(a.color, color, t)!,
    density: lerpDouble(a.density, density, t)!,
    unifiedFinderPattern:
        t < 0.5 ? a.unifiedFinderPattern : unifiedFinderPattern,
    unifiedAlignmentPatterns:
        t < 0.5 ? a.unifiedAlignmentPatterns : unifiedAlignmentPatterns,
  );
}