summaryrefslogtreecommitdiff
path: root/src/graphyx/tests/Atom.scala
blob: 84fe05c3e673cac88abac168f0136f1e2bc83860 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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
  }
}