summaryrefslogtreecommitdiff
path: root/src/main/scala/sims/collision/CircleCollision.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/sims/collision/CircleCollision.scala')
-rw-r--r--src/main/scala/sims/collision/CircleCollision.scala22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/scala/sims/collision/CircleCollision.scala b/src/main/scala/sims/collision/CircleCollision.scala
new file mode 100644
index 0000000..04cf2d7
--- /dev/null
+++ b/src/main/scala/sims/collision/CircleCollision.scala
@@ -0,0 +1,22 @@
+/*
+ * Simple Mechanics Simulator (SiMS)
+ * copyright (c) 2009 Jakob Odersky
+ * made available under the MIT License
+*/
+
+package sims.collision
+
+import sims.geometry._
+import sims.dynamics._
+
+/**Collision between two circles.*/
+case class CircleCollision(c1: Circle, c2: Circle) extends Collision {
+ val shape1 = c1
+ val shape2 = c2
+ val normal = (c2.pos - c1.pos).unit
+ val points = {
+ val distance = (c2.pos - c1.pos).length
+ val p = shape1.pos + normal * (distance - c2.radius)
+ List(p)
+ }
+}