Commits

kevinclancy committed 46cf171

added love.physics API functions, but not its types (yet)

Comments (0)

Files changed (2)

LoveStudio/LoveAPI.xml

     </type>
 
     <type variant="record">
+      <name>Love.Physics</name>
+      <description>
+Can simulate 2D rigid body physics in a realistic manner. This module is 
+based on Box2D, and this API corresponds to the Box2D API as closely as 
+possible.
+      </description>
+
+      <fields>
+        <field>
+          <name>getDistance</name>
+          <description>
+Returns the two closest points between two fixtures and their distance.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>fixture1</name>
+              <description>The first fixture.</description>
+              <type variant="usertype">
+                <name>Fixture</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>fixture2</name>
+              <description>The second fixture.</description>
+              <type variant="usertype">
+                <name>Fixture</name>
+              </type>
+            </parameter>
+            <return>
+              <name>distance</name>
+              <type variant="number"></type>
+              <description>The distance of the two points.</description>
+            </return>
+            <return>
+              <name>x1</name>
+              <type variant="number"></type>
+              <description>The x-coordinate of the first point.</description>
+            </return>
+            <return>
+              <name>y1</name>
+              <type variant="number"></type>
+              <description>The y-coordinate of the first point.</description>
+            </return>
+            <return>
+              <name>x2</name>
+              <type variant="number"></type>
+              <description>The x-coordinate of the second point.</description>
+            </return>
+            <return>
+              <name>y2</name>
+              <type variant="number"></type>
+              <description>The y-coordinate of the second point.</description>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>getMeter</name>
+          <description>
+Returns the meter scale factor.
+
+All coordinates in the physics module are divided by this number, creating 
+a convenient way to draw the objects directly to the screen without the 
+need for graphics transformations.
+
+It is recommended to create shapes no larger than 10 times the scale. 
+This is important because Box2D is tuned to work well with shape sizes 
+from 0.1 to 10 meters.
+          </description>
+          <type variant="function">
+            <return>
+              <name>scale</name>
+              <type variant="number"></type>
+              <description>The scale factor as an integer</description>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newBody</name>
+          <description>
+Creates a new body.
+
+There are three types of bodies. Static bodies do not move, have a 
+infinite mass, and can be used for level boundaries. Dynamic bodies 
+are the main actors in the simulation, they collide with everything. 
+Kinematic bodies do not react to forces and only collide with dynamic 
+bodies.
+
+The mass of the body gets calculated when a Fixture is attached or 
+removed, but can be changed at any time with Body:setMass or 
+Body:resetMassData.
+          </description>
+          <type variant = "function">
+            <parameter>
+              <name>world</name>
+              <type variant="usertype">
+                <name>World</name>
+              </type>
+              <description>The world to create the body in.</description>
+            </parameter>
+            <parameter>
+              <name>x</name>
+              <default>0</default>
+              <type variant="?number"></type>
+              <description>The x position of the body.</description>
+            </parameter>
+            <parameter>
+              <name>y</name>
+              <default>0</default>
+              <type variant="?number"></type>
+              <description>The y position of the body.</description>
+            </parameter>
+            <parameter>
+              <name>type</name>
+              <default>static</default>
+              <type variant="?string"></type>
+              <description>The type of the body, "static" (default), "dynamic", or "kinematic".</description>
+            </parameter>
+            <return>
+              <name>body</name>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+              <description>A new body.</description>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newChainShape</name>
+          <description>
+Creates a chain shape.
+          </description>
+          <type variant ="function">
+            <parameter>
+              <name>loop</name>
+              <type variant="boolean"></type>
+              <description>
+If the chain should loop back to the first point.
+              </description>
+            </parameter>
+            <parameter>
+              <name>x1</name>
+              <type variant="number"></type>
+              <description>
+The x position of the first point.
+              </description>
+            </parameter>
+            <parameter>
+              <name>y1</name>
+              <type variant="number"></type>
+              <description>
+The y position of the first point.
+              </description>
+            </parameter>
+            <parameter>
+              <name>x2</name>
+              <type variant="number"></type>
+              <description>
+The x position of the second point.
+              </description>
+            </parameter>
+            <parameter>
+              <name>y2</name>
+              <type variant="number"></type>
+              <description>
+The y position of the second point.
+              </description>
+            </parameter>
+            <return>
+              <name>shape</name>
+              <description>The new shape.</description>
+              <type variant="usertype">
+                <name>ChainShape</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newCircleShape</name>
+          <description>Creates a circle shape.</description>
+          <type variant="overload">
+            <type variant ="function">
+              <parameter>
+                <name>radius</name>
+                <description>The radius of the circle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <return>
+                <name>shape</name>
+                <description>The new shape.</description>
+                <type variant="usertype">
+                  <name>CircleShape</name>
+                </type>
+              </return>
+            </type>
+            <type variant="function">
+              <parameter>
+                <name>x</name>
+                <description>The x position of the circle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y</name>
+                <description>The y position of the circle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>radius</name>
+                <description>The radius of the circle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <return>
+                <name>shape</name>
+                <description>The new shape.</description>
+                <type variant="usertype">
+                  <name>CircleShape</name>
+                </type>
+              </return>
+            </type>
+          </type>
+        </field>
+
+        <field>
+          <name>newDistanceJoint</name>
+          <description>
+Creates a distance joint between two bodies.
+
+This joint constrains the distance between two points on two bodies
+to be constant. These two points are specified in world coordinates 
+and the two bodies are assumed to be in place when this joint is
+created. The first anchor point is connected to the first body
+and the second to the second body, and the points define the length
+of the distance joint.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>body1</name>
+              <description>The first body to attach to the joint.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>body2</name>
+              <description>The second body to attach to the joint.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>x1</name>
+              <description>The x position of the first anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y1</name>
+              <description>The y position of the first anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x2</name>
+              <description>The x position of the second anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y2</name>
+              <description>The y position of the second anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>collideConnected</name>
+              <description>
+Specifies whether the two bodies should collide with each other.
+              </description>
+              <default>false</default>
+              <type variant="?boolean"></type>
+            </parameter>
+            <return>
+              <name>joint</name>
+              <description>The new distance joint.</description>
+              <type variant="usertype">
+                <name>Joint</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newEdgeShape</name>
+          <description>Creates an edge shape.</description>
+          <type variant="function">
+            <parameter>
+              <name>x1</name>
+              <description>The x position of the first point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y1</name>
+              <description>The y position of the first point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x2</name>
+              <description>The x position of the second point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y2</name>
+              <description>The y position of the second point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <return>
+              <name>shape</name>
+              <description>The new shape.</description>
+              <type variant="usertype">
+                <name>EdgeShape</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newFixture</name>
+          <description>Creates and attaches a Fixture to a body.</description>
+          <type variant="function">
+            <parameter>
+              <name>body</name>
+              <description>The body which gets the fixture attached.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>shape</name>
+              <description>The shape of the fixture.</description>
+              <type variant="usertype">
+                <name>Shape</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>density</name>
+              <description>The density of the fixture (1 by default).</description>
+              <default>1</default>
+              <type variant="?number"></type>
+            </parameter>
+            <return>
+              <name>fixture</name>
+              <description>The new fixture.</description>
+              <type variant="usertype">
+                <name>Fixture</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newFrictionJoint</name>
+          <description>
+Create a friction joint between two bodies. A FrictionJoint applies 
+friction to a body.
+          </description>
+          <type variant="overload">
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x</name>
+                <description>The x position of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y</name>
+                <description>The y position of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>collideConnected</name>
+                <description>
+Specifies whether the two bodies should collide with each other (false by default).
+                </description>
+                <type variant="?boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new FrictionJoint.</description>
+                <type variant="usertype">
+                  <name>FrictionJoint</name>
+                </type>
+              </return>
+            </type>
+
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x1</name>
+                <description>The x position of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y1</name>
+                <description>The y position of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>x2</name>
+                <description>The x position of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y2</name>
+                <description>The y position of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>collideConnected</name>
+                <description>
+Specifies whether the two bodies should collide with each other (false by default).
+                </description>
+                <type variant="?boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new FrictionJoint.</description>
+                <type variant="usertype">
+                  <name>FrictionJoint</name>
+                </type>
+              </return>
+            </type>
+          </type>
+        </field>
+
+        <field>
+          <name>newGearJoint</name>
+          <description>
+Create a gear joint connecting two joints.
+
+The gear joint connects two joints that must be either prismatic or 
+revolute joints. Using this joint requires that the joints it uses 
+connect their respective bodies to the ground and have the ground as 
+the first body. When destroying the bodies and joints you must make 
+sure you destroy the gear joint before the other joints.
+
+The gear joint has a ratio the determines how the angular or distance 
+values of the connected joints relate to each other. The formula 
+coordinate1 + ratio * coordinate2 always has a constant value that is 
+set when the gear joint is created.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>joint1</name>
+              <description>The first joint to connect with a gear joint.</description>
+              <type variant="usertype">
+                <name>Joint</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>joint2</name>
+              <description>The second joint to connect with a gear joint.</description>
+              <type variant="usertype">
+                <name>Joint</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>ratio</name>
+              <description>The gear ratio (1 by default).</description>
+              <default>1</default>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>collideConnected</name>
+              <description>
+Specifies whether the two bodies should collide with each other (false by default).
+              </description>
+              <default>false</default>
+              <type variant="?boolean"></type>
+            </parameter>
+            <return>
+              <name>joint</name>
+              <description>The new geat joint.</description>
+              <type variant="usertype">
+                <name>GearJoint</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newMouseJoint</name>
+          <description>
+Create a joint between a body and the mouse.
+
+This joint actually connects the body to a fixed point in the world. 
+To make it follow the mouse, the fixed point must be updated every 
+timestep (example below).
+
+The advantage of using a MouseJoint instead of just changing a body 
+position directly is that collisions and reactions to other joints 
+are handled by the physics engine.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>body</name>
+              <description>The body to attach to the mouse.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>x</name>
+              <description>The x position of the connecting point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y</name>
+              <description>The y position of the connecting point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <return>
+              <name>joint</name>
+              <description>The new mouse joint.</description>
+              <type variant="usertype">
+                <name>Joint</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newPolygonShape</name>
+          <description>
+Creates a new PolygonShape.
+
+This shape can have 8 vertices at most, and must form a convex shape.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>x1</name>
+              <description>The x position of the first point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y1</name>
+              <description>The y position of the first point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x2</name>
+              <description>The x position of the second point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y2</name>
+              <description>The y position of the second point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x3</name>
+              <description>The x position of the third point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y3</name>
+              <description>The y position of the third point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x4</name>
+              <description>The x position of the fourth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>y4</name>
+              <description>The y position of the fourth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>x5</name>
+              <description>The x position of the fifth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>y5</name>
+              <description>The y position of the fifth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>x6</name>
+              <description>The x position of the sixth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>y6</name>
+              <description>The y position of the sixth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>x7</name>
+              <description>The x position of the seventh point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>y7</name>
+              <description>The y position of the seventh point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>x8</name>
+              <description>The x position of the eighth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>y8</name>
+              <description>The y position of the eighth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <return>
+              <name>shape</name>
+              <description>A new PolygonShape.</description>
+              <type variant="usertype">
+                <name>PolygonShape</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newPrismaticJoint</name>
+          <description>
+Creates a prismatic joints between two bodies.
+
+A prismatic joint constrains two bodies to move relatively to 
+each other on a specified axis. It does not allow for relative 
+rotation. Its definition and operation are similar to a revolute 
+joint, but with translation and force substituted for angle and torque.
+          </description>
+          <type variant="overload">
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body to connect with a prismatic joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body to connect with a prismatic joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x</name>
+                <description>The x coordinate of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y</name>
+                <description>The y coordinate of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ax</name>
+                <description>The x coordinate of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ay</name>
+                <description>The y coordinate of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>collideConnected</name>
+                <description>
+                  Specifies whether the two bodies should collide with each other (false by default).
+                </description>
+                <default>false</default>
+                <type variant="?boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new prismatic joint.</description>
+                <type variant="usertype">
+                  <name>PrismaticJoint</name>
+                </type>
+              </return>
+            </type>
+
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body to connect with a prismatic joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body to connect with a prismatic joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x1</name>
+                <description>The x coordinate of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y1</name>
+                <description>The y coordinate of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>x2</name>
+                <description>The x coordinate of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y2</name>
+                <description>The y coordinate of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ax</name>
+                <description>The x coordinate of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ay</name>
+                <description>The y coordinate of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>              
+              <parameter>
+                <name>collideConnected</name>
+                <description>
+                  Specifies whether the two bodies should collide with each other (false by default).
+                </description>
+                <default>false</default>
+                <type variant="?boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new prismatic joint.</description>
+                <type variant="usertype">
+                  <name>PrismaticJoint</name>
+                </type>
+              </return>
+            </type>            
+          </type>
+        </field>
+
+        <field>
+          <name>newPulleyJoint</name>
+          <description>
+Creates a pulley joint to join two bodies to each other and the ground.
+
+The pulley joint simulates a pulley with an optional block and tackle. 
+If the ratio parameter has a value different from one, then the simulated 
+rope extends faster on one side than the other. In a pulley joint the total 
+length of the simulated rope is the constant length1 + ratio * length2, 
+which is set when the pulley joint is created.
+
+Pulley joints can behave unpredictably if one side is fully extended. It 
+is recommended that the method setMaxLengths  be used to constrain the 
+maximum lengths each side can attain.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>body1</name>
+              <description>The first body to connect with a pulley joint.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>body2</name>
+              <description>The second body to connect with a pulley joint.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>gx1</name>
+              <description>The x coordinate of the first body's ground anchor.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>gy1</name>
+              <description>The y coordinate of the first body's ground anchor.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>gx2</name>
+              <description>The x coordinate of the second body's ground anchor.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>gy2</name>
+              <description>The y coordinate of the second body's ground anchor.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x1</name>
+              <description>The x coordinate of the pulley joint anchor in the first body.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y1</name>
+              <description>The y coordinate of the pulley joint anchor in the first body.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x2</name>
+              <description>The x coordinate of the pulley joint anchor in the second body.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y2</name>
+              <description>The y coordinate of the pulley joint anchor in the second body.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>ratio</name>
+              <description>The joint ratio (1 by default).</description>
+              <default>1</default>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>collideConnected</name>
+              <description>Specifies whether the two bodies should collide with each other (true by default).</description>
+              <default>true</default>
+              <type variant="?boolean"></type>
+            </parameter>
+            <return>
+              <name>joint</name>
+              <description>The new pulley joint.</description>
+              <type variant="usertype">
+                <name>PulleyJoint</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newRectangleShape</name>
+          <description>Shorthand for creating rectangular PolygonShapes.</description>
+          <type variant="overload">
+            <type variant="function">
+              <parameter>
+                <name>width</name>
+                <description>The width of the rectangle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>height</name>
+                <description>The height of the rectangle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <return>
+                <name>shape</name>
+                <description>A new PolygonShape</description>
+                <type variant="usertype">
+                  <name>PolygonShape</name>
+                </type>
+              </return>
+            </type>
+            <type variant="function">
+              <parameter>
+                <name>x</name>
+                <description>The offset along the x-axis.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y</name>
+                <description>The offset along the y-axis.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>width</name>
+                <description>The width of the rectangle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>height</name>
+                <description>The height of the rectangle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>angle</name>
+                <description>The intial angle of the rectangle (0 by default).</description>
+                <type variant="?number"></type>
+              </parameter>
+              <return>
+                <name>shape</name>
+                <description>A new PolygonShape.</description>
+                <type variant="usertype">
+                  <name>PolygonShape</name>
+                </type>
+              </return>
+            </type>
+          </type>
+        </field>
+
+        <field>
+          <name>newRevoluteJoint</name>
+          <description>
+Creates a pivot joint between two bodies.
+
+This joint connects two bodies to a point around which they can pivot.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>body1</name>
+              <description>The first body.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>body2</name>
+              <description>The second body.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>x</name>
+              <description>The x position of the connecting point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y</name>
+              <description>The y position of the connecting point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>collideConnected</name>
+              <description>
+Specifies whether the two bodies should collide with each other (false by default).
+              </description>
+              <default>false</default>
+              <type variant="?boolean"></type>
+            </parameter>
+            <return>
+              <name>joint</name>
+              <description>The new revolute joint.</description>
+              <type variant="usertype">
+                <name>Joint</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newRopeJoint</name>
+          <description>
+Creates a joint between two bodies. Its only function is enforcing a max
+distance between these bodies.
+
+WARNING: There is a bug in version 0.8.0 where the cooridnates of the 
+anchors are divided by the number from love.physics.getMeter. As a 
+workaround, multiply your anchor coordinates with that number and it 
+should work like expected.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>body1</name>
+              <description>The first body to attach to the joint.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>body2</name>
+              <description>The second body to attach to the joint.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>x1</name>
+              <description>The x position of the first anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y1</name>
+              <description>The y position of the first anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x2</name>
+              <description>The x position of the second anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y2</name>
+              <description>The y position of the second anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>maxLength</name>
+              <description>The maximum distance for the bodies.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>collideConnected</name>
+              <description>
+Specifies whether the two bodies should collide with each other. (False by default.)
+              </description>
+              <default>false</default>
+              <type variant="?boolean"></type>
+            </parameter>
+            <return>
+              <name>joint</name>
+              <description>The new RopeJoint.</description>
+              <type variant="usertype">
+                <name>RopeJoint</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newWeldJoint</name>
+          <description>
+Creates a constraint joint between two bodies. A WeldJoint essentially 
+glues two bodies together. The constraint is a bit soft, however, due to 
+Box2D's iterative solver.
+          </description>
+          <type variant ="overload">
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x</name>
+                <description>The x position of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y</name>
+                <description>The y position of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>collideConnected</name>
+                <description>
+Specifies whether the two bodies should collide with each other. (False by default.)
+                </description>
+                <type variant="boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new WeldJoint.</description>
+                <type variant="usertype">
+                  <name>WeldJoint</name>
+                </type>
+              </return>
+            </type>
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x1</name>
+                <description>The x position of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y1</name>
+                <description>The y position of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>x2</name>
+                <description>The x position of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y2</name>
+                <description>The y position of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>collideConnected</name>
+                <description>
+                  Specifies whether the two bodies should collide with each other. (False by default.)
+                </description>
+                <type variant="boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new WeldJoint.</description>
+                <type variant="usertype">
+                  <name>WeldJoint</name>
+                </type>
+              </return>
+            </type>           
+          </type>
+        </field>
+
+        <field>
+          <name>newWheelJoint</name>
+          <description>Creates a wheel joint.</description>
+          <type variant="overload">
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x</name>
+                <description>The x position of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y</name>
+                <description>The x position of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ax</name>
+                <description>The x position of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ay</name>
+                <description>The y position of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>collideConnected</name>
+                <default>false</default>
+                <description>Specifies whether the two bodies should collide with each other.</description>
+                <type variant="boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new WheelJoint.</description>
+                <type variant="usertype">
+                  <name>WheelJoint</name>
+                </type>
+              </return>
+            </type>
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x1</name>
+                <description>The x position of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y1</name>
+                <description>The y position of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>x2</name>
+                <description>The x position of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y2</name>
+                <description>The y position of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ax</name>
+                <description>The x position of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ay</name>
+                <description>The y position of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>collideConnected</name>
+                <default>false</default>
+                <description>Specifies whether the two bodies should collide with each other.</description>
+                <type variant="boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new WheelJoint.</description>
+                <type variant="usertype">
+                  <name>WheelJoint</name>
+                </type>
+              </return>
+            </type>
+          </type>
+        </field>
+
+        <field>
+          <name>newWorld</name>
+          <description>
+Creates a new World.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>xg</name>
+              <description>The x component of gravity. (0 by default.)</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>yg</name>
+              <description>The y component of gravity (0 by default.)</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>sleep</name>
+              <description>Whether the bodies in the world are allowed to sleep. (True by default.)</description>
+              <type variant="?boolean"></type>
+            </parameter>
+            <return>
+              <name>world</name>
+              <description>A new World.</description>
+              <type variant="usertype">
+                <name>World</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>setMeter</name>
+          <description>
+Sets the meter scale factor.
+
+All coordinates in the physics module are divided by this number, 
+creating a convenient way to draw the objects directly to the 
+screen without the need for graphics transformations.
+
+It is recommended to create shapes no larger than 10 times the scale. 
+This is important because Box2D is tuned to work well with shape sizes 
+from 0.1 to 10 meters.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>scale</name>
+              <description>The scale factor as an integer.</description>
+              <type variant="number"></type>
+            </parameter>
+          </type>
+        </field>
+        
+      </fields>
+    </type>
+    
+    <type variant="record">
       <name>love.sound</name>
       <description>
 This module is responsible for decoding sound files. It can't play 
           <description>
 A suite of functions for physics simulation.
           </description>
-          <type variant = "unknown">
-            <name>love.physics</name>
+          <type variant = "usertype">
+            <name>Love.Physics</name>
           </type>
         </field>
 

LoveStudio/LuaAnalyzer/LoveAPI.xml

     </type>
 
     <type variant="record">
+      <name>Love.Physics</name>
+      <description>
+Can simulate 2D rigid body physics in a realistic manner. This module is 
+based on Box2D, and this API corresponds to the Box2D API as closely as 
+possible.
+      </description>
+
+      <fields>
+        <field>
+          <name>getDistance</name>
+          <description>
+Returns the two closest points between two fixtures and their distance.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>fixture1</name>
+              <description>The first fixture.</description>
+              <type variant="usertype">
+                <name>Fixture</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>fixture2</name>
+              <description>The second fixture.</description>
+              <type variant="usertype">
+                <name>Fixture</name>
+              </type>
+            </parameter>
+            <return>
+              <name>distance</name>
+              <type variant="number"></type>
+              <description>The distance of the two points.</description>
+            </return>
+            <return>
+              <name>x1</name>
+              <type variant="number"></type>
+              <description>The x-coordinate of the first point.</description>
+            </return>
+            <return>
+              <name>y1</name>
+              <type variant="number"></type>
+              <description>The y-coordinate of the first point.</description>
+            </return>
+            <return>
+              <name>x2</name>
+              <type variant="number"></type>
+              <description>The x-coordinate of the second point.</description>
+            </return>
+            <return>
+              <name>y2</name>
+              <type variant="number"></type>
+              <description>The y-coordinate of the second point.</description>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>getMeter</name>
+          <description>
+Returns the meter scale factor.
+
+All coordinates in the physics module are divided by this number, creating 
+a convenient way to draw the objects directly to the screen without the 
+need for graphics transformations.
+
+It is recommended to create shapes no larger than 10 times the scale. 
+This is important because Box2D is tuned to work well with shape sizes 
+from 0.1 to 10 meters.
+          </description>
+          <type variant="function">
+            <return>
+              <name>scale</name>
+              <type variant="number"></type>
+              <description>The scale factor as an integer</description>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newBody</name>
+          <description>
+Creates a new body.
+
+There are three types of bodies. Static bodies do not move, have a 
+infinite mass, and can be used for level boundaries. Dynamic bodies 
+are the main actors in the simulation, they collide with everything. 
+Kinematic bodies do not react to forces and only collide with dynamic 
+bodies.
+
+The mass of the body gets calculated when a Fixture is attached or 
+removed, but can be changed at any time with Body:setMass or 
+Body:resetMassData.
+          </description>
+          <type variant = "function">
+            <parameter>
+              <name>world</name>
+              <type variant="usertype">
+                <name>World</name>
+              </type>
+              <description>The world to create the body in.</description>
+            </parameter>
+            <parameter>
+              <name>x</name>
+              <default>0</default>
+              <type variant="?number"></type>
+              <description>The x position of the body.</description>
+            </parameter>
+            <parameter>
+              <name>y</name>
+              <default>0</default>
+              <type variant="?number"></type>
+              <description>The y position of the body.</description>
+            </parameter>
+            <parameter>
+              <name>type</name>
+              <default>static</default>
+              <type variant="?string"></type>
+              <description>The type of the body, "static" (default), "dynamic", or "kinematic".</description>
+            </parameter>
+            <return>
+              <name>body</name>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+              <description>A new body.</description>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newChainShape</name>
+          <description>
+Creates a chain shape.
+          </description>
+          <type variant ="function">
+            <parameter>
+              <name>loop</name>
+              <type variant="boolean"></type>
+              <description>
+If the chain should loop back to the first point.
+              </description>
+            </parameter>
+            <parameter>
+              <name>x1</name>
+              <type variant="number"></type>
+              <description>
+The x position of the first point.
+              </description>
+            </parameter>
+            <parameter>
+              <name>y1</name>
+              <type variant="number"></type>
+              <description>
+The y position of the first point.
+              </description>
+            </parameter>
+            <parameter>
+              <name>x2</name>
+              <type variant="number"></type>
+              <description>
+The x position of the second point.
+              </description>
+            </parameter>
+            <parameter>
+              <name>y2</name>
+              <type variant="number"></type>
+              <description>
+The y position of the second point.
+              </description>
+            </parameter>
+            <return>
+              <name>shape</name>
+              <description>The new shape.</description>
+              <type variant="usertype">
+                <name>ChainShape</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newCircleShape</name>
+          <description>Creates a circle shape.</description>
+          <type variant="overload">
+            <type variant ="function">
+              <parameter>
+                <name>radius</name>
+                <description>The radius of the circle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <return>
+                <name>shape</name>
+                <description>The new shape.</description>
+                <type variant="usertype">
+                  <name>CircleShape</name>
+                </type>
+              </return>
+            </type>
+            <type variant="function">
+              <parameter>
+                <name>x</name>
+                <description>The x position of the circle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y</name>
+                <description>The y position of the circle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>radius</name>
+                <description>The radius of the circle.</description>
+                <type variant="number"></type>
+              </parameter>
+              <return>
+                <name>shape</name>
+                <description>The new shape.</description>
+                <type variant="usertype">
+                  <name>CircleShape</name>
+                </type>
+              </return>
+            </type>
+          </type>
+        </field>
+
+        <field>
+          <name>newDistanceJoint</name>
+          <description>
+Creates a distance joint between two bodies.
+
+This joint constrains the distance between two points on two bodies
+to be constant. These two points are specified in world coordinates 
+and the two bodies are assumed to be in place when this joint is
+created. The first anchor point is connected to the first body
+and the second to the second body, and the points define the length
+of the distance joint.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>body1</name>
+              <description>The first body to attach to the joint.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>body2</name>
+              <description>The second body to attach to the joint.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>x1</name>
+              <description>The x position of the first anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y1</name>
+              <description>The y position of the first anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x2</name>
+              <description>The x position of the second anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y2</name>
+              <description>The y position of the second anchor point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>collideConnected</name>
+              <description>
+Specifies whether the two bodies should collide with each other.
+              </description>
+              <default>false</default>
+              <type variant="?boolean"></type>
+            </parameter>
+            <return>
+              <name>joint</name>
+              <description>The new distance joint.</description>
+              <type variant="usertype">
+                <name>Joint</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newEdgeShape</name>
+          <description>Creates an edge shape.</description>
+          <type variant="function">
+            <parameter>
+              <name>x1</name>
+              <description>The x position of the first point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y1</name>
+              <description>The y position of the first point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x2</name>
+              <description>The x position of the second point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y2</name>
+              <description>The y position of the second point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <return>
+              <name>shape</name>
+              <description>The new shape.</description>
+              <type variant="usertype">
+                <name>EdgeShape</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newFixture</name>
+          <description>Creates and attaches a Fixture to a body.</description>
+          <type variant="function">
+            <parameter>
+              <name>body</name>
+              <description>The body which gets the fixture attached.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>shape</name>
+              <description>The shape of the fixture.</description>
+              <type variant="usertype">
+                <name>Shape</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>density</name>
+              <description>The density of the fixture (1 by default).</description>
+              <default>1</default>
+              <type variant="?number"></type>
+            </parameter>
+            <return>
+              <name>fixture</name>
+              <description>The new fixture.</description>
+              <type variant="usertype">
+                <name>Fixture</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newFrictionJoint</name>
+          <description>
+Create a friction joint between two bodies. A FrictionJoint applies 
+friction to a body.
+          </description>
+          <type variant="overload">
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x</name>
+                <description>The x position of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y</name>
+                <description>The y position of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>collideConnected</name>
+                <description>
+Specifies whether the two bodies should collide with each other (false by default).
+                </description>
+                <type variant="?boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new FrictionJoint.</description>
+                <type variant="usertype">
+                  <name>FrictionJoint</name>
+                </type>
+              </return>
+            </type>
+
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body to attach to the joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x1</name>
+                <description>The x position of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y1</name>
+                <description>The y position of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>x2</name>
+                <description>The x position of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y2</name>
+                <description>The y position of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>collideConnected</name>
+                <description>
+Specifies whether the two bodies should collide with each other (false by default).
+                </description>
+                <type variant="?boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new FrictionJoint.</description>
+                <type variant="usertype">
+                  <name>FrictionJoint</name>
+                </type>
+              </return>
+            </type>
+          </type>
+        </field>
+
+        <field>
+          <name>newGearJoint</name>
+          <description>
+Create a gear joint connecting two joints.
+
+The gear joint connects two joints that must be either prismatic or 
+revolute joints. Using this joint requires that the joints it uses 
+connect their respective bodies to the ground and have the ground as 
+the first body. When destroying the bodies and joints you must make 
+sure you destroy the gear joint before the other joints.
+
+The gear joint has a ratio the determines how the angular or distance 
+values of the connected joints relate to each other. The formula 
+coordinate1 + ratio * coordinate2 always has a constant value that is 
+set when the gear joint is created.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>joint1</name>
+              <description>The first joint to connect with a gear joint.</description>
+              <type variant="usertype">
+                <name>Joint</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>joint2</name>
+              <description>The second joint to connect with a gear joint.</description>
+              <type variant="usertype">
+                <name>Joint</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>ratio</name>
+              <description>The gear ratio (1 by default).</description>
+              <default>1</default>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>collideConnected</name>
+              <description>
+Specifies whether the two bodies should collide with each other (false by default).
+              </description>
+              <default>false</default>
+              <type variant="?boolean"></type>
+            </parameter>
+            <return>
+              <name>joint</name>
+              <description>The new geat joint.</description>
+              <type variant="usertype">
+                <name>GearJoint</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newMouseJoint</name>
+          <description>
+Create a joint between a body and the mouse.
+
+This joint actually connects the body to a fixed point in the world. 
+To make it follow the mouse, the fixed point must be updated every 
+timestep (example below).
+
+The advantage of using a MouseJoint instead of just changing a body 
+position directly is that collisions and reactions to other joints 
+are handled by the physics engine.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>body</name>
+              <description>The body to attach to the mouse.</description>
+              <type variant="usertype">
+                <name>Body</name>
+              </type>
+            </parameter>
+            <parameter>
+              <name>x</name>
+              <description>The x position of the connecting point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y</name>
+              <description>The y position of the connecting point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <return>
+              <name>joint</name>
+              <description>The new mouse joint.</description>
+              <type variant="usertype">
+                <name>Joint</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newPolygonShape</name>
+          <description>
+Creates a new PolygonShape.
+
+This shape can have 8 vertices at most, and must form a convex shape.
+          </description>
+          <type variant="function">
+            <parameter>
+              <name>x1</name>
+              <description>The x position of the first point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y1</name>
+              <description>The y position of the first point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x2</name>
+              <description>The x position of the second point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y2</name>
+              <description>The y position of the second point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x3</name>
+              <description>The x position of the third point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>y3</name>
+              <description>The y position of the third point.</description>
+              <type variant="number"></type>
+            </parameter>
+            <parameter>
+              <name>x4</name>
+              <description>The x position of the fourth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>y4</name>
+              <description>The y position of the fourth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>x5</name>
+              <description>The x position of the fifth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>y5</name>
+              <description>The y position of the fifth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>x6</name>
+              <description>The x position of the sixth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>y6</name>
+              <description>The y position of the sixth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>x7</name>
+              <description>The x position of the seventh point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>y7</name>
+              <description>The y position of the seventh point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>x8</name>
+              <description>The x position of the eighth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <parameter>
+              <name>y8</name>
+              <description>The y position of the eighth point.</description>
+              <type variant="?number"></type>
+            </parameter>
+            <return>
+              <name>shape</name>
+              <description>A new PolygonShape.</description>
+              <type variant="usertype">
+                <name>PolygonShape</name>
+              </type>
+            </return>
+          </type>
+        </field>
+
+        <field>
+          <name>newPrismaticJoint</name>
+          <description>
+Creates a prismatic joints between two bodies.
+
+A prismatic joint constrains two bodies to move relatively to 
+each other on a specified axis. It does not allow for relative 
+rotation. Its definition and operation are similar to a revolute 
+joint, but with translation and force substituted for angle and torque.
+          </description>
+          <type variant="overload">
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body to connect with a prismatic joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body to connect with a prismatic joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x</name>
+                <description>The x coordinate of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y</name>
+                <description>The y coordinate of the anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ax</name>
+                <description>The x coordinate of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ay</name>
+                <description>The y coordinate of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>collideConnected</name>
+                <description>
+                  Specifies whether the two bodies should collide with each other (false by default).
+                </description>
+                <default>false</default>
+                <type variant="?boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new prismatic joint.</description>
+                <type variant="usertype">
+                  <name>PrismaticJoint</name>
+                </type>
+              </return>
+            </type>
+
+            <type variant="function">
+              <parameter>
+                <name>body1</name>
+                <description>The first body to connect with a prismatic joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>body2</name>
+                <description>The second body to connect with a prismatic joint.</description>
+                <type variant="usertype">
+                  <name>Body</name>
+                </type>
+              </parameter>
+              <parameter>
+                <name>x1</name>
+                <description>The x coordinate of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y1</name>
+                <description>The y coordinate of the first anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>x2</name>
+                <description>The x coordinate of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>y2</name>
+                <description>The y coordinate of the second anchor point.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ax</name>
+                <description>The x coordinate of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>
+              <parameter>
+                <name>ay</name>
+                <description>The y coordinate of the axis unit vector.</description>
+                <type variant="number"></type>
+              </parameter>              
+              <parameter>
+                <name>collideConnected</name>
+                <description>
+                  Specifies whether the two bodies should collide with each other (false by default).
+                </description>
+                <default>false</default>
+                <type variant="?boolean"></type>
+              </parameter>
+              <return>
+                <name>joint</name>
+                <description>The new prismatic joint.</description>
+                <type variant="usertype">
+                  <name>PrismaticJoint</name>
+                </type>
+              </return>
+            </type>            
+          </type>
+        </field>
+
+        <field>
+          <name>newPulleyJoint</name>
+          <description>
+Creates a pulley joint to join two bodies to each other and the ground.
+
+The pulley joint simulates a pulley with an optional block and tackle. 
+If the ratio parameter has a value different from one, then the simulated 
+rope extends faster on one side than the other. In a pulley joint the total 
+length of the simulated rope is the constant length1 + ratio * length2, 
+which is set when the pulley joint is created.
+
+Pulley joints can behave unpredictably if one side is fully extended. It 
+is recommended that the method setMaxLengths  be used to constrain the