lerp static method

Linearly interpolate between two checkbox themes.

Implementation

static CheckboxThemeData lerp(
  CheckboxThemeData? a,
  CheckboxThemeData? b,
  double t,
) {
  return CheckboxThemeData(
    margin: EdgeInsetsGeometry.lerp(a?.margin, b?.margin, t),
    padding: EdgeInsetsGeometry.lerp(a?.padding, b?.padding, t),
    icon: t < 0.5 ? a?.icon : b?.icon,
    checkedIconColor: ButtonState.lerp(
        a?.checkedIconColor, b?.checkedIconColor, t, Color.lerp),
    uncheckedIconColor: ButtonState.lerp(
        a?.uncheckedIconColor, b?.uncheckedIconColor, t, Color.lerp),
    thirdstateIconColor: ButtonState.lerp(
        a?.thirdstateIconColor, b?.thirdstateIconColor, t, Color.lerp),
    checkedDecoration: ButtonState.lerp(
        a?.checkedDecoration, b?.checkedDecoration, t, Decoration.lerp),
    uncheckedDecoration: ButtonState.lerp(
        a?.uncheckedDecoration, b?.uncheckedDecoration, t, Decoration.lerp),
    thirdstateDecoration: ButtonState.lerp(
        a?.thirdstateDecoration, b?.thirdstateDecoration, t, Decoration.lerp),
    foregroundColor: ButtonState.lerp(
        a?.foregroundColor, b?.foregroundColor, t, Color.lerp),
  );
}