transform method

  1. @override
OdometerNumber transform(
  1. double t
)
override

Returns the interpolated value for the current value of the given animation.

This method returns begin and end when the animation values are 0.0 or 1.0, respectively.

This function is implemented by deferring to lerp. Subclasses that want to provide custom behavior should override lerp, not transform (nor evaluate).

See the constructor for details about whether the begin and end properties may be null when this is called. It varies from subclass to subclass.

Implementation

@override
OdometerNumber transform(double t) {
  if (t == 0.0) {
    return begin!;
  }
  if (t == 1.0) {
    if (begin!.digits.keys.length > end!.digits.keys.length) {
      end!.digits.addEntries(
        begin!.digits.keys.toSet().difference(end!.digits.keys.toSet()).map(
              (e) => MapEntry(e, 0),
            ),
      );
    }
    return end!;
  }
  return lerp(t);
}