lerp static method

Linearly interpolate between two SwitchStyle objects.

Implementation

static SwitchStyle? lerp(SwitchStyle? a, SwitchStyle? b, double t) {
  if (a == null && b == null) return null;
  return SwitchStyle(
    size: Size.lerp(a?.size, b?.size, t),
    margin: EdgeInsetsGeometry.lerp(a?.margin, b?.margin, t),
    padding: EdgeInsetsGeometry.lerp(a?.padding, b?.padding, t),
    trackBorderRadius: BorderRadiusGeometry.lerp(
        a?.trackBorderRadius, b?.trackBorderRadius, t),
    trackBorderColor: Color.lerp(a?.trackBorderColor, b?.trackBorderColor, t),
    trackBorderOpacity:
        lerpDouble(a?.trackBorderOpacity, b?.trackBorderOpacity, t),
    trackBorderAlpha: lerpInt(a?.trackBorderAlpha, b?.trackBorderAlpha, t),
    trackBorderWidth: lerpDouble(a?.trackBorderWidth, b?.trackBorderWidth, t),
    trackColor: Color.lerp(a?.trackColor, b?.trackColor, t),
    trackOpacity: lerpDouble(a?.trackOpacity, b?.trackOpacity, t),
    trackAlpha: lerpInt(a?.trackAlpha, b?.trackAlpha, t),
    trackHeight: lerpDouble(a?.trackHeight, b?.trackHeight, t),
    thumbShape: lerpEnum(a?.thumbShape, b?.thumbShape, t),
    thumbColor: Color.lerp(a?.thumbColor, b?.thumbColor, t),
    thumbOpacity: lerpDouble(a?.thumbOpacity, b?.thumbOpacity, t),
    thumbAlpha: lerpInt(a?.thumbAlpha, b?.thumbAlpha, t),
    thumbInset: lerpDouble(a?.thumbInset, b?.thumbInset, t),
    thumbSize: lerpDouble(a?.thumbSize, b?.thumbSize, t),
    thumbShadow: Color.lerp(a?.thumbShadow, b?.thumbShadow, t),
    thumbElevation: lerpDouble(a?.thumbElevation, b?.thumbElevation, t),
    overlayColor: Color.lerp(a?.overlayColor, b?.overlayColor, t),
    overlayOpacity: lerpDouble(a?.overlayOpacity, b?.overlayOpacity, t),
    overlayDisabled: lerpBool(a?.overlayDisabled, b?.overlayDisabled, t),
    overlayRadius: lerpDouble(a?.overlayRadius, b?.overlayRadius, t),
  );
}