summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2009-11-29 16:15:03 +0000
committerJakob Odersky <jodersky@gmail.com>2009-11-29 16:15:03 +0000
commitbe2ee4dea92c5a4fc2329959d6e7272c50b221a6 (patch)
treeb2c98b44cbf732e6374d523cc397fa118457d4eb
parent5031df4b26afd515274b5ca34f0d5380a99e4223 (diff)
downloadsims-be2ee4dea92c5a4fc2329959d6e7272c50b221a6.tar.gz
sims-be2ee4dea92c5a4fc2329959d6e7272c50b221a6.tar.bz2
sims-be2ee4dea92c5a4fc2329959d6e7272c50b221a6.zip
Translated comments to english.
-rw-r--r--doc/all-classes.html6
-rw-r--r--doc/graphyx/graphics/GraphicalCircle.html4
-rw-r--r--doc/graphyx/graphics/GraphicalRectangle.html4
-rw-r--r--doc/graphyx/graphics/GraphicalRegularPolygon.html4
-rw-r--r--doc/graphyx/graphics/GraphicalShape.html8
-rw-r--r--doc/graphyx/graphics/Parser$object.html22
-rw-r--r--doc/graphyx/graphics/Scene.html4
-rw-r--r--doc/graphyx/gui/OptionsPanel.html40
-rw-r--r--doc/graphyx/gui/WorldPanel.html60
-rw-r--r--doc/graphyx/tests$content.html33
-rw-r--r--doc/graphyx/tests$package.html7
-rw-r--r--doc/graphyx/tests/Atom$object.html256
-rw-r--r--doc/graphyx/tests/Spring$object.html169
-rw-r--r--doc/graphyx/tests/Test.html2
-rw-r--r--doc/graphyx/tests/Wave$object.html169
-rw-r--r--doc/modules.html2
-rw-r--r--doc/root-content.html5
-rw-r--r--doc/sims/collision$content.html21
-rw-r--r--doc/sims/collision/AABB.html13
-rw-r--r--doc/sims/collision/CircleCollision.html18
-rw-r--r--doc/sims/collision/Collision$object.html4
-rw-r--r--doc/sims/collision/Collision.html32
-rw-r--r--doc/sims/collision/Detector.html10
-rw-r--r--doc/sims/collision/GridDetector.html56
-rw-r--r--doc/sims/collision/Pair.html2
-rw-r--r--doc/sims/collision/PolyCircleCollision.html18
-rw-r--r--doc/sims/collision/PolyCollision.html18
-rw-r--r--doc/sims/dynamics$content.html18
-rw-r--r--doc/sims/dynamics/Body.html191
-rw-r--r--doc/sims/dynamics/Circle.html42
-rw-r--r--doc/sims/dynamics/Constraint.html20
-rw-r--r--doc/sims/dynamics/Rectangle.html51
-rw-r--r--doc/sims/dynamics/RegularPolygon.html28
-rw-r--r--doc/sims/dynamics/Shape.html182
-rw-r--r--doc/sims/dynamics/World.html149
-rw-r--r--doc/sims/dynamics/joints$content.html14
-rw-r--r--doc/sims/dynamics/joints/DistanceJoint.html32
-rw-r--r--doc/sims/dynamics/joints/ForceJoint.html6
-rw-r--r--doc/sims/dynamics/joints/Joint.html22
-rw-r--r--doc/sims/dynamics/joints/RevoluteJoint.html12
-rw-r--r--doc/sims/dynamics/joints/SpringJoint.html79
-rw-r--r--doc/sims/dynamics/joints/test$content.html45
-rw-r--r--doc/sims/dynamics/joints/test$package.html17
-rw-r--r--doc/sims/dynamics/joints/test/PrismaticJoint$object.html82
-rw-r--r--doc/sims/dynamics/joints/test/PrismaticJoint.html502
-rw-r--r--doc/sims/dynamics/joints/test/UnitCircleJoint.html261
-rw-r--r--doc/sims/geometry$content.html12
-rw-r--r--doc/sims/geometry/ConvexPolygon.html47
-rw-r--r--doc/sims/geometry/Projection.html20
-rw-r--r--doc/sims/geometry/Ray.html24
-rw-r--r--doc/sims/geometry/Segment.html29
-rw-r--r--doc/sims/geometry/Vector2D$object.html14
-rw-r--r--doc/sims/geometry/Vector2D.html96
-rw-r--r--doc/sims/math$content.html2
-rw-r--r--doc/sims/math/Matrix22.html43
-rw-r--r--doc/sims/util$content.html4
-rw-r--r--doc/sims/util/Polar.html6
-rw-r--r--doc/sims/util/Positioning$object.html2
-rw-r--r--doc/sims/util/RelativeVector.html16
-rw-r--r--src/graphyx/tests/Friction2.scala2
-rw-r--r--src/graphyx/tests/General1.scala2
-rw-r--r--src/graphyx/tests/Spring.scala4
-rw-r--r--src/sims/collision/AABB.scala13
-rw-r--r--src/sims/collision/CircleCollision.scala2
-rw-r--r--src/sims/collision/Collision.scala12
-rw-r--r--src/sims/collision/Detector.scala6
-rw-r--r--src/sims/collision/GridDetector.scala38
-rw-r--r--src/sims/collision/Pair.scala2
-rw-r--r--src/sims/collision/PolyCircleCollision.scala4
-rw-r--r--src/sims/collision/PolyCollision.scala2
-rw-r--r--src/sims/dynamics/Body.scala104
-rw-r--r--src/sims/dynamics/Circle.scala11
-rw-r--r--src/sims/dynamics/Constraint.scala12
-rw-r--r--src/sims/dynamics/Rectangle.scala22
-rw-r--r--src/sims/dynamics/RegularPolygon.scala18
-rw-r--r--src/sims/dynamics/Shape.scala70
-rw-r--r--src/sims/dynamics/World.scala84
-rw-r--r--src/sims/dynamics/joints/DistanceJoint.scala36
-rw-r--r--src/sims/dynamics/joints/ForceJoint.scala4
-rw-r--r--src/sims/dynamics/joints/Joint.scala12
-rw-r--r--src/sims/dynamics/joints/RevoluteJoint.scala4
-rw-r--r--src/sims/dynamics/joints/SpringJoint.scala44
-rw-r--r--src/sims/dynamics/joints/test/PrismaticJoint.scala26
-rw-r--r--src/sims/geometry/ConvexPolygon.scala33
-rw-r--r--src/sims/geometry/Projection.scala19
-rw-r--r--src/sims/geometry/Ray.scala20
-rw-r--r--src/sims/geometry/Segment.scala28
-rw-r--r--src/sims/geometry/Vector2D.scala60
-rw-r--r--src/sims/materials/Steel.scala2
-rw-r--r--src/sims/math/Matrix22.scala26
-rw-r--r--src/sims/util/Polar.scala4
-rw-r--r--src/sims/util/Positioning.scala2
92 files changed, 2708 insertions, 1075 deletions
diff --git a/doc/all-classes.html b/doc/all-classes.html
index a5b98a0..c31b553 100644
--- a/doc/all-classes.html
+++ b/doc/all-classes.html
@@ -55,6 +55,7 @@
<li><a href="sims/collision/PolyCollision.html" target="contentFrame">PolyCollision</a></li>
<li><a href="graphyx/gui/PopupMenu.html" target="contentFrame">PopupMenu</a></li>
<li><a href="sims/prefabs/Prefab.html" target="contentFrame">Prefab</a></li>
+<li><a href="sims/dynamics/joints/test/PrismaticJoint.html" target="contentFrame">PrismaticJoint</a></li>
<li><a href="sims/geometry/Projection.html" target="contentFrame">Projection</a></li>
<li><a href="sims/prefabs/Pylon.html" target="contentFrame">Pylon</a></li>
<li id="Classes_R"><a href="sims/prefabs/Ragdoll.html" target="contentFrame">Ragdoll</a></li>
@@ -70,6 +71,7 @@
<li><a href="graphyx/gui/ShapeInfoPanel.html" target="contentFrame">ShapeInfoPanel</a></li>
<li><a href="sims/dynamics/joints/SpringJoint.html" target="contentFrame">SpringJoint</a></li>
<li id="Classes_T"><a href="graphyx/tests/Test.html" target="contentFrame">Test</a></li>
+<li id="Classes_U"><a href="sims/dynamics/joints/test/UnitCircleJoint.html" target="contentFrame">UnitCircleJoint</a></li>
<li id="Classes_V"><a href="sims/geometry/Vector2D.html" target="contentFrame">Vector2D</a></li>
<li id="Classes_W"><a href="sims/dynamics/World.html" target="contentFrame">World</a></li>
<li><a href="graphyx/gui/WorldPanel.html" target="contentFrame">WorldPanel</a></li>
@@ -77,6 +79,7 @@
<div class="kinds" id="Objects">Objects</div><ul class="list">
<li id="Objects_A"><a href="sims/collision/AABB$object.html" target="contentFrame">AABB</a></li>
<li><a href="graphyx/gui/AboutHelpFrame$object.html" target="contentFrame">AboutHelpFrame</a></li>
+<li><a href="graphyx/tests/Atom$object.html" target="contentFrame">Atom</a></li>
<li id="Objects_B"><a href="graphyx/tests/BallStack$object.html" target="contentFrame">BallStack</a></li>
<li><a href="sims/dynamics/Body$object.html" target="contentFrame">Body</a></li>
<li id="Objects_C"><a href="graphyx/tests/Carriage$object.html" target="contentFrame">Carriage</a></li>
@@ -117,6 +120,7 @@
<li><a href="sims/collision/PolyCircleCollision$object.html" target="contentFrame">PolyCircleCollision</a></li>
<li><a href="sims/collision/PolyCollision$object.html" target="contentFrame">PolyCollision</a></li>
<li><a href="sims/util/Positioning$object.html" target="contentFrame">Positioning</a></li>
+<li><a href="sims/dynamics/joints/test/PrismaticJoint$object.html" target="contentFrame">PrismaticJoint</a></li>
<li><a href="sims/geometry/Projection$object.html" target="contentFrame">Projection</a></li>
<li id="Objects_R"><a href="graphyx/tests/RagdollTest$object.html" target="contentFrame">RagdollTest</a></li>
<li><a href="sims/geometry/Ray$object.html" target="contentFrame">Ray</a></li>
@@ -128,10 +132,12 @@
<li><a href="sims/geometry/Segment$object.html" target="contentFrame">Segment</a></li>
<li><a href="graphyx/actors/SetWorld$object.html" target="contentFrame">SetWorld</a></li>
<li><a href="sims/dynamics/Shape$object.html" target="contentFrame">Shape</a></li>
+<li><a href="graphyx/tests/Spring$object.html" target="contentFrame">Spring</a></li>
<li><a href="sims/dynamics/joints/SpringJoint$object.html" target="contentFrame">SpringJoint</a></li>
<li><a href="graphyx/tests/Stacking$object.html" target="contentFrame">Stacking</a></li>
<li><a href="graphyx/actors/Start$object.html" target="contentFrame">Start</a></li>
<li><a href="graphyx/actors/Stop$object.html" target="contentFrame">Stop</a></li>
<li id="Objects_V"><a href="sims/geometry/Vector2D$object.html" target="contentFrame">Vector2D</a></li>
+<li id="Objects_W"><a href="graphyx/tests/Wave$object.html" target="contentFrame">Wave</a></li>
</ul></div></body>
</html> \ No newline at end of file
diff --git a/doc/graphyx/graphics/GraphicalCircle.html b/doc/graphyx/graphics/GraphicalCircle.html
index 1cf6174..613c136 100644
--- a/doc/graphyx/graphics/GraphicalCircle.html
+++ b/doc/graphyx/graphics/GraphicalCircle.html
@@ -61,7 +61,7 @@
Values and Variables inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
+ <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
</td></tr>
</table>
<table summary="" cellpadding="3" class="member">
@@ -163,7 +163,7 @@
Methods inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Shape%29" target="_self">^</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Body%29" target="_self">^</a>
+ <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Shape%29" target="_self">~</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Body%29" target="_self">~</a>
</td></tr>
</table><table summary="" cellpadding="3" class="inherited">
<tr><td class="title" colspan="2">
diff --git a/doc/graphyx/graphics/GraphicalRectangle.html b/doc/graphyx/graphics/GraphicalRectangle.html
index 264601b..27d2809 100644
--- a/doc/graphyx/graphics/GraphicalRectangle.html
+++ b/doc/graphyx/graphics/GraphicalRectangle.html
@@ -61,7 +61,7 @@
Values and Variables inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
+ <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
</td></tr>
</table>
<table summary="" cellpadding="3" class="member">
@@ -170,7 +170,7 @@
Methods inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Shape%29" target="_self">^</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Body%29" target="_self">^</a>
+ <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Shape%29" target="_self">~</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Body%29" target="_self">~</a>
</td></tr>
</table><table summary="" cellpadding="3" class="inherited">
<tr><td class="title" colspan="2">
diff --git a/doc/graphyx/graphics/GraphicalRegularPolygon.html b/doc/graphyx/graphics/GraphicalRegularPolygon.html
index a86cedf..ee4a7aa 100644
--- a/doc/graphyx/graphics/GraphicalRegularPolygon.html
+++ b/doc/graphyx/graphics/GraphicalRegularPolygon.html
@@ -61,7 +61,7 @@
Values and Variables inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
+ <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
</td></tr>
</table>
<table summary="" cellpadding="3" class="member">
@@ -170,7 +170,7 @@
Methods inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Shape%29" target="_self">^</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Body%29" target="_self">^</a>
+ <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Shape%29" target="_self">~</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Body%29" target="_self">~</a>
</td></tr>
</table><table summary="" cellpadding="3" class="inherited">
<tr><td class="title" colspan="2">
diff --git a/doc/graphyx/graphics/GraphicalShape.html b/doc/graphyx/graphics/GraphicalShape.html
index 5f45529..574ec35 100644
--- a/doc/graphyx/graphics/GraphicalShape.html
+++ b/doc/graphyx/graphics/GraphicalShape.html
@@ -59,7 +59,7 @@
<em><a href="../../graphyx/graphics/GraphicalShape.html#uid" target="_self">uid</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
- <div>Einzigartige Identifikationsnummer.</div>
+ <div>Unique identification number.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -74,7 +74,7 @@
Values and Variables inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#density" target="_self">density</a> (abstract), <a href="../../sims/dynamics/Shape.html#volume" target="_self">volume</a> (abstract), <a href="../../sims/dynamics/Shape.html#I" target="_self">I</a> (abstract), <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
+ <a href="../../sims/dynamics/Shape.html#density" target="_self">density</a> (abstract), <a href="../../sims/dynamics/Shape.html#volume" target="_self">volume</a> (abstract), <a href="../../sims/dynamics/Shape.html#I" target="_self">I</a> (abstract), <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
</td></tr>
</table>
<table summary="" cellpadding="3" class="inherited">
@@ -89,7 +89,7 @@
Methods inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#AABB" target="_self">AABB</a> (abstract), <a href="../../sims/dynamics/Shape.html#project%28sims.geometry.Vector2D%29" target="_self">project</a> (abstract), <a href="../../sims/dynamics/Shape.html#contains%28sims.geometry.Vector2D%29" target="_self">contains</a> (abstract), <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Shape%29" target="_self">^</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Body%29" target="_self">^</a>
+ <a href="../../sims/dynamics/Shape.html#AABB" target="_self">AABB</a> (abstract), <a href="../../sims/dynamics/Shape.html#project%28sims.geometry.Vector2D%29" target="_self">project</a> (abstract), <a href="../../sims/dynamics/Shape.html#contains%28sims.geometry.Vector2D%29" target="_self">contains</a> (abstract), <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Shape%29" target="_self">~</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Body%29" target="_self">~</a>
</td></tr>
</table><table summary="" cellpadding="3" class="inherited">
<tr><td class="title" colspan="2">
@@ -147,7 +147,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Einzigartige Identifikationsnummer.</dd></dl>
+ <dl><dd>Unique identification number.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
diff --git a/doc/graphyx/graphics/Parser$object.html b/doc/graphyx/graphics/Parser$object.html
index a03729d..b74e777 100644
--- a/doc/graphyx/graphics/Parser$object.html
+++ b/doc/graphyx/graphics/Parser$object.html
@@ -56,8 +56,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../graphyx/graphics/Parser$object.html#toGraphical%28sims.collision.AABB%29" target="_self">toGraphical</a></em>
- (<em>real</em> : <a href="../../sims/collision/AABB.html" target="_self">AABB</a>) : <a href="../../graphyx/graphics/GraphicalAABB.html" target="_self">GraphicalAABB</a>
+ <em><a href="../../graphyx/graphics/Parser$object.html#toGraphical%28sims.dynamics.Shape%29" target="_self">toGraphical</a></em>
+ (<em>real</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../graphyx/graphics/GraphicalShape.html" target="_self">GraphicalShape</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
</td>
@@ -67,8 +67,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../graphyx/graphics/Parser$object.html#toGraphical%28sims.dynamics.Shape%29" target="_self">toGraphical</a></em>
- (<em>real</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../graphyx/graphics/GraphicalShape.html" target="_self">GraphicalShape</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
+ <em><a href="../../graphyx/graphics/Parser$object.html#toGraphical%28sims.collision.Pair%29" target="_self">toGraphical</a></em>
+ (<em>real</em> : <a href="../../sims/collision/Pair.html" target="_self">Pair</a>) : <a href="../../graphyx/graphics/GraphicalPair.html" target="_self">GraphicalPair</a>
</td>
@@ -78,8 +78,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../graphyx/graphics/Parser$object.html#toGraphical%28sims.collision.Pair%29" target="_self">toGraphical</a></em>
- (<em>real</em> : <a href="../../sims/collision/Pair.html" target="_self">Pair</a>) : <a href="../../graphyx/graphics/GraphicalPair.html" target="_self">GraphicalPair</a>
+ <em><a href="../../graphyx/graphics/Parser$object.html#toGraphical%28sims.collision.AABB%29" target="_self">toGraphical</a></em>
+ (<em>real</em> : <a href="../../sims/collision/AABB.html" target="_self">AABB</a>) : <a href="../../graphyx/graphics/GraphicalAABB.html" target="_self">GraphicalAABB</a>
</td>
@@ -89,8 +89,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../graphyx/graphics/Parser$object.html#toGraphical%28sims.dynamics.joints.Joint%29" target="_self">toGraphical</a></em>
- (<em>real</em> : <a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>) : <a href="../../graphyx/graphics/GraphicalJoint.html" target="_self">GraphicalJoint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
+ <em><a href="../../graphyx/graphics/Parser$object.html#toGraphical%28sims.dynamics.Body%29" target="_self">toGraphical</a></em>
+ (<em>real</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../graphyx/graphics/GraphicalBody.html" target="_self">GraphicalBody</a>
</td>
@@ -111,8 +111,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../graphyx/graphics/Parser$object.html#toGraphical%28sims.dynamics.Body%29" target="_self">toGraphical</a></em>
- (<em>real</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../graphyx/graphics/GraphicalBody.html" target="_self">GraphicalBody</a>
+ <em><a href="../../graphyx/graphics/Parser$object.html#toGraphical%28sims.dynamics.joints.Joint%29" target="_self">toGraphical</a></em>
+ (<em>real</em> : <a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>) : <a href="../../graphyx/graphics/GraphicalJoint.html" target="_self">GraphicalJoint</a>
</td>
@@ -163,7 +163,7 @@
<code></code>
<code>def</code>
- <em>toGraphical</em>(<em>real</em> : <a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>) : <a href="../../graphyx/graphics/GraphicalJoint.html" target="_self">GraphicalJoint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
+ <em>toGraphical</em>(<em>real</em> : <a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>) : <a href="../../graphyx/graphics/GraphicalJoint.html" target="_self">GraphicalJoint</a>
</dt>
<dd></dd>
</dl><hr></hr>
diff --git a/doc/graphyx/graphics/Scene.html b/doc/graphyx/graphics/Scene.html
index 06bbfe1..ab0f4df 100644
--- a/doc/graphyx/graphics/Scene.html
+++ b/doc/graphyx/graphics/Scene.html
@@ -87,7 +87,7 @@
</td>
<td class="signature">
<em><a href="../../graphyx/graphics/Scene.html#joints" target="_self">joints</a></em>
- : <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../graphyx/graphics/GraphicalJoint.html" target="_self">GraphicalJoint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>]
+ : <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../graphyx/graphics/GraphicalJoint.html" target="_self">GraphicalJoint</a>]
</td>
@@ -239,7 +239,7 @@
<code></code>
<code>val</code>
- <em>joints</em> : <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../graphyx/graphics/GraphicalJoint.html" target="_self">GraphicalJoint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>]
+ <em>joints</em> : <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../graphyx/graphics/GraphicalJoint.html" target="_self">GraphicalJoint</a>]
</dt>
<dd></dd>
</dl><hr></hr>
diff --git a/doc/graphyx/gui/OptionsPanel.html b/doc/graphyx/gui/OptionsPanel.html
index b4f3ec6..a666b5d 100644
--- a/doc/graphyx/gui/OptionsPanel.html
+++ b/doc/graphyx/gui/OptionsPanel.html
@@ -130,6 +130,17 @@
<code> val</code>
</td>
<td class="signature">
+ <em><a href="../../graphyx/gui/OptionsPanel.html#chckTrace" target="_self">chckTrace</a></em>
+ : <a href="" target="contentFrame" class="scala/swing/CheckBox">scala.swing.CheckBox</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
<em><a href="../../graphyx/gui/OptionsPanel.html#components" target="_self">components</a></em>
: <a href="" target="contentFrame" class="scala/List">scala.List</a>[<a href="" target="contentFrame" class="scala/swing/Component">scala.swing.Component</a>]
@@ -262,6 +273,17 @@
<code> val</code>
</td>
<td class="signature">
+ <em><a href="../../graphyx/gui/OptionsPanel.html#lblTrace" target="_self">lblTrace</a></em>
+ : <a href="" target="contentFrame" class="scala/swing/Label">scala.swing.Label</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
<em><a href="../../graphyx/gui/OptionsPanel.html#txtIterations" target="_self">txtIterations</a></em>
: <a href="" target="contentFrame" class="scala/swing/TextField">scala.swing.TextField</a>
@@ -587,6 +609,24 @@
</dt>
<dd></dd>
</dl><hr></hr>
+<a name="lblTrace"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>lblTrace</em> : <a href="" target="contentFrame" class="scala/swing/Label">scala.swing.Label</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="chckTrace"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>chckTrace</em> : <a href="" target="contentFrame" class="scala/swing/CheckBox">scala.swing.CheckBox</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
<a name="components"></a><dl>
<dt>
diff --git a/doc/graphyx/gui/WorldPanel.html b/doc/graphyx/gui/WorldPanel.html
index 959812e..e9a346e 100644
--- a/doc/graphyx/gui/WorldPanel.html
+++ b/doc/graphyx/gui/WorldPanel.html
@@ -182,6 +182,17 @@
</tr>
<tr>
<td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/gui/WorldPanel.html#prevPos" target="_self">prevPos</a></em>
+ : <a href="" target="contentFrame" class="scala/collection/mutable/Map">scala.collection.mutable.Map</a>[<a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>, <a href="" target="contentFrame" class="scala/collection/mutable/Queue">scala.collection.mutable.Queue</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]]
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
<code> var</code>
</td>
<td class="signature">
@@ -202,6 +213,17 @@
</td>
</tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> var</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/gui/WorldPanel.html#trace" target="_self">trace</a></em>
+ : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
+
+
+ </td>
+ </tr>
</table><table summary="" cellpadding="3" class="inherited">
<tr><td class="title" colspan="2">
Values and Variables inherited from <a href="" target="contentFrame" class="scala/swing/BoxPanel">scala.swing.BoxPanel</a>
@@ -340,6 +362,17 @@
<code> def</code>
</td>
<td class="signature">
+ <em><a href="../../graphyx/gui/WorldPanel.html#trace%28Iterable%5Bgraphyx.graphics.GraphicalShape%5D%2Cjava.awt.Graphics%29" target="_self">trace</a></em>
+ (<em>shapes</em> : <a href="" target="contentFrame" class="scala/Iterable">scala.Iterable</a>[<a href="../../graphyx/graphics/GraphicalShape.html" target="_self">GraphicalShape</a>], <em>g</em> : <a href="" target="contentFrame" class="java/awt/Graphics">java.awt.Graphics</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
<em><a href="../../graphyx/gui/WorldPanel.html#update%28%29" target="_self">update</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
@@ -501,6 +534,24 @@
</dt>
<dd></dd>
</dl><hr></hr>
+<a name="trace"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>var</code>
+ <em>trace</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="prevPos"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>prevPos</em> : <a href="" target="contentFrame" class="scala/collection/mutable/Map">scala.collection.mutable.Map</a>[<a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>, <a href="" target="contentFrame" class="scala/collection/mutable/Queue">scala.collection.mutable.Queue</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]]
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
<a name="mousePressed"></a><dl>
<dt>
@@ -593,6 +644,15 @@
</dt>
<dd></dd>
</dl><hr></hr>
+<a name="trace%28Iterable%5Bgraphyx.graphics.GraphicalShape%5D%2Cjava.awt.Graphics%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>trace</em>(<em>shapes</em> : <a href="" target="contentFrame" class="scala/Iterable">scala.Iterable</a>[<a href="../../graphyx/graphics/GraphicalShape.html" target="_self">GraphicalShape</a>], <em>g</em> : <a href="" target="contentFrame" class="java/awt/Graphics">java.awt.Graphics</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
<a name="getBody%28sims.geometry.Vector2D%29"></a><dl>
<dt>
diff --git a/doc/graphyx/tests$content.html b/doc/graphyx/tests$content.html
index a16a70b..ff87015 100644
--- a/doc/graphyx/tests$content.html
+++ b/doc/graphyx/tests$content.html
@@ -24,6 +24,17 @@
<code> object</code>
</td>
<td class="signature">
+ <em><a href="../graphyx/tests/Atom$object.html" target="_self">Atom</a></em>
+ <code> extends </code><a href="../graphyx/tests/Test.html" target="_self">Test</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> object</code>
+ </td>
+ <td class="signature">
<em><a href="../graphyx/tests/BallStack$object.html" target="_self">BallStack</a></em>
<code> extends </code><a href="../graphyx/tests/Test.html" target="_self">Test</a>
@@ -189,11 +200,33 @@
<code> object</code>
</td>
<td class="signature">
+ <em><a href="../graphyx/tests/Spring$object.html" target="_self">Spring</a></em>
+ <code> extends </code><a href="../graphyx/tests/Test.html" target="_self">Test</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> object</code>
+ </td>
+ <td class="signature">
<em><a href="../graphyx/tests/Stacking$object.html" target="_self">Stacking</a></em>
<code> extends </code><a href="../graphyx/tests/Test.html" target="_self">Test</a>
</td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> object</code>
+ </td>
+ <td class="signature">
+ <em><a href="../graphyx/tests/Wave$object.html" target="_self">Wave</a></em>
+ <code> extends </code><a href="../graphyx/tests/Test.html" target="_self">Test</a>
+
+
+ </td>
</tr>
</table></body>
</html> \ No newline at end of file
diff --git a/doc/graphyx/tests$package.html b/doc/graphyx/tests$package.html
index 7afa1bc..7e57107 100644
--- a/doc/graphyx/tests$package.html
+++ b/doc/graphyx/tests$package.html
@@ -12,7 +12,8 @@
<li id="Classes_T"><a href="../graphyx/tests/Test.html" target="contentFrame">Test</a></li>
</ul>
<div class="kinds" id="Objects">Objects</div><ul class="list">
- <li id="Objects_B"><a href="../graphyx/tests/BallStack$object.html" target="contentFrame">BallStack</a></li>
+ <li id="Objects_A"><a href="../graphyx/tests/Atom$object.html" target="contentFrame">Atom</a></li>
+<li id="Objects_B"><a href="../graphyx/tests/BallStack$object.html" target="contentFrame">BallStack</a></li>
<li id="Objects_C"><a href="../graphyx/tests/Carriage$object.html" target="contentFrame">Carriage</a></li>
<li><a href="../graphyx/tests/Chain$object.html" target="contentFrame">Chain</a></li>
<li><a href="../graphyx/tests/CompositeShape$object.html" target="contentFrame">CompositeShape</a></li>
@@ -27,6 +28,8 @@
<li id="Objects_N"><a href="../graphyx/tests/Net$object.html" target="contentFrame">Net</a></li>
<li id="Objects_R"><a href="../graphyx/tests/RagdollTest$object.html" target="contentFrame">RagdollTest</a></li>
<li><a href="../graphyx/tests/Restitution$object.html" target="contentFrame">Restitution</a></li>
-<li id="Objects_S"><a href="../graphyx/tests/Stacking$object.html" target="contentFrame">Stacking</a></li>
+<li id="Objects_S"><a href="../graphyx/tests/Spring$object.html" target="contentFrame">Spring</a></li>
+<li><a href="../graphyx/tests/Stacking$object.html" target="contentFrame">Stacking</a></li>
+<li id="Objects_W"><a href="../graphyx/tests/Wave$object.html" target="contentFrame">Wave</a></li>
</ul></div></body>
</html> \ No newline at end of file
diff --git a/doc/graphyx/tests/Atom$object.html b/doc/graphyx/tests/Atom$object.html
new file mode 100644
index 0000000..2db8db4
--- /dev/null
+++ b/doc/graphyx/tests/Atom$object.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head><title>object Atom in graphyx.tests</title>
+ <meta http-equiv="content-type" content="text/html; charset=UTF8"></meta><meta content="scaladoc (version 2.7.5.final)" name="generator"></meta><link href="../../style.css" type="text/css" rel="stylesheet"></link><script type="text/javascript" src="../../script.js"></script>
+ </head>
+ <body onload="init()">
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+
+ <div class="entity">
+ <a href="../../graphyx/tests$package.html" target="_self">graphyx.tests</a>
+ <br></br>
+ <span class="entity">object Atom</span>
+ </div><hr></hr>
+ <div class="source">
+ [source: <a href="" class="graphyx/tests/Atom"><code>graphyx/tests/Atom.scala</code></a>]
+ </div><hr></hr>
+ <a name="Atom"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>object</code>
+ <em>Atom</em>
+ </dt>
+ <dd><code> extends </code><a href="../../graphyx/tests/Test.html" target="_self">Test</a></dd>
+ </dl>
+
+
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Value Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> var</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Atom$object.html#connections" target="_self">connections</a></em>
+ : <a href="" target="contentFrame" class="scala/List">scala.List</a>[<a href="../../sims/dynamics/joints/SpringJoint.html" target="_self">SpringJoint</a>]
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> var</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Atom$object.html#electrons" target="_self">electrons</a></em>
+ : <a href="" target="contentFrame" class="scala/List">scala.List</a>[<a href="../../sims/dynamics/Body.html" target="_self">Body</a>]
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> var</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Atom$object.html#nucleus" target="_self">nucleus</a></em>
+ : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Atom$object.html#title" target="_self">title</a></em>
+ : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Atom$object.html#world" target="_self">world</a></em>
+ : <a href="../../sims/dynamics/World.html" target="_self">World</a>
+
+
+ </td>
+ </tr>
+ </table>
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Method Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code>override def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Atom$object.html#fireEvent%28%29" target="_self">fireEvent</a></em>
+ : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Atom$object.html#init%28%29" target="_self">init</a></em>
+ : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+
+ </td>
+ </tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="../../graphyx/tests/Test.html" target="_self">Test</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="../../graphyx/tests/Test.html#toString%28%29" target="_self">toString</a>
+ </td></tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#getClass%28%29" target="_self">getClass</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#hashCode%28%29" target="_self">hashCode</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#equals%28Any%29" target="_self">equals</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#clone%28%29" target="_self">clone</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notify%28%29" target="_self">notify</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notifyAll%28%29" target="_self">notifyAll</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%2CInt%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#finalize%28%29" target="_self">finalize</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%3D%3D%28AnyRef%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%21%3D%28AnyRef%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#eq%28AnyRef%29" target="_self">eq</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#ne%28AnyRef%29" target="_self">ne</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#synchronized%28T0%29" target="_self">synchronized</a>
+ </td></tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%3D%3D%28Any%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%21%3D%28Any%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#isInstanceOf" target="_self">isInstanceOf</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#asInstanceOf" target="_self">asInstanceOf</a>
+ </td></tr>
+ </table>
+
+
+
+
+<table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Value Details</td></tr>
+ </table><div><a name="title"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>title</em> : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../graphyx/tests/Test.html" target="_self">Test</a>.<a href="../../graphyx/tests/Test.html#title" target="_self">title</a>
+ </dd>
+ </dl><hr></hr>
+<a name="world"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>world</em> : <a href="../../sims/dynamics/World.html" target="_self">World</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../graphyx/tests/Test.html" target="_self">Test</a>.<a href="../../graphyx/tests/Test.html#world" target="_self">world</a>
+ </dd>
+ </dl><hr></hr>
+<a name="nucleus"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>var</code>
+ <em>nucleus</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="electrons"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>var</code>
+ <em>electrons</em> : <a href="" target="contentFrame" class="scala/List">scala.List</a>[<a href="../../sims/dynamics/Body.html" target="_self">Body</a>]
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="connections"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>var</code>
+ <em>connections</em> : <a href="" target="contentFrame" class="scala/List">scala.List</a>[<a href="../../sims/dynamics/joints/SpringJoint.html" target="_self">SpringJoint</a>]
+ </dt>
+ <dd></dd>
+ </dl><hr></hr></div>
+<table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Method Details</td></tr>
+ </table><div><a name="init%28%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>init</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../graphyx/tests/Test.html" target="_self">Test</a>.<a href="../../graphyx/tests/Test.html#init%28%29" target="_self">init</a>
+ </dd>
+ </dl><hr></hr>
+<a name="fireEvent%28%29"></a><dl>
+ <dt>
+
+ <code>override</code>
+ <code>def</code>
+ <em>fireEvent</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../graphyx/tests/Test.html" target="_self">Test</a>.<a href="../../graphyx/tests/Test.html#fireEvent%28%29" target="_self">fireEvent</a>
+ </dd>
+ </dl><hr></hr></div>
+
+
+ <hr></hr>
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+ </body>
+ </html> \ No newline at end of file
diff --git a/doc/graphyx/tests/Spring$object.html b/doc/graphyx/tests/Spring$object.html
new file mode 100644
index 0000000..c9a3d6f
--- /dev/null
+++ b/doc/graphyx/tests/Spring$object.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head><title>object Spring in graphyx.tests</title>
+ <meta http-equiv="content-type" content="text/html; charset=UTF8"></meta><meta content="scaladoc (version 2.7.5.final)" name="generator"></meta><link href="../../style.css" type="text/css" rel="stylesheet"></link><script type="text/javascript" src="../../script.js"></script>
+ </head>
+ <body onload="init()">
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+
+ <div class="entity">
+ <a href="../../graphyx/tests$package.html" target="_self">graphyx.tests</a>
+ <br></br>
+ <span class="entity">object Spring</span>
+ </div><hr></hr>
+ <div class="source">
+ [source: <a href="" class="graphyx/tests/Spring"><code>graphyx/tests/Spring.scala</code></a>]
+ </div><hr></hr>
+ <a name="Spring"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>object</code>
+ <em>Spring</em>
+ </dt>
+ <dd><code> extends </code><a href="../../graphyx/tests/Test.html" target="_self">Test</a></dd>
+ </dl>
+
+
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Value Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Spring$object.html#title" target="_self">title</a></em>
+ : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Spring$object.html#world" target="_self">world</a></em>
+ : <a href="../../sims/dynamics/World.html" target="_self">World</a>
+
+
+ </td>
+ </tr>
+ </table>
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Method Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Spring$object.html#init%28%29" target="_self">init</a></em>
+ : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+
+ </td>
+ </tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="../../graphyx/tests/Test.html" target="_self">Test</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="../../graphyx/tests/Test.html#fireEvent%28%29" target="_self">fireEvent</a>, <a href="../../graphyx/tests/Test.html#toString%28%29" target="_self">toString</a>
+ </td></tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#getClass%28%29" target="_self">getClass</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#hashCode%28%29" target="_self">hashCode</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#equals%28Any%29" target="_self">equals</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#clone%28%29" target="_self">clone</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notify%28%29" target="_self">notify</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notifyAll%28%29" target="_self">notifyAll</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%2CInt%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#finalize%28%29" target="_self">finalize</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%3D%3D%28AnyRef%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%21%3D%28AnyRef%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#eq%28AnyRef%29" target="_self">eq</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#ne%28AnyRef%29" target="_self">ne</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#synchronized%28T0%29" target="_self">synchronized</a>
+ </td></tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%3D%3D%28Any%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%21%3D%28Any%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#isInstanceOf" target="_self">isInstanceOf</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#asInstanceOf" target="_self">asInstanceOf</a>
+ </td></tr>
+ </table>
+
+
+
+
+<table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Value Details</td></tr>
+ </table><div><a name="title"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>title</em> : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../graphyx/tests/Test.html" target="_self">Test</a>.<a href="../../graphyx/tests/Test.html#title" target="_self">title</a>
+ </dd>
+ </dl><hr></hr>
+<a name="world"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>world</em> : <a href="../../sims/dynamics/World.html" target="_self">World</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../graphyx/tests/Test.html" target="_self">Test</a>.<a href="../../graphyx/tests/Test.html#world" target="_self">world</a>
+ </dd>
+ </dl><hr></hr></div>
+<table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Method Details</td></tr>
+ </table><div><a name="init%28%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>init</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../graphyx/tests/Test.html" target="_self">Test</a>.<a href="../../graphyx/tests/Test.html#init%28%29" target="_self">init</a>
+ </dd>
+ </dl><hr></hr></div>
+
+
+ <hr></hr>
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+ </body>
+ </html> \ No newline at end of file
diff --git a/doc/graphyx/tests/Test.html b/doc/graphyx/tests/Test.html
index da7465a..33cfb50 100644
--- a/doc/graphyx/tests/Test.html
+++ b/doc/graphyx/tests/Test.html
@@ -34,7 +34,7 @@
<dd><code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl><dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
- <dd><a href="../../graphyx/tests/BallStack$object.html" target="_self">BallStack</a>, <a href="../../graphyx/tests/Carriage$object.html" target="_self">Carriage</a>, <a href="../../graphyx/tests/Chain$object.html" target="_self">Chain</a>, <a href="../../graphyx/tests/CompositeShape$object.html" target="_self">CompositeShape</a>, <a href="../../graphyx/tests/Cup$object.html" target="_self">Cup</a>, <a href="../../graphyx/tests/EmptyTest$object.html" target="_self">EmptyTest</a>, <a href="../../graphyx/tests/Friction$object.html" target="_self">Friction</a>, <a href="../../graphyx/tests/Friction2$object.html" target="_self">Friction2</a>, <a href="../../graphyx/tests/General1$object.html" target="_self">General1</a>, <a href="../../graphyx/tests/General2$object.html" target="_self">General2</a>, <a href="../../graphyx/tests/Joints1$object.html" target="_self">Joints1</a>, <a href="../../graphyx/tests/Joints2$object.html" target="_self">Joints2</a>, <a href="../../graphyx/tests/Net$object.html" target="_self">Net</a>, <a href="../../graphyx/tests/RagdollTest$object.html" target="_self">RagdollTest</a>, <a href="../../graphyx/tests/Restitution$object.html" target="_self">Restitution</a>, <a href="../../graphyx/tests/Stacking$object.html" target="_self">Stacking</a></dd>
+ <dd><a href="../../graphyx/tests/Atom$object.html" target="_self">Atom</a>, <a href="../../graphyx/tests/BallStack$object.html" target="_self">BallStack</a>, <a href="../../graphyx/tests/Carriage$object.html" target="_self">Carriage</a>, <a href="../../graphyx/tests/Chain$object.html" target="_self">Chain</a>, <a href="../../graphyx/tests/CompositeShape$object.html" target="_self">CompositeShape</a>, <a href="../../graphyx/tests/Cup$object.html" target="_self">Cup</a>, <a href="../../graphyx/tests/EmptyTest$object.html" target="_self">EmptyTest</a>, <a href="../../graphyx/tests/Friction$object.html" target="_self">Friction</a>, <a href="../../graphyx/tests/Friction2$object.html" target="_self">Friction2</a>, <a href="../../graphyx/tests/General1$object.html" target="_self">General1</a>, <a href="../../graphyx/tests/General2$object.html" target="_self">General2</a>, <a href="../../graphyx/tests/Joints1$object.html" target="_self">Joints1</a>, <a href="../../graphyx/tests/Joints2$object.html" target="_self">Joints2</a>, <a href="../../graphyx/tests/Net$object.html" target="_self">Net</a>, <a href="../../graphyx/tests/RagdollTest$object.html" target="_self">RagdollTest</a>, <a href="../../graphyx/tests/Restitution$object.html" target="_self">Restitution</a>, <a href="../../graphyx/tests/Spring$object.html" target="_self">Spring</a>, <a href="../../graphyx/tests/Stacking$object.html" target="_self">Stacking</a>, <a href="../../graphyx/tests/Wave$object.html" target="_self">Wave</a></dd>
</dl><hr></hr>
diff --git a/doc/graphyx/tests/Wave$object.html b/doc/graphyx/tests/Wave$object.html
new file mode 100644
index 0000000..1b31387
--- /dev/null
+++ b/doc/graphyx/tests/Wave$object.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head><title>object Wave in graphyx.tests</title>
+ <meta http-equiv="content-type" content="text/html; charset=UTF8"></meta><meta content="scaladoc (version 2.7.5.final)" name="generator"></meta><link href="../../style.css" type="text/css" rel="stylesheet"></link><script type="text/javascript" src="../../script.js"></script>
+ </head>
+ <body onload="init()">
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+
+ <div class="entity">
+ <a href="../../graphyx/tests$package.html" target="_self">graphyx.tests</a>
+ <br></br>
+ <span class="entity">object Wave</span>
+ </div><hr></hr>
+ <div class="source">
+ [source: <a href="" class="graphyx/tests/Wave"><code>graphyx/tests/Wave.scala</code></a>]
+ </div><hr></hr>
+ <a name="Wave"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>object</code>
+ <em>Wave</em>
+ </dt>
+ <dd><code> extends </code><a href="../../graphyx/tests/Test.html" target="_self">Test</a></dd>
+ </dl>
+
+
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Value Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Wave$object.html#title" target="_self">title</a></em>
+ : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Wave$object.html#world" target="_self">world</a></em>
+ : <a href="../../sims/dynamics/World.html" target="_self">World</a>
+
+
+ </td>
+ </tr>
+ </table>
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Method Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../graphyx/tests/Wave$object.html#init%28%29" target="_self">init</a></em>
+ : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+
+ </td>
+ </tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="../../graphyx/tests/Test.html" target="_self">Test</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="../../graphyx/tests/Test.html#fireEvent%28%29" target="_self">fireEvent</a>, <a href="../../graphyx/tests/Test.html#toString%28%29" target="_self">toString</a>
+ </td></tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#getClass%28%29" target="_self">getClass</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#hashCode%28%29" target="_self">hashCode</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#equals%28Any%29" target="_self">equals</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#clone%28%29" target="_self">clone</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notify%28%29" target="_self">notify</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notifyAll%28%29" target="_self">notifyAll</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%2CInt%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#finalize%28%29" target="_self">finalize</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%3D%3D%28AnyRef%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%21%3D%28AnyRef%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#eq%28AnyRef%29" target="_self">eq</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#ne%28AnyRef%29" target="_self">ne</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#synchronized%28T0%29" target="_self">synchronized</a>
+ </td></tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%3D%3D%28Any%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%21%3D%28Any%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#isInstanceOf" target="_self">isInstanceOf</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#asInstanceOf" target="_self">asInstanceOf</a>
+ </td></tr>
+ </table>
+
+
+
+
+<table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Value Details</td></tr>
+ </table><div><a name="title"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>title</em> : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../graphyx/tests/Test.html" target="_self">Test</a>.<a href="../../graphyx/tests/Test.html#title" target="_self">title</a>
+ </dd>
+ </dl><hr></hr>
+<a name="world"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>world</em> : <a href="../../sims/dynamics/World.html" target="_self">World</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../graphyx/tests/Test.html" target="_self">Test</a>.<a href="../../graphyx/tests/Test.html#world" target="_self">world</a>
+ </dd>
+ </dl><hr></hr></div>
+<table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Method Details</td></tr>
+ </table><div><a name="init%28%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>init</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../graphyx/tests/Test.html" target="_self">Test</a>.<a href="../../graphyx/tests/Test.html#init%28%29" target="_self">init</a>
+ </dd>
+ </dl><hr></hr></div>
+
+
+ <hr></hr>
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+ </body>
+ </html> \ No newline at end of file
diff --git a/doc/modules.html b/doc/modules.html
index 8edb9c7..894ca01 100644
--- a/doc/modules.html
+++ b/doc/modules.html
@@ -22,6 +22,8 @@
sims.dynamics</a></li>
<li><a href="sims/dynamics/joints$package.html" target="classesFrame" onclick="resetKind();">
sims.dynamics.joints</a></li>
+<li><a href="sims/dynamics/joints/test$package.html" target="classesFrame" onclick="resetKind();">
+ sims.dynamics.joints.test</a></li>
<li><a href="sims/geometry$package.html" target="classesFrame" onclick="resetKind();">
sims.geometry</a></li>
<li><a href="sims/math$package.html" target="classesFrame" onclick="resetKind();">
diff --git a/doc/root-content.html b/doc/root-content.html
index e5c8a85..e477111 100644
--- a/doc/root-content.html
+++ b/doc/root-content.html
@@ -47,6 +47,11 @@
</td></tr>
<tr><td class="signature">
<code>package
+ <a href="sims/dynamics/joints/test$content.html" target="_self">sims.dynamics.joints.test</a>
+ </code>
+ </td></tr>
+<tr><td class="signature">
+ <code>package
<a href="sims/geometry$content.html" target="_self">sims.geometry</a>
</code>
</td></tr>
diff --git a/doc/sims/collision$content.html b/doc/sims/collision$content.html
index d34c535..1aa99c6 100644
--- a/doc/sims/collision$content.html
+++ b/doc/sims/collision$content.html
@@ -13,9 +13,8 @@
<em><a href="../sims/collision/AABB.html" target="_self">AABB</a></em>
(<code>val </code><em>minVertex</em> : <a href="../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <code>val </code><em>maxVertex</em> : <a href="../sims/geometry/Vector2D.html" target="_self">Vector2D</a>)<code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Axis Aligned Bounding Boxes, kurz AABBs, sind Rechtecke die eine bestimmte Form umhuellen.
- Da AABBs nach den X- und Y-Achsen orientiert sind, ermoeglichen sie eine schnelle
- und einfache Feststellung ob zwei AABBs sich ueberschneiden.</div>
+ <div>Axis Aligned Bounding Boxes (AABBs) are rectangles that frame a shape.
+ Their X-Axis and Y-Axis orientation makes it easy to test two AABBs for overlap.</div>
</td>
</tr>
<tr>
@@ -26,7 +25,7 @@
<em><a href="../sims/collision/CircleCollision.html" target="_self">CircleCollision</a></em>
(<code>val </code><em>c1</em> : <a href="../sims/dynamics/Circle.html" target="_self">Circle</a>, <code>val </code><em>c2</em> : <a href="../sims/dynamics/Circle.html" target="_self">Circle</a>)<code> extends </code><a href="../sims/collision/Collision.html" target="_self">Collision</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Kollision zwischen zwei Kreisen.</div>
+ <div>Collision between two circles.</div>
</td>
</tr>
<tr>
@@ -37,7 +36,7 @@
<em><a href="../sims/collision/Collision.html" target="_self">Collision</a></em>
<code> extends </code><a href="../sims/dynamics/Constraint.html" target="_self">Constraint</a><code> with </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Kollisionen zwischen zwei Formen enthalten Methoden zur Berrechnen der Kollisionsreaktion.</div>
+ <div>Collision between two shapes. Contains methods to compute the collision response.</div>
</td>
</tr>
<tr>
@@ -48,7 +47,7 @@
<em><a href="../sims/collision/Detector.html" target="_self">Detector</a></em>
<code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Eine Welt ermittelt ihre Kollisionen durch konkrete Implementierungen dieser Klasse.</div>
+ <div>A world detects its collisions through concrete implementations of this class.</div>
</td>
</tr>
<tr>
@@ -59,8 +58,8 @@
<em><a href="../sims/collision/GridDetector.html" target="_self">GridDetector</a></em>
(<code>val override </code><em>world</em> : <a href="../sims/dynamics/World.html" target="_self">World</a>)<code> extends </code><a href="../sims/collision/Detector.html" target="_self">Detector</a>
- <div>Eine konkrete Implementierung von <code>Detector</code>. <code>GridDetector</code> ermittelt
- alle Kollisionen mit einem Gittersystem.</div>
+ <div>A conrete implementation of <code>Detector</code>. <code>GridDetector</code> divides the world into a grid
+ for faster collision detection.</div>
</td>
</tr>
<tr>
@@ -82,7 +81,7 @@
<em><a href="../sims/collision/Pair.html" target="_self">Pair</a></em>
(<code>val </code><em>s1</em> : <a href="../sims/dynamics/Shape.html" target="_self">Shape</a>, <code>val </code><em>s2</em> : <a href="../sims/dynamics/Shape.html" target="_self">Shape</a>)<code> extends </code>(<a href="../sims/dynamics/Shape.html" target="_self">Shape</a>, <a href="../sims/dynamics/Shape.html" target="_self">Shape</a>)
- <div>Formenpaar.</div>
+ <div>Pair of shapes.</div>
</td>
</tr>
<tr>
@@ -93,7 +92,7 @@
<em><a href="../sims/collision/PolyCircleCollision.html" target="_self">PolyCircleCollision</a></em>
(<code>val </code><em>p</em> : <a href="../sims/geometry/ConvexPolygon.html" target="_self">ConvexPolygon</a>, <code>val </code><em>c</em> : <a href="../sims/dynamics/Circle.html" target="_self">Circle</a>)<code> extends </code><a href="../sims/collision/Collision.html" target="_self">Collision</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Kollision zwischen einem konvexen Polygon und einem Kreis.</div>
+ <div>Collision between a convex polygon and a circle.</div>
</td>
</tr>
<tr>
@@ -104,7 +103,7 @@
<em><a href="../sims/collision/PolyCollision.html" target="_self">PolyCollision</a></em>
(<code>val </code><em>p1</em> : <a href="../sims/geometry/ConvexPolygon.html" target="_self">ConvexPolygon</a>, <code>val </code><em>p2</em> : <a href="../sims/geometry/ConvexPolygon.html" target="_self">ConvexPolygon</a>)<code> extends </code><a href="../sims/collision/Collision.html" target="_self">Collision</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Kollision zwischen zwei konvexen Polygonen.</div>
+ <div>Collision between two convex polygons.</div>
</td>
</tr>
</table>
diff --git a/doc/sims/collision/AABB.html b/doc/sims/collision/AABB.html
index d4759f1..a687d9d 100644
--- a/doc/sims/collision/AABB.html
+++ b/doc/sims/collision/AABB.html
@@ -33,11 +33,10 @@
</dt>
<dd><code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Axis Aligned Bounding Boxes, kurz AABBs, sind Rechtecke die eine bestimmte Form umhuellen.
- Da AABBs nach den X- und Y-Achsen orientiert sind, ermoeglichen sie eine schnelle
- und einfache Feststellung ob zwei AABBs sich ueberschneiden.</dd></dl>
+ <dl><dd>Axis Aligned Bounding Boxes (AABBs) are rectangles that frame a shape.
+ Their X-Axis and Y-Axis orientation makes it easy to test two AABBs for overlap.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>minVertex - </code>Ortsvektor der minimalen Ecke des AABBs</dd><dd><code>maxVertex - </code>Ortsvektor der maximalen Ecke des AABBs</dd></dl>
+ <b>Parameters</b></dt><dd><code>minVertex - </code>Position vector of the bottom-left vertex</dd><dd><code>maxVertex - </code>Position vector of the upper-right vertex</dd></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
<dd><a href="../../graphyx/graphics/GraphicalAABB.html" target="_self">GraphicalAABB</a></dd>
@@ -78,7 +77,7 @@
<em><a href="../../sims/collision/AABB.html#overlaps%28sims.collision.AABB%29" target="_self">overlaps</a></em>
(<em>box</em> : <a href="../../sims/collision/AABB.html" target="_self">AABB</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Ueberprueft ob dieses AABB sich mit dem AABB <code>box</code> ueberschneidet.</div>
+ <div>Checks this AABB with <code>box</code> for overlap.</div>
</td>
</tr>
<tr>
@@ -156,9 +155,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ueberprueft ob dieses AABB sich mit dem AABB <code>box</code> ueberschneidet.</dd></dl>
+ <dl><dd>Checks this AABB with <code>box</code> for overlap.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>box - </code>das mit diesem auf Ueberschneidung zu ueberpruefende AABB</dd></dl>
+ <b>Parameters</b></dt><dd><code>box - </code>AABB with which to check for overlap</dd></dl>
<hr></hr>
<a name="hashCode%28%29"></a><dl>
<dt>
diff --git a/doc/sims/collision/CircleCollision.html b/doc/sims/collision/CircleCollision.html
index d305be6..e26027f 100644
--- a/doc/sims/collision/CircleCollision.html
+++ b/doc/sims/collision/CircleCollision.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="../../sims/collision/Collision.html" target="_self">Collision</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Kollision zwischen zwei Kreisen.</dd></dl>
+ <dl><dd>Collision between two circles.</dd></dl>
<dl></dl>
@@ -48,7 +48,7 @@
<em><a href="../../sims/collision/CircleCollision.html#normal" target="_self">normal</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Normalenvektor zu der Kollisionsebene.</div>
+ <div>Normal vector to the collision face.</div>
</td>
</tr>
<tr>
@@ -59,7 +59,7 @@
<em><a href="../../sims/collision/CircleCollision.html#points" target="_self">points</a></em>
: <a href="" target="contentFrame" class="scala/List">scala.List</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]
- <div>Kollisionspunkte.</div>
+ <div>Collision points.</div>
</td>
</tr>
<tr>
@@ -70,7 +70,7 @@
<em><a href="../../sims/collision/CircleCollision.html#shape1" target="_self">shape1</a></em>
: <a href="../../sims/dynamics/Circle.html" target="_self">Circle</a>
- <div>Erste Kollisionsform (Referenz).</div>
+ <div>First colliding shape (reference shape).</div>
</td>
</tr>
<tr>
@@ -81,7 +81,7 @@
<em><a href="../../sims/collision/CircleCollision.html#shape2" target="_self">shape2</a></em>
: <a href="../../sims/dynamics/Circle.html" target="_self">Circle</a>
- <div>Zweite Kollisionsform (eindringend).</div>
+ <div>Second colliding shape (incident shape).</div>
</td>
</tr>
</table>
@@ -191,7 +191,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Erste Kollisionsform (Referenz).</dd></dl>
+ <dl><dd>First colliding shape (reference shape).</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -210,7 +210,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Zweite Kollisionsform (eindringend).</dd></dl>
+ <dl><dd>Second colliding shape (incident shape).</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -229,7 +229,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Normalenvektor zu der Kollisionsebene.</dd></dl>
+ <dl><dd>Normal vector to the collision face.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -248,7 +248,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Kollisionspunkte.</dd></dl>
+ <dl><dd>Collision points.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
diff --git a/doc/sims/collision/Collision$object.html b/doc/sims/collision/Collision$object.html
index de0b9de..0d02762 100644
--- a/doc/sims/collision/Collision$object.html
+++ b/doc/sims/collision/Collision$object.html
@@ -45,7 +45,7 @@
<em><a href="../../sims/collision/Collision$object.html#ToleratedOverlap" target="_self">ToleratedOverlap</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Erlaubte Ueberlappung.</div>
+ <div>Tolerated overlap. Collision response will only be applied if the overlap of two shapes exceeds the tolerated overlap.</div>
</td>
</tr>
</table>
@@ -79,7 +79,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Erlaubte Ueberlappung.</dd></dl>
+ <dl><dd>Tolerated overlap. Collision response will only be applied if the overlap of two shapes exceeds the tolerated overlap.</dd></dl>
<dl></dl>
<hr></hr></div>
diff --git a/doc/sims/collision/Collision.html b/doc/sims/collision/Collision.html
index 8b97de9..028dc09 100644
--- a/doc/sims/collision/Collision.html
+++ b/doc/sims/collision/Collision.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="../../sims/dynamics/Constraint.html" target="_self">Constraint</a><code> with </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Kollisionen zwischen zwei Formen enthalten Methoden zur Berrechnen der Kollisionsreaktion.</dd></dl>
+ <dl><dd>Collision between two shapes. Contains methods to compute the collision response.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
@@ -51,7 +51,7 @@
<em><a href="../../sims/collision/Collision.html#normal" target="_self">normal</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Normalenvektor zu der Kollisionsebene.</div>
+ <div>Normal vector to the collision face.</div>
</td>
</tr>
<tr>
@@ -62,7 +62,7 @@
<em><a href="../../sims/collision/Collision.html#points" target="_self">points</a></em>
: <a href="" target="contentFrame" class="scala/Iterable">scala.Iterable</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]
- <div>Kollisionspunkte.</div>
+ <div>Collision points.</div>
</td>
</tr>
<tr>
@@ -73,7 +73,7 @@
<em><a href="../../sims/collision/Collision.html#shape1" target="_self">shape1</a></em>
: <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
- <div>Erste Kollisionsform (Referenz).</div>
+ <div>First colliding shape (reference shape).</div>
</td>
</tr>
<tr>
@@ -84,7 +84,7 @@
<em><a href="../../sims/collision/Collision.html#shape2" target="_self">shape2</a></em>
: <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
- <div>Zweite Kollisionsform (eindringend).</div>
+ <div>Second colliding shape (incident shape).</div>
</td>
</tr>
</table>
@@ -109,7 +109,7 @@
<em><a href="../../sims/collision/Collision.html#correctPosition%28Double%29" target="_self">correctPosition</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Position der Koerper damit diese den Randbedingungen entsprechen.</div>
+ <div>Corrects the positions of bodies according to this constraint.</div>
</td>
</tr>
<tr>
@@ -120,7 +120,7 @@
<em><a href="../../sims/collision/Collision.html#correctVelocity%28Double%29" target="_self">correctVelocity</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen entsprechen.</div>
+ <div>Corrects the velocities of bodies according to this constraint.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -153,7 +153,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Erste Kollisionsform (Referenz).</dd></dl>
+ <dl><dd>First colliding shape (reference shape).</dd></dl>
<dl></dl>
<hr></hr>
<a name="shape2"></a><dl>
@@ -165,7 +165,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Zweite Kollisionsform (eindringend).</dd></dl>
+ <dl><dd>Second colliding shape (incident shape).</dd></dl>
<dl></dl>
<hr></hr>
<a name="points"></a><dl>
@@ -177,7 +177,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Kollisionspunkte.</dd></dl>
+ <dl><dd>Collision points.</dd></dl>
<dl></dl>
<hr></hr>
<a name="normal"></a><dl>
@@ -189,7 +189,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Normalenvektor zu der Kollisionsebene.</dd></dl>
+ <dl><dd>Normal vector to the collision face.</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -203,8 +203,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen entsprechen.</dd></dl>
- <dl></dl>
+ <dl><dd>Corrects the velocities of bodies according to this constraint.</dd></dl>
+ <dl><dt style="margin:10px 0 0 20px;">
+ <b>Parameters</b></dt><dd><code>h - </code>a time interval, used for converting forces and impulses</dd></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
@@ -231,8 +232,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Position der Koerper damit diese den Randbedingungen entsprechen.</dd></dl>
- <dl></dl>
+ <dl><dd>Corrects the positions of bodies according to this constraint.</dd></dl>
+ <dl><dt style="margin:10px 0 0 20px;">
+ <b>Parameters</b></dt><dd><code>h - </code>a time interval, used for converting forces and impulses</dd></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
diff --git a/doc/sims/collision/Detector.html b/doc/sims/collision/Detector.html
index 7aaa1e4..ad93c73 100644
--- a/doc/sims/collision/Detector.html
+++ b/doc/sims/collision/Detector.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Eine Welt ermittelt ihre Kollisionen durch konkrete Implementierungen dieser Klasse.</dd></dl>
+ <dl><dd>A world detects its collisions through concrete implementations of this class.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
@@ -51,7 +51,7 @@
<em><a href="../../sims/collision/Detector.html#world" target="_self">world</a></em>
: <a href="../../sims/dynamics/World.html" target="_self">World</a>
- <div>Die Welt dessen Formen auf Kollisionen ueberprueft werden sollen.</div>
+ <div>The world whose shapes are to be checked for collisions.</div>
</td>
</tr>
</table>
@@ -65,7 +65,7 @@
<em><a href="../../sims/collision/Detector.html#collisions" target="_self">collisions</a></em>
: <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/collision/Collision.html" target="_self">Collision</a>]
- <div>Ergibt alle Kollisionen zwischen Formen der Welt <code>world</code>.</div>
+ <div>Returns all collisions between shapes in the world <code>world</code>.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -98,7 +98,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Die Welt dessen Formen auf Kollisionen ueberprueft werden sollen.</dd></dl>
+ <dl><dd>The world whose shapes are to be checked for collisions.</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -112,7 +112,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt alle Kollisionen zwischen Formen der Welt <code>world</code>.</dd></dl>
+ <dl><dd>Returns all collisions between shapes in the world <code>world</code>.</dd></dl>
<dl></dl>
<hr></hr></div>
diff --git a/doc/sims/collision/GridDetector.html b/doc/sims/collision/GridDetector.html
index 43dc1f6..9007d31 100644
--- a/doc/sims/collision/GridDetector.html
+++ b/doc/sims/collision/GridDetector.html
@@ -33,8 +33,8 @@
</dt>
<dd><code> extends </code><a href="../../sims/collision/Detector.html" target="_self">Detector</a></dd>
</dl>
- <dl><dd>Eine konkrete Implementierung von <code>Detector</code>. <code>GridDetector</code> ermittelt
- alle Kollisionen mit einem Gittersystem.</dd></dl>
+ <dl><dd>A conrete implementation of <code>Detector</code>. <code>GridDetector</code> divides the world into a grid
+ for faster collision detection.</dd></dl>
<dl></dl>
@@ -49,7 +49,7 @@
<em><a href="../../sims/collision/GridDetector.html#collisionMethods" target="_self">collisionMethods</a></em>
: <a href="" target="contentFrame" class="scala/collection/mutable/ArrayBuffer">scala.collection.mutable.ArrayBuffer</a>[<a href="" target="contentFrame" class="scala/PartialFunction">scala.PartialFunction</a>[(<a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>, <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>), <a href="../../sims/collision/Collision.html" target="_self">Collision</a>]]
- <div>Array von Kollisionsmethoden fuer Formenpaare.</div>
+ <div>Array of methods returning collisions. It is assumed that both shapes are colliding.</div>
</td>
</tr>
<tr>
@@ -60,7 +60,7 @@
<em><a href="../../sims/collision/GridDetector.html#detectionMethods" target="_self">detectionMethods</a></em>
: <a href="" target="contentFrame" class="scala/collection/mutable/ArrayBuffer">scala.collection.mutable.ArrayBuffer</a>[<a href="" target="contentFrame" class="scala/PartialFunction">scala.PartialFunction</a>[(<a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>, <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>), <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>]]
- <div>Array von Kollisionserkennungsmethoden fuer Formenpaare.</div>
+ <div>Array of collision detection methods. These methods return <code>true</code> if two shapes are colliding.</div>
</td>
</tr>
<tr>
@@ -71,7 +71,7 @@
<em><a href="../../sims/collision/GridDetector.html#gridSide" target="_self">gridSide</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Breite und Hoehe einer Gitterzelle.</div>
+ <div>Width and height of a grid cell.</div>
</td>
</tr>
</table>
@@ -85,7 +85,7 @@
<em><a href="../../sims/collision/GridDetector.html#colliding%28sims.collision.Pair%29" target="_self">colliding</a></em>
(<em>p</em> : <a href="../../sims/collision/Pair.html" target="_self">Pair</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Gibt an, ob das Formenpaar <code>p</code> kollidiert.</div>
+ <div>Checks the pair of shapes <code>p</code> for collision.</div>
</td>
</tr>
<tr>
@@ -96,7 +96,7 @@
<em><a href="../../sims/collision/GridDetector.html#collidingPairs" target="_self">collidingPairs</a></em>
: <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/collision/Pair.html" target="_self">Pair</a>]
- <div>Ergibt alle kollidierenden Paare.</div>
+ <div>Returns all colliding pairs.</div>
</td>
</tr>
<tr>
@@ -107,7 +107,7 @@
<em><a href="../../sims/collision/GridDetector.html#collision%28sims.collision.Pair%29" target="_self">collision</a></em>
(<em>p</em> : <a href="../../sims/collision/Pair.html" target="_self">Pair</a>) : <a href="../../sims/collision/Collision.html" target="_self">Collision</a>
- <div>Gibt die Kollision des Formenpaares <code>p</code> zurueck.</div>
+ <div>Returns the collision between both shapes of the pair <code>p</code>.</div>
</td>
</tr>
<tr>
@@ -118,7 +118,7 @@
<em><a href="../../sims/collision/GridDetector.html#collisions" target="_self">collisions</a></em>
: <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/collision/Collision.html" target="_self">Collision</a>]
- <div>Ergibt alle Kollisionen.</div>
+ <div>Returns all collisions.</div>
</td>
</tr>
<tr>
@@ -129,7 +129,7 @@
<em><a href="../../sims/collision/GridDetector.html#getPairs" target="_self">getPairs</a></em>
: <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/collision/Pair.html" target="_self">Pair</a>]
- <div>Ergibt potenzielle Kollisionspaare der Welt <code>world</code>.</div>
+ <div>Returns potential colliding pairs of shapes of the world <code>world</code>.</div>
</td>
</tr>
<tr>
@@ -140,7 +140,7 @@
<em><a href="../../sims/collision/GridDetector.html#pairs" target="_self">pairs</a></em>
: <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/collision/Pair.html" target="_self">Pair</a>]
- <div>Alle potentiellen Kollisionspaare der Welt.</div>
+ <div>All potential colliding pairs of the world.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -173,7 +173,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Array von Kollisionserkennungsmethoden fuer Formenpaare.</dd></dl>
+ <dl><dd>Array of collision detection methods. These methods return <code>true</code> if two shapes are colliding.</dd></dl>
<dl></dl>
<hr></hr>
<a name="collisionMethods"></a><dl>
@@ -185,7 +185,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Array von Kollisionsmethoden fuer Formenpaare.</dd></dl>
+ <dl><dd>Array of methods returning collisions. It is assumed that both shapes are colliding.</dd></dl>
<dl></dl>
<hr></hr>
<a name="gridSide"></a><dl>
@@ -197,7 +197,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Breite und Hoehe einer Gitterzelle.</dd></dl>
+ <dl><dd>Width and height of a grid cell.</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -211,9 +211,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Gibt an, ob das Formenpaar <code>p</code> kollidiert.</dd></dl>
+ <dl><dd>Checks the pair of shapes <code>p</code> for collision.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>p - </code>Formenpaar.</dd></dl>
+ <b>Parameters</b></dt><dd><code>p - </code>Pair of shapes.</dd></dl>
<hr></hr>
<a name="collision%28sims.collision.Pair%29"></a><dl>
<dt>
@@ -224,9 +224,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Gibt die Kollision des Formenpaares <code>p</code> zurueck.</dd></dl>
+ <dl><dd>Returns the collision between both shapes of the pair <code>p</code>.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>p - </code>Formenpaar.</dd></dl>
+ <b>Parameters</b></dt><dd><code>p - </code>Pair of shapes.</dd></dl>
<hr></hr>
<a name="getPairs"></a><dl>
<dt>
@@ -237,15 +237,15 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt potenzielle Kollisionspaare der Welt <code>world</code>.
+ <dl><dd>Returns potential colliding pairs of shapes of the world <code>world</code>.
<p>
- Ein Kollisionspaar ist ein Paar aus zwei verschiedenen Formen, das folgenden Bedingungen unterliegt:
+ A potential colliding pair is a pair of two shapes that comply with the following criteria:
<ul>
- <li>Die Formen muessen sich in der gleichen Gitterzelle befinden.</li>
- <li>Ihre AABBs muessen sich ueberlappen.</li>
- <li>Die Formen duerfen nicht von dem gleichen Koerper sein.</li>
- <li>Mindestens eine Form darf nicht Fixiert sein.</li>
- <li>Beide muessen {@link dynamics.Shape#collidable collidierbar} sein.</li>
+ <li>The shapes are situated in the same grid cell.</li>
+ <li>Their AABBs overlap.</li>
+ <li>The shapes do not belong to the same body.</li>
+ <li>At least one shape is not fixed.</li>
+ <li>Both shapes are {@link dynamics.Shape#collidable}.</li>
</ul></dd></dl>
<dl></dl>
<hr></hr>
@@ -258,7 +258,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Alle potentiellen Kollisionspaare der Welt.</dd></dl>
+ <dl><dd>All potential colliding pairs of the world.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
<b>See Also</b></dt><dd>getPairs</dd></dl>
<hr></hr>
@@ -271,7 +271,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt alle kollidierenden Paare.</dd></dl>
+ <dl><dd>Returns all colliding pairs.</dd></dl>
<dl></dl>
<hr></hr>
<a name="collisions"></a><dl>
@@ -283,7 +283,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt alle Kollisionen.</dd></dl>
+ <dl><dd>Returns all collisions.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
diff --git a/doc/sims/collision/Pair.html b/doc/sims/collision/Pair.html
index 15b53bf..e210fc9 100644
--- a/doc/sims/collision/Pair.html
+++ b/doc/sims/collision/Pair.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code>(<a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>, <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>)</dd>
</dl>
- <dl><dd>Formenpaar.</dd></dl>
+ <dl><dd>Pair of shapes.</dd></dl>
<dl></dl>
<table summary="" cellpadding="3" class="member">
diff --git a/doc/sims/collision/PolyCircleCollision.html b/doc/sims/collision/PolyCircleCollision.html
index eb30399..3b1d094 100644
--- a/doc/sims/collision/PolyCircleCollision.html
+++ b/doc/sims/collision/PolyCircleCollision.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="../../sims/collision/Collision.html" target="_self">Collision</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Kollision zwischen einem konvexen Polygon und einem Kreis.</dd></dl>
+ <dl><dd>Collision between a convex polygon and a circle.</dd></dl>
<dl></dl>
@@ -48,7 +48,7 @@
<em><a href="../../sims/collision/PolyCircleCollision.html#normal" target="_self">normal</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Normalenvektor zu der Kollisionsebene.</div>
+ <div>Normal vector to the collision face.</div>
</td>
</tr>
<tr>
@@ -59,7 +59,7 @@
<em><a href="../../sims/collision/PolyCircleCollision.html#points" target="_self">points</a></em>
: <a href="" target="contentFrame" class="scala/List">scala.List</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]
- <div>Kollisionspunkte.</div>
+ <div>Collision points.</div>
</td>
</tr>
<tr>
@@ -70,7 +70,7 @@
<em><a href="../../sims/collision/PolyCircleCollision.html#shape1" target="_self">shape1</a></em>
: <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
- <div>Erste Kollisionsform (Referenz).</div>
+ <div>First colliding shape (reference shape).</div>
</td>
</tr>
<tr>
@@ -81,7 +81,7 @@
<em><a href="../../sims/collision/PolyCircleCollision.html#shape2" target="_self">shape2</a></em>
: <a href="../../sims/dynamics/Circle.html" target="_self">Circle</a>
- <div>Zweite Kollisionsform (eindringend).</div>
+ <div>Second colliding shape (incident shape).</div>
</td>
</tr>
</table>
@@ -191,7 +191,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Erste Kollisionsform (Referenz).</dd></dl>
+ <dl><dd>First colliding shape (reference shape).</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -210,7 +210,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Zweite Kollisionsform (eindringend).</dd></dl>
+ <dl><dd>Second colliding shape (incident shape).</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -229,7 +229,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Normalenvektor zu der Kollisionsebene.</dd></dl>
+ <dl><dd>Normal vector to the collision face.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -248,7 +248,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Kollisionspunkte.</dd></dl>
+ <dl><dd>Collision points.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
diff --git a/doc/sims/collision/PolyCollision.html b/doc/sims/collision/PolyCollision.html
index dbfe30b..9009f39 100644
--- a/doc/sims/collision/PolyCollision.html
+++ b/doc/sims/collision/PolyCollision.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="../../sims/collision/Collision.html" target="_self">Collision</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Kollision zwischen zwei konvexen Polygonen.</dd></dl>
+ <dl><dd>Collision between two convex polygons.</dd></dl>
<dl></dl>
@@ -59,7 +59,7 @@
<em><a href="../../sims/collision/PolyCollision.html#normal" target="_self">normal</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Normalenvektor zu der Kollisionsebene.</div>
+ <div>Normal vector to the collision face.</div>
</td>
</tr>
<tr>
@@ -81,7 +81,7 @@
<em><a href="../../sims/collision/PolyCollision.html#points" target="_self">points</a></em>
: <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]
- <div>Kollisionspunkte.</div>
+ <div>Collision points.</div>
</td>
</tr>
<tr>
@@ -92,7 +92,7 @@
<em><a href="../../sims/collision/PolyCollision.html#shape1" target="_self">shape1</a></em>
: <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
- <div>Erste Kollisionsform (Referenz).</div>
+ <div>First colliding shape (reference shape).</div>
</td>
</tr>
<tr>
@@ -103,7 +103,7 @@
<em><a href="../../sims/collision/PolyCollision.html#shape2" target="_self">shape2</a></em>
: <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
- <div>Zweite Kollisionsform (eindringend).</div>
+ <div>Second colliding shape (incident shape).</div>
</td>
</tr>
</table>
@@ -242,7 +242,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Erste Kollisionsform (Referenz).</dd></dl>
+ <dl><dd>First colliding shape (reference shape).</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -261,7 +261,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Zweite Kollisionsform (eindringend).</dd></dl>
+ <dl><dd>Second colliding shape (incident shape).</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -280,7 +280,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Normalenvektor zu der Kollisionsebene.</dd></dl>
+ <dl><dd>Normal vector to the collision face.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -299,7 +299,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Kollisionspunkte.</dd></dl>
+ <dl><dd>Collision points.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
diff --git a/doc/sims/dynamics$content.html b/doc/sims/dynamics$content.html
index 256ead8..8cbd40c 100644
--- a/doc/sims/dynamics$content.html
+++ b/doc/sims/dynamics$content.html
@@ -13,7 +13,7 @@
<em><a href="../sims/dynamics/Body.html" target="_self">Body</a></em>
(<em>shps</em> : <a href="../sims/dynamics/Shape.html" target="_self">Shape</a>*)<code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Ein 2-Dimensionaler Koerper besteht aus mehreren Formen. Im gegensatz zu letzteren, enthaelt ein Koerper dynamische Informationen (v, F, etc...).</div>
+ <div>A two dimensional rigid body is made out of shapes.</div>
</td>
</tr>
<tr>
@@ -24,7 +24,7 @@
<em><a href="../sims/dynamics/Circle.html" target="_self">Circle</a></em>
(<code>val </code><em>radius</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>density</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>)<code> extends </code><a href="../sims/dynamics/Shape.html" target="_self">Shape</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Circle ist die Definition eines Kreises.</div>
+ <div>A circle.</div>
</td>
</tr>
<tr>
@@ -35,9 +35,9 @@
<em><a href="../sims/dynamics/Constraint.html" target="_self">Constraint</a></em>
<code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Randbedingungen erben von dem Trait <code>Constraint</code>.
- Fuer jeden Constraint koennen Position und Geschwindigkeit korrigiert werden.
- Ihre Implementierung wurde von Erin Catto's box2d inspiriert.</div>
+ <div>All constraints in SiMS implement this trait.
+ Position and velocity can be corrected for each constraint.
+ The implementation of constraints was inspired by Erin Catto's box2d.</div>
</td>
</tr>
<tr>
@@ -48,7 +48,7 @@
<em><a href="../sims/dynamics/Rectangle.html" target="_self">Rectangle</a></em>
(<code>val </code><em>halfWidth</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>halfHeight</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>density</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>)<code> extends </code><a href="../sims/dynamics/Shape.html" target="_self">Shape</a><code> with </code><a href="../sims/geometry/ConvexPolygon.html" target="_self">ConvexPolygon</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Rechteck ist eine Art Polygon.</div>
+ <div>A rectangle is a polygon.</div>
</td>
</tr>
<tr>
@@ -59,7 +59,7 @@
<em><a href="../sims/dynamics/RegularPolygon.html" target="_self">RegularPolygon</a></em>
(<code>val </code><em>n</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>, <code>val </code><em>radius</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>density</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>)<code> extends </code><a href="../sims/dynamics/Shape.html" target="_self">Shape</a><code> with </code><a href="../sims/geometry/ConvexPolygon.html" target="_self">ConvexPolygon</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Ein regelmaessiges Polygon mit <code>n</code> Seiten, dass der Kreis mit radius <code>radius</code> umschreibt.</div>
+ <div>A regular polygon with <code>n</code> sides whose excircle has a radius <code>radius</code>.</div>
</td>
</tr>
<tr>
@@ -70,7 +70,7 @@
<em><a href="../sims/dynamics/Shape.html" target="_self">Shape</a></em>
<code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Eine abstrakte Form.</div>
+ <div>An abstract shape.</div>
</td>
</tr>
<tr>
@@ -81,7 +81,7 @@
<em><a href="../sims/dynamics/World.html" target="_self">World</a></em>
<code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Eine Welt enthaelt und Simuliert ein System aus Koerpern und Verbindungen.</div>
+ <div>A world contains and simulates a system of rigid bodies and joints.</div>
</td>
</tr>
</table>
diff --git a/doc/sims/dynamics/Body.html b/doc/sims/dynamics/Body.html
index 7ac6091..4bacab2 100644
--- a/doc/sims/dynamics/Body.html
+++ b/doc/sims/dynamics/Body.html
@@ -33,9 +33,9 @@
</dt>
<dd><code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Ein 2-Dimensionaler Koerper besteht aus mehreren Formen. Im gegensatz zu letzteren, enthaelt ein Koerper dynamische Informationen (v, F, etc...).</dd></dl>
+ <dl><dd>A two dimensional rigid body is made out of shapes.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>shps - </code>zu dem Koerper gehoerende Formen.</dd></dl>
+ <b>Parameters</b></dt><dd><code>shps - </code>shapes that belong to this body.</dd></dl>
@@ -49,7 +49,7 @@
<em><a href="../../sims/dynamics/Body.html#angularVelocity" target="_self">angularVelocity</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Winkelgeschwindigkeit dieses Koerpers.</div>
+ <div>Angular velocity of this body.</div>
</td>
</tr>
<tr>
@@ -60,7 +60,7 @@
<em><a href="../../sims/dynamics/Body.html#force" target="_self">force</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Resultierende Kraft auf den Schwerpunkt dieses Koerpers.</div>
+ <div>Resulting force on the COM of this body.</div>
</td>
</tr>
<tr>
@@ -71,7 +71,7 @@
<em><a href="../../sims/dynamics/Body.html#linearVelocity" target="_self">linearVelocity</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Lineargeschwindigkeit dieses Koerpers.</div>
+ <div>Linear velocity of this body.</div>
</td>
</tr>
<tr>
@@ -82,7 +82,7 @@
<em><a href="../../sims/dynamics/Body.html#monitor" target="_self">monitor</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Gibt an ob die Eigenschaften dieses Koerpers ueberwacht werden sollen.</div>
+ <div>Flag for a world to monitor the properties of this body.</div>
</td>
</tr>
<tr>
@@ -93,7 +93,7 @@
<em><a href="../../sims/dynamics/Body.html#shapes" target="_self">shapes</a></em>
: <a href="" target="contentFrame" class="scala/List">scala.List</a>[<a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>]
- <div>Formen aus denen dieser Koerper besteht.</div>
+ <div>Shapes that belong to this body.</div>
</td>
</tr>
<tr>
@@ -104,7 +104,7 @@
<em><a href="../../sims/dynamics/Body.html#torque" target="_self">torque</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Resultierender Drehmoment zu dem Schwerpunkt dieses Koerpers.</div>
+ <div>Resulting torque on this body.</div>
</td>
</tr>
<tr>
@@ -115,7 +115,7 @@
<em><a href="../../sims/dynamics/Body.html#uid" target="_self">uid</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
- <div>Einzigartige Identifikationsnummer dieses Koerpers.</div>
+ <div>Unique identification number.</div>
</td>
</tr>
</table>
@@ -129,7 +129,9 @@
<em><a href="../../sims/dynamics/Body.html#I" target="_self">I</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Ergibt den Traegheitsmoment zu dem Schwerpunkt dieses Koerpers. Der Traegheitsmoment wird mit Hilfe des Steinerschen Satzes errechnet.</div>
+ <div>Returns the moment of inertia for rotations about the COM of this body.
+ It is calculated using the moments of inertia of this body's shapes and the parallel axis theorem.
+ If the body is fixed, its moment of inertia is infinite (<code>Double.PositiveInfinity</code>).</div>
</td>
</tr>
<tr>
@@ -137,21 +139,10 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/dynamics/Body.html#%5E%28sims.dynamics.Shape%29" target="_self">^</a></em>
- (<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
-
- <div>Erstellt einen neuen Koerper der zusaetzlich die Form <code>s</code> enthaelt.</div>
- </td>
- </tr>
-<tr>
- <td class="modifiers" valign="top">
- <code> def</code>
- </td>
- <td class="signature">
- <em><a href="../../sims/dynamics/Body.html#%5E%28sims.dynamics.Body%29" target="_self">^</a></em>
- (<em>b</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+ <em><a href="../../sims/dynamics/Body.html#applyForce%28sims.geometry.Vector2D%2Csims.geometry.Vector2D%29" target="_self">applyForce</a></em>
+ (<em>force</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Erstellt einen neuen Koerper der zusaetzlich die Formen von dem Koerper <code>b</code> enthaelt.</div>
+ <div>Applies a force to a point on this body. Warning: the point is considered to be contained within this body.</div>
</td>
</tr>
<tr>
@@ -162,7 +153,7 @@
<em><a href="../../sims/dynamics/Body.html#applyForce%28sims.geometry.Vector2D%29" target="_self">applyForce</a></em>
(<em>force</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Wendet eine Kraft auf den Schwerpunkt dieses Koerpers an.</div>
+ <div>Applies a force to the COM of this body.</div>
</td>
</tr>
<tr>
@@ -170,11 +161,10 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/dynamics/Body.html#applyForce%28sims.geometry.Vector2D%2Csims.geometry.Vector2D%29" target="_self">applyForce</a></em>
- (<em>force</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ <em><a href="../../sims/dynamics/Body.html#applyImpulse%28sims.geometry.Vector2D%29" target="_self">applyImpulse</a></em>
+ (<em>impulse</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Wendet eine Kraft auf einen Punkt dieses Koerpers an. Achtung: der gegebene Punkt wird nicht auf angehoerigkeit dieses
- Koerpers ueberprueft.</div>
+ <div>Applies an impulse to the COM of this body.</div>
</td>
</tr>
<tr>
@@ -185,19 +175,7 @@
<em><a href="../../sims/dynamics/Body.html#applyImpulse%28sims.geometry.Vector2D%2Csims.geometry.Vector2D%29" target="_self">applyImpulse</a></em>
(<em>impulse</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Wendet einen Impuls auf einen Punkt dieses Koerpers an. Achtung: der gegebene Punkt wird nicht auf angehoerigkeit dieses
- Koerpers ueberprueft.</div>
- </td>
- </tr>
-<tr>
- <td class="modifiers" valign="top">
- <code> def</code>
- </td>
- <td class="signature">
- <em><a href="../../sims/dynamics/Body.html#applyImpulse%28sims.geometry.Vector2D%29" target="_self">applyImpulse</a></em>
- (<em>impulse</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
-
- <div>Wendet einen Impuls auf den Schwerpunkt dieses Koerpers an.</div>
+ <div>Applies an impulse to a point on this body. Warning: the point is considered to be contained within this body.</div>
</td>
</tr>
<tr>
@@ -208,7 +186,7 @@
<em><a href="../../sims/dynamics/Body.html#contains%28sims.geometry.Vector2D%29" target="_self">contains</a></em>
(<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Ueberprueft ob der gegebene Punkt <code>point</code> sich in diesem Koerper befindet.</div>
+ <div>Checks if the point <code>point</code> is contained in this body.</div>
</td>
</tr>
<tr>
@@ -219,7 +197,7 @@
<em><a href="../../sims/dynamics/Body.html#fixed" target="_self">fixed</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Gibt an ob dieser Koerper fixiert ist.</div>
+ <div>Returns whether this body is fixed or not.</div>
</td>
</tr>
<tr>
@@ -230,7 +208,7 @@
<em><a href="../../sims/dynamics/Body.html#fixed_%3D%28Boolean%29" target="_self">fixed_=</a></em>
(<em>value</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Fixiert oder unfixiert diesen Koerper.</div>
+ <div>Fixes or frees this body. By fixing, linear and angular velocities are set to zero.</div>
</td>
</tr>
<tr>
@@ -241,7 +219,8 @@
<em><a href="../../sims/dynamics/Body.html#mass" target="_self">mass</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Ergibt die Masse dieses Koerpers. Die Masse ist gleich die Summe aller Massen seiner Formen.</div>
+ <div>Returns the mass of this body. If the body is free, its mass is the sum of the masses of its shapes.
+ If the body is fixed, its mass is infinite (<code>Double.PositiveInfinity</code>).</div>
</td>
</tr>
<tr>
@@ -252,7 +231,7 @@
<em><a href="../../sims/dynamics/Body.html#pos" target="_self">pos</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Ermittelt die Position dieses Koerpers. Die Position entspricht dem Schwerpunkt.</div>
+ <div>Returns the position of this body. The position is equivalent to the center of mass.</div>
</td>
</tr>
<tr>
@@ -263,7 +242,7 @@
<em><a href="../../sims/dynamics/Body.html#pos_%3D%28sims.geometry.Vector2D%29" target="_self">pos_=</a></em>
(<em>newPos</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Setzt die Position dieses Koerpers und verschiebt dadurch die Positionen seiner Formen.</div>
+ <div>Sets the position of this body. By doing so all its shapes are translated.</div>
</td>
</tr>
<tr>
@@ -274,7 +253,7 @@
<em><a href="../../sims/dynamics/Body.html#rotation" target="_self">rotation</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Ergibt die aktuelle Rotation dieses Koerpers.</div>
+ <div>Returns the current rotation of this body.</div>
</td>
</tr>
<tr>
@@ -285,7 +264,7 @@
<em><a href="../../sims/dynamics/Body.html#rotation_%3D%28Double%29" target="_self">rotation_=</a></em>
(<em>newRotation</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Setzt die Rotation dieses Koerpers. Dazu werden auch die Positionen und Rotationen seiner Formen entsprechend veraendert.</div>
+ <div>Sets the rotation of this body. Position and rotation of shapes are modified accordingly.</div>
</td>
</tr>
<tr>
@@ -307,7 +286,29 @@
<em><a href="../../sims/dynamics/Body.html#velocityOfPoint%28sims.geometry.Vector2D%29" target="_self">velocityOfPoint</a></em>
(<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Lineargeschwindigkeit des gegebenen Punktes auf diesem Koerper. In Weltkoordinaten.</div>
+ <div>Linear velocity of the given point on this body (in world coordinates).</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../sims/dynamics/Body.html#%7E%28sims.dynamics.Body%29" target="_self">~</a></em>
+ (<em>b</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+
+ <div>Creates a new body containing this body's shapes and the shapes of another body <code>b</code>.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../sims/dynamics/Body.html#%7E%28sims.dynamics.Shape%29" target="_self">~</a></em>
+ (<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+
+ <div>Creates a new body containing this body's shapes and the shape <code>s</code>.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -340,7 +341,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Einzigartige Identifikationsnummer dieses Koerpers.</dd></dl>
+ <dl><dd>Unique identification number.</dd></dl>
<dl></dl>
<hr></hr>
<a name="shapes"></a><dl>
@@ -352,7 +353,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Formen aus denen dieser Koerper besteht.</dd></dl>
+ <dl><dd>Shapes that belong to this body.</dd></dl>
<dl></dl>
<hr></hr>
<a name="monitor"></a><dl>
@@ -364,7 +365,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Gibt an ob die Eigenschaften dieses Koerpers ueberwacht werden sollen.</dd></dl>
+ <dl><dd>Flag for a world to monitor the properties of this body.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
<b>See Also</b></dt><dd><a href="../../sims/dynamics/World.html#monitors" target="_self">World#monitors</a></dd></dl>
<hr></hr>
@@ -377,7 +378,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Lineargeschwindigkeit dieses Koerpers.</dd></dl>
+ <dl><dd>Linear velocity of this body.</dd></dl>
<dl></dl>
<hr></hr>
<a name="angularVelocity"></a><dl>
@@ -389,7 +390,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Winkelgeschwindigkeit dieses Koerpers.</dd></dl>
+ <dl><dd>Angular velocity of this body.</dd></dl>
<dl></dl>
<hr></hr>
<a name="force"></a><dl>
@@ -401,7 +402,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Resultierende Kraft auf den Schwerpunkt dieses Koerpers.</dd></dl>
+ <dl><dd>Resulting force on the COM of this body.</dd></dl>
<dl></dl>
<hr></hr>
<a name="torque"></a><dl>
@@ -413,7 +414,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Resultierender Drehmoment zu dem Schwerpunkt dieses Koerpers.</dd></dl>
+ <dl><dd>Resulting torque on this body.</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -427,7 +428,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Gibt an ob dieser Koerper fixiert ist.</dd></dl>
+ <dl><dd>Returns whether this body is fixed or not.</dd></dl>
<dl></dl>
<hr></hr>
<a name="fixed_%3D%28Boolean%29"></a><dl>
@@ -439,7 +440,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Fixiert oder unfixiert diesen Koerper.</dd></dl>
+ <dl><dd>Fixes or frees this body. By fixing, linear and angular velocities are set to zero.</dd></dl>
<dl></dl>
<hr></hr>
<a name="pos"></a><dl>
@@ -451,9 +452,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ermittelt die Position dieses Koerpers. Die Position entspricht dem Schwerpunkt.</dd></dl>
+ <dl><dd>Returns the position of this body. The position is equivalent to the center of mass.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Position dieses Koerpers</dd></dl>
+ <b>Returns</b></dt><dd>position of this body</dd></dl>
<hr></hr>
<a name="pos_%3D%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -464,9 +465,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Setzt die Position dieses Koerpers und verschiebt dadurch die Positionen seiner Formen.</dd></dl>
+ <dl><dd>Sets the position of this body. By doing so all its shapes are translated.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>newPos - </code>neue Position</dd></dl>
+ <b>Parameters</b></dt><dd><code>newPos - </code>new position</dd></dl>
<hr></hr>
<a name="rotation"></a><dl>
<dt>
@@ -477,9 +478,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt die aktuelle Rotation dieses Koerpers.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>aktuelle Rotation dieses Koerpers</dd></dl>
+ <dl><dd>Returns the current rotation of this body.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="rotation_%3D%28Double%29"></a><dl>
<dt>
@@ -490,9 +490,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Setzt die Rotation dieses Koerpers. Dazu werden auch die Positionen und Rotationen seiner Formen entsprechend veraendert.</dd></dl>
+ <dl><dd>Sets the rotation of this body. Position and rotation of shapes are modified accordingly.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>r - </code>neue Rotation</dd></dl>
+ <b>Parameters</b></dt><dd><code>r - </code>new rotation</dd></dl>
<hr></hr>
<a name="velocityOfPoint%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -503,7 +503,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Lineargeschwindigkeit des gegebenen Punktes auf diesem Koerper. In Weltkoordinaten.</dd></dl>
+ <dl><dd>Linear velocity of the given point on this body (in world coordinates).</dd></dl>
<dl></dl>
<hr></hr>
<a name="mass"></a><dl>
@@ -515,9 +515,10 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt die Masse dieses Koerpers. Die Masse ist gleich die Summe aller Massen seiner Formen.</dd></dl>
+ <dl><dd>Returns the mass of this body. If the body is free, its mass is the sum of the masses of its shapes.
+ If the body is fixed, its mass is infinite (<code>Double.PositiveInfinity</code>).</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Masse des Koerpers</dd></dl>
+ <b>Returns</b></dt><dd>this body's mass</dd></dl>
<hr></hr>
<a name="I"></a><dl>
<dt>
@@ -528,9 +529,11 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt den Traegheitsmoment zu dem Schwerpunkt dieses Koerpers. Der Traegheitsmoment wird mit Hilfe des Steinerschen Satzes errechnet.</dd></dl>
+ <dl><dd>Returns the moment of inertia for rotations about the COM of this body.
+ It is calculated using the moments of inertia of this body's shapes and the parallel axis theorem.
+ If the body is fixed, its moment of inertia is infinite (<code>Double.PositiveInfinity</code>).</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Traegheitsmoment relativ zu dem Schwerpunkt dieses Koerpers</dd></dl>
+ <b>Returns</b></dt><dd>moment of inertia for rotations about the COM of this body</dd></dl>
<hr></hr>
<a name="applyForce%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -541,9 +544,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Wendet eine Kraft auf den Schwerpunkt dieses Koerpers an.</dd></dl>
+ <dl><dd>Applies a force to the COM of this body.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>force - </code>anzuwendender Kraftvektor</dd></dl>
+ <b>Parameters</b></dt><dd><code>force - </code>applied force</dd></dl>
<hr></hr>
<a name="applyForce%28sims.geometry.Vector2D%2Csims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -554,10 +557,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Wendet eine Kraft auf einen Punkt dieses Koerpers an. Achtung: der gegebene Punkt wird nicht auf angehoerigkeit dieses
- Koerpers ueberprueft.</dd></dl>
+ <dl><dd>Applies a force to a point on this body. Warning: the point is considered to be contained within this body.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>force - </code>anzuwendender Kraftvektor</dd><dd><code>point - </code>Ortsvektor des Punktes auf den die Kraft wirken soll (gegeben in Weltkoordinaten).</dd></dl>
+ <b>Parameters</b></dt><dd><code>force - </code>applied force</dd><dd><code>point - </code>position vector of the point (in world coordinates)</dd></dl>
<hr></hr>
<a name="applyImpulse%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -568,9 +570,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Wendet einen Impuls auf den Schwerpunkt dieses Koerpers an.</dd></dl>
+ <dl><dd>Applies an impulse to the COM of this body.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>impulse - </code>anzuwendender Impulsvektor</dd></dl>
+ <b>Parameters</b></dt><dd><code>impulse - </code>applied impulse</dd></dl>
<hr></hr>
<a name="applyImpulse%28sims.geometry.Vector2D%2Csims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -581,10 +583,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Wendet einen Impuls auf einen Punkt dieses Koerpers an. Achtung: der gegebene Punkt wird nicht auf angehoerigkeit dieses
- Koerpers ueberprueft.</dd></dl>
+ <dl><dd>Applies an impulse to a point on this body. Warning: the point is considered to be contained within this body.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>impulse - </code>anzuwendender Impulsvektor</dd><dd><code>point - </code>Ortsvektor des Punktes auf den der Impuls wirken soll (gegeben in Weltkoordinaten).</dd></dl>
+ <b>Parameters</b></dt><dd><code>impulse - </code>applied impulse</dd><dd><code>point - </code>position vector of the point (in world coordinates)</dd></dl>
<hr></hr>
<a name="contains%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -595,7 +596,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ueberprueft ob der gegebene Punkt <code>point</code> sich in diesem Koerper befindet.</dd></dl>
+ <dl><dd>Checks if the point <code>point</code> is contained in this body.</dd></dl>
<dl></dl>
<hr></hr>
<a name="toString%28%29"></a><dl>
@@ -613,33 +614,33 @@
<dl><dt style="margin:10px 0 0 20px;">
<b>Returns</b></dt><dd>a string representation of the object. </p></dd></dl>
<hr></hr>
-<a name="%5E%28sims.dynamics.Shape%29"></a><dl>
+<a name="%7E%28sims.dynamics.Shape%29"></a><dl>
<dt>
<code></code>
<code>def</code>
- <em>^</em>(<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+ <em>~</em>(<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
</dt>
<dd></dd>
</dl>
- <dl><dd>Erstellt einen neuen Koerper der zusaetzlich die Form <code>s</code> enthaelt.</dd></dl>
+ <dl><dd>Creates a new body containing this body's shapes and the shape <code>s</code>.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>s - </code>zusaetzliche Form</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>neuer Koerper</dd></dl>
+ <b>Parameters</b></dt><dd><code>s - </code>new shape</dd><dt style="margin:10px 0 0 20px;">
+ <b>Returns</b></dt><dd>new body</dd></dl>
<hr></hr>
-<a name="%5E%28sims.dynamics.Body%29"></a><dl>
+<a name="%7E%28sims.dynamics.Body%29"></a><dl>
<dt>
<code></code>
<code>def</code>
- <em>^</em>(<em>b</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+ <em>~</em>(<em>b</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
</dt>
<dd></dd>
</dl>
- <dl><dd>Erstellt einen neuen Koerper der zusaetzlich die Formen von dem Koerper <code>b</code> enthaelt.</dd></dl>
+ <dl><dd>Creates a new body containing this body's shapes and the shapes of another body <code>b</code>.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>b - </code>Koerper mit zusaetzlichen Formen</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>neuer Koerper</dd></dl>
+ <b>Parameters</b></dt><dd><code>b - </code>body with extra shapes</dd><dt style="margin:10px 0 0 20px;">
+ <b>Returns</b></dt><dd>new body</dd></dl>
<hr></hr></div>
diff --git a/doc/sims/dynamics/Circle.html b/doc/sims/dynamics/Circle.html
index d6807a8..f5a1655 100644
--- a/doc/sims/dynamics/Circle.html
+++ b/doc/sims/dynamics/Circle.html
@@ -33,9 +33,9 @@
</dt>
<dd><code> extends </code><a href="../../sims/dynamics/Shape.html" target="_self">Shape</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Circle ist die Definition eines Kreises.</dd></dl>
+ <dl><dd>A circle.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>radius - </code>Radius dieses Kreises</dd><dd><code>density - </code>Dichte dieses Kreises</dd></dl>
+ <b>Parameters</b></dt><dd><code>radius - </code>radius of this circle</dd><dd><code>density - </code>density of this circle</dd></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
<dd><a href="../../graphyx/graphics/GraphicalCircle.html" target="_self">GraphicalCircle</a></dd>
@@ -52,7 +52,7 @@
<em><a href="../../sims/dynamics/Circle.html#I" target="_self">I</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Errechnet Traegheitsmoment zum Schwerpunkt dieser Form.</div>
+ <div>Moment of inertia for a rotation about this shape's COM.</div>
</td>
</tr>
<tr>
@@ -63,7 +63,8 @@
<em><a href="../../sims/dynamics/Circle.html#volume" target="_self">volume</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Volumen. Entspricht eigentlich der Flaeche dieser Form (in 2D) wird aber zum Errechnen der Masse verwendet.</div>
+ <div>Volume. The volume is actually equivalent to this shape's area (SiMS is in 2D)
+ and is used with this shape's density to calculate its mass.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -71,7 +72,7 @@
Values and Variables inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#uid" target="_self">uid</a>, <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
+ <a href="../../sims/dynamics/Shape.html#uid" target="_self">uid</a>, <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
</td></tr>
</table>
<table summary="" cellpadding="3" class="member">
@@ -84,7 +85,7 @@
<em><a href="../../sims/dynamics/Circle.html#AABB" target="_self">AABB</a></em>
: <a href="../../sims/collision/AABB.html" target="_self">AABB</a>
- <div>Gibt das umfassende AABB dieser Form zurueck.</div>
+ <div>Returns this shape's axis aligned bounding box.</div>
</td>
</tr>
<tr>
@@ -95,7 +96,7 @@
<em><a href="../../sims/dynamics/Circle.html#contains%28sims.geometry.Vector2D%29" target="_self">contains</a></em>
(<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Ermittelt ob der gebene Punkt <code>point</code> in dieser Form enthalten ist.</div>
+ <div>Checks if the point <code>point</code> is contained in this shape.</div>
</td>
</tr>
<tr>
@@ -162,8 +163,7 @@
<em><a href="../../sims/dynamics/Circle.html#project%28sims.geometry.Vector2D%29" target="_self">project</a></em>
(<em>axis</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Projection.html" target="_self">Projection</a>
- <div>Ergibt die Projektion dieser Form auf eine Gerade gegeben durch den
- Richtungsvektor <code>axis</code>.</div>
+ <div>Returns the projection of this shape onto the line given by the directional vector <code>axis</code>.</div>
</td>
</tr>
<tr>
@@ -182,7 +182,7 @@
Methods inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Shape%29" target="_self">^</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Body%29" target="_self">^</a>
+ <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Shape%29" target="_self">~</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Body%29" target="_self">~</a>
</td></tr>
</table><table summary="" cellpadding="3" class="inherited">
<tr><td class="title" colspan="2">
@@ -214,7 +214,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Volumen. Entspricht eigentlich der Flaeche dieser Form (in 2D) wird aber zum Errechnen der Masse verwendet.</dd></dl>
+ <dl><dd>Volume. The volume is actually equivalent to this shape's area (SiMS is in 2D)
+ and is used with this shape's density to calculate its mass.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -233,9 +234,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Errechnet Traegheitsmoment zum Schwerpunkt dieser Form.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Traegheitsmoment zum Schwerpunkt</dd></dl>
+ <dl><dd>Moment of inertia for a rotation about this shape's COM.</dd></dl>
+ <dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
@@ -255,9 +255,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Gibt das umfassende AABB dieser Form zurueck.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>umfassendes AABB</dd></dl>
+ <dl><dd>Returns this shape's axis aligned bounding box.</dd></dl>
+ <dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
@@ -275,11 +274,10 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt die Projektion dieser Form auf eine Gerade gegeben durch den
- Richtungsvektor <code>axis</code>.</dd></dl>
+ <dl><dd>Returns the projection of this shape onto the line given by the directional vector <code>axis</code>.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>axis - </code>Richtungsvektor der Geraden</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Projektion dieser Form</dd></dl>
+ <b>Parameters</b></dt><dd><code>axis - </code>directional vector of the line</dd><dt style="margin:10px 0 0 20px;">
+ <b>Returns</b></dt><dd>projection of this shape</dd></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
@@ -297,7 +295,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ermittelt ob der gebene Punkt <code>point</code> in dieser Form enthalten ist.</dd></dl>
+ <dl><dd>Checks if the point <code>point</code> is contained in this shape.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
diff --git a/doc/sims/dynamics/Constraint.html b/doc/sims/dynamics/Constraint.html
index 556e5c3..570f522 100644
--- a/doc/sims/dynamics/Constraint.html
+++ b/doc/sims/dynamics/Constraint.html
@@ -33,9 +33,9 @@
</dt>
<dd><code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Randbedingungen erben von dem Trait <code>Constraint</code>.
- Fuer jeden Constraint koennen Position und Geschwindigkeit korrigiert werden.
- Ihre Implementierung wurde von Erin Catto's box2d inspiriert.</dd></dl>
+ <dl><dd>All constraints in SiMS implement this trait.
+ Position and velocity can be corrected for each constraint.
+ The implementation of constraints was inspired by Erin Catto's box2d.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
@@ -54,7 +54,7 @@
<em><a href="../../sims/dynamics/Constraint.html#correctPosition%28Double%29" target="_self">correctPosition</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Position der Koerper damit diese den Randbedingungen entsprechen.</div>
+ <div>Corrects the positions of bodies according to this constraint.</div>
</td>
</tr>
<tr>
@@ -65,7 +65,7 @@
<em><a href="../../sims/dynamics/Constraint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen entsprechen.</div>
+ <div>Corrects the velocities of bodies according to this constraint.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -99,8 +99,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen entsprechen.</dd></dl>
- <dl></dl>
+ <dl><dd>Corrects the velocities of bodies according to this constraint.</dd></dl>
+ <dl><dt style="margin:10px 0 0 20px;">
+ <b>Parameters</b></dt><dd><code>h - </code>a time interval, used for converting forces and impulses</dd></dl>
<hr></hr>
<a name="correctPosition%28Double%29"></a><dl>
<dt>
@@ -111,8 +112,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Position der Koerper damit diese den Randbedingungen entsprechen.</dd></dl>
- <dl></dl>
+ <dl><dd>Corrects the positions of bodies according to this constraint.</dd></dl>
+ <dl><dt style="margin:10px 0 0 20px;">
+ <b>Parameters</b></dt><dd><code>h - </code>a time interval, used for converting forces and impulses</dd></dl>
<hr></hr></div>
diff --git a/doc/sims/dynamics/Rectangle.html b/doc/sims/dynamics/Rectangle.html
index a002d40..df238de 100644
--- a/doc/sims/dynamics/Rectangle.html
+++ b/doc/sims/dynamics/Rectangle.html
@@ -33,9 +33,9 @@
</dt>
<dd><code> extends </code><a href="../../sims/dynamics/Shape.html" target="_self">Shape</a><code> with </code><a href="../../sims/geometry/ConvexPolygon.html" target="_self">ConvexPolygon</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Rechteck ist eine Art Polygon.</dd></dl>
+ <dl><dd>A rectangle is a polygon.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>halfWidth - </code>halbe Breite dieses Rechtecks</dd><dd><code>halfHeight - </code>halbe Hoehe dieses Rechtecks</dd><dd><code>density - </code>dichte dieses Rechtecks</dd></dl>
+ <b>Parameters</b></dt><dd><code>halfWidth - </code>this rectangle's half width</dd><dd><code>halfHeight - </code>this rectangle's half height</dd><dd><code>density - </code>density of this rectangle</dd></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
<dd><a href="../../graphyx/graphics/GraphicalRectangle.html" target="_self">GraphicalRectangle</a></dd>
@@ -52,7 +52,7 @@
<em><a href="../../sims/dynamics/Rectangle.html#I" target="_self">I</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Errechnet Traegheitsmoment zum Schwerpunkt dieser Form.</div>
+ <div>Moment of inertia for a rotation about this shape's COM.</div>
</td>
</tr>
<tr>
@@ -63,7 +63,8 @@
<em><a href="../../sims/dynamics/Rectangle.html#volume" target="_self">volume</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Volumen. Entspricht eigentlich der Flaeche dieser Form (in 2D) wird aber zum Errechnen der Masse verwendet.</div>
+ <div>Volume. The volume is actually equivalent to this shape's area (SiMS is in 2D)
+ and is used with this shape's density to calculate its mass.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -71,7 +72,7 @@
Values and Variables inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#uid" target="_self">uid</a>, <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
+ <a href="../../sims/dynamics/Shape.html#uid" target="_self">uid</a>, <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
</td></tr>
</table>
<table summary="" cellpadding="3" class="member">
@@ -96,9 +97,9 @@
<em><a href="../../sims/dynamics/Rectangle.html#halfDiags" target="_self">halfDiags</a></em>
: <a href="" target="contentFrame" class="scala/Array">scala.Array</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]
- <div>Ergibt Vektoren vom Zentrum dieses Rectecks bis zu den Ecken.
- Erste Ecke entspricht der Ecke oben rechts bei einer Rotation von 0.
- Folgende Ecken sind gegen den Uhrzeigersinn geordnet.</div>
+ <div>Returns the vectors from the center to the vertices of this rectangle.
+ The first vertex is the upper-right vertex at a rotation of 0.
+ Vertices are ordered counter-clockwise.</div>
</td>
</tr>
<tr>
@@ -164,9 +165,9 @@
<em><a href="../../sims/dynamics/Rectangle.html#vertices" target="_self">vertices</a></em>
: <a href="" target="contentFrame" class="scala/Array">scala.Array</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]
- <div>Ergibt die Ortsvektoren der Ecken dieses Rechtecks.
- Erste Ecke entspricht der Ecke oben rechts bei einer Rotation von 0.
- Folgende Ecken sind gegen den Uhrzeigersinn geordnet.</div>
+ <div>Returns the position vectors of this rectangle's vertices.
+ The first vertex is the upper-right vertex at a rotation of 0.
+ Vertices are ordered counter-clockwise.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -181,7 +182,7 @@
Methods inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Shape%29" target="_self">^</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Body%29" target="_self">^</a>
+ <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Shape%29" target="_self">~</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Body%29" target="_self">~</a>
</td></tr>
</table><table summary="" cellpadding="3" class="inherited">
<tr><td class="title" colspan="2">
@@ -213,7 +214,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Volumen. Entspricht eigentlich der Flaeche dieser Form (in 2D) wird aber zum Errechnen der Masse verwendet.</dd></dl>
+ <dl><dd>Volume. The volume is actually equivalent to this shape's area (SiMS is in 2D)
+ and is used with this shape's density to calculate its mass.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -232,9 +234,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Errechnet Traegheitsmoment zum Schwerpunkt dieser Form.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Traegheitsmoment zum Schwerpunkt</dd></dl>
+ <dl><dd>Moment of inertia for a rotation about this shape's COM.</dd></dl>
+ <dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
@@ -254,11 +255,10 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt Vektoren vom Zentrum dieses Rectecks bis zu den Ecken.
- Erste Ecke entspricht der Ecke oben rechts bei einer Rotation von 0.
- Folgende Ecken sind gegen den Uhrzeigersinn geordnet.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Vektoren vom Zentrum dieses Rectecks bis zu den Ecken</dd></dl>
+ <dl><dd>Returns the vectors from the center to the vertices of this rectangle.
+ The first vertex is the upper-right vertex at a rotation of 0.
+ Vertices are ordered counter-clockwise.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="vertices"></a><dl>
<dt>
@@ -269,11 +269,10 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt die Ortsvektoren der Ecken dieses Rechtecks.
- Erste Ecke entspricht der Ecke oben rechts bei einer Rotation von 0.
- Folgende Ecken sind gegen den Uhrzeigersinn geordnet.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Ortsvektoren der Ecken dieses Rechtecks</dd></dl>
+ <dl><dd>Returns the position vectors of this rectangle's vertices.
+ The first vertex is the upper-right vertex at a rotation of 0.
+ Vertices are ordered counter-clockwise.</dd></dl>
+ <dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
diff --git a/doc/sims/dynamics/RegularPolygon.html b/doc/sims/dynamics/RegularPolygon.html
index 764f13c..e691f51 100644
--- a/doc/sims/dynamics/RegularPolygon.html
+++ b/doc/sims/dynamics/RegularPolygon.html
@@ -33,9 +33,10 @@
</dt>
<dd><code> extends </code><a href="../../sims/dynamics/Shape.html" target="_self">Shape</a><code> with </code><a href="../../sims/geometry/ConvexPolygon.html" target="_self">ConvexPolygon</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Ein regelmaessiges Polygon mit <code>n</code> Seiten, dass der Kreis mit radius <code>radius</code> umschreibt.</dd></dl>
+ <dl><dd>A regular polygon with <code>n</code> sides whose excircle has a radius <code>radius</code>.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>n - </code>Anzahl der Seiten.</dd><dd><code>radius - </code>Radius des umschreibenden Kreises.</dd><dd><code>density - </code>Dichte.</dd></dl>
+ <b>Parameters</b></dt><dd><code>n - </code>nmber of sides.</dd><dd><code>radius - </code>radius of the excircle</dd><dd><code>density - </code>density of this regular polygon</dd><dt style="margin:10px 0 0 20px;">
+ <b>Throws</b></dt><dd><code>IllegalArgumentException - </code>if <code>n</code> is smaller than 3</dd></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
<dd><a href="../../graphyx/graphics/GraphicalRegularPolygon.html" target="_self">GraphicalRegularPolygon</a></dd>
@@ -52,7 +53,7 @@
<em><a href="../../sims/dynamics/RegularPolygon.html#I" target="_self">I</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Errechnet Traegheitsmoment zum Schwerpunkt dieser Form.</div>
+ <div>Moment of inertia for a rotation about this shape's COM.</div>
</td>
</tr>
<tr>
@@ -63,7 +64,8 @@
<em><a href="../../sims/dynamics/RegularPolygon.html#volume" target="_self">volume</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Volumen. Entspricht eigentlich der Flaeche dieser Form (in 2D) wird aber zum Errechnen der Masse verwendet.</div>
+ <div>Volume. The volume is actually equivalent to this shape's area (SiMS is in 2D)
+ and is used with this shape's density to calculate its mass.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -71,7 +73,7 @@
Values and Variables inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#uid" target="_self">uid</a>, <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
+ <a href="../../sims/dynamics/Shape.html#uid" target="_self">uid</a>, <a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a>, <a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a>, <a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a>, <a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a>, <a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a>, <a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a>, <a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a>, <a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a>
</td></tr>
</table>
<table summary="" cellpadding="3" class="member">
@@ -162,7 +164,7 @@
<em><a href="../../sims/dynamics/RegularPolygon.html#vertices" target="_self">vertices</a></em>
: <a href="" target="contentFrame" class="scala/Array">scala.Array</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]
- <div>Ergibt Position aller Ecken dieses Polygons. Die Ecken sind gegen den Uhrzeigersinn folgend.</div>
+ <div>Returns positions of all vertices of this Polygon. Vertices are ordered counter-clockwise.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -177,7 +179,7 @@
Methods inherited from <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>
</td></tr>
<tr><td class="signature" colspan="2">
- <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Shape%29" target="_self">^</a>, <a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Body%29" target="_self">^</a>
+ <a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a>, <a href="../../sims/dynamics/Shape.html#body" target="_self">body</a>, <a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Shape%29" target="_self">~</a>, <a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Body%29" target="_self">~</a>
</td></tr>
</table><table summary="" cellpadding="3" class="inherited">
<tr><td class="title" colspan="2">
@@ -209,7 +211,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Volumen. Entspricht eigentlich der Flaeche dieser Form (in 2D) wird aber zum Errechnen der Masse verwendet.</dd></dl>
+ <dl><dd>Volume. The volume is actually equivalent to this shape's area (SiMS is in 2D)
+ and is used with this shape's density to calculate its mass.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -228,9 +231,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Errechnet Traegheitsmoment zum Schwerpunkt dieser Form.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Traegheitsmoment zum Schwerpunkt</dd></dl>
+ <dl><dd>Moment of inertia for a rotation about this shape's COM.</dd></dl>
+ <dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
@@ -259,9 +261,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt Position aller Ecken dieses Polygons. Die Ecken sind gegen den Uhrzeigersinn folgend.</dd></dl>
+ <dl><dd>Returns positions of all vertices of this Polygon. Vertices are ordered counter-clockwise.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Ortsvektoren der Ecken</dd></dl>
+ <b>Returns</b></dt><dd>position vectors of the vertices</dd></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
diff --git a/doc/sims/dynamics/Shape.html b/doc/sims/dynamics/Shape.html
index c62245d..f769f9b 100644
--- a/doc/sims/dynamics/Shape.html
+++ b/doc/sims/dynamics/Shape.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Eine abstrakte Form.</dd></dl>
+ <dl><dd>An abstract shape.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
@@ -51,18 +51,7 @@
<em><a href="../../sims/dynamics/Shape.html#I" target="_self">I</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Errechnet Traegheitsmoment zum Schwerpunkt dieser Form.</div>
- </td>
- </tr>
-<tr>
- <td class="modifiers" valign="top">
- <code> var</code>
- </td>
- <td class="signature">
- <em><a href="../../sims/dynamics/Shape.html#body" target="_self">body</a></em>
- : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
-
- <div>Beinhaltender Koerper. Sollte nicht selbst bei Initialisierung definiert werden.</div>
+ <div>Moment of inertia for a rotation about this shape's COM.</div>
</td>
</tr>
<tr>
@@ -73,7 +62,7 @@
<em><a href="../../sims/dynamics/Shape.html#collidable" target="_self">collidable</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Kollisionsfaehigkeit.</div>
+ <div>Flag determining this shapes ability to collide with other shapes.</div>
</td>
</tr>
<tr>
@@ -84,7 +73,7 @@
<em><a href="../../sims/dynamics/Shape.html#density" target="_self">density</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Dichte. (Masse pro Flaeche)</div>
+ <div>Density. (Mass per area)</div>
</td>
</tr>
<tr>
@@ -95,8 +84,8 @@
<em><a href="../../sims/dynamics/Shape.html#friction" target="_self">friction</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Teil des Reibungskoeffizienten bei einer Kollision zwischen dieser Form und einer anderen.
- Der Reibungskoeffizient wird aus dem Produkt der beiden Teile der Formen errechnet.</div>
+ <div>Part of the coefficient of friction for a collision between this shape and another.
+ The coefficient of friction is calculated out of the product of this part and the other shape's part.</div>
</td>
</tr>
<tr>
@@ -107,7 +96,7 @@
<em><a href="../../sims/dynamics/Shape.html#pos" target="_self">pos</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Position des Schwerpunktes in Welt.</div>
+ <div>Position of this shape's COM (in world coordinates).</div>
</td>
</tr>
<tr>
@@ -118,7 +107,7 @@
<em><a href="../../sims/dynamics/Shape.html#refLocalPos" target="_self">refLocalPos</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Referenzposition in Koerper. Wird zur Rotation von Formen in Koerpern verwendet.</div>
+ <div>Local position of this shape's body COM to its COM at a body rotation of zero.</div>
</td>
</tr>
<tr>
@@ -129,8 +118,8 @@
<em><a href="../../sims/dynamics/Shape.html#restitution" target="_self">restitution</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Teil der Stosszahl bei einer Kollision zwischen dieser Form und einer anderen.
- Die Stosszahl wird aus dem Produkt der beiden Teile der Formen errechnet.</div>
+ <div>Part of the coefficient of restitution for a collision between this shape and another.
+ The coefficient of restitution is calculated out of the product of this part and the other shape's part.</div>
</td>
</tr>
<tr>
@@ -141,7 +130,7 @@
<em><a href="../../sims/dynamics/Shape.html#rotation" target="_self">rotation</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Rotation. Entspricht Laenge des Rotationsvektors.</div>
+ <div>Rotation of this shape about its COM.</div>
</td>
</tr>
<tr>
@@ -152,7 +141,7 @@
<em><a href="../../sims/dynamics/Shape.html#rotation0" target="_self">rotation0</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Initiale Rotation. (Rotation ohne Koerper)</div>
+ <div>Initial rotation. Rotation of this shape before it was added to a body.</div>
</td>
</tr>
<tr>
@@ -163,7 +152,7 @@
<em><a href="../../sims/dynamics/Shape.html#transientShapes" target="_self">transientShapes</a></em>
: <a href="" target="contentFrame" class="scala/collection/mutable/Set">scala.collection.mutable.Set</a>[<a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>]
- <div>Formen mit denen diese Form nicht Kollidiert.</div>
+ <div>Shapes with which this shape cannot collide.</div>
</td>
</tr>
<tr>
@@ -174,7 +163,7 @@
<em><a href="../../sims/dynamics/Shape.html#uid" target="_self">uid</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
- <div>Einzigartige Identifikationsnummer.</div>
+ <div>Unique identification number.</div>
</td>
</tr>
<tr>
@@ -185,7 +174,8 @@
<em><a href="../../sims/dynamics/Shape.html#volume" target="_self">volume</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Volumen. Entspricht eigentlich der Flaeche dieser Form (in 2D) wird aber zum Errechnen der Masse verwendet.</div>
+ <div>Volume. The volume is actually equivalent to this shape's area (SiMS is in 2D)
+ and is used with this shape's density to calculate its mass.</div>
</td>
</tr>
</table>
@@ -199,7 +189,7 @@
<em><a href="../../sims/dynamics/Shape.html#AABB" target="_self">AABB</a></em>
: <a href="../../sims/collision/AABB.html" target="_self">AABB</a>
- <div>Gibt das umfassende AABB dieser Form zurueck.</div>
+ <div>Returns this shape's axis aligned bounding box.</div>
</td>
</tr>
<tr>
@@ -207,21 +197,10 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Body%29" target="_self">^</a></em>
- (<em>b</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
-
- <div>Erstellt einen Koerper aus dieser Form und den Formen des Koerpers <code>b</code>.</div>
- </td>
- </tr>
-<tr>
- <td class="modifiers" valign="top">
- <code> def</code>
- </td>
- <td class="signature">
- <em><a href="../../sims/dynamics/Shape.html#%5E%28sims.dynamics.Shape%29" target="_self">^</a></em>
- (<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+ <em><a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a></em>
+ : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
- <div>Erstellt einen Koerper aus dieser Form und der Form <code>s</code>.</div>
+ <div>Creates a new body made out of tis shape.</div>
</td>
</tr>
<tr>
@@ -229,10 +208,10 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/dynamics/Shape.html#asBody" target="_self">asBody</a></em>
+ <em><a href="../../sims/dynamics/Shape.html#body" target="_self">body</a></em>
: <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
- <div>Baut einen Koerper aus dieser Form.</div>
+ <div>Returns this shape's containing body.</div>
</td>
</tr>
<tr>
@@ -243,7 +222,7 @@
<em><a href="../../sims/dynamics/Shape.html#contains%28sims.geometry.Vector2D%29" target="_self">contains</a></em>
(<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Ermittelt ob der gebene Punkt <code>point</code> in dieser Form enthalten ist.</div>
+ <div>Checks if the point <code>point</code> is contained in this shape.</div>
</td>
</tr>
<tr>
@@ -254,7 +233,7 @@
<em><a href="../../sims/dynamics/Shape.html#mass" target="_self">mass</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Errechnet die Masse dieser Form. Masse ist gleich Volumen mal Dichte.</div>
+ <div>Returns the mass of this shape. The mass is given by volume times density.</div>
</td>
</tr>
<tr>
@@ -265,8 +244,29 @@
<em><a href="../../sims/dynamics/Shape.html#project%28sims.geometry.Vector2D%29" target="_self">project</a></em>
(<em>axis</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Projection.html" target="_self">Projection</a>
- <div>Ergibt die Projektion dieser Form auf eine Gerade gegeben durch den
- Richtungsvektor <code>axis</code>.</div>
+ <div>Returns the projection of this shape onto the line given by the directional vector <code>axis</code>.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Body%29" target="_self">~</a></em>
+ (<em>b</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+
+ <div>Creates a new body out of this shape and the shapes of body <code>b</code>.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../sims/dynamics/Shape.html#%7E%28sims.dynamics.Shape%29" target="_self">~</a></em>
+ (<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+
+ <div>Creates a new body out of this shape and the shape <code>s</code>.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -299,7 +299,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Einzigartige Identifikationsnummer.</dd></dl>
+ <dl><dd>Unique identification number.</dd></dl>
<dl></dl>
<hr></hr>
<a name="collidable"></a><dl>
@@ -311,7 +311,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Kollisionsfaehigkeit.</dd></dl>
+ <dl><dd>Flag determining this shapes ability to collide with other shapes.</dd></dl>
<dl></dl>
<hr></hr>
<a name="restitution"></a><dl>
@@ -323,8 +323,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Teil der Stosszahl bei einer Kollision zwischen dieser Form und einer anderen.
- Die Stosszahl wird aus dem Produkt der beiden Teile der Formen errechnet.</dd></dl>
+ <dl><dd>Part of the coefficient of restitution for a collision between this shape and another.
+ The coefficient of restitution is calculated out of the product of this part and the other shape's part.</dd></dl>
<dl></dl>
<hr></hr>
<a name="friction"></a><dl>
@@ -336,8 +336,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Teil des Reibungskoeffizienten bei einer Kollision zwischen dieser Form und einer anderen.
- Der Reibungskoeffizient wird aus dem Produkt der beiden Teile der Formen errechnet.</dd></dl>
+ <dl><dd>Part of the coefficient of friction for a collision between this shape and another.
+ The coefficient of friction is calculated out of the product of this part and the other shape's part.</dd></dl>
<dl></dl>
<hr></hr>
<a name="pos"></a><dl>
@@ -349,7 +349,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Position des Schwerpunktes in Welt.</dd></dl>
+ <dl><dd>Position of this shape's COM (in world coordinates).</dd></dl>
<dl></dl>
<hr></hr>
<a name="rotation"></a><dl>
@@ -361,7 +361,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Rotation. Entspricht Laenge des Rotationsvektors.</dd></dl>
+ <dl><dd>Rotation of this shape about its COM.</dd></dl>
<dl></dl>
<hr></hr>
<a name="rotation0"></a><dl>
@@ -373,7 +373,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Initiale Rotation. (Rotation ohne Koerper)</dd></dl>
+ <dl><dd>Initial rotation. Rotation of this shape before it was added to a body.</dd></dl>
<dl></dl>
<hr></hr>
<a name="refLocalPos"></a><dl>
@@ -385,7 +385,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Referenzposition in Koerper. Wird zur Rotation von Formen in Koerpern verwendet.</dd></dl>
+ <dl><dd>Local position of this shape's body COM to its COM at a body rotation of zero.</dd></dl>
<dl></dl>
<hr></hr>
<a name="density"></a><dl>
@@ -397,7 +397,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Dichte. (Masse pro Flaeche)</dd></dl>
+ <dl><dd>Density. (Mass per area)</dd></dl>
<dl></dl>
<hr></hr>
<a name="volume"></a><dl>
@@ -409,7 +409,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Volumen. Entspricht eigentlich der Flaeche dieser Form (in 2D) wird aber zum Errechnen der Masse verwendet.</dd></dl>
+ <dl><dd>Volume. The volume is actually equivalent to this shape's area (SiMS is in 2D)
+ and is used with this shape's density to calculate its mass.</dd></dl>
<dl></dl>
<hr></hr>
<a name="I"></a><dl>
@@ -421,20 +422,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Errechnet Traegheitsmoment zum Schwerpunkt dieser Form.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Traegheitsmoment zum Schwerpunkt</dd></dl>
- <hr></hr>
-<a name="body"></a><dl>
- <dt>
-
- <code></code>
- <code>var</code>
- <em>body</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
- </dt>
- <dd></dd>
- </dl>
- <dl><dd>Beinhaltender Koerper. Sollte nicht selbst bei Initialisierung definiert werden.</dd></dl>
+ <dl><dd>Moment of inertia for a rotation about this shape's COM.</dd></dl>
<dl></dl>
<hr></hr>
<a name="transientShapes"></a><dl>
@@ -446,7 +434,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Formen mit denen diese Form nicht Kollidiert.</dd></dl>
+ <dl><dd>Shapes with which this shape cannot collide.</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -460,9 +448,21 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Errechnet die Masse dieser Form. Masse ist gleich Volumen mal Dichte.</dd></dl>
+ <dl><dd>Returns the mass of this shape. The mass is given by volume times density.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Masse der Form</dd></dl>
+ <b>Returns</b></dt><dd>mass of this shape</dd></dl>
+ <hr></hr>
+<a name="body"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>body</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>Returns this shape's containing body.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="AABB"></a><dl>
<dt>
@@ -473,9 +473,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Gibt das umfassende AABB dieser Form zurueck.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>umfassendes AABB</dd></dl>
+ <dl><dd>Returns this shape's axis aligned bounding box.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="project%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -486,11 +485,10 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt die Projektion dieser Form auf eine Gerade gegeben durch den
- Richtungsvektor <code>axis</code>.</dd></dl>
+ <dl><dd>Returns the projection of this shape onto the line given by the directional vector <code>axis</code>.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>axis - </code>Richtungsvektor der Geraden</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Projektion dieser Form</dd></dl>
+ <b>Parameters</b></dt><dd><code>axis - </code>directional vector of the line</dd><dt style="margin:10px 0 0 20px;">
+ <b>Returns</b></dt><dd>projection of this shape</dd></dl>
<hr></hr>
<a name="contains%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -501,7 +499,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ermittelt ob der gebene Punkt <code>point</code> in dieser Form enthalten ist.</dd></dl>
+ <dl><dd>Checks if the point <code>point</code> is contained in this shape.</dd></dl>
<dl></dl>
<hr></hr>
<a name="asBody"></a><dl>
@@ -513,32 +511,32 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Baut einen Koerper aus dieser Form.</dd></dl>
+ <dl><dd>Creates a new body made out of tis shape.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>ein Koerper bestehend aus dieser Form.</dd></dl>
+ <b>Returns</b></dt><dd>a body made out of tis shape</dd></dl>
<hr></hr>
-<a name="%5E%28sims.dynamics.Shape%29"></a><dl>
+<a name="%7E%28sims.dynamics.Shape%29"></a><dl>
<dt>
<code></code>
<code>def</code>
- <em>^</em>(<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+ <em>~</em>(<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
</dt>
<dd></dd>
</dl>
- <dl><dd>Erstellt einen Koerper aus dieser Form und der Form <code>s</code>.</dd></dl>
+ <dl><dd>Creates a new body out of this shape and the shape <code>s</code>.</dd></dl>
<dl></dl>
<hr></hr>
-<a name="%5E%28sims.dynamics.Body%29"></a><dl>
+<a name="%7E%28sims.dynamics.Body%29"></a><dl>
<dt>
<code></code>
<code>def</code>
- <em>^</em>(<em>b</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
+ <em>~</em>(<em>b</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>
</dt>
<dd></dd>
</dl>
- <dl><dd>Erstellt einen Koerper aus dieser Form und den Formen des Koerpers <code>b</code>.</dd></dl>
+ <dl><dd>Creates a new body out of this shape and the shapes of body <code>b</code>.</dd></dl>
<dl></dl>
<hr></hr></div>
diff --git a/doc/sims/dynamics/World.html b/doc/sims/dynamics/World.html
index f9b0217..d089cd9 100644
--- a/doc/sims/dynamics/World.html
+++ b/doc/sims/dynamics/World.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Eine Welt enthaelt und Simuliert ein System aus Koerpern und Verbindungen.</dd></dl>
+ <dl><dd>A world contains and simulates a system of rigid bodies and joints.</dd></dl>
<dl></dl>
@@ -48,7 +48,7 @@
<em><a href="../../sims/dynamics/World.html#bodies" target="_self">bodies</a></em>
: <a href="" target="contentFrame" class="scala/collection/mutable/ArrayBuffer">scala.collection.mutable.ArrayBuffer</a>[<a href="../../sims/dynamics/Body.html" target="_self">Body</a>]
- <div>Alle Koerper die diese Welt simuliert.</div>
+ <div>Bodies contained in this world.</div>
</td>
</tr>
<tr>
@@ -59,7 +59,7 @@
<em><a href="../../sims/dynamics/World.html#detector" target="_self">detector</a></em>
: <a href="../../sims/collision/Detector.html" target="_self">Detector</a>
- <div>Kollisionsdetektor dieser Welt.</div>
+ <div>Collsion detector who manages collision detection in this world.</div>
</td>
</tr>
<tr>
@@ -70,7 +70,7 @@
<em><a href="../../sims/dynamics/World.html#enableCollisionDetection" target="_self">enableCollisionDetection</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Kollisionerkennung.</div>
+ <div>Flag to enable collision detection.</div>
</td>
</tr>
<tr>
@@ -81,7 +81,7 @@
<em><a href="../../sims/dynamics/World.html#enablePositionCorrection" target="_self">enablePositionCorrection</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Positionskorrekturen.</div>
+ <div>Flag to enable position correction for constraints.</div>
</td>
</tr>
<tr>
@@ -92,7 +92,7 @@
<em><a href="../../sims/dynamics/World.html#gravity" target="_self">gravity</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Schwerkraft die in dieser Welt herrscht.</div>
+ <div>Gravity in this world.</div>
</td>
</tr>
<tr>
@@ -103,7 +103,7 @@
<em><a href="../../sims/dynamics/World.html#iterations" target="_self">iterations</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
- <div>Anzahl der Constraint-Korrekturen pro Zeitschritt.</div>
+ <div>Number of constraint corrections per time step.</div>
</td>
</tr>
<tr>
@@ -114,7 +114,7 @@
<em><a href="../../sims/dynamics/World.html#joints" target="_self">joints</a></em>
: <a href="" target="contentFrame" class="scala/collection/mutable/ArrayBuffer">scala.collection.mutable.ArrayBuffer</a>[<a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>]
- <div>Alle Verbindungen die diese Welt simuliert.</div>
+ <div>Joints contained in this world.</div>
</td>
</tr>
<tr>
@@ -125,7 +125,7 @@
<em><a href="../../sims/dynamics/World.html#minAngularVelocity" target="_self">minAngularVelocity</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Die minimale, nicht als null geltende Winkelgeschwindigkeit.</div>
+ <div>Minimal, non-zero angular velocity.</div>
</td>
</tr>
<tr>
@@ -136,7 +136,7 @@
<em><a href="../../sims/dynamics/World.html#minLinearVelocity" target="_self">minLinearVelocity</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Die minimale, nicht als null geltende Geschwindigkeit.</div>
+ <div>Minimal, non-zero linear velocity.</div>
</td>
</tr>
<tr>
@@ -147,7 +147,7 @@
<em><a href="../../sims/dynamics/World.html#monitors" target="_self">monitors</a></em>
: <a href="" target="contentFrame" class="scala/collection/mutable/ArrayBuffer">scala.collection.mutable.ArrayBuffer</a>[(<a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>, (<a href="../../sims/dynamics/Body.html" target="_self">Body</a>) =&gt; <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>)]
- <div>Ueberwachungsfunktionen fuer Koerper.</div>
+ <div>Monitoring methods for bodies.</div>
</td>
</tr>
<tr>
@@ -158,7 +158,7 @@
<em><a href="../../sims/dynamics/World.html#overCWarning" target="_self">overCWarning</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Warnung wenn Koerper schneller als Lichtgeschwindigkeit.</div>
+ <div>Warning if a body's velocity exceeds the speed of light.</div>
</td>
</tr>
<tr>
@@ -169,7 +169,7 @@
<em><a href="../../sims/dynamics/World.html#time" target="_self">time</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Aktuelle Zeit in Sekunden dieser Welt. Nach jedem Zeitschritt wird die Zeit erhoeht.</div>
+ <div>Current time in this world.</div>
</td>
</tr>
<tr>
@@ -180,7 +180,7 @@
<em><a href="../../sims/dynamics/World.html#timeStep" target="_self">timeStep</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Zeitschritt in dem diese Welt die Simulation vorranschreiten laesst.</div>
+ <div>Time intervals in which this world simulates.</div>
</td>
</tr>
</table>
@@ -194,7 +194,7 @@
<em><a href="../../sims/dynamics/World.html#%2B%2B%3D%28Seq%5Bsims.dynamics.Body%5D%29" target="_self">++=</a></em>
(<em>bs</em> : <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/dynamics/Body.html" target="_self">Body</a>]) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
-
+ <div>Adds the given sequence of bodies to this world.</div>
</td>
</tr>
<tr>
@@ -202,10 +202,10 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/dynamics/World.html#%2B%3D%28sims.prefabs.Prefab%29" target="_self">+=</a></em>
- (<em>p</em> : <a href="../../sims/prefabs/Prefab.html" target="_self">Prefab</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ <em><a href="../../sims/dynamics/World.html#%2B%3D%28sims.dynamics.Body%29" target="_self">+=</a></em>
+ (<em>body</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Fuegt dieser Welt ein vorangefertigtes System vaus Koerpern und Verbindungen hinzu.</div>
+ <div>Adds the given body to this world.</div>
</td>
</tr>
<tr>
@@ -213,10 +213,10 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/dynamics/World.html#%2B%3D%28sims.dynamics.joints.Joint%29" target="_self">+=</a></em>
- (<em>joint</em> : <a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ <em><a href="../../sims/dynamics/World.html#%2B%3D%28sims.prefabs.Prefab%29" target="_self">+=</a></em>
+ (<em>p</em> : <a href="../../sims/prefabs/Prefab.html" target="_self">Prefab</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Fuegt dieser Welt eine Verbindung hinzu.</div>
+ <div>Adds the given prefabricated system of bodies and joints to this world.</div>
</td>
</tr>
<tr>
@@ -224,10 +224,10 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/dynamics/World.html#%2B%3D%28sims.dynamics.Body%29" target="_self">+=</a></em>
- (<em>body</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ <em><a href="../../sims/dynamics/World.html#%2B%3D%28sims.dynamics.joints.Joint%29" target="_self">+=</a></em>
+ (<em>joint</em> : <a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Fuegt dieser Welt einen Koerper hinzu.</div>
+ <div>Adds the given joint to this world.</div>
</td>
</tr>
<tr>
@@ -238,7 +238,7 @@
<em><a href="../../sims/dynamics/World.html#--%3D%28Seq%5Bsims.dynamics.Body%5D%29" target="_self">--=</a></em>
(<em>bs</em> : <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/dynamics/Body.html" target="_self">Body</a>]) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
-
+ <div>Removes the given sequence of bodies from this world.</div>
</td>
</tr>
<tr>
@@ -249,7 +249,7 @@
<em><a href="../../sims/dynamics/World.html#-%3D%28sims.prefabs.Prefab%29" target="_self">-=</a></em>
(<em>p</em> : <a href="../../sims/prefabs/Prefab.html" target="_self">Prefab</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Entfernt das gegebene System aus Koerpern und Verbindungen aus dieser Welt.</div>
+ <div>Removes the given prefabricated system of bodies and joints from this world.</div>
</td>
</tr>
<tr>
@@ -260,7 +260,7 @@
<em><a href="../../sims/dynamics/World.html#-%3D%28sims.dynamics.Body%29" target="_self">-=</a></em>
(<em>body</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Entfernt den gegebenen Koerper aus dieser Welt.</div>
+ <div>Removes the given body from this world.</div>
</td>
</tr>
<tr>
@@ -271,7 +271,7 @@
<em><a href="../../sims/dynamics/World.html#-%3D%28sims.dynamics.joints.Joint%29" target="_self">-=</a></em>
(<em>joint</em> : <a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Entfernt die gegebene Verbindung aus dieser Welt.</div>
+ <div>Removes the given joint from this world.</div>
</td>
</tr>
<tr>
@@ -282,7 +282,7 @@
<em><a href="../../sims/dynamics/World.html#clear%28%29" target="_self">clear</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Entfernt alle Koerper, Verbindungen und Ueberwachungsfunktionen dieser Welt.</div>
+ <div>Removes all bodies, joints and monitoring methods from this world.</div>
</td>
</tr>
<tr>
@@ -293,7 +293,7 @@
<em><a href="../../sims/dynamics/World.html#info" target="_self">info</a></em>
: <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
- <div>Ergibt Informationen ueber diese Welt.</div>
+ <div>Returns information about this world.</div>
</td>
</tr>
<tr>
@@ -304,7 +304,8 @@
<em><a href="../../sims/dynamics/World.html#postStep%28%29" target="_self">postStep</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Wird nach jedem Zeitschritt ausgefuehrt.</div>
+ <div>Initially empty method that is executed after each time step. This method
+ may be overriden to create custom behaviour in a world.</div>
</td>
</tr>
<tr>
@@ -315,7 +316,7 @@
<em><a href="../../sims/dynamics/World.html#shapes" target="_self">shapes</a></em>
: <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>]
- <div>Ergibt alle Formen aus allen Koerpern in dieser Welt.</div>
+ <div>Returns all shapes of all bodies in this world.</div>
</td>
</tr>
<tr>
@@ -326,9 +327,7 @@
<em><a href="../../sims/dynamics/World.html#step%28%29" target="_self">step</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Simuliert einen von <code>timeStep</code> angegebenen Zeitschritt.
- Ihre Aufgabe ist es die Koerper dieser Welt so zu simulieren wie diese sich in einer Welt mit den gegebenen
- Bedingungen verhalten wuerden.</div>
+ <div>Simulates a time step of the duration <code>timeStep</code>.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -361,7 +360,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Zeitschritt in dem diese Welt die Simulation vorranschreiten laesst.</dd></dl>
+ <dl><dd>Time intervals in which this world simulates.</dd></dl>
<dl></dl>
<hr></hr>
<a name="iterations"></a><dl>
@@ -373,7 +372,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Anzahl der Constraint-Korrekturen pro Zeitschritt.</dd></dl>
+ <dl><dd>Number of constraint corrections per time step.</dd></dl>
<dl></dl>
<hr></hr>
<a name="gravity"></a><dl>
@@ -385,7 +384,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Schwerkraft die in dieser Welt herrscht.</dd></dl>
+ <dl><dd>Gravity in this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="bodies"></a><dl>
@@ -397,7 +396,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Alle Koerper die diese Welt simuliert.</dd></dl>
+ <dl><dd>Bodies contained in this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="joints"></a><dl>
@@ -409,7 +408,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Alle Verbindungen die diese Welt simuliert.</dd></dl>
+ <dl><dd>Joints contained in this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="monitors"></a><dl>
@@ -421,9 +420,12 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ueberwachungsfunktionen fuer Koerper.
+ <dl><dd>Monitoring methods for bodies.
<p>
- Das erste Element des Tuples ist die Ueberschrift und das zweite Element, der Wert.</dd></dl>
+ The first element of the tuple is the method's title and the second the method.
+ Example usage: monitors += ("Y-Position", _.pos.y.toString)
+ This will calculate all bodies - whose <code>monitor</code> field is set to
+ <code>true</code> - second position components.</dd></dl>
<dl></dl>
<hr></hr>
<a name="detector"></a><dl>
@@ -435,7 +437,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Kollisionsdetektor dieser Welt.</dd></dl>
+ <dl><dd>Collsion detector who manages collision detection in this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="overCWarning"></a><dl>
@@ -447,7 +449,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Warnung wenn Koerper schneller als Lichtgeschwindigkeit.</dd></dl>
+ <dl><dd>Warning if a body's velocity exceeds the speed of light.</dd></dl>
<dl></dl>
<hr></hr>
<a name="enableCollisionDetection"></a><dl>
@@ -459,7 +461,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Kollisionerkennung.</dd></dl>
+ <dl><dd>Flag to enable collision detection.</dd></dl>
<dl></dl>
<hr></hr>
<a name="enablePositionCorrection"></a><dl>
@@ -471,7 +473,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Positionskorrekturen.</dd></dl>
+ <dl><dd>Flag to enable position correction for constraints.</dd></dl>
<dl></dl>
<hr></hr>
<a name="minLinearVelocity"></a><dl>
@@ -483,7 +485,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Die minimale, nicht als null geltende Geschwindigkeit.</dd></dl>
+ <dl><dd>Minimal, non-zero linear velocity.</dd></dl>
<dl></dl>
<hr></hr>
<a name="minAngularVelocity"></a><dl>
@@ -495,7 +497,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Die minimale, nicht als null geltende Winkelgeschwindigkeit.</dd></dl>
+ <dl><dd>Minimal, non-zero angular velocity.</dd></dl>
<dl></dl>
<hr></hr>
<a name="time"></a><dl>
@@ -507,7 +509,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Aktuelle Zeit in Sekunden dieser Welt. Nach jedem Zeitschritt wird die Zeit erhoeht.</dd></dl>
+ <dl><dd>Current time in this world.</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -521,7 +523,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt alle Formen aus allen Koerpern in dieser Welt.</dd></dl>
+ <dl><dd>Returns all shapes of all bodies in this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="%2B%3D%28sims.dynamics.Body%29"></a><dl>
@@ -533,7 +535,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Fuegt dieser Welt einen Koerper hinzu.</dd></dl>
+ <dl><dd>Adds the given body to this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="%2B%3D%28sims.dynamics.joints.Joint%29"></a><dl>
@@ -545,7 +547,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Fuegt dieser Welt eine Verbindung hinzu.</dd></dl>
+ <dl><dd>Adds the given joint to this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="%2B%3D%28sims.prefabs.Prefab%29"></a><dl>
@@ -557,7 +559,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Fuegt dieser Welt ein vorangefertigtes System vaus Koerpern und Verbindungen hinzu.</dd></dl>
+ <dl><dd>Adds the given prefabricated system of bodies and joints to this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="%2B%2B%3D%28Seq%5Bsims.dynamics.Body%5D%29"></a><dl>
@@ -568,7 +570,10 @@
<em>++=</em>(<em>bs</em> : <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/dynamics/Body.html" target="_self">Body</a>]) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
</dt>
<dd></dd>
- </dl><hr></hr>
+ </dl>
+ <dl><dd>Adds the given sequence of bodies to this world.</dd></dl>
+ <dl></dl>
+ <hr></hr>
<a name="-%3D%28sims.dynamics.Body%29"></a><dl>
<dt>
@@ -578,7 +583,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Entfernt den gegebenen Koerper aus dieser Welt.</dd></dl>
+ <dl><dd>Removes the given body from this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="-%3D%28sims.dynamics.joints.Joint%29"></a><dl>
@@ -590,7 +595,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Entfernt die gegebene Verbindung aus dieser Welt.</dd></dl>
+ <dl><dd>Removes the given joint from this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="-%3D%28sims.prefabs.Prefab%29"></a><dl>
@@ -602,7 +607,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Entfernt das gegebene System aus Koerpern und Verbindungen aus dieser Welt.</dd></dl>
+ <dl><dd>Removes the given prefabricated system of bodies and joints from this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="--%3D%28Seq%5Bsims.dynamics.Body%5D%29"></a><dl>
@@ -613,7 +618,10 @@
<em>--=</em>(<em>bs</em> : <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/dynamics/Body.html" target="_self">Body</a>]) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
</dt>
<dd></dd>
- </dl><hr></hr>
+ </dl>
+ <dl><dd>Removes the given sequence of bodies from this world.</dd></dl>
+ <dl></dl>
+ <hr></hr>
<a name="clear%28%29"></a><dl>
<dt>
@@ -623,7 +631,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Entfernt alle Koerper, Verbindungen und Ueberwachungsfunktionen dieser Welt.</dd></dl>
+ <dl><dd>Removes all bodies, joints and monitoring methods from this world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="step%28%29"></a><dl>
@@ -635,18 +643,16 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Simuliert einen von <code>timeStep</code> angegebenen Zeitschritt.
- Ihre Aufgabe ist es die Koerper dieser Welt so zu simulieren wie diese sich in einer Welt mit den gegebenen
- Bedingungen verhalten wuerden.
+ <dl><dd>Simulates a time step of the duration <code>timeStep</code>.
<p>
- Der Zeitschritt wird in folgenden Phasen ausgefuehrt:
+ The time step is simulated in the following phases:
<ol>
- <li>Kraefte wirken auf die Koerper (z.B Schwerkraft, andere Kraftfaehige Objekte).</li>
- <li>Beschleunigungen werden integriert.</li>
- <li>Geschwindigkeiten werden korrigiert.</li>
- <li>Geschwindigkeiten werden integriert.</li>
- <li>Positionen werden korrigiert.</li>
- <li>Die Methode <code>postStep()</code> wird ausgefuehrt.</li>
+ <li>Forces are applied to bodies.</li>
+ <li>Accelerations are integrated.</li>
+ <li>Velocities are corrected.</li>
+ <li>Velocities are integrated.</li>
+ <li>Postions are corrected.</li>
+ <li>The method <code>postStep()</code> is executed.</li>
</ol></dd></dl>
<dl></dl>
<hr></hr>
@@ -659,7 +665,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Wird nach jedem Zeitschritt ausgefuehrt.</dd></dl>
+ <dl><dd>Initially empty method that is executed after each time step. This method
+ may be overriden to create custom behaviour in a world.</dd></dl>
<dl></dl>
<hr></hr>
<a name="info"></a><dl>
@@ -671,7 +678,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt Informationen ueber diese Welt.</dd></dl>
+ <dl><dd>Returns information about this world.</dd></dl>
<dl></dl>
<hr></hr></div>
diff --git a/doc/sims/dynamics/joints$content.html b/doc/sims/dynamics/joints$content.html
index 4652a21..141c3e3 100644
--- a/doc/sims/dynamics/joints$content.html
+++ b/doc/sims/dynamics/joints$content.html
@@ -13,7 +13,7 @@
<em><a href="../../sims/dynamics/joints/DistanceJoint.html" target="_self">DistanceJoint</a></em>
(<code>val </code><em>node1</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>, <code>val </code><em>anchor1</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <code>val </code><em>node2</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>, <code>val </code><em>anchor2</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>)<code> extends </code><a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>DistanceJoints halten die Bindungspunkte auf ihren Bindungskoerpern bei einem konstanten Abstand.</div>
+ <div>DistanceJoints keep their connection points at a constant distance.</div>
</td>
</tr>
<tr>
@@ -24,7 +24,7 @@
<em><a href="../../sims/dynamics/joints/ForceJoint.html" target="_self">ForceJoint</a></em>
<code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Eine Verbindung die Kraft auf ihre Bindungskoerper ausueben kann.</div>
+ <div>A joint which can apply a force to its anchor bodies, thus adding or removing energy to the system.</div>
</td>
</tr>
<tr>
@@ -35,8 +35,8 @@
<em><a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a></em>
<code> extends </code><a href="../../sims/dynamics/Constraint.html" target="_self">Constraint</a><code> with </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Joints sind Verbindungen die die Bewegung zwischen zwei Koerpern einschraenken.
- Ihre Implementierung wurde von Erin Catto's box2d inspiriert.</div>
+ <div>Joints constrain the movement of two bodies.
+ Their implementation was inspired by Erin Catto's box2d.</div>
</td>
</tr>
<tr>
@@ -47,7 +47,9 @@
<em><a href="../../sims/dynamics/joints/RevoluteJoint.html" target="_self">RevoluteJoint</a></em>
(<code>val </code><em>node1</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>, <code>val </code><em>node2</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>, <code>val </code><em>anchor</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>)<code> extends </code><a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Ein Gelenk, dass zwei Koerper an einem Punkt verbindet. Inspiriert von JBox2D.</div>
+ <div>A revolute joint that connects two bodies at a singe point. Inspired from JBox2D.
+ <b>Warning:</b> there are still several bugs with revolute joints, if they are between two free
+ bodies and not connected at their respective COMs.</div>
</td>
</tr>
<tr>
@@ -58,7 +60,7 @@
<em><a href="../../sims/dynamics/joints/SpringJoint.html" target="_self">SpringJoint</a></em>
(<code>val </code><em>node1</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>, <code>val </code><em>anchor1</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <code>val </code><em>node2</em> : <a href="../../sims/dynamics/Body.html" target="_self">Body</a>, <code>val </code><em>anchor2</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <code>val </code><em>springConstant</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>initialLength</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>)<code> extends </code><a href="../../sims/dynamics/joints/Joint.html" target="_self">Joint</a><code> with </code><a href="../../sims/dynamics/joints/ForceJoint.html" target="_self">ForceJoint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Eine Hooksche Feder.</div>
+ <div>A spring obeying Hooke's law.</div>
</td>
</tr>
</table>
diff --git a/doc/sims/dynamics/joints/DistanceJoint.html b/doc/sims/dynamics/joints/DistanceJoint.html
index 80a0f2d..bae5f5d 100644
--- a/doc/sims/dynamics/joints/DistanceJoint.html
+++ b/doc/sims/dynamics/joints/DistanceJoint.html
@@ -33,9 +33,9 @@
</dt>
<dd><code> extends </code><a href="../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>DistanceJoints halten die Bindungspunkte auf ihren Bindungskoerpern bei einem konstanten Abstand.</dd></dl>
+ <dl><dd>DistanceJoints keep their connection points at a constant distance.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>node1 - </code>erster Koerper der Verbindung</dd><dd><code>anchor1 - </code>Bindungspunkt auf Koerper eins</dd><dd><code>node2 - </code>zweiter Koerper der Verbindung</dd><dd><code>anchor2 - </code>Bindungspunkt auf Koerper zwei</dd></dl>
+ <b>Parameters</b></dt><dd><code>node1 - </code>first associated body</dd><dd><code>anchor1 - </code>first connection point</dd><dd><code>node2 - </code>second associated body</dd><dd><code>anchor2 - </code>second connection point</dd></dl>
<table summary="" cellpadding="3" class="member">
<tr><td class="title" colspan="2">Additional Constructor Summary</td></tr>
@@ -62,7 +62,7 @@
<em><a href="../../../sims/dynamics/joints/DistanceJoint.html#distance" target="_self">distance</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Abstand der beiden Bindungspunkte bei initialisierung (der gewollte Abstand).</div>
+ <div>Distance between the two connection points at initialisation (the desired distance).</div>
</td>
</tr>
</table>
@@ -76,7 +76,7 @@
<em><a href="../../../sims/dynamics/joints/DistanceJoint.html#connection1" target="_self">connection1</a></em>
: <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Ergibt den Bindungspunkt auf Koerper eins.</div>
+ <div>Returns the connection point on body one (in world coordinates).</div>
</td>
</tr>
<tr>
@@ -87,7 +87,7 @@
<em><a href="../../../sims/dynamics/joints/DistanceJoint.html#connection2" target="_self">connection2</a></em>
: <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Ergibt den Bindungspunkt auf Koerper zwei.</div>
+ <div>Returns the connection point on body two (in world coordinates).</div>
</td>
</tr>
<tr>
@@ -98,7 +98,7 @@
<em><a href="../../../sims/dynamics/joints/DistanceJoint.html#correctPosition%28Double%29" target="_self">correctPosition</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Position der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</div>
+ <div>Corrects the positions of this joint's associated bodies.</div>
</td>
</tr>
<tr>
@@ -109,7 +109,7 @@
<em><a href="../../../sims/dynamics/joints/DistanceJoint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</div>
+ <div>Corrects the velocities of this joint's associated bodies.</div>
</td>
</tr>
<tr>
@@ -187,7 +187,7 @@
<em><a href="../../../sims/dynamics/joints/DistanceJoint.html#v" target="_self">v</a></em>
: <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Relative Geschwindigkeit der Bindungspunkte.</div>
+ <div>Relative velocity of the connection points.</div>
</td>
</tr>
<tr>
@@ -198,7 +198,7 @@
<em><a href="../../../sims/dynamics/joints/DistanceJoint.html#x" target="_self">x</a></em>
: <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Relative Position der Bindungspunkte.</div>
+ <div>Relative position of the connection points.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -241,7 +241,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Abstand der beiden Bindungspunkte bei initialisierung (der gewollte Abstand).</dd></dl>
+ <dl><dd>Distance between the two connection points at initialisation (the desired distance).</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -255,7 +255,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt den Bindungspunkt auf Koerper eins.</dd></dl>
+ <dl><dd>Returns the connection point on body one (in world coordinates).</dd></dl>
<dl></dl>
<hr></hr>
<a name="connection2"></a><dl>
@@ -267,7 +267,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt den Bindungspunkt auf Koerper zwei.</dd></dl>
+ <dl><dd>Returns the connection point on body two (in world coordinates).</dd></dl>
<dl></dl>
<hr></hr>
<a name="x"></a><dl>
@@ -279,7 +279,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Relative Position der Bindungspunkte.</dd></dl>
+ <dl><dd>Relative position of the connection points.</dd></dl>
<dl></dl>
<hr></hr>
<a name="v"></a><dl>
@@ -291,7 +291,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Relative Geschwindigkeit der Bindungspunkte.</dd></dl>
+ <dl><dd>Relative velocity of the connection points.</dd></dl>
<dl></dl>
<hr></hr>
<a name="correctVelocity%28Double%29"></a><dl>
@@ -303,7 +303,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</dd></dl>
+ <dl><dd>Corrects the velocities of this joint's associated bodies.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -322,7 +322,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Position der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</dd></dl>
+ <dl><dd>Corrects the positions of this joint's associated bodies.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
diff --git a/doc/sims/dynamics/joints/ForceJoint.html b/doc/sims/dynamics/joints/ForceJoint.html
index bf8ac9f..58215b4 100644
--- a/doc/sims/dynamics/joints/ForceJoint.html
+++ b/doc/sims/dynamics/joints/ForceJoint.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Eine Verbindung die Kraft auf ihre Bindungskoerper ausueben kann.</dd></dl>
+ <dl><dd>A joint which can apply a force to its anchor bodies, thus adding or removing energy to the system.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
@@ -52,7 +52,7 @@
<em><a href="../../../sims/dynamics/joints/ForceJoint.html#applyForce%28%29" target="_self">applyForce</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Uebt eine Kraft auf die Bindungskoerper aus.</div>
+ <div>Applies a force on the achor bodies.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -86,7 +86,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Uebt eine Kraft auf die Bindungskoerper aus.</dd></dl>
+ <dl><dd>Applies a force on the achor bodies.</dd></dl>
<dl></dl>
<hr></hr></div>
diff --git a/doc/sims/dynamics/joints/Joint.html b/doc/sims/dynamics/joints/Joint.html
index a577cde..0e6908f 100644
--- a/doc/sims/dynamics/joints/Joint.html
+++ b/doc/sims/dynamics/joints/Joint.html
@@ -33,12 +33,12 @@
</dt>
<dd><code> extends </code><a href="../../../sims/dynamics/Constraint.html" target="_self">Constraint</a><code> with </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Joints sind Verbindungen die die Bewegung zwischen zwei Koerpern einschraenken.
- Ihre Implementierung wurde von Erin Catto's box2d inspiriert.</dd></dl>
+ <dl><dd>Joints constrain the movement of two bodies.
+ Their implementation was inspired by Erin Catto's box2d.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
- <dd><a href="../../../sims/dynamics/joints/DistanceJoint.html" target="_self">DistanceJoint</a>, <a href="../../../sims/dynamics/joints/RevoluteJoint.html" target="_self">RevoluteJoint</a>, <a href="../../../sims/dynamics/joints/SpringJoint.html" target="_self">SpringJoint</a></dd>
+ <dd><a href="../../../sims/dynamics/joints/DistanceJoint.html" target="_self">DistanceJoint</a>, <a href="../../../sims/dynamics/joints/RevoluteJoint.html" target="_self">RevoluteJoint</a>, <a href="../../../sims/dynamics/joints/SpringJoint.html" target="_self">SpringJoint</a>, <a href="../../../sims/dynamics/joints/test/PrismaticJoint.html" target="_self">PrismaticJoint</a>, <a href="../../../sims/dynamics/joints/test/UnitCircleJoint.html" target="_self">UnitCircleJoint</a></dd>
</dl><hr></hr>
@@ -52,7 +52,7 @@
<em><a href="../../../sims/dynamics/joints/Joint.html#node1" target="_self">node1</a></em>
: <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>
- <div>Erster Koerper der Verbindung.</div>
+ <div>First body of the joint.</div>
</td>
</tr>
<tr>
@@ -63,7 +63,7 @@
<em><a href="../../../sims/dynamics/joints/Joint.html#node2" target="_self">node2</a></em>
: <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>
- <div>Zweiter Koerper der Verbindung.</div>
+ <div>Second body of the joint.</div>
</td>
</tr>
</table>
@@ -77,7 +77,7 @@
<em><a href="../../../sims/dynamics/joints/Joint.html#correctPosition%28Double%29" target="_self">correctPosition</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Position der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</div>
+ <div>Corrects the positions of this joint's associated bodies.</div>
</td>
</tr>
<tr>
@@ -88,7 +88,7 @@
<em><a href="../../../sims/dynamics/joints/Joint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</div>
+ <div>Corrects the velocities of this joint's associated bodies.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -121,7 +121,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Erster Koerper der Verbindung.</dd></dl>
+ <dl><dd>First body of the joint.</dd></dl>
<dl></dl>
<hr></hr>
<a name="node2"></a><dl>
@@ -133,7 +133,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Zweiter Koerper der Verbindung.</dd></dl>
+ <dl><dd>Second body of the joint.</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -147,7 +147,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</dd></dl>
+ <dl><dd>Corrects the velocities of this joint's associated bodies.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -166,7 +166,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Position der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</dd></dl>
+ <dl><dd>Corrects the positions of this joint's associated bodies.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
diff --git a/doc/sims/dynamics/joints/RevoluteJoint.html b/doc/sims/dynamics/joints/RevoluteJoint.html
index b3059de..5184b29 100644
--- a/doc/sims/dynamics/joints/RevoluteJoint.html
+++ b/doc/sims/dynamics/joints/RevoluteJoint.html
@@ -33,7 +33,9 @@
</dt>
<dd><code> extends </code><a href="../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Ein Gelenk, dass zwei Koerper an einem Punkt verbindet. Inspiriert von JBox2D.</dd></dl>
+ <dl><dd>A revolute joint that connects two bodies at a singe point. Inspired from JBox2D.
+ <b>Warning:</b> there are still several bugs with revolute joints, if they are between two free
+ bodies and not connected at their respective COMs.</dd></dl>
<dl></dl>
@@ -71,7 +73,7 @@
<em><a href="../../../sims/dynamics/joints/RevoluteJoint.html#correctPosition%28Double%29" target="_self">correctPosition</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Position der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</div>
+ <div>Corrects the positions of this joint's associated bodies.</div>
</td>
</tr>
<tr>
@@ -82,7 +84,7 @@
<em><a href="../../../sims/dynamics/joints/RevoluteJoint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</div>
+ <div>Corrects the velocities of this joint's associated bodies.</div>
</td>
</tr>
<tr>
@@ -241,7 +243,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</dd></dl>
+ <dl><dd>Corrects the velocities of this joint's associated bodies.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -260,7 +262,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Position der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</dd></dl>
+ <dl><dd>Corrects the positions of this joint's associated bodies.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
diff --git a/doc/sims/dynamics/joints/SpringJoint.html b/doc/sims/dynamics/joints/SpringJoint.html
index b361835..4819b16 100644
--- a/doc/sims/dynamics/joints/SpringJoint.html
+++ b/doc/sims/dynamics/joints/SpringJoint.html
@@ -33,9 +33,9 @@
</dt>
<dd><code> extends </code><a href="../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a><code> with </code><a href="../../../sims/dynamics/joints/ForceJoint.html" target="_self">ForceJoint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Eine Hooksche Feder.</dd></dl>
+ <dl><dd>A spring obeying Hooke's law.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>node1 - </code>erster Koerper der Verbindung</dd><dd><code>anchor1 - </code>Bindungspunkt auf Koerper eins</dd><dd><code>node2 - </code>zweiter Koerper der Verbindung</dd><dd><code>anchor2 - </code>Bindungspunkt auf Koerper zwei</dd><dd><code>springConstant - </code>Federkonstante</dd><dd><code>initialLength - </code>Initiallaenge</dd></dl>
+ <b>Parameters</b></dt><dd><code>node1 - </code>first associated body</dd><dd><code>anchor1 - </code>first connection point</dd><dd><code>node2 - </code>second associated body</dd><dd><code>anchor2 - </code>second connection point</dd><dd><code>springConstant - </code>spring constant</dd><dd><code>initialLength - </code>initial length</dd></dl>
<table summary="" cellpadding="3" class="member">
<tr><td class="title" colspan="2">Additional Constructor Summary</td></tr>
@@ -44,8 +44,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../../sims/dynamics/joints/SpringJoint.html#this%28sims.dynamics.Body%2Csims.dynamics.Body%2CDouble%29" target="_self">this</a></em>
- (<em>node1</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>node2</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>springConstant</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="../../../sims/dynamics/joints/SpringJoint.html" target="_self">SpringJoint</a>
+ <em><a href="../../../sims/dynamics/joints/SpringJoint.html#this%28sims.dynamics.Body%2Csims.dynamics.Body%2CDouble%2CDouble%29" target="_self">this</a></em>
+ (<em>node1</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>node2</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>springConstant</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <em>initialLength</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="../../../sims/dynamics/joints/SpringJoint.html" target="_self">SpringJoint</a>
</td>
@@ -66,8 +66,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../../sims/dynamics/joints/SpringJoint.html#this%28sims.dynamics.Body%2Csims.dynamics.Body%2CDouble%2CDouble%29" target="_self">this</a></em>
- (<em>node1</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>node2</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>springConstant</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <em>initialLength</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="../../../sims/dynamics/joints/SpringJoint.html" target="_self">SpringJoint</a>
+ <em><a href="../../../sims/dynamics/joints/SpringJoint.html#this%28sims.dynamics.Body%2Csims.dynamics.Body%2CDouble%29" target="_self">this</a></em>
+ (<em>node1</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>node2</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>springConstant</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="../../../sims/dynamics/joints/SpringJoint.html" target="_self">SpringJoint</a>
</td>
@@ -84,7 +84,7 @@
<em><a href="../../../sims/dynamics/joints/SpringJoint.html#damping" target="_self">damping</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Daempfung.</div>
+ <div>Damping.</div>
</td>
</tr>
</table>
@@ -98,7 +98,7 @@
<em><a href="../../../sims/dynamics/joints/SpringJoint.html#applyForce%28%29" target="_self">applyForce</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Uebt die Federkraft auf die Bindungspunkte aus.</div>
+ <div>Applies the spring force to the connection points.</div>
</td>
</tr>
<tr>
@@ -109,7 +109,7 @@
<em><a href="../../../sims/dynamics/joints/SpringJoint.html#connection1" target="_self">connection1</a></em>
: <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Ergibt den Bindungspunkt auf Koerper eins.</div>
+ <div>Returns the connection point on body one (in world coordinates).</div>
</td>
</tr>
<tr>
@@ -120,7 +120,7 @@
<em><a href="../../../sims/dynamics/joints/SpringJoint.html#connection2" target="_self">connection2</a></em>
: <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Ergibt den Bindungspunkt auf Koerper zwei.</div>
+ <div>Returns the connection point on body two (in world coordinates).</div>
</td>
</tr>
<tr>
@@ -131,7 +131,7 @@
<em><a href="../../../sims/dynamics/joints/SpringJoint.html#correctPosition%28Double%29" target="_self">correctPosition</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Position der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</div>
+ <div>Corrects the positions of this joint's associated bodies.</div>
</td>
</tr>
<tr>
@@ -142,7 +142,7 @@
<em><a href="../../../sims/dynamics/joints/SpringJoint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a></em>
(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
- <div>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</div>
+ <div>Corrects the velocities of this joint's associated bodies.</div>
</td>
</tr>
<tr>
@@ -165,7 +165,7 @@
<em><a href="../../../sims/dynamics/joints/SpringJoint.html#force" target="_self">force</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Ergibt die Federkraft nach dem Hookschen Gesetz.</div>
+ <div>Returns the spring force.</div>
</td>
</tr>
<tr>
@@ -228,10 +228,21 @@
<code> def</code>
</td>
<td class="signature">
+ <em><a href="../../../sims/dynamics/joints/SpringJoint.html#v" target="_self">v</a></em>
+ : <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+
+ <div>Relative velocity of the connection points.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
<em><a href="../../../sims/dynamics/joints/SpringJoint.html#x" target="_self">x</a></em>
: <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Relative Position der Bindungspunkte.</div>
+ <div>Relative position of the connection points.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -292,7 +303,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Daempfung.</dd></dl>
+ <dl><dd>Damping.</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -306,7 +317,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt den Bindungspunkt auf Koerper eins.</dd></dl>
+ <dl><dd>Returns the connection point on body one (in world coordinates).</dd></dl>
<dl></dl>
<hr></hr>
<a name="connection2"></a><dl>
@@ -318,7 +329,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt den Bindungspunkt auf Koerper zwei.</dd></dl>
+ <dl><dd>Returns the connection point on body two (in world coordinates).</dd></dl>
<dl></dl>
<hr></hr>
<a name="x"></a><dl>
@@ -330,7 +341,19 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Relative Position der Bindungspunkte.</dd></dl>
+ <dl><dd>Relative position of the connection points.</dd></dl>
+ <dl></dl>
+ <hr></hr>
+<a name="v"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>v</em> : <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>Relative velocity of the connection points.</dd></dl>
<dl></dl>
<hr></hr>
<a name="force"></a><dl>
@@ -342,7 +365,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt die Federkraft nach dem Hookschen Gesetz.</dd></dl>
+ <dl><dd>Returns the spring force.</dd></dl>
<dl></dl>
<hr></hr>
<a name="applyForce%28%29"></a><dl>
@@ -354,7 +377,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Uebt die Federkraft auf die Bindungspunkte aus.</dd></dl>
+ <dl><dd>Applies the spring force to the connection points.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
@@ -364,42 +387,42 @@
<a href="../../../sims/dynamics/joints/ForceJoint.html" target="_self">ForceJoint</a>.<a href="../../../sims/dynamics/joints/ForceJoint.html#applyForce%28%29" target="_self">applyForce</a>
</dd>
</dl><hr></hr>
-<a name="correctPosition%28Double%29"></a><dl>
+<a name="correctVelocity%28Double%29"></a><dl>
<dt>
<code></code>
<code>def</code>
- <em>correctPosition</em>(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ <em>correctVelocity</em>(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Position der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</dd></dl>
+ <dl><dd>Corrects the velocities of this joint's associated bodies.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
</dt>
<dd>
- <a href="../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>.<a href="../../../sims/dynamics/joints/Joint.html#correctPosition%28Double%29" target="_self">correctPosition</a>
+ <a href="../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>.<a href="../../../sims/dynamics/joints/Joint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a>
</dd>
</dl><hr></hr>
-<a name="correctVelocity%28Double%29"></a><dl>
+<a name="correctPosition%28Double%29"></a><dl>
<dt>
<code></code>
<code>def</code>
- <em>correctVelocity</em>(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ <em>correctPosition</em>(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
</dt>
<dd></dd>
</dl>
- <dl><dd>Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen der Verbindung entsprechen.</dd></dl>
+ <dl><dd>Corrects the positions of this joint's associated bodies.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;">
<b>Overrides</b>
</dt>
<dd>
- <a href="../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>.<a href="../../../sims/dynamics/joints/Joint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a>
+ <a href="../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>.<a href="../../../sims/dynamics/joints/Joint.html#correctPosition%28Double%29" target="_self">correctPosition</a>
</dd>
</dl><hr></hr>
<a name="hashCode%28%29"></a><dl>
diff --git a/doc/sims/dynamics/joints/test$content.html b/doc/sims/dynamics/joints/test$content.html
new file mode 100644
index 0000000..6509725
--- /dev/null
+++ b/doc/sims/dynamics/joints/test$content.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head><title>All classes and objects in sims.dynamics.joints.test</title>
+ <meta http-equiv="content-type" content="text/html; charset=UTF8"></meta><meta content="scaladoc (version 2.7.5.final)" name="generator"></meta><link href="../../../style.css" type="text/css" rel="stylesheet"></link><script type="text/javascript" src="../../../script.js"></script>
+ </head>
+ <body onload="init()"><div class="page-title"><div>Simple Mechanics Simulator (SiMS) API</div></div><p><div>This document is the API specification for SiMS</div></p><table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Class Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code>case class</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../sims/dynamics/joints/test/PrismaticJoint.html" target="_self">PrismaticJoint</a></em>
+ (<code>val </code><em>node1</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <code>val </code><em>anchor1</em> : <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <code>val </code><em>node2</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <code>val </code><em>anchor2</em> : <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>)<code> extends </code><a href="../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> class</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../sims/dynamics/joints/test/UnitCircleJoint.html" target="_self">UnitCircleJoint</a></em>
+ (<em>body</em> : <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>anchor</em> : <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>)<code> extends </code><a href="../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>
+
+
+ </td>
+ </tr>
+ </table>
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Object Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> object</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../sims/dynamics/joints/test/PrismaticJoint$object.html" target="_self">PrismaticJoint</a></em>
+ <code> extends </code>(<a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <a href="../../../sims/dynamics/Body.html" target="_self">Body</a>, <a href="../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) =&gt; <a href="../../../sims/dynamics/joints/test/PrismaticJoint.html" target="_self">PrismaticJoint</a>
+
+
+ </td>
+ </tr>
+ </table></body>
+ </html> \ No newline at end of file
diff --git a/doc/sims/dynamics/joints/test$package.html b/doc/sims/dynamics/joints/test$package.html
new file mode 100644
index 0000000..b34f98d
--- /dev/null
+++ b/doc/sims/dynamics/joints/test$package.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head><title>List of classes and objects in package sims.dynamics.joints.test</title>
+ <meta http-equiv="content-type" content="text/html; charset=UTF8"></meta><meta content="scaladoc (version 2.7.5.final)" name="generator"></meta><link href="../../../style.css" type="text/css" rel="stylesheet"></link><script type="text/javascript" src="../../../script.js"></script>
+ </head>
+ <body onload="init()"><table summary="" class="navigation">
+ <tr><td class="navigation-links" valign="top">
+ <a href="../../../sims/dynamics/joints/test$content.html" target="contentFrame">sims.dynamics.joints.test</a>
+ </td></tr>
+ </table><div><div class="kinds" id="Classes">Classes</div><ul class="list">
+ <li id="Classes_P"><a href="../../../sims/dynamics/joints/test/PrismaticJoint.html" target="contentFrame">PrismaticJoint</a></li>
+<li id="Classes_U"><a href="../../../sims/dynamics/joints/test/UnitCircleJoint.html" target="contentFrame">UnitCircleJoint</a></li>
+ </ul>
+<div class="kinds" id="Objects">Objects</div><ul class="list">
+ <li id="Objects_P"><a href="../../../sims/dynamics/joints/test/PrismaticJoint$object.html" target="contentFrame">PrismaticJoint</a></li>
+ </ul></div></body>
+ </html> \ No newline at end of file
diff --git a/doc/sims/dynamics/joints/test/PrismaticJoint$object.html b/doc/sims/dynamics/joints/test/PrismaticJoint$object.html
new file mode 100644
index 0000000..e460df7
--- /dev/null
+++ b/doc/sims/dynamics/joints/test/PrismaticJoint$object.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head><title>object PrismaticJoint in sims.dynamics.joints.test</title>
+ <meta http-equiv="content-type" content="text/html; charset=UTF8"></meta><meta content="scaladoc (version 2.7.5.final)" name="generator"></meta><link href="../../../../style.css" type="text/css" rel="stylesheet"></link><script type="text/javascript" src="../../../../script.js"></script>
+ </head>
+ <body onload="init()">
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+
+ <div class="entity">
+ <a href="../../../../sims/dynamics/joints/test$package.html" target="_self">sims.dynamics.joints.test</a>
+ <br></br>
+ <span class="entity">object PrismaticJoint</span>
+ </div><hr></hr>
+ <div class="source">
+ [source: <a href="" class="sims/dynamics/joints/test/PrismaticJoint"><code>sims/dynamics/joints/test/PrismaticJoint.scala</code></a>]
+ </div><hr></hr>
+ <a name="PrismaticJoint"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>object</code>
+ <em>PrismaticJoint</em>
+ </dt>
+ <dd><code> extends </code>(<a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>, <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>, <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) =&gt; <a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html" target="_self">PrismaticJoint</a></dd>
+ </dl>
+
+
+
+<table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="" target="contentFrame" class="scala/Function4">scala.Function4</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="#toString" target="contentFrame" class="scala/Function4">scala.Function4.toString</a>, <a href="#curry" target="contentFrame" class="scala/Function4">scala.Function4.curry</a>
+ </td></tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#getClass%28%29" target="_self">getClass</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#hashCode%28%29" target="_self">hashCode</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#equals%28Any%29" target="_self">equals</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#clone%28%29" target="_self">clone</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notify%28%29" target="_self">notify</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notifyAll%28%29" target="_self">notifyAll</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%2CInt%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#finalize%28%29" target="_self">finalize</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%3D%3D%28AnyRef%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%21%3D%28AnyRef%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#eq%28AnyRef%29" target="_self">eq</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#ne%28AnyRef%29" target="_self">ne</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#synchronized%28T0%29" target="_self">synchronized</a>
+ </td></tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%3D%3D%28Any%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%21%3D%28Any%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#isInstanceOf" target="_self">isInstanceOf</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#asInstanceOf" target="_self">asInstanceOf</a>
+ </td></tr>
+ </table>
+
+
+
+
+
+
+
+
+ <hr></hr>
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+ </body>
+ </html> \ No newline at end of file
diff --git a/doc/sims/dynamics/joints/test/PrismaticJoint.html b/doc/sims/dynamics/joints/test/PrismaticJoint.html
new file mode 100644
index 0000000..a5c5a94
--- /dev/null
+++ b/doc/sims/dynamics/joints/test/PrismaticJoint.html
@@ -0,0 +1,502 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head><title>class PrismaticJoint in sims.dynamics.joints.test</title>
+ <meta http-equiv="content-type" content="text/html; charset=UTF8"></meta><meta content="scaladoc (version 2.7.5.final)" name="generator"></meta><link href="../../../../style.css" type="text/css" rel="stylesheet"></link><script type="text/javascript" src="../../../../script.js"></script>
+ </head>
+ <body onload="init()">
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+
+ <div class="entity">
+ <a href="../../../../sims/dynamics/joints/test$package.html" target="_self">sims.dynamics.joints.test</a>
+ <br></br>
+ <span class="entity">class PrismaticJoint</span>
+ </div><hr></hr>
+ <div class="source">
+ [source: <a href="" class="sims/dynamics/joints/test/PrismaticJoint"><code>sims/dynamics/joints/test/PrismaticJoint.scala</code></a>]
+ </div><hr></hr>
+ <a name="PrismaticJoint"></a><dl>
+ <dt>
+
+ <code>case</code>
+ <code>class</code>
+ <em>PrismaticJoint</em>(<code>val </code><em>node1</em> : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>, <code>val </code><em>anchor1</em> : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <code>val </code><em>node2</em> : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>, <code>val </code><em>anchor2</em> : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>)
+ </dt>
+ <dd><code> extends </code><a href="../../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a><code> with </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
+ </dl>
+ <table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Additional Constructor Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#this%28sims.dynamics.Body%2Csims.dynamics.Body%29" target="_self">this</a></em>
+ (<em>node1</em> : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>node2</em> : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html" target="_self">PrismaticJoint</a>
+
+
+ </td>
+ </tr>
+ </table>
+
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Value Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#angle" target="_self">angle</a></em>
+ : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
+
+
+ </td>
+ </tr>
+ </table>
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Method Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#connection1" target="_self">connection1</a></em>
+ : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#connection2" target="_self">connection2</a></em>
+ : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#correctAngular%28Double%29" target="_self">correctAngular</a></em>
+ (<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#correctLinear%28Double%29" target="_self">correctLinear</a></em>
+ (<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#correctPosition%28Double%29" target="_self">correctPosition</a></em>
+ (<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+ <div>Corrects the positions of this joint's associated bodies.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a></em>
+ (<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+ <div>Corrects the velocities of this joint's associated bodies.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code>override def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#equals%28Any%29" target="_self">equals</a></em>
+ (<em>arg0</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
+
+ <div>This method is used to compare the receiver object (<code>this</code>)
+ with the argument object (<code>arg0</code>) for equivalence.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code>override def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#hashCode%28%29" target="_self">hashCode</a></em>
+ : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
+
+ <div>Returns a hash code value for the object.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code>override def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#productArity" target="_self">productArity</a></em>
+ : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code>override def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#productElement%28Int%29" target="_self">productElement</a></em>
+ (<em>arg0</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code>override def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#productPrefix" target="_self">productPrefix</a></em>
+ : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code>override def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#toString%28%29" target="_self">toString</a></em>
+ : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
+
+ <div>Returns a string representation of the object.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#v" target="_self">v</a></em>
+ : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html#x" target="_self">x</a></em>
+ : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+
+
+ </td>
+ </tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#getClass%28%29" target="_self">getClass</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#clone%28%29" target="_self">clone</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notify%28%29" target="_self">notify</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notifyAll%28%29" target="_self">notifyAll</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%2CInt%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#finalize%28%29" target="_self">finalize</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%3D%3D%28AnyRef%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%21%3D%28AnyRef%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#eq%28AnyRef%29" target="_self">eq</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#ne%28AnyRef%29" target="_self">ne</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#synchronized%28T0%29" target="_self">synchronized</a>
+ </td></tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%3D%3D%28Any%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%21%3D%28Any%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#isInstanceOf" target="_self">isInstanceOf</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#asInstanceOf" target="_self">asInstanceOf</a>
+ </td></tr>
+ </table>
+
+
+ <table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Additional Constructor Details</td></tr>
+ </table><div><a name="this%28sims.dynamics.Body%2Csims.dynamics.Body%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>this</em>(<em>node1</em> : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>node2</em> : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>) : <a href="../../../../sims/dynamics/joints/test/PrismaticJoint.html" target="_self">PrismaticJoint</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr></div>
+
+<table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Value Details</td></tr>
+ </table><div><a name="angle"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>angle</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr></div>
+<table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Method Details</td></tr>
+ </table><div><a name="connection1"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>connection1</em> : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="connection2"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>connection2</em> : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="x"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>x</em> : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="v"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>v</em> : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="correctVelocity%28Double%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>correctVelocity</em>(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>Corrects the velocities of this joint's associated bodies.</dd></dl>
+ <dl></dl>
+ <dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>.<a href="../../../../sims/dynamics/joints/Joint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a>
+ </dd>
+ </dl><hr></hr>
+<a name="correctLinear%28Double%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>correctLinear</em>(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="correctAngular%28Double%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>correctAngular</em>(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="correctPosition%28Double%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>correctPosition</em>(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>Corrects the positions of this joint's associated bodies.</dd></dl>
+ <dl></dl>
+ <dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>.<a href="../../../../sims/dynamics/joints/Joint.html#correctPosition%28Double%29" target="_self">correctPosition</a>
+ </dd>
+ </dl><hr></hr>
+<a name="hashCode%28%29"></a><dl>
+ <dt>
+
+ <code>override</code>
+ <code>def</code>
+ <em>hashCode</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>Returns a hash code value for the object.
+ <p>
+ The default hashing algorithm is platform dependent.
+ Note that it is allowed for two objects to have identical hash
+ codes (<code>o1.hashCode.equals(o2.hashCode)</code>) yet not be
+ equal (<code>o1.equals(o2)</code> returns <code>false</code>). A
+ degenerate implementation could always return <code>0</code>.
+ However, it is required that if two objects are equal
+ (<code>o1.equals(o2)</code> returns <code>true</code>) that they
+ have identical hash codes
+ (<code>o1.hashCode.equals(o2.hashCode)</code>). Therefore, when
+ overriding this method, be sure to verify that the behavior is
+ consistent with the <code>equals</code> method.
+ </p>
+ <p></dd></dl>
+ <dl><dt style="margin:10px 0 0 20px;">
+ <b>Returns</b></dt><dd>the hash code value for the object. </p></dd></dl>
+ <hr></hr>
+<a name="toString%28%29"></a><dl>
+ <dt>
+
+ <code>override</code>
+ <code>def</code>
+ <em>toString</em> : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>Returns a string representation of the object.
+ <p>
+ The default representation is platform dependent.</dd></dl>
+ <dl><dt style="margin:10px 0 0 20px;">
+ <b>Returns</b></dt><dd>a string representation of the object. </p></dd></dl>
+ <hr></hr>
+<a name="equals%28Any%29"></a><dl>
+ <dt>
+
+ <code>override</code>
+ <code>def</code>
+ <em>equals</em>(<em>arg0</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>This method is used to compare the receiver object (<code>this</code>)
+ with the argument object (<code>arg0</code>) for equivalence.
+
+ <p>
+ The default implementations of this method is an <a
+ href="http://en.wikipedia.org/wiki/Equivalence_relation">equivalence
+ relation</a>:
+ <ul>
+ <li>It is reflexive: for any instance <code>x</code> of type <code>Any</code>,
+ <code>x.equals(x)</code> should return <code>true</code>.</li>
+ <li>It is symmetric: for any instances <code>x</code> and <code>y</code> of type
+ <code>Any</code>, <code>x.equals(y)</code> should return <code>true</code> if and only
+ if <code>y.equals(x)</code> returns <code>true</code>.</li>
+ <li>It is transitive: for any instances
+ <code>x</code>, <code>y</code>, and <code>z</code> of type <code>AnyRef</code>
+ if <code>x.equals(y)</code> returns <code>true</code> and
+ <code>y.equals(z)</code> returns
+ <code>true</code>, then <code>x.equals(z)</code> should return <code>true</code>.</li>
+ </ul>
+ </p>
+ <p>
+ If you override this method, you should verify that
+ your implementation remains an equivalence relation.
+ Additionally, when overriding this method it is often necessary to
+ override <code>hashCode</code> to ensure that objects that are
+ "equal" (<code>o1.equals(o2)</code> returns <code>true</code>)
+ hash to the same <a href="Int.html"><code>Int</code></a>
+ (<code>o1.hashCode.equals(o2.hashCode)</code>).</dd></dl>
+ <dl><dt style="margin:10px 0 0 20px;">
+ <b>Parameters</b></dt><dd><code>arg0 - </code>the object to compare against this object for equality.</dd><dt style="margin:10px 0 0 20px;">
+ <b>Returns</b></dt><dd><code>true</code> if the receiver object is equivalent to the argument; <code>false</code> otherwise. </p></dd></dl>
+ <hr></hr>
+<a name="productPrefix"></a><dl>
+ <dt>
+
+ <code>override</code>
+ <code>def</code>
+ <em>productPrefix</em> : <a href="" target="contentFrame" class="java/lang/String">java.lang.String</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="" target="contentFrame" class="scala/Product">scala.Product</a>.<a href="#productPrefix" target="contentFrame" class="scala/Product">scala.Product.productPrefix</a>
+ </dd>
+ </dl><hr></hr>
+<a name="productArity"></a><dl>
+ <dt>
+
+ <code>override</code>
+ <code>def</code>
+ <em>productArity</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="" target="contentFrame" class="scala/Product">scala.Product</a>.<a href="#productArity" target="contentFrame" class="scala/Product">scala.Product.productArity</a>
+ </dd>
+ </dl><hr></hr>
+<a name="productElement%28Int%29"></a><dl>
+ <dt>
+
+ <code>override</code>
+ <code>def</code>
+ <em>productElement</em>(<em>arg0</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Int.html" target="_self">Int</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
+ </dt>
+ <dd></dd>
+ </dl><dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="" target="contentFrame" class="scala/Product">scala.Product</a>.<a href="#productElement" target="contentFrame" class="scala/Product">scala.Product.productElement</a>
+ </dd>
+ </dl><hr></hr></div>
+
+
+ <hr></hr>
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+ </body>
+ </html> \ No newline at end of file
diff --git a/doc/sims/dynamics/joints/test/UnitCircleJoint.html b/doc/sims/dynamics/joints/test/UnitCircleJoint.html
new file mode 100644
index 0000000..b580f30
--- /dev/null
+++ b/doc/sims/dynamics/joints/test/UnitCircleJoint.html
@@ -0,0 +1,261 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head><title>class UnitCircleJoint in sims.dynamics.joints.test</title>
+ <meta http-equiv="content-type" content="text/html; charset=UTF8"></meta><meta content="scaladoc (version 2.7.5.final)" name="generator"></meta><link href="../../../../style.css" type="text/css" rel="stylesheet"></link><script type="text/javascript" src="../../../../script.js"></script>
+ </head>
+ <body onload="init()">
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+
+ <div class="entity">
+ <a href="../../../../sims/dynamics/joints/test$package.html" target="_self">sims.dynamics.joints.test</a>
+ <br></br>
+ <span class="entity">class UnitCircleJoint</span>
+ </div><hr></hr>
+ <div class="source">
+ [source: <a href="" class="sims/dynamics/joints/test/UnitCircleJoint"><code>sims/dynamics/joints/test/UnitCircleJoint.scala</code></a>]
+ </div><hr></hr>
+ <a name="UnitCircleJoint"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>class</code>
+ <em>UnitCircleJoint</em>(<em>body</em> : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>, <em>anchor</em> : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>)
+ </dt>
+ <dd><code> extends </code><a href="../../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a></dd>
+ </dl>
+
+
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Value Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/UnitCircleJoint.html#node1" target="_self">node1</a></em>
+ : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>
+
+ <div>First body of the joint.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> val</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/UnitCircleJoint.html#node2" target="_self">node2</a></em>
+ : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>
+
+ <div>Second body of the joint.</div>
+ </td>
+ </tr>
+ </table>
+<table summary="" cellpadding="3" class="member">
+ <tr><td class="title" colspan="2">Method Summary</td></tr>
+ <tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/UnitCircleJoint.html#connection" target="_self">connection</a></em>
+ : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/UnitCircleJoint.html#correctPosition%28Double%29" target="_self">correctPosition</a></em>
+ (<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+ <div>Corrects the positions of this joint's associated bodies.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/UnitCircleJoint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a></em>
+ (<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+
+ <div>Corrects the velocities of this joint's associated bodies.</div>
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/UnitCircleJoint.html#v" target="_self">v</a></em>
+ : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+
+
+ </td>
+ </tr>
+<tr>
+ <td class="modifiers" valign="top">
+ <code> def</code>
+ </td>
+ <td class="signature">
+ <em><a href="../../../../sims/dynamics/joints/test/UnitCircleJoint.html#x" target="_self">x</a></em>
+ : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+
+
+ </td>
+ </tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#getClass%28%29" target="_self">getClass</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#hashCode%28%29" target="_self">hashCode</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#equals%28Any%29" target="_self">equals</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#clone%28%29" target="_self">clone</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#toString%28%29" target="_self">toString</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notify%28%29" target="_self">notify</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#notifyAll%28%29" target="_self">notifyAll</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28Long%2CInt%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#wait%28%29" target="_self">wait</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#finalize%28%29" target="_self">finalize</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%3D%3D%28AnyRef%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#%21%3D%28AnyRef%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#eq%28AnyRef%29" target="_self">eq</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#ne%28AnyRef%29" target="_self">ne</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html#synchronized%28T0%29" target="_self">synchronized</a>
+ </td></tr>
+ </table><table summary="" cellpadding="3" class="inherited">
+ <tr><td class="title" colspan="2">
+ Methods inherited from <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html" target="_self">Any</a>
+ </td></tr>
+ <tr><td class="signature" colspan="2">
+ <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%3D%3D%28Any%29" target="_self">==</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#%21%3D%28Any%29" target="_self">!=</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#isInstanceOf" target="_self">isInstanceOf</a>, <a href="http://www.scala-lang.org/docu/files/api/scala/Any.html#asInstanceOf" target="_self">asInstanceOf</a>
+ </td></tr>
+ </table>
+
+
+
+
+<table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Value Details</td></tr>
+ </table><div><a name="node1"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>node1</em> : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>First body of the joint.</dd></dl>
+ <dl></dl>
+ <dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>.<a href="../../../../sims/dynamics/joints/Joint.html#node1" target="_self">node1</a>
+ </dd>
+ </dl><hr></hr>
+<a name="node2"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>val</code>
+ <em>node2</em> : <a href="../../../../sims/dynamics/Body.html" target="_self">Body</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>Second body of the joint.</dd></dl>
+ <dl></dl>
+ <dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>.<a href="../../../../sims/dynamics/joints/Joint.html#node2" target="_self">node2</a>
+ </dd>
+ </dl><hr></hr></div>
+<table summary="" cellpadding="3" class="member-detail">
+ <tr><td class="title">Method Details</td></tr>
+ </table><div><a name="connection"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>connection</em> : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="x"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>x</em> : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="v"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>v</em> : <a href="../../../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ </dt>
+ <dd></dd>
+ </dl><hr></hr>
+<a name="correctVelocity%28Double%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>correctVelocity</em>(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>Corrects the velocities of this joint's associated bodies.</dd></dl>
+ <dl></dl>
+ <dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>.<a href="../../../../sims/dynamics/joints/Joint.html#correctVelocity%28Double%29" target="_self">correctVelocity</a>
+ </dd>
+ </dl><hr></hr>
+<a name="correctPosition%28Double%29"></a><dl>
+ <dt>
+
+ <code></code>
+ <code>def</code>
+ <em>correctPosition</em>(<em>h</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Unit.html" target="_self">Unit</a>
+ </dt>
+ <dd></dd>
+ </dl>
+ <dl><dd>Corrects the positions of this joint's associated bodies.</dd></dl>
+ <dl></dl>
+ <dl>
+ <dt style="margin:10px 0 0 20px;">
+ <b>Overrides</b>
+ </dt>
+ <dd>
+ <a href="../../../../sims/dynamics/joints/Joint.html" target="_self">Joint</a>.<a href="../../../../sims/dynamics/joints/Joint.html#correctPosition%28Double%29" target="_self">correctPosition</a>
+ </dd>
+ </dl><hr></hr></div>
+
+
+ <hr></hr>
+ <table summary="" class="navigation">
+ <tr>
+ <td class="navigation-links" valign="top">
+ <!-- <table><tr></tr></table> -->
+ </td>
+ <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
+ <div class="doctitle-larger">SiMS</div>
+ </td>
+ </tr>
+ <tr><td></td></tr>
+ </table>
+ </body>
+ </html> \ No newline at end of file
diff --git a/doc/sims/geometry$content.html b/doc/sims/geometry$content.html
index e3cf2bb..d5e1e86 100644
--- a/doc/sims/geometry$content.html
+++ b/doc/sims/geometry$content.html
@@ -13,7 +13,7 @@
<em><a href="../sims/geometry/ConvexPolygon.html" target="_self">ConvexPolygon</a></em>
<code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Gemeinsame Eigenschaften aller konvexen Polygone.</div>
+ <div>Common properties of all convex polygons.</div>
</td>
</tr>
<tr>
@@ -24,7 +24,7 @@
<em><a href="../sims/geometry/Projection.html" target="_self">Projection</a></em>
(<code>val </code><em>axis</em> : <a href="../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <code>val </code><em>lower</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>upper</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>)<code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Projektion auf eine Achse.</div>
+ <div>Projection on an axis.</div>
</td>
</tr>
<tr>
@@ -35,7 +35,7 @@
<em><a href="../sims/geometry/Ray.html" target="_self">Ray</a></em>
(<code>val </code><em>point</em> : <a href="../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <code>val </code><em>direction</em> : <a href="../sims/geometry/Vector2D.html" target="_self">Vector2D</a>)<code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Eine Halbgerade wird definiert durch:</div>
+ <div>A ray.</div>
</td>
</tr>
<tr>
@@ -46,7 +46,7 @@
<em><a href="../sims/geometry/Segment.html" target="_self">Segment</a></em>
(<code>val </code><em>vertex1</em> : <a href="../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <code>val </code><em>vertex2</em> : <a href="../sims/geometry/Vector2D.html" target="_self">Vector2D</a>)<code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Ein Segment wird durch seine beiden Extrempunkte gegeben.</div>
+ <div>A segment is given by its vertices.</div>
</td>
</tr>
<tr>
@@ -57,7 +57,7 @@
<em><a href="../sims/geometry/Vector2D.html" target="_self">Vector2D</a></em>
(<code>val </code><em>x</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>y</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>)<code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Ein 2-dimensionaler Vektor.</div>
+ <div>A 2D vector.</div>
</td>
</tr>
</table>
@@ -104,7 +104,7 @@
<em><a href="../sims/geometry/Vector2D$object.html" target="_self">Vector2D</a></em>
<code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Dieses Objekt enthaelt spezielle Vektoren.</div>
+ <div>Contains special vectors.</div>
</td>
</tr>
</table></body>
diff --git a/doc/sims/geometry/ConvexPolygon.html b/doc/sims/geometry/ConvexPolygon.html
index 0545761..5db8789 100644
--- a/doc/sims/geometry/ConvexPolygon.html
+++ b/doc/sims/geometry/ConvexPolygon.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Gemeinsame Eigenschaften aller konvexen Polygone.</dd></dl>
+ <dl><dd>Common properties of all convex polygons.</dd></dl>
<dl></dl>
<dl>
<dt style="margin:10px 0 0 20px;"><b>Direct Known Subclasses:</b></dt>
@@ -52,7 +52,7 @@
<em><a href="../../sims/geometry/ConvexPolygon.html#AABB" target="_self">AABB</a></em>
: <a href="../../sims/collision/AABB.html" target="_self">AABB</a>
- <div>Errechnet das AABB dieses Polygons</div>
+ <div>Returns this polygon's axis aligned bounding box.</div>
</td>
</tr>
<tr>
@@ -63,7 +63,7 @@
<em><a href="../../sims/geometry/ConvexPolygon.html#contains%28sims.geometry.Vector2D%29" target="_self">contains</a></em>
(<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Ueberprueft ob sich der gegebene Punkt <code>point</code> in diesem Polygon befindet.</div>
+ <div>Checks if the point <code>point</code> is contained in this polygon.</div>
</td>
</tr>
<tr>
@@ -74,8 +74,7 @@
<em><a href="../../sims/geometry/ConvexPolygon.html#project%28sims.geometry.Vector2D%29" target="_self">project</a></em>
(<em>axis</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Projection.html" target="_self">Projection</a>
- <div>Ergibt die Projektion dieses Polygons auf eine Gerade gegeben durch den
- Richtungsvektor <code>axis</code></div>
+ <div>Returns the projection of this polygon onto the line given by the directional vector <code>axis</code>.</div>
</td>
</tr>
<tr>
@@ -86,7 +85,8 @@
<em><a href="../../sims/geometry/ConvexPolygon.html#sides" target="_self">sides</a></em>
: <a href="" target="contentFrame" class="scala/Array">scala.Array</a>[<a href="../../sims/geometry/Segment.html" target="_self">Segment</a>]
- <div>Ergibt alle Seiten dieses Polygons.</div>
+ <div>Returns all sides of this polygon. The sides are ordered counter-clockwise, the first vertex of the side
+ giving the side index.</div>
</td>
</tr>
<tr>
@@ -97,7 +97,7 @@
<em><a href="../../sims/geometry/ConvexPolygon.html#vertices" target="_self">vertices</a></em>
: <a href="" target="contentFrame" class="scala/Seq">scala.Seq</a>[<a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>]
- <div>Ergibt Position aller Ecken dieses Polygons. Die Ecken sind gegen den Uhrzeigersinn folgend.</div>
+ <div>Returns positions of all vertices of this Polygon. Vertices are ordered counter-clockwise.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -131,9 +131,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt Position aller Ecken dieses Polygons. Die Ecken sind gegen den Uhrzeigersinn folgend.</dd></dl>
+ <dl><dd>Returns positions of all vertices of this Polygon. Vertices are ordered counter-clockwise.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Ortsvektoren der Ecken</dd></dl>
+ <b>Returns</b></dt><dd>position vectors of the vertices</dd></dl>
<hr></hr>
<a name="sides"></a><dl>
<dt>
@@ -144,9 +144,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt alle Seiten dieses Polygons.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Seiten dieses Polygons</dd></dl>
+ <dl><dd>Returns all sides of this polygon. The sides are ordered counter-clockwise, the first vertex of the side
+ giving the side index.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="project%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -157,11 +157,10 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt die Projektion dieses Polygons auf eine Gerade gegeben durch den
- Richtungsvektor <code>axis</code></dd></dl>
+ <dl><dd>Returns the projection of this polygon onto the line given by the directional vector <code>axis</code>.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>axis - </code>Richtungsvektor der Geraden</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Projektion dieses Polygons</dd></dl>
+ <b>Parameters</b></dt><dd><code>axis - </code>directional vector of the line</dd><dt style="margin:10px 0 0 20px;">
+ <b>Returns</b></dt><dd>projection of this polygon</dd></dl>
<hr></hr>
<a name="AABB"></a><dl>
<dt>
@@ -172,9 +171,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Errechnet das AABB dieses Polygons</dd></dl>
+ <dl><dd>Returns this polygon's axis aligned bounding box.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>umfassendes AABB</dd><dt style="margin:10px 0 0 20px;">
<b>See Also</b></dt><dd>collision.AABB</dd></dl>
<hr></hr>
<a name="contains%28sims.geometry.Vector2D%29"></a><dl>
@@ -186,15 +184,12 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ueberprueft ob sich der gegebene Punkt <code>point</code> in diesem Polygon befindet.
+ <dl><dd>Checks if the point <code>point</code> is contained in this polygon.
<p>
- Hierzu wird eine Halbgerade von dem Punkt in Richtung der X-Achse gezogen (koennte aber auch beliebig sein).
- Dann wird die Anzahl der Ueberschneidungen der Halbgeraden mit den Seiten und Ecken des Polygons ermittelt.
- Ist die Anzahl der Ueberschneidungen ungerade, so befindet sich der Punkt in dem Polygon.
- Es gibt jedoch Ausnahmen, und zwar wenn die Halbgerade eine Ecke ueberschneidet, ueberschneidet sie sowohl auch zwei Seiten.
- Daher wird eine generelle Anzahl von Uerberschneidungen errechnet, gegeben durch die Anzahl der Ueberschneidungen mit den Seiten minus
- die mit den Ecken.
- Diese Zahl wird dann wie oben geschildert geprueft.</dd></dl>
+ A ray is created, originating from the point and following an arbitrary direction (X-Axis was chosen).
+ The number of intersections between the ray and this polygon's sides (including vertices) is counted.
+ The amount of intersections with vertices is substracted form the previuos number.
+ If the latter number is odd, the point is contained in the polygon.</dd></dl>
<dl></dl>
<hr></hr></div>
diff --git a/doc/sims/geometry/Projection.html b/doc/sims/geometry/Projection.html
index 3599777..ad69275 100644
--- a/doc/sims/geometry/Projection.html
+++ b/doc/sims/geometry/Projection.html
@@ -33,11 +33,11 @@
</dt>
<dd><code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Projektion auf eine Achse.
+ <dl><dd>Projection on an axis.
<p>
- Ueblicherweise werden Projektionen in SiMS fuer Kollisionserkennung benutzt.</dd></dl>
+ Projections are commonly used in SiMS for collision detection.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>axis - </code>Achse der Projektion</dd><dd><code>lower - </code>unterer Wert der Projektion</dd><dd><code>upper - </code>oberer Wert der Projektion</dd></dl>
+ <b>Parameters</b></dt><dd><code>axis - </code>directional vector of the axis of the projection</dd><dd><code>lower - </code>lower value of the projection</dd><dd><code>upper - </code>upper value of the projection</dd></dl>
@@ -75,7 +75,7 @@
<em><a href="../../sims/geometry/Projection.html#overlap%28sims.geometry.Projection%29" target="_self">overlap</a></em>
(<em>other</em> : <a href="../../sims/geometry/Projection.html" target="_self">Projection</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Ergibt die Ueberlappung dieser Projektion und der Projektion <code>other</code>.</div>
+ <div>Returns the overlap between this projection and another projection <code>other</code>.</div>
</td>
</tr>
<tr>
@@ -86,7 +86,7 @@
<em><a href="../../sims/geometry/Projection.html#overlaps%28sims.geometry.Projection%29" target="_self">overlaps</a></em>
(<em>other</em> : <a href="../../sims/geometry/Projection.html" target="_self">Projection</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Ueberprueft ob sich diese Projektion mit der Projektion <code>other</code> ueberschneidet.</div>
+ <div>Checks this projection for overlap with another projection <code>other</code>.</div>
</td>
</tr>
<tr>
@@ -164,8 +164,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ueberprueft ob sich diese Projektion mit der Projektion <code>other</code> ueberschneidet.</dd></dl>
- <dl></dl>
+ <dl><dd>Checks this projection for overlap with another projection <code>other</code>.</dd></dl>
+ <dl><dt style="margin:10px 0 0 20px;">
+ <b>Throws</b></dt><dd><code>IllegalArgumentExcepion - </code>if both projections axes aren't the same</dd></dl>
<hr></hr>
<a name="overlap%28sims.geometry.Projection%29"></a><dl>
<dt>
@@ -176,8 +177,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt die Ueberlappung dieser Projektion und der Projektion <code>other</code>.</dd></dl>
- <dl></dl>
+ <dl><dd>Returns the overlap between this projection and another projection <code>other</code>.</dd></dl>
+ <dl><dt style="margin:10px 0 0 20px;">
+ <b>Throws</b></dt><dd><code>IllegalArgumentExcepion - </code>if both projections axes aren't the same</dd></dl>
<hr></hr>
<a name="hashCode%28%29"></a><dl>
<dt>
diff --git a/doc/sims/geometry/Ray.html b/doc/sims/geometry/Ray.html
index 558153d..79288ce 100644
--- a/doc/sims/geometry/Ray.html
+++ b/doc/sims/geometry/Ray.html
@@ -33,9 +33,10 @@
</dt>
<dd><code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Eine Halbgerade wird definiert durch:</dd></dl>
+ <dl><dd>A ray.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>point - </code>ein Aufpunkt</dd><dd><code>direction - </code>ein Richtungsvektor</dd></dl>
+ <b>Parameters</b></dt><dd><code>point - </code>a point on the ray</dd><dd><code>direction - </code>this ray's directional vector</dd><dt style="margin:10px 0 0 20px;">
+ <b>Throws</b></dt><dd><code>IllegalArgumentException - </code>if the directional vector is the null vector</dd></dl>
@@ -50,10 +51,7 @@
<em><a href="../../sims/geometry/Ray.html#contains%28sims.geometry.Vector2D%29" target="_self">contains</a></em>
(<em>p</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Ueberprueft ob diese Halbgerade den gegebenen Punkt enthaelt.
- <br>
- Hierzu wird der Vektor von dem Ursprungspunkt zu dem zu ueberpruefenden Punkt gebildet. Dieser wird dann mit dem Richtungsvektor
- auf Kolinearitaet geprueft.</div>
+ <div>Checks if this ray contains the point <code>p</code>.</div>
</td>
</tr>
<tr>
@@ -87,7 +85,7 @@
<em><a href="../../sims/geometry/Ray.html#intersects%28sims.geometry.Segment%29" target="_self">intersects</a></em>
(<em>s</em> : <a href="../../sims/geometry/Segment.html" target="_self">Segment</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Ueberprueft ob diese Halbgerade das gegebene Segment ueberschneidet.</div>
+ <div>Checks this ray and the given segment for intersection.</div>
</td>
</tr>
<tr>
@@ -165,9 +163,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ueberprueft ob diese Halbgerade das gegebene Segment ueberschneidet.</dd></dl>
+ <dl><dd>Checks this ray and the given segment for intersection.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>das - </code>auf Ueberschneidung zu uerberpruefende Segment</dd></dl>
+ <b>Parameters</b></dt><dd><code>s - </code>the segment to test for intersection</dd></dl>
<hr></hr>
<a name="contains%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -178,12 +176,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ueberprueft ob diese Halbgerade den gegebenen Punkt enthaelt.
- <br>
- Hierzu wird der Vektor von dem Ursprungspunkt zu dem zu ueberpruefenden Punkt gebildet. Dieser wird dann mit dem Richtungsvektor
- auf Kolinearitaet geprueft.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>p - </code>Ortsvektor des oben genannten Punkt</dd></dl>
+ <dl><dd>Checks if this ray contains the point <code>p</code>.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="hashCode%28%29"></a><dl>
<dt>
diff --git a/doc/sims/geometry/Segment.html b/doc/sims/geometry/Segment.html
index 2cc0453..084cfb6 100644
--- a/doc/sims/geometry/Segment.html
+++ b/doc/sims/geometry/Segment.html
@@ -33,9 +33,10 @@
</dt>
<dd><code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Ein Segment wird durch seine beiden Extrempunkte gegeben.</dd></dl>
+ <dl><dd>A segment is given by its vertices.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>vertex1 - </code>Ortsvektor des 1. Extrempunkts</dd><dd><code>vertex2 - </code>Ortsvektor des 2. Extrempunkts</dd></dl>
+ <b>Parameters</b></dt><dd><code>vertex1 - </code>position vector of the first vertex</dd><dd><code>vertex2 - </code>position vector of the second vertex</dd><dt style="margin:10px 0 0 20px;">
+ <b>Throws</b></dt><dd><code>IllegalArgumentException - </code>if both vertices are equal</dd></dl>
@@ -49,7 +50,7 @@
<em><a href="../../sims/geometry/Segment.html#d" target="_self">d</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Vektor von EP1 zu EP2.</div>
+ <div>Vector from <code>vertex1</code> to <code>vertex2</code>.</div>
</td>
</tr>
<tr>
@@ -60,7 +61,7 @@
<em><a href="../../sims/geometry/Segment.html#d0" target="_self">d0</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Einheitsrichtungsvektor.</div>
+ <div>Unit directional vector.</div>
</td>
</tr>
<tr>
@@ -71,7 +72,7 @@
<em><a href="../../sims/geometry/Segment.html#length" target="_self">length</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Laenge dieses Segments.</div>
+ <div>Length of this segment.</div>
</td>
</tr>
<tr>
@@ -82,7 +83,7 @@
<em><a href="../../sims/geometry/Segment.html#n" target="_self">n</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Normalenvektor. Richtung: 90 Grad rechts zu d.</div>
+ <div>Right normal vector.</div>
</td>
</tr>
<tr>
@@ -93,7 +94,7 @@
<em><a href="../../sims/geometry/Segment.html#n0" target="_self">n0</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Normaleneinheitsvektor. Richtung: 90 Grad rechts zu d.</div>
+ <div>Right normal unit vector.</div>
</td>
</tr>
</table>
@@ -118,7 +119,7 @@
<em><a href="../../sims/geometry/Segment.html#distance%28sims.geometry.Vector2D%29" target="_self">distance</a></em>
(<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Kleinster Abstand zwischen diesem Segment und dem Punkt <code>p</code>.</div>
+ <div>Smallest distance between this segment and the point <code>point</code>.</div>
</td>
</tr>
<tr>
@@ -218,7 +219,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Laenge dieses Segments.</dd></dl>
+ <dl><dd>Length of this segment.</dd></dl>
<dl></dl>
<hr></hr>
<a name="d"></a><dl>
@@ -230,7 +231,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Vektor von EP1 zu EP2.</dd></dl>
+ <dl><dd>Vector from <code>vertex1</code> to <code>vertex2</code>.</dd></dl>
<dl></dl>
<hr></hr>
<a name="d0"></a><dl>
@@ -242,7 +243,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Einheitsrichtungsvektor.</dd></dl>
+ <dl><dd>Unit directional vector.</dd></dl>
<dl></dl>
<hr></hr>
<a name="n"></a><dl>
@@ -254,7 +255,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Normalenvektor. Richtung: 90 Grad rechts zu d.</dd></dl>
+ <dl><dd>Right normal vector.</dd></dl>
<dl></dl>
<hr></hr>
<a name="n0"></a><dl>
@@ -266,7 +267,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Normaleneinheitsvektor. Richtung: 90 Grad rechts zu d.</dd></dl>
+ <dl><dd>Right normal unit vector.</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -280,7 +281,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Kleinster Abstand zwischen diesem Segment und dem Punkt <code>p</code>.</dd></dl>
+ <dl><dd>Smallest distance between this segment and the point <code>point</code>.</dd></dl>
<dl></dl>
<hr></hr>
<a name="clipToSegment%28sims.geometry.Segment%29"></a><dl>
diff --git a/doc/sims/geometry/Vector2D$object.html b/doc/sims/geometry/Vector2D$object.html
index 188f206..ee73bb6 100644
--- a/doc/sims/geometry/Vector2D$object.html
+++ b/doc/sims/geometry/Vector2D$object.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Dieses Objekt enthaelt spezielle Vektoren.</dd></dl>
+ <dl><dd>Contains special vectors.</dd></dl>
<dl></dl>
@@ -48,7 +48,7 @@
<em><a href="../../sims/geometry/Vector2D$object.html#Null" target="_self">Null</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Nullvektor.</div>
+ <div>Null vector.</div>
</td>
</tr>
<tr>
@@ -59,7 +59,7 @@
<em><a href="../../sims/geometry/Vector2D$object.html#i" target="_self">i</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Ein horizontaler Einheitsvektor mit den Komponenten (1;0).</div>
+ <div>Horizontal unit vector. (1,0)</div>
</td>
</tr>
<tr>
@@ -70,7 +70,7 @@
<em><a href="../../sims/geometry/Vector2D$object.html#j" target="_self">j</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Ein vertikaler Einheitsvektor mit den Komponenten (0;1).</div>
+ <div>Vertical unit vector. (0,1)</div>
</td>
</tr>
</table>
@@ -104,7 +104,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Nullvektor.</dd></dl>
+ <dl><dd>Null vector.</dd></dl>
<dl></dl>
<hr></hr>
<a name="i"></a><dl>
@@ -116,7 +116,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ein horizontaler Einheitsvektor mit den Komponenten (1;0).</dd></dl>
+ <dl><dd>Horizontal unit vector. (1,0)</dd></dl>
<dl></dl>
<hr></hr>
<a name="j"></a><dl>
@@ -128,7 +128,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ein vertikaler Einheitsvektor mit den Komponenten (0;1).</dd></dl>
+ <dl><dd>Vertical unit vector. (0,1)</dd></dl>
<dl></dl>
<hr></hr></div>
diff --git a/doc/sims/geometry/Vector2D.html b/doc/sims/geometry/Vector2D.html
index 5e541fb..816428e 100644
--- a/doc/sims/geometry/Vector2D.html
+++ b/doc/sims/geometry/Vector2D.html
@@ -33,9 +33,9 @@
</dt>
<dd><code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Ein 2-dimensionaler Vektor.</dd></dl>
+ <dl><dd>A 2D vector.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>x - </code>1. Komponente</dd><dd><code>y - </code>2. Komponente</dd></dl>
+ <b>Parameters</b></dt><dd><code>x - </code>1st component</dd><dd><code>y - </code>2nd component</dd></dl>
@@ -49,7 +49,7 @@
<em><a href="../../sims/geometry/Vector2D.html#length" target="_self">length</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Norm dieses Vektors.</div>
+ <div>Norm or length of this vector.</div>
</td>
</tr>
</table>
@@ -63,7 +63,7 @@
<em><a href="../../sims/geometry/Vector2D.html#*%28Double%29" target="_self">*</a></em>
(<em>n</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Multiplikation mit einem Skalar.</div>
+ <div>Scalar multiplication.</div>
</td>
</tr>
<tr>
@@ -74,7 +74,7 @@
<em><a href="../../sims/geometry/Vector2D.html#%2B%28sims.geometry.Vector2D%29" target="_self">+</a></em>
(<em>v</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Vektoraddition.</div>
+ <div>Vector addition.</div>
</td>
</tr>
<tr>
@@ -85,7 +85,7 @@
<em><a href="../../sims/geometry/Vector2D.html#-%28sims.geometry.Vector2D%29" target="_self">-</a></em>
(<em>v</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Vektorsubstraktion.</div>
+ <div>Vector substraction.</div>
</td>
</tr>
<tr>
@@ -96,7 +96,7 @@
<em><a href="../../sims/geometry/Vector2D.html#%2F%28Double%29" target="_self">/</a></em>
(<em>n</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Division durch ein Skalar.</div>
+ <div>Scalar division.</div>
</td>
</tr>
<tr>
@@ -107,7 +107,7 @@
<em><a href="../../sims/geometry/Vector2D.html#components" target="_self">components</a></em>
: <a href="" target="contentFrame" class="scala/List">scala.List</a>[<a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>]
- <div>Ergibt eine Liste der Komponenten dieses Vektors.</div>
+ <div>Returns a list of this vector's components.</div>
</td>
</tr>
<tr>
@@ -118,7 +118,7 @@
<em><a href="../../sims/geometry/Vector2D.html#cross%28sims.geometry.Vector2D%29" target="_self">cross</a></em>
(<em>v</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Kreuzprodukt. (Norm des Kreuzproduktes)</div>
+ <div>Cross product. Length only because in 2D. The direction would be given by the x3-axis.</div>
</td>
</tr>
<tr>
@@ -129,7 +129,7 @@
<em><a href="../../sims/geometry/Vector2D.html#dot%28sims.geometry.Vector2D%29" target="_self">dot</a></em>
(<em>v</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Skalarprodukt.</div>
+ <div>Dot product.</div>
</td>
</tr>
<tr>
@@ -163,7 +163,7 @@
<em><a href="../../sims/geometry/Vector2D.html#isNull" target="_self">isNull</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Boolean.html" target="_self">Boolean</a>
- <div>Ueberprueft, ob die Komponenten dieses Vektors gleich Null sind.</div>
+ <div>Checks if this vector is the null vector.</div>
</td>
</tr>
<tr>
@@ -174,7 +174,7 @@
<em><a href="../../sims/geometry/Vector2D.html#leftNormal" target="_self">leftNormal</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Linker Normalenvektor. (-y, x)</div>
+ <div>Left normal vector. (-y, x)</div>
</td>
</tr>
<tr>
@@ -218,7 +218,7 @@
<em><a href="../../sims/geometry/Vector2D.html#project%28sims.geometry.Vector2D%29" target="_self">project</a></em>
(<em>v</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Errechnet die Projektion dieses- auf einen anderen Vektor.</div>
+ <div>Returns the projection of this vector onto the vector <code>v</code>.</div>
</td>
</tr>
<tr>
@@ -229,7 +229,7 @@
<em><a href="../../sims/geometry/Vector2D.html#rightNormal" target="_self">rightNormal</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Rechter Normalenvektor. (y, -x)</div>
+ <div>Right normal vector. (y, -x)</div>
</td>
</tr>
<tr>
@@ -240,7 +240,7 @@
<em><a href="../../sims/geometry/Vector2D.html#rotate%28Double%29" target="_self">rotate</a></em>
(<em>angle</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Errechnet eine Rotation dieses Vektors.</div>
+ <div>Returns a rotation of this vector by <code>angle</code> radian.</div>
</td>
</tr>
<tr>
@@ -262,7 +262,7 @@
<em><a href="../../sims/geometry/Vector2D.html#unary_-" target="_self">unary_-</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Minusvorzeichen.</div>
+ <div>Unary minus.</div>
</td>
</tr>
<tr>
@@ -273,7 +273,7 @@
<em><a href="../../sims/geometry/Vector2D.html#unit" target="_self">unit</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Einheitsvektor dieses Vektors.</div>
+ <div>Unit vector.</div>
</td>
</tr>
</table><table summary="" cellpadding="3" class="inherited">
@@ -306,7 +306,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Norm dieses Vektors.</dd></dl>
+ <dl><dd>Norm or length of this vector.</dd></dl>
<dl></dl>
<hr></hr></div>
<table summary="" cellpadding="3" class="member-detail">
@@ -320,10 +320,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Vektoraddition.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>v - </code>zu addierender Vektor</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>dieser Vektor addiert mit <code>v</code></dd></dl>
+ <dl><dd>Vector addition.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="-%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -334,10 +332,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Vektorsubstraktion.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>v - </code>zu substrahierender Vektor</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>dieser Vektor substrahiert mit <code>v</code></dd></dl>
+ <dl><dd>Vector substraction.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="*%28Double%29"></a><dl>
<dt>
@@ -348,10 +344,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Multiplikation mit einem Skalar.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>n - </code>Faktor</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>dieser Vektor multipliziert mit <code>n</code></dd></dl>
+ <dl><dd>Scalar multiplication.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="%2F%28Double%29"></a><dl>
<dt>
@@ -362,10 +356,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Division durch ein Skalar.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>n - </code>Nenner</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>dieser Vektor dividiert durch <code>n</code></dd></dl>
+ <dl><dd>Scalar division.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="unary_-"></a><dl>
<dt>
@@ -376,7 +368,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Minusvorzeichen.</dd></dl>
+ <dl><dd>Unary minus.</dd></dl>
<dl></dl>
<hr></hr>
<a name="dot%28sims.geometry.Vector2D%29"></a><dl>
@@ -388,10 +380,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Skalarprodukt.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>v - </code>ein anderer Vektor</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Skalarprodukt von diesem Vektor mit <code>v</code></dd></dl>
+ <dl><dd>Dot product.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="cross%28sims.geometry.Vector2D%29"></a><dl>
<dt>
@@ -402,10 +392,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Kreuzprodukt. (Norm des Kreuzproduktes)</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>v - </code>ein anderer Vektor</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Norm des Kreuzproduktes dieses Vektors mit <code>v</code>. Die Richtung wuerde der x3-Achse entsprechen.</dd></dl>
+ <dl><dd>Cross product. Length only because in 2D. The direction would be given by the x3-axis.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="unit"></a><dl>
<dt>
@@ -416,7 +404,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Einheitsvektor dieses Vektors.</dd></dl>
+ <dl><dd>Unit vector.</dd></dl>
<dl></dl>
<hr></hr>
<a name="project%28sims.geometry.Vector2D%29"></a><dl>
@@ -428,10 +416,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Errechnet die Projektion dieses- auf einen anderen Vektor.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>v - </code>oben gennanter Vektor</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Projektion dieses Vektors auf <code>v</code></dd></dl>
+ <dl><dd>Returns the projection of this vector onto the vector <code>v</code>.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="rotate%28Double%29"></a><dl>
<dt>
@@ -442,10 +428,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Errechnet eine Rotation dieses Vektors.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>angle - </code>Winkel in Radian</dd><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>der um <code>angle</code> rad rotierte Vektor</dd></dl>
+ <dl><dd>Returns a rotation of this vector by <code>angle</code> radian.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="leftNormal"></a><dl>
<dt>
@@ -456,7 +440,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Linker Normalenvektor. (-y, x)</dd></dl>
+ <dl><dd>Left normal vector. (-y, x)</dd></dl>
<dl></dl>
<hr></hr>
<a name="rightNormal"></a><dl>
@@ -468,7 +452,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Rechter Normalenvektor. (y, -x)</dd></dl>
+ <dl><dd>Right normal vector. (y, -x)</dd></dl>
<dl></dl>
<hr></hr>
<a name="isNull"></a><dl>
@@ -480,7 +464,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ueberprueft, ob die Komponenten dieses Vektors gleich Null sind.</dd></dl>
+ <dl><dd>Checks if this vector is the null vector.</dd></dl>
<dl></dl>
<hr></hr>
<a name="components"></a><dl>
@@ -492,7 +476,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt eine Liste der Komponenten dieses Vektors.</dd></dl>
+ <dl><dd>Returns a list of this vector's components.</dd></dl>
<dl></dl>
<hr></hr>
<a name="hashCode%28%29"></a><dl>
diff --git a/doc/sims/math$content.html b/doc/sims/math$content.html
index 871d764..8d2df26 100644
--- a/doc/sims/math$content.html
+++ b/doc/sims/math$content.html
@@ -13,7 +13,7 @@
<em><a href="../sims/math/Matrix22.html" target="_self">Matrix22</a></em>
(<code>val </code><em>c11</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>c12</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>c21</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>c22</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>)<code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Eine 2x2, quadratische Matrix.</div>
+ <div>A 2x2 matrix.</div>
</td>
</tr>
</table>
diff --git a/doc/sims/math/Matrix22.html b/doc/sims/math/Matrix22.html
index b3a5906..b07482d 100644
--- a/doc/sims/math/Matrix22.html
+++ b/doc/sims/math/Matrix22.html
@@ -33,9 +33,9 @@
</dt>
<dd><code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Eine 2x2, quadratische Matrix.</dd></dl>
+ <dl><dd>A 2x2 matrix.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>c11 - </code>Komponente 1,1</dd><dd><code>c12 - </code>Komponente 1,2</dd><dd><code>c21 - </code>Komponente 2,1</dd><dd><code>c22 - </code>Komponente 2,2</dd></dl>
+ <b>Parameters</b></dt><dd><code>c11 - </code>component 1,1</dd><dd><code>c12 - </code>component 1,2</dd><dd><code>c21 - </code>component 2,1</dd><dd><code>c22 - </code>component 2,2</dd></dl>
<table summary="" cellpadding="3" class="member">
<tr><td class="title" colspan="2">Additional Constructor Summary</td></tr>
@@ -47,8 +47,7 @@
<em><a href="../../sims/math/Matrix22.html#this%28sims.geometry.Vector2D%2Csims.geometry.Vector2D%29" target="_self">this</a></em>
(<em>c1</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>, <em>c2</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/math/Matrix22.html" target="_self">Matrix22</a>
- <div>Eine 2x2-dimensionale, quadratische Matrix kann auch mit zwei 2-dimensionalen
- Vektoren erstellt werden. In diesem Fall repraesentiert jeder Vektor eine Spalte.</div>
+ <div>A 2x2 matrix can be created with two 2D vectors. In this case, each column is represented by a vector.</div>
</td>
</tr>
</table>
@@ -61,10 +60,10 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/math/Matrix22.html#*%28Double%29" target="_self">*</a></em>
- (<em>n</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="../../sims/math/Matrix22.html" target="_self">Matrix22</a>
+ <em><a href="../../sims/math/Matrix22.html#*%28sims.geometry.Vector2D%29" target="_self">*</a></em>
+ (<em>v</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Multiplikation mit einem Skalar.</div>
+ <div>Multiplikation with a 2D vector.</div>
</td>
</tr>
<tr>
@@ -72,10 +71,10 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/math/Matrix22.html#*%28sims.geometry.Vector2D%29" target="_self">*</a></em>
- (<em>v</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ <em><a href="../../sims/math/Matrix22.html#*%28sims.math.Matrix22%29" target="_self">*</a></em>
+ (<em>m</em> : <a href="../../sims/math/Matrix22.html" target="_self">Matrix22</a>) : <a href="../../sims/math/Matrix22.html" target="_self">Matrix22</a>
- <div>Multiplikation mit einer 2x1-Matrix (2-dimensionaler Vektor).</div>
+ <div>Matrix multiplication.</div>
</td>
</tr>
<tr>
@@ -83,10 +82,10 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/math/Matrix22.html#*%28sims.math.Matrix22%29" target="_self">*</a></em>
- (<em>m</em> : <a href="../../sims/math/Matrix22.html" target="_self">Matrix22</a>) : <a href="../../sims/math/Matrix22.html" target="_self">Matrix22</a>
+ <em><a href="../../sims/math/Matrix22.html#*%28Double%29" target="_self">*</a></em>
+ (<em>n</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>) : <a href="../../sims/math/Matrix22.html" target="_self">Matrix22</a>
- <div>Multiplikation mit einer anderen 2x2-Matrix.</div>
+ <div>Scalar multiplication.</div>
</td>
</tr>
<tr>
@@ -108,7 +107,7 @@
<em><a href="../../sims/math/Matrix22.html#det" target="_self">det</a></em>
: <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>
- <div>Ergibt die Determinante dieser Matrix.</div>
+ <div>Determinant of this matrix.</div>
</td>
</tr>
<tr>
@@ -217,10 +216,9 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Eine 2x2-dimensionale, quadratische Matrix kann auch mit zwei 2-dimensionalen
- Vektoren erstellt werden. In diesem Fall repraesentiert jeder Vektor eine Spalte.</dd></dl>
+ <dl><dd>A 2x2 matrix can be created with two 2D vectors. In this case, each column is represented by a vector.</dd></dl>
<dl><dt style="margin:10px 0 0 20px;">
- <b>Parameters</b></dt><dd><code>c1 - </code>erste Spalte</dd><dd><code>c2 - </code>zweite Spalte</dd></dl>
+ <b>Parameters</b></dt><dd><code>c1 - </code>first column</dd><dd><code>c2 - </code>second column</dd></dl>
<hr></hr></div>
@@ -235,9 +233,8 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt die Determinante dieser Matrix.</dd></dl>
- <dl><dt style="margin:10px 0 0 20px;">
- <b>Returns</b></dt><dd>Determinante dieser Matrix</dd></dl>
+ <dl><dd>Determinant of this matrix.</dd></dl>
+ <dl></dl>
<hr></hr>
<a name="%2B%28sims.math.Matrix22%29"></a><dl>
<dt>
@@ -260,7 +257,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Multiplikation mit einem Skalar.</dd></dl>
+ <dl><dd>Scalar multiplication.</dd></dl>
<dl></dl>
<hr></hr>
<a name="*%28sims.math.Matrix22%29"></a><dl>
@@ -272,7 +269,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Multiplikation mit einer anderen 2x2-Matrix.</dd></dl>
+ <dl><dd>Matrix multiplication.</dd></dl>
<dl></dl>
<hr></hr>
<a name="*%28sims.geometry.Vector2D%29"></a><dl>
@@ -284,7 +281,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Multiplikation mit einer 2x1-Matrix (2-dimensionaler Vektor).</dd></dl>
+ <dl><dd>Multiplikation with a 2D vector.</dd></dl>
<dl></dl>
<hr></hr>
<a name="invert"></a><dl>
diff --git a/doc/sims/util$content.html b/doc/sims/util$content.html
index 48b8a1e..8db8c6c 100644
--- a/doc/sims/util$content.html
+++ b/doc/sims/util$content.html
@@ -13,7 +13,7 @@
<em><a href="../sims/util/Polar.html" target="_self">Polar</a></em>
(<code>val </code><em>distance</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>, <code>val </code><em>angle</em> : <a href="http://www.scala-lang.org/docu/files/api/scala/Double.html" target="_self">Double</a>)<code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a>
- <div>Polare Koordinaten.</div>
+ <div>Polar coordinates.</div>
</td>
</tr>
<tr>
@@ -49,7 +49,7 @@
<em><a href="../sims/util/Positioning$object.html" target="_self">Positioning</a></em>
<code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a>
- <div>Objekt mit Hiflsfunktionen fuer komfortables Positionieren von Koerpern.</div>
+ <div>Utility functions for comfortable positioning of bodies.</div>
</td>
</tr>
</table></body>
diff --git a/doc/sims/util/Polar.html b/doc/sims/util/Polar.html
index 7f3f444..78fa78d 100644
--- a/doc/sims/util/Polar.html
+++ b/doc/sims/util/Polar.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="" target="contentFrame" class="scala/Product">scala.Product</a></dd>
</dl>
- <dl><dd>Polare Koordinaten.</dd></dl>
+ <dl><dd>Polar coordinates.</dd></dl>
<dl></dl>
@@ -105,7 +105,7 @@
<em><a href="../../sims/util/Polar.html#toCarthesian" target="_self">toCarthesian</a></em>
: <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
- <div>Ergibt die Vektorrepraesantation dieser polaren Koordinaten.</div>
+ <div>Returns the vector representation of these polar coordinates.</div>
</td>
</tr>
<tr>
@@ -150,7 +150,7 @@
</dt>
<dd></dd>
</dl>
- <dl><dd>Ergibt die Vektorrepraesantation dieser polaren Koordinaten.</dd></dl>
+ <dl><dd>Returns the vector representation of these polar coordinates.</dd></dl>
<dl></dl>
<hr></hr>
<a name="hashCode%28%29"></a><dl>
diff --git a/doc/sims/util/Positioning$object.html b/doc/sims/util/Positioning$object.html
index eecdee9..3a9b6c0 100644
--- a/doc/sims/util/Positioning$object.html
+++ b/doc/sims/util/Positioning$object.html
@@ -33,7 +33,7 @@
</dt>
<dd><code> extends </code><a href="http://www.scala-lang.org/docu/files/api/scala/AnyRef.html" target="_self">AnyRef</a></dd>
</dl>
- <dl><dd>Objekt mit Hiflsfunktionen fuer komfortables Positionieren von Koerpern.</dd></dl>
+ <dl><dd>Utility functions for comfortable positioning of bodies.</dd></dl>
<dl></dl>
diff --git a/doc/sims/util/RelativeVector.html b/doc/sims/util/RelativeVector.html
index 323edb5..b2512f4 100644
--- a/doc/sims/util/RelativeVector.html
+++ b/doc/sims/util/RelativeVector.html
@@ -109,8 +109,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/util/RelativeVector.html#left%28sims.dynamics.Shape%29" target="_self">left</a></em>
- (<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ <em><a href="../../sims/util/RelativeVector.html#left%28sims.geometry.Vector2D%29" target="_self">left</a></em>
+ (<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
</td>
@@ -120,8 +120,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/util/RelativeVector.html#left%28sims.geometry.Vector2D%29" target="_self">left</a></em>
- (<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ <em><a href="../../sims/util/RelativeVector.html#left%28sims.dynamics.Shape%29" target="_self">left</a></em>
+ (<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
</td>
@@ -131,8 +131,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/util/RelativeVector.html#right%28sims.dynamics.Shape%29" target="_self">right</a></em>
- (<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ <em><a href="../../sims/util/RelativeVector.html#right%28sims.geometry.Vector2D%29" target="_self">right</a></em>
+ (<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
</td>
@@ -142,8 +142,8 @@
<code> def</code>
</td>
<td class="signature">
- <em><a href="../../sims/util/RelativeVector.html#right%28sims.geometry.Vector2D%29" target="_self">right</a></em>
- (<em>point</em> : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
+ <em><a href="../../sims/util/RelativeVector.html#right%28sims.dynamics.Shape%29" target="_self">right</a></em>
+ (<em>s</em> : <a href="../../sims/dynamics/Shape.html" target="_self">Shape</a>) : <a href="../../sims/geometry/Vector2D.html" target="_self">Vector2D</a>
</td>
diff --git a/src/graphyx/tests/Friction2.scala b/src/graphyx/tests/Friction2.scala
index 6eb445b..f6731e2 100644
--- a/src/graphyx/tests/Friction2.scala
+++ b/src/graphyx/tests/Friction2.scala
@@ -26,7 +26,7 @@ object Friction2 extends Test{
ground.rotation = -0.2
world += ground
- val b: Body = (new Circle(0.1,10)) ^ (new Circle(0.1,10) {pos = Vector2D(0.2,0)}) ^ (new Circle(0.1,10) {pos = Vector2D(0.4,0)})
+ val b: Body = (new Circle(0.1,10)) ~ (new Circle(0.1,10) {pos = Vector2D(0.2,0)}) ~ (new Circle(0.1,10) {pos = Vector2D(0.4,0)})
b.pos = Vector2D(0.1,0.1)
world += b
}
diff --git a/src/graphyx/tests/General1.scala b/src/graphyx/tests/General1.scala
index 1a71c24..7d8703b 100644
--- a/src/graphyx/tests/General1.scala
+++ b/src/graphyx/tests/General1.scala
@@ -103,7 +103,7 @@ object General1 extends Test{
ground.fixed = true
world += ground
- world += (new Circle(0.1,1) {pos = Vector2D(2,2)}) ^ (new Circle(0.1,1) {pos = Vector2D(2,2.2)})
+ world += (new Circle(0.1,1) {pos = Vector2D(2,2)}) ~ (new Circle(0.1,1) {pos = Vector2D(2,2.2)})
}
override def fireEvent() = blastBomb
diff --git a/src/graphyx/tests/Spring.scala b/src/graphyx/tests/Spring.scala
index 4eec8de..439259f 100644
--- a/src/graphyx/tests/Spring.scala
+++ b/src/graphyx/tests/Spring.scala
@@ -7,8 +7,8 @@ import java.io._
object Spring extends Test{
val title = "Spring"
- val fout = new java.io.FileOutputStream("out.csv")
- val sout = new java.io.PrintStream(fout)
+ //val fout = new java.io.FileOutputStream("out.csv")
+ //val sout = new java.io.PrintStream(fout)
val world = new World {
override def postStep = {
//for (b <- bodies; if (b.monitor)) sout.println(monitors(0)._2(b))
diff --git a/src/sims/collision/AABB.scala b/src/sims/collision/AABB.scala
index 51b3e12..ea696f2 100644
--- a/src/sims/collision/AABB.scala
+++ b/src/sims/collision/AABB.scala
@@ -9,18 +9,17 @@ package sims.collision
import geometry._
/**
- * Axis Aligned Bounding Boxes, kurz AABBs, sind Rechtecke die eine bestimmte Form umhuellen.
- * Da AABBs nach den X- und Y-Achsen orientiert sind, ermoeglichen sie eine schnelle
- * und einfache Feststellung ob zwei AABBs sich ueberschneiden.
- * @param minVertex Ortsvektor der minimalen Ecke des AABBs
- * @param maxVertex Ortsvektor der maximalen Ecke des AABBs
+ * Axis Aligned Bounding Boxes (AABBs) are rectangles that frame a shape.
+ * Their X-Axis and Y-Axis orientation makes it easy to test two AABBs for overlap.
+ * @param minVertex Position vector of the bottom-left vertex
+ * @param maxVertex Position vector of the upper-right vertex
*/
case class AABB(val minVertex: Vector2D,
val maxVertex: Vector2D)
{
/**
- * Ueberprueft ob dieses AABB sich mit dem AABB <code>box</code> ueberschneidet.
- * @param box das mit diesem auf Ueberschneidung zu ueberpruefende AABB*/
+ * Checks this AABB with <code>box</code> for overlap.
+ * @param box AABB with which to check for overlap*/
def overlaps(box: AABB): Boolean = {
val d1 = box.minVertex - maxVertex
val d2 = minVertex - box.maxVertex
diff --git a/src/sims/collision/CircleCollision.scala b/src/sims/collision/CircleCollision.scala
index baf401a..e77c8e2 100644
--- a/src/sims/collision/CircleCollision.scala
+++ b/src/sims/collision/CircleCollision.scala
@@ -9,7 +9,7 @@ package sims.collision
import geometry._
import dynamics._
-/**Kollision zwischen zwei Kreisen.*/
+/**Collision between two circles.*/
case class CircleCollision(c1: Circle, c2: Circle) extends Collision {
val shape1 = c1
val shape2 = c2
diff --git a/src/sims/collision/Collision.scala b/src/sims/collision/Collision.scala
index d674b30..ce09ac2 100644
--- a/src/sims/collision/Collision.scala
+++ b/src/sims/collision/Collision.scala
@@ -9,19 +9,19 @@ package sims.collision
import dynamics._
import geometry._
-/**Kollisionen zwischen zwei Formen enthalten Methoden zur Berrechnen der Kollisionsreaktion.*/
+/**Collision between two shapes. Contains methods to compute the collision response.*/
abstract class Collision extends Constraint {
- /**Erste Kollisionsform (Referenz).*/
+ /**First colliding shape (reference shape).*/
val shape1: Shape
- /**Zweite Kollisionsform (eindringend).*/
+ /**Second colliding shape (incident shape).*/
val shape2: Shape
- /**Kollisionspunkte.*/
+ /**Collision points.*/
val points: Iterable[Vector2D]
- /**Normalenvektor zu der Kollisionsebene.*/
+ /**Normal vector to the collision face.*/
val normal: Vector2D
/* C = delta
@@ -103,6 +103,6 @@ abstract class Collision extends Constraint {
object Collision {
- /**Erlaubte Ueberlappung.*/
+ /**Tolerated overlap. Collision response will only be applied if the overlap of two shapes exceeds the tolerated overlap.*/
val ToleratedOverlap: Double = 0.01
}
diff --git a/src/sims/collision/Detector.scala b/src/sims/collision/Detector.scala
index e847235..0a3ad5b 100644
--- a/src/sims/collision/Detector.scala
+++ b/src/sims/collision/Detector.scala
@@ -12,12 +12,12 @@ import sims.dynamics._
import scala.collection._
import scala.collection.mutable._
-/**Eine Welt ermittelt ihre Kollisionen durch konkrete Implementierungen dieser Klasse.*/
+/**A world detects its collisions through concrete implementations of this class.*/
abstract class Detector {
- /**Die Welt dessen Formen auf Kollisionen ueberprueft werden sollen.*/
+ /**The world whose shapes are to be checked for collisions.*/
val world: World
- /**Ergibt alle Kollisionen zwischen Formen der Welt <code>world</code>.*/
+ /**Returns all collisions between shapes in the world <code>world</code>.*/
def collisions: Seq[Collision]
} \ No newline at end of file
diff --git a/src/sims/collision/GridDetector.scala b/src/sims/collision/GridDetector.scala
index 2c027a3..f5ed99a 100644
--- a/src/sims/collision/GridDetector.scala
+++ b/src/sims/collision/GridDetector.scala
@@ -11,11 +11,11 @@ import sims.geometry._
import scala.collection._
import scala.collection.mutable._
-/**Eine konkrete Implementierung von <code>Detector</code>. <code>GridDetector</code> ermittelt
- * alle Kollisionen mit einem Gittersystem.*/
+/**A conrete implementation of <code>Detector</code>. <code>GridDetector</code> divides the world into a grid
+ * for faster collision detection.*/
class GridDetector(override val world: World) extends Detector {
- /**Array von Kollisionserkennungsmethoden fuer Formenpaare.*/
+ /**Array of collision detection methods. These methods return <code>true</code> if two shapes are colliding.*/
val detectionMethods = new ArrayBuffer[PartialFunction[(Shape, Shape), Boolean]]
detectionMethods += {
case (c1: Circle, c2: Circle) => { //Kollision wenn Distanz <= Summe der Radien
@@ -41,7 +41,7 @@ class GridDetector(override val world: World) extends Detector {
}
}
- /**Array von Kollisionsmethoden fuer Formenpaare.*/
+ /**Array of methods returning collisions. It is assumed that both shapes are colliding.*/
val collisionMethods = new ArrayBuffer[PartialFunction[(Shape, Shape), Collision]]
collisionMethods += {
case (c1: Circle, c2: Circle) => CircleCollision(c1, c2)
@@ -50,34 +50,34 @@ class GridDetector(override val world: World) extends Detector {
case (c: Circle, p: ConvexPolygon) => PolyCircleCollision(p, c)
}
- /**Gibt an, ob das Formenpaar <code>p</code> kollidiert.
- * @param p Formenpaar.*/
+ /**Checks the pair of shapes <code>p</code> for collision.
+ * @param p Pair of shapes.*/
def colliding(p: Pair) = {
if (detectionMethods.exists(_.isDefinedAt(p)))
detectionMethods.find(_.isDefinedAt(p)).get.apply(p)
else throw new IllegalArgumentException("No collision method for colliding pair!")
}
- /**Gibt die Kollision des Formenpaares <code>p</code> zurueck.
- * @param p Formenpaar.*/
+ /**Returns the collision between both shapes of the pair <code>p</code>.
+ * @param p Pair of shapes.*/
def collision(p: Pair): Collision = {
if (collisionMethods.exists(_.isDefinedAt(p)))
collisionMethods.find(_.isDefinedAt(p)).get.apply(p)
else throw new IllegalArgumentException("No collision found in colliding pair!")
}
- /**Breite und Hoehe einer Gitterzelle.*/
+ /**Width and height of a grid cell.*/
var gridSide: Double = 2
- /**Ergibt potenzielle Kollisionspaare der Welt <code>world</code>.
+ /**Returns potential colliding pairs of shapes of the world <code>world</code>.
* <p>
- * Ein Kollisionspaar ist ein Paar aus zwei verschiedenen Formen, das folgenden Bedingungen unterliegt:
+ * A potential colliding pair is a pair of two shapes that comply with the following criteria:
* <ul>
- * <li>Die Formen muessen sich in der gleichen Gitterzelle befinden.</li>
- * <li>Ihre AABBs muessen sich ueberlappen.</li>
- * <li>Die Formen duerfen nicht von dem gleichen Koerper sein.</li>
- * <li>Mindestens eine Form darf nicht Fixiert sein.</li>
- * <li>Beide muessen {@link dynamics.Shape#collidable collidierbar} sein.</li>
+ * <li>The shapes are situated in the same grid cell.</li>
+ * <li>Their AABBs overlap.</li>
+ * <li>The shapes do not belong to the same body.</li>
+ * <li>At least one shape is not fixed.</li>
+ * <li>Both shapes are {@link dynamics.Shape#collidable}.</li>
* </ul>*/
def getPairs = {
val grid = new HashMap[(Int, Int), List[Shape]]
@@ -110,13 +110,13 @@ class GridDetector(override val world: World) extends Detector {
private var cache = (world.time, getPairs)
- /**Alle potentiellen Kollisionspaare der Welt.
+ /**All potential colliding pairs of the world.
* @see getPairs*/
def pairs = {if (world.time != cache._1) cache = (world.time, getPairs); cache._2}
- /**Ergibt alle kollidierenden Paare.*/
+ /**Returns all colliding pairs.*/
def collidingPairs: Seq[Pair] = for(p <- pairs; if (colliding(p))) yield p
- /**Ergibt alle Kollisionen.*/
+ /**Returns all collisions.*/
def collisions: Seq[Collision] = for(p <- pairs; if (colliding(p))) yield collision(p)
}
diff --git a/src/sims/collision/Pair.scala b/src/sims/collision/Pair.scala
index 048748d..e4ae947 100644
--- a/src/sims/collision/Pair.scala
+++ b/src/sims/collision/Pair.scala
@@ -8,7 +8,7 @@ package sims.collision
import sims.dynamics._
-/**Formenpaar.*/
+/**Pair of shapes.*/
case class Pair(s1: Shape, s2: Shape) extends Tuple2(s1, s2){
def this(t: Tuple2[Shape, Shape]) = this(t._1, t._2)
diff --git a/src/sims/collision/PolyCircleCollision.scala b/src/sims/collision/PolyCircleCollision.scala
index 1bf982e..20f1d49 100644
--- a/src/sims/collision/PolyCircleCollision.scala
+++ b/src/sims/collision/PolyCircleCollision.scala
@@ -9,7 +9,7 @@ package sims.collision
import sims.dynamics._
import sims.geometry._
-/**Kollision zwischen einem konvexen Polygon und einem Kreis.*/
+/**Collision between a convex polygon and a circle.*/
case class PolyCircleCollision(p: ConvexPolygon, c: Circle) extends Collision {
require(p.isInstanceOf[Shape])
val shape1 = p.asInstanceOf[Shape]
@@ -33,6 +33,4 @@ case class PolyCircleCollision(p: ConvexPolygon, c: Circle) extends Collision {
val points = List(
c.pos - normal * c.radius
)
-
-
}
diff --git a/src/sims/collision/PolyCollision.scala b/src/sims/collision/PolyCollision.scala
index 3eeb7ca..b4fa917 100644
--- a/src/sims/collision/PolyCollision.scala
+++ b/src/sims/collision/PolyCollision.scala
@@ -11,7 +11,7 @@ import sims.dynamics._
import scala.collection.mutable.Map
import scala.collection.mutable._
-/**Kollision zwischen zwei konvexen Polygonen.*/
+/**Collision between two convex polygons.*/
case class PolyCollision(p1: ConvexPolygon, p2: ConvexPolygon) extends Collision {
require(p1.isInstanceOf[Shape])
require(p2.isInstanceOf[Shape])
diff --git a/src/sims/dynamics/Body.scala b/src/sims/dynamics/Body.scala
index d5b2a0e..8c0e2ee 100644
--- a/src/sims/dynamics/Body.scala
+++ b/src/sims/dynamics/Body.scala
@@ -1,3 +1,4 @@
+
/*
* Simple Mechanics Simulator (SiMS)
* copyright (c) 2009 Jakob Odersky
@@ -9,17 +10,17 @@ package sims.dynamics
import sims.geometry._
import sims.dynamics.joints._
-/**Ein 2-Dimensionaler Koerper besteht aus mehreren Formen. Im gegensatz zu letzteren, enthaelt ein Koerper dynamische Informationen (v, F, etc...).
- * @param shps zu dem Koerper gehoerende Formen.*/
+/**A two dimensional rigid body is made out of shapes.
+ * @param shps shapes that belong to this body.*/
class Body(shps: Shape*){
- /**Einzigartige Identifikationsnummer dieses Koerpers.*/
+ /**Unique identification number.*/
val uid = Body.nextUid
- /**Formen aus denen dieser Koerper besteht.*/
+ /**Shapes that belong to this body.*/
val shapes: List[Shape] = shps.toList
- //Formen werden bei Initialisierung eingefuegt
+ //Shapes are added during initialisation.
for (s <- shapes) {
s.body = this
s.refLocalPos = s.pos - pos
@@ -28,41 +29,40 @@ class Body(shps: Shape*){
private var isFixed: Boolean = false
- /**Gibt an ob dieser Koerper fixiert ist.*/
+ /**Returns whether this body is fixed or not.*/
def fixed = isFixed
- /**Fixiert oder unfixiert diesen Koerper.*/
+ /**Fixes or frees this body. By fixing, linear and angular velocities are set to zero.*/
def fixed_=(value: Boolean) = {
if (value) {linearVelocity = Vector2D.Null; angularVelocity = 0.0}
isFixed = value
}
- /**Gibt an ob die Eigenschaften dieses Koerpers ueberwacht werden sollen.
+ /**Flag for a world to monitor the properties of this body.
* @see World#monitors*/
var monitor: Boolean = false
- /**Ermittelt die Position dieses Koerpers. Die Position entspricht dem Schwerpunkt.
- * @return Position dieses Koerpers*/
- def pos: Vector2D = // Shwerpunkt = sum(pos*mass)/M
+ /**Returns the position of this body. The position is equivalent to the center of mass.
+ * @return position of this body*/
+ def pos: Vector2D = // COM = sum(pos*mass)/M
(Vector2D.Null /: shapes)((v: Vector2D, s: Shape) => v + s.pos * s.mass) /
(0.0 /: shapes)((i: Double, s: Shape) => i + s.mass)
- /**Setzt die Position dieses Koerpers und verschiebt dadurch die Positionen seiner Formen.
- * @param newPos neue Position*/
+ /**Sets the position of this body. By doing so all its shapes are translated.
+ * @param newPos new position*/
def pos_=(newPos: Vector2D) = {
val stepPos = pos
shapes.foreach((s: Shape) => s.pos = s.pos - stepPos + newPos)
}
- /**Enthaelt die aktuelle Rotation dieses Koerpers.*/
- private var _rotation: Double = 0.0 //shapes(0).rotation
+ /**Contains the current rotation of this body.*/
+ private var _rotation: Double = 0.0
- /**Ergibt die aktuelle Rotation dieses Koerpers.
- * @return aktuelle Rotation dieses Koerpers*/
+ /**Returns the current rotation of this body.*/
def rotation: Double = _rotation
- /**Setzt die Rotation dieses Koerpers. Dazu werden auch die Positionen und Rotationen seiner Formen entsprechend veraendert.
- * @param r neue Rotation*/
+ /**Sets the rotation of this body. Position and rotation of shapes are modified accordingly.
+ * @param r new rotation*/
def rotation_=(newRotation: Double) = {
_rotation = newRotation
val stepPos = pos
@@ -72,69 +72,67 @@ class Body(shps: Shape*){
}
}
- /**Lineargeschwindigkeit dieses Koerpers.*/
+ /**Linear velocity of this body.*/
var linearVelocity: Vector2D = Vector2D.Null
- /**Winkelgeschwindigkeit dieses Koerpers.*/
+ /**Angular velocity of this body.*/
var angularVelocity: Double = 0
- /**Lineargeschwindigkeit des gegebenen Punktes auf diesem Koerper. In Weltkoordinaten.*/
+ /**Linear velocity of the given point on this body (in world coordinates).*/
def velocityOfPoint(point: Vector2D) = linearVelocity + ((point - pos).leftNormal * angularVelocity)
- /**Resultierende Kraft auf den Schwerpunkt dieses Koerpers.*/
+ /**Resulting force on the COM of this body.*/
var force: Vector2D = Vector2D.Null
- /**Resultierender Drehmoment zu dem Schwerpunkt dieses Koerpers.*/
+ /**Resulting torque on this body.*/
var torque: Double = 0
- /**Ergibt die Masse dieses Koerpers. Die Masse ist gleich die Summe aller Massen seiner Formen.
- * @return Masse des Koerpers*/
+ /**Returns the mass of this body. If the body is free, its mass is the sum of the masses of its shapes.
+ * If the body is fixed, its mass is infinite (<code>Double.PositiveInfinity</code>).
+ * @return this body's mass*/
def mass: Double = if (fixed) Double.PositiveInfinity else (0.0 /: shapes)((i: Double, s: Shape) => i + s.mass)
- /**Ergibt den Traegheitsmoment zu dem Schwerpunkt dieses Koerpers. Der Traegheitsmoment wird mit Hilfe des Steinerschen Satzes errechnet.
- * @return Traegheitsmoment relativ zu dem Schwerpunkt dieses Koerpers*/
+ /**Returns the moment of inertia for rotations about the COM of this body.
+ * It is calculated using the moments of inertia of this body's shapes and the parallel axis theorem.
+ * If the body is fixed, its moment of inertia is infinite (<code>Double.PositiveInfinity</code>).
+ * @return moment of inertia for rotations about the COM of this body*/
def I: Double = if (fixed) Double.PositiveInfinity else
(0.0 /: (for (s <- shapes) yield (s.I + s.mass * ((s.pos - pos) dot (s.pos - pos)))))(_+_)
- /**Wendet eine Kraft auf den Schwerpunkt dieses Koerpers an.
- * @param force anzuwendender Kraftvektor*/
+ /**Applies a force to the COM of this body.
+ * @param force applied force*/
def applyForce(force: Vector2D) = if (!fixed) this.force += force
- /**Wendet eine Kraft auf einen Punkt dieses Koerpers an. Achtung: der gegebene Punkt wird nicht auf angehoerigkeit dieses
- * Koerpers ueberprueft.
- * @param force anzuwendender Kraftvektor
- * @param point Ortsvektor des Punktes auf den die Kraft wirken soll (gegeben in Weltkoordinaten).*/
+ /**Applies a force to a point on this body. Warning: the point is considered to be contained within this body.
+ * @param force applied force
+ * @param point position vector of the point (in world coordinates)*/
def applyForce(force: Vector2D, point: Vector2D) = if (!fixed) {this.force += force; torque += (point - pos) cross force}
- /**Wendet einen Impuls auf den Schwerpunkt dieses Koerpers an.
- * @param impulse anzuwendender Impulsvektor*/
+ /**Applies an impulse to the COM of this body.
+ * @param impulse applied impulse*/
def applyImpulse(impulse: Vector2D) = if (!fixed) linearVelocity += impulse / mass
- /**Wendet einen Impuls auf einen Punkt dieses Koerpers an. Achtung: der gegebene Punkt wird nicht auf angehoerigkeit dieses
- * Koerpers ueberprueft.
- * @param impulse anzuwendender Impulsvektor
- * @param point Ortsvektor des Punktes auf den der Impuls wirken soll (gegeben in Weltkoordinaten).*/
+ /**Applies an impulse to a point on this body. Warning: the point is considered to be contained within this body.
+ * @param impulse applied impulse
+ * @param point position vector of the point (in world coordinates)*/
def applyImpulse(impulse: Vector2D, point: Vector2D) = if (!fixed) {linearVelocity += impulse / mass; angularVelocity += ((point - pos) cross impulse) / I}
- /**Ueberprueft ob der gegebene Punkt <code>point</code> sich in diesem Koerper befindet.*/
+ /**Checks if the point <code>point</code> is contained in this body.*/
def contains(point: Vector2D) = shapes.exists(_.contains(point))
override def toString: String = {
"Body" + uid + " " + shapes + " fixed=" + fixed + " m=" + mass + " I=" + I + " pos=" + pos + " rot=" + rotation + " v=" + linearVelocity + " w=" + angularVelocity + " F=" + force + " tau=" + torque
}
- /**Erstellt einen neuen Koerper der zusaetzlich die Form <code>s</code> enthaelt.
- * @param s zusaetzliche Form
- * @return neuer Koerper*/
- def ^(s: Shape) = new Body((s :: shapes): _*)
-
- /**Erstellt einen neuen Koerper der zusaetzlich die Formen von dem Koerper <code>b</code> enthaelt.
- * @param b Koerper mit zusaetzlichen Formen
- * @return neuer Koerper*/
- def ^(b: Body) = {
- val shapes = this.shapes ::: b.shapes
- new Body(shapes: _*)
- }
+ /**Creates a new body containing this body's shapes and the shape <code>s</code>.
+ * @param s new shape
+ * @return new body*/
+ def ~(s: Shape) = new Body((s :: shapes): _*)
+
+ /**Creates a new body containing this body's shapes and the shapes of another body <code>b</code>.
+ * @param b body with extra shapes
+ * @return new body*/
+ def ~(b: Body) = new Body((this.shapes ::: b.shapes): _*)
}
object Body {
diff --git a/src/sims/dynamics/Circle.scala b/src/sims/dynamics/Circle.scala
index 26f3ad4..b1d3703 100644
--- a/src/sims/dynamics/Circle.scala
+++ b/src/sims/dynamics/Circle.scala
@@ -10,18 +10,16 @@ import sims.geometry._
import sims.collision._
/**
- * Circle ist die Definition eines Kreises.
- * @param radius Radius dieses Kreises
- * @param density Dichte dieses Kreises
+ * A circle.
+ * @param radius radius of this circle
+ * @param density density of this circle
*/
-case class Circle(radius: Double, // Radius
- density: Double) extends Shape{ // Dichte
+case class Circle(radius: Double, density: Double) extends Shape{
val volume = Math.Pi * radius * radius
val I = mass * radius * radius / 2
- // AABB(Zentrum - Radius, Zentrum + Radius)
def AABB = new AABB(pos - Vector2D(radius,radius),
pos + Vector2D(radius,radius))
@@ -32,6 +30,5 @@ case class Circle(radius: Double, // Radius
(pos.project(axis).y / axis.y) - radius,
(pos.project(axis).y / axis.y) + radius)
- //Ist der gegebene punkt im Radius dieses kreises?
def contains(point: Vector2D) = (point - pos).length <= radius
}
diff --git a/src/sims/dynamics/Constraint.scala b/src/sims/dynamics/Constraint.scala
index 74c2af3..eaa6952 100644
--- a/src/sims/dynamics/Constraint.scala
+++ b/src/sims/dynamics/Constraint.scala
@@ -6,14 +6,16 @@
package sims.dynamics
-/**Randbedingungen erben von dem Trait <code>Constraint</code>.
- * Fuer jeden Constraint koennen Position und Geschwindigkeit korrigiert werden.
- * Ihre Implementierung wurde von Erin Catto's box2d inspiriert.*/
+/**All constraints in SiMS implement this trait.
+ * Position and velocity can be corrected for each constraint.
+ * The implementation of constraints was inspired by Erin Catto's box2d.*/
trait Constraint {
- /**Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen entsprechen.*/
+ /**Corrects the velocities of bodies according to this constraint.
+ * @param h a time interval, used for converting forces and impulses*/
def correctVelocity(h: Double): Unit
- /**Korrigiert die Position der Koerper damit diese den Randbedingungen entsprechen.*/
+ /**Corrects the positions of bodies according to this constraint.
+ * @param h a time interval, used for converting forces and impulses*/
def correctPosition(h: Double): Unit
}
diff --git a/src/sims/dynamics/Rectangle.scala b/src/sims/dynamics/Rectangle.scala
index adaa634..89ab4c0 100644
--- a/src/sims/dynamics/Rectangle.scala
+++ b/src/sims/dynamics/Rectangle.scala
@@ -9,10 +9,10 @@ package sims.dynamics
import sims.geometry._
import sims.collision._
-/**Rechteck ist eine Art Polygon.
- * @param halfWidth halbe Breite dieses Rechtecks
- * @param halfHeight halbe Hoehe dieses Rechtecks
- * @param density dichte dieses Rechtecks
+/**A rectangle is a polygon.
+ * @param halfWidth this rectangle's half width
+ * @param halfHeight this rectangle's half height
+ * @param density density of this rectangle
*/
case class Rectangle(halfWidth: Double,
halfHeight : Double,
@@ -22,19 +22,17 @@ case class Rectangle(halfWidth: Double,
val I = 1.0 / 12.0 * mass * ((2 * halfWidth) * (2 * halfWidth) + (2 * halfHeight) * (2 * halfHeight))
- /**Ergibt Vektoren vom Zentrum dieses Rectecks bis zu den Ecken.
- * Erste Ecke entspricht der Ecke oben rechts bei einer Rotation von 0.
- * Folgende Ecken sind gegen den Uhrzeigersinn geordnet.
- * @return Vektoren vom Zentrum dieses Rectecks bis zu den Ecken*/
+ /**Returns the vectors from the center to the vertices of this rectangle.
+ * The first vertex is the upper-right vertex at a rotation of 0.
+ * Vertices are ordered counter-clockwise.*/
def halfDiags: Array[Vector2D] = Array(Vector2D(halfWidth, halfHeight),
Vector2D(-halfWidth, halfHeight),
Vector2D(-halfWidth, -halfHeight),
Vector2D(halfWidth, -halfHeight)) map (_ rotate rotation)
- /**Ergibt die Ortsvektoren der Ecken dieses Rechtecks.
- * Erste Ecke entspricht der Ecke oben rechts bei einer Rotation von 0.
- * Folgende Ecken sind gegen den Uhrzeigersinn geordnet.
- * @return Ortsvektoren der Ecken dieses Rechtecks*/
+ /**Returns the position vectors of this rectangle's vertices.
+ * The first vertex is the upper-right vertex at a rotation of 0.
+ * Vertices are ordered counter-clockwise.*/
def vertices = for (h <- halfDiags) yield pos + h
} \ No newline at end of file
diff --git a/src/sims/dynamics/RegularPolygon.scala b/src/sims/dynamics/RegularPolygon.scala
index c5b8a13..b49d100 100644
--- a/src/sims/dynamics/RegularPolygon.scala
+++ b/src/sims/dynamics/RegularPolygon.scala
@@ -9,17 +9,17 @@ package sims.dynamics
import Math._
import sims.geometry._
-/**Ein regelmaessiges Polygon mit <code>n</code> Seiten, dass der Kreis mit radius <code>radius</code> umschreibt.
- * @param n Anzahl der Seiten.
- * @param radius Radius des umschreibenden Kreises.
- * @param density Dichte.
- */
+/**A regular polygon with <code>n</code> sides whose excircle has a radius <code>radius</code>.
+ * @param n nmber of sides.
+ * @param radius radius of the excircle
+ * @param density density of this regular polygon
+ * @throws IllegalArgumentException if <code>n</code> is smaller than 3 */
case class RegularPolygon(n: Int, radius: Double, density: Double) extends Shape with ConvexPolygon{
- require(n >= 3, "Polygon must have at least 3 sides.")
+ require(n >= 3, "A polygon must have at least 3 sides.")
- /**Hoehe eines der konstituierneden Dreiecke des Polygons.*/
+ /**Height of one of the constituting triangles.*/
private val h: Double = radius * cos(Pi / n)
- /**Halbe Breite eines der konstituierneden Dreiecke des Polygons.*/
+ /**Half width of one of the constituting triangles.*/
private val b: Double = radius * sin(Pi / n)
def halfDiags = (for (i: Int <- (0 until n).toArray) yield (Vector2D(0, radius) rotate (2 * Pi * i / n))) map (_ rotate rotation)
@@ -28,7 +28,7 @@ case class RegularPolygon(n: Int, radius: Double, density: Double) extends Shape
val volume = n * h * b
- /**Traegheitsmoment eines der konstituierneden Dreiecke im Zentrum des Polygons.*/
+ /**Moment of inertia of one of the constituting triangles about the center of this polygon.*/
private val Ic: Double = density * b * (3 * b + 16) * h * h * h * h / 54
val I = n * Ic
diff --git a/src/sims/dynamics/Shape.scala b/src/sims/dynamics/Shape.scala
index f57bbc6..47a4199 100644
--- a/src/sims/dynamics/Shape.scala
+++ b/src/sims/dynamics/Shape.scala
@@ -10,78 +10,82 @@ import sims.geometry._
import sims.collision._
/**
-* Eine abstrakte Form.
+* An abstract shape.
*/
abstract class Shape{
- /**Einzigartige Identifikationsnummer.*/
+ /**Unique identification number.*/
val uid: Int = Shape.nextUid
- /**Kollisionsfaehigkeit.*/
+ /**Flag determining this shapes ability to collide with other shapes.*/
var collidable: Boolean = true
- /**Teil der Stosszahl bei einer Kollision zwischen dieser Form und einer anderen.
- * Die Stosszahl wird aus dem Produkt der beiden Teile der Formen errechnet.*/
+ /**Part of the coefficient of restitution for a collision between this shape and another.
+ * The coefficient of restitution is calculated out of the product of this part and the other shape's part.*/
var restitution: Double = 0.7
- /**Teil des Reibungskoeffizienten bei einer Kollision zwischen dieser Form und einer anderen.
- * Der Reibungskoeffizient wird aus dem Produkt der beiden Teile der Formen errechnet.*/
+ /**Part of the coefficient of friction for a collision between this shape and another.
+ * The coefficient of friction is calculated out of the product of this part and the other shape's part.*/
var friction: Double = 0.707
- /**Position des Schwerpunktes in Welt.*/
+ /**Position of this shape's COM (in world coordinates).*/
var pos: Vector2D = Vector2D.Null
- /**Rotation. Entspricht Laenge des Rotationsvektors.*/
+ /**Rotation of this shape about its COM.*/
var rotation: Double = 0
- /**Initiale Rotation. (Rotation ohne Koerper)*/
+ /**Initial rotation. Rotation of this shape before it was added to a body.*/
var rotation0 = 0.0
- /**Referenzposition in Koerper. Wird zur Rotation von Formen in Koerpern verwendet.*/
+ /**Local position of this shape's body COM to its COM at a body rotation of zero.*/
var refLocalPos: Vector2D = Vector2D.Null
- /**Dichte. (Masse pro Flaeche)*/
+ /**Density. (Mass per area)*/
val density: Double
- /**Volumen. Entspricht eigentlich der Flaeche dieser Form (in 2D) wird aber zum Errechnen der Masse verwendet.*/
+ /**Volume. The volume is actually equivalent to this shape's area (SiMS is in 2D)
+ * and is used with this shape's density to calculate its mass.*/
val volume: Double
- /**Errechnet die Masse dieser Form. Masse ist gleich Volumen mal Dichte.
- @return Masse der Form*/
+ /**Returns the mass of this shape. The mass is given by volume times density.
+ @return mass of this shape*/
def mass = volume * density
- /**Errechnet Traegheitsmoment zum Schwerpunkt dieser Form.
- @return Traegheitsmoment zum Schwerpunkt*/
+ /**Moment of inertia for a rotation about this shape's COM.*/
val I: Double
- /**Beinhaltender Koerper. Sollte nicht selbst bei Initialisierung definiert werden.*/
- var body: Body = _
+ /**Containing body.*/
+ private var _body: Body = _
- /**Gibt das umfassende AABB dieser Form zurueck.
- @return umfassendes AABB*/
+ /**Returns this shape's containing body.*/
+ def body = _body
+
+ /**Sets this shape's containing body.*/
+ private[dynamics] def body_=(b: Body) = _body = b
+
+ /**Returns this shape's axis aligned bounding box.*/
def AABB: AABB
- /**Ergibt die Projektion dieser Form auf eine Gerade gegeben durch den
- * Richtungsvektor <code>axis</code>.
- * @param axis Richtungsvektor der Geraden
- * @return Projektion dieser Form*/
+ /**Returns the projection of this shape onto the line given by the directional vector <code>axis</code>.
+ * @param axis directional vector of the line
+ * @return projection of this shape*/
def project(axis: Vector2D): Projection
- /**Ermittelt ob der gebene Punkt <code>point</code> in dieser Form enthalten ist.*/
+ /**Checks if the point <code>point</code> is contained in this shape.*/
def contains(point: Vector2D): Boolean
- /**Baut einen Koerper aus dieser Form.
- @return ein Koerper bestehend aus dieser Form. */
+ /**Creates a new body made out of tis shape.
+ @return a body made out of tis shape*/
def asBody = new Body(this)
- /**Formen mit denen diese Form nicht Kollidiert.*/
+ /**Shapes with which this shape cannot collide.*/
val transientShapes: collection.mutable.Set[Shape] = collection.mutable.Set()
- /**Erstellt einen Koerper aus dieser Form und der Form <code>s</code>.*/
- def ^(s: Shape) = new Body(this, s)
+ /**Creates a new body out of this shape and the shape <code>s</code>.*/
+ def ~(s: Shape) = new Body(this, s)
- /**Erstellt einen Koerper aus dieser Form und den Formen des Koerpers <code>b</code>.*/
- def ^(b: Body) = {
+ /**Creates a new body out of this shape and the shapes of body <code>b</code>.*/
+ def ~(b: Body) = {
val shapes = this :: b.shapes
new Body(shapes: _*)
}
diff --git a/src/sims/dynamics/World.scala b/src/sims/dynamics/World.scala
index 7b165f5..0230a50 100644
--- a/src/sims/dynamics/World.scala
+++ b/src/sims/dynamics/World.scala
@@ -11,104 +11,107 @@ import sims.collision._
import sims.dynamics.joints._
import scala.collection.mutable._
-/**Eine Welt enthaelt und Simuliert ein System aus Koerpern und Verbindungen.*/
+/**A world contains and simulates a system of rigid bodies and joints.*/
class World {
- /**Zeitschritt in dem diese Welt die Simulation vorranschreiten laesst.*/
+ /**Time intervals in which this world simulates.*/
var timeStep: Double = 1.0 / 60
- /**Anzahl der Constraint-Korrekturen pro Zeitschritt.*/
+ /**Number of constraint corrections per time step.*/
var iterations: Int = 10
- /**Schwerkraft die in dieser Welt herrscht.*/
+ /**Gravity in this world.*/
var gravity = Vector2D(0, -9.81)
- /**Alle Koerper die diese Welt simuliert.*/
+ /**Bodies contained in this world.*/
val bodies = new ArrayBuffer[Body]
- /**Alle Verbindungen die diese Welt simuliert.*/
+ /**Joints contained in this world.*/
val joints = new ArrayBuffer[Joint]
- /**Ueberwachungsfunktionen fuer Koerper.
+ /**Monitoring methods for bodies.
* <p>
- * Das erste Element des Tuples ist die Ueberschrift und das zweite Element, der Wert.*/
+ * The first element of the tuple is the method's title and the second the method.
+ * Example usage: monitors += ("Y-Position", _.pos.y.toString)
+ * This will calculate all bodies - whose <code>monitor</code> field is set to
+ * <code>true</code> - second position components.*/
val monitors = new ArrayBuffer[(String, Body => String)]
- /**Kollisionsdetektor dieser Welt.*/
+ /**Collsion detector who manages collision detection in this world.*/
val detector: Detector = new GridDetector(this)
- /**Warnung wenn Koerper schneller als Lichtgeschwindigkeit.*/
+ /**Warning if a body's velocity exceeds the speed of light.*/
var overCWarning = false
- /**Kollisionerkennung.*/
+ /**Flag to enable collision detection.*/
var enableCollisionDetection = true
- /**Positionskorrekturen.*/
+ /**Flag to enable position correction for constraints.*/
var enablePositionCorrection = true
- /**Die minimale, nicht als null geltende Geschwindigkeit.*/
+ /**Minimal, non-zero linear velocity.*/
var minLinearVelocity: Double = 0.0001
- /**Die minimale, nicht als null geltende Winkelgeschwindigkeit.*/
+ /**Minimal, non-zero angular velocity.*/
var minAngularVelocity: Double = 0.0001
- /**Ergibt alle Formen aus allen Koerpern in dieser Welt.*/
+ /**Returns all shapes of all bodies in this world.*/
def shapes = for (b <- bodies; s <- b.shapes) yield s
- /**Fuegt dieser Welt einen Koerper hinzu.*/
+ /**Adds the given body to this world.*/
def +=(body: Body) = bodies += body
- /**Fuegt dieser Welt eine Verbindung hinzu.*/
+ /**Adds the given joint to this world.*/
def +=(joint: Joint): Unit = joints += joint
- /**Fuegt dieser Welt ein vorangefertigtes System vaus Koerpern und Verbindungen hinzu.*/
+ /**Adds the given prefabricated system of bodies and joints to this world.*/
def +=(p: prefabs.Prefab): Unit = {
for (b <- p.bodies) this += b
for (j <- p.joints) this += j
}
+ /**Adds the given sequence of bodies to this world.*/
def ++=(bs: Seq[Body]): Unit = for(b <- bs) this += b
- /**Entfernt den gegebenen Koerper aus dieser Welt.*/
+ /**Removes the given body from this world.*/
def -=(body: Body): Unit = bodies -= body
- /**Entfernt die gegebene Verbindung aus dieser Welt.*/
+ /**Removes the given joint from this world.*/
def -=(joint: Joint): Unit = joints -= joint
- /**Entfernt das gegebene System aus Koerpern und Verbindungen aus dieser Welt.*/
+ /**Removes the given prefabricated system of bodies and joints from this world.*/
def -=(p: prefabs.Prefab): Unit = {
for (b <- p.bodies) this -= b
for (j <- p.joints) this -= j
}
+ /**Removes the given sequence of bodies from this world.*/
def --=(bs: Seq[Body]) = for(b <- bs) this -= b
- /**Entfernt alle Koerper, Verbindungen und Ueberwachungsfunktionen dieser Welt.*/
+ /**Removes all bodies, joints and monitoring methods from this world.*/
def clear() = {joints.clear(); bodies.clear(); monitors.clear()}
- /**Aktuelle Zeit in Sekunden dieser Welt. Nach jedem Zeitschritt wird die Zeit erhoeht.*/
+ /**Current time in this world.*/
var time: Double = 0.0
- /**Simuliert einen von <code>timeStep</code> angegebenen Zeitschritt.
- * Ihre Aufgabe ist es die Koerper dieser Welt so zu simulieren wie diese sich in einer Welt mit den gegebenen
- * Bedingungen verhalten wuerden.
+ /**Simulates a time step of the duration <code>timeStep</code>.
* <p>
- * Der Zeitschritt wird in folgenden Phasen ausgefuehrt:
+ * The time step is simulated in the following phases:
* <ol>
- * <li>Kraefte wirken auf die Koerper (z.B Schwerkraft, andere Kraftfaehige Objekte).</li>
- * <li>Beschleunigungen werden integriert.</li>
- * <li>Geschwindigkeiten werden korrigiert.</li>
- * <li>Geschwindigkeiten werden integriert.</li>
- * <li>Positionen werden korrigiert.</li>
- * <li>Die Methode <code>postStep()</code> wird ausgefuehrt.</li>
+ * <li>Forces are applied to bodies.</li>
+ * <li>Accelerations are integrated.</li>
+ * <li>Velocities are corrected.</li>
+ * <li>Velocities are integrated.</li>
+ * <li>Postions are corrected.</li>
+ * <li>The method <code>postStep()</code> is executed.</li>
* </ol>*/
def step() = {
time += timeStep
- //Kraftobjekte
+ //force applying objects
for (j <- joints) j match {case f: ForceJoint => f.applyForce; case _ => ()}
- //integriert v
+ //integration of acclerations, yields velocities
for (b <- bodies) {
val m = b.mass
b.applyForce(gravity * b.mass)
@@ -118,13 +121,13 @@ class World {
b.angularVelocity = b.angularVelocity + alpha * timeStep
}
- //korrigiert v
+ //correction of velocities
for (i <- 0 until iterations){
for(c <- joints) c.correctVelocity(timeStep)
if (enableCollisionDetection) for (c <- detector.collisions) c.correctVelocity(timeStep)
}
- //integriert pos
+ //integration of velocities, yields positions
for (b <- bodies) {
//warning when body gets faster than speed of light
if (b.linearVelocity.length >= 300000000) overCWarning = true
@@ -136,7 +139,7 @@ class World {
b.torque = 0.0
}
- //korrigiert pos
+ //correction of positions
if (enablePositionCorrection) for (i <- 0 until iterations){
for (c <- joints) c.correctPosition(timeStep)
if (enableCollisionDetection) for (c <- detector.collisions) c.correctPosition(timeStep)
@@ -145,10 +148,11 @@ class World {
postStep()
}
- /**Wird nach jedem Zeitschritt ausgefuehrt.*/
+ /**Initially empty method that is executed after each time step. This method
+ * may be overriden to create custom behaviour in a world.*/
def postStep() = {}
- /**Ergibt Informationen ueber diese Welt.*/
+ /**Returns information about this world.*/
def info = {
"Bodies = " + bodies.length + "\n" +
"Shapes = " + shapes.length + "\n" +
diff --git a/src/sims/dynamics/joints/DistanceJoint.scala b/src/sims/dynamics/joints/DistanceJoint.scala
index 2d5633f..efb49e5 100644
--- a/src/sims/dynamics/joints/DistanceJoint.scala
+++ b/src/sims/dynamics/joints/DistanceJoint.scala
@@ -8,15 +8,15 @@ package sims.dynamics.joints
import sims.geometry._
-/** DistanceJoints halten die Bindungspunkte auf ihren Bindungskoerpern bei einem konstanten Abstand.
- * @param node1 erster Koerper der Verbindung
- * @param anchor1 Bindungspunkt auf Koerper eins
- * @param node2 zweiter Koerper der Verbindung
- * @param anchor2 Bindungspunkt auf Koerper zwei*/
+/** DistanceJoints keep their connection points at a constant distance.
+ * @param node1 first associated body
+ * @param anchor1 first connection point
+ * @param node2 second associated body
+ * @param anchor2 second connection point*/
case class DistanceJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2: Vector2D) extends Joint{
def this(node1: Body, node2: Body) = this(node1, node1.pos, node2, node2.pos)
- /**Abstand der beiden Bindungspunkte bei initialisierung (der gewollte Abstand).*/
+ /**Distance between the two connection points at initialisation (the desired distance).*/
val distance = (anchor2 - anchor1).length
private val a1 = anchor1 - node1.pos
@@ -24,16 +24,16 @@ case class DistanceJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2: V
private val initRotation1 = node1.rotation
private val initRotation2 = node2.rotation
- /**Ergibt den Bindungspunkt auf Koerper eins.*/
+ /**Returns the connection point on body one (in world coordinates).*/
def connection1 = (a1 rotate (node1.rotation - initRotation1)) + node1.pos
- /**Ergibt den Bindungspunkt auf Koerper zwei.*/
+ /**Returns the connection point on body two (in world coordinates).*/
def connection2 = (a2 rotate (node2.rotation - initRotation2)) + node2.pos
- /**Relative Position der Bindungspunkte.*/
+ /**Relative position of the connection points.*/
def x = connection2 - connection1
- /**Relative Geschwindigkeit der Bindungspunkte.*/
+ /**Relative velocity of the connection points.*/
def v = node2.velocityOfPoint(connection2) - node1.velocityOfPoint(connection1)
/* x = connection2 - connection1
@@ -45,15 +45,15 @@ case class DistanceJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2: V
* 1/m = J * M^-1 * JT
* = 1/m1 * u * u + 1/m2 * u * u + 1/I1 * (r1 cross u)^2 + 1/I2 * (r2 cross u)^2*/
override def correctVelocity(h: Double) = {
- val x = this.x //relativer Abstand
- val v = this.v //relative Geschwindigkeit
- val r1 = (connection1 - node1.pos) //Abstand Punkt-Schwerpunkt, Koerper 1
- val r2 = (connection2 - node2.pos) //Abstand Punkt-Schwerpunkt, Koerper 2
- val cr1 = r1 cross x.unit //Kreuzprodukt
- val cr2 = r2 cross x.unit //Kreuzprodukt
- val Cdot = x.unit dot v //Velocity-Constraint
+ val x = this.x //relative position
+ val v = this.v //relative velocity
+ val r1 = (connection1 - node1.pos)
+ val r2 = (connection2 - node2.pos)
+ val cr1 = r1 cross x.unit
+ val cr2 = r2 cross x.unit
+ val Cdot = x.unit dot v //velocity constraint
val invMass = 1/node1.mass + 1/node1.I * cr1 * cr1 + 1/node2.mass + 1/node2.I * cr2 * cr2 //=J M^-1 JT
- val m = if (invMass == 0.0) 0.0 else 1/invMass //Test um Nulldivision zu vermeiden
+ val m = if (invMass == 0.0) 0.0 else 1/invMass //avoid division by zero
val lambda = -m * Cdot //=-JV/JM^-1JT
val impulse = x.unit * lambda //P=J lambda
node1.applyImpulse(-impulse, connection1)
diff --git a/src/sims/dynamics/joints/ForceJoint.scala b/src/sims/dynamics/joints/ForceJoint.scala
index fa17eac..1eed850 100644
--- a/src/sims/dynamics/joints/ForceJoint.scala
+++ b/src/sims/dynamics/joints/ForceJoint.scala
@@ -6,9 +6,9 @@
package sims.dynamics.joints
-/**Eine Verbindung die Kraft auf ihre Bindungskoerper ausueben kann.*/
+/**A joint which can apply a force to its anchor bodies, thus adding or removing energy to the system.*/
trait ForceJoint {
- /**Uebt eine Kraft auf die Bindungskoerper aus.*/
+ /**Applies a force on the achor bodies.*/
def applyForce(): Unit
}
diff --git a/src/sims/dynamics/joints/Joint.scala b/src/sims/dynamics/joints/Joint.scala
index 9690af2..652df97 100644
--- a/src/sims/dynamics/joints/Joint.scala
+++ b/src/sims/dynamics/joints/Joint.scala
@@ -9,19 +9,19 @@ package sims.dynamics.joints
import sims.geometry._
import sims.dynamics._
-/**Joints sind Verbindungen die die Bewegung zwischen zwei Koerpern einschraenken.
- * Ihre Implementierung wurde von Erin Catto's box2d inspiriert.*/
+/**Joints constrain the movement of two bodies.
+ * Their implementation was inspired by Erin Catto's box2d.*/
abstract class Joint extends Constraint{
- /**Erster Koerper der Verbindung.*/
+ /**First body of the joint.*/
val node1: Body
- /**Zweiter Koerper der Verbindung.*/
+ /**Second body of the joint.*/
val node2: Body
- /**Korrigiert die Geschwindigkeit der Koerper damit diese den Randbedingungen der Verbindung entsprechen.*/
+ /**Corrects the velocities of this joint's associated bodies.*/
def correctVelocity(h: Double): Unit
- /**Korrigiert die Position der Koerper damit diese den Randbedingungen der Verbindung entsprechen.*/
+ /**Corrects the positions of this joint's associated bodies.*/
def correctPosition(h: Double): Unit
} \ No newline at end of file
diff --git a/src/sims/dynamics/joints/RevoluteJoint.scala b/src/sims/dynamics/joints/RevoluteJoint.scala
index 7a7ae1c..66a4c06 100644
--- a/src/sims/dynamics/joints/RevoluteJoint.scala
+++ b/src/sims/dynamics/joints/RevoluteJoint.scala
@@ -11,7 +11,9 @@ import sims.math._
import sims.dynamics._
import Math._
-/**Ein Gelenk, dass zwei Koerper an einem Punkt verbindet. Inspiriert von JBox2D.*/
+/**A revolute joint that connects two bodies at a singe point. Inspired from JBox2D.
+ * <b>Warning:</b> there are still several bugs with revolute joints, if they are between two free
+ * bodies and not connected at their respective COMs.*/
case class RevoluteJoint(node1: Body, node2: Body, anchor: Vector2D) extends Joint{
private val a1 = anchor - node1.pos
private val a2 = anchor - node2.pos
diff --git a/src/sims/dynamics/joints/SpringJoint.scala b/src/sims/dynamics/joints/SpringJoint.scala
index 67ea57f..1267ccf 100644
--- a/src/sims/dynamics/joints/SpringJoint.scala
+++ b/src/sims/dynamics/joints/SpringJoint.scala
@@ -8,13 +8,13 @@ package sims.dynamics.joints
import sims.geometry._
-/**Eine Hooksche Feder.
- * @param node1 erster Koerper der Verbindung
- * @param anchor1 Bindungspunkt auf Koerper eins
- * @param node2 zweiter Koerper der Verbindung
- * @param anchor2 Bindungspunkt auf Koerper zwei
- * @param springConstant Federkonstante
- * @param initialLength Initiallaenge
+/**A spring obeying Hooke's law.
+ * @param node1 first associated body
+ * @param anchor1 first connection point
+ * @param node2 second associated body
+ * @param anchor2 second connection point
+ * @param springConstant spring constant
+ * @param initialLength initial length
*/
case class SpringJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2: Vector2D, springConstant: Double, initialLength: Double) extends Joint with ForceJoint{
@@ -34,25 +34,25 @@ case class SpringJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2: Vec
private val initRotation1 = node1.rotation
private val initRotation2 = node2.rotation
- /**Ergibt den Bindungspunkt auf Koerper eins.*/
+ /**Returns the connection point on body one (in world coordinates).*/
def connection1 = (a1 rotate (node1.rotation - initRotation1)) + node1.pos
- /**Ergibt den Bindungspunkt auf Koerper zwei.*/
+ /**Returns the connection point on body two (in world coordinates).*/
def connection2 = (a2 rotate (node2.rotation - initRotation2)) + node2.pos
- /**Daempfung.*/
+ /**Damping.*/
var damping = 0.0
- /**Relative Position der Bindungspunkte.*/
+ /**Relative position of the connection points.*/
def x = connection2 - connection1
- /**Relative Geschwindigkeit der Bindungspunkte.*/
+ /**Relative velocity of the connection points.*/
def v = node2.velocityOfPoint(connection2) - node1.velocityOfPoint(connection1)
- /**Ergibt die Federkraft nach dem Hookschen Gesetz.*/
+ /**Returns the spring force.*/
def force = (x.length - initialLength) * springConstant
- /**Uebt die Federkraft auf die Bindungspunkte aus.*/
+ /**Applies the spring force to the connection points.*/
def applyForce() = {
node1.applyForce(x.unit * force - (v * damping) project x, connection1)
node2.applyForce(-x.unit * force - (v * damping) project x, connection2)
@@ -61,15 +61,15 @@ case class SpringJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2: Vec
def correctVelocity(h: Double) = {
/*
- val x = this.x //relativer Abstand
- val v = this.v //relative Geschwindigkeit
- val r1 = (connection1 - node1.pos) //Abstand Punkt-Schwerpunkt, Koerper 1
- val r2 = (connection2 - node2.pos) //Abstand Punkt-Schwerpunkt, Koerper 2
- val cr1 = r1 cross x.unit //Kreuzprodukt
- val cr2 = r2 cross x.unit //Kreuzprodukt
- val Cdot = x.unit dot v //Velocity-Constraint
+ val x = this.x
+ val v = this.v
+ val r1 = (connection1 - node1.pos)
+ val r2 = (connection2 - node2.pos)
+ val cr1 = r1 cross x.unit
+ val cr2 = r2 cross x.unit
+ val Cdot = x.unit dot v
val invMass = 1/node1.mass + 1/node1.I * cr1 * cr1 + 1/node2.mass + 1/node2.I * cr2 * cr2 //=J M^-1 JT
- val m = if (invMass == 0.0) 0.0 else 1/invMass //Test um Nulldivision zu vermeiden
+ val m = if (invMass == 0.0) 0.0 else 1/invMass
val lambda = Math.min(Math.max(-this.force * h, (-m * Cdot)), this.force * h)
println (force * h, -m * Cdot)
val impulse = x.unit * lambda
diff --git a/src/sims/dynamics/joints/test/PrismaticJoint.scala b/src/sims/dynamics/joints/test/PrismaticJoint.scala
index f163261..d4b43b2 100644
--- a/src/sims/dynamics/joints/test/PrismaticJoint.scala
+++ b/src/sims/dynamics/joints/test/PrismaticJoint.scala
@@ -15,10 +15,8 @@ case class PrismaticJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2:
def connection1 = (a1 rotate (node1.rotation - initRotation1)) + node1.pos
def connection2 = (a2 rotate (node2.rotation - initRotation2)) + node2.pos
- /**Relative Position der Bindungspunkte.*/
def x = connection2 - connection1
- /**Relative Geschwindigkeit der Bindungspunkte.*/
def v = node2.velocityOfPoint(connection2) - node1.velocityOfPoint(connection1)
@@ -28,13 +26,13 @@ case class PrismaticJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2:
}
def correctLinear(h: Double) = {
- val x = this.x.unit //relativer Abstand
+ val x = this.x.unit
val n0 = x.leftNormal
- val v = this.v //relative Geschwindigkeit
- val r1 = (connection1 - node1.pos) //Abstand Punkt-Schwerpunkt, Koerper 1
- val r2 = (connection2 - node2.pos) //Abstand Punkt-Schwerpunkt, Koerper 2
- val cr1 = r1 cross n0 //Kreuzprodukt
- val cr2 = r2 cross n0 //Kreuzprodukt
+ val v = this.v
+ val r1 = (connection1 - node1.pos)
+ val r2 = (connection2 - node2.pos)
+ val cr1 = r1 cross n0
+ val cr2 = r2 cross n0
val Cdot = n0 dot v
val invMass = 1/node1.mass + 1/node1.I * cr1 * cr1 + 1/node2.mass + 1/node2.I * cr2 * cr2
val m = if (invMass == 0.0) 0.0 else 1/invMass
@@ -57,13 +55,13 @@ case class PrismaticJoint(node1: Body, anchor1: Vector2D, node2: Body, anchor2:
def correctPosition(h: Double) = {
/*
- val x = this.x.unit //relativer Abstand
+ val x = this.x.unit
val n0 = x.leftNormal
- val v = this.v //relative Geschwindigkeit
- val r1 = (connection1 - node1.pos) //Abstand Punkt-Schwerpunkt, Koerper 1
- val r2 = (connection2 - node2.pos) //Abstand Punkt-Schwerpunkt, Koerper 2
- val cr1 = r1 cross n0 //Kreuzprodukt
- val cr2 = r2 cross n0 //Kreuzprodukt
+ val v = this.v
+ val r1 = (connection1 - node1.pos)
+ val r2 = (connection2 - node2.pos)
+ val cr1 = r1 cross n0
+ val cr2 = r2 cross n0
val C = n0 dot x
val invMass = 1/node1.mass + 1/node1.I * cr1 * cr1 + 1/node2.mass + 1/node2.I * cr2 * cr2
val m = if (invMass == 0.0) 0.0 else 1/invMass
diff --git a/src/sims/geometry/ConvexPolygon.scala b/src/sims/geometry/ConvexPolygon.scala
index 7bf881c..cb4a429 100644
--- a/src/sims/geometry/ConvexPolygon.scala
+++ b/src/sims/geometry/ConvexPolygon.scala
@@ -9,21 +9,20 @@ package sims.geometry
import sims.collision._
import sims.geometry._
-/**Gemeinsame Eigenschaften aller konvexen Polygone.*/
+/**Common properties of all convex polygons.*/
trait ConvexPolygon {
- /**Ergibt Position aller Ecken dieses Polygons. Die Ecken sind gegen den Uhrzeigersinn folgend.
- * @return Ortsvektoren der Ecken*/
+ /**Returns positions of all vertices of this Polygon. Vertices are ordered counter-clockwise.
+ * @return position vectors of the vertices*/
def vertices: Seq[Vector2D]
- /**Ergibt alle Seiten dieses Polygons.
- * @return Seiten dieses Polygons*/
+ /**Returns all sides of this polygon. The sides are ordered counter-clockwise, the first vertex of the side
+ * giving the side index.*/
def sides = (for (i <- 0 until vertices.length) yield (new Segment(vertices(i), vertices((i + 1) % vertices.length)))).toArray
- /**Ergibt die Projektion dieses Polygons auf eine Gerade gegeben durch den
- * Richtungsvektor <code>axis</code>
- * @param axis Richtungsvektor der Geraden
- * @return Projektion dieses Polygons*/
+ /**Returns the projection of this polygon onto the line given by the directional vector <code>axis</code>.
+ * @param axis directional vector of the line
+ * @return projection of this polygon*/
def project(axis: Vector2D) = {
val points = for (v <- vertices) yield {v project axis}
val bounds = for (p <- points) yield {if (axis.x != 0) p.x / axis.x else p.y / axis.y}
@@ -32,8 +31,7 @@ trait ConvexPolygon {
(bounds(0) /: bounds)(Math.max(_,_)))
}
- /**Errechnet das AABB dieses Polygons
- * @return umfassendes AABB
+ /**Returns this polygon's axis aligned bounding box.
* @see collision.AABB*/
def AABB = {
val xs = vertices map (_.x)
@@ -42,15 +40,12 @@ trait ConvexPolygon {
Vector2D(Iterable.max(xs), Iterable.max(ys)))
}
- /**Ueberprueft ob sich der gegebene Punkt <code>point</code> in diesem Polygon befindet.
+ /**Checks if the point <code>point</code> is contained in this polygon.
* <p>
- * Hierzu wird eine Halbgerade von dem Punkt in Richtung der X-Achse gezogen (koennte aber auch beliebig sein).
- * Dann wird die Anzahl der Ueberschneidungen der Halbgeraden mit den Seiten und Ecken des Polygons ermittelt.
- * Ist die Anzahl der Ueberschneidungen ungerade, so befindet sich der Punkt in dem Polygon.
- * Es gibt jedoch Ausnahmen, und zwar wenn die Halbgerade eine Ecke ueberschneidet, ueberschneidet sie sowohl auch zwei Seiten.
- * Daher wird eine generelle Anzahl von Uerberschneidungen errechnet, gegeben durch die Anzahl der Ueberschneidungen mit den Seiten minus
- * die mit den Ecken.
- * Diese Zahl wird dann wie oben geschildert geprueft.*/
+ * A ray is created, originating from the point and following an arbitrary direction (X-Axis was chosen).
+ * The number of intersections between the ray and this polygon's sides (including vertices) is counted.
+ * The amount of intersections with vertices is substracted form the previuos number.
+ * If the latter number is odd, the point is contained in the polygon.*/
def contains(point: Vector2D) = {
val r = new Ray(point, Vector2D.i)
var intersections = 0
diff --git a/src/sims/geometry/Projection.scala b/src/sims/geometry/Projection.scala
index 5f2d0f0..0c340f0 100644
--- a/src/sims/geometry/Projection.scala
+++ b/src/sims/geometry/Projection.scala
@@ -8,25 +8,26 @@ package sims.geometry
import sims.math._
-/**Projektion auf eine Achse.
+/**Projection on an axis.
* <p>
- * Ueblicherweise werden Projektionen in SiMS fuer Kollisionserkennung benutzt.
- * @param axis Achse der Projektion
- * @param lower unterer Wert der Projektion
- * @param upper oberer Wert der Projektion*/
+ * Projections are commonly used in SiMS for collision detection.
+ * @param axis directional vector of the axis of the projection
+ * @param lower lower value of the projection
+ * @param upper upper value of the projection*/
case class Projection(axis: Vector2D,
lower: Double,
upper: Double) {
- require(axis != Vector2D.Null)
+ require(axis != Vector2D.Null, "A projection's axis cannot be given by a null vector!")
- /**Ueberprueft ob sich diese Projektion mit der Projektion <code>other</code> ueberschneidet.*/
+ /**Checks this projection for overlap with another projection <code>other</code>.
+ * @throws IllegalArgumentExcepion if both projections axes aren't the same*/
def overlaps(other: Projection): Boolean = {
require(axis == other.axis, "Cannot compare two projections on different axes!")
!((other.lower - this.upper) > 0 || (this.lower - other.upper) > 0)
}
-
- /**Ergibt die Ueberlappung dieser Projektion und der Projektion <code>other</code>.*/
+ /**Returns the overlap between this projection and another projection <code>other</code>.
+ * @throws IllegalArgumentExcepion if both projections axes aren't the same*/
def overlap(other: Projection): Double = {
require(axis == other.axis, "Cannot compare two projections on different axes!")
(Math.max(lower, other.lower) - Math.min(upper, other.upper)).abs
diff --git a/src/sims/geometry/Ray.scala b/src/sims/geometry/Ray.scala
index c898e03..feb18a9 100644
--- a/src/sims/geometry/Ray.scala
+++ b/src/sims/geometry/Ray.scala
@@ -9,16 +9,16 @@ package sims.geometry
import sims.math._
import Math._
-/**Eine Halbgerade wird definiert durch:
- * @param point ein Aufpunkt
- * @param direction ein Richtungsvektor*/
+/**A ray.
+ * @param point a point on the ray
+ * @param direction this ray's directional vector
+ * @throws IllegalArgumentException if the directional vector is the null vector*/
case class Ray(point: Vector2D, direction: Vector2D) {
- //Ein Nullvektor hat keine Richtung
- require(direction != Vector2D.Null)
+ require(direction != Vector2D.Null, "A ray's direction cannot be given by a null vector!")
- /**Ueberprueft ob diese Halbgerade das gegebene Segment ueberschneidet.
- * @param das auf Ueberschneidung zu uerberpruefende Segment*/
+ /**Checks this ray and the given segment for intersection.
+ * @param s the segment to test for intersection*/
def intersects(s: Segment) = {
val p1 = point
val p2 = point + direction
@@ -38,11 +38,7 @@ case class Ray(point: Vector2D, direction: Vector2D) {
}
}
- /**Ueberprueft ob diese Halbgerade den gegebenen Punkt enthaelt.
- * <br>
- * Hierzu wird der Vektor von dem Ursprungspunkt zu dem zu ueberpruefenden Punkt gebildet. Dieser wird dann mit dem Richtungsvektor
- * auf Kolinearitaet geprueft.
- * @param p Ortsvektor des oben genannten Punkt*/
+ /**Checks if this ray contains the point <code>p</code>.*/
def contains(p: Vector2D) = {
val v = p - point
p == point ||
diff --git a/src/sims/geometry/Segment.scala b/src/sims/geometry/Segment.scala
index 8700979..4aaec21 100644
--- a/src/sims/geometry/Segment.scala
+++ b/src/sims/geometry/Segment.scala
@@ -6,37 +6,39 @@
package sims.geometry
-/**Ein Segment wird durch seine beiden Extrempunkte gegeben.
- * @param vertex1 Ortsvektor des 1. Extrempunkts
- * @param vertex2 Ortsvektor des 2. Extrempunkts*/
+/**A segment is given by its vertices.
+ * @param vertex1 position vector of the first vertex
+ * @param vertex2 position vector of the second vertex
+ * @throws IllegalArgumentException if both vertices are equal
+ */
case class Segment(vertex1: Vector2D, vertex2: Vector2D){
require(vertex1 != vertex2, "A segment must have 2 distinct vertices!")
- /**Laenge dieses Segments.*/
+ /**Length of this segment.*/
val length = (vertex2 - vertex1).length
- /**Vektor von EP1 zu EP2.*/
+ /**Vector from <code>vertex1</code> to <code>vertex2</code>.*/
val d = vertex2 - vertex1
- /**Einheitsrichtungsvektor.*/
+ /**Unit directional vector.*/
val d0 = d.unit
- /**Normalenvektor. Richtung: 90 Grad rechts zu d.*/
+ /**Right normal vector.*/
val n = d.rightNormal
- /**Normaleneinheitsvektor. Richtung: 90 Grad rechts zu d.*/
+ /**Right normal unit vector.*/
val n0 = n.unit
- /**Kleinster Abstand zwischen diesem Segment und dem Punkt <code>p</code>.*/
+ /**Smallest distance between this segment and the point <code>point</code>.*/
def distance(point: Vector2D): Double = {
- val v = point - vertex1 //Vektor von EP1 zu point
+ val v = point - vertex1 //vector from vertex1 to point
val projection = v project d
val alpha = if (d.x != 0) d.x / projection.x else d.y / projection.y
- if (alpha >= 0 && projection.length <= length) //Punkt ist naeher zu der Geraden zwischen EP1 und EP2
+ if (alpha >= 0 && projection.length <= length) //point is closer to line between vertex1 and vertex2
(v project n0).length
- else if (alpha < 0) //Punkt ist naeher zu EP1
+ else if (alpha < 0) //point is closer to vertex1
(point - vertex1).length
- else if (alpha > 0) //Punkt ist naeher zu EP2
+ else if (alpha > 0) //point is closer to vertex2
(point - vertex2).length
else
throw new IllegalArgumentException("Error occured trying to compute distance between segment and point.")
diff --git a/src/sims/geometry/Vector2D.scala b/src/sims/geometry/Vector2D.scala
index 03d1ea4..4468a90 100644
--- a/src/sims/geometry/Vector2D.scala
+++ b/src/sims/geometry/Vector2D.scala
@@ -8,54 +8,40 @@ package sims.geometry
import scala.Math._
-/**Ein 2-dimensionaler Vektor.
- * @param x 1. Komponente
- * @param y 2. Komponente*/
+/**A 2D vector.
+ * @param x 1st component
+ * @param y 2nd component*/
case class Vector2D(x: Double, y: Double) {
- /**Vektoraddition.
- * @param v zu addierender Vektor
- * @return dieser Vektor addiert mit <code>v</code>*/
+ /**Vector addition.*/
def +(v: Vector2D): Vector2D = Vector2D(x + v.x, y + v.y)
- /**Vektorsubstraktion.
- * @param v zu substrahierender Vektor
- * @return dieser Vektor substrahiert mit <code>v</code>*/
+ /**Vector substraction.*/
def -(v: Vector2D): Vector2D = this + (v * -1)
- /**Multiplikation mit einem Skalar.
- * @param n Faktor
- * @return dieser Vektor multipliziert mit <code>n</code>*/
+ /**Scalar multiplication.*/
def *(n: Double): Vector2D = Vector2D(x * n, y * n)
- /**Division durch ein Skalar.
- * @param n Nenner
- * @return dieser Vektor dividiert durch <code>n</code>*/
+ /**Scalar division.*/
def /(n: Double): Vector2D = this * (1/n)
- /**Minusvorzeichen.*/
+ /**Unary minus.*/
def unary_- : Vector2D = Vector2D(-x, -y)
- /**Skalarprodukt.
- * @param v ein anderer Vektor
- * @return Skalarprodukt von diesem Vektor mit <code>v</code>*/
+ /**Dot product.*/
def dot(v: Vector2D): Double = x * v.x + y * v.y
- /**Kreuzprodukt. (Norm des Kreuzproduktes)
- * @param v ein anderer Vektor
- * @return Norm des Kreuzproduktes dieses Vektors mit <code>v</code>. Die Richtung wuerde der x3-Achse entsprechen.*/
+ /**Cross product. Length only because in 2D. The direction would be given by the x3-axis.*/
def cross(v: Vector2D): Double = x * v.y - y * v.x
- /**Norm dieses Vektors.*/
+ /**Norm or length of this vector.*/
val length: Double = Math.sqrt(x * x + y * y)
- /**Einheitsvektor dieses Vektors.*/
+ /**Unit vector.*/
def unit: Vector2D = if (!(x == 0.0 && y == 0.0)) Vector2D(x / length, y / length)
else throw new IllegalArgumentException("Null vector does not have a unit vector.")
- /**Errechnet die Projektion dieses- auf einen anderen Vektor.
- * @param v oben gennanter Vektor
- * @return Projektion dieses Vektors auf <code>v</code>*/
+ /**Returns the projection of this vector onto the vector <code>v</code>.*/
def project(v: Vector2D): Vector2D = {
if (v != Vector2D.Null)
v * ((this dot v) / (v dot v))
@@ -63,37 +49,35 @@ case class Vector2D(x: Double, y: Double) {
Vector2D.Null
}
- /**Errechnet eine Rotation dieses Vektors.
- * @param angle Winkel in Radian
- * @return der um <code>angle</code> rad rotierte Vektor*/
+ /**Returns a rotation of this vector by <code>angle</code> radian.*/
def rotate(angle: Double): Vector2D = {
Vector2D(cos(angle) * x - sin(angle) * y,
cos(angle) * y + sin(angle) * x)
}
- /**Linker Normalenvektor. (-y, x)*/
+ /**Left normal vector. (-y, x)*/
def leftNormal: Vector2D = Vector2D(-y, x)
- /**Rechter Normalenvektor. (y, -x)*/
+ /**Right normal vector. (y, -x)*/
def rightNormal: Vector2D = Vector2D(y, -x)
- /**Ueberprueft, ob die Komponenten dieses Vektors gleich Null sind.*/
+ /**Checks if this vector is the null vector.*/
def isNull: Boolean = this == Vector2D.Null
- /**Ergibt eine Liste der Komponenten dieses Vektors.*/
+ /**Returns a list of this vector's components.*/
def components = List(x, y)
}
-/**Dieses Objekt enthaelt spezielle Vektoren.*/
+/**Contains special vectors.*/
object Vector2D {
- /**Nullvektor.*/
+ /**Null vector.*/
val Null = Vector2D(0,0)
- /**Ein horizontaler Einheitsvektor mit den Komponenten (1;0).*/
+ /**Horizontal unit vector. (1,0)*/
val i = Vector2D(1,0)
- /**Ein vertikaler Einheitsvektor mit den Komponenten (0;1).*/
+ /**Vertical unit vector. (0,1)*/
val j = Vector2D(0,1)
}
diff --git a/src/sims/materials/Steel.scala b/src/sims/materials/Steel.scala
index 71594b8..1d14563 100644
--- a/src/sims/materials/Steel.scala
+++ b/src/sims/materials/Steel.scala
@@ -2,4 +2,4 @@ package sims.materials
object Steel {
-}
+} \ No newline at end of file
diff --git a/src/sims/math/Matrix22.scala b/src/sims/math/Matrix22.scala
index b10e02a..54d24c7 100644
--- a/src/sims/math/Matrix22.scala
+++ b/src/sims/math/Matrix22.scala
@@ -8,22 +8,20 @@ package sims.math
import sims.geometry._
-/**Eine 2x2, quadratische Matrix.
- * @param c11 Komponente 1,1
- * @param c12 Komponente 1,2
- * @param c21 Komponente 2,1
- * @param c22 Komponente 2,2
+/**A 2x2 matrix.
+ * @param c11 component 1,1
+ * @param c12 component 1,2
+ * @param c21 component 2,1
+ * @param c22 component 2,2
*/
case class Matrix22(c11: Double, c12: Double, c21: Double, c22: Double) {
- /**Eine 2x2-dimensionale, quadratische Matrix kann auch mit zwei 2-dimensionalen
- * Vektoren erstellt werden. In diesem Fall repraesentiert jeder Vektor eine Spalte.
- * @param c1 erste Spalte
- * @param c2 zweite Spalte*/
+ /**A 2x2 matrix can be created with two 2D vectors. In this case, each column is represented by a vector.
+ * @param c1 first column
+ * @param c2 second column*/
def this(c1: Vector2D, c2: Vector2D) = this(c1.x, c2.x, c1.y, c2.y)
- /**Ergibt die Determinante dieser Matrix.
- * @return Determinante dieser Matrix*/
+ /**Determinant of this matrix.*/
def det = c11 * c22 - c21 * c12
/**Addition.*/
@@ -31,17 +29,17 @@ case class Matrix22(c11: Double, c12: Double, c21: Double, c22: Double) {
new Matrix22(c11 + m.c11, c12 + m.c12,
c21 + m.c21, c22 + m.c22)
- /**Multiplikation mit einem Skalar.*/
+ /**Scalar multiplication.*/
def *(n: Double) =
new Matrix22(c11 * n, c12 * n,
c21 * n, c22 * n)
- /**Multiplikation mit einer anderen 2x2-Matrix.*/
+ /**Matrix multiplication.*/
def *(m: Matrix22) =
new Matrix22(c11 * m.c11 + c12 * m.c21, c11 * m.c12 + c12 * m.c22,
c21 * m.c11 + c22 * m.c21, c21 * m.c12 + c22 * m.c22)
- /**Multiplikation mit einer 2x1-Matrix (2-dimensionaler Vektor).*/
+ /**Multiplikation with a 2D vector.*/
def *(v: Vector2D) =
new Vector2D(c11 * v.x + c12 * v.y,
c21 * v.x + c22 * v.y)
diff --git a/src/sims/util/Polar.scala b/src/sims/util/Polar.scala
index 931be08..c4009b5 100644
--- a/src/sims/util/Polar.scala
+++ b/src/sims/util/Polar.scala
@@ -9,9 +9,9 @@ package sims.util
import sims.geometry._
import scala.Math._
-/**Polare Koordinaten.*/
+/**Polar coordinates.*/
case class Polar(distance: Double, angle: Double) {
- /**Ergibt die Vektorrepraesantation dieser polaren Koordinaten.*/
+ /**Returns the vector representation of these polar coordinates.*/
def toCarthesian = Vector2D(distance * sin(angle), distance * cos(angle))
}
diff --git a/src/sims/util/Positioning.scala b/src/sims/util/Positioning.scala
index 433feaf..cf72276 100644
--- a/src/sims/util/Positioning.scala
+++ b/src/sims/util/Positioning.scala
@@ -9,7 +9,7 @@ package sims.util
import sims.geometry._
import sims.dynamics._
-/**Objekt mit Hiflsfunktionen fuer komfortables Positionieren von Koerpern.*/
+/**Utility functions for comfortable positioning of bodies.*/
object Positioning {
implicit def int2RelativeVector(x: Int): RelativeVector = new RelativeVector(x, 0)