Merge pull request #3 from HansMuller/add-bounded-friction-simulation
Added BoundedFrictionSimulation
diff --git a/lib/src/friction_simulation.dart b/lib/src/friction_simulation.dart
index 590c5e4..4cca704 100644
--- a/lib/src/friction_simulation.dart
+++ b/lib/src/friction_simulation.dart
@@ -24,3 +24,25 @@
@override
bool isDone(double time) => dx(time).abs() < this.tolerance.velocity;
}
+
+class BoundedFrictionSimulation extends FrictionSimulation {
+ BoundedFrictionSimulation(
+ double drag,
+ double position,
+ double velocity,
+ double this._minX,
+ double this._maxX) : super(drag, position, velocity);
+
+ final double _minX;
+ final double _maxX;
+
+ double x(double time) {
+ return super.x(time).clamp(_minX, _maxX);
+ }
+
+ bool isDone(double time) {
+ return super.isDone(time) ||
+ (x(time) - _minX).abs() < tolerance.distance ||
+ (x(time) - _maxX).abs() < tolerance.distance;
+ }
+}