SnappingSimulation constructor
SnappingSimulation({})
Implementation
SnappingSimulation({
required this.position,
required double initialVelocity,
required List<double> pixelSnapPositions,
required Duration snapAnimationDuration,
required this.durationMultiplier,
required double forceMultiplier,
super.tolerance,
}) {
_pixelSnapPosition =
_getSnapPosition(initialVelocity * forceMultiplier, pixelSnapPositions);
const mircosecondsInSecond = 1000000;
duration = initialVelocity != 0
? max(
snapAnimationDuration.inMicroseconds / mircosecondsInSecond,
((position - _pixelSnapPosition) / initialVelocity).abs() *
durationMultiplier /
mircosecondsInSecond)
: snapAnimationDuration.inMicroseconds /
mircosecondsInSecond *
durationMultiplier;
velocityPixelsPerSecond = (_pixelSnapPosition - position) / duration;
}