summaryrefslogtreecommitdiff
path: root/src/graphyx/tests/Wave.scala
blob: 62ec194625899654b32227b949ff327594cd859a (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
package graphyx.tests

import sims.dynamics._
import sims.dynamics.joints._
import sims.dynamics.joints.test._
import sims.geometry._

object Wave extends Test{
  val title = "Wave"
  val world = new World {gravity = Vector2D.Null}
  
  def init = {
    val n = 50
    val anchors = for (i <- (0 to n).toList) yield (new Body(new Circle(0.01,1) {pos = Vector2D(0.4 * i, 5)}) {fixed = true})
    val particles = for (i <- (0 to n).toList) yield (new Body(new Circle(0.1,10) {pos = Vector2D(0.4 * i, 0)}))
    val rails = (for (i <- (0 to n).toList) yield (new PrismaticJoint(anchors(i), particles(i))))
    val springs = (for (i <- (0 to n).toList) yield (new SpringJoint(anchors(i), particles(i), 5)))// {damping = 0.00}))
    world ++= anchors
    world ++= particles
    for (j <- rails ++ springs) world += j
    
    val lateralSprings = (for (i <- (0 to (n - 1)).toList) yield (new SpringJoint(particles(i), particles(i + 1), 50.0)))
    for (j <- lateralSprings) world += j
    
  }
  
}