summaryrefslogtreecommitdiff
path: root/src/main/scala/graphyx/tests/Wave.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/graphyx/tests/Wave.scala')
-rw-r--r--src/main/scala/graphyx/tests/Wave.scala34
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
+ }
+}