diff options
Diffstat (limited to 'src/main/scala/graphyx/tests/Wave.scala')
-rw-r--r-- | src/main/scala/graphyx/tests/Wave.scala | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/scala/graphyx/tests/Wave.scala b/src/main/scala/graphyx/tests/Wave.scala new file mode 100644 index 0000000..d3359c1 --- /dev/null +++ b/src/main/scala/graphyx/tests/Wave.scala @@ -0,0 +1,34 @@ +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}) + + val lateralSprings = for (i <- (0 to (n - 1)).toList) yield + new SpringJoint(particles(i), particles(i + 1), 50.0) + + world ++= anchors + world ++= particles + for (j <- rails ++ springs ++ lateralSprings) world += j + } +} |