m3eDialogSpringSettle function

Duration m3eDialogSpringSettle(
  1. M3ESpring spring
)

Time a 0→1 spring needs to settle (capped at 2s).

Implementation

Duration m3eDialogSpringSettle(M3ESpring spring) {
  final sim = SpringSimulation(
    spring.toDescription(),
    0,
    1,
    0,
    tolerance: _settleTolerance,
  );
  var ms = 0;
  while (ms < _maxSettle.inMilliseconds && !sim.isDone(ms / 1000)) {
    ms += 4;
  }
  return Duration(milliseconds: ms);
}