constStepperRound<T extends num> function
T
constStepperRound<T extends num>(
- T value, {
- required T maxValue,
- required T minValue,
- required T stepValue,
Implementation
T constStepperRound<T extends num>(T value,
{required T maxValue, required T minValue, required T stepValue}) {
final leftover = value % stepValue;
if ((maxValue - value) < stepValue / 2) {
return maxValue;
}
final extraValue =
leftover > stepValue / 2 ? (stepValue - leftover) : -leftover;
return max(minValue, min(maxValue, (value + extraValue) as T));
}