summaryrefslogblamecommitdiff
path: root/src/graphyx/tests/Joints2.scala
blob: 9ff5df323b3c0442fea58cd5a0bf22bacec3f2ff (plain) (tree)




























                                                                                                                                       
/*
 * Graphyx
 * copyright (c) 2009 Jakob Odersky
 * made available under the MIT License
*/

package graphyx.tests

import sims.dynamics._
import sims.dynamics.joints._
import sims.geometry._
import sims.util._
import sims.util.Positioning._

object Joints2 extends Test{
  override val title = "Joints2"
  val world = new World
  def init() = {
    val length = 100
    val distance = 0.2
    val anchors = for (i <- (0 until length).toList) yield new Body(new Circle(0.03,1) {pos = Vector2D(i * distance,5)}) {fixed = true}
    val balls = for (i <- (0 until length).toList) yield new Body(new Circle(0.1,1) {pos = Vector2D(i * distance,0); restitution = 1})
    balls(0).pos = Vector2D(0, 5) + Polar(5, -Math.Pi / 1.5).toCarthesian
    val joints = for (i <- (0 until length).toList) yield new DistanceJoint(anchors(i), balls(i))
    for (a <- anchors) world += a
    for (b <- balls) world += b
    for (j <- joints) world += j
  }
}