summaryrefslogtreecommitdiff
path: root/src/graphyx/graphics/GraphicalWorld.scala
blob: abc9cbb5467f9d59f89f263ebce85cbe2f74a5d0 (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
/*
 * Graphyx
 * copyright (c) 2009 Jakob Odersky
 * made available under the MIT License
*/

package graphyx.graphics

import sims.dynamics._
case class GraphicalWorld(real: World){
  val time = real.time
  val timeStep = real.timeStep
  val iterations = real.iterations
  val overCWarning = real.overCWarning
  val gravity = real.gravity
  val monitorResults = for (m <- real.monitors) yield
    new MonitorResult(m,
                      for (b <- real.bodies.toList; if (b.monitor)) yield (b.uid, m._1, m._2(b))
    )
  val monitorFlatResults = for (b <- real.bodies; m <- real.monitors; if (b.monitor)) yield (b.uid, m._1, m._2(b))
  val enableCollisionDetection = real.enableCollisionDetection
  val enablePositionCorrection = real.enablePositionCorrection
}

class MonitorResult (
  val monitor: (String, Body => Any),
  val results: List[(Int, String, Any)]
)