recede method

  1. @override
double recede(
  1. double dt
)
override

The reverse of advance: recedes this controller's internal clock by dt, returning any leftover time once back at the start.

Implementation

@override
double recede(double dt) {
  assert(dt >= 0, 'Delta time cannot be negative.');
  var remaining = dt;
  _finished = false;

  if (_reversed) {
    final step = math.min(remaining, _legElapsed);
    child.advance(step);
    _legElapsed -= step;
    remaining -= step;

    if (_legElapsed > 0) return remaining;

    _reversed = false;
    _legElapsed = _legDuration;
  }

  final step = math.min(remaining, _legElapsed);
  child.recede(step);
  _legElapsed -= step;
  remaining -= step;

  return remaining;
}