diff options
author | Jakob Odersky <jodersky@gmail.com> | 2015-06-29 12:32:00 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2015-06-29 12:32:00 +0200 |
commit | 01c5c700647feba596e02cb7a2e672f5301504ff (patch) | |
tree | bb0b0e1c2efde6b5362a294089fe081db0724833 | |
parent | 998e545e8e42fee597f7274e47428d35dcf29e7b (diff) | |
download | sims-01c5c700647feba596e02cb7a2e672f5301504ff.tar.gz sims-01c5c700647feba596e02cb7a2e672f5301504ff.tar.bz2 sims-01c5c700647feba596e02cb7a2e672f5301504ff.zip |
Port to scala 2.11
-rw-r--r-- | build.sbt | 10 | ||||
-rw-r--r-- | src/graphyx/actors/PhysicsActor.scala | 73 | ||||
-rw-r--r-- | src/main/scala/graphyx/Graphyx.scala (renamed from src/graphyx/Graphyx.scala) | 17 | ||||
-rw-r--r-- | src/main/scala/graphyx/actors/GUIActor.scala (renamed from src/graphyx/actors/GUIActor.scala) | 31 | ||||
-rw-r--r-- | src/main/scala/graphyx/actors/PhysicsActor.scala | 88 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/Drawable.scala (renamed from src/graphyx/graphics/Drawable.scala) | 6 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalAABB.scala (renamed from src/graphyx/graphics/GraphicalAABB.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalBody.scala (renamed from src/graphyx/graphics/GraphicalBody.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalCircle.scala (renamed from src/graphyx/graphics/GraphicalCircle.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalCollision.scala (renamed from src/graphyx/graphics/GraphicalCollision.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalDistanceJoint.scala (renamed from src/graphyx/graphics/GraphicalDistanceJoint.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalJoint.scala (renamed from src/graphyx/graphics/GraphicalJoint.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalObject.scala (renamed from src/graphyx/graphics/GraphicalObject.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalPair.scala (renamed from src/graphyx/graphics/GraphicalPair.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalRectangle.scala (renamed from src/graphyx/graphics/GraphicalRectangle.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalRegularPolygon.scala (renamed from src/graphyx/graphics/GraphicalRegularPolygon.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalRevoluteJoint.scala (renamed from src/graphyx/graphics/GraphicalRevoluteJoint.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalShape.scala (renamed from src/graphyx/graphics/GraphicalShape.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalSpringJoint.scala (renamed from src/graphyx/graphics/GraphicalSpringJoint.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/GraphicalWorld.scala (renamed from src/graphyx/graphics/GraphicalWorld.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/Parser.scala (renamed from src/graphyx/graphics/Parser.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/graphics/Scene.scala (renamed from src/graphyx/graphics/Scene.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/AboutHelpFrame.scala (renamed from src/graphyx/gui/AboutHelpFrame.scala) | 4 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/BodyPopup.scala (renamed from src/graphyx/gui/BodyPopup.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/Container.scala (renamed from src/graphyx/gui/Container.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/ControlPanel.scala (renamed from src/graphyx/gui/ControlPanel.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/GravityPanel.scala (renamed from src/graphyx/gui/GravityPanel.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/InfoPanel.scala (renamed from src/graphyx/gui/InfoPanel.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/MainFrame.scala (renamed from src/graphyx/gui/MainFrame.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/MainPanel.scala (renamed from src/graphyx/gui/MainPanel.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/MenuHelp.scala (renamed from src/graphyx/gui/MenuHelp.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/MenuPanel.scala (renamed from src/graphyx/gui/MenuPanel.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/OptionsPanel.scala (renamed from src/graphyx/gui/OptionsPanel.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/PopupMenu.scala (renamed from src/graphyx/gui/PopupMenu.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/ShapeInfoPanel.scala (renamed from src/graphyx/gui/ShapeInfoPanel.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/gui/WorldPanel.scala (renamed from src/graphyx/gui/WorldPanel.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Atom.scala (renamed from src/graphyx/tests/Atom.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/BallStack.scala (renamed from src/graphyx/tests/BallStack.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Cannon.scala (renamed from src/graphyx/tests/Cannon.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Carriage.scala (renamed from src/graphyx/tests/Carriage.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Chain.scala (renamed from src/graphyx/tests/Chain.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/CompositeShape.scala (renamed from src/graphyx/tests/CompositeShape.scala) | 4 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Cup.scala (renamed from src/graphyx/tests/Cup.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/EmptyTest.scala (renamed from src/graphyx/tests/EmptyTest.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Friction.scala (renamed from src/graphyx/tests/Friction.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Friction2.scala (renamed from src/graphyx/tests/Friction2.scala) | 4 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/General1.scala (renamed from src/graphyx/tests/General1.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/General2.scala (renamed from src/graphyx/tests/General2.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Joints1.scala (renamed from src/graphyx/tests/Joints1.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Joints2.scala (renamed from src/graphyx/tests/Joints2.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Net.scala (renamed from src/graphyx/tests/Net.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/RagdollTest.scala (renamed from src/graphyx/tests/RagdollTest.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Restitution.scala (renamed from src/graphyx/tests/Restitution.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Spring.scala (renamed from src/graphyx/tests/Spring.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Stacking.scala (renamed from src/graphyx/tests/Stacking.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Test.scala (renamed from src/graphyx/tests/Test.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/graphyx/tests/Wave.scala (renamed from src/graphyx/tests/Wave.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/collision/AABB.scala (renamed from src/sims/collision/AABB.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/collision/CircleCollision.scala (renamed from src/sims/collision/CircleCollision.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/collision/Collision.scala (renamed from src/sims/collision/Collision.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/sims/collision/Detector.scala (renamed from src/sims/collision/Detector.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/collision/GridDetector.scala (renamed from src/sims/collision/GridDetector.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/sims/collision/Overlap.scala (renamed from src/sims/collision/Overlap.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/collision/Pair.scala (renamed from src/sims/collision/Pair.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/collision/PolyCircleCollision.scala (renamed from src/sims/collision/PolyCircleCollision.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/collision/PolyCollision.scala (renamed from src/sims/collision/PolyCollision.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/Body.scala (renamed from src/sims/dynamics/Body.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/Circle.scala (renamed from src/sims/dynamics/Circle.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/Constraint.scala (renamed from src/sims/dynamics/Constraint.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/Rectangle.scala (renamed from src/sims/dynamics/Rectangle.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/RegularPolygon.scala (renamed from src/sims/dynamics/RegularPolygon.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/Shape.scala (renamed from src/sims/dynamics/Shape.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/World.scala (renamed from src/sims/dynamics/World.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/joints/DistanceJoint.scala (renamed from src/sims/dynamics/joints/DistanceJoint.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/joints/ForceJoint.scala (renamed from src/sims/dynamics/joints/ForceJoint.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/joints/Joint.scala (renamed from src/sims/dynamics/joints/Joint.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/joints/RevoluteJoint.scala (renamed from src/sims/dynamics/joints/RevoluteJoint.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/joints/SpringJoint.scala (renamed from src/sims/dynamics/joints/SpringJoint.scala) | 4 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/joints/test/PrismaticJoint.scala (renamed from src/sims/dynamics/joints/test/PrismaticJoint.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/dynamics/joints/test/UnitCircleJoint.scala (renamed from src/sims/dynamics/joints/test/UnitCircleJoint.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/geometry/ConvexPolygon.scala (renamed from src/sims/geometry/ConvexPolygon.scala) | 4 | ||||
-rw-r--r-- | src/main/scala/sims/geometry/Projection.scala (renamed from src/sims/geometry/Projection.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/sims/geometry/Ray.scala (renamed from src/sims/geometry/Ray.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/sims/geometry/Segment.scala (renamed from src/sims/geometry/Segment.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/geometry/Vector2D.scala (renamed from src/sims/geometry/Vector2D.scala) | 4 | ||||
-rw-r--r-- | src/main/scala/sims/materials/Material.scala (renamed from src/sims/materials/Material.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/materials/Rubber.scala (renamed from src/sims/materials/Rubber.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/materials/Steel.scala (renamed from src/sims/materials/Steel.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/math/Matrix22.scala (renamed from src/sims/math/Matrix22.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/prefabs/Net.scala (renamed from src/sims/prefabs/Net.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/prefabs/Prefab.scala (renamed from src/sims/prefabs/Prefab.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/prefabs/Pylon.scala (renamed from src/sims/prefabs/Pylon.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/prefabs/Ragdoll.scala (renamed from src/sims/prefabs/Ragdoll.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/util/Polar.scala (renamed from src/sims/util/Polar.scala) | 2 | ||||
-rw-r--r-- | src/main/scala/sims/util/Positioning.scala (renamed from src/sims/util/Positioning.scala) | 0 | ||||
-rw-r--r-- | src/main/scala/sims/util/RelativeVector.scala (renamed from src/sims/util/RelativeVector.scala) | 0 |
96 files changed, 152 insertions, 125 deletions
diff --git a/build.sbt b/build.sbt new file mode 100644 index 0000000..24c097a --- /dev/null +++ b/build.sbt @@ -0,0 +1,10 @@ +name := "sims" + +version := "1.1" + +scalaVersion := "2.11.7" + +libraryDependencies ++= Seq( + "org.scala-lang.modules" %% "scala-swing" % "2.0.0-M2", + "com.typesafe.akka" %% "akka-actor" % "2.3.11" +) diff --git a/src/graphyx/actors/PhysicsActor.scala b/src/graphyx/actors/PhysicsActor.scala deleted file mode 100644 index 0bc7faf..0000000 --- a/src/graphyx/actors/PhysicsActor.scala +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Graphyx - * copyright (c) 2009 Jakob Odersky - * made available under the MIT License -*/ - -package graphyx.actors - -import graphyx._ -import graphyx.graphics._ -import sims.dynamics._ -import scala.actors._ -class PhysicsActor extends Actor{ - var world = new World - - var continue = true - var simulate = false - - private var _fps = 0 - def fps = _fps - - def act{ - println("Physics actor started.") - while (continue) { - - var t0 = System.nanoTime - - if (simulate) { - world.step() - } - - Graphyx.guiActor ! new Scene(world) {override val fps = _fps} - - receiveWithin(0) { - case TIMEOUT => () - - case Stop => { - simulate = false - println("Simulation stopped.") - } - case Start => { - simulate = true - println("Simulation started.") - } - case Exit => { - continue = false - } - case sw @ SetWorld(w: World) => world = w - - case FireEvent => Graphyx.test.fireEvent() - - case other => println("Engine received unknown command: '" + other + "'") - } - - val h = (System.nanoTime - t0) / 1000000 - val f = 60 - val T = (1.0/f) * 1000 - if (T-h > 0) - Thread.sleep((T-h).toLong) - _fps = (1.0/((System.nanoTime - t0) / 1000000000.0)).toInt - //println((1.0/((System.nanoTime - t0) / 1000000000.0)).toInt) - } - println("Physics actor exited.") - } -} - -case object Start -case object Stop -case object Exit -case class SetWorld(world: World) -case object FireEvent - - diff --git a/src/graphyx/Graphyx.scala b/src/main/scala/graphyx/Graphyx.scala index 5720566..17341fb 100644 --- a/src/graphyx/Graphyx.scala +++ b/src/main/scala/graphyx/Graphyx.scala @@ -6,6 +6,7 @@ package graphyx +import akka.actor._ import graphyx.actors._ import graphyx.graphics._ import graphyx.tests._ @@ -45,20 +46,16 @@ object Graphyx{ physicsActor ! SetWorld(t.world) _test = t } - - val physicsActor = new PhysicsActor - val guiActor = new GUIActor + + val system = ActorSystem() + val physicsActor = system.actorOf(PhysicsActor(), "physics") + val guiActor = system.actorOf(GUIActor(), "gui") def main(args: Array[String]): Unit = { - test.init() - physicsActor.world = test.world - guiActor.start() - physicsActor.start() + test = tests(0) } def exit() = { - guiActor.container.exitGUI - guiActor ! Exit - physicsActor ! Exit + system.shutdown() } } diff --git a/src/graphyx/actors/GUIActor.scala b/src/main/scala/graphyx/actors/GUIActor.scala index 0116551..cbfb1c2 100644 --- a/src/graphyx/actors/GUIActor.scala +++ b/src/main/scala/graphyx/actors/GUIActor.scala @@ -6,26 +6,31 @@ package graphyx.actors +import akka.actor._ import graphyx.graphics._ -import scala.actors._ class GUIActor extends Actor{ val container = new graphyx.gui.Container - var continue = true - - def act() = { + override def preStart() = { container.show() println("GUI actor started.") - while (continue) { - receive { - case Exit => { - continue = false - } - case s @ Scene(_) => container.update(s) - case other => println("Engine received unknown command: " + other) - } - } + } + + def receive = { + case s @ Scene(_) => container.update(s) + case other => println("Engine received unknown command: " + other) + } + + override def postStop() = { + container.exitGUI() println("GUI actor exited.") } + +} + +object GUIActor { + + def apply() = Props(classOf[GUIActor]) + } diff --git a/src/main/scala/graphyx/actors/PhysicsActor.scala b/src/main/scala/graphyx/actors/PhysicsActor.scala new file mode 100644 index 0000000..7a7d2b9 --- /dev/null +++ b/src/main/scala/graphyx/actors/PhysicsActor.scala @@ -0,0 +1,88 @@ +/* + * Graphyx + * copyright (c) 2009 Jakob Odersky + * made available under the MIT License +*/ + +package graphyx.actors + +import akka.actor._ +import graphyx._ +import graphyx.graphics._ +import scala.concurrent.duration._ +import sims.dynamics._ +class PhysicsActor extends Actor{ + import context._ + + var world = new World + + var simulate = false + + private var _fps = 0 + def fps = _fps + var t0 = System.nanoTime + + override def preStart() = { + println("Physics actor started.") + t0 = System.nanoTime + } + + def receive = { + case Tick => + t0 = System.nanoTime + if (simulate) { + world.step() + } + Graphyx.guiActor ! new Scene(world) {override val fps = _fps} + val h = (System.nanoTime - t0) / 1000000 + val f = 60 + val T = (1.0/f) * 1000 + _fps = (1.0/((System.nanoTime - t0) / 1000000000.0)).toInt + //println((1.0/((System.nanoTime - t0) / 1000000000.0)).toInt) + + val delay = if (T-h>0) (T-h).toLong else 0l + + if (simulate) { + system.scheduler.scheduleOnce(delay.milliseconds, self, Tick) + } + + case Step => + world.step() + Graphyx.guiActor ! new Scene(world) + + case Stop => { + simulate = false + println("Simulation stopped.") + } + case Start => { + simulate = true + self ! Tick + println("Simulation started.") + } + + case sw @ SetWorld(w: World) => world = w + + case FireEvent => Graphyx.test.fireEvent() + + case other => println("Engine received unknown command: '" + other + "'") + } + + override def postStop() = { + println("Physics actor exited.") + } +} + +object PhysicsActor { + + def apply() = Props(classOf[PhysicsActor]) + +} + +case object Tick +case object Start +case object Stop +case object Step +case class SetWorld(world: World) +case object FireEvent + + diff --git a/src/graphyx/graphics/Drawable.scala b/src/main/scala/graphyx/graphics/Drawable.scala index 07f3491..e1757f7 100644 --- a/src/graphyx/graphics/Drawable.scala +++ b/src/main/scala/graphyx/graphics/Drawable.scala @@ -104,8 +104,8 @@ trait Drawable { def drawVector(v: Vector2D, p: Vector2D) = { if (!v.isNull) { val ep = p + v - val a1 = ep - ((v.unit rotate (Math.Pi / 6)) * 0.08) - val a2 = ep - ((v.unit rotate (-Math.Pi / 6)) * 0.08) + val a1 = ep - ((v.unit rotate (math.Pi / 6)) * 0.08) + val a2 = ep - ((v.unit rotate (-math.Pi / 6)) * 0.08) g.drawLine((p.x * scale * ppm).toInt, correctY(p.y * scale * ppm).toInt, (ep.x * scale * ppm).toInt, correctY(ep.y * scale * ppm).toInt) g.drawLine((a1.x * scale * ppm).toInt, correctY(a1.y * scale * ppm).toInt, (ep.x * scale * ppm).toInt, correctY(ep.y * scale * ppm).toInt) @@ -115,4 +115,4 @@ trait Drawable { /**Stellt das graphische Objekt dar.*/ def draw(): Unit -}
\ No newline at end of file +} diff --git a/src/graphyx/graphics/GraphicalAABB.scala b/src/main/scala/graphyx/graphics/GraphicalAABB.scala index cb3694b..cb3694b 100644 --- a/src/graphyx/graphics/GraphicalAABB.scala +++ b/src/main/scala/graphyx/graphics/GraphicalAABB.scala diff --git a/src/graphyx/graphics/GraphicalBody.scala b/src/main/scala/graphyx/graphics/GraphicalBody.scala index c78ea51..c78ea51 100644 --- a/src/graphyx/graphics/GraphicalBody.scala +++ b/src/main/scala/graphyx/graphics/GraphicalBody.scala diff --git a/src/graphyx/graphics/GraphicalCircle.scala b/src/main/scala/graphyx/graphics/GraphicalCircle.scala index ffbd7a6..77b038c 100644 --- a/src/graphyx/graphics/GraphicalCircle.scala +++ b/src/main/scala/graphyx/graphics/GraphicalCircle.scala @@ -11,7 +11,7 @@ import geometry._ import dynamics._ class GraphicalCircle(val real: Circle) extends Circle(real.radius, real.density) with GraphicalShape{ override def draw() = { - //val b = Math.min(density / 100 * 255, 255) + //val b = math.min(density / 100 * 255, 255) //g.setColor(new java.awt.Color(0,0,255, b.toInt)) g.setColor(java.awt.Color.blue) fillCircle(pos, real.radius) diff --git a/src/graphyx/graphics/GraphicalCollision.scala b/src/main/scala/graphyx/graphics/GraphicalCollision.scala index 5589f8c..5589f8c 100644 --- a/src/graphyx/graphics/GraphicalCollision.scala +++ b/src/main/scala/graphyx/graphics/GraphicalCollision.scala diff --git a/src/graphyx/graphics/GraphicalDistanceJoint.scala b/src/main/scala/graphyx/graphics/GraphicalDistanceJoint.scala index 4a6e49d..4a6e49d 100644 --- a/src/graphyx/graphics/GraphicalDistanceJoint.scala +++ b/src/main/scala/graphyx/graphics/GraphicalDistanceJoint.scala diff --git a/src/graphyx/graphics/GraphicalJoint.scala b/src/main/scala/graphyx/graphics/GraphicalJoint.scala index 27d4f83..27d4f83 100644 --- a/src/graphyx/graphics/GraphicalJoint.scala +++ b/src/main/scala/graphyx/graphics/GraphicalJoint.scala diff --git a/src/graphyx/graphics/GraphicalObject.scala b/src/main/scala/graphyx/graphics/GraphicalObject.scala index 3c56de6..3c56de6 100644 --- a/src/graphyx/graphics/GraphicalObject.scala +++ b/src/main/scala/graphyx/graphics/GraphicalObject.scala diff --git a/src/graphyx/graphics/GraphicalPair.scala b/src/main/scala/graphyx/graphics/GraphicalPair.scala index 72e72ae..72e72ae 100644 --- a/src/graphyx/graphics/GraphicalPair.scala +++ b/src/main/scala/graphyx/graphics/GraphicalPair.scala diff --git a/src/graphyx/graphics/GraphicalRectangle.scala b/src/main/scala/graphyx/graphics/GraphicalRectangle.scala index 05dfa76..05dfa76 100644 --- a/src/graphyx/graphics/GraphicalRectangle.scala +++ b/src/main/scala/graphyx/graphics/GraphicalRectangle.scala diff --git a/src/graphyx/graphics/GraphicalRegularPolygon.scala b/src/main/scala/graphyx/graphics/GraphicalRegularPolygon.scala index fff8a9e..fff8a9e 100644 --- a/src/graphyx/graphics/GraphicalRegularPolygon.scala +++ b/src/main/scala/graphyx/graphics/GraphicalRegularPolygon.scala diff --git a/src/graphyx/graphics/GraphicalRevoluteJoint.scala b/src/main/scala/graphyx/graphics/GraphicalRevoluteJoint.scala index 940a862..940a862 100644 --- a/src/graphyx/graphics/GraphicalRevoluteJoint.scala +++ b/src/main/scala/graphyx/graphics/GraphicalRevoluteJoint.scala diff --git a/src/graphyx/graphics/GraphicalShape.scala b/src/main/scala/graphyx/graphics/GraphicalShape.scala index 256c041..256c041 100644 --- a/src/graphyx/graphics/GraphicalShape.scala +++ b/src/main/scala/graphyx/graphics/GraphicalShape.scala diff --git a/src/graphyx/graphics/GraphicalSpringJoint.scala b/src/main/scala/graphyx/graphics/GraphicalSpringJoint.scala index dbd9d5f..dbd9d5f 100644 --- a/src/graphyx/graphics/GraphicalSpringJoint.scala +++ b/src/main/scala/graphyx/graphics/GraphicalSpringJoint.scala diff --git a/src/graphyx/graphics/GraphicalWorld.scala b/src/main/scala/graphyx/graphics/GraphicalWorld.scala index abc9cbb..abc9cbb 100644 --- a/src/graphyx/graphics/GraphicalWorld.scala +++ b/src/main/scala/graphyx/graphics/GraphicalWorld.scala diff --git a/src/graphyx/graphics/Parser.scala b/src/main/scala/graphyx/graphics/Parser.scala index 785d985..785d985 100644 --- a/src/graphyx/graphics/Parser.scala +++ b/src/main/scala/graphyx/graphics/Parser.scala diff --git a/src/graphyx/graphics/Scene.scala b/src/main/scala/graphyx/graphics/Scene.scala index bb1fd9e..bb1fd9e 100644 --- a/src/graphyx/graphics/Scene.scala +++ b/src/main/scala/graphyx/graphics/Scene.scala diff --git a/src/graphyx/gui/AboutHelpFrame.scala b/src/main/scala/graphyx/gui/AboutHelpFrame.scala index 52bfb73..0bb3c36 100644 --- a/src/graphyx/gui/AboutHelpFrame.scala +++ b/src/main/scala/graphyx/gui/AboutHelpFrame.scala @@ -13,9 +13,9 @@ class AboutHelpFrame extends Frame { |copyright (c) 2009 Jakob Odersky |SiMS and Graphyx are made available under the MIT License | - |http://sourceforge.net/projects/simplemechanics/ + |https://github.com/jodersky/sims | - |Version 1.1""".stripMargin + |Version 1.2""".stripMargin ) {editable = false} } diff --git a/src/graphyx/gui/BodyPopup.scala b/src/main/scala/graphyx/gui/BodyPopup.scala index 998a440..998a440 100644 --- a/src/graphyx/gui/BodyPopup.scala +++ b/src/main/scala/graphyx/gui/BodyPopup.scala diff --git a/src/graphyx/gui/Container.scala b/src/main/scala/graphyx/gui/Container.scala index 80886f8..80886f8 100644 --- a/src/graphyx/gui/Container.scala +++ b/src/main/scala/graphyx/gui/Container.scala diff --git a/src/graphyx/gui/ControlPanel.scala b/src/main/scala/graphyx/gui/ControlPanel.scala index 2cde7e6..43d7305 100644 --- a/src/graphyx/gui/ControlPanel.scala +++ b/src/main/scala/graphyx/gui/ControlPanel.scala @@ -27,7 +27,7 @@ class ControlPanel(container: Container) extends BoxPanel(Orientation.Horizontal reactions += { case ButtonClicked(`btnStart`) => Graphyx.physicsActor ! Start case ButtonClicked(`btnStop`) => Graphyx.physicsActor ! Stop - case ButtonClicked(`btnStep`) => Graphyx.physicsActor.world.step() + case ButtonClicked(`btnStep`) => Graphyx.physicsActor ! Step case ButtonClicked(`btnExit`) => Graphyx.exit case ButtonClicked(`btnFire`) => Graphyx.physicsActor ! FireEvent case ButtonClicked(`btnReset`) => Graphyx.test = Graphyx.tests(cboTest.selection.index) diff --git a/src/graphyx/gui/GravityPanel.scala b/src/main/scala/graphyx/gui/GravityPanel.scala index bdf5245..bdf5245 100644 --- a/src/graphyx/gui/GravityPanel.scala +++ b/src/main/scala/graphyx/gui/GravityPanel.scala diff --git a/src/graphyx/gui/InfoPanel.scala b/src/main/scala/graphyx/gui/InfoPanel.scala index d9dad43..d9dad43 100644 --- a/src/graphyx/gui/InfoPanel.scala +++ b/src/main/scala/graphyx/gui/InfoPanel.scala diff --git a/src/graphyx/gui/MainFrame.scala b/src/main/scala/graphyx/gui/MainFrame.scala index 4fdc9a2..4fdc9a2 100644 --- a/src/graphyx/gui/MainFrame.scala +++ b/src/main/scala/graphyx/gui/MainFrame.scala diff --git a/src/graphyx/gui/MainPanel.scala b/src/main/scala/graphyx/gui/MainPanel.scala index e4989e8..e4989e8 100644 --- a/src/graphyx/gui/MainPanel.scala +++ b/src/main/scala/graphyx/gui/MainPanel.scala diff --git a/src/graphyx/gui/MenuHelp.scala b/src/main/scala/graphyx/gui/MenuHelp.scala index 1c73d51..1c73d51 100644 --- a/src/graphyx/gui/MenuHelp.scala +++ b/src/main/scala/graphyx/gui/MenuHelp.scala diff --git a/src/graphyx/gui/MenuPanel.scala b/src/main/scala/graphyx/gui/MenuPanel.scala index d3196fe..d3196fe 100644 --- a/src/graphyx/gui/MenuPanel.scala +++ b/src/main/scala/graphyx/gui/MenuPanel.scala diff --git a/src/graphyx/gui/OptionsPanel.scala b/src/main/scala/graphyx/gui/OptionsPanel.scala index 525f352..525f352 100644 --- a/src/graphyx/gui/OptionsPanel.scala +++ b/src/main/scala/graphyx/gui/OptionsPanel.scala diff --git a/src/graphyx/gui/PopupMenu.scala b/src/main/scala/graphyx/gui/PopupMenu.scala index 9679018..9679018 100644 --- a/src/graphyx/gui/PopupMenu.scala +++ b/src/main/scala/graphyx/gui/PopupMenu.scala diff --git a/src/graphyx/gui/ShapeInfoPanel.scala b/src/main/scala/graphyx/gui/ShapeInfoPanel.scala index d94c0bd..d94c0bd 100644 --- a/src/graphyx/gui/ShapeInfoPanel.scala +++ b/src/main/scala/graphyx/gui/ShapeInfoPanel.scala diff --git a/src/graphyx/gui/WorldPanel.scala b/src/main/scala/graphyx/gui/WorldPanel.scala index ad14726..ad14726 100644 --- a/src/graphyx/gui/WorldPanel.scala +++ b/src/main/scala/graphyx/gui/WorldPanel.scala diff --git a/src/graphyx/tests/Atom.scala b/src/main/scala/graphyx/tests/Atom.scala index 31d03fc..31d03fc 100644 --- a/src/graphyx/tests/Atom.scala +++ b/src/main/scala/graphyx/tests/Atom.scala diff --git a/src/graphyx/tests/BallStack.scala b/src/main/scala/graphyx/tests/BallStack.scala index 8e45611..8e45611 100644 --- a/src/graphyx/tests/BallStack.scala +++ b/src/main/scala/graphyx/tests/BallStack.scala diff --git a/src/graphyx/tests/Cannon.scala b/src/main/scala/graphyx/tests/Cannon.scala index 01ce4e5..6c59d3f 100644 --- a/src/graphyx/tests/Cannon.scala +++ b/src/main/scala/graphyx/tests/Cannon.scala @@ -16,7 +16,7 @@ object Cannon extends Test{ new Rectangle(0.1,0.1,1) {pos = Vector2D(0.3, 0.2); friction = 0.0} ) hull.fixed = true - hull.rotation -= Math.Pi / 2 + hull.rotation -= math.Pi / 2 val ball = new Body(new Circle(0.1,100) {pos = Vector2D(0.3, 0.56)}) diff --git a/src/graphyx/tests/Carriage.scala b/src/main/scala/graphyx/tests/Carriage.scala index 967c6e5..967c6e5 100644 --- a/src/graphyx/tests/Carriage.scala +++ b/src/main/scala/graphyx/tests/Carriage.scala diff --git a/src/graphyx/tests/Chain.scala b/src/main/scala/graphyx/tests/Chain.scala index 27511ca..27511ca 100644 --- a/src/graphyx/tests/Chain.scala +++ b/src/main/scala/graphyx/tests/Chain.scala diff --git a/src/graphyx/tests/CompositeShape.scala b/src/main/scala/graphyx/tests/CompositeShape.scala index 51ffd0b..184bab9 100644 --- a/src/graphyx/tests/CompositeShape.scala +++ b/src/main/scala/graphyx/tests/CompositeShape.scala @@ -26,11 +26,11 @@ object CompositeShape extends Test{ val o1 = new Circle(0.05,1) val o2 = new Circle(0.05,1) {rotation = 0.3} position(o1) {0.25 above h} - o2.pos = (new Polar(0.25, Math.Pi / 3)) from h + o2.pos = (new Polar(0.25, math.Pi / 3)) from h new Body(h, o1, o2) {pos = Vector2D(0, 0.5)} } world += h2o } } -
\ No newline at end of file + diff --git a/src/graphyx/tests/Cup.scala b/src/main/scala/graphyx/tests/Cup.scala index 598a9be..ad791f0 100644 --- a/src/graphyx/tests/Cup.scala +++ b/src/main/scala/graphyx/tests/Cup.scala @@ -17,7 +17,7 @@ object Cup extends Test { ground.fixed = true world += ground - val cupShapes = for (i <- 0 to (10 * Math.Pi).toInt) yield new Circle(0.1,1) {pos = Vector2D(Math.cos(-i / 10.0), Math.sin(-i / 10.0)); restitution = 0.0; friction = 1.0} + val cupShapes = for (i <- 0 to (10 * math.Pi).toInt) yield new Circle(0.1,1) {pos = Vector2D(math.cos(-i / 10.0), math.sin(-i / 10.0)); restitution = 0.0; friction = 1.0} val cup = new Body(cupShapes: _*) {fixed = true; pos = Vector2D(0, 1)} world += cup diff --git a/src/graphyx/tests/EmptyTest.scala b/src/main/scala/graphyx/tests/EmptyTest.scala index 0e3bd84..0e3bd84 100644 --- a/src/graphyx/tests/EmptyTest.scala +++ b/src/main/scala/graphyx/tests/EmptyTest.scala diff --git a/src/graphyx/tests/Friction.scala b/src/main/scala/graphyx/tests/Friction.scala index ba9fb69..ba9fb69 100644 --- a/src/graphyx/tests/Friction.scala +++ b/src/main/scala/graphyx/tests/Friction.scala diff --git a/src/graphyx/tests/Friction2.scala b/src/main/scala/graphyx/tests/Friction2.scala index 9d03bd9..5204fcf 100644 --- a/src/graphyx/tests/Friction2.scala +++ b/src/main/scala/graphyx/tests/Friction2.scala @@ -23,11 +23,11 @@ object Friction2 extends Test{ val ground = new Body(shapes: _*) ground.pos = Vector2D(0,0) ground.fixed = true - ground.rotation = -Math.Pi / 5 + ground.rotation = -math.Pi / 5 world += ground val b: Body = (new Circle(0.1,10)) ~ (new Circle(0.1,10) {pos = Vector2D(0.2,0)}) ~ (new Circle(0.1,10) {pos = Vector2D(0.4,0)}) b.pos = Vector2D(0.1,0.1) world += b } -}
\ No newline at end of file +} diff --git a/src/graphyx/tests/General1.scala b/src/main/scala/graphyx/tests/General1.scala index 71e041b..4ab401f 100644 --- a/src/graphyx/tests/General1.scala +++ b/src/main/scala/graphyx/tests/General1.scala @@ -54,7 +54,7 @@ object General1 extends Test{ new Rectangle(0.1,0.1,1) {pos = Vector2D(0.3, 0.1)} ) hull.fixed = true - hull.rotation -= Math.Pi / 4 + hull.rotation -= scala.math.Pi / 4 val ball = new Body( new Circle(0.1,20) {pos = Vector2D(0.3, 0.3)} diff --git a/src/graphyx/tests/General2.scala b/src/main/scala/graphyx/tests/General2.scala index 2006080..2006080 100644 --- a/src/graphyx/tests/General2.scala +++ b/src/main/scala/graphyx/tests/General2.scala diff --git a/src/graphyx/tests/Joints1.scala b/src/main/scala/graphyx/tests/Joints1.scala index ad143ec..ad143ec 100644 --- a/src/graphyx/tests/Joints1.scala +++ b/src/main/scala/graphyx/tests/Joints1.scala diff --git a/src/graphyx/tests/Joints2.scala b/src/main/scala/graphyx/tests/Joints2.scala index 9ff5df3..c190bc9 100644 --- a/src/graphyx/tests/Joints2.scala +++ b/src/main/scala/graphyx/tests/Joints2.scala @@ -20,7 +20,7 @@ object Joints2 extends Test{ val distance = 0.2 val anchors = for (i <- (0 until length).toList) yield new Body(new Circle(0.03,1) {pos = Vector2D(i * distance,5)}) {fixed = true} val balls = for (i <- (0 until length).toList) yield new Body(new Circle(0.1,1) {pos = Vector2D(i * distance,0); restitution = 1}) - balls(0).pos = Vector2D(0, 5) + Polar(5, -Math.Pi / 1.5).toCarthesian + balls(0).pos = Vector2D(0, 5) + Polar(5, -math.Pi / 1.5).toCarthesian val joints = for (i <- (0 until length).toList) yield new DistanceJoint(anchors(i), balls(i)) for (a <- anchors) world += a for (b <- balls) world += b diff --git a/src/graphyx/tests/Net.scala b/src/main/scala/graphyx/tests/Net.scala index c340a80..c340a80 100644 --- a/src/graphyx/tests/Net.scala +++ b/src/main/scala/graphyx/tests/Net.scala diff --git a/src/graphyx/tests/RagdollTest.scala b/src/main/scala/graphyx/tests/RagdollTest.scala index 63c9ce5..63c9ce5 100644 --- a/src/graphyx/tests/RagdollTest.scala +++ b/src/main/scala/graphyx/tests/RagdollTest.scala diff --git a/src/graphyx/tests/Restitution.scala b/src/main/scala/graphyx/tests/Restitution.scala index 9501a36..9501a36 100644 --- a/src/graphyx/tests/Restitution.scala +++ b/src/main/scala/graphyx/tests/Restitution.scala diff --git a/src/graphyx/tests/Spring.scala b/src/main/scala/graphyx/tests/Spring.scala index e7fecb8..e7fecb8 100644 --- a/src/graphyx/tests/Spring.scala +++ b/src/main/scala/graphyx/tests/Spring.scala diff --git a/src/graphyx/tests/Stacking.scala b/src/main/scala/graphyx/tests/Stacking.scala index 63734b6..63734b6 100644 --- a/src/graphyx/tests/Stacking.scala +++ b/src/main/scala/graphyx/tests/Stacking.scala diff --git a/src/graphyx/tests/Test.scala b/src/main/scala/graphyx/tests/Test.scala index ca0f8e8..ca0f8e8 100644 --- a/src/graphyx/tests/Test.scala +++ b/src/main/scala/graphyx/tests/Test.scala diff --git a/src/graphyx/tests/Wave.scala b/src/main/scala/graphyx/tests/Wave.scala index d3359c1..d3359c1 100644 --- a/src/graphyx/tests/Wave.scala +++ b/src/main/scala/graphyx/tests/Wave.scala diff --git a/src/sims/collision/AABB.scala b/src/main/scala/sims/collision/AABB.scala index f3a0b71..f3a0b71 100644 --- a/src/sims/collision/AABB.scala +++ b/src/main/scala/sims/collision/AABB.scala diff --git a/src/sims/collision/CircleCollision.scala b/src/main/scala/sims/collision/CircleCollision.scala index 04cf2d7..04cf2d7 100644 --- a/src/sims/collision/CircleCollision.scala +++ b/src/main/scala/sims/collision/CircleCollision.scala diff --git a/src/sims/collision/Collision.scala b/src/main/scala/sims/collision/Collision.scala index 540081a..65111c6 100644 --- a/src/sims/collision/Collision.scala +++ b/src/main/scala/sims/collision/Collision.scala @@ -71,7 +71,7 @@ abstract class Collision extends Constraint { val m = if (invMass == 0.0) 0.0 else 1/invMass val lambda = -m * Cdot val cf = shape1.friction * shape2.friction - val cl = Math.min(Math.max(-normalForce * cf * h, lambda), normalForce * cf * h) + val cl = math.min(math.max(-normalForce * cf * h, lambda), normalForce * cf * h) val impulse = tangent * cl b1.applyImpulse(-impulse, point) b2.applyImpulse(impulse, point) diff --git a/src/sims/collision/Detector.scala b/src/main/scala/sims/collision/Detector.scala index 96af5dc..96af5dc 100644 --- a/src/sims/collision/Detector.scala +++ b/src/main/scala/sims/collision/Detector.scala diff --git a/src/sims/collision/GridDetector.scala b/src/main/scala/sims/collision/GridDetector.scala index 9a71c6d..2196195 100644 --- a/src/sims/collision/GridDetector.scala +++ b/src/main/scala/sims/collision/GridDetector.scala @@ -104,7 +104,7 @@ class GridDetector(override val world: World) extends Detector { if (s1.collidable && s2.collidable); if (s1.AABB overlaps s2.AABB); if (!s1.transientShapes.contains(s2) && !s2.transientShapes.contains(s1))) yield Pair(s1, s2) - ).removeDuplicates + ).distinct } ps.toSeq } diff --git a/src/sims/collision/Overlap.scala b/src/main/scala/sims/collision/Overlap.scala index 97ecdd6..97ecdd6 100644 --- a/src/sims/collision/Overlap.scala +++ b/src/main/scala/sims/collision/Overlap.scala diff --git a/src/sims/collision/Pair.scala b/src/main/scala/sims/collision/Pair.scala index a01fb00..a01fb00 100644 --- a/src/sims/collision/Pair.scala +++ b/src/main/scala/sims/collision/Pair.scala diff --git a/src/sims/collision/PolyCircleCollision.scala b/src/main/scala/sims/collision/PolyCircleCollision.scala index 20f1d49..20f1d49 100644 --- a/src/sims/collision/PolyCircleCollision.scala +++ b/src/main/scala/sims/collision/PolyCircleCollision.scala diff --git a/src/sims/collision/PolyCollision.scala b/src/main/scala/sims/collision/PolyCollision.scala index 5296f41..5296f41 100644 --- a/src/sims/collision/PolyCollision.scala +++ b/src/main/scala/sims/collision/PolyCollision.scala diff --git a/src/sims/dynamics/Body.scala b/src/main/scala/sims/dynamics/Body.scala index 8c0e2ee..8c0e2ee 100644 --- a/src/sims/dynamics/Body.scala +++ b/src/main/scala/sims/dynamics/Body.scala diff --git a/src/sims/dynamics/Circle.scala b/src/main/scala/sims/dynamics/Circle.scala index b1d3703..d6db07d 100644 --- a/src/sims/dynamics/Circle.scala +++ b/src/main/scala/sims/dynamics/Circle.scala @@ -16,7 +16,7 @@ import sims.collision._ */ case class Circle(radius: Double, density: Double) extends Shape{ - val volume = Math.Pi * radius * radius + val volume = math.Pi * radius * radius val I = mass * radius * radius / 2 diff --git a/src/sims/dynamics/Constraint.scala b/src/main/scala/sims/dynamics/Constraint.scala index eaa6952..eaa6952 100644 --- a/src/sims/dynamics/Constraint.scala +++ b/src/main/scala/sims/dynamics/Constraint.scala diff --git a/src/sims/dynamics/Rectangle.scala b/src/main/scala/sims/dynamics/Rectangle.scala index 89ab4c0..89ab4c0 100644 --- a/src/sims/dynamics/Rectangle.scala +++ b/src/main/scala/sims/dynamics/Rectangle.scala diff --git a/src/sims/dynamics/RegularPolygon.scala b/src/main/scala/sims/dynamics/RegularPolygon.scala index b49d100..6f08ca1 100644 --- a/src/sims/dynamics/RegularPolygon.scala +++ b/src/main/scala/sims/dynamics/RegularPolygon.scala @@ -6,7 +6,7 @@ package sims.dynamics -import Math._ +import math._ import sims.geometry._ /**A regular polygon with <code>n</code> sides whose excircle has a radius <code>radius</code>. diff --git a/src/sims/dynamics/Shape.scala b/src/main/scala/sims/dynamics/Shape.scala index 47a4199..47a4199 100644 --- a/src/sims/dynamics/Shape.scala +++ b/src/main/scala/sims/dynamics/Shape.scala diff --git a/src/sims/dynamics/World.scala b/src/main/scala/sims/dynamics/World.scala index f24a3fd..f24a3fd 100644 --- a/src/sims/dynamics/World.scala +++ b/src/main/scala/sims/dynamics/World.scala diff --git a/src/sims/dynamics/joints/DistanceJoint.scala b/src/main/scala/sims/dynamics/joints/DistanceJoint.scala index 1bf9b46..1bf9b46 100644 --- a/src/sims/dynamics/joints/DistanceJoint.scala +++ b/src/main/scala/sims/dynamics/joints/DistanceJoint.scala diff --git a/src/sims/dynamics/joints/ForceJoint.scala b/src/main/scala/sims/dynamics/joints/ForceJoint.scala index 2074ee4..2074ee4 100644 --- a/src/sims/dynamics/joints/ForceJoint.scala +++ b/src/main/scala/sims/dynamics/joints/ForceJoint.scala diff --git a/src/sims/dynamics/joints/Joint.scala b/src/main/scala/sims/dynamics/joints/Joint.scala index 652df97..652df97 100644 --- a/src/sims/dynamics/joints/Joint.scala +++ b/src/main/scala/sims/dynamics/joints/Joint.scala diff --git a/src/sims/dynamics/joints/RevoluteJoint.scala b/src/main/scala/sims/dynamics/joints/RevoluteJoint.scala index 66a4c06..bf6f05e 100644 --- a/src/sims/dynamics/joints/RevoluteJoint.scala +++ b/src/main/scala/sims/dynamics/joints/RevoluteJoint.scala @@ -9,7 +9,7 @@ package sims.dynamics.joints import sims.geometry._ import sims.math._ import sims.dynamics._ -import Math._ +import math._ /**A revolute joint that connects two bodies at a singe point. Inspired from JBox2D. * <b>Warning:</b> there are still several bugs with revolute joints, if they are between two free diff --git a/src/sims/dynamics/joints/SpringJoint.scala b/src/main/scala/sims/dynamics/joints/SpringJoint.scala index 4d44864..10d5afb 100644 --- a/src/sims/dynamics/joints/SpringJoint.scala +++ b/src/main/scala/sims/dynamics/joints/SpringJoint.scala @@ -71,7 +71,7 @@ case class SpringJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2: Vec val Cdot = x.unit dot v val invMass = 1/node1.mass + 1/node1.I * cr1 * cr1 + 1/node2.mass + 1/node2.I * cr2 * cr2 //=J M^-1 JT val m = if (invMass == 0.0) 0.0 else 1/invMass - val lambda = Math.min(Math.max(-this.force * h, (-m * Cdot)), this.force * h) + val lambda = math.min(math.max(-this.force * h, (-m * Cdot)), this.force * h) println (force * h, -m * Cdot) val impulse = x.unit * lambda node1.applyImpulse(-impulse, connection1) @@ -82,4 +82,4 @@ case class SpringJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2: Vec def correctPosition(h: Double) = { } -}
\ No newline at end of file +} diff --git a/src/sims/dynamics/joints/test/PrismaticJoint.scala b/src/main/scala/sims/dynamics/joints/test/PrismaticJoint.scala index 040647d..040647d 100644 --- a/src/sims/dynamics/joints/test/PrismaticJoint.scala +++ b/src/main/scala/sims/dynamics/joints/test/PrismaticJoint.scala diff --git a/src/sims/dynamics/joints/test/UnitCircleJoint.scala b/src/main/scala/sims/dynamics/joints/test/UnitCircleJoint.scala index 09e72d9..09e72d9 100644 --- a/src/sims/dynamics/joints/test/UnitCircleJoint.scala +++ b/src/main/scala/sims/dynamics/joints/test/UnitCircleJoint.scala diff --git a/src/sims/geometry/ConvexPolygon.scala b/src/main/scala/sims/geometry/ConvexPolygon.scala index 0b05aaa..bfd17a1 100644 --- a/src/sims/geometry/ConvexPolygon.scala +++ b/src/main/scala/sims/geometry/ConvexPolygon.scala @@ -27,8 +27,8 @@ trait ConvexPolygon { val points = for (v <- vertices) yield {v project axis} val bounds = for (p <- points) yield {if (axis.x != 0) p.x / axis.x else p.y / axis.y} Projection(axis, - (bounds(0) /: bounds)(Math.min(_,_)), - (bounds(0) /: bounds)(Math.max(_,_))) + (bounds(0) /: bounds)(math.min(_,_)), + (bounds(0) /: bounds)(math.max(_,_))) } /**Returns this polygon's axis aligned bounding box. diff --git a/src/sims/geometry/Projection.scala b/src/main/scala/sims/geometry/Projection.scala index 0c340f0..9957c73 100644 --- a/src/sims/geometry/Projection.scala +++ b/src/main/scala/sims/geometry/Projection.scala @@ -30,6 +30,6 @@ case class Projection(axis: Vector2D, * @throws IllegalArgumentExcepion if both projections axes aren't the same*/ def overlap(other: Projection): Double = { require(axis == other.axis, "Cannot compare two projections on different axes!") - (Math.max(lower, other.lower) - Math.min(upper, other.upper)).abs + (math.max(lower, other.lower) - math.min(upper, other.upper)).abs } } diff --git a/src/sims/geometry/Ray.scala b/src/main/scala/sims/geometry/Ray.scala index feb18a9..1cca8d5 100644 --- a/src/sims/geometry/Ray.scala +++ b/src/main/scala/sims/geometry/Ray.scala @@ -7,7 +7,7 @@ package sims.geometry import sims.math._ -import Math._ +import scala.math._ /**A ray. * @param point a point on the ray diff --git a/src/sims/geometry/Segment.scala b/src/main/scala/sims/geometry/Segment.scala index 4aaec21..4aaec21 100644 --- a/src/sims/geometry/Segment.scala +++ b/src/main/scala/sims/geometry/Segment.scala diff --git a/src/sims/geometry/Vector2D.scala b/src/main/scala/sims/geometry/Vector2D.scala index 4468a90..8d5205f 100644 --- a/src/sims/geometry/Vector2D.scala +++ b/src/main/scala/sims/geometry/Vector2D.scala @@ -6,7 +6,7 @@ package sims.geometry -import scala.Math._ +import scala.math._ /**A 2D vector. * @param x 1st component @@ -35,7 +35,7 @@ case class Vector2D(x: Double, y: Double) { def cross(v: Vector2D): Double = x * v.y - y * v.x /**Norm or length of this vector.*/ - val length: Double = Math.sqrt(x * x + y * y) + val length: Double = math.sqrt(x * x + y * y) /**Unit vector.*/ def unit: Vector2D = if (!(x == 0.0 && y == 0.0)) Vector2D(x / length, y / length) diff --git a/src/sims/materials/Material.scala b/src/main/scala/sims/materials/Material.scala index b05e082..b05e082 100644 --- a/src/sims/materials/Material.scala +++ b/src/main/scala/sims/materials/Material.scala diff --git a/src/sims/materials/Rubber.scala b/src/main/scala/sims/materials/Rubber.scala index b408d2d..b408d2d 100644 --- a/src/sims/materials/Rubber.scala +++ b/src/main/scala/sims/materials/Rubber.scala diff --git a/src/sims/materials/Steel.scala b/src/main/scala/sims/materials/Steel.scala index 1d14563..1d14563 100644 --- a/src/sims/materials/Steel.scala +++ b/src/main/scala/sims/materials/Steel.scala diff --git a/src/sims/math/Matrix22.scala b/src/main/scala/sims/math/Matrix22.scala index 54d24c7..54d24c7 100644 --- a/src/sims/math/Matrix22.scala +++ b/src/main/scala/sims/math/Matrix22.scala diff --git a/src/sims/prefabs/Net.scala b/src/main/scala/sims/prefabs/Net.scala index d3f4d57..d3f4d57 100644 --- a/src/sims/prefabs/Net.scala +++ b/src/main/scala/sims/prefabs/Net.scala diff --git a/src/sims/prefabs/Prefab.scala b/src/main/scala/sims/prefabs/Prefab.scala index 84bb3b7..84bb3b7 100644 --- a/src/sims/prefabs/Prefab.scala +++ b/src/main/scala/sims/prefabs/Prefab.scala diff --git a/src/sims/prefabs/Pylon.scala b/src/main/scala/sims/prefabs/Pylon.scala index 7f3211f..7f3211f 100644 --- a/src/sims/prefabs/Pylon.scala +++ b/src/main/scala/sims/prefabs/Pylon.scala diff --git a/src/sims/prefabs/Ragdoll.scala b/src/main/scala/sims/prefabs/Ragdoll.scala index 00e4b8d..00e4b8d 100644 --- a/src/sims/prefabs/Ragdoll.scala +++ b/src/main/scala/sims/prefabs/Ragdoll.scala diff --git a/src/sims/util/Polar.scala b/src/main/scala/sims/util/Polar.scala index c4009b5..494c984 100644 --- a/src/sims/util/Polar.scala +++ b/src/main/scala/sims/util/Polar.scala @@ -7,7 +7,7 @@ package sims.util import sims.geometry._ -import scala.Math._ +import scala.math._ /**Polar coordinates.*/ case class Polar(distance: Double, angle: Double) { diff --git a/src/sims/util/Positioning.scala b/src/main/scala/sims/util/Positioning.scala index cf72276..cf72276 100644 --- a/src/sims/util/Positioning.scala +++ b/src/main/scala/sims/util/Positioning.scala diff --git a/src/sims/util/RelativeVector.scala b/src/main/scala/sims/util/RelativeVector.scala index 374f92c..374f92c 100644 --- a/src/sims/util/RelativeVector.scala +++ b/src/main/scala/sims/util/RelativeVector.scala |