summaryrefslogtreecommitdiff
path: root/src/sims/collision/CircleCollision.scala
blob: 04cf2d7ae5af3182d2fe34203278d6ec0e382376 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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)
  } 
}