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;
+  }
+}