diff options
Diffstat (limited to 'src/sims')
-rw-r--r-- | src/sims/collision/AABB.scala | 2 | ||||
-rw-r--r-- | src/sims/collision/CircleCollision.scala | 4 | ||||
-rw-r--r-- | src/sims/collision/Collision.scala | 4 | ||||
-rw-r--r-- | src/sims/collision/Detector.scala | 2 | ||||
-rw-r--r-- | src/sims/collision/GridDetector.scala | 3 | ||||
-rw-r--r-- | src/sims/collision/PolyCollision.scala | 1 | ||||
-rw-r--r-- | src/sims/dynamics/World.scala | 15 | ||||
-rw-r--r-- | src/sims/dynamics/joints/DistanceJoint.scala | 1 | ||||
-rw-r--r-- | src/sims/dynamics/joints/SpringJoint.scala | 1 | ||||
-rw-r--r-- | src/sims/dynamics/joints/test/PrismaticJoint.scala | 2 | ||||
-rw-r--r-- | src/sims/dynamics/joints/test/UnitCircleJoint.scala | 1 |
11 files changed, 18 insertions, 18 deletions
diff --git a/src/sims/collision/AABB.scala b/src/sims/collision/AABB.scala index ea696f2..f3a0b71 100644 --- a/src/sims/collision/AABB.scala +++ b/src/sims/collision/AABB.scala @@ -6,7 +6,7 @@ package sims.collision -import geometry._ +import sims.geometry._ /** * Axis Aligned Bounding Boxes (AABBs) are rectangles that frame a shape. diff --git a/src/sims/collision/CircleCollision.scala b/src/sims/collision/CircleCollision.scala index e77c8e2..04cf2d7 100644 --- a/src/sims/collision/CircleCollision.scala +++ b/src/sims/collision/CircleCollision.scala @@ -6,8 +6,8 @@ package sims.collision -import geometry._ -import dynamics._ +import sims.geometry._ +import sims.dynamics._ /**Collision between two circles.*/ case class CircleCollision(c1: Circle, c2: Circle) extends Collision { diff --git a/src/sims/collision/Collision.scala b/src/sims/collision/Collision.scala index ce09ac2..540081a 100644 --- a/src/sims/collision/Collision.scala +++ b/src/sims/collision/Collision.scala @@ -6,8 +6,8 @@ package sims.collision -import dynamics._ -import geometry._ +import sims.dynamics._ +import sims.geometry._ /**Collision between two shapes. Contains methods to compute the collision response.*/ abstract class Collision extends Constraint { diff --git a/src/sims/collision/Detector.scala b/src/sims/collision/Detector.scala index 0a3ad5b..96af5dc 100644 --- a/src/sims/collision/Detector.scala +++ b/src/sims/collision/Detector.scala @@ -9,8 +9,6 @@ package sims.collision import sims.geometry._ import sims.dynamics._ -import scala.collection._ -import scala.collection.mutable._ /**A world detects its collisions through concrete implementations of this class.*/ abstract class Detector { diff --git a/src/sims/collision/GridDetector.scala b/src/sims/collision/GridDetector.scala index f5ed99a..abc40f2 100644 --- a/src/sims/collision/GridDetector.scala +++ b/src/sims/collision/GridDetector.scala @@ -9,7 +9,8 @@ package sims.collision import sims.dynamics._ import sims.geometry._ import scala.collection._ -import scala.collection.mutable._ +import scala.collection.mutable.ArrayBuffer +import scala.collection.mutable.HashMap /**A conrete implementation of <code>Detector</code>. <code>GridDetector</code> divides the world into a grid * for faster collision detection.*/ diff --git a/src/sims/collision/PolyCollision.scala b/src/sims/collision/PolyCollision.scala index b4fa917..5296f41 100644 --- a/src/sims/collision/PolyCollision.scala +++ b/src/sims/collision/PolyCollision.scala @@ -9,7 +9,6 @@ package sims.collision import sims.geometry._ import sims.dynamics._ import scala.collection.mutable.Map -import scala.collection.mutable._ /**Collision between two convex polygons.*/ case class PolyCollision(p1: ConvexPolygon, p2: ConvexPolygon) extends Collision { diff --git a/src/sims/dynamics/World.scala b/src/sims/dynamics/World.scala index 0230a50..f24a3fd 100644 --- a/src/sims/dynamics/World.scala +++ b/src/sims/dynamics/World.scala @@ -9,7 +9,7 @@ package sims.dynamics import sims.geometry._ import sims.collision._ import sims.dynamics.joints._ -import scala.collection.mutable._ +import scala.collection.mutable.ArrayBuffer /**A world contains and simulates a system of rigid bodies and joints.*/ class World { @@ -35,7 +35,7 @@ class World { * Example usage: monitors += ("Y-Position", _.pos.y.toString) * This will calculate all bodies - whose <code>monitor</code> field is set to * <code>true</code> - second position components.*/ - val monitors = new ArrayBuffer[(String, Body => String)] + val monitors = new ArrayBuffer[(String, Body => Any)] /**Collsion detector who manages collision detection in this world.*/ val detector: Detector = new GridDetector(this) @@ -65,7 +65,7 @@ class World { def +=(joint: Joint): Unit = joints += joint /**Adds the given prefabricated system of bodies and joints to this world.*/ - def +=(p: prefabs.Prefab): Unit = { + def +=(p: sims.prefabs.Prefab): Unit = { for (b <- p.bodies) this += b for (j <- p.joints) this += j } @@ -80,7 +80,7 @@ class World { def -=(joint: Joint): Unit = joints -= joint /**Removes the given prefabricated system of bodies and joints from this world.*/ - def -=(p: prefabs.Prefab): Unit = { + def -=(p: sims.prefabs.Prefab): Unit = { for (b <- p.bodies) this -= b for (j <- p.joints) this -= j } @@ -113,12 +113,9 @@ class World { //integration of acclerations, yields velocities for (b <- bodies) { - val m = b.mass b.applyForce(gravity * b.mass) - val a = b.force / b.mass - val alpha = b.torque / b.I - b.linearVelocity = b.linearVelocity + a * timeStep - b.angularVelocity = b.angularVelocity + alpha * timeStep + b.linearVelocity = b.linearVelocity + (b.force / b.mass) * timeStep + b.angularVelocity = b.angularVelocity + (b.torque / b.I) * timeStep } //correction of velocities diff --git a/src/sims/dynamics/joints/DistanceJoint.scala b/src/sims/dynamics/joints/DistanceJoint.scala index efb49e5..1bf9b46 100644 --- a/src/sims/dynamics/joints/DistanceJoint.scala +++ b/src/sims/dynamics/joints/DistanceJoint.scala @@ -6,6 +6,7 @@ package sims.dynamics.joints +import sims.dynamics._ import sims.geometry._ /** DistanceJoints keep their connection points at a constant distance. diff --git a/src/sims/dynamics/joints/SpringJoint.scala b/src/sims/dynamics/joints/SpringJoint.scala index 1267ccf..4d44864 100644 --- a/src/sims/dynamics/joints/SpringJoint.scala +++ b/src/sims/dynamics/joints/SpringJoint.scala @@ -6,6 +6,7 @@ package sims.dynamics.joints +import sims.dynamics._ import sims.geometry._ /**A spring obeying Hooke's law. diff --git a/src/sims/dynamics/joints/test/PrismaticJoint.scala b/src/sims/dynamics/joints/test/PrismaticJoint.scala index d4b43b2..040647d 100644 --- a/src/sims/dynamics/joints/test/PrismaticJoint.scala +++ b/src/sims/dynamics/joints/test/PrismaticJoint.scala @@ -1,5 +1,7 @@ package sims.dynamics.joints.test +import sims.dynamics._ +import sims.dynamics.joints._ import sims.geometry._ case class PrismaticJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2: Vector2D) extends Joint{ diff --git a/src/sims/dynamics/joints/test/UnitCircleJoint.scala b/src/sims/dynamics/joints/test/UnitCircleJoint.scala index 64f613c..09e72d9 100644 --- a/src/sims/dynamics/joints/test/UnitCircleJoint.scala +++ b/src/sims/dynamics/joints/test/UnitCircleJoint.scala @@ -7,6 +7,7 @@ package sims.dynamics.joints.test import sims.dynamics._ +import sims.dynamics.joints._ import sims.geometry._ class UnitCircleJoint(body: Body, anchor: Vector2D) extends Joint{ |