advance method
- double dt
override
Advances this controller's internal clock by dt, returning any
leftover time once finished.
Implementation
@override
double advance(double dt) {
assert(dt >= 0, 'Delta time cannot be negative.');
var remaining = dt;
if (!_reversed) {
final step = math.min(remaining, _legDuration - _legElapsed);
child.advance(step);
_legElapsed += step;
remaining -= step;
if (_legElapsed < _legDuration) return 0;
_reversed = true;
_legElapsed = 0;
}
final step = math.min(remaining, _legDuration - _legElapsed);
child.recede(step);
_legElapsed += step;
remaining -= step;
if (_legElapsed >= _legDuration) _finished = true;
return remaining;
}