summaryrefslogtreecommitdiff
path: root/src/graphyx/tests/Atom.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/graphyx/tests/Atom.scala')
-rw-r--r--src/graphyx/tests/Atom.scala35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/graphyx/tests/Atom.scala b/src/graphyx/tests/Atom.scala
new file mode 100644
index 0000000..84fe05c
--- /dev/null
+++ b/src/graphyx/tests/Atom.scala
@@ -0,0 +1,35 @@
+package graphyx.tests
+
+import sims.dynamics._
+import sims.dynamics.joints._
+import sims.geometry._
+
+object Atom extends Test{
+ val title = "Atom"
+ val world = new World
+
+ var nucleus = new Body(Circle(0.05, 1000)) {fixed = true}
+ var electrons: List[Body] = Nil
+ var connections: List[SpringJoint] = Nil
+
+ def init = {
+ world -= nucleus
+ nucleus = new Body(Circle(0.05, 10)) {fixed = true}
+ world += nucleus
+ world --= electrons
+ electrons = Nil
+ for (c <- connections) world -= c
+ connections = Nil
+ }
+
+ override def fireEvent = {
+ val e = (new Circle(0.1, 10) {pos = Vector2D(0, -1)}).asBody
+ e.linearVelocity = Vector2D(-50,100)
+ electrons = e :: electrons
+ world += e
+
+ val c = new SpringJoint(nucleus, e, 500)
+ connections = c :: connections
+ world += c
+ }
+}